:root {
  color-scheme: light;
  --navy: #2b2014;
  --bg: #e8e0d2;
  --bg-elevated: #f7f1e4;
  --panel: #fffdf7;
  --panel-2: #f5ead1;
  --panel-3: #fff8e8;
  --ink: #211b12;
  --muted: #786a55;
  --muted-2: #a99572;
  --line: #eadfc9;
  --line-strong: #d7c199;
  --accent: #c48625;
  --accent-dark: #6f4818;
  --soft: rgba(196, 134, 37, 0.14);
  --positive: #9a6a13;
  --negative: #a44855;
  --amber: #d7a644;
  --risk: #b55c3d;
  --danger: var(--risk);
  --purple: #9fb7d1;
  --guide: #bdc3c7;
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.24);
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius-md: 12px;
  /* 2026-07-09 global visual unification: complete the token layer.
     These were previously referenced via var(--x, fallback) or hardcoded. */
  --ink-muted: #75684f;
  --ink-soft: #8a7a5c;
  --amber-line: #ead7ad;
  --amber-bright: #efc86e;
  --panel-dark: #211b14;
  --panel-dark-line: #3a3024;
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

/* Discovery model explainability: preserve the amber/white system without adding another card layer. */
.sector-method-note {
  display: grid;
  grid-template-columns: max-content max-content 1fr;
  gap: 10px 18px;
  align-items: center;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--amber-line, #ead7ad);
  color: var(--ink-muted, #75684f);
  font-size: 13px;
}

.sector-method-note strong {
  color: var(--ink, #211a10);
}

.theme-model-details {
  margin: 0 0 18px;
  border-block: 1px solid var(--amber-line, #ead7ad);
}

.theme-evidence-requirements {
  display: grid;
  grid-template-columns: minmax(180px, 0.52fr) minmax(0, 1.48fr);
  gap: 14px;
  align-items: stretch;
  margin: 14px 0 18px;
  border: 1px solid rgba(190, 140, 49, 0.22);
  border-radius: 10px;
  background: rgba(255, 252, 244, 0.72);
  padding: 12px;
}

.theme-evidence-requirements > div:first-child {
  display: grid;
  align-content: start;
  gap: 5px;
}

.theme-evidence-requirements span {
  color: #9a7d4d;
  font-size: 10px;
  font-weight: 900;
}

.theme-evidence-requirements p {
  margin: 0;
  color: var(--ink-muted);
  font-size: 12px;
  line-height: 1.5;
}

.theme-evidence-requirement-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.theme-evidence-requirement-grid article {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(142, 104, 50, 0.16);
  border-radius: 8px;
  background: rgba(255, 248, 232, 0.76);
  padding: 10px;
}

.theme-evidence-requirement-grid article.p0 {
  border-color: rgba(178, 93, 21, 0.34);
  background: rgba(255, 246, 224, 0.95);
}

.theme-evidence-requirement-grid header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.theme-evidence-requirement-grid b {
  color: var(--accent-dark);
  font-size: 12px;
}

.theme-evidence-requirement-grid strong {
  color: #211a10;
  font-size: 13px;
}

.theme-evidence-requirement-grid small {
  color: #7a6a51;
  font-size: 11px;
  line-height: 1.4;
}

.theme-model-details summary,
.opportunity-evaluation-band summary {
  display: flex;
  cursor: pointer;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  padding: 13px 4px;
  color: var(--amber-deep, #8a5810);
  font-weight: 800;
}

.theme-model-details summary::-webkit-details-marker,
.opportunity-evaluation-band summary::-webkit-details-marker {
  display: none;
}

.theme-model-details summary::after,
.opportunity-evaluation-band summary::after {
  content: "▸";
  display: inline-grid;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid rgba(196, 134, 37, 0.24);
  border-radius: 999px;
  background: rgba(255, 248, 230, 0.82);
  color: #8a5810;
  font-size: 12px;
  transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
}

.theme-model-details[open] summary::after,
.opportunity-evaluation-band[open] summary::after {
  content: "▾";
}

.theme-model-details summary:hover,
.opportunity-evaluation-band summary:hover,
.theme-model-details summary:focus-visible,
.opportunity-evaluation-band summary:focus-visible {
  color: var(--accent-dark);
  outline: none;
}

.theme-model-details summary:hover::after,
.opportunity-evaluation-band summary:hover::after,
.theme-model-details summary:focus-visible::after,
.opportunity-evaluation-band summary:focus-visible::after {
  border-color: rgba(196, 134, 37, 0.44);
  background: rgba(255, 242, 204, 0.94);
}

.theme-model-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  padding: 0 4px 18px;
}

.theme-model-grid section {
  min-width: 0;
}

.theme-model-grid section > strong {
  display: block;
  margin-bottom: 9px;
  color: var(--ink, #211a10);
}

.theme-model-grid p {
  margin: 0;
  padding: 8px 0;
  border-top: 1px solid rgba(190, 140, 49, 0.22);
}

.theme-model-grid p b,
.theme-model-grid p span,
.candidate-mapping,
.candidate-exit {
  display: block;
}

.theme-model-grid p span,
.candidate-mapping,
.candidate-exit {
  margin-top: 3px;
  color: var(--ink-muted, #75684f);
  font-size: 12px;
  line-height: 1.45;
}

.candidate-mapping {
  color: var(--amber-deep, #8a5810);
}

@media (max-width: 900px) {
  .sector-method-note,
  .theme-model-grid,
  .theme-evidence-requirements,
  .theme-evidence-requirement-grid {
    grid-template-columns: 1fr;
  }
}

* {
  box-sizing: border-box;
  min-width: 0;
}

body {
  margin: 0;
  background:
    radial-gradient(circle at 76% 14%, rgba(255, 246, 218, 0.72), transparent 28rem),
    linear-gradient(135deg, rgba(87, 58, 24, 0.14), transparent 24rem),
    var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  overflow-x: hidden;
}

[hidden] {
  display: none !important;
}

body[data-market-color-mode="cn"] {
  --positive: #b97820;
  --negative: #a44855;
}

button,
input,
select {
  font: inherit;
}

button {
  min-height: 38px;
  border: 1px solid rgba(196, 134, 37, 0.32);
  border-radius: 8px;
  padding: 0 14px;
  color: #fffaf0;
  background: linear-gradient(180deg, #8b5a1e, var(--accent-dark));
  cursor: pointer;
  white-space: nowrap;
}

button,
.nav-item,
.report-item,
.table-link {
  transition: border-color 160ms ease, background 160ms ease, color 160ms ease, transform 160ms ease;
}

button:hover {
  border-color: rgba(196, 134, 37, 0.58);
  background: linear-gradient(180deg, #9a6626, #74501f);
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.52;
}

button.ghost {
  min-height: 30px;
  padding: 0 10px;
  color: var(--accent-dark);
  background: var(--soft);
}

button.secondary {
  border: 1px solid var(--line);
  background: var(--panel-3);
  color: var(--accent-dark);
}

button.secondary:hover {
  background: var(--soft);
}

button:active {
  transform: translateY(1px);
}

button.wide {
  width: 100%;
}

input,
select {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 10px;
  background: var(--panel-3);
  color: var(--ink);
}

.app-shell {
  display: grid;
  grid-template-columns: minmax(286px, 318px) minmax(0, 1fr);
  min-height: 100vh;
  padding: 0;
  gap: 0;
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(128, 82, 28, 0.32);
  border-right: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at 18% 12%, rgba(229, 184, 91, 0.23), transparent 17rem),
    linear-gradient(180deg, #fffaf0, #f3e7ce 60%, #e8d5b5);
  color: #251b10;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(100, 116, 139, 0.62) transparent;
}

.sidebar::-webkit-scrollbar,
.reports-list::-webkit-scrollbar,
.market-table-wrap::-webkit-scrollbar,
.markdown-view table::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.sidebar::-webkit-scrollbar-thumb,
.reports-list::-webkit-scrollbar-thumb,
.market-table-wrap::-webkit-scrollbar-thumb,
.markdown-view table::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(100, 116, 139, 0.62);
}

.sidebar-primary,
.sidebar-footer {
  display: flex;
  flex: 0 0 auto;
  min-height: 0;
  flex-direction: column;
  gap: 12px;
  padding: 20px 18px 0;
}

.sidebar-primary {
  border-right: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  overflow: visible;
}

.sidebar-footer {
  margin-top: auto;
  padding-bottom: 18px;
  background: transparent;
  overflow: visible;
}

.sidebar-footer-actions {
  display: grid;
  gap: 8px;
}

.sidebar-footer-actions button {
  width: 100%;
}

.context-header {
  display: grid;
  gap: 4px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(148, 111, 55, 0.20);
}

.context-header span {
  color: var(--muted);
  font-size: 12px;
}

.context-header strong {
  font-size: 18px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 2px 0 13px;
  border-bottom: 1px solid rgba(148, 111, 55, 0.20);
}

.brand-mark {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  background: linear-gradient(145deg, #fff7df, var(--amber-bright));
  color: var(--accent-dark);
  font-weight: 800;
}

.brand h1,
.brand p,
.panel h2,
.workspace-header h2,
.workspace-header p {
  margin: 0;
}

.brand h1 {
  font-size: 20px;
  letter-spacing: 0;
}

.brand p,
.workspace-header p {
  color: var(--muted);
  font-size: 13px;
}

.sidebar .brand p,
.sidebar .context-header span,
.sidebar .nav-item small {
  color: rgba(93, 73, 43, 0.74);
}

.product-intro {
  border: 1px solid rgba(148, 111, 55, 0.22);
  border-radius: 16px;
  background: rgba(255, 252, 243, 0.62);
  padding: 10px 11px;
  color: #4e3b1f;
  font-size: 13px;
  line-height: 1.5;
}

.workspace-nav {
  display: grid;
  gap: 3px;
  padding: 6px 0;
}

.nav-item {
  display: grid;
  min-height: 44px;
  padding: 8px 12px;
  justify-items: start;
  gap: 5px;
  border: 1px solid transparent;
  border-radius: 16px;
  background: transparent;
  color: #4d3a22;
  text-align: left;
}

@media (min-width: 761px) and (max-width: 1180px) {
  .app-shell {
    grid-template-columns: minmax(290px, 320px) minmax(0, 1fr);
  }

  .sidebar-primary,
  .sidebar-footer {
    padding: 16px;
  }
}

.nav-item span {
  color: #2a2115;
  font-size: 14px;
  font-weight: 800;
}

.nav-item small {
  color: rgba(93, 73, 43, 0.68);
  font-size: 11px;
}

.nav-item:hover,
.nav-item.active {
  border-color: rgba(196, 134, 37, 0.28);
  background: rgba(255, 250, 236, 0.78);
  color: var(--ink);
}

.panel {
  border: 1px solid rgba(148, 111, 55, 0.18);
  border-radius: 16px;
  background: rgba(255, 253, 247, 0.58);
  padding: 11px;
  overflow: visible;
  box-shadow: none;
}

.panel h2 {
  margin-bottom: 10px;
  font-size: 15px;
  color: #3a2c18;
}

.sidebar input,
.sidebar select {
  border-color: rgba(148, 111, 55, 0.22);
  background: rgba(255, 252, 242, 0.72);
  color: #2a2115;
}

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

.panel > select + .field-row {
  margin-top: 8px;
}

.field-row button {
  min-width: 60px;
}

.field-stack {
  display: grid;
  gap: 8px;
}

.auth-panel {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(30, 22, 12, 0.62);
  backdrop-filter: blur(3px);
}

.auth-card {
  position: relative;
  display: grid;
  width: min(420px, 100%);
  overflow: hidden;
  border: 1px solid rgba(148, 111, 55, 0.34);
  border-radius: 16px;
  background: var(--panel);
  box-shadow: 0 24px 60px rgba(40, 26, 8, 0.40);
}

.auth-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 34px;
  min-height: 34px;
  border-radius: 999px;
  padding: 0;
  background: rgba(255, 250, 236, 0.72);
}

.auth-head {
  padding: 24px 26px 0;
}

.auth-head h2 {
  margin: 0;
  font-size: 21px;
}

.auth-head p,
.auth-disclaimer {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.auth-tabs {
  display: flex;
  gap: 6px;
  padding: 16px 26px 0;
}

.auth-tab {
  flex: 1;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg-elevated);
  color: var(--muted);
  font-weight: 800;
}

.auth-tab.active {
  border-color: rgba(196, 134, 37, 0.42);
  background: var(--soft);
  color: var(--accent-dark);
}

.auth-body {
  display: grid;
  gap: 12px;
  padding: 18px 26px 24px;
}

.auth-field {
  display: grid;
  gap: 6px;
  color: #4f402c;
  font-size: 12px;
  font-weight: 800;
}

.auth-field input {
  min-height: 40px;
}

.auth-check {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.auth-check input {
  width: 16px;
  height: 16px;
  margin-top: 1px;
  accent-color: var(--accent);
}

.auth-body button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.auth-message {
  min-height: 18px;
  margin: 0;
  color: var(--risk);
  font-size: 13px;
}

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

.quick-symbols button {
  min-height: 32px;
  border: 1px solid rgba(148, 111, 55, 0.18);
  background: rgba(255, 252, 242, 0.72);
  color: #6a5130;
  font-size: 12px;
}

.quick-symbols button:hover {
  border-color: rgba(196, 134, 37, 0.42);
  background: rgba(255, 242, 204, 0.92);
  color: #2a2115;
}

.section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.history-panel {
  min-height: 180px;
}

.reports-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  max-height: 44vh;
  overflow-y: auto;
  padding-right: 3px;
}

.status-cards {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.account-admin-panel {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 12px;
}

.account-create-form {
  grid-template-columns: 1fr;
}

.account-users-list {
  display: grid;
  gap: 8px;
}

.account-user-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
  border-top: 1px solid rgba(234, 223, 201, 0.82);
  padding-top: 10px;
}

.account-user-row > div:first-child {
  display: grid;
  gap: 3px;
}

.account-user-row strong,
.account-user-row span {
  overflow-wrap: anywhere;
}

.account-user-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.account-user-actions button {
  min-height: 30px;
  padding: 0 9px;
  font-size: 12px;
}

.config-editor {
  margin-top: 10px;
}

.config-groups {
  gap: 12px;
}

.config-group {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-3);
  padding: 12px;
}

.config-group p,
.config-group small {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.watchlist-add {
  margin-top: 10px;
}

.watchlist-view {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.symbol-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 5px 8px 5px 10px;
  background: var(--panel-3);
  color: var(--ink);
  font-size: 13px;
}

.chip-action {
  display: inline-grid;
  width: 20px;
  height: 20px;
  min-height: 20px;
  place-items: center;
  border-radius: 999px;
  padding: 0;
  background: rgba(248, 249, 250, 0.92);
  color: var(--muted);
}

.chip-action:hover {
  background: rgba(255, 127, 80, 0.18);
  color: var(--risk);
}

.status-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  background: var(--panel-3);
  font-size: 13px;
}

.pill {
  border-radius: 999px;
  padding: 3px 8px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.pill.ok {
  background: color-mix(in srgb, var(--positive) 16%, transparent);
  color: var(--positive);
}

.pill.warn {
  background: rgba(245, 165, 36, 0.14);
  color: var(--amber);
}

.report-item {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 9px;
  background: var(--panel-3);
  color: var(--ink);
  text-align: left;
  overflow-wrap: anywhere;
  white-space: normal;
  line-height: 1.35;
}

.report-item:hover {
  border-color: var(--accent);
  background: var(--soft);
}

.report-item span {
  display: block;
}

.report-item span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
}

.report-item strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 14px;
}

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

.report-filters input,
.report-filters select {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel-3);
  color: var(--ink);
  padding: 0 10px;
}

.workspace {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(128, 82, 28, 0.20);
  border-radius: 0;
  background:
    radial-gradient(circle at 76% 6%, rgba(255, 241, 189, 0.48), transparent 24rem),
    var(--bg-elevated);
}

.workspace-header {
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid rgba(148, 111, 55, 0.16);
  position: sticky;
  top: 0;
  z-index: 5;
  background: rgba(255, 253, 247, 0.92);
  backdrop-filter: blur(12px);
  padding: 16px 28px;
}

.workspace-header > div:first-child {
  min-width: 0;
}

.workspace-header h2 {
  margin-top: 2px;
  font-size: 20px;
}

#fileLink {
  color: var(--accent-dark);
  text-decoration: none;
  font-weight: 700;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: flex-end;
  color: var(--muted);
  font-size: 13px;
}

.header-actions button {
  min-height: 32px;
}

.account-shell {
  position: relative;
}

.account-capsule {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  border-color: rgba(148, 111, 55, 0.24);
  border-radius: 999px;
  background: rgba(255, 250, 236, 0.82);
  padding: 4px 10px 4px 5px;
  color: #342716;
}

.account-avatar {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  background: #2f2418;
  color: #fff3d8;
  font-weight: 900;
}

.account-copy {
  display: grid;
  gap: 1px;
  text-align: left;
}

.account-copy strong {
  max-width: 120px;
  overflow: hidden;
  color: #2a2115;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-copy small {
  color: var(--muted);
  font-size: 11px;
}

.account-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 10;
  display: grid;
  min-width: 190px;
  gap: 6px;
  border: 1px solid rgba(148, 111, 55, 0.24);
  border-radius: 8px;
  background: var(--panel);
  padding: 8px;
  box-shadow: 0 18px 42px rgba(33, 27, 18, 0.18);
}

.account-menu button {
  justify-content: flex-start;
  width: 100%;
  border-color: transparent;
  background: transparent;
  color: #40311d;
  text-align: left;
}

.account-menu button:hover {
  border-color: rgba(196, 134, 37, 0.24);
  background: var(--soft);
}

.workspace-toolbars {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
  border-bottom: 1px solid rgba(148, 111, 55, 0.14);
  background: rgba(255, 250, 236, 0.66);
  padding: 14px 24px;
}

.module-toolbar {
  min-width: 0;
}

.module-toolbar .watchlist-view {
  max-height: 118px;
  overflow-y: auto;
}

.workspace-toolbars input,
.workspace-toolbars select {
  min-width: 0;
}

.report-library-drawer {
  position: absolute;
  top: 76px;
  right: 24px;
  z-index: 8;
  width: min(480px, calc(100vw - 48px));
  max-height: min(640px, calc(100vh - 112px));
  overflow: hidden;
  border: 1px solid rgba(148, 111, 55, 0.24);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: 0 18px 52px rgba(33, 27, 18, 0.18);
}

.report-library-drawer .history-panel {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 14px;
}

.report-library-drawer .reports-list {
  max-height: min(48vh, 420px);
}

.markdown-view {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 22px 24px 56px;
  line-height: 1.65;
  overflow-x: hidden;
}

.workspace-settings-panel {
  display: grid;
  gap: 18px;
  padding: 28px 30px 56px;
}

.settings-main-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid rgba(148, 111, 55, 0.18);
  border-radius: 10px;
  background: rgba(255, 253, 247, 0.72);
  padding: 18px 20px;
  box-shadow: 0 1px 3px rgba(33, 27, 18, 0.10);
}

.settings-main-head span {
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 800;
}

.settings-main-head h2 {
  margin: 3px 0 5px;
  font-size: 24px;
  letter-spacing: 0;
}

.settings-main-head p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.settings-status-panel {
  border: 1px solid rgba(148, 111, 55, 0.16);
  border-radius: 10px;
  background: rgba(255, 253, 247, 0.62);
  padding: 16px;
  box-shadow: 0 1px 3px rgba(33, 27, 18, 0.08);
}

.workspace-settings-panel .status-cards {
  grid-template-columns: repeat(4, minmax(132px, 1fr));
  gap: 10px;
}

.workspace-settings-panel .status-card {
  min-height: 66px;
  align-items: flex-start;
  flex-direction: column;
  justify-content: space-between;
  padding: 11px 12px;
  background: rgba(255, 248, 232, 0.74);
}

.workspace-settings-panel .config-editor {
  margin-top: 0;
}

.workspace-settings-panel .config-groups {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.workspace-settings-panel .config-group {
  min-height: 154px;
  padding: 16px;
  background: rgba(255, 253, 247, 0.70);
  box-shadow: 0 1px 3px rgba(33, 27, 18, 0.08);
}

.workspace-settings-panel .config-group-wide,
.workspace-settings-panel .account-admin-panel,
.workspace-settings-panel #saveConfigBtn {
  grid-column: 1 / -1;
}

.workspace-settings-panel #saveConfigBtn {
  justify-self: start;
  width: auto;
  min-width: 180px;
}

.action-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.action-strip button {
  min-height: 32px;
  background: var(--soft);
  color: var(--accent-dark);
}

.action-strip button:hover {
  background: rgba(0, 123, 255, 0.18);
}

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

.summary-card {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(33, 27, 20, 0.82);
  padding: 12px;
  box-shadow: 0 8px 22px rgba(16, 24, 40, 0.06);
}

.summary-card span {
  color: var(--muted);
  font-size: 12px;
}

.summary-card strong {
  color: var(--ink);
  font-size: 15px;
  overflow-wrap: anywhere;
}

.research-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 14px;
  margin-bottom: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(33, 27, 20, 0.86);
  padding: 18px;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.research-header span,
.quote-tile span,
.quote-tile small {
  color: var(--muted);
  font-size: 13px;
}

.research-header h2 {
  margin: 6px 0;
  border: 0;
  padding: 0;
  font-size: 24px;
}

.research-header p {
  margin: 0;
}

.quote-tile {
  display: grid;
  align-content: center;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 14px;
}

.quote-tile strong {
  font-size: 24px;
}

.visual-panel {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(33, 27, 20, 0.82);
  padding: 16px;
  overflow: hidden;
  box-shadow: none;
}

.panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.panel-heading h3 {
  margin: 0;
  font-size: 16px;
}

.panel-heading span,
.score-row small,
.quality-item span {
  color: var(--muted);
  font-size: 12px;
}

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

.quality-item {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px;
  background: var(--panel-3);
}

.quality-item div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.mini-meter,
.score-meter,
.bar-track {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(189, 195, 199, 0.16);
}

.mini-meter i,
.score-meter i,
.bar-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), #42a5ff);
}

.quality-warnings {
  margin: 0;
  padding-left: 18px;
}

.score-list,
.bar-list,
.factor-grid {
  display: grid;
  gap: 10px;
}

.score-row {
  display: grid;
  grid-template-columns: minmax(130px, 1.2fr) minmax(120px, 2fr) 48px minmax(70px, 0.8fr);
  align-items: center;
  gap: 10px;
}

.score-row span {
  overflow-wrap: anywhere;
}

.score-row em {
  color: var(--muted);
  font-style: normal;
}

.bar-row {
  display: grid;
  grid-template-columns: minmax(88px, 0.8fr) minmax(120px, 2fr) minmax(58px, 0.5fr);
  align-items: center;
  gap: 10px;
  font-size: 13px;
}

.bar-row.is-pending {
  opacity: 0.6;
}

.bar-row.is-pending strong {
  font-weight: 500;
  color: var(--muted, #8a94a6);
  font-style: italic;
}

.scatter-panel.is-pending {
  opacity: 0.75;
}

.scatter-pending-note {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--muted, #8a94a6);
}

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

.ranking-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.ranking-tile {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(33, 27, 20, 0.86);
  padding: 14px;
  min-height: 132px;
}

.ranking-tile strong {
  color: var(--ink);
  font-size: 20px;
  line-height: 1.2;
}

.ranking-tile span,
.ranking-tile small {
  color: var(--muted);
  font-size: 12px;
}

.portfolio-hero {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.portfolio-hero div {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 12px;
}

.portfolio-hero span {
  color: var(--muted);
  font-size: 12px;
}

.portfolio-hero strong {
  font-size: 24px;
}

.portfolio-thesis-health {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  border: 1px solid rgba(96, 165, 250, 0.24);
  border-radius: 12px;
  background: rgba(2, 8, 23, 0.34);
  padding: 14px;
}

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

.portfolio-thesis-summary article,
.portfolio-review-list article {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-3);
  padding: 12px;
  min-width: 0;
}

.portfolio-thesis-summary span,
.portfolio-review-list span {
  color: var(--muted);
  font-size: 12px;
}

.portfolio-thesis-summary strong {
  color: var(--accent-dark);
  font-size: 24px;
}

.portfolio-review-list {
  display: grid;
  gap: 10px;
}

.portfolio-review-list article {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.portfolio-review-list div {
  display: grid;
  gap: 4px;
}

.portfolio-review-list p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
}

.mentor-bias-panel {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

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

.mentor-bias-grid article,
.mentor-snapshot-grid article,
.mentor-valuation-grid article {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-3);
  padding: 12px;
  min-width: 0;
}

.mentor-bias-grid article.bull {
  border-color: rgba(35, 196, 117, 0.38);
}

.mentor-bias-grid article.bear {
  border-color: rgba(255, 127, 80, 0.42);
}

.mentor-bias-grid span,
.mentor-snapshot-grid span,
.mentor-valuation-grid span,
.mentor-consensus-strip span {
  color: var(--muted);
  font-size: 12px;
}

.mentor-bias-grid strong,
.mentor-snapshot-grid strong,
.mentor-valuation-grid strong {
  color: var(--ink);
  overflow-wrap: anywhere;
}

.mentor-bias-grid p,
.mentor-snapshot-grid p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.macro-heat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
}

.macro-heat-grid article {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 12px;
}

.macro-heat-grid span,
.macro-heat-grid small {
  color: var(--muted);
  font-size: 12px;
}

.news-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.news-actions button {
  min-height: 26px;
  padding: 0 8px;
  border: 1px solid var(--line);
  background: var(--panel-3);
  color: var(--muted);
  font-size: 12px;
}

.news-actions span {
  color: var(--muted);
  font-size: 12px;
}

.change-list {
  display: grid;
  gap: 10px;
}

.change-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: var(--panel-3);
}

.change-item div {
  display: grid;
  gap: 4px;
}

.change-item .change-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.change-actions button {
  min-height: 28px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  color: var(--muted);
  padding: 4px 10px;
  font-size: 12px;
}

.change-actions button:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.change-item span {
  color: var(--muted);
  font-size: 13px;
}

.change-item b {
  min-width: 52px;
  border-radius: 999px;
  padding: 5px 9px;
  background: rgba(255, 255, 255, 0.06);
  text-align: center;
}

.change-item b.up {
  background: color-mix(in srgb, var(--positive) 16%, transparent);
  color: var(--positive);
}

.change-item b.down {
  background: color-mix(in srgb, var(--negative) 16%, transparent);
  color: var(--negative);
}

.scatter-panel,
.metric-table-panel {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  padding: 14px;
  box-shadow: var(--shadow);
}

.scatter-plot {
  position: relative;
  height: 280px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background:
    linear-gradient(rgba(141, 153, 173, 0.25) 1px, transparent 1px) 0 0 / 100% 25%,
    linear-gradient(90deg, rgba(141, 153, 173, 0.18) 1px, transparent 1px) 0 0 / 25% 100%,
    var(--panel-3);
}

.sparkline,
.price-chart {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background:
    linear-gradient(rgba(41, 49, 66, 0.65) 1px, transparent 1px) 0 0 / 100% 25%,
    linear-gradient(90deg, rgba(41, 49, 66, 0.38) 1px, transparent 1px) 0 0 / 20% 100%,
    var(--panel-3);
}

.sparkline {
  height: 180px;
}

.price-chart {
  display: grid;
  gap: 8px;
  padding: 14px 14px 10px;
}

.chart-ranges {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.chart-ranges button {
  min-height: 34px;
  min-width: 48px;
  border-radius: 8px;
  padding: 0 10px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.06);
}

.chart-ranges button.active {
  color: var(--ink);
  background: rgba(0, 123, 255, 0.22);
}

.price-chart-canvas {
  min-height: 280px;
}

.price-chart-svg {
  display: block;
  width: 100%;
  height: 280px;
  overflow: visible;
}

.chart-grid {
  stroke: rgba(189, 195, 199, 0.32);
}

.chart-line {
  fill: none;
  stroke: var(--accent);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.chart-ma {
  fill: none;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.9;
}

.chart-ma.ma20 {
  stroke: var(--amber);
}

.chart-ma.ma60 {
  stroke: var(--purple);
}

.chart-y-label,
.chart-x-label {
  fill: var(--muted);
  font-size: 12px;
}

.chart-x-label {
  text-anchor: middle;
}

.chart-crosshair {
  stroke: rgba(244, 247, 251, 0.72);
  stroke-width: 1;
}

.chart-hover-dot {
  fill: var(--accent);
  stroke: #fff;
  stroke-width: 2;
}

.chart-tooltip rect {
  fill: var(--accent);
}

.chart-tooltip text {
  fill: #fff;
  font-size: 12px;
}

.history-stats {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 13px;
}

.history-stats strong {
  color: var(--ink);
  font-size: 18px;
}

.scatter-plot::before {
  content: "低 PE";
  position: absolute;
  left: 10px;
  bottom: 8px;
  color: var(--muted);
  font-size: 12px;
}

.scatter-plot::after {
  content: "高成长";
  position: absolute;
  right: 10px;
  top: 8px;
  color: var(--muted);
  font-size: 12px;
}

.scatter-point {
  position: absolute;
  min-height: 0;
  transform: translate(-50%, -50%);
  border: 2px solid white;
  border-radius: 999px;
  padding: 6px 8px;
  background: var(--accent);
  box-shadow: 0 6px 16px rgba(21, 94, 239, 0.28);
  font-size: 11px;
}

.metric-column-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.metric-column-picker label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--muted);
  font-size: 13px;
}

.metric-column-picker input {
  width: auto;
  min-height: 0;
}

.metric-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--panel-3);
}

.metric-table th,
.metric-table td {
  border: 1px solid var(--line);
  padding: 8px 9px;
  text-align: left;
  font-size: 13px;
}

.metric-table th {
  background: rgba(255, 255, 255, 0.04);
}

.home-brief {
  display: grid;
  gap: 18px;
}

.living-thesis-shell {
  display: grid;
  gap: 16px;
  margin-bottom: 18px;
}

.thesis-hero {
  display: grid;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(33, 27, 20, 0.86);
  padding: 22px;
  box-shadow: var(--shadow);
}

.thesis-title-row,
.thesis-badges,
.thesis-scenario-grid article > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.thesis-title-row span,
.thesis-badges b,
.thesis-metrics span,
.thesis-scenario-grid span,
.thesis-scenario-grid small,
.valuation-marker span,
.thesis-evidence-list span,
.thesis-evidence-list small {
  color: var(--muted);
  font-size: 12px;
}

.thesis-title-row h2 {
  margin: 4px 0 0;
  font-size: 30px;
}

.thesis-badges strong,
.thesis-badges b {
  border: 1px solid rgba(46, 213, 115, 0.42);
  border-radius: 6px;
  padding: 7px 10px;
  background: color-mix(in srgb, var(--positive) 13%, transparent);
  color: var(--positive);
}

.thesis-badges b {
  border-color: rgba(142, 197, 255, 0.35);
  background: rgba(0, 123, 255, 0.10);
  color: var(--accent-dark);
}

.thesis-alert {
  border-left: 4px solid var(--risk);
  border-radius: 8px;
  background: color-mix(in srgb, var(--risk) 12%, transparent);
  padding: 12px;
  color: #ffd6c8;
  font-weight: 800;
}

.thesis-headline,
.thesis-hero blockquote {
  margin: 0;
  color: var(--panel-2);
}

.thesis-hero blockquote {
  border-left: 4px solid var(--amber);
  background: rgba(255, 165, 0, 0.08);
  padding: 12px 14px;
  font-size: 16px;
  line-height: 1.7;
}

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

.thesis-metrics article,
.thesis-scenario-grid article,
.thesis-list-card,
.thesis-accordion,
.thesis-evidence-list article,
.thesis-formulas article {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 12px;
}

.thesis-metrics article,
.thesis-scenario-grid article,
.thesis-list-card,
.thesis-evidence-list article,
.thesis-formulas article {
  display: grid;
  gap: 6px;
}

.thesis-metrics strong,
.thesis-scenario-grid strong {
  color: var(--ink);
  font-size: 24px;
  overflow-wrap: anywhere;
}

.thesis-metrics small,
.thesis-scenario-grid b {
  color: var(--accent-dark);
  font-weight: 800;
}

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

.scenario-explainer {
  margin: -2px 0 2px;
  color: var(--muted);
  line-height: 1.65;
}

.thesis-scenario-grid article.bull {
  border-color: rgba(46, 213, 115, 0.42);
}

.thesis-scenario-grid article.base {
  border-color: rgba(0, 123, 255, 0.48);
}

.thesis-scenario-grid article.bear {
  border-color: rgba(255, 71, 87, 0.42);
}

.thesis-scenario-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.thesis-scenario-grid em,
.thesis-formulas small {
  display: block;
  color: var(--muted);
  font-style: normal;
  line-height: 1.5;
}

.valuation-range {
  position: relative;
  min-height: 108px;
  margin-top: 8px;
  padding: 42px 12px 14px;
}

.valuation-track {
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--negative), var(--amber), var(--positive));
}

.valuation-marker {
  position: absolute;
  top: 8px;
  display: grid;
  justify-items: center;
  gap: 2px;
  transform: translateX(-50%);
  white-space: nowrap;
}

.valuation-marker::after {
  content: "";
  width: 1px;
  height: 38px;
  background: rgba(248, 249, 250, 0.5);
}

.valuation-marker strong {
  border-radius: 6px;
  padding: 2px 6px;
  background: var(--panel);
  color: var(--ink);
  font-size: 12px;
}

.valuation-marker.bull strong {
  color: var(--positive);
}

.valuation-marker.bear strong {
  color: var(--negative);
}

.valuation-marker.base strong,
.valuation-marker.current strong {
  color: var(--accent-dark);
}

.valuation-marker.current {
  top: 58px;
}

.valuation-marker.current::after {
  order: -1;
  height: 18px;
}

.thesis-core-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}

.thesis-two-column {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.thesis-two-column article {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(15, 23, 32, 0.88);
  padding: 14px;
}

.thesis-two-column strong {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
}

.thesis-two-column p {
  margin: 0;
  color: var(--panel-2);
}

.thesis-list-card h3,
.thesis-accordion summary {
  margin: 0;
  color: var(--ink);
}

.thesis-list-card ul,
.thesis-accordion ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 18px;
}

.thesis-list-card li,
.thesis-accordion li {
  color: var(--panel-2);
}

.thesis-list-card.insight {
  border-color: rgba(255, 165, 0, 0.34);
}

.thesis-list-card.risk {
  border-color: rgba(255, 71, 87, 0.34);
}

.thesis-list-card.revision {
  border-color: rgba(0, 123, 255, 0.34);
}

.thesis-list-card.health {
  border-color: rgba(38, 175, 129, 0.34);
}

.thesis-list-card.preference {
  border-color: rgba(255, 127, 80, 0.36);
}

.thesis-list-card.preference strong {
  display: block;
  margin: 6px 0 2px;
  color: var(--accent);
}

.thesis-list-card.preference small {
  color: var(--muted);
}

.thesis-list-card.health strong {
  display: block;
  margin: 6px 0 2px;
  color: var(--positive);
  font-size: 24px;
}

.thesis-list-card.health small {
  color: var(--muted);
}

.thesis-list-card.revision small {
  color: var(--muted);
}

.thesis-accordion-stack {
  display: grid;
  gap: 10px;
}

.thesis-assumption-list {
  display: grid;
  gap: 10px;
}

.thesis-assumption-list article,
.thesis-reflection-list article {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(15, 23, 32, 0.72);
}

.thesis-assumption-list header,
.thesis-reflection-list header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.thesis-assumption-list span,
.thesis-reflection-list span {
  color: var(--muted);
}

.thesis-assumption-list p,
.thesis-assumption-list small,
.thesis-reflection p,
.thesis-reflection-list p,
.thesis-reflection-list small,
.thesis-reflection-list em {
  margin: 0;
}

.thesis-reflection {
  display: grid;
  gap: 12px;
}

.thesis-reflection-list {
  display: grid;
  gap: 10px;
}

.thesis-reflection-list em {
  color: var(--accent);
  font-style: normal;
}

.thesis-memory-timeline {
  border-color: rgba(96, 165, 250, 0.24);
}

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

.thesis-timeline-grid article {
  position: relative;
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-3);
  padding: 13px;
  min-width: 0;
}

.thesis-timeline-grid article.bull {
  border-color: rgba(35, 196, 117, 0.38);
}

.thesis-timeline-grid article.bear {
  border-color: rgba(255, 127, 80, 0.42);
}

.thesis-timeline-grid span {
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.thesis-timeline-grid strong {
  color: var(--ink);
  overflow-wrap: anywhere;
}

.thesis-timeline-grid p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.thesis-monitor-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.thesis-monitor-summary article {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(15, 23, 32, 0.72);
}

.thesis-monitor-summary span,
.thesis-monitor-item span,
.thesis-monitor-item small {
  color: var(--muted);
}

.thesis-monitor-summary strong {
  color: var(--accent);
  font-size: 24px;
}

.thesis-monitor-list {
  display: grid;
  gap: 10px;
}

.thesis-monitor-item {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) auto;
  gap: 6px 14px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(15, 23, 32, 0.72);
}

.thesis-monitor-item div {
  display: grid;
  gap: 4px;
}

.thesis-monitor-item b {
  color: var(--accent);
  font-size: 22px;
}

.thesis-monitor-item p,
.thesis-monitor-item small {
  grid-column: 1 / -1;
  margin: 0;
}

.learning-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

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

.learning-story-grid article {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(96, 165, 250, 0.24);
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(59, 130, 246, 0.08), transparent 44%),
    var(--panel-3);
  padding: 13px;
  min-width: 0;
}

.learning-story-grid span {
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.learning-story-grid strong {
  color: var(--ink);
  overflow-wrap: anywhere;
}

.learning-story-grid p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.learning-list article {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(15, 23, 32, 0.72);
}

.learning-list header,
.learning-list article div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.learning-list p,
.learning-list small {
  margin: 0;
  color: var(--muted);
}

.report-accordion {
  display: grid;
  gap: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  overflow: hidden;
  box-shadow: var(--shadow);
}

.report-accordion summary {
  cursor: pointer;
  list-style: none;
  padding: 15px 16px;
  color: var(--ink);
  font-weight: 900;
}

.report-accordion summary::-webkit-details-marker {
  display: none;
}

.report-accordion summary::before {
  content: "▸";
  display: inline-block;
  margin-right: 8px;
  color: var(--muted);
}

.report-accordion[open] summary::before {
  content: "▾";
}

.report-accordion > div {
  display: grid;
  gap: 16px;
  border-top: 1px solid var(--line);
  padding: 16px;
}

.thesis-accordion {
  padding: 0;
  overflow: hidden;
}

.thesis-accordion summary {
  cursor: pointer;
  padding: 13px 14px;
  font-weight: 900;
  list-style: none;
}

.thesis-accordion summary::-webkit-details-marker {
  display: none;
}

.thesis-accordion summary::before {
  content: "▸";
  display: inline-block;
  margin-right: 8px;
  color: var(--muted);
}

.thesis-accordion[open] summary::before {
  content: "▾";
}

.thesis-accordion > div {
  border-top: 1px solid var(--line);
  padding: 14px;
}

.thesis-evidence-list,
.thesis-formulas,
.thesis-detail-grid {
  display: grid;
  gap: 10px;
}

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

.condition-grid article,
.valuation-check-grid article,
.lineage-grid article {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 12px;
}

.condition-grid article.build {
  border-color: rgba(46, 213, 115, 0.34);
}

.condition-grid article.trim {
  border-color: rgba(255, 165, 0, 0.34);
}

.condition-grid article.invalidate {
  border-color: rgba(255, 71, 87, 0.34);
}

.condition-grid span,
.valuation-check-grid span,
.lineage-grid span {
  color: var(--muted);
}

.condition-grid p,
.valuation-check-grid small,
.lineage-grid small {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.lineage-accordion {
  margin-top: 12px;
}

.thesis-evidence-list strong {
  color: var(--ink);
}

.thesis-zone-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--panel-3);
}

.thesis-zone-table th,
.thesis-zone-table td {
  border: 1px solid var(--line);
  padding: 9px;
  text-align: left;
  vertical-align: top;
}

.thesis-zone-table th {
  color: var(--muted);
  background: rgba(255, 255, 255, 0.04);
}

.brief-hero,
.research-main-card {
  border: 1px solid rgba(142, 197, 255, 0.38);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(10, 37, 64, 0.96), rgba(0, 123, 255, 0.08)), var(--panel);
  overflow: hidden;
  box-shadow: var(--shadow);
}

.brief-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 18px;
  padding: 24px;
}

.brief-hero h1,
.research-main-card h1 {
  margin: 4px 0 8px;
  font-size: 34px;
  line-height: 1.15;
}

.brief-hero span,
.research-title-row span,
.key-insight span,
.brief-card span,
.research-footer-card span,
.scenario-card span {
  color: var(--purple);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.brief-hero p,
.research-main-card p,
.scenario-card p,
.agent-card p,
.vote-box p {
  margin: 0;
  color: var(--panel-2);
}

.brief-score,
.brief-card,
.research-footer-card {
  display: grid;
  align-content: center;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(15, 23, 32, 0.88);
  padding: 14px;
}

.brief-score strong,
.brief-card strong,
.research-footer-card strong {
  color: var(--accent-dark);
  font-size: 30px;
  overflow-wrap: anywhere;
}

.brief-score small,
.brief-card small,
.research-footer-card small {
  color: var(--muted);
}

.brief-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}

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

.ranking-strip.compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.theme-research-shell {
  display: grid;
  gap: 16px;
}

.theme-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(250px, 0.55fr);
  gap: 18px;
  align-items: stretch;
  border: 1px solid rgba(142, 197, 255, 0.38);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(10, 37, 64, 0.96), rgba(0, 123, 255, 0.08)), var(--panel);
  padding: 22px;
  box-shadow: var(--shadow);
}

.theme-hero h1 {
  margin: 5px 0 10px;
  font-size: 30px;
}

.theme-hero p {
  margin: 0 0 14px;
  color: var(--panel-2);
}

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

.theme-stat-grid article {
  display: grid;
  align-content: center;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(15, 23, 32, 0.88);
  padding: 12px;
}

.theme-stat-grid span,
.theme-segment-card span,
.theme-segment-card small {
  color: var(--muted);
  font-size: 12px;
}

.theme-stat-grid strong {
  color: var(--accent-dark);
  font-size: 28px;
}

.theme-segment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
}

.theme-revision-grid,
.theme-draft-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
}

.theme-revision-grid article,
.theme-draft-card {
  display: grid;
  align-content: start;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 14px;
}

.theme-revision-grid span,
.theme-revision-grid small,
.theme-draft-card span {
  color: var(--muted);
  font-size: 12px;
}

.theme-revision-grid strong,
.theme-draft-card strong {
  color: var(--accent-dark);
  font-size: 24px;
}

.draft-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.draft-title h4,
.theme-draft-card p {
  margin: 0;
}

.theme-draft-card p {
  color: var(--panel-2);
}

.theme-draft-card .draft-hint {
  color: var(--muted);
  font-size: 13px;
}

.scenario-inline {
  display: inline-block;
  margin-right: 8px;
  font-weight: 800;
}

.scenario-inline.bull {
  color: var(--positive);
}

.scenario-inline.base {
  color: var(--accent-dark);
}

.scenario-inline.bear {
  color: var(--negative);
}

.theme-segment-card {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 14px;
}

.theme-segment-card div:first-child {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.theme-segment-card h4,
.theme-segment-card p {
  margin: 0;
}

.theme-segment-card p {
  color: var(--panel-2);
}

.theme-symbol-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.theme-symbol-row button {
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid var(--line);
  background: var(--panel);
  color: var(--accent-dark);
  font-size: 12px;
}

.playbook-list {
  display: grid;
  gap: 10px;
}

.playbook-list article {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.playbook-list b {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--soft);
  color: var(--accent-dark);
}

.research-console {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.8fr);
  gap: 16px;
  margin-bottom: 18px;
}

.report-workbench {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  border: 1px solid rgba(196, 134, 37, 0.22);
  border-radius: 16px;
  background:
    radial-gradient(circle at 82% 10%, rgba(239, 199, 106, 0.22), transparent 22rem),
    linear-gradient(rgba(142, 104, 50, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(142, 104, 50, 0.04) 1px, transparent 1px),
    rgba(255, 253, 247, 0.88);
  background-size: auto, 28px 28px, 28px 28px, auto;
  padding: 16px;
}

.report-workbench-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
}

.report-workbench-head span,
.report-position-panel span,
.report-symbol-card span {
  color: #8a6c3e;
  font-size: 12px;
  font-weight: 900;
}

.report-workbench-head h3 {
  margin: 3px 0 2px;
  color: #21180d;
  font-size: 24px;
}

.report-workbench-head p {
  margin: 0;
  color: #6f624d;
}

.report-workbench-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.report-symbol-strip {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.report-symbol-card {
  display: grid;
  min-width: 168px;
  justify-items: start;
  gap: 4px;
  border: 1px solid rgba(150, 113, 58, 0.18);
  border-radius: 12px;
  background: rgba(255, 252, 244, 0.84);
  padding: 10px 12px;
  color: #21180d;
  text-align: left;
}

.report-symbol-card.active {
  border-color: rgba(196, 134, 37, 0.48);
  background: linear-gradient(180deg, rgba(255, 243, 199, 0.96), rgba(255, 251, 240, 0.88));
}

.report-symbol-card strong {
  color: #21180d;
  font-size: 16px;
}

.report-symbol-card small {
  color: #7a705f;
}

.report-position-panel {
  display: grid;
  grid-template-columns: minmax(180px, 0.8fr) minmax(160px, 0.7fr) minmax(140px, 0.55fr) minmax(280px, 1.15fr);
  gap: 10px;
  align-items: stretch;
}

.report-position-panel > label,
.report-position-panel > div {
  display: grid;
  align-content: center;
  gap: 6px;
  border: 1px solid rgba(150, 113, 58, 0.16);
  border-radius: 12px;
  background: rgba(255, 250, 236, 0.72);
  padding: 11px 12px;
}

.report-position-panel input[type="number"] {
  min-height: 34px;
  border: 1px solid rgba(150, 113, 58, 0.22);
  border-radius: 10px;
  background: rgba(255, 253, 247, 0.92);
  color: #21180d;
  padding: 0 10px;
  font: inherit;
}

.holding-toggle {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
}

.holding-toggle input {
  width: 18px;
  height: 18px;
  accent-color: var(--amber);
}

.report-position-panel strong {
  color: #21180d;
  font-size: 20px;
}

.report-position-panel nav {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.report-position-panel nav button {
  min-height: 30px;
  border: 1px solid rgba(196, 134, 37, 0.24);
  border-radius: 999px;
  background: rgba(255, 253, 247, 0.80);
  color: var(--accent-dark);
  padding: 0 10px;
  font-weight: 900;
}

.research-flow-guide {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.research-flow-guide article {
  display: grid;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  padding: 12px;
}

.research-flow-guide span,
.research-flow-guide small {
  color: var(--muted);
}

.research-flow-guide strong {
  color: var(--accent-dark);
  font-size: 18px;
  overflow-wrap: anywhere;
}

.trade-mentor-check {
  border-color: rgba(96, 165, 250, 0.26);
}

.trade-verdict {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(2, 8, 23, 0.56);
  padding: 14px;
}

.trade-verdict.bull {
  border-color: rgba(35, 196, 117, 0.42);
}

.trade-verdict.bear {
  border-color: rgba(255, 127, 80, 0.42);
}

.trade-verdict strong {
  color: var(--ink);
  font-size: 20px;
}

.trade-verdict p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

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

.trade-mentor-grid article,
.mentor-citation-grid article {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-3);
  padding: 12px;
  min-width: 0;
}

.mentor-citation-grid article.bull {
  border-color: rgba(35, 196, 117, 0.38);
}

.mentor-citation-grid article.bear {
  border-color: rgba(255, 127, 80, 0.42);
}

.trade-mentor-grid span,
.mentor-citation-grid span {
  color: var(--muted);
  font-size: 12px;
}

.trade-mentor-grid strong,
.mentor-citation-grid strong {
  color: var(--ink);
  overflow-wrap: anywhere;
}

.trade-mentor-grid p,
.mentor-citation-grid p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.mentor-snapshot-panel,
.mentor-valuation-bridge {
  border-color: rgba(96, 165, 250, 0.24);
}

.mentor-snapshot-grid article div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.mentor-snapshot-grid article div strong {
  color: var(--accent-dark);
  font-size: 22px;
}

.mentor-snapshot-grid b {
  font-size: 15px;
}

.mentor-consensus-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 10px;
  align-items: stretch;
}

.mentor-consensus-strip article {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(2, 8, 23, 0.46);
  padding: 12px;
  min-width: 0;
}

.mentor-consensus-strip strong {
  overflow-wrap: anywhere;
}

.research-main-card {
  min-height: 420px;
  padding: 22px;
}

.research-title-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}

.quote-pill {
  display: grid;
  align-content: start;
  justify-items: end;
  gap: 4px;
}

.quote-pill strong {
  color: var(--positive);
  font-size: 26px;
}

.quote-pill span {
  color: var(--muted);
  font-size: 12px;
  letter-spacing: 0;
}

.key-insight {
  display: grid;
  gap: 14px;
  padding-top: 26px;
}

.key-insight p {
  max-width: 880px;
  font-size: 17px;
  line-height: 1.8;
}

.action-row {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
}

.scenario-stack {
  display: grid;
  gap: 12px;
}

.scenario-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-3);
  padding: 16px;
}

.scenario-card > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.scenario-card strong {
  color: var(--accent-dark);
  font-size: 24px;
}

.scenario-card.bull {
  border-color: rgba(34, 197, 94, 0.45);
}

.scenario-card.bear {
  border-color: rgba(244, 63, 94, 0.45);
}

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

.scenario-grid small {
  display: grid;
  gap: 4px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  padding: 8px;
  color: var(--muted);
}

.scenario-grid b {
  color: var(--ink);
}

.valuation-panel p,
.technical-panel p,
.derivatives-panel p {
  margin: 0;
  color: var(--panel-2);
}

.valuation-hero,
.technical-hero,
.scenario-table,
.technical-grid {
  display: grid;
  gap: 12px;
}

.valuation-hero {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.technical-hero,
.scenario-table {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.valuation-hero div,
.technical-hero div,
.scenario-table article,
.technical-signal {
  display: grid;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-3);
  padding: 12px;
}

.valuation-hero span,
.technical-hero span,
.scenario-table small,
.technical-signal span {
  color: var(--muted);
  font-size: 12px;
}

.valuation-hero small {
  color: var(--muted);
  font-size: 12px;
}

.valuation-hero strong,
.technical-hero strong,
.scenario-table span,
.technical-signal b {
  color: var(--accent-dark);
  font-size: 20px;
}

.valuation-method-library {
  display: grid;
  gap: 12px;
}

.stock-valuation-method-fallback {
  margin-top: 12px;
}

.valuation-method-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

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

.valuation-method-decision article {
  display: grid;
  gap: 6px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel-3);
  padding: 11px;
}

.valuation-method-decision span,
.valuation-method-decision small {
  color: var(--muted);
  font-size: 12px;
}

.valuation-method-decision strong {
  color: var(--accent-dark);
  font-size: 16px;
  line-height: 1.35;
}

.valuation-method-tabs button {
  display: grid;
  gap: 3px;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel-3);
  color: var(--ink);
  padding: 8px 11px;
  text-align: left;
}

.valuation-method-tabs button.active {
  border-color: var(--accent);
  background: rgba(245, 158, 11, 0.14);
}

.valuation-method-tabs small {
  color: var(--muted);
  font-size: 11px;
}

.valuation-method-panel {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  padding: 13px;
}

.valuation-method-head {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(160px, 0.45fr) minmax(0, 1fr);
  align-items: start;
}

.valuation-method-head div {
  display: grid;
  gap: 4px;
}

.valuation-method-head span,
.valuation-method-notes span {
  color: var(--muted);
  font-size: 12px;
}

.valuation-method-head strong {
  color: var(--accent-dark);
  font-size: 18px;
}

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

.valuation-method-scenarios section {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 10px;
}

.valuation-method-scenarios span {
  color: var(--accent-dark);
  font-size: 18px;
  font-weight: 800;
}

.valuation-method-scenarios small,
.valuation-method-scenarios em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

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

.valuation-method-notes > div {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 10px;
}

.valuation-method-notes ul {
  margin: 0;
  padding-left: 18px;
}

.valuation-method-notes li {
  color: var(--ink);
  font-size: 12px;
}

/* 估值章节深化：方法轨道 + 三情景价格轴 + 明细下沉。 */
.valuation-workbench {
  gap: 18px;
}

.valuation-workbench-heading {
  align-items: end;
}

.valuation-workbench-heading > div {
  display: grid;
  gap: 3px;
}

.valuation-workbench-heading > div > span {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .08em;
}

.valuation-workbench-heading em {
  border: 1px solid rgba(169, 111, 24, .28);
  border-radius: 999px;
  background: rgba(218, 172, 91, .14);
  color: var(--accent-dark);
  padding: 6px 11px;
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.valuation-workbench .valuation-hero {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  border-block: 1px solid var(--line);
}

.valuation-workbench .valuation-hero div {
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  padding: 13px 14px;
}

.valuation-workbench .valuation-hero div:last-child {
  border-right: 0;
}

.valuation-scenario-chart {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(218, 172, 91, .08), rgba(255, 255, 255, .02));
  padding: 14px 16px 4px;
}

.valuation-scenario-chart-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
}

.valuation-scenario-chart-head > div {
  display: grid;
  gap: 2px;
}

.valuation-scenario-chart-head span,
.valuation-scenario-chart-head small {
  color: var(--muted);
  font-size: 11px;
}

.valuation-scenario-chart svg {
  display: block;
  width: 100%;
  min-width: 620px;
}

.scenario-axis { stroke: var(--line-strong); stroke-width: 2; }
.scenario-range { fill: rgba(187, 132, 44, .18); }
.scenario-marker line { stroke: rgba(169, 111, 24, .45); stroke-dasharray: 3 4; }
.scenario-marker circle { fill: var(--panel); stroke: var(--accent); stroke-width: 3; }
.scenario-marker text { fill: var(--ink); font-size: 11px; font-weight: 700; }
.scenario-marker.tone-0 circle { stroke: #9a7150; }
.scenario-marker.tone-2 circle { stroke: #557a60; }
.scenario-current path { fill: #b64d3c; }
.scenario-current text { fill: #9a3d31; font-size: 10px; font-weight: 800; }

.valuation-scenario-chart.locked {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 18px;
}

.valuation-scenario-chart.locked div { display: grid; gap: 3px; }
.valuation-scenario-chart.locked span { color: var(--muted); font-size: 11px; }
.valuation-workbench-conclusion { border-left: 3px solid var(--accent); padding-left: 12px; line-height: 1.7; }

.valuation-workbench .valuation-method-tabs {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding-bottom: 4px;
}

.valuation-workbench .valuation-method-tabs button {
  min-width: 154px;
  border-radius: 8px 8px 0 0;
  border-bottom-width: 2px;
}

.valuation-scenario-details {
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.valuation-scenario-details summary {
  display: flex;
  justify-content: space-between;
  cursor: pointer;
  color: var(--accent-dark);
  font-weight: 800;
}

.valuation-scenario-details summary span { color: var(--muted); font-size: 11px; font-weight: 500; }
.valuation-scenario-details .scenario-table { margin-top: 12px; }

.technical-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.technical-grid.compact {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.panel-subheading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-top: 6px;
}

.panel-subheading h4 {
  margin: 0;
  font-size: 16px;
}

.panel-subheading span {
  color: var(--muted);
  font-size: 12px;
}

.structure-workbench {
  display: grid;
  gap: 12px;
}

.structure-primary {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(142, 197, 255, 0.4);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(10, 37, 64, 0.88), rgba(0, 123, 255, 0.08));
  padding: 14px;
}

.structure-primary > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.structure-primary span {
  color: var(--muted);
  font-size: 12px;
}

.structure-primary strong {
  color: var(--ink);
  font-size: 20px;
}

.structure-primary b {
  color: var(--accent-dark);
  font-size: 22px;
}

.structure-primary.bull {
  border-color: rgba(34, 197, 94, 0.5);
}

.structure-primary.bear {
  border-color: rgba(244, 63, 94, 0.5);
}

.technical-signal > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.technical-signal.bull {
  border-color: rgba(34, 197, 94, 0.45);
}

.technical-signal.bear {
  border-color: rgba(244, 63, 94, 0.45);
}

.technical-signal.neutral {
  border-color: rgba(159, 183, 209, 0.42);
}

.strategy-note {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(142, 197, 255, 0.4);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(10, 37, 64, 0.88), rgba(0, 123, 255, 0.08));
  padding: 12px;
}

.strategy-note span {
  color: var(--muted);
  font-size: 12px;
}

.strategy-note strong {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.6;
}

.option-list {
  display: grid;
  gap: 12px;
}

.option-list article {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-3);
  padding: 12px;
}

.option-list article > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.option-list article span {
  color: var(--accent-dark);
  font-size: 18px;
  font-weight: 800;
}

.option-list p,
.option-list small {
  margin: 0;
  color: var(--muted);
}

.technical-workbench {
  display: grid;
  gap: 18px;
}

.technical-header {
  margin-bottom: 0;
}

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

.technical-decision-grid article {
  display: grid;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-3);
  padding: 12px;
}

.technical-decision-grid span {
  color: var(--muted);
  font-size: 12px;
}

.technical-decision-grid strong {
  color: var(--accent-dark);
  font-size: 22px;
}

.research-footer-card {
  min-height: 130px;
}

.sentiment-card {
  position: relative;
}

.sentiment-card::before {
  content: "";
  position: absolute;
  inset: 18px auto 18px 18px;
  width: 9px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--negative), var(--amber), var(--positive));
}

.sentiment-card > * {
  margin-left: 20px;
}

.agent-debate {
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
}

.debate-vote {
  display: grid;
  gap: 14px;
  border: 1px solid rgba(142, 197, 255, 0.55);
  border-radius: 14px;
  padding: 18px;
  background: var(--panel);
}

.debate-vote > span {
  color: var(--purple);
  font-weight: 900;
  letter-spacing: 0.14em;
}

.debate-vote h3 {
  margin: 0;
  font-size: 22px;
}

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

.debate-summary-strip,
.debate-rounds {
  display: grid;
  gap: 12px;
}

.debate-summary-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.debate-summary-strip article,
.debate-round {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-3);
  padding: 14px;
}

.debate-summary-strip article {
  display: grid;
  gap: 4px;
}

.debate-summary-strip span,
.debate-round span,
.debate-round small {
  color: var(--muted);
  font-size: 12px;
}

.debate-summary-strip strong {
  color: var(--accent-dark);
  font-size: 22px;
}

.debate-round {
  display: grid;
  gap: 10px;
}

.debate-round > div {
  display: grid;
  gap: 4px;
}

.debate-round ul,
.agent-card ul {
  margin: 0;
  padding-left: 18px;
}

.debate-round.bull {
  border-color: rgba(34, 197, 94, 0.45);
}

.debate-round.bear {
  border-color: rgba(244, 63, 94, 0.45);
}

.debate-round.neutral {
  border-color: rgba(159, 183, 209, 0.42);
}

.debate-mentor-citations {
  display: grid;
  gap: 10px;
}

.review-checklist {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-3);
  padding: 12px;
}

.review-checklist.bull {
  border-color: rgba(35, 196, 117, 0.42);
}

.review-checklist.bear {
  border-color: rgba(240, 82, 103, 0.42);
}

.review-checklist-items {
  display: grid;
  gap: 8px;
}

.review-checklist-items label {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 9px;
  align-items: start;
  border: 1px solid rgba(159, 183, 209, 0.22);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  padding: 9px;
}

.review-checklist-items label.checked {
  border-color: rgba(35, 196, 117, 0.4);
  background: rgba(35, 196, 117, 0.08);
}

.review-checklist-items input {
  margin-top: 3px;
}

.review-checklist-items span {
  color: var(--panel-2);
  line-height: 1.5;
}

.review-checklist-items label.checked span {
  color: #bfe8cf;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.vote-box,
.agent-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-3);
  padding: 16px;
}

.vote-box > div {
  display: flex;
  justify-content: space-between;
}

.vote-box.bull,
.agent-card.bull {
  border-color: rgba(34, 197, 94, 0.45);
}

.vote-box.bear,
.agent-card.bear {
  border-color: rgba(244, 63, 94, 0.45);
}

.vote-box.neutral,
.agent-card.neutral {
  border-color: rgba(159, 183, 209, 0.42);
}

.evidence-box {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  padding: 12px;
}

.evidence-box small {
  color: var(--muted);
}

.skill-lens-panel {
  gap: 14px;
}

.skill-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.skill-tabs button {
  min-height: 34px;
  border: 1px solid var(--line);
  background: var(--panel-3);
  color: var(--muted);
}

.skill-tabs button.active,
.skill-tabs button:hover {
  border-color: rgba(142, 197, 255, 0.58);
  background: rgba(0, 123, 255, 0.12);
  color: var(--accent-dark);
}

.skill-content {
  min-height: 280px;
}

.skill-view {
  display: none;
  gap: 14px;
}

.skill-view.active {
  display: grid;
}

.skill-hero {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid rgba(142, 197, 255, 0.38);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(10, 37, 64, 0.94), rgba(0, 123, 255, 0.08));
  padding: 14px;
}

.skill-hero span {
  color: var(--muted);
  font-size: 12px;
}

.skill-hero h4 {
  margin: 4px 0 0;
  font-size: 20px;
}

.skill-score {
  display: flex;
  align-items: baseline;
  gap: 3px;
  color: var(--muted);
}

.skill-score strong {
  color: var(--accent-dark);
  font-size: 34px;
}

.skill-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.skill-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

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

.skill-list {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-3);
  padding: 12px;
}

.skill-list.wide {
  grid-column: 1 / -1;
}

.skill-list.bull {
  border-color: rgba(35, 196, 117, 0.42);
}

.skill-list.bear {
  border-color: rgba(240, 82, 103, 0.42);
}

.skill-list.neutral {
  border-color: rgba(167, 139, 250, 0.42);
}

.skill-list ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
}

.skill-list li {
  color: var(--panel-2);
}

.research-audit-layer,
.audit-block {
  display: grid;
  gap: 12px;
}

.audit-block {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-3);
  padding: 12px;
}

.evidence-ledger-table,
.change-map-rail,
.valuation-worksheet-grid {
  display: grid;
  gap: 10px;
}

.evidence-ledger-table {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.evidence-ledger-table article,
.change-map-rail article,
.valuation-worksheet-grid article {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(159, 183, 209, 0.22);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  padding: 10px;
}

.evidence-ledger-table article.bull {
  border-color: rgba(35, 196, 117, 0.36);
}

.evidence-ledger-table article.bear {
  border-color: rgba(240, 82, 103, 0.38);
}

.evidence-ledger-table span,
.change-map-rail span,
.valuation-worksheet-grid span,
.evidence-ledger-table small,
.evidence-ledger-table em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.evidence-ledger-table strong,
.change-map-rail strong,
.valuation-worksheet-grid strong {
  color: #f5fbff;
  line-height: 1.45;
}

.change-map-rail {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.change-map-rail article {
  position: relative;
}

.change-map-rail article::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--accent);
}

.change-map-rail p {
  margin: 0;
  color: #b9c8d9;
  font-size: 12px;
  line-height: 1.5;
}

.valuation-worksheet-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.valuation-worksheet-grid ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 18px;
}

.valuation-worksheet-grid li {
  color: var(--panel-2);
  font-size: 12px;
  line-height: 1.45;
}

.skill-screen-shell {
  display: grid;
  gap: 18px;
}

.skill-screen-list {
  display: grid;
  gap: 10px;
}

.skill-screen-list article {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-3);
  padding: 12px;
}

.skill-screen-list article > div:first-child {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.skill-screen-list span,
.skill-screen-list small {
  color: var(--muted);
}

.skill-screen-list button {
  min-height: 0;
  justify-self: start;
  padding: 0;
  background: transparent;
  color: var(--ink);
  font-weight: 800;
  text-align: left;
}

.skill-screen-list button:hover {
  color: var(--accent-dark);
  background: transparent;
}

.skill-screen-list strong {
  color: var(--accent-dark);
  font-size: 20px;
}

.skill-screen-list p {
  margin: 0;
  color: var(--panel-2);
}

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

.mini-skill {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px;
  background: rgba(15, 23, 32, 0.72);
}

.mini-skill strong {
  font-size: 13px;
}

.mini-skill span {
  font-size: 12px;
  line-height: 1.5;
}

.mini-skill.bull {
  border-color: rgba(46, 213, 115, 0.32);
}

.mini-skill.bear {
  border-color: rgba(255, 71, 87, 0.32);
}

.ask-ai-panel {
  margin-bottom: 18px;
  border-color: rgba(142, 197, 255, 0.38);
}

.ask-ai-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.ask-ai-box textarea {
  min-height: 86px;
  resize: vertical;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-3);
  color: var(--ink);
  padding: 10px;
  font: inherit;
}

.ask-ai-box button {
  align-self: stretch;
  min-width: 78px;
}

.ask-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ask-suggestions button {
  min-height: 30px;
  border: 1px solid var(--line);
  background: var(--panel-3);
  color: var(--muted);
  font-size: 12px;
}

.ask-suggestions button:hover {
  border-color: rgba(142, 197, 255, 0.58);
  background: rgba(0, 123, 255, 0.12);
  color: var(--accent-dark);
}

.ask-ai-answer {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-3);
  padding: 12px;
}

.ask-ai-answer article {
  display: grid;
  gap: 10px;
}

.ask-ai-answer article > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
}

.ask-answer-body p,
.ask-ai-answer > p {
  margin: 0 0 8px;
  color: var(--panel-2);
}

.ask-ai-answer ul {
  margin: 0;
  padding-left: 18px;
}

.market-shell {
  display: grid;
  gap: 18px;
}

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

.market-hero div {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  padding: 14px;
  box-shadow: var(--shadow);
}

.market-hero span {
  color: var(--muted);
  font-size: 12px;
}

.market-hero strong {
  font-size: 24px;
}

.market-hero small {
  color: var(--muted);
  font-size: 12px;
}

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

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

.market-mini-list button {
  display: flex;
  min-height: 36px;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--line);
  background: var(--panel-3);
  color: var(--ink);
}

.market-mini-list button:hover,
.table-link:hover {
  background: var(--soft);
}

.market-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.market-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  background: var(--panel-3);
}

.market-table th,
.market-table td {
  border: 1px solid var(--line);
  padding: 9px 10px;
  text-align: left;
  vertical-align: middle;
  font-size: 13px;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.market-table td {
  max-width: 260px;
}

.market-table th {
  background: rgba(255, 255, 255, 0.04);
  color: var(--muted);
}

.table-link {
  min-height: 0;
  padding: 0;
  background: transparent;
  color: var(--accent-dark);
  font-weight: 700;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: 13px;
}

.table-link em {
  color: var(--muted);
  font-style: normal;
  font-weight: 500;
}

.positive {
  color: var(--positive);
}

.negative {
  color: var(--negative);
}

.news-shell,
.event-workbench {
  display: grid;
  gap: 18px;
}

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

.event-module-tabs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
}

.event-module-card {
  display: grid;
  min-height: 132px;
  align-content: start;
  gap: 7px;
  border: 1px solid var(--line);
  background: var(--panel-3);
  color: var(--ink);
  padding: 14px;
  text-align: left;
  white-space: normal;
}

.event-module-card:hover,
.event-module-card.active {
  border-color: rgba(46, 213, 115, 0.55);
  background: rgba(46, 213, 115, 0.12);
}

.event-module-card span,
.event-module-card small {
  color: var(--muted);
  font-size: 12px;
}

.event-module-card strong {
  font-size: 18px;
}

.event-module-card b {
  justify-self: start;
  border: 1px solid rgba(147, 197, 253, 0.38);
  border-radius: 999px;
  padding: 2px 8px;
  color: var(--accent-dark);
  font-size: 12px;
}

.event-detail-shell {
  display: grid;
  gap: 18px;
}

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

.event-mood-hero article,
.market-event-cards article,
.event-theme-list article,
.event-track-grid article {
  display: grid;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 12px;
}

.event-mood-hero span,
.market-event-cards span,
.event-track-grid span,
.event-theme-list small {
  color: var(--muted);
  font-size: 12px;
}

.event-mood-hero strong {
  font-size: 24px;
}

.market-event-cards,
.event-theme-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.market-event-cards p,
.event-theme-list p,
.event-track-grid p {
  margin: 0;
  color: var(--panel-2);
}

.event-theme-list article > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.event-theme-list article > div:first-child span {
  border: 1px solid rgba(46, 213, 115, 0.45);
  border-radius: 999px;
  padding: 3px 9px;
  background: rgba(46, 213, 115, 0.10);
  color: var(--positive);
  font-size: 12px;
  font-weight: 800;
}

.event-track-grid header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.opportunity-dashboard {
  display: grid;
  gap: 16px;
}

.opportunity-data-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 0.9fr) minmax(420px, 1.6fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 62px;
  padding: 12px 14px 12px 18px;
  border: 1px solid rgba(142, 104, 50, 0.20);
  border-radius: 12px;
  background: rgba(255, 253, 247, 0.94);
  box-shadow: 0 8px 24px rgba(103, 75, 34, 0.06);
}

.opportunity-data-status {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
}

.opportunity-data-status > i {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #d39a27;
  box-shadow: 0 0 0 5px rgba(211, 154, 39, 0.12);
}

.opportunity-data-toolbar[data-refresh-status="success"] .opportunity-data-status > i {
  background: #25866f;
  box-shadow: 0 0 0 5px rgba(37, 134, 111, 0.12);
}

.opportunity-data-toolbar[data-refresh-status="error"] .opportunity-data-status > i {
  background: #b94d57;
  box-shadow: 0 0 0 5px rgba(185, 77, 87, 0.12);
}

.opportunity-data-toolbar[data-refresh-status="partial"] .opportunity-data-status > i {
  background: #d39a27;
  box-shadow: 0 0 0 5px rgba(211, 154, 39, 0.14);
}

.opportunity-data-toolbar[data-refresh-status="loading"] .opportunity-data-status > i {
  animation: opportunity-data-pulse 1.1s ease-in-out infinite;
}

.opportunity-data-status div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.opportunity-data-status strong {
  color: #2b2113;
  font-size: 14px;
}

.opportunity-data-status span {
  overflow: hidden;
  color: #826f50;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.opportunity-data-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
}

.opportunity-data-cards article {
  display: grid;
  gap: 2px;
  min-width: 0;
  border: 1px solid rgba(142, 104, 50, 0.14);
  border-radius: 8px;
  background: rgba(255, 250, 238, 0.72);
  padding: 8px 9px;
}

.opportunity-data-cards article.is-warning {
  border-color: rgba(178, 93, 21, 0.38);
  background: rgba(255, 246, 224, 0.96);
}

.opportunity-data-cards span {
  color: #9a7d4d;
  font-size: 10px;
  font-weight: 850;
}

.opportunity-data-cards strong {
  overflow: hidden;
  color: #342817;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.opportunity-data-cards small {
  overflow: hidden;
  color: #826f50;
  font-size: 10px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.opportunity-data-cards article.is-warning small {
  overflow: visible;
  color: #7a4213;
  text-overflow: clip;
  white-space: normal;
}

.opportunity-refresh-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 118px;
  min-height: 38px;
  border: 1px solid rgba(169, 112, 24, 0.42);
  border-radius: 9px;
  background: linear-gradient(180deg, #fff0b8, var(--amber-bright));
  color: #4f3611;
  font: inherit;
  font-size: 13px;
  font-weight: 850;
  cursor: pointer;
}

.opportunity-refresh-button:hover:not(:disabled) {
  border-color: rgba(138, 86, 10, 0.68);
  transform: translateY(-1px);
  box-shadow: 0 7px 16px rgba(145, 98, 26, 0.14);
}

.opportunity-refresh-button:disabled {
  cursor: wait;
  opacity: 0.68;
}

.opportunity-refresh-button b {
  font-size: 18px;
  line-height: 1;
}

@keyframes opportunity-data-pulse {
  50% {
    opacity: 0.42;
    transform: scale(0.72);
  }
}

@media (max-width: 760px) {
  .opportunity-data-toolbar {
    align-items: stretch;
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .opportunity-data-status span {
    white-space: normal;
  }

  .opportunity-data-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .opportunity-data-cards small {
    white-space: normal;
  }

  .opportunity-refresh-button {
    width: 100%;
  }
}

@media (max-width: 1180px) {
  .opportunity-data-toolbar {
    grid-template-columns: 1fr auto;
  }

  .opportunity-data-cards {
    grid-column: 1 / -1;
    order: 3;
  }
}

.opportunity-board {
  color: #10201c;
  max-width: 100%;
  overflow-x: hidden;
}

.board-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
  gap: 14px;
  align-items: stretch;
}

.board-title,
.board-action,
.opportunity-signal-panel,
.opportunity-index-card,
.visual-panel,
.theme-opportunity-board,
.opportunity-theme-card,
.opportunity-scope-note {
  border: 1px solid rgba(13, 107, 81, 0.10);
  border-radius: 18px;
  background: rgba(251, 253, 248, 0.94);
}

.board-title {
  min-height: 150px;
  padding: 24px 28px;
}

.board-title span,
.board-action span,
.opportunity-index-card span,
.opportunity-index-card small,
.opportunity-index-card em,
.sector-label span,
.sector-value span,
.opportunity-theme-card span,
.opportunity-theme-card small,
.opportunity-candidate-row small,
.opportunity-candidate-row em,
.opportunity-scope-note span,
.signal-gauge span,
.board-section-heading span {
  color: var(--muted);
  font-size: 12px;
}

.board-title h1 {
  margin: 8px 0 10px;
  color: #0b1613;
  font-size: 36px;
  letter-spacing: 0;
}

.board-title p,
.board-action p,
.signal-gauge p,
.opportunity-theme-card p {
  margin: 0;
  max-width: 72ch;
  color: #46564f;
  line-height: 1.72;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.board-title p {
  color: #6a7c74;
}

.signal-gauge p {
  color: #5a6a63;
}

.opportunity-theme-card p {
  color: #53625d;
}

.board-action {
  display: grid;
  min-width: 0;
  align-content: space-between;
  gap: 12px;
  background:
    radial-gradient(circle at 86% 24%, rgba(239, 199, 106, 0.26), transparent 8rem),
    linear-gradient(135deg, var(--accent-dark), #9a6319);
  color: #f5fff8;
  padding: 22px;
}

.board-action > * {
  min-width: 0;
}

.board-action span,
.board-action p {
  color: rgba(245, 255, 248, 0.86);
}

.board-action strong {
  max-width: 100%;
  color: #fff;
  font-size: 25px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.board-action-link,
.board-ghost {
  min-height: 36px;
  border-color: rgba(9, 63, 54, 0.22);
  border-radius: 10px;
}

.board-action-link {
  background: #f8fff6;
  color: var(--accent-dark);
}

.opportunity-top-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.85fr) minmax(0, 1.15fr);
  gap: 14px;
}

.opportunity-signal-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.75fr);
  gap: 16px;
  padding: 18px;
}

.signal-gauge {
  display: grid;
  gap: 12px;
}

.signal-gauge strong {
  font-size: 40px;
  line-height: 1;
}

.sentiment-curve {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding-top: 24px;
}

.sentiment-curve::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 9px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, #a44855, #f4b04f, #b97820);
}

.sentiment-curve i {
  position: absolute;
  left: var(--x);
  top: 0;
  width: 18px;
  height: 18px;
  border: 4px solid #fbfdf8;
  border-radius: 999px;
  background: var(--accent);
  transform: translateX(-50%);
  box-shadow: 0 0 0 1px rgba(13, 107, 81, 0.22);
}

.sentiment-curve b {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.sentiment-curve b:nth-of-type(2) {
  text-align: center;
}

.sentiment-curve b:nth-of-type(3) {
  text-align: right;
}

.index-card-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.opportunity-index-card {
  display: flex;
  min-width: 0;
  min-height: 106px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px;
}

.opportunity-index-card > div:first-child {
  display: grid;
  gap: 4px;
}

.opportunity-index-card strong {
  color: #10201c;
  font-size: 24px;
}

.opportunity-index-card b {
  font-size: 17px;
}

.index-card-right {
  display: grid;
  min-width: 72px;
  justify-items: end;
  gap: 5px;
}

.mini-bars {
  display: flex;
  height: 38px;
  align-items: end;
  gap: 5px;
}

.mini-bars i {
  width: 7px;
  height: var(--h);
  border-radius: 999px 999px 2px 2px;
  background: rgba(46, 213, 115, 0.82);
}

.opportunity-board-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1.05fr);
  gap: 14px;
  align-items: start;
}

.board-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.board-section-heading h3 {
  margin: 0;
  color: #10201c;
  font-size: 18px;
}

.board-section-heading strong {
  color: var(--accent-dark);
  font-size: 12px;
}

.sector-panel {
  padding: 18px;
}

.sector-bar-list {
  display: grid;
  gap: 12px;
}

.sector-bar-row {
  display: grid;
  grid-template-columns: minmax(112px, 148px) minmax(0, 1fr) minmax(70px, 86px);
  gap: 12px;
  align-items: center;
}

.sector-label,
.sector-value {
  display: grid;
  gap: 3px;
}

.sector-label strong {
  color: #10201c;
}

.sector-value {
  justify-items: end;
}

.sector-bar-track {
  position: relative;
  height: 24px;
  border-radius: 999px;
  background: #edf3ea;
  overflow: hidden;
}

.sector-bar-track::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(16, 32, 28, 0.30);
  z-index: 2;
}

.sector-fill {
  position: absolute;
  top: 5px;
  height: 14px;
  width: var(--w);
  border-radius: 999px;
}

.sector-fill.positive {
  left: 50%;
  background: linear-gradient(90deg, rgba(240, 199, 106, 0.48), #b97820);
}

.sector-fill.negative {
  right: 50%;
  background: linear-gradient(90deg, #d95d51, rgba(217, 93, 81, 0.36));
}

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

.opportunity-metric-grid article {
  display: grid;
  align-content: center;
  min-height: 86px;
  gap: 6px;
  border: 1px solid rgba(13, 107, 81, 0.08);
  border-radius: 14px;
  background: #f2f7ef;
  padding: 12px;
}

.opportunity-metric-grid span {
  color: var(--muted);
  font-size: 12px;
}

.opportunity-metric-grid strong {
  color: #10201c;
  font-size: 21px;
}

.theme-opportunity-board {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.opportunity-theme-grid {
  display: grid;
  gap: 12px;
}

.opportunity-theme-card {
  display: grid;
  min-width: 0;
  gap: 11px;
  border-radius: 16px;
  background: #f7fbf4;
  padding: 14px;
}

.opportunity-theme-card header,
.opportunity-theme-card footer,
.opportunity-candidate-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.opportunity-theme-card h3 {
  margin: 4px 0 0;
  color: #10201c;
  font-size: 18px;
}

.opportunity-theme-card header > strong {
  border-radius: 999px;
  background: var(--accent-dark);
  padding: 5px 10px;
  color: #e8fff0;
  font-size: 13px;
}

.opportunity-candidate-list {
  display: grid;
  gap: 7px;
}

.opportunity-candidate-row {
  width: 100%;
  min-height: 52px;
  border: 1px solid rgba(13, 107, 81, 0.10);
  border-radius: 13px;
  background: #fff;
  color: var(--ink);
  padding: 8px 10px;
  text-align: left;
  white-space: normal;
}

.opportunity-candidate-row:hover {
  border-color: rgba(13, 107, 81, 0.34);
  background: #eef8ef;
}

.opportunity-candidate-row span {
  display: grid;
  gap: 3px;
}

.opportunity-candidate-row b {
  display: grid;
  min-width: 34px;
  min-height: 34px;
  place-items: center;
  border-radius: 999px;
  background: #e6f6e7;
  color: var(--accent-dark);
}

.opportunity-candidate-row em {
  max-width: 110px;
  color: var(--muted);
  text-align: right;
  font-style: normal;
}

.opportunity-scope-note {
  display: flex;
  gap: 12px;
  align-items: center;
  border-color: rgba(217, 156, 50, 0.25);
  background: rgba(255, 250, 229, 0.88);
  padding: 12px 14px;
}

.opportunity-terminal {
  display: grid;
  gap: 22px;
  color: #221b12;
}

.opportunity-terminal .investment-signal-console,
.opportunity-terminal .sector-terminal-panel,
.opportunity-terminal .theme-opportunity-board,
.opportunity-terminal .opportunity-scope-note {
  border: 1px solid rgba(142, 104, 50, 0.20);
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(255, 254, 250, 0.96), rgba(255, 249, 234, 0.92)),
    radial-gradient(circle at 80% 0%, rgba(220, 166, 66, 0.14), transparent 22rem);
  box-shadow: 0 12px 28px rgba(103, 75, 34, 0.08);
}

.opportunity-evaluation-band {
  display: grid;
  gap: 12px;
  margin: 16px 0;
  border-block: 1px solid var(--amber-line, #ead7ad);
  background: transparent;
  padding: 0;
}

.opportunity-evaluation-band summary {
  display: flex;
  cursor: pointer;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  padding: 13px 4px;
  color: var(--amber-deep, #8a5810);
  font-weight: 800;
}

.opportunity-evaluation-band summary::-webkit-details-marker {
  display: none;
}

.opportunity-evaluation-band summary span {
  color: #7d6650;
  font-size: 12px;
  font-weight: 700;
}

.evaluation-ledger-body {
  display: grid;
  gap: 12px;
  padding: 0 4px 18px;
}

.evaluation-ledger-intro {
  display: grid;
  gap: 4px;
}

.evaluation-ledger-intro strong {
  color: #4d3514;
  font-size: 13px;
}

.evaluation-ledger-intro span {
  color: var(--ink-muted);
  font-size: 12px;
  line-height: 1.5;
}

.evaluation-band-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.evaluation-band-head div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.evaluation-band-head span {
  color: #a47a33;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.evaluation-band-head h3 {
  margin: 0;
  color: #21180c;
  font-size: 18px;
  line-height: 1.2;
}

.evaluation-band-head p,
.evaluation-summary-grid small,
.evaluation-window-strip footer,
.evaluation-window-strip small {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.evaluation-status-pill {
  flex: 0 0 auto;
  border: 1px solid rgba(196, 134, 37, 0.28);
  border-radius: 999px;
  background: rgba(255, 253, 247, 0.92);
  color: var(--accent-dark);
  padding: 7px 11px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

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

.evaluation-summary-grid article {
  display: grid;
  gap: 4px;
  min-width: 0;
  border: 1px solid rgba(150, 113, 58, 0.14);
  border-radius: 10px;
  background: rgba(255, 253, 247, 0.68);
  padding: 10px;
}

.evaluation-summary-grid span {
  color: #8a6b36;
  font-size: 12px;
  font-weight: 850;
}

.evaluation-summary-grid strong {
  color: #21180c;
  font-size: 22px;
  line-height: 1;
}

.evaluation-window-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.evaluation-window-strip article {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 1px solid rgba(150, 113, 58, 0.14);
  border-radius: 10px;
  background: rgba(255, 253, 247, 0.56);
  padding: 10px;
}

.evaluation-window-strip header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.evaluation-window-strip header strong {
  color: #21180c;
}

.evaluation-window-strip header span {
  border-radius: 999px;
  background: rgba(211, 154, 39, 0.14);
  color: #805b1d;
  padding: 3px 7px;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.evaluation-window-strip div {
  display: grid;
  gap: 2px;
}

.evaluation-window-strip b {
  color: #25866f;
  font-size: 20px;
}

.opportunity-terminal .investment-signal-console,
.opportunity-terminal .sector-terminal-panel,
.opportunity-terminal .theme-opportunity-board {
  padding: 22px;
}

.terminal-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.terminal-section-head span {
  color: #a47a33;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.terminal-section-head h2 {
  margin: 4px 0 0;
  color: #1f190f;
  font-size: 24px;
  line-height: 1.12;
}

.section-meta {
  border: 1px solid rgba(196, 134, 37, 0.22);
  border-radius: 999px;
  background: rgba(255, 248, 229, 0.82);
  color: #7b6136;
  padding: 7px 11px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.signal-layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.82fr) minmax(520px, 1.18fr);
  gap: 18px;
}

.signal-gauge-panel,
.signal-detail-panel,
.market-sentiment-panel,
.theme-thesis-panel,
.selected-sector-note {
  border: 1px solid rgba(150, 113, 58, 0.18);
  border-radius: 12px;
  background: rgba(255, 253, 247, 0.74);
}

.signal-gauge-panel {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 18px;
  padding: 20px;
}

.signal-gauge-ring {
  display: grid;
  width: min(260px, 100%);
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, #fffaf0 0 55%, transparent 56%),
    conic-gradient(from 220deg, #b44b5a 0 18%, var(--amber-bright) 18% 44%, #f6e2a1 44% 58%, var(--amber) 58% calc(var(--score) * 1%), rgba(222, 207, 176, 0.46) calc(var(--score) * 1%) 100%);
  box-shadow: inset 0 0 0 1px rgba(121, 86, 35, 0.18), 0 16px 38px rgba(103, 75, 34, 0.16);
}

.signal-gauge-ring > div {
  display: grid;
  width: 58%;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(196, 134, 37, 0.18);
  border-radius: 50%;
  background: rgba(255, 253, 247, 0.92);
}

.signal-gauge-ring strong {
  color: #21180c;
  font-size: clamp(48px, 6vw, 76px);
  line-height: 0.9;
}

.signal-gauge-ring span,
.signal-gauge-panel p,
.signal-explain span,
.signal-metric small,
.market-summary span,
.opportunity-index-card span,
.opportunity-index-card small,
.opportunity-index-card footer,
.sector-name small,
.selected-sector-note p,
.selected-sector-note small,
.theme-thesis-summary p,
.theme-verdict span,
.opportunity-candidate-table span {
  color: var(--muted);
}

.signal-tabs,
.segmented-control,
.theme-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.signal-tabs button,
.segmented-control button,
.theme-tabs button,
.opportunity-terminal .board-ghost,
.opportunity-terminal .table-link {
  min-height: 34px;
  border: 1px solid rgba(167, 124, 55, 0.22);
  border-radius: 999px;
  background: rgba(255, 252, 242, 0.78);
  color: var(--accent-dark);
  font-weight: 900;
}

.signal-tabs button.active,
.segmented-control button.active,
.theme-tabs button.active,
.opportunity-terminal .board-ghost:hover,
.opportunity-terminal .table-link:hover {
  border-color: rgba(196, 134, 37, 0.54);
  background: linear-gradient(180deg, #fff1bd, var(--amber-bright));
  color: #2a1d0c;
}

.segmented-control.compact {
  justify-content: flex-end;
}

.signal-gauge-panel p {
  max-width: 42ch;
  margin: 0;
  line-height: 1.72;
  text-align: center;
}

.signal-detail-panel {
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(360px, 1.1fr);
  gap: 14px;
  padding: 14px;
}

.radar-card {
  display: grid;
  gap: 12px;
  align-content: start;
}

.signal-radar {
  width: 100%;
  min-height: 230px;
}

.signal-radar .radar-grid {
  fill: rgba(220, 166, 66, 0.08);
  stroke: rgba(116, 82, 28, 0.30);
}

.signal-radar .radar-grid.inner {
  fill: transparent;
}

.signal-radar line {
  stroke: rgba(116, 82, 28, 0.18);
}

.signal-radar .radar-value {
  fill: rgba(215, 166, 68, 0.28);
  stroke: var(--accent);
  stroke-width: 2;
}

.signal-radar circle {
  fill: #fff8df;
  stroke: #98601c;
  stroke-width: 1.5;
}

.signal-radar text {
  fill: #897150;
  font-size: 10px;
  font-weight: 800;
  text-anchor: middle;
}

.signal-explain {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(150, 113, 58, 0.16);
  border-radius: 10px;
  background: rgba(255, 248, 230, 0.58);
  padding: 13px;
}

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

.signal-metric {
  display: grid;
  align-content: start;
  gap: 9px;
  min-height: 134px;
  border: 1px solid rgba(196, 134, 37, 0.18);
  border-radius: 10px;
  background:
    linear-gradient(180deg, rgba(255, 255, 253, 0.90), rgba(255, 246, 222, 0.74));
  padding: 14px;
}

.signal-metric span {
  color: #9a7740;
  font-size: 12px;
  font-weight: 900;
}

.signal-metric strong {
  color: #20180d;
  font-size: 34px;
  line-height: 1;
}

.signal-metric i {
  display: block;
  height: 7px;
  border-radius: 999px;
  background: rgba(222, 207, 176, 0.66);
  overflow: hidden;
}

.signal-metric i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #b45d36, var(--amber-bright), #fff3b6);
}

.market-sentiment-panel {
  display: grid;
  gap: 14px;
  margin-top: 18px;
  padding: 16px;
}

.market-summary {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.market-summary strong {
  border-radius: 999px;
  background: #2c2418;
  color: #fff5d8;
  padding: 7px 12px;
}

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

.opportunity-terminal .opportunity-index-card {
  display: grid;
  gap: 12px;
  min-height: 180px;
  border: 1px solid rgba(150, 113, 58, 0.17);
  border-radius: 10px;
  background: rgba(255, 253, 247, 0.82);
  padding: 15px;
}

.opportunity-index-card header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 10px;
}

.opportunity-index-card header strong {
  color: #1f190f;
  font-size: 28px;
}

.index-value-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.index-value-row b {
  color: #1f190f;
  font-size: 25px;
}

.index-value-row em,
.sector-number {
  font-style: normal;
  font-weight: 950;
}

.positive {
  color: var(--positive);
}

.negative {
  color: var(--negative);
}

.index-tech-strip {
  display: grid;
  gap: 4px;
}

.index-tech-strip span {
  color: #5f4621;
  font-weight: 900;
}

.index-position {
  position: relative;
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(90deg, #b84552, #f0c76a, #9a6a13);
}

.index-position i {
  position: absolute;
  top: 50%;
  width: 16px;
  height: 16px;
  border: 3px solid var(--panel);
  border-radius: 50%;
  background: #2a1d0c;
  transform: translate(-50%, -50%);
}

.opportunity-index-card footer {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
}

.sector-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.sector-bar-board.vertical {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--sector-count, 11), minmax(72px, 1fr));
  gap: 8px;
  min-height: 390px;
  border: 1px solid rgba(95, 75, 38, 0.13);
  border-radius: 10px;
  background:
    linear-gradient(rgba(95, 75, 38, 0.08) 1px, transparent 1px) 0 50% / 100% 25%,
    linear-gradient(180deg, rgba(255, 255, 255, 0.66), rgba(255, 246, 224, 0.48));
  padding: 22px 18px 18px;
  overflow: hidden;
}

.sector-bar-board.vertical .zero-line {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  top: 50%;
  height: 1px;
  background: rgba(58, 42, 14, 0.26);
}

.sector-bar-board.vertical .zero-line::after {
  content: attr(data-axis);
  position: absolute;
  right: 0;
  top: -22px;
  color: #a39a86;
  font-family: var(--font-mono);
  font-size: 11px;
}

.sector-empty-state {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  align-self: center;
  justify-self: center;
  display: grid;
  gap: 8px;
  max-width: 620px;
  padding: 22px 26px;
  border: 1px solid rgba(186, 128, 42, 0.24);
  border-radius: 14px;
  background: rgba(255, 250, 239, 0.88);
  box-shadow: 0 18px 60px rgba(120, 89, 41, 0.10);
  text-align: center;
}

.sector-empty-state strong {
  color: #22190e;
  font-size: 19px;
}

.sector-empty-state span {
  color: #776c58;
  line-height: 1.65;
}

.opportunity-terminal .sector-bar-row.sector-bar {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
  min-height: 348px;
  width: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #231a0f;
  padding: 0;
  text-align: center;
  white-space: normal;
}

.opportunity-terminal .sector-bar-row.sector-bar:hover,
.opportunity-terminal .sector-bar-row.sector-bar.active {
  background: transparent;
  box-shadow: none;
  transform: none;
}

.bar-side {
  position: relative;
  display: flex;
  min-height: 145px;
  align-items: flex-end;
  justify-content: center;
}

.bar-side.down {
  align-items: flex-start;
}

.bar-fill {
  width: min(100%, 58px);
  height: var(--h);
  border: 1px solid rgba(126, 82, 13, 0.18);
  border-radius: 9px 9px 4px 4px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.30), transparent 38%),
    linear-gradient(180deg, #f0c766, #b97820);
  transition: height 220ms ease, filter 160ms ease, box-shadow 160ms ease;
}

.bar-side.down .bar-fill {
  border-radius: 4px 4px 9px 9px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.20), transparent 38%),
    linear-gradient(180deg, #bb6a58, #a9474e);
}

.opportunity-terminal .sector-bar-row:hover .bar-fill,
.opportunity-terminal .sector-bar-row.active .bar-fill {
  filter: saturate(1.08) brightness(1.04);
  box-shadow: 0 0 0 1px rgba(128, 78, 7, 0.12), 0 12px 24px rgba(158, 102, 18, 0.20);
}

.bar-value {
  display: block;
  min-height: 28px;
  color: #191814;
  font-family: var(--font-mono);
  font-size: 17px;
  font-weight: 850;
}

.bar-label {
  display: grid;
  gap: 3px;
  min-height: 78px;
  align-content: center;
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 8px 6px;
  transition: border-color 160ms ease, background 160ms ease;
}

.opportunity-terminal .sector-bar-row:hover .bar-label,
.opportunity-terminal .sector-bar-row.active .bar-label {
  border-color: rgba(183, 120, 32, 0.42);
  background: #fff7df;
}

.bar-label strong {
  color: #191814;
  font-size: 14px;
  line-height: 1.25;
}

.bar-label span {
  color: #756d5b;
  font-size: 11px;
  line-height: 1.35;
}

.opportunity-terminal .sector-bar-track::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(34, 27, 18, 0.22);
}

.opportunity-terminal .sector-bar-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.opportunity-terminal .sector-bar-track i.positive {
  background: linear-gradient(90deg, #f0c766, #b97820);
}

.opportunity-terminal .sector-bar-track i.negative {
  background: linear-gradient(90deg, var(--amber), #b84552);
}

.selected-sector-note {
  display: grid;
  grid-template-columns: minmax(220px, 0.28fr) minmax(0, 1fr) max-content;
  gap: 18px;
  align-items: center;
  margin-top: 16px;
  padding: 15px 17px;
  border-radius: 10px;
}

.selected-sector-note span,
.theme-thesis-summary span {
  color: #9a7740;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.selected-sector-note strong {
  display: block;
  margin-top: 3px;
  color: #21180d;
  font-size: 19px;
}

.selected-sector-note p {
  margin: 0;
  line-height: 1.66;
}

.opportunity-terminal .theme-opportunity-board {
  display: grid;
  gap: 16px;
}

.theme-thesis-panel {
  display: grid;
  grid-template-columns: minmax(380px, 0.86fr) minmax(520px, 1.14fr);
  gap: 16px;
  padding: 16px;
}

.theme-thesis-summary {
  display: grid;
  align-content: start;
  gap: 12px;
}

.theme-thesis-summary h3 {
  margin: 0;
  color: #1f190f;
  font-size: 33px;
  line-height: 1.08;
}

.theme-thesis-summary p {
  margin: 0;
  max-width: 58ch;
  line-height: 1.72;
}

.theme-verdict {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-top: 6px;
  border: 1px solid rgba(196, 134, 37, 0.22);
  border-radius: 10px;
  background: rgba(255, 246, 221, 0.76);
  padding: 12px;
}

.theme-verdict strong {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #fff3bd, var(--amber));
  color: #281b08;
}

.theme-map-panel {
  display: grid;
  align-content: center;
  gap: 26px;
  min-height: 190px;
  border: 1px solid rgba(150, 113, 58, 0.14);
  border-radius: 10px;
  background:
    linear-gradient(rgba(142, 104, 50, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(142, 104, 50, 0.08) 1px, transparent 1px),
    rgba(255, 253, 247, 0.64);
  background-size: 28px 28px;
  padding: 20px;
}

.theme-node-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.theme-node-row span {
  border: 1px solid rgba(196, 134, 37, 0.24);
  border-radius: 999px;
  background: rgba(255, 248, 230, 0.86);
  color: #5c4119;
  padding: 8px 12px;
  font-weight: 900;
}

.theme-node-row span:nth-child(even) {
  transform: translateY(12px);
}

.theme-flow-line {
  position: relative;
  height: 42px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(196, 134, 37, 0.16), rgba(196, 134, 37, 0.54), rgba(151, 97, 21, 0.32));
  overflow: hidden;
}

.theme-flow-line i,
.theme-flow-line b,
.theme-flow-line em {
  position: absolute;
  top: 9px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #fffaf0;
  box-shadow: 0 0 0 6px rgba(215, 166, 68, 0.24);
}

.theme-flow-line i { left: 12%; }
.theme-flow-line b { left: 48%; }
.theme-flow-line em { right: 12%; }

.opportunity-candidate-table-wrap {
  overflow-x: auto;
  border: 1px solid rgba(150, 113, 58, 0.16);
  border-radius: 10px;
  background: rgba(255, 253, 247, 0.78);
}

.opportunity-candidate-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
}

.opportunity-candidate-table th,
.opportunity-candidate-table td {
  border-bottom: 1px solid rgba(150, 113, 58, 0.14);
  padding: 14px 16px;
  text-align: left;
  vertical-align: middle;
}

.opportunity-candidate-table th {
  background: #fff2cc;
  color: #7b5a25;
  font-size: 12px;
  font-weight: 950;
}

.opportunity-candidate-table td {
  color: #251b10;
}

.opportunity-candidate-table td:first-child strong {
  display: block;
  font-size: 16px;
}

.score-pill {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #fff3bd, var(--amber));
  color: #2b1d0a;
}

.theme-research-shell .scenario-cell {
  display: grid;
  gap: 3px;
  color: #b16f16;
  font-family: var(--font-mono);
  font-weight: 900;
}

.opportunity-terminal .opportunity-scope-note {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 13px 16px;
}

.opportunity-terminal .opportunity-scope-note strong {
  color: var(--accent-dark);
}

.opportunity-radar {
  display: grid;
  gap: 18px;
}

.radar-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  gap: 18px;
  align-items: stretch;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  padding: 22px;
}

.radar-hero span,
.radar-verdict span,
.prediction-matrix span,
.radar-signal-grid span,
.source-map-grid span {
  color: var(--muted);
  font-size: 12px;
}

.radar-hero h1 {
  margin: 8px 0;
  font-size: 32px;
  letter-spacing: 0;
}

.radar-hero p,
.radar-verdict small,
.prediction-matrix p,
.radar-watch-list p,
.decision-track-list p,
.source-map-grid p {
  margin: 0;
  color: var(--panel-2);
}

.radar-verdict {
  display: grid;
  gap: 8px;
  align-content: center;
  border: 1px solid rgba(59, 130, 246, 0.42);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 18px;
}

.radar-verdict strong {
  font-size: 24px;
}

.prediction-matrix,
.radar-signal-grid,
.source-map-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.prediction-matrix article,
.radar-signal-grid article,
.source-map-grid article,
.radar-watch-list article,
.decision-track-list article {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 12px;
}

.prediction-matrix strong,
.radar-signal-grid strong,
.source-map-grid strong {
  font-size: 18px;
}

.prediction-dot-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
  align-items: center;
}

.prediction-dot-row i {
  display: block;
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: rgba(142, 197, 255, 0.14);
  border: 1px solid rgba(142, 197, 255, 0.22);
}

.prediction-dot-row i:nth-child(1).active {
  background: var(--positive);
  border-color: var(--positive);
  box-shadow: 0 0 18px rgba(46, 213, 115, 0.32);
}

.prediction-dot-row i:nth-child(2).active {
  background: var(--accent-dark);
  border-color: var(--accent-dark);
  box-shadow: 0 0 18px rgba(142, 197, 255, 0.30);
}

.prediction-dot-row i:nth-child(3).active {
  background: var(--risk);
  border-color: var(--risk);
  box-shadow: 0 0 18px rgba(255, 107, 107, 0.30);
}

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

.radar-watch-list,
.decision-track-list {
  display: grid;
  gap: 10px;
}

.radar-watch-list header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.radar-watch-list header span,
.radar-watch-list small,
.radar-watch-list em,
.decision-matrix small {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.decision-track-list h4 {
  margin: 0;
}

.decision-matrix {
  display: grid;
  gap: 8px;
}

.decision-matrix div {
  display: grid;
  gap: 3px;
  border-left: 3px solid var(--accent);
  padding-left: 10px;
}

.decision-matrix span {
  color: var(--panel-2);
  font-size: 13px;
}

.news-list {
  display: grid;
  gap: 10px;
}

.news-list.compact {
  gap: 8px;
}

.news-item {
  display: grid;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 11px;
}

.news-item a {
  color: var(--accent-dark);
  font-weight: 700;
  text-decoration: none;
}

.news-item span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.tag-row,
.related-symbols {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.tag-row span {
  display: inline-flex;
  margin: 0;
  border: 1px solid rgba(142, 197, 255, 0.45);
  border-radius: 999px;
  padding: 2px 8px;
  background: rgba(0, 123, 255, 0.12);
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 700;
}

.related-symbols button {
  min-height: 26px;
  border: 1px solid var(--line);
  background: var(--panel-3);
  color: var(--accent-dark);
  font-size: 12px;
}

.related-symbols button:hover {
  background: var(--soft);
}

.news-item p,
.track-card p,
.news-market p {
  margin: 0;
  color: var(--panel-2);
}

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

.track-card,
.source-column {
  display: grid;
  align-content: start;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-3);
  padding: 12px;
}

.track-card h4,
.source-column h4 {
  margin: 0;
}

.track-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.track-title button {
  min-height: 26px;
  padding: 0 8px;
  font-size: 12px;
}

.source-column a {
  display: grid;
  gap: 2px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.03);
  padding: 9px;
  color: var(--ink);
  text-decoration: none;
}

.source-column a:hover {
  border-color: rgba(142, 197, 255, 0.72);
  background: var(--soft);
}

.source-column span {
  color: var(--muted);
  font-size: 12px;
}

.factor-card {
  display: grid;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px;
  background: var(--panel-3);
}

.markdown-view h1 {
  font-size: 30px;
  margin: 0 0 16px;
}

.empty-state {
  min-height: 320px;
  display: grid;
  align-content: center;
  justify-items: center;
  border: 1px solid rgba(51, 65, 85, 0.92);
  border-radius: 12px;
  background:
    radial-gradient(circle at 50% 0%, rgba(59, 130, 246, 0.14), transparent 20rem),
    rgba(15, 23, 42, 0.62);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  text-align: center;
  padding: 34px 22px;
}

.empty-state h1 {
  margin-bottom: 12px;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: 0;
}

.empty-state p {
  max-width: 620px;
  color: var(--muted);
  font-size: 15px;
}

.product-home {
  display: grid;
  gap: 18px;
}

.product-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
  gap: 18px;
  align-items: stretch;
  min-height: 360px;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  background:
    radial-gradient(circle at 18% 20%, rgba(59, 130, 246, 0.18), transparent 26rem),
    linear-gradient(135deg, rgba(15, 23, 42, 0.98), rgba(2, 8, 23, 0.96));
  padding: 34px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.product-hero > div {
  display: grid;
  align-content: center;
  gap: 16px;
}

.product-hero span,
.hero-terminal span,
.product-differentiators span,
.workflow-map .panel-heading span {
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-hero h1 {
  max-width: 780px;
  margin: 0;
  color: #fff7df;
  font-size: clamp(38px, 5.2vw, 72px);
  line-height: 1.02;
  letter-spacing: -0.02em;
}

.product-hero p {
  max-width: 760px;
  margin: 0;
  color: rgba(255, 247, 223, 0.72);
  font-size: 17px;
  line-height: 1.7;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}

.hero-actions button {
  min-height: 42px;
}

.hero-terminal {
  display: grid;
  align-content: end;
  gap: 16px;
  border: 1px solid rgba(147, 197, 253, 0.22);
  border-radius: 14px;
  background:
    linear-gradient(rgba(148, 163, 184, 0.10) 1px, transparent 1px) 0 0 / 100% 28px,
    rgba(2, 8, 23, 0.66);
  padding: 20px;
}

.hero-terminal strong {
  color: #fff0c4;
  font-size: 24px;
  line-height: 1.35;
}

.hero-terminal small {
  color: rgba(255, 247, 223, 0.70);
  line-height: 1.6;
}

.workflow-map,
.demo-story,
.product-differentiators article {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(15, 23, 42, 0.72);
  padding: 18px;
}

.product-home .workflow-map,
.product-home .demo-story,
.product-home .product-differentiators article,
.product-home .hero-terminal {
  color: #fff7df;
}

.product-home .workflow-map h2,
.product-home .workflow-map h3,
.product-home .demo-story h2,
.product-home .demo-story h3,
.product-home .product-differentiators h3,
.product-home .hero-terminal h3 {
  color: #fff4d6;
}

.product-home .workflow-map p,
.product-home .demo-story p,
.product-home .product-differentiators p {
  color: rgba(255, 247, 223, 0.72);
}

.workflow-rail {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.workflow-rail::before {
  content: "";
  position: absolute;
  left: 24px;
  right: 24px;
  top: 28px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(147, 197, 253, 0.44), transparent);
}

.workflow-rail article {
  position: relative;
  display: grid;
  gap: 8px;
  min-height: 190px;
  border: 1px solid rgba(51, 65, 85, 0.96);
  border-radius: 12px;
  background: rgba(2, 8, 23, 0.64);
  padding: 16px;
}

.workflow-rail article b {
  display: inline-grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid rgba(147, 197, 253, 0.44);
  border-radius: 999px;
  background: #0b1220;
  color: var(--accent-dark);
  font-size: 12px;
}

.workflow-rail article span {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.workflow-rail article h4,
.product-differentiators h3 {
  margin: 0;
  color: var(--ink);
}

.workflow-rail article p,
.demo-story-grid article p,
.product-differentiators p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.demo-story {
  overflow: hidden;
}

.demo-story-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.demo-story-grid article {
  position: relative;
  display: grid;
  align-content: start;
  gap: 10px;
  min-height: 260px;
  border: 1px solid rgba(51, 65, 85, 0.92);
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgba(59, 130, 246, 0.08), transparent 42%),
    rgba(2, 8, 23, 0.68);
  padding: 16px;
}

.demo-story-grid article::after {
  display: none;
}

.demo-story-grid article:last-child::after {
  display: none;
}

.demo-story-grid span {
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.demo-story-grid article b {
  display: inline-grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(147, 197, 253, 0.38);
  border-radius: 999px;
  color: var(--accent-dark);
  background: rgba(15, 23, 42, 0.9);
  font-size: 12px;
}

.demo-story-grid h4 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.35;
}

.demo-story-grid button {
  align-self: end;
  justify-self: start;
  min-height: 34px;
}

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

.product-differentiators article {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 210px;
}

.workspace-landing {
  display: grid;
  gap: 18px;
}

.workspace-landing-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: 16px;
  align-items: stretch;
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  background:
    radial-gradient(circle at 10% 0%, rgba(59, 130, 246, 0.14), transparent 25rem),
    rgba(15, 23, 42, 0.72);
  padding: 24px;
}

.workspace-landing-hero > div:first-child {
  display: grid;
  align-content: center;
  gap: 12px;
}

.workspace-landing-hero span,
.landing-action-card span,
.landing-card-grid span {
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.workspace-landing-hero h1 {
  margin: 0;
  max-width: 760px;
  font-size: clamp(30px, 4vw, 54px);
  line-height: 1.06;
}

.workspace-landing-hero p,
.landing-action-card p,
.landing-card-grid p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.landing-action-card {
  display: grid;
  align-content: end;
  gap: 12px;
  border: 1px solid rgba(147, 197, 253, 0.25);
  border-radius: 12px;
  background: rgba(2, 8, 23, 0.62);
  padding: 18px;
}

.landing-action-card strong {
  color: var(--ink);
  font-size: 24px;
  line-height: 1.25;
}

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

.landing-card-grid article {
  display: grid;
  align-content: start;
  gap: 11px;
  min-height: 210px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.72);
  padding: 18px;
}

.landing-card-grid h3 {
  margin: 0;
  font-size: 20px;
}

.landing-card-grid button {
  align-self: end;
  justify-self: start;
  min-height: 34px;
}

.mentor-workbench {
  display: grid;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(15, 23, 42, 0.72);
  padding: 18px;
}

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

.mentor-workbench-grid article {
  display: grid;
  gap: 12px;
  border: 1px solid rgba(96, 165, 250, 0.24);
  border-radius: 14px;
  background:
    radial-gradient(circle at 12% 0%, rgba(14, 165, 233, 0.10), transparent 16rem),
    rgba(2, 8, 23, 0.64);
  padding: 16px;
  min-width: 0;
}

.mentor-workbench-grid span,
.mentor-application-map span {
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.mentor-workbench-grid h3 {
  margin: 0;
  font-size: 24px;
}

.mentor-workbench-grid strong,
.mentor-application-map strong {
  color: var(--ink);
  line-height: 1.45;
}

.mentor-workbench-grid ul {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
}

.mentor-workbench-grid p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.mentor-workbench-grid p b {
  margin-right: 8px;
  color: var(--amber);
}

.mentor-workbench-grid article > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

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

.mentor-application-map article {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-3);
  padding: 12px;
}

.mentor-bridge {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  border-color: rgba(96, 165, 250, 0.32);
  background:
    radial-gradient(circle at 8% 0%, rgba(14, 165, 233, 0.12), transparent 18rem),
    rgba(33, 27, 20, 0.72);
}

.mentor-bridge span {
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.mentor-bridge h3 {
  margin: 6px 0;
}

.mentor-bridge p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.mentor-bridge-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.markdown-view h2 {
  margin-top: 28px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
  font-size: 21px;
}

.markdown-view h3 {
  margin-top: 22px;
  font-size: 17px;
}

.markdown-view p,
.markdown-view li {
  color: #46564f;
}

.markdown-view table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  margin: 14px 0 18px;
  overflow: hidden;
  border-radius: 8px;
  background: var(--panel-3);
  display: block;
  overflow-x: auto;
}

.markdown-view th,
.markdown-view td {
  border: 1px solid var(--line);
  padding: 9px 10px;
  text-align: left;
  vertical-align: top;
  max-width: 360px;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.markdown-view th {
  background: rgba(255, 255, 255, 0.04);
}

.markdown-view code {
  border-radius: 4px;
  padding: 2px 5px;
  background: rgba(255, 255, 255, 0.05);
}

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

.opportunity-empty-state {
  display: grid;
  gap: 10px;
  border: 1px dashed rgba(151, 115, 70, 0.32);
  border-radius: 10px;
  background: rgba(255, 252, 244, 0.76);
  color: #5f5143;
  padding: 18px;
}

.opportunity-empty-state.compact {
  margin-top: 10px;
}

.opportunity-empty-state strong {
  color: #211a10;
  font-size: 16px;
}

.opportunity-empty-state p {
  margin: 0;
}

.opportunity-empty-state button {
  justify-self: start;
  border: 1px solid rgba(151, 115, 70, 0.24);
  border-radius: 8px;
  background: #fff7e2;
  color: #5e3b0e;
  font-weight: 800;
  padding: 8px 12px;
}

.opportunity-empty-state.error-state {
  border-color: rgba(179, 66, 52, 0.32);
  background: rgba(255, 245, 242, 0.82);
}

@media (max-width: 900px) {
  .app-shell {
    grid-template-columns: 1fr;
    padding: 0;
  }

  .workspace {
    order: 1;
    width: 100vw;
    max-width: 100vw;
    border-radius: 0;
    border-width: 0 0 1px;
  }

  .sidebar {
    position: static;
    order: 0;
    height: auto;
    grid-template-columns: 1fr;
    border-width: 1px 0 0;
    border-radius: 0;
    overflow: visible;
  }

  .sidebar-primary,
  .sidebar-footer {
    min-height: 0;
    padding: 16px 20px;
  }

  .sidebar-primary {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .sidebar-primary .product-intro {
    display: none;
  }

  .workspace-nav {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
  }

  .nav-item {
    min-height: 56px;
    padding: 10px 12px;
  }

  .nav-item span {
    font-size: 14px;
  }

  .nav-item small {
    font-size: 11px;
  }

  .product-intro {
    padding: 10px 12px;
  }

  .workspace-header {
    align-items: flex-start;
    flex-direction: column;
    width: 100%;
  }

  .workspace-settings-panel {
    padding: 20px;
  }

  .settings-main-head {
    flex-direction: column;
  }

  .workspace-settings-panel .status-cards,
  .workspace-settings-panel .config-groups {
    grid-template-columns: 1fr;
  }

  .product-hero {
    grid-template-columns: 1fr;
    padding: 24px;
  }

  .workspace-landing-hero,
  .workflow-rail,
  .demo-story-grid,
  .mentor-workbench-grid,
  .mentor-application-map,
  .landing-card-grid,
  .product-differentiators {
    grid-template-columns: 1fr;
  }

  .demo-story-grid article {
    min-height: 0;
  }

  .demo-story-grid article::after {
    display: none;
  }

  .mentor-bridge {
    grid-template-columns: 1fr;
  }

  .mentor-bridge-actions {
    justify-content: flex-start;
  }

  .workflow-rail::before {
    top: 24px;
    bottom: 24px;
    left: 32px;
    right: auto;
    width: 1px;
    height: auto;
    background: linear-gradient(180deg, transparent, rgba(147, 197, 253, 0.44), transparent);
  }

  .summary-grid {
    grid-template-columns: 1fr;
  }

  .research-header,
  .ranking-strip {
    grid-template-columns: 1fr;
  }

  .quality-grid,
  .factor-grid,
  .portfolio-hero,
  .portfolio-thesis-summary,
  .portfolio-review-list article,
  .mentor-bias-grid,
  .mentor-snapshot-grid,
  .mentor-valuation-grid,
  .mentor-consensus-strip,
  .thesis-timeline-grid,
  .learning-story-grid,
  .market-hero,
  .market-leaders,
  .opportunity-hero,
  .board-hero,
  .opportunity-top-grid,
  .opportunity-board-grid,
  .opportunity-signal-panel,
  .index-card-strip,
  .opportunity-index-grid,
  .opportunity-main-grid,
  .opportunity-theme-grid,
  .radar-hero,
  .radar-grid,
  .event-module-tabs,
  .event-lane-grid,
  .event-mood-hero,
  .event-track-grid,
  .prediction-matrix,
  .radar-signal-grid,
  .source-map-grid,
  .track-grid,
  .source-grid,
  .theme-hero,
  .theme-stat-grid,
  .theme-segment-grid,
  .theme-revision-grid,
  .theme-draft-grid,
  .brief-hero,
  .brief-grid,
  .brief-columns,
  .research-console,
  .thesis-metrics,
  .thesis-scenario-grid,
  .thesis-core-grid,
  .vote-grid,
  .debate-grid,
  .debate-summary-strip,
  .scenario-grid,
  .valuation-hero,
  .valuation-method-head,
  .valuation-method-decision,
  .valuation-method-scenarios,
  .valuation-method-notes,
  .technical-hero,
  .scenario-table,
  .technical-grid,
  .technical-grid.compact,
  .technical-decision-grid,
  .trade-mentor-grid,
  .mentor-citation-grid,
  .skill-grid.two,
  .change-map-rail,
  .valuation-worksheet-grid,
  .risk-review-grid {
    grid-template-columns: 1fr;
  }

  .skill-hero {
    flex-direction: column;
  }

  .score-row,
  .bar-row,
  .ask-ai-box {
    grid-template-columns: 1fr;
  }

  .sector-bar-row {
    grid-template-columns: minmax(120px, 160px) minmax(0, 1fr);
  }

  .sector-value {
    grid-column: 1 / -1;
    grid-template-columns: auto auto;
    justify-content: space-between;
    justify-items: start;
  }

  .opportunity-theme-card header,
  .opportunity-theme-card footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .workspace-header {
    padding: 12px 18px;
  }

  .workspace-toolbars {
    grid-template-columns: 1fr;
    padding: 12px 14px;
  }

  .report-library-drawer {
    top: 64px;
    right: 12px;
    width: calc(100vw - 24px);
    max-height: calc(100vh - 88px);
  }

  .markdown-view {
    width: 100%;
    max-width: 100vw;
    padding: 18px 14px 44px;
  }

  .workspace-settings-panel {
    padding: 18px 14px 44px;
  }

  .settings-main-head,
  .settings-status-panel,
  .workspace-settings-panel .config-group {
    border-radius: 8px;
    padding: 14px;
  }

  .opportunity-dashboard,
  .opportunity-board,
  .board-hero,
  .opportunity-top-grid,
  .opportunity-board-grid,
  .index-card-strip {
    width: 100%;
    max-width: 100%;
  }

  .workspace-nav {
    grid-template-columns: 1fr;
  }

  .field-row {
    grid-template-columns: 1fr;
  }

  .thesis-monitor-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .board-title,
  .board-action,
  .opportunity-signal-panel,
  .sector-panel,
  .theme-opportunity-board {
    padding: 14px;
  }

  .opportunity-signal-card,
  .opportunity-index-card,
  .opportunity-theme-card,
  .visual-panel {
    padding: 12px;
  }

  .board-title h1 {
    font-size: 30px;
  }

  .signal-gauge strong {
    font-size: 34px;
  }

  .sector-bar-row,
  .opportunity-candidate-row,
  .opportunity-scope-note {
    align-items: stretch;
    flex-direction: column;
    grid-template-columns: 1fr;
  }

  .opportunity-candidate-row em {
    max-width: none;
    text-align: left;
  }
}

@media (max-width: 1280px) {
  .signal-layout,
  .signal-detail-panel,
  .theme-thesis-panel {
    grid-template-columns: 1fr;
  }

  .index-analysis-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .evaluation-summary-grid,
  .evaluation-window-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .selected-sector-note {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .opportunity-terminal .investment-signal-console,
  .opportunity-terminal .sector-terminal-panel,
  .opportunity-terminal .theme-opportunity-board {
    padding: 15px;
  }

  .terminal-section-head,
  .evaluation-band-head,
  .sector-toolbar,
  .market-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .index-analysis-grid,
  .metric-card-grid,
  .evaluation-summary-grid,
  .evaluation-window-strip {
    grid-template-columns: 1fr;
  }

  .opportunity-terminal .sector-bar-row {
    grid-template-columns: 1fr;
  }

  .section-meta {
    white-space: normal;
  }
}

/* AlphaBridge Amber Research Terminal refresh */
.workspace {
  background:
    linear-gradient(rgba(142, 104, 50, 0.035) 1px, transparent 1px) 0 0 / 100% 28px,
    linear-gradient(90deg, rgba(142, 104, 50, 0.030) 1px, transparent 1px) 0 0 / 28px 100%,
    radial-gradient(circle at 78% 8%, rgba(255, 241, 189, 0.62), transparent 28rem),
    #f3ecdd;
}

.workspace-header {
  background: rgba(255, 253, 247, 0.94);
  border-bottom-color: rgba(148, 111, 55, 0.18);
}

.sidebar {
  background:
    radial-gradient(circle at 20% 10%, rgba(240, 199, 106, 0.22), transparent 15rem),
    linear-gradient(180deg, #fffaf0 0%, #f5ead4 58%, #ead7b7 100%);
  border-color: rgba(128, 82, 28, 0.26);
  box-shadow: 12px 0 30px rgba(103, 75, 34, 0.06);
}

.brand-mark {
  border: 1px solid rgba(196, 134, 37, 0.28);
  background: linear-gradient(145deg, #fff8df, var(--amber-bright));
  box-shadow: 0 10px 22px rgba(183, 120, 32, 0.18);
}

.nav-item,
.panel,
.product-intro {
  border-radius: 12px;
}

.nav-item:hover,
.nav-item.active {
  border-color: rgba(196, 134, 37, 0.34);
  background: linear-gradient(180deg, rgba(255, 252, 242, 0.94), rgba(255, 244, 213, 0.74));
}

.opportunity-terminal {
  --terminal-ink: #1f190f;
  --terminal-muted: #756b59;
  --terminal-line: rgba(150, 113, 58, 0.18);
  --terminal-gold: var(--amber);
  --terminal-gold-dark: #9a6319;
  --terminal-red: #a44855;
  gap: 24px;
}

.opportunity-terminal .investment-signal-console,
.opportunity-terminal .sector-terminal-panel,
.opportunity-terminal .theme-opportunity-board {
  border: 1px solid var(--terminal-line);
  border-radius: 16px;
  background:
    linear-gradient(rgba(150, 113, 58, 0.035) 1px, transparent 1px) 0 0 / 100% 26px,
    linear-gradient(90deg, rgba(150, 113, 58, 0.025) 1px, transparent 1px) 0 0 / 26px 100%,
    linear-gradient(180deg, rgba(255, 254, 250, 0.98), rgba(255, 249, 236, 0.94));
  box-shadow: 0 18px 46px rgba(103, 75, 34, 0.08);
}

.opportunity-terminal .investment-signal-console,
.opportunity-terminal .sector-terminal-panel,
.opportunity-terminal .theme-opportunity-board {
  padding: 24px 26px 28px;
}

.terminal-section-head h2,
.terminal-section-head h3 {
  color: var(--terminal-ink);
}

.terminal-section-head p {
  max-width: 760px;
  margin: 8px 0 0;
  color: var(--terminal-muted);
  line-height: 1.7;
}

.signal-layout {
  grid-template-columns: minmax(360px, 0.9fr) minmax(560px, 1.1fr);
}

.signal-gauge-panel,
.signal-detail-panel,
.market-sentiment-panel,
.theme-thesis-panel,
.selected-sector-note {
  border-color: var(--terminal-line);
  border-radius: 14px;
  background: rgba(255, 253, 247, 0.80);
}

.signal-gauge-ring {
  background:
    radial-gradient(circle at center, #fffaf0 0 55%, transparent 56%),
    conic-gradient(from 220deg, var(--terminal-red) 0 18%, var(--amber-bright) 18% 44%, #f8e6a8 44% 58%, var(--terminal-gold) 58% calc(var(--score) * 1%), rgba(222, 207, 176, 0.48) calc(var(--score) * 1%) 100%);
}

.signal-tabs button.active,
.segmented-control button.active,
.theme-tabs button.active,
.opportunity-terminal .board-ghost:hover,
.opportunity-terminal .table-link:hover {
  background: linear-gradient(180deg, #fff0b8, var(--amber-bright));
  border-color: rgba(196, 134, 37, 0.62);
}

.signal-detail-panel {
  grid-template-columns: minmax(300px, 0.88fr) minmax(380px, 1.12fr);
}

.signal-explain,
.signal-metric,
.opportunity-terminal .opportunity-index-card {
  border-radius: 12px;
}

.market-sentiment-panel {
  padding: 18px;
}

.index-analysis-grid {
  grid-template-columns: repeat(4, minmax(190px, 1fr));
}

.sector-heading {
  align-items: flex-start;
}

.sector-heading .section-meta {
  display: inline-flex;
  width: fit-content;
  margin-top: 12px;
}

.sector-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin: 0;
}

.sector-bar-board.vertical {
  grid-template-columns: repeat(var(--sector-count, 11), minmax(74px, 1fr));
  gap: 9px;
  min-height: 420px;
  margin-top: 18px;
  border-radius: 14px;
  background:
    linear-gradient(rgba(95, 75, 38, 0.08) 1px, transparent 1px) 0 50% / 100% 25%,
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 246, 224, 0.52));
}

.opportunity-terminal .sector-bar-row.sector-bar {
  min-height: 370px;
}

.bar-fill.positive {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.30), transparent 38%),
    linear-gradient(180deg, #f3cf72, #b97820);
}

.bar-fill.negative {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.20), transparent 38%),
    linear-gradient(180deg, #c77262, var(--terminal-red));
}

.bar-value.positive {
  color: #9a6319;
}

.bar-value.negative {
  color: var(--terminal-red);
}

.bar-label {
  min-height: 80px;
}

.selected-sector-note {
  background: rgba(255, 250, 236, 0.78);
}

.theme-heading {
  align-items: flex-start;
  border-bottom: 1px solid rgba(150, 113, 58, 0.12);
  padding-bottom: 14px;
}

.theme-heading-actions {
  display: grid;
  justify-items: end;
  gap: 10px;
}

.theme-formula-inline {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  width: 100%;
  max-width: none;
  align-items: flex-start;
  gap: 12px;
  margin: -4px 0 14px;
  border: 1px solid rgba(196, 134, 37, 0.20);
  border-radius: 12px;
  background: rgba(255, 248, 230, 0.68);
  padding: 12px 14px;
  color: #5f543f;
  line-height: 1.7;
}

.theme-formula-inline strong {
  flex: 0 0 auto;
  color: #7b5218;
  white-space: nowrap;
}

.theme-formula-inline span {
  min-width: 0;
}

.theme-formula-weights {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.theme-formula-weights b {
  border: 1px solid rgba(196, 134, 37, 0.20);
  border-radius: 999px;
  background: rgba(255, 253, 247, 0.76);
  color: #7b5218;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.theme-thesis-panel.fusion {
  grid-template-columns: 1fr;
  gap: 16px;
  padding: 20px;
  background:
    radial-gradient(circle at 82% 12%, rgba(239, 199, 106, 0.26), transparent 20rem),
    rgba(255, 253, 247, 0.84);
}

.theme-thesis-summary.primary {
  display: grid;
  gap: 13px;
  min-height: 0;
}

.grade-pill {
  display: inline-flex;
  width: fit-content;
  border: 1px solid rgba(196, 134, 37, 0.30);
  border-radius: 999px;
  background: rgba(255, 246, 218, 0.84);
  padding: 7px 12px;
}

.theme-visual-panel {
  display: grid;
  grid-template-columns: 98px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  border: 1px solid rgba(150, 113, 58, 0.14);
  border-radius: 14px;
  background:
    linear-gradient(rgba(142, 104, 50, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(142, 104, 50, 0.06) 1px, transparent 1px),
    rgba(255, 251, 240, 0.68);
  background-size: 28px 28px;
  padding: 18px;
}

.theme-grade-dial {
  display: grid;
  width: 82px;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, #fffaf0 0 52%, transparent 53%),
    conic-gradient(var(--amber) calc(var(--score) * 1%), rgba(222, 207, 176, 0.54) 0);
  box-shadow: inset 0 0 0 1px rgba(121, 86, 35, 0.18);
}

.theme-grade-dial strong {
  color: #2a1d0c;
  font-size: 24px;
}

.theme-node-row {
  margin-bottom: 12px;
}

.strategy-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.strategy-tags span,
.theme-segment-pills span {
  border: 1px solid rgba(196, 134, 37, 0.22);
  border-radius: 999px;
  background: rgba(255, 248, 230, 0.86);
  color: var(--accent-dark);
  padding: 7px 11px;
  font-size: 12px;
  font-weight: 900;
}

.theme-segment-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.opportunity-candidate-table-wrap {
  max-height: none;
  border-radius: 14px;
  background: rgba(255, 253, 247, 0.86);
}

.opportunity-candidate-table th {
  background: #fff2cc;
  color: #74521d;
}

.opportunity-candidate-table tbody tr:hover {
  background: rgba(255, 247, 224, 0.78);
}

.opportunity-candidate-table .table-link {
  min-width: 76px;
}

.opportunity-terminal .opportunity-scope-note {
  border-radius: 12px;
  background: rgba(255, 250, 229, 0.88);
}

.product-home .workflow-map,
.product-home .demo-story,
.product-home .product-differentiators article {
  background: rgba(255, 253, 247, 0.82);
  border-color: rgba(150, 113, 58, 0.18);
  color: var(--ink);
}

.product-home .workflow-map h2,
.product-home .workflow-map h3,
.product-home .demo-story h2,
.product-home .demo-story h3,
.product-home .product-differentiators h3 {
  color: var(--ink);
}

.product-home .workflow-map p,
.product-home .demo-story p,
.product-home .product-differentiators p {
  color: #756b59;
}

.product-home .workflow-rail::before {
  background: linear-gradient(90deg, transparent, rgba(196, 134, 37, 0.28), transparent);
}

.product-home .workflow-rail article,
.product-home .demo-story-grid article {
  border-color: rgba(150, 113, 58, 0.18);
  background: rgba(255, 253, 247, 0.84);
  color: var(--ink);
}

.product-home .workflow-rail article b,
.product-home .demo-story-grid article b {
  border-color: rgba(196, 134, 37, 0.30);
  background: #fff4cf;
  color: #8b5a1e;
}

.product-home .workflow-rail article h4,
.product-home .demo-story-grid article h4 {
  color: var(--ink);
}

.product-home .workflow-rail article p,
.product-home .demo-story-grid article p {
  color: #756b59;
}

.product-home .workflow-rail article span,
.product-home .demo-story-grid article span {
  color: #9a7740;
}

/* Discovery alignment pass: keep AlphaBridge shell, use the accepted amber draft structure. */
.markdown-view:has(.opportunity-terminal) {
  padding: 18px 24px 56px;
}

.opportunity-loading-state {
  display: grid;
  min-height: 360px;
  align-content: center;
  gap: 22px;
  border: 1px solid rgba(196, 134, 37, 0.18);
  border-radius: 18px;
  background:
    linear-gradient(rgba(142, 104, 50, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(142, 104, 50, 0.05) 1px, transparent 1px),
    radial-gradient(circle at 70% 15%, rgba(239, 199, 106, 0.20), transparent 24rem),
    rgba(255, 253, 247, 0.84);
  background-size: 30px 30px, 30px 30px, auto, auto;
  padding: 40px;
}

.opportunity-loading-state div:first-child {
  display: grid;
  justify-items: center;
  gap: 10px;
  text-align: center;
}

.opportunity-loading-state div:first-child span {
  width: 38px;
  height: 38px;
  border: 4px solid rgba(196, 134, 37, 0.18);
  border-top-color: var(--amber);
  border-radius: 50%;
  animation: opportunity-loading-spin 0.9s linear infinite;
}

.opportunity-loading-state strong {
  color: #20170d;
  font-size: 24px;
}

.opportunity-loading-state p {
  margin: 0;
  color: #6e624e;
}

.loading-lines {
  display: grid;
  gap: 10px;
  max-width: 560px;
  margin: 0 auto;
}

.loading-lines i {
  height: 11px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(215, 166, 68, 0.16), rgba(215, 166, 68, 0.46), rgba(215, 166, 68, 0.14));
  animation: opportunity-loading-pulse 1.2s ease-in-out infinite;
}

.loading-lines i:nth-child(2) {
  width: 82%;
  animation-delay: 0.12s;
}

.loading-lines i:nth-child(3) {
  width: 64%;
  animation-delay: 0.24s;
}

@keyframes opportunity-loading-spin {
  to { transform: rotate(360deg); }
}

@keyframes opportunity-loading-pulse {
  0%, 100% { opacity: 0.45; transform: scaleX(0.98); }
  50% { opacity: 1; transform: scaleX(1); }
}

.opportunity-terminal {
  gap: 18px;
}

.opportunity-terminal .investment-signal-console,
.opportunity-terminal .sector-terminal-panel,
.opportunity-terminal .theme-opportunity-board {
  border-radius: 16px;
  padding: 22px 24px 26px;
}

.sector-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
}

.sector-toolbar {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 16px;
}

.sector-control-group {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.sector-control-group + .sector-control-group {
  border-left: 1px solid rgba(150, 113, 58, 0.18);
  padding-left: 16px;
}

.sector-control-group > span {
  color: #8a7655;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.02em;
  text-align: right;
}

.sector-control-group .segmented-control {
  border-radius: 999px;
  padding: 4px;
  background: rgba(255, 253, 247, 0.76);
}

.sector-control-group .segmented-control button {
  min-height: 34px;
  border-radius: 999px;
  padding: 0 16px;
}

.sector-control-group .metric-filter {
  border-color: rgba(150, 113, 58, 0.24);
}

.sector-control-group .market-filter {
  border-color: rgba(150, 113, 58, 0.16);
}

.theme-discovery-formula {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  border: 1px solid rgba(196, 134, 37, 0.22);
  border-radius: 14px;
  background: rgba(255, 248, 230, 0.78);
  padding: 13px 16px;
}

.theme-discovery-formula strong {
  color: #7b5218;
}

.theme-discovery-formula span {
  color: #5f543f;
  line-height: 1.7;
}

.theme-thesis-panel.legacy {
  grid-template-columns: minmax(0, 1fr) 300px;
  align-items: center;
  min-height: 148px;
  gap: 24px;
  padding: 22px 28px;
  border-radius: 14px;
  background:
    radial-gradient(circle at 86% 18%, rgba(239, 199, 106, 0.22), transparent 22rem),
    rgba(255, 253, 247, 0.84);
}

.theme-thesis-panel.legacy .theme-thesis-summary {
  display: grid;
  gap: 14px;
}

.theme-thesis-panel.legacy .theme-thesis-summary h3 {
  max-width: 1000px;
  font-size: 28px;
  line-height: 1.22;
}

.theme-thesis-panel.legacy .theme-thesis-summary p {
  max-width: 92ch;
  color: #5f543f;
  font-size: 15px;
}

.theme-thesis-panel.legacy .theme-verdict {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0;
  border: 0;
  background: transparent;
  padding: 0;
}

.theme-thesis-panel.legacy .theme-verdict strong {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, #fffaf0 0 51%, transparent 52%),
    conic-gradient(var(--amber) 0 76%, rgba(222, 207, 176, 0.54) 0);
  color: #2a1d0c;
  font-size: 24px;
}

.theme-thesis-panel.legacy .theme-verdict span {
  color: #7a5a24;
  font-size: 14px;
  font-weight: 950;
  white-space: nowrap;
}

.theme-thesis-panel.legacy .strategy-tags {
  justify-content: flex-end;
  max-width: 330px;
}

.theme-thesis-panel.legacy .theme-strategy-tags {
  align-self: center;
  justify-content: flex-end;
  max-width: 430px;
}

.theme-verdict-stack {
  display: grid;
  justify-items: end;
  gap: 12px;
}

.theme-grade-pill {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  border: 1px solid rgba(196, 134, 37, 0.26);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 246, 218, 0.95), rgba(255, 239, 189, 0.72));
  padding: 7px 12px;
  color: var(--accent-dark);
  font-size: 13px;
  font-weight: 900;
}

.theme-segment-pills {
  margin-top: 2px;
}

.scenario-price-gate-note {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  gap: 10px 14px;
  align-items: center;
  border-block: 1px solid rgba(196, 134, 37, 0.18);
  background: rgba(255, 252, 244, 0.62);
  padding: 11px 4px;
}

.scenario-price-gate-note strong {
  color: var(--accent-dark);
  font-size: 13px;
  font-weight: 950;
  white-space: nowrap;
}

.scenario-price-gate-note span {
  color: #685b47;
  font-size: 12px;
  line-height: 1.55;
}

.scenario-price-gate-note small {
  justify-self: end;
  border: 1px solid rgba(196, 134, 37, 0.22);
  border-radius: 999px;
  background: rgba(255, 248, 230, 0.86);
  color: #7b5218;
  padding: 5px 9px;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}

.opportunity-candidate-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.opportunity-candidate-table th:nth-child(1),
.opportunity-candidate-table td:nth-child(1) { width: 23%; }

.opportunity-candidate-table th:nth-child(2),
.opportunity-candidate-table td:nth-child(2) { width: 12%; }

.opportunity-candidate-table th:nth-child(3),
.opportunity-candidate-table td:nth-child(3) { width: 7%; }

.opportunity-candidate-table th:nth-child(4),
.opportunity-candidate-table td:nth-child(4) { width: 24%; }

.opportunity-candidate-table th:nth-child(5),
.opportunity-candidate-table td:nth-child(5) { width: 25%; }

.opportunity-candidate-table th:nth-child(6),
.opportunity-candidate-table td:nth-child(6) { width: 9%; }

.opportunity-candidate-table td {
  overflow-wrap: anywhere;
}

.opportunity-candidate-table .scenario-cell {
  display: table-cell;
  min-width: 0;
  color: inherit;
  font-family: inherit;
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
}

.scenario-stack {
  display: grid;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
}

.scenario-current-price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  color: #7a6542;
  font-size: 12px;
  line-height: 1.35;
}

.scenario-current-price b {
  font-weight: 800;
}

.scenario-current-price em {
  color: #3d3322;
  font-style: normal;
  font-variant-numeric: tabular-nums;
  font-weight: 950;
  white-space: nowrap;
}

.scenario-source-line {
  color: #8a7a62;
  font-size: 11px;
  line-height: 1.35;
}

.scenario-mini-range {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 0;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  border: 1px solid rgba(196, 134, 37, 0.20);
  border-radius: 10px;
  background: rgba(255, 250, 236, 0.78);
  padding: 0;
}

.scenario-mini-range span {
  display: grid;
  align-items: baseline;
  justify-content: start;
  gap: 2px;
  min-width: 0;
  padding: 7px 8px;
  border-right: 0;
}

.scenario-mini-range .scenario-divider {
  display: none;
}

.scenario-mini-range b {
  color: #7a6542;
  font-family: inherit;
  font-size: 12px;
}

.scenario-mini-range em {
  color: #a86816;
  font-style: normal;
  font-variant-numeric: tabular-nums;
  font-weight: 950;
  white-space: nowrap;
  font-size: 13px;
}

.scenario-mini-range.is-pending {
  border-style: dashed;
  background: rgba(255, 255, 255, 0.62);
}

.scenario-mini-range .scenario-divider + span {
  border-left: 1px solid rgba(196, 134, 37, 0.14);
}

.scenario-mini-range.is-pending em {
  color: #8a7a62;
  font-size: 12px;
  font-weight: 800;
}

.opportunity-candidate-table .report-action {
  display: inline-flex;
  width: 70px;
  justify-content: center;
  white-space: nowrap;
}

.opportunity-candidate-table td:first-child span {
  display: block;
  margin-top: 3px;
  color: #7b705f;
  font-size: 13px;
}

.opportunity-candidate-table td:first-child .candidate-source {
  display: block;
  margin-top: 6px;
  color: #8b7b60;
  font-size: 12px;
  line-height: 1.35;
}

/* 2026-06-15 opportunity refresh pass: keep the candidate table readable after live data merges. */
.opportunity-candidate-table-wrap {
  overflow-x: visible;
  overflow-y: visible;
}

.opportunity-candidate-table {
  min-width: 0;
  table-layout: fixed;
}

.opportunity-candidate-table th:nth-child(1),
.opportunity-candidate-table td:nth-child(1) { width: 23%; }

.opportunity-candidate-table th:nth-child(2),
.opportunity-candidate-table td:nth-child(2) { width: 12%; }

.opportunity-candidate-table th:nth-child(3),
.opportunity-candidate-table td:nth-child(3) { width: 7%; }

.opportunity-candidate-table th:nth-child(4),
.opportunity-candidate-table td:nth-child(4) { width: 24%; }

.opportunity-candidate-table th:nth-child(5),
.opportunity-candidate-table td:nth-child(5) { width: 25%; }

.opportunity-candidate-table th:nth-child(6),
.opportunity-candidate-table td:nth-child(6) { width: 9%; }

.opportunity-candidate-table th,
.opportunity-candidate-table td {
  box-sizing: border-box;
  vertical-align: middle;
}

.opportunity-candidate-table td {
  overflow-wrap: normal;
  word-break: normal;
}

.opportunity-candidate-table .scenario-cell {
  min-width: 0;
}

.scenario-mini-range {
  max-width: none;
  min-width: 248px;
}

.scenario-mini-range span {
  min-width: 0;
  white-space: nowrap;
}

.scenario-stack {
  max-width: none;
  min-width: 248px;
}

@media (max-width: 1180px) {
  .sector-heading,
  .theme-thesis-panel.legacy {
    grid-template-columns: 1fr;
  }

  .sector-toolbar,
  .sector-control-group > span,
  .theme-thesis-panel.legacy .strategy-tags {
    justify-content: flex-start;
    text-align: left;
  }

  .theme-verdict-stack {
    justify-items: start;
  }

  .theme-thesis-panel.legacy .theme-verdict {
    justify-content: space-between;
  }
}

@media (max-width: 1280px) {
  .index-analysis-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .theme-visual-panel {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .app-shell {
    padding: 0;
  }

  .sidebar {
    height: auto;
  }

  .markdown-view {
    padding: 18px 14px 48px;
  }

  .signal-layout,
  .signal-detail-panel,
  .selected-sector-note {
    grid-template-columns: 1fr;
  }

  .sector-bar-board.vertical {
    grid-template-columns: repeat(var(--sector-count, 6), minmax(68px, 1fr));
    overflow-x: auto;
  }

  .opportunity-terminal .sector-bar-row.sector-bar {
    min-width: 68px;
  }

  .theme-formula-inline {
    grid-template-columns: 1fr;
  }

  .theme-formula-weights {
    grid-column: 1;
  }
}

.opportunity-terminal .signal-layout {
  grid-template-columns: minmax(330px, 0.86fr) minmax(0, 1.14fr);
}

.opportunity-terminal .signal-gauge-ring {
  width: min(226px, 100%);
}

.opportunity-terminal .signal-detail-panel {
  grid-template-columns: minmax(230px, 0.78fr) minmax(280px, 1.22fr);
  overflow: hidden;
}

.opportunity-terminal .radar-card,
.opportunity-terminal .metric-card-grid,
.opportunity-terminal .signal-metric {
  min-width: 0;
}

.opportunity-terminal .signal-radar {
  min-height: 186px;
}

.opportunity-terminal .signal-metric {
  min-height: 116px;
  padding: 12px;
}

.opportunity-terminal .signal-metric strong {
  font-size: 30px;
}

.opportunity-terminal .signal-metric small {
  font-size: 12px;
  line-height: 1.55;
}

.signal-factor-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(188px, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.signal-factor-strip article {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 1px solid rgba(150, 113, 58, 0.18);
  border-radius: 10px;
  background: rgba(255, 253, 247, 0.78);
  padding: 12px;
}

.signal-factor-strip article.missing {
  background: rgba(255, 248, 230, 0.48);
  opacity: 0.78;
}

.signal-factor-strip header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.signal-factor-strip strong {
  color: #241b0d;
  font-size: 13px;
}

.signal-factor-strip header span {
  flex: 0 0 auto;
  border: 1px solid rgba(196, 134, 37, 0.24);
  border-radius: 999px;
  background: rgba(255, 246, 218, 0.86);
  color: #7b5218;
  padding: 3px 7px;
  font-size: 11px;
  font-weight: 900;
}

.factor-meter {
  height: 7px;
  border-radius: 999px;
  background: rgba(222, 207, 176, 0.58);
  overflow: hidden;
}

.factor-meter i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #b45d36, var(--amber-bright));
}

.signal-factor-strip p,
.signal-factor-strip small {
  margin: 0;
  color: #766951;
  font-size: 12px;
  line-height: 1.45;
}

.opportunity-terminal .opportunity-index-card {
  min-height: 150px;
}

@media (max-width: 1500px) {
  .opportunity-terminal .signal-layout {
    grid-template-columns: 1fr;
  }
}

/* Product introduction: standalone first visit and reusable left-nav homepage. */
.product-welcome[hidden] {
  display: none;
}

html.welcome-pending,
html.welcome-pending body {
  min-height: 100%;
  background: #f5f1e8;
}

html.welcome-pending body {
  overflow: auto;
}

html.welcome-pending .app-shell {
  display: none;
}

html.welcome-pending .product-welcome {
  display: block;
}

.product-welcome {
  min-height: 100vh;
  background: #f5f1e8;
}

.markdown-view:has(.product-onboarding) {
  padding: 0;
  background: #f5f1e8;
}

.product-onboarding {
  --product-ink: #201a12;
  --product-ink-soft: #504535;
  --product-paper: #fffdf8;
  --product-canvas: #f5f1e8;
  --product-amber: #d99a24;
  --product-amber-strong: #a96612;
  --product-amber-soft: #f5dfab;
  --product-sage: #668278;
  --product-brick: #a95352;
  --product-line: #ded4c2;
  width: 100%;
  color: var(--product-ink);
  background: var(--product-canvas);
  font-family: var(--font-sans);
}

.product-onboarding.standalone {
  min-height: 100vh;
}

.product-onboarding.embedded {
  container-type: inline-size;
}

.product-onboarding-nav {
  position: sticky;
  z-index: 20;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 72px;
  border-bottom: 1px solid rgba(244, 234, 210, 0.13);
  background: rgba(36, 26, 16, 0.94);
  padding: 0 clamp(24px, 5vw, 84px);
  backdrop-filter: blur(14px);
}

.product-onboarding.embedded .product-onboarding-nav {
  top: 0;
}

.product-wordmark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #f4ead2;
  text-decoration: none;
}

.product-wordmark > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 8px;
  background: var(--amber-bright);
  color: #2b2114;
  font-weight: 900;
}

.product-wordmark strong {
  font-size: 18px;
  letter-spacing: 0;
}

.product-onboarding-nav nav,
.product-hero-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.product-nav-link,
.product-text-button {
  min-height: 38px;
  border-color: transparent;
  background: transparent;
  color: rgba(244, 234, 210, 0.76);
  box-shadow: none;
}

.product-nav-link:hover,
.product-text-button:hover {
  border-color: rgba(232, 180, 69, 0.32);
  background: rgba(255, 248, 232, 0.08);
  color: #fff8e9;
}

.product-enter-button {
  min-height: 42px;
  border: 1px solid #f0bd59;
  border-radius: 8px;
  background: #d99a24;
  color: #2a1b08;
  font-weight: 800;
  box-shadow: 0 8px 22px rgba(61, 42, 19, 0.16);
}

.product-enter-button:hover {
  border-color: var(--product-amber);
  background: #f0bd59;
}

.product-onboarding-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  min-height: min(700px, calc(100vh - 72px));
  background: linear-gradient(160deg, #241a10 0%, #2f2213 55%, #3a2a15 100%);
  color: #f4ead2;
  padding: clamp(72px, 10vw, 136px) clamp(24px, 6vw, 104px) clamp(82px, 10vw, 132px);
  text-align: center;
}

.product-hero-copy {
  max-width: 920px;
  margin: 0 auto;
}

.product-kicker,
.product-feature-copy > p,
.product-section-heading > p,
.product-final-cta p {
  margin: 0 0 18px;
  color: var(--product-amber-strong);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.product-hero-copy h1 {
  margin: 0;
  font-size: clamp(34px, 5vw, 58px);
  line-height: 1.16;
  letter-spacing: 0;
}

.product-hero-copy h1 em {
  color: var(--product-amber-strong);
  font-style: normal;
}

.product-hero-summary {
  max-width: 680px;
  margin: 22px auto 0;
  color: #d8c7a3;
  font-size: 18px;
  line-height: 1.85;
}

.product-hero-actions {
  justify-content: center;
  margin-top: 34px;
}

.product-belief-section,
.product-module-section {
  display: grid;
  gap: 34px;
  padding: clamp(76px, 9vw, 122px) clamp(24px, 6vw, 104px);
  background: var(--product-paper);
}

.product-belief-grid,
.product-module-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.product-belief-grid article,
.product-module-grid article {
  display: grid;
  gap: 12px;
  min-height: 190px;
  border: 1px solid var(--product-line);
  border-radius: 8px;
  background: #fffaf0;
  padding: 22px;
}

.product-belief-grid span {
  color: var(--product-amber-strong);
  font-weight: 900;
}

.product-belief-grid h3,
.product-module-grid h3 {
  margin: 0;
  color: var(--product-ink);
  font-size: 20px;
}

.product-belief-grid p,
.product-module-grid p {
  margin: 0;
  color: var(--product-ink-soft);
  line-height: 1.68;
}

.product-module-grid {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.product-compliance-footer {
  border-top: 1px solid var(--product-line);
  background: #2f2214;
  color: #e7d6b2;
  padding: 22px clamp(24px, 6vw, 104px);
  text-align: center;
  font-size: 13px;
  line-height: 1.6;
}

.product-trust-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin: 30px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--product-line);
  list-style: none;
  color: #665a49;
  font-size: 13px;
}

.product-trust-list li::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--product-amber);
}

.product-research-canvas {
  position: relative;
  display: grid;
  gap: 18px;
  min-height: 510px;
  align-content: center;
  border: 1px solid #3b3125;
  border-radius: 12px;
  background:
    linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    var(--panel-dark);
  background-size: 36px 36px;
  padding: clamp(28px, 4vw, 52px);
  color: var(--panel-3);
  box-shadow: 0 28px 70px rgba(48, 34, 17, 0.22);
  overflow: hidden;
}

.canvas-status {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #cdbf9f;
  font-size: 12px;
}

.canvas-status > span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #e8b445;
  box-shadow: 0 0 0 5px rgba(232, 180, 69, 0.12);
}

.canvas-signal {
  display: grid;
  gap: 8px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255, 248, 232, 0.14);
}

.canvas-signal small,
.canvas-theme small {
  color: #aa9d83;
}

.canvas-signal strong {
  font-size: 34px;
}

.canvas-meter {
  height: 5px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.12);
}

.canvas-meter i {
  display: block;
  width: var(--value);
  height: 100%;
  background: var(--product-amber);
}

.canvas-flow {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto;
  align-items: center;
  gap: 12px;
  color: #e5dcc7;
  font-size: 12px;
}

.canvas-flow b {
  height: 1px;
  background: rgba(232, 180, 69, 0.46);
}

.canvas-theme {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  border-left: 3px solid var(--product-amber);
  padding: 4px 0 4px 18px;
}

.canvas-theme div {
  display: grid;
  gap: 5px;
}

.canvas-theme strong {
  font-size: 24px;
}

.canvas-theme > span {
  color: #f2c866;
  font-weight: 800;
}

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

.canvas-stocks > span {
  display: grid;
  gap: 4px;
  border: 1px solid rgba(255, 248, 232, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
  padding: 12px;
}

.canvas-stocks small {
  color: #a99c83;
}

.canvas-evidence {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #cdbf9f;
  font-size: 12px;
}

.canvas-evidence i {
  width: 24px;
  height: 2px;
  background: var(--product-sage);
}

.canvas-evidence i:nth-of-type(2) {
  margin-left: 10px;
  background: var(--product-brick);
}

.product-proof-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--product-line);
  border-bottom: 1px solid var(--product-line);
  background: #efe8da;
  padding: 0 clamp(24px, 6vw, 104px);
}

.product-proof-band article {
  display: grid;
  gap: 8px;
  min-height: 148px;
  align-content: center;
  padding: 30px clamp(20px, 3vw, 44px);
  border-right: 1px solid rgba(84, 69, 48, 0.14);
}

.product-proof-band article:first-child {
  padding-left: 0;
}

.product-proof-band article:last-child {
  border-right: 0;
}

.product-proof-band strong {
  font-size: 18px;
}

.product-proof-band span {
  color: #655a4a;
  line-height: 1.65;
}

.product-workflow-section {
  display: grid;
  grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(42px, 7vw, 110px);
  padding: clamp(80px, 9vw, 130px) clamp(24px, 6vw, 104px);
  background: var(--product-paper);
}

.product-section-heading h2,
.product-feature-copy h2,
.product-final-cta h2 {
  margin: 0;
  font-size: clamp(32px, 3.5vw, 54px);
  line-height: 1.12;
  letter-spacing: 0;
}

.product-section-heading > span,
.product-feature-copy > span {
  display: block;
  margin-top: 22px;
  color: var(--product-ink-soft);
  font-size: 16px;
  line-height: 1.8;
}

.product-workflow-track {
  position: relative;
  display: grid;
  gap: 0;
  border-top: 1px solid var(--product-line);
}

.product-workflow-track article {
  display: grid;
  grid-template-columns: 74px minmax(150px, 0.65fr) minmax(200px, 1fr);
  gap: 24px;
  align-items: center;
  min-height: 108px;
  border-bottom: 1px solid var(--product-line);
}

.product-workflow-track article > span {
  color: var(--product-amber-strong);
  font-size: 13px;
  font-weight: 800;
}

.product-workflow-track strong {
  font-size: 20px;
}

.product-workflow-track small {
  color: #6d6252;
  font-size: 14px;
  line-height: 1.55;
}

.product-capability-stream {
  border-top: 1px solid var(--product-line);
}

.product-feature {
  display: grid;
  grid-template-columns: minmax(300px, 0.76fr) minmax(520px, 1.24fr);
  gap: clamp(44px, 7vw, 112px);
  align-items: center;
  min-height: 680px;
  padding: clamp(72px, 8vw, 120px) clamp(24px, 6vw, 104px);
  border-bottom: 1px solid var(--product-line);
  background: var(--product-paper);
}

.product-feature.reverse {
  grid-template-columns: minmax(520px, 1.24fr) minmax(300px, 0.76fr);
  background: #eee7da;
}

.product-feature.reverse .product-feature-copy {
  grid-column: 2;
}

.product-feature.reverse .product-feature-visual {
  grid-row: 1;
  grid-column: 1;
}

.product-feature-copy ul {
  display: grid;
  gap: 12px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

.product-feature-copy li {
  position: relative;
  padding-left: 22px;
  color: #403629;
  line-height: 1.5;
}

.product-feature-copy li::before {
  content: "";
  position: absolute;
  top: 0.65em;
  left: 0;
  width: 11px;
  height: 2px;
  background: var(--product-amber);
}

.product-feature-visual {
  min-height: 430px;
  border: 1px solid var(--panel-dark-line);
  border-radius: 12px;
  background: var(--panel-dark);
  color: var(--panel-3);
  box-shadow: 0 24px 54px rgba(48, 34, 17, 0.18);
  overflow: hidden;
}

.visual-header,
.chart-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 54px;
  border-bottom: 1px solid rgba(255, 248, 232, 0.14);
  padding: 0 22px;
  color: #d7c9ad;
}

.visual-header b,
.chart-label b {
  color: var(--amber-bright);
  font-size: 12px;
}

.discovery-visual {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
}

.discovery-visual .visual-header {
  grid-column: 1 / -1;
}

.visual-gauge {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 4px;
  border-right: 1px solid rgba(255, 248, 232, 0.14);
}

.visual-gauge strong {
  display: grid;
  width: 124px;
  height: 124px;
  place-items: center;
  border: 12px solid rgba(255, 255, 255, 0.08);
  border-top-color: #e6b84e;
  border-right-color: #e6b84e;
  border-radius: 50%;
  font-size: 42px;
}

.visual-gauge span {
  color: #c7b99e;
  font-size: 13px;
}

.visual-sector-bars {
  display: grid;
  gap: 24px;
  align-content: center;
  padding: 30px;
}

.visual-sector-bars i {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  padding-bottom: 13px;
  color: #efe6d4;
  font-style: normal;
}

.visual-sector-bars i::before,
.visual-sector-bars i::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 5px;
}

.visual-sector-bars i::before {
  width: 100%;
  background: rgba(255, 255, 255, 0.09);
}

.visual-sector-bars i::after {
  width: var(--bar);
  background: var(--product-sage);
}

.visual-sector-bars i.down::after {
  background: var(--product-brick);
}

.visual-sector-bars b {
  color: var(--amber-bright);
}

.stock-visual {
  display: grid;
  gap: 0;
  padding: 22px;
}

.stock-identity {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255, 248, 232, 0.14);
}

.stock-identity > span {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  border-radius: 8px;
  background: var(--amber-bright);
  color: #2b2114;
  font-weight: 900;
}

.stock-identity div {
  display: grid;
  gap: 5px;
}

.stock-identity small,
.thesis-line span,
.scenario-lane small {
  color: #aa9d83;
}

.stock-identity > b {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid rgba(239, 200, 110, 0.54);
  border-radius: 50%;
  color: var(--amber-bright);
  font-size: 20px;
}

.thesis-line {
  display: grid;
  gap: 10px;
  padding: 28px 0;
}

.thesis-line strong {
  font-size: 23px;
  line-height: 1.4;
}

.scenario-lane {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 248, 232, 0.14);
  border-bottom: 1px solid rgba(255, 248, 232, 0.14);
}

.scenario-lane > span {
  display: grid;
  gap: 5px;
  padding: 18px;
  border-right: 1px solid rgba(255, 248, 232, 0.14);
}

.scenario-lane > span:last-child {
  border-right: 0;
}

.scenario-lane b {
  color: var(--amber-bright);
  font-size: 22px;
}

.evidence-line {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 22px;
}

.evidence-line span {
  border: 1px solid rgba(255, 248, 232, 0.14);
  border-radius: 999px;
  padding: 7px 11px;
  color: #d8ccb4;
  font-size: 12px;
}

.technical-visual {
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.technical-visual svg {
  width: 100%;
  height: 100%;
  min-height: 300px;
  padding: 20px 24px 0;
}

.chart-grid {
  fill: none;
  stroke: rgba(255, 255, 255, 0.09);
  stroke-width: 1;
}

.chart-area {
  fill: rgba(217, 154, 36, 0.14);
}

.chart-line {
  fill: none;
  stroke: var(--amber-bright);
  stroke-width: 4;
  stroke-linecap: round;
}

.technical-levels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 248, 232, 0.14);
}

.technical-levels span {
  padding: 17px;
  border-right: 1px solid rgba(255, 248, 232, 0.14);
  color: #d7c9ad;
  text-align: center;
}

.technical-levels span:last-child {
  border-right: 0;
}

.portfolio-visual {
  display: grid;
  align-content: center;
  padding: 24px;
}

.portfolio-summary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 18px;
  align-items: center;
  padding: 0 4px 22px;
}

.portfolio-summary span,
.portfolio-summary small {
  color: #aa9d83;
}

.portfolio-summary strong {
  grid-row: 1 / 3;
  grid-column: 2;
  color: var(--amber-bright);
  font-size: 46px;
}

.portfolio-row {
  display: grid;
  grid-template-columns: 72px 72px 1fr auto;
  gap: 12px;
  align-items: center;
  min-height: 74px;
  border-top: 1px solid rgba(255, 248, 232, 0.14);
}

.portfolio-row span,
.portfolio-row i {
  color: #b7aa91;
  font-size: 12px;
  font-style: normal;
}

.portfolio-row i::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 7px;
  border-radius: 50%;
  background: var(--product-sage);
}

.portfolio-row i.warning::before {
  background: var(--product-amber);
}

.mentor-visual {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-height: 360px;
}

.mentor-visual > div {
  display: grid;
  align-content: end;
  gap: 12px;
  border-right: 1px solid rgba(255, 248, 232, 0.14);
  padding: 28px;
}

.mentor-visual > div:last-child {
  border-right: 0;
}

.mentor-visual span {
  color: var(--amber-bright);
  font-size: 12px;
  font-weight: 800;
}

.mentor-visual strong {
  font-size: 24px;
}

.mentor-visual small {
  color: #b8aa90;
  line-height: 1.65;
}

.memory-visual {
  display: grid;
  align-content: center;
  gap: 0;
  padding: 38px;
}

.memory-visual > div {
  position: relative;
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 26px;
  min-height: 105px;
}

.memory-visual > div::before {
  content: "";
  position: absolute;
  top: 7px;
  left: 103px;
  width: 10px;
  height: 10px;
  border: 3px solid var(--amber-bright);
  border-radius: 50%;
  background: var(--panel-dark);
}

.memory-visual > div::after {
  content: "";
  position: absolute;
  top: 20px;
  bottom: -5px;
  left: 108px;
  width: 1px;
  background: rgba(239, 200, 110, 0.36);
}

.memory-visual > div:last-child::after {
  display: none;
}

.memory-visual time {
  color: #a99c83;
  font-size: 12px;
}

.memory-visual > div > span {
  display: grid;
  gap: 8px;
  padding-left: 28px;
}

.memory-visual strong {
  font-size: 18px;
}

.memory-visual small {
  color: #b8aa90;
  line-height: 1.55;
}

.product-final-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  min-height: 340px;
  padding: 70px clamp(24px, 6vw, 104px);
  background: #e7ad39;
}

.product-final-cta p {
  color: #69400a;
}

.product-final-cta h2 {
  max-width: 760px;
}

.home-entry-actions {
  margin-top: 10px;
}

@media (prefers-reduced-motion: reduce) {
  .product-onboarding *,
  .product-onboarding *::before,
  .product-onboarding *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

@media (max-width: 1180px) {
  .product-onboarding-hero,
  .product-workflow-section,
  .product-feature,
  .product-feature.reverse {
    grid-template-columns: 1fr;
  }

  .product-onboarding-hero {
    min-height: auto;
  }

  .product-research-canvas {
    min-height: 470px;
  }

  .product-feature.reverse .product-feature-copy,
  .product-feature.reverse .product-feature-visual {
    grid-column: 1;
  }

  .product-feature.reverse .product-feature-copy {
    grid-row: 1;
  }

  .product-feature.reverse .product-feature-visual {
    grid-row: 2;
  }
}

@container (max-width: 1200px) {
  .product-onboarding.embedded .product-onboarding-hero,
  .product-onboarding.embedded .product-workflow-section,
  .product-onboarding.embedded .product-feature,
  .product-onboarding.embedded .product-feature.reverse {
    grid-template-columns: 1fr;
  }

  .product-onboarding.embedded .product-feature.reverse .product-feature-copy,
  .product-onboarding.embedded .product-feature.reverse .product-feature-visual {
    grid-column: 1;
  }

  .product-onboarding.embedded .product-feature.reverse .product-feature-copy {
    grid-row: 1;
  }

  .product-onboarding.embedded .product-feature.reverse .product-feature-visual {
    grid-row: 2;
  }
}

@media (max-width: 760px) {
  .product-onboarding-nav {
    min-height: 62px;
    padding: 0 16px;
  }

  .product-onboarding-nav .product-nav-link {
    display: none;
  }

  .product-onboarding-nav .product-enter-button {
    min-height: 36px;
    padding: 0 10px;
    font-size: 12px;
  }

  .product-onboarding-hero,
  .product-workflow-section,
  .product-feature,
  .product-final-cta {
    padding-left: 18px;
    padding-right: 18px;
  }

  .product-onboarding-hero {
    gap: 42px;
    padding-top: 54px;
    padding-bottom: 64px;
  }

  .product-hero-copy h1 {
    font-size: clamp(40px, 12vw, 58px);
  }

  .product-hero-summary {
    font-size: 15px;
  }

  .product-hero-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .product-trust-list {
    display: grid;
  }

  .product-research-canvas {
    min-height: 450px;
    padding: 24px 18px;
  }

  .canvas-stocks {
    grid-template-columns: 1fr;
  }

  .canvas-flow {
    grid-template-columns: 1fr;
  }

  .canvas-flow b {
    display: none;
  }

  .product-proof-band {
    grid-template-columns: 1fr;
    padding: 0 18px;
  }

  .product-proof-band article,
  .product-proof-band article:first-child {
    min-height: 116px;
    border-right: 0;
    border-bottom: 1px solid rgba(84, 69, 48, 0.14);
    padding: 24px 0;
  }

  .product-proof-band article:last-child {
    border-bottom: 0;
  }

  .product-workflow-track article {
    grid-template-columns: 58px 1fr;
    gap: 12px;
    padding: 18px 0;
  }

  .product-workflow-track small {
    grid-column: 2;
  }

  .product-feature {
    min-height: auto;
    gap: 38px;
    padding-top: 70px;
    padding-bottom: 70px;
  }

  .product-feature-visual {
    min-height: 390px;
  }

  .discovery-visual {
    grid-template-columns: 1fr;
  }

  .visual-gauge {
    min-height: 190px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 248, 232, 0.14);
  }

  .scenario-lane,
  .technical-levels,
  .mentor-visual {
    grid-template-columns: 1fr;
  }

  .scenario-lane > span,
  .technical-levels span,
  .mentor-visual > div {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 248, 232, 0.14);
  }

  .mentor-visual > div {
    min-height: 170px;
  }

  .portfolio-row {
    grid-template-columns: 64px 64px 1fr;
  }

  .portfolio-row > strong {
    grid-column: 3;
    text-align: right;
  }

  .memory-visual {
    padding: 28px 18px;
  }

  .memory-visual > div {
    grid-template-columns: 64px 1fr;
  }

  .memory-visual > div::before {
    left: 76px;
  }

  .memory-visual > div::after {
    left: 81px;
  }

  .product-final-cta {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Opportunity delivery gate: unavailable data, focus visibility, and final responsive cascade. */
.scenario-unavailable {
  display: grid;
  gap: 4px;
  min-width: 220px;
  border: 1px dashed rgba(143, 103, 41, 0.28);
  border-radius: 8px;
  background: rgba(255, 251, 240, 0.76);
  padding: 9px 10px;
}

.scenario-unavailable strong {
  color: #6e4b1d;
  font-size: 13px;
}

.scenario-unavailable span,
.candidate-decision-limit {
  display: block;
  color: #82735d;
  font-size: 11px;
  line-height: 1.45;
}

.candidate-decision-limit {
  margin-top: 6px;
}

.candidate-research-plan {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.candidate-research-plan strong {
  color: #4d3514;
  font-size: 13px;
}

.candidate-research-plan ul {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 16px;
  color: #5f4c2f;
  font-size: 12px;
  line-height: 1.45;
}

.opportunity-terminal button:focus-visible,
.opportunity-terminal summary:focus-visible,
.opportunity-terminal [tabindex]:focus-visible {
  outline: 3px solid rgba(194, 126, 20, 0.7);
  outline-offset: 3px;
}

.index-position.unavailable {
  display: grid;
  place-items: center;
  min-height: 18px;
  background: rgba(131, 110, 77, 0.08);
}

.index-position.unavailable span {
  color: #8a7a61;
  font-size: 10px;
}

@media (max-width: 900px) {
  .opportunity-terminal .signal-layout,
  .opportunity-terminal .signal-detail-panel,
  .opportunity-terminal .selected-sector-note {
    grid-template-columns: 1fr;
  }

  .opportunity-terminal .signal-detail-panel {
    overflow: visible;
  }
}

@media (max-width: 900px) {
  .opportunity-candidate-table-wrap {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .opportunity-candidate-table {
    display: block;
    min-width: 0;
  }

  .opportunity-candidate-table thead {
    display: none;
  }

  .opportunity-candidate-table tbody {
    display: grid;
    gap: 12px;
  }

  .scenario-price-gate-note {
    grid-template-columns: 1fr;
  }

  .scenario-price-gate-note small {
    justify-self: start;
    white-space: normal;
  }

  .opportunity-candidate-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid rgba(150, 113, 58, 0.18);
    border-radius: 10px;
    background: rgba(255, 253, 247, 0.9);
  }

  .opportunity-candidate-table tbody td,
  .opportunity-candidate-table .scenario-cell {
    display: block;
    width: auto !important;
    min-width: 0;
    border-right: 1px solid rgba(150, 113, 58, 0.12);
    padding: 11px 12px;
  }

  .opportunity-candidate-table tbody td::before {
    display: block;
    margin-bottom: 6px;
    color: #9a7d4d;
    font-size: 10px;
    font-weight: 900;
  }

  .opportunity-candidate-table tbody td:nth-child(1),
  .opportunity-candidate-table tbody td:nth-child(5) {
    grid-column: 1 / -1;
  }

  .opportunity-candidate-table tbody td:nth-child(1)::before { content: "标的"; }
  .opportunity-candidate-table tbody td:nth-child(2)::before { content: "产业链分段"; }
  .opportunity-candidate-table tbody td:nth-child(3)::before { content: "研究分"; }
  .opportunity-candidate-table tbody td:nth-child(4)::before { content: "当前价 / 研究情景价"; }
  .opportunity-candidate-table tbody td:nth-child(5)::before { content: "研究下一步 / 验证依据"; }
  .opportunity-candidate-table tbody td:nth-child(6)::before { content: "报告"; }

  .scenario-mini-range,
  .scenario-unavailable {
    width: 100%;
    min-width: 0;
  }
}

/* Keep primary workspace navigation before the long report canvas on tablet/mobile. */
@media (max-width: 900px) {
  .app-shell > .sidebar {
    order: 0 !important;
  }

  .app-shell > .workspace {
    order: 1 !important;
  }

}

/* Stock research V1 lives inside the existing AlphaBridge workspace shell. */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.stock-research-workspace {
  position: relative;
  display: grid;
  gap: 18px;
  margin-bottom: 22px;
  color: var(--ink);
}

/* Stock research full redesign — layout and tokens follow prototype 52. */
.stock-research-workspace { gap: 12px; max-width: 1360px; margin: 0 auto 28px; }
.sr-entry-zone { display:grid; grid-template-columns:auto minmax(320px,1fr); align-items:center; gap:12px; padding:12px 14px; border:1px solid #e2d9c4; border-radius:12px; background:#faf7f0; box-shadow:0 1px 2px rgba(60,45,20,.06),0 6px 18px rgba(60,45,20,.05); }
.sr-entry-copy span { color:#8b8471; font-size:10px; letter-spacing:1px; text-transform:uppercase; }
.sr-entry-copy h1 { margin:2px 0 0; font-size:18px; color:#2a251d; }
.sr-entry-actions { justify-content:flex-end; }
.sr-entry-actions input { width:min(440px,46vw); min-height:38px; border-color:#e2d9c4; background:#fffdf8; }
.sr-entry-actions button { min-height:38px; border-color:#a8752a; background:#a8752a; color:#fff; }
.sr-entry-zone .stock-watch-track { grid-column:1/-1; border:0; border-top:1px dashed #e2d9c4; border-radius:0; background:transparent; overflow:visible; }
.stock-watch-heading { display:flex; gap:8px; align-items:center; padding:10px 0 0; background:transparent; }
.stock-watch-heading > strong { flex:0 0 auto; color:#8b8471; font-size:10px; letter-spacing:1px; text-transform:uppercase; }
.stock-watch-chips { display:flex; flex:1 1 auto; min-width:0; gap:8px; overflow-x:auto; padding:1px; }
.stock-watch-row { display:block; padding:0; border:0; background:transparent; }
.stock-watch-symbol { display:flex; align-items:center; gap:7px; min-height:36px; border:1px solid #e2d9c4; border-radius:9px; background:#fffdf8; color:#2a251d; padding:5px 9px; white-space:nowrap; }
.stock-watch-row.active .stock-watch-symbol { border-color:#a8752a; background:#f0e6cf; box-shadow:none; }
.stock-watch-symbol span { display:grid; gap:0; }
.stock-watch-symbol strong { font-size:12px; }.stock-watch-symbol small { font-size:10px; }
.stock-watch-symbol em { font-style:normal; font-size:9px; padding:1px 6px; min-height:0; }
.sr-track-filter { flex:0 0 auto; min-height:34px; border-color:#e2d9c4; background:#fffdf8; }
.sr-company-logo { position:relative; display:inline-grid; place-items:center; width:19px; height:19px; flex:0 0 19px; overflow:hidden; border-radius:5px; background:linear-gradient(135deg,#a8752a,#6b5429); color:#fff; font-size:10px; }
.sr-company-logo.large { width:44px; height:44px; flex-basis:44px; border-radius:11px; font-size:17px; }
.sr-company-logo img { position:absolute; inset:0; z-index:2; width:100%; height:100%; object-fit:contain; background:#fff; }.sr-company-logo i { display:none; }.sr-company-logo b { font-weight:800; }
.stock-research-cockpit { border-color:#e2d9c4; border-radius:12px; background:#faf7f0; box-shadow:0 1px 2px rgba(60,45,20,.06),0 6px 18px rgba(60,45,20,.05); padding:16px 18px; }
.stock-cockpit-heading { border-color:#e2d9c4; }.stock-cockpit-title { align-items:center; }.stock-cockpit-title h2 { font-size:20px; }.stock-cockpit-title p { margin:2px 0 0; font-size:11.5px; }.stock-cockpit-heading > div:first-child > p { margin:8px 0 0; font-size:10.5px; }
.stock-cockpit-hero { margin-top:14px; }.stock-cockpit-hero-body h3 { font-size:16px; }.stock-cockpit-hero-body p { color:#6b6350; }.stock-cockpit-meta { border-color:#e2d9c4; }.stock-cockpit-meta span { color:#8b8471; }
.stock-report-nav { position:sticky; top:0; z-index:12; border-color:#e2d9c4; background:#faf7f0ee; box-shadow:0 1px 2px rgba(60,45,20,.06); }.stock-report-nav a,.stock-report-nav button { border-color:transparent; background:transparent; color:#8b8471; }.stock-report-nav button.active { border-color:#1b1812; background:#1b1812; color:#f0d9a8; box-shadow:none; }.stock-report-nav button:hover { border-color:#e2d9c4; background:#f2ebda; color:#2a251d; }
.stock-research-content-grid { grid-template-columns:minmax(0,1fr) 300px; gap:14px; }.stock-research-side-stack { top:72px; gap:14px; }.stock-report-panel,.stock-research-inbox,.stock-side-panel { border-color:#e2d9c4; border-radius:12px; background:#faf7f0; box-shadow:0 1px 2px rgba(60,45,20,.06),0 6px 18px rgba(60,45,20,.05); }.stock-report-panel-head { border-color:#e2d9c4; padding:16px 18px; }.stock-report-panel-head h2 { font-size:15px; }.stock-report-panel-body { padding:16px 18px; }.stock-report-panel-head em { border-color:#dfe4d6; background:#eef0ea; color:#5c6b52; border-radius:20px; font-size:10px; padding:2px 8px; }
.stock-research-inbox h3,.stock-side-panel h3 { font-size:13px; }.stock-research-inbox > span,.stock-side-panel > span,.stock-report-panel-head span { color:#8b8471; font-size:10px; letter-spacing:.7px; text-transform:uppercase; }
.stock-score-ring { width:180px; height:180px; }.stock-score-ring svg { width:180px; height:180px; }.stock-score-ring strong { font-size:36px; }.stock-synthesis-layout { gap:22px; }.stock-technical-visual-grid { gap:18px; }
@media (max-width:1080px) { .sr-entry-zone { grid-template-columns:1fr; }.sr-entry-actions { justify-content:stretch; }.sr-entry-actions input { width:100%; }.stock-research-content-grid { grid-template-columns:1fr; }.stock-research-side-stack { position:static; }.stock-watch-heading { align-items:flex-start; flex-wrap:wrap; }.stock-watch-chips { width:100%; flex-basis:100%; order:3; }.sr-track-filter { margin-left:auto; } }

.stock-research-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: 4px 2px 18px;
  border-bottom: 1px solid #cdd7dc;
}

.stock-research-toolbar > div:first-child {
  max-width: 720px;
}

.stock-research-toolbar span,
.stock-watch-heading span,
.stock-cockpit-heading p,
.stock-cockpit-quote span,
.stock-verdict > span,
.stock-cockpit-tasks span,
.stock-research-controls label > span,
.stock-synthesis-body span,
.stock-research-queue header span,
.stock-research-report-placeholder span {
  color: #5e707a;
  font-size: 12px;
}

.stock-research-toolbar h1 {
  margin: 5px 0 7px;
  color: var(--ink);
  font-size: 24px;
  line-height: 1.25;
  text-wrap: balance;
}

.stock-research-toolbar p,
.stock-cockpit-heading p,
.stock-verdict p,
.stock-research-report-placeholder p,
.stock-research-empty-cockpit p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.stock-research-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.stock-research-toolbar-actions input {
  width: min(250px, 34vw);
  min-height: 38px;
  border: 1px solid #aebdc5;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 0 11px;
}

.stock-research-toolbar-actions input::placeholder,
.stock-research-controls input::placeholder {
  color: #667984;
  opacity: 1;
}

.stock-research-toolbar-actions input:focus-visible,
.stock-research-controls input:focus-visible,
.stock-research-controls select:focus-visible,
.stock-research-workspace button:focus-visible {
  outline: 3px solid rgba(45, 103, 136, 0.32);
  outline-offset: 2px;
}

.stock-research-feedback {
  border: 1px solid #c4d3da;
  border-radius: 8px;
  background: #eef5f8;
  padding: 10px 12px;
  color: #264d63;
  font-size: 13px;
}

.stock-watch-track,
.stock-research-cockpit,
.stock-research-report-placeholder,
.stock-research-empty-cockpit,
.stock-research-loading {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f9fbfc;
}

.stock-watch-track {
  overflow: hidden;
}

.stock-watch-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
  background: #eef3f5;
}

.stock-watch-heading > div:first-child {
  display: grid;
  gap: 3px;
}

.stock-watch-heading strong {
  color: #1c303b;
  font-size: 14px;
}

.stock-watch-filters,
.stock-synthesis-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.stock-watch-filters button,
.stock-synthesis-tabs button {
  min-height: 32px;
  border-color: var(--line-strong);
  background: #fff;
  color: var(--muted);
  padding: 0 10px;
}

.stock-watch-filters button.active,
.stock-synthesis-tabs button.active {
  border-color: var(--accent-dark);
  background: var(--accent-dark);
  color: #fff;
}

.stock-watch-table-head,
.stock-watch-row {
  display: grid;
  grid-template-columns: minmax(140px, 1.2fr) minmax(94px, 0.75fr) minmax(76px, 0.6fr) minmax(112px, 0.9fr) minmax(100px, 0.8fr) minmax(100px, 0.8fr) minmax(130px, 1fr) minmax(122px, auto);
  gap: 12px;
  align-items: center;
}

.stock-watch-table-head {
  padding: 9px 16px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.stock-watch-row {
  padding: 12px 16px;
  border-bottom: 1px solid #e3e9ec;
  background: #fff;
}

.stock-watch-row:last-child {
  border-bottom: 0;
}

.stock-watch-row.active {
  background: #edf5f8;
  box-shadow: inset 3px 0 0 var(--accent-dark);
}

.stock-watch-row > div,
.stock-watch-symbol {
  display: grid;
  gap: 3px;
  text-align: left;
}

.stock-watch-symbol {
  min-height: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0;
}

.stock-watch-symbol:hover {
  border: 0;
  background: transparent;
  color: var(--accent-dark);
}

.stock-watch-row strong,
.stock-watch-symbol strong {
  color: var(--ink);
  font-size: 13px;
}

.stock-watch-row small,
.stock-watch-symbol small {
  overflow: hidden;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
  text-overflow: ellipsis;
}

.stock-watch-actions {
  display: flex !important;
  justify-content: flex-end;
  gap: 6px !important;
}

.stock-watch-actions button {
  min-height: 32px;
  padding: 0 9px;
}

.stock-research-status {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 24px;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 800;
}

.stock-research-status.researching { background: #dcecf3; color: #24526a; }
.stock-research-status.review { background: #fff0ca; color: #774f10; }
.stock-research-status.holding { background: #dcefe3; color: #24593a; }
.stock-research-status.watch { background: #e9ecef; color: #4d5e67; }
.stock-research-status.archived { background: #eee9e6; color: #695a52; }

.stock-watch-empty {
  display: grid;
  gap: 5px;
  padding: 24px 16px;
  text-align: center;
}

.stock-watch-empty strong { color: var(--ink); }
.stock-watch-empty span { color: #61747e; font-size: 13px; }

.stock-research-dashboard,
.stock-research-content-grid {
  display: grid;
  gap: 16px;
}

.stock-research-dashboard {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

.stock-research-cockpit {
  padding: 18px;
}

.stock-research-inbox,
.stock-side-panel {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f9fbfc;
  padding: 16px;
}

.stock-research-inbox > span,
.stock-side-panel > span,
.stock-report-panel-head span {
  color: #7a6b57;
  font-size: 12px;
  font-weight: 800;
}

.stock-research-inbox h3,
.stock-side-panel h3 {
  margin: 6px 0 14px;
  color: var(--ink);
  font-size: 17px;
}

.stock-inbox-list,
.stock-candidate-list,
.stock-persona-list {
  display: grid;
  gap: 10px;
}

.stock-inbox-list article,
.stock-candidate-list article,
.stock-persona-list article {
  display: grid;
  gap: 6px;
  border: 1px solid #ded7cb;
  border-radius: 8px;
  background: #fffdfa;
  padding: 11px;
}

.stock-inbox-list article[data-tone="risk"] { border-color: #e1c5b4; background: #fff8f3; }
.stock-inbox-list article[data-tone="ok"] { border-color: #c7dacd; background: #f6fbf7; }
.stock-inbox-list article[data-tone="review"] { border-color: #e8d4a9; background: #fffaf0; }

.stock-inbox-list strong,
.stock-candidate-list strong,
.stock-persona-list strong {
  color: var(--ink);
  line-height: 1.35;
}

.stock-inbox-list small,
.stock-candidate-list small,
.stock-persona-list small,
.stock-persona-list p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.stock-candidate-list article {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.stock-report-nav {
  position: sticky;
  z-index: 12;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  overflow-x: auto;
  border: 1px solid #d9d1c3;
  border-radius: 10px;
  background: rgba(255, 253, 249, 0.96);
  padding: 10px;
  box-shadow: 0 2px 4px rgba(68, 50, 28, 0.06);
}

.stock-section-tab-bar {
  width: 100%;
}

.stock-section-tabs {
  display: flex;
  min-width: 0;
  gap: 8px;
  overflow-x: auto;
}

.stock-report-nav a,
.stock-report-nav button {
  flex: 0 0 auto;
  border: 1px solid #d9d1c3;
  border-radius: 8px;
  background: #fff;
  color: #4d5660;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.stock-report-nav a:hover,
.stock-report-nav button:hover,
.stock-report-nav button.active {
  border-color: #c58a2a;
  background: #fff6e8;
  color: #6e430a;
}

.stock-report-nav button.active {
  box-shadow: inset 0 -2px 0 #c58a2a;
}

.stock-section-queue-button {
  margin-left: auto;
}

.stock-research-content-grid {
  grid-template-columns: minmax(0, 1fr) minmax(250px, 0.28fr);
  align-items: start;
}

.stock-research-report-column,
.stock-research-side-stack {
  display: grid;
  gap: 16px;
}

.stock-research-side-stack {
  position: sticky;
  top: 64px;
}

.stock-research-right-rail {
  align-self: start;
}

.stock-report-panel {
  overflow: hidden;
  border: 1px solid #d9d1c3;
  border-radius: 10px;
  background: #fffdfa;
  box-shadow: 0 1px 3px rgba(68, 50, 28, 0.08);
}

.stock-report-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid #d9d1c3;
  padding: 18px;
}

.stock-report-panel-head h2 {
  margin: 4px 0 0;
  color: var(--ink);
  font-size: 25px;
  line-height: 1.25;
}

.stock-report-panel-head em {
  flex: 0 0 auto;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: var(--panel-3);
  color: var(--accent-dark);
  padding: 8px 12px;
  font-style: normal;
  font-weight: 900;
}

.stock-report-panel-body {
  padding: 18px;
}

.stock-cockpit-heading,
.stock-cockpit-title,
.stock-cockpit-grid,
.stock-cockpit-metrics,
.stock-research-controls,
.stock-synthesis-body {
  display: flex;
  align-items: center;
}

.stock-cockpit-heading {
  justify-content: space-between;
  gap: 22px;
  padding-bottom: 15px;
  border-bottom: 1px solid var(--line);
}

.stock-cockpit-title {
  flex-wrap: wrap;
  gap: 10px;
}

.stock-cockpit-title h2 {
  margin: 0;
  color: var(--ink);
  font-size: 20px;
}

.stock-cockpit-quote {
  display: grid;
  justify-items: end;
  gap: 3px;
}

.stock-cockpit-actions {
  display: grid;
  justify-items: end;
  gap: 10px;
}

.stock-cockpit-actions > div:last-child {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.stock-cockpit-actions button {
  min-height: 34px;
  padding: 0 10px;
}

.stock-cockpit-quote strong {
  color: var(--accent-dark);
  font-size: 22px;
}

.stock-source-card,
.stock-review-tasks,
.stock-technical-triggers,
.stock-memory-panel {
  border-top: 1px solid var(--line);
  padding: 14px 0;
}

.stock-source-card {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 18px;
}

.stock-source-card > div {
  display: grid;
  gap: 5px;
}

.stock-source-card strong,
.stock-section-heading strong {
  color: var(--ink);
}

.stock-source-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.stock-source-card aside {
  display: grid;
  min-width: 220px;
  gap: 5px;
  align-content: center;
  border-left: 1px solid var(--line);
  padding-left: 16px;
}

.stock-source-card small,
.stock-section-heading span {
  color: var(--muted);
  font-size: 12px;
}

.stock-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.stock-task-grid,
.stock-factor-grid,
.stock-trigger-table,
.stock-memory-list,
.stock-synthesis-audit {
  display: grid;
  gap: 10px;
}

.stock-task-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stock-task-grid article,
.stock-factor-grid article,
.stock-trigger-table article,
.stock-memory-list article,
.stock-synthesis-audit article {
  display: grid;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 11px;
}

.stock-task-grid span,
.stock-factor-grid span,
.stock-trigger-table span,
.stock-memory-list span,
.stock-synthesis-audit span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.stock-task-grid strong,
.stock-trigger-table strong,
.stock-memory-list strong {
  color: var(--ink);
  line-height: 1.4;
}

.stock-task-grid p,
.stock-trigger-table p,
.stock-memory-list p,
.stock-factor-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.stock-task-grid small {
  color: var(--accent-dark);
  font-size: 11px;
}

.stock-cockpit-grid {
  align-items: stretch;
  gap: 18px;
  padding: 18px 0;
}

.stock-verdict {
  flex: 1 1 62%;
}

.stock-verdict h3 {
  margin: 6px 0 8px;
  color: var(--ink);
  font-size: 19px;
  line-height: 1.45;
}

.stock-cockpit-metrics {
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 17px;
}

.stock-cockpit-metrics div {
  display: grid;
  gap: 3px;
}

.stock-cockpit-metrics span { color: var(--muted); font-size: 11px; }
.stock-cockpit-metrics strong { color: var(--accent-dark); font-size: 16px; }

.stock-cockpit-tasks {
  display: grid;
  flex: 1 1 38%;
  gap: 10px;
  padding-left: 18px;
  border-left: 1px solid var(--line);
}

.stock-cockpit-tasks article {
  display: grid;
  align-content: start;
  gap: 5px;
  padding: 10px 0;
}

.stock-cockpit-tasks article + article {
  border-top: 1px solid #e0e7ea;
}

.stock-cockpit-tasks strong {
  color: var(--ink);
  line-height: 1.5;
}

.stock-cockpit-score {
  flex: 1 1 38%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding-left: 18px;
  border-left: 1px solid var(--line);
  text-align: center;
}

.stock-cockpit-score a {
  font-size: 12px;
  font-weight: 600;
  color: #8a6023;
  text-decoration: none;
}

/* editorial cockpit (5b) */
.stock-cockpit-hero {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 16px 0;
  border-top: 1px solid #e7ece8;
  border-bottom: 1px solid #e7ece8;
}

.stock-cockpit-hero-ring { flex: 0 0 auto; }
.stock-cockpit-hero-ring .stock-score-ring { width: 88px; height: 88px; }
.stock-cockpit-hero-ring .stock-score-ring strong { font-size: 26px; }

.stock-cockpit-hero-body { flex: 1 1 auto; min-width: 0; }
.stock-cockpit-eyebrow {
  font-size: 11px;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  color: #9a8f74;
}
.stock-cockpit-hero-body h3 {
  margin: 5px 0 6px;
  font-size: 18px;
  line-height: 1.5;
  color: var(--ink);
}
.stock-cockpit-hero-body p { color: var(--muted); font-size: 12.5px; }
.stock-cockpit-fulllink {
  display: inline-block;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 600;
  color: #8a6023;
  text-decoration: none;
}

.stock-cockpit-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 28px;
  padding: 15px 0;
}
.stock-cockpit-meta > div { display: grid; gap: 3px; }
.stock-cockpit-meta span { color: var(--muted); font-size: 11px; }
.stock-cockpit-meta strong { color: var(--accent-dark); font-size: 15px; }
.stock-cockpit-generate { margin-left: auto; }

.stock-cockpit-edit { border-top: 1px solid #eef1ed; }
.stock-cockpit-edit summary {
  cursor: pointer;
  list-style: none;
  padding: 10px 0 2px;
  font-size: 12px;
  font-weight: 600;
  color: #8a6023;
}
.stock-cockpit-edit summary::-webkit-details-marker { display: none; }
.stock-cockpit-edit summary::before { content: "▸ "; }
.stock-cockpit-edit[open] summary::before { content: "▾ "; }

.stock-cockpit-synthesis {
  display: grid;
  gap: 12px;
  border-block: 1px solid var(--line);
  padding: 14px 0;
}

.stock-cockpit-synthesis-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
}

.stock-cockpit-synthesis-head div {
  display: grid;
  gap: 4px;
}

.stock-cockpit-synthesis-head span,
.stock-cockpit-factor-strip span,
.stock-cockpit-factor-strip small {
  color: var(--muted);
  font-size: 12px;
}

.stock-cockpit-synthesis-head strong {
  color: var(--ink);
  font-size: 18px;
  line-height: 1.35;
}

.stock-cockpit-synthesis-head p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.stock-cockpit-synthesis-head b {
  color: var(--ink);
  font-size: 42px;
  line-height: 1;
}

.stock-cockpit-mode-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.stock-cockpit-mode-tabs button {
  min-height: 30px;
  border-color: var(--line-strong);
  background: #fff;
  color: var(--muted);
  padding: 0 9px;
}

.stock-cockpit-mode-tabs button.active {
  border-color: var(--accent-dark);
  background: var(--accent-dark);
  color: #fff;
}

.stock-cockpit-factor-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 8px;
  align-items: stretch;
}

.stock-cockpit-factor-strip article,
.stock-cockpit-factor-strip a {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
  min-width: 0;
}

.stock-cockpit-factor-strip strong {
  color: var(--accent-dark);
  font-size: 15px;
}

.stock-cockpit-factor-strip small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-cockpit-factor-strip a {
  align-content: center;
  color: var(--accent-dark);
  font-size: 13px;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
}

.stock-cockpit-factor-strip a:hover {
  border-color: #c58a2a;
  background: #fff6e8;
}

.stock-research-controls {
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px 0;
  border-block: 1px solid var(--line);
}

.stock-research-controls label {
  display: grid;
  gap: 4px;
}

.stock-research-controls label.holding-toggle {
  display: flex;
  min-height: 38px;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: #fff;
  padding: 0 10px;
}

.stock-research-controls input[type="text"],
.stock-research-controls input[type="date"],
.stock-research-controls select {
  min-height: 38px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
}

.stock-research-controls input[type="text"] { width: 190px; }
.stock-research-controls button { align-self: end; margin-left: auto; }

.stock-research-synthesis {
  padding: 0;
}

.stock-synthesis-tabs {
  margin-bottom: 12px;
}

.stock-synthesis-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(300px, 1.05fr);
  gap: 16px;
}

.stock-synthesis-score-card {
  display: grid;
  gap: 18px;
  border: 1px solid #ded7cb;
  border-radius: 8px;
  background: #fffdfa;
  padding: 16px;
}

.stock-synthesis-score-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
}

.stock-synthesis-score-head span {
  color: #7a6b57;
  font-size: 13px;
  font-weight: 800;
}

.stock-synthesis-score-head h3 {
  margin: 4px 0 5px;
  color: var(--ink);
  font-size: 25px;
  line-height: 1.2;
}

.stock-synthesis-score-head p {
  margin: 0;
  color: #56636f;
  line-height: 1.5;
}

.stock-score-ring {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 118px;
  height: 118px;
}

.stock-score-ring svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.stock-score-ring circle {
  fill: none;
  stroke-width: 13;
}

.stock-score-ring .track {
  stroke: #efe7d9;
}

.stock-score-ring .value {
  stroke: #bd7818;
  stroke-linecap: round;
}

.stock-score-ring strong {
  color: var(--ink);
  font-size: 31px;
  line-height: 1;
}

.stock-score-ring span {
  margin-top: 2px;
  color: #7a6b57;
  font-size: 11px;
  font-weight: 900;
}

.stock-synthesis-body {
  align-items: stretch;
  gap: 18px;
  background: #eef4f6;
  padding: 14px;
}

.stock-synthesis-body > div {
  display: grid;
  flex: 1 1 auto;
  gap: 4px;
}

.stock-synthesis-body strong {
  color: var(--accent-dark);
  font-size: 18px;
}

.stock-synthesis-body p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.stock-synthesis-body aside {
  display: grid;
  flex: 0 1 310px;
  align-content: center;
  gap: 5px;
  padding-left: 18px;
  border-left: 1px solid #c7d4da;
}

.stock-synthesis-body aside strong { color: var(--ink); font-size: 14px; line-height: 1.5; }

.stock-synthesis-audit {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 10px;
}

.stock-synthesis-audit strong {
  color: var(--accent-dark);
  font-size: 15px;
}

.stock-range-visual {
  display: grid;
  gap: 11px;
}

.stock-range-track {
  position: relative;
  height: 20px;
  overflow: visible;
  border: 1px solid #cfc6b9;
  border-radius: 999px;
  background: linear-gradient(90deg, #eadbd5 0%, #ead7bd 42%, #d9dfcf 100%);
  box-shadow: inset 0 1px 2px rgba(44, 33, 22, 0.12);
}

.stock-range-visual.locked .stock-range-track {
  background: repeating-linear-gradient(135deg, #ebe6dc 0 8px, #f6f2eb 8px 16px);
}

.stock-range-track i {
  position: absolute;
  top: -1px;
  bottom: -1px;
  width: 3px;
  border-radius: 999px;
  background: #202a34;
  transform: translateX(-50%);
}

.stock-range-track i.current { background: #bf7b18; }
.stock-range-track i.low,
.stock-range-track i.high { background: rgba(32, 42, 52, 0.55); }

.stock-range-labels {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #6a7682;
  font-size: 14px;
  font-weight: 800;
}

.stock-factor-composition,
.stock-factor-list {
  display: grid;
  gap: 10px;
}

.stock-factor-composition {
  border: 1px solid #ded7cb;
  border-radius: 8px;
  background: #fffdfa;
  padding: 14px;
}

.stock-factor-stack {
  display: flex;
  width: 100%;
  min-height: 18px;
  overflow: hidden;
  border: 1px solid #d6cbb9;
  border-radius: 999px;
  background: #f2ece1;
}

.stock-factor-stack i {
  display: block;
  width: var(--w);
  min-width: 18px;
  background: color-mix(in srgb, #bd7818 calc(var(--score) * 1%), #efe1c7);
}

.stock-factor-stack i + i {
  border-left: 1px solid rgba(255, 255, 255, 0.72);
}

.stock-price-interval-chart {
  display: grid;
  gap: 8px;
  border: 1px solid #ded7cb;
  border-radius: 8px;
  background: #fffdfa;
  padding: 13px;
}

.stock-price-interval-chart svg {
  width: 100%;
  min-height: 150px;
}

.stock-price-interval-chart .axis {
  stroke: #d5c9b8;
  stroke-width: 3;
  stroke-linecap: round;
}

.stock-price-interval-chart .range {
  fill: rgba(189, 120, 24, 0.2);
  stroke: #bd7818;
  stroke-width: 2;
}

.stock-price-interval-chart .base,
.stock-price-interval-chart .fib {
  stroke-width: 2;
  stroke-linecap: round;
}

.stock-price-interval-chart .base {
  stroke: var(--accent-dark);
}

.stock-price-interval-chart .fib {
  stroke: #8c7656;
  stroke-dasharray: 5 5;
}

.stock-price-interval-chart .current {
  fill: var(--ink);
  stroke: #fffdfa;
  stroke-width: 3;
}

.stock-price-interval-chart text {
  fill: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.stock-price-interval-chart .current-label {
  fill: var(--ink);
}

.stock-price-interval-chart.locked rect {
  fill: #efe7d9;
  stroke: #d6cbb9;
  stroke-width: 2;
}

.stock-price-interval-chart.locked svg {
  border-radius: 8px;
  background: repeating-linear-gradient(135deg, #f0e9dd 0 9px, #fff8ed 9px 18px);
}

.stock-price-interval-chart.locked p {
  margin: 0;
  color: #70480e;
  font-size: 13px;
  font-weight: 800;
}

.stock-factor-row {
  display: grid;
  grid-template-columns: minmax(140px, 0.34fr) minmax(150px, 0.28fr) minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  border: 1px solid #ded7cb;
  border-radius: 8px;
  background: #fffdfa;
  padding: 12px;
}

.stock-factor-row > div {
  display: grid;
  gap: 3px;
}

.stock-factor-row strong {
  color: var(--ink);
  font-size: 16px;
}

.stock-factor-row small,
.stock-factor-row p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.stock-factor-bar {
  display: block;
  width: 100%;
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #ece7de;
}

.stock-factor-bar i {
  display: block;
  width: calc(var(--score) * 1%);
  max-width: 100%;
  height: 100%;
  border-radius: inherit;
  background: #bd7818;
}

.stock-factor-bar.unavailable i {
  width: 28%;
  background: #d8cfbf;
}

.stock-score-ring.unavailable .value {
  stroke: #d8cfbf;
}

.stock-factor-detail {
  margin-top: 16px;
  border-top: 1px solid #ded7cb;
  padding-top: 14px;
}

.stock-factor-detail summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: #70480e;
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
}

.stock-factor-detail summary span {
  color: #70480e;
  font-size: 14px;
}

.stock-factor-detail > div {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.stock-factor-detail article {
  display: grid;
  gap: 4px;
  border: 1px solid #e0d8cc;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.stock-factor-detail strong {
  color: var(--ink);
}

.stock-factor-detail small {
  color: var(--muted);
  line-height: 1.45;
}

.stock-factor-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 10px;
}

.stock-factor-grid article > div {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.stock-factor-grid b {
  color: var(--accent-dark);
  font-size: 13px;
}

.stock-trigger-table {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stock-technical-levels {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.stock-technical-levels article {
  display: grid;
  gap: 5px;
  border: 1px solid #d9d1c3;
  border-radius: 8px;
  background: #fffdfa;
  padding: 11px;
}

.stock-technical-levels span,
.stock-technical-levels small {
  color: var(--muted);
  font-size: 12px;
}

.stock-technical-levels strong {
  color: var(--ink);
  font-size: 17px;
}

.stock-technical-range {
  margin: 4px 0 14px;
}

.stock-technical-visual-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
  gap: 12px;
  margin: 4px 0 14px;
}

.stock-price-structure-chart,
.stock-technical-matrix {
  display: grid;
  gap: 10px;
  min-width: 0;
  border: 1px solid #ded7cb;
  border-radius: 8px;
  background: #fffdfa;
  padding: 13px;
}

.stock-price-structure-chart svg {
  width: 100%;
  min-height: 230px;
}

.stock-price-structure-chart .support-zone {
  fill: rgba(49, 95, 121, 0.16);
  stroke: rgba(49, 95, 121, 0.34);
}

.stock-price-structure-chart .resistance-zone {
  fill: rgba(189, 120, 24, 0.16);
  stroke: rgba(189, 120, 24, 0.34);
}

.stock-price-structure-chart .axis {
  stroke: #d9d1c3;
  stroke-linecap: round;
  stroke-width: 2;
}

.stock-price-structure-chart .price-line {
  fill: none;
  stroke: var(--ink);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 4;
}

.stock-price-structure-chart .ma-line,
.stock-price-structure-chart .fib-line {
  stroke-linecap: round;
  stroke-width: 2;
}

.stock-price-structure-chart .ma-line {
  stroke: var(--accent-dark);
  fill: none;
  opacity: 0.86;
}

.stock-price-structure-chart .ma-line.ma60 {
  stroke: #8f6a2c;
  opacity: 0.78;
}

.stock-price-structure-chart .fib-line {
  stroke: #8c7656;
  stroke-dasharray: 4 6;
}

.stock-price-structure-chart .label-guide {
  stroke: rgba(93, 104, 112, 0.36);
  stroke-dasharray: 3 4;
  stroke-width: 1;
}

.stock-price-structure-chart .current-dot {
  fill: #bd7818;
  stroke: #fffdfa;
  stroke-width: 3;
}

.stock-price-structure-chart text {
  fill: var(--muted);
  font-size: 13px;
  font-weight: 850;
}

.stock-price-structure-chart .ma-label {
  fill: var(--accent-dark);
}

.stock-price-structure-chart .ma-label.ma60 {
  fill: #8f6a2c;
}

.stock-price-structure-chart .fib-label {
  fill: #8c7656;
  font-size: 11px;
}

.stock-price-structure-chart .level-label {
  fill: #4f5d66;
  font-size: 12px;
}

.stock-price-structure-chart .level-label.current {
  fill: var(--ink);
  font-size: 13px;
}

.stock-price-structure-chart.locked rect {
  fill: #efe7d9;
  stroke: #d6cbb9;
  stroke-width: 2;
}

.stock-price-structure-chart.locked svg {
  border-radius: 8px;
  background: repeating-linear-gradient(135deg, #f0e9dd 0 9px, #fff8ed 9px 18px);
}

.stock-price-structure-chart.locked p {
  margin: 0;
  color: #70480e;
  font-size: 13px;
  font-weight: 800;
}

.stock-technical-matrix > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.stock-technical-matrix article {
  display: grid;
  gap: 7px;
  min-width: 0;
  border: 1px solid #ded6c8;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.stock-technical-matrix article.support {
  border-color: #b9d2c7;
  background: #fbfffc;
}

.stock-technical-matrix article.neutral {
  border-color: var(--line-strong);
  background: #f8fbfc;
}

.stock-technical-matrix article.review {
  border-color: #e1c5b4;
  background: #fff8f3;
}

.stock-technical-matrix span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.stock-technical-matrix strong {
  color: var(--ink);
  font-size: 15px;
  line-height: 1.25;
}

.stock-technical-matrix p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.stock-trigger-table.structured {
  grid-template-columns: 1fr;
}

.stock-trigger-table.structured article {
  grid-template-columns: minmax(180px, 0.9fr) minmax(150px, 0.7fr) minmax(0, 1fr);
  align-items: center;
}

.stock-trigger-table.structured article.header {
  background: #f1eadf;
}

.stock-trigger-table.structured article.header strong,
.stock-trigger-table.structured article.header span,
.stock-trigger-table.structured article.header p {
  margin: 0;
  color: #6f470d;
  font-weight: 900;
}

.stock-debate-desk {
  display: grid;
  gap: 14px;
}

.stock-debate-agents,
.stock-debate-resolution {
  display: grid;
  gap: 10px;
}

.stock-debate-agents {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stock-debate-resolution {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stock-debate-agents article,
.stock-debate-resolution article {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 1px solid #d9d1c3;
  border-radius: 8px;
  background: #fffdfa;
  padding: 12px;
}

.stock-debate-agents article.bull { border-color: #b8d7c5; background: #fbfffc; }
.stock-debate-agents article.bear { border-color: #e1c5b4; background: #fff8f3; }
.stock-debate-agents article.neutral { border-color: var(--line-strong); background: #f8fbfc; }

.stock-debate-agents span,
.stock-debate-resolution span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.stock-debate-agents strong {
  color: var(--ink);
  font-size: 18px;
  line-height: 1.35;
}

.stock-debate-agents ul,
.stock-debate-resolution ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.stock-debate-note {
  margin: 0;
  border: 1px dashed #d0c6b9;
  border-radius: 8px;
  background: #fff8ef;
  color: #70480e;
  font-size: 13px;
  font-weight: 800;
  padding: 10px 12px;
}

.stock-debate-desk .review-checklist {
  border-color: #d8d1c4;
  border-radius: 8px;
  background: #fffdfa;
}

.stock-debate-desk .review-checklist-items label {
  border-color: #ded6c8;
  background: #fff;
}

.stock-debate-desk .review-checklist-items span {
  color: var(--muted);
}

.stock-debate-desk .review-checklist-items label.checked span {
  color: #3f7c5d;
}

.stock-evidence-ledger-panel {
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

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

.stock-evidence-ledger-grid article {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 1px solid #d9d1c3;
  border-radius: 8px;
  background: #fffdfa;
  padding: 12px;
}

.stock-evidence-ledger-grid article.bull {
  border-color: #b8d7c5;
  background: #fbfffc;
}

.stock-evidence-ledger-grid article.bear {
  border-color: #e1c5b4;
  background: #fff8f3;
}

.stock-evidence-ledger-grid article > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.stock-evidence-ledger-grid span,
.stock-evidence-ledger-grid b,
.stock-evidence-ledger-grid small {
  color: var(--muted);
  font-size: 12px;
}

.stock-evidence-ledger-grid b {
  color: var(--accent-dark);
}

.stock-evidence-ledger-grid strong {
  color: var(--ink);
  line-height: 1.35;
}

.stock-technical-detail {
  margin-top: 12px;
  border: 1px solid #d8d1c4;
  border-radius: 8px;
  background: #fffdfa;
}

.stock-technical-detail summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  padding: 12px 14px;
  color: #6f470d;
  font-weight: 900;
}

.stock-technical-detail summary span {
  color: #6a747c;
  font-size: 12px;
}

.stock-technical-ledger {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  border-top: 1px solid #e1dbcf;
  padding: 12px;
}

.stock-technical-ledger article {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 1px solid #ded6c8;
  border-radius: 8px;
  background: #fff;
  padding: 11px;
}

.stock-technical-ledger article > div {
  display: grid;
  gap: 4px;
}

.stock-technical-ledger span,
.stock-technical-ledger small {
  color: var(--muted);
  font-size: 12px;
}

.stock-technical-ledger strong {
  color: var(--ink);
  line-height: 1.3;
}

.stock-technical-ledger p {
  margin: 0;
  color: #4e5d67;
  font-size: 12px;
  line-height: 1.5;
}

.stock-memory-list {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.stock-productization-panel {
  border-top: 1px solid var(--line);
  padding: 14px 0 0;
}

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

.stock-productization-grid article {
  display: grid;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 11px;
}

.stock-productization-grid span,
.stock-productization-grid small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.stock-productization-grid strong {
  color: var(--accent-dark);
  line-height: 1.35;
}

.stock-productization-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.stock-productization-grid button {
  align-self: end;
  min-height: 32px;
  padding: 0 10px;
}

.stock-research-queue {
  position: fixed;
  z-index: 60;
  top: 72px;
  right: 18px;
  bottom: 18px;
  width: min(430px, calc(100vw - 36px));
  overflow: auto;
  border: 1px solid #b9c7ce;
  border-radius: 10px;
  background: #f9fbfc;
  box-shadow: 0 4px 8px rgba(23, 35, 44, 0.16);
  transform: translateX(calc(100% + 28px));
  visibility: hidden;
  transition: transform 180ms ease-out, visibility 180ms;
}

.stock-research-queue.open {
  transform: translateX(0);
  visibility: visible;
}

.stock-research-queue header {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border-bottom: 1px solid var(--line);
  background: #eef3f5;
  padding: 14px;
}

.stock-research-queue header > div {
  display: grid;
  gap: 3px;
}

.stock-research-queue-body {
  display: grid;
  gap: 16px;
  padding: 14px;
}

.stock-research-queue .stock-watch-track {
  overflow: hidden;
  background: #fff;
}

.stock-research-queue .stock-watch-heading {
  align-items: stretch;
  flex-direction: column;
}

.stock-research-queue .stock-watch-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stock-research-queue .stock-watch-filters button {
  width: 100%;
}

.stock-research-queue .stock-watch-table-head {
  display: none;
}

.stock-research-queue .stock-watch-list {
  display: grid;
  gap: 10px;
  padding: 10px;
}

.stock-research-queue .stock-watch-row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 11px;
}

.stock-research-queue .stock-watch-symbol,
.stock-research-queue .stock-watch-actions {
  grid-column: 1 / -1;
}

.stock-research-queue .stock-watch-actions {
  justify-content: flex-start;
}

.stock-research-queue-body section {
  display: grid;
  gap: 8px;
}

.stock-queue-bulk-panel {
  border: 1px solid #cdd8dd;
  border-radius: 8px;
  background: #fff;
  padding: 12px;
}

.stock-side-kpi-grid,
.stock-rail-list {
  display: grid;
  gap: 8px;
}

.stock-side-kpi-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 10px;
}

.stock-side-kpi-grid article,
.stock-rail-list article {
  display: grid;
  gap: 4px;
  min-width: 0;
  border: 1px solid #ded7cb;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.stock-side-kpi-grid strong,
.stock-rail-list strong {
  color: var(--ink);
  line-height: 1.35;
}

.stock-side-kpi-grid small,
.stock-rail-list small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.stock-queue-bulk-panel > div:first-child {
  display: grid;
  gap: 3px;
  margin-bottom: 10px;
}

.stock-queue-bulk-panel strong,
.stock-queue-group-heading strong {
  color: var(--ink);
}

.stock-queue-bulk-panel span,
.stock-queue-group-heading span,
.stock-queue-item small {
  color: var(--muted);
  font-size: 12px;
}

.stock-queue-bulk-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.stock-queue-bulk-actions button {
  min-height: 32px;
  padding: 0 9px;
}

.stock-queue-group {
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.stock-queue-group-heading,
.stock-queue-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.stock-queue-group-heading label {
  display: flex;
  align-items: center;
  gap: 7px;
}

.stock-queue-items {
  display: grid;
  gap: 8px;
}

.stock-queue-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.stock-queue-item > div {
  display: grid;
  gap: 4px;
}

.stock-queue-item > div:nth-child(2) {
  min-width: 0;
  flex: 1 1 auto;
}

.stock-queue-item strong,
.stock-queue-item span,
.stock-queue-item small {
  overflow-wrap: anywhere;
}

.stock-queue-select {
  display: inline-flex;
  align-items: center;
}

.stock-queue-row-actions {
  flex: 0 0 auto;
}

.stock-queue-row-actions button {
  min-height: 32px;
  padding: 0 9px;
}

.stock-research-queue-body p {
  color: var(--muted);
  font-size: 12px;
}

.stock-research-report-placeholder,
.stock-research-empty-cockpit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 22px;
}

.stock-research-report-placeholder > div {
  display: grid;
  gap: 6px;
}

.stock-research-report-placeholder strong,
.stock-research-empty-cockpit strong {
  color: var(--ink);
  font-size: 17px;
}

.stock-research-loading {
  display: grid;
  grid-template-columns: 1fr repeat(3, 90px);
  gap: 12px;
  align-items: center;
  padding: 22px;
}

.stock-research-loading > div {
  display: grid;
  gap: 5px;
}

.stock-research-loading i {
  display: block;
  height: 9px;
  border-radius: 999px;
  background: #d8e3e8;
}

@media (prefers-reduced-motion: reduce) {
  .stock-research-queue { transition: none; }
}

@media (max-width: 1100px) {
  .stock-watch-table-head,
  .stock-watch-row {
    grid-template-columns: minmax(130px, 1.15fr) repeat(6, minmax(82px, 0.8fr));
  }

  .stock-watch-table-head span:last-child,
  .stock-watch-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  .stock-research-toolbar,
  .stock-watch-heading,
  .stock-cockpit-heading,
  .stock-source-card,
  .stock-research-report-placeholder,
  .stock-research-empty-cockpit {
    align-items: stretch;
    flex-direction: column;
  }

  .stock-research-dashboard,
  .stock-research-content-grid,
  .stock-synthesis-layout,
  .stock-technical-visual-grid {
    grid-template-columns: 1fr;
  }

  .stock-research-side-stack {
    position: static;
  }

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

  .stock-report-panel-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .stock-report-nav {
    align-items: stretch;
    flex-direction: column;
  }

  .stock-section-queue-button {
    width: 100%;
    margin-left: 0;
  }

  .stock-research-toolbar-actions {
    justify-content: flex-start;
  }

  .stock-research-toolbar-actions label,
  .stock-research-toolbar-actions input {
    width: 100%;
  }

  .stock-watch-table-head {
    display: none;
  }

  .stock-watch-list {
    display: grid;
    gap: 10px;
    padding: 10px;
  }

  .stock-watch-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 12px;
  }

  .stock-watch-row.active { box-shadow: inset 3px 0 0 var(--accent-dark); }
  .stock-watch-symbol,
  .stock-watch-actions { grid-column: 1 / -1; }
  .stock-watch-actions { justify-content: flex-start; }

  .stock-cockpit-grid,
  .stock-synthesis-body {
    flex-direction: column;
  }

  .stock-cockpit-tasks,
  .stock-source-card aside,
  .stock-synthesis-body aside {
    border-top: 1px solid var(--line);
    border-left: 0;
    padding-top: 14px;
    padding-left: 0;
  }

  .stock-task-grid,
  .stock-factor-grid,
  .stock-trigger-table,
  .stock-technical-levels,
  .stock-technical-matrix > div,
  .stock-technical-ledger,
  .stock-memory-list,
  .stock-productization-grid,
  .stock-cockpit-factor-strip,
  .stock-synthesis-audit,
  .stock-debate-agents,
  .stock-debate-resolution,
  .stock-evidence-ledger-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-cockpit-factor-strip a {
    grid-column: 1 / -1;
  }

  .stock-research-controls button {
    width: 100%;
    margin-left: 0;
  }

  .stock-research-loading {
    grid-template-columns: 1fr;
  }

  .stock-queue-group-heading,
  .stock-queue-item {
    align-items: stretch;
    flex-direction: column;
  }

  .stock-queue-row-actions,
  .stock-queue-row-actions button {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .stock-research-workspace { gap: 12px; }
  .stock-research-toolbar h1 { font-size: 21px; }
  .stock-report-panel-head h2,
  .stock-synthesis-score-head h3 { font-size: 20px; }
  .stock-synthesis-score-head {
    grid-template-columns: 1fr;
  }
  .stock-score-ring {
    width: 104px;
    height: 104px;
  }
  .stock-range-labels {
    font-size: 12px;
  }
  .stock-research-toolbar-actions > button { flex: 1 1 auto; }
  .stock-watch-row { grid-template-columns: 1fr; }
  .stock-watch-row > *,
  .stock-watch-symbol,
  .stock-watch-actions { grid-column: 1; }
  .stock-watch-filters,
  .stock-synthesis-tabs,
  .stock-cockpit-mode-tabs,
  .stock-section-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
  .stock-watch-filters button,
  .stock-synthesis-tabs button,
  .stock-cockpit-mode-tabs button,
  .stock-section-tabs button { width: 100%; padding: 0 6px; }
  .stock-cockpit-quote { justify-items: start; }
  .stock-cockpit-synthesis-head {
    grid-template-columns: 1fr;
  }
  .stock-cockpit-synthesis-head b {
    font-size: 36px;
  }
  .stock-research-controls label,
  .stock-research-controls input[type="text"],
  .stock-research-controls input[type="date"],
  .stock-research-controls select { width: 100%; }
  .stock-research-controls label.holding-toggle { width: 100%; }
  .stock-task-grid,
  .stock-factor-grid,
  .stock-trigger-table,
  .stock-technical-levels,
  .stock-technical-matrix > div,
  .stock-technical-ledger,
  .stock-memory-list,
  .stock-productization-grid,
  .stock-cockpit-factor-strip,
  .stock-synthesis-audit,
  .stock-debate-agents,
  .stock-debate-resolution,
  .stock-evidence-ledger-grid {
    grid-template-columns: 1fr;
  }
  .stock-trigger-table.structured article {
    grid-template-columns: 1fr;
  }
  .stock-research-queue { top: 12px; right: 12px; bottom: 12px; width: calc(100vw - 24px); }
  .stock-queue-bulk-actions button { flex: 1 1 120px; }
}

/* ---------------------------------------------------------------------------
   我的组合 · 持仓管理模块(38 号) —— pfm- 前缀,与旧样式解耦 */
.pfm-workspace { display: flex; flex-direction: column; gap: 18px; padding: 4px 0 32px; }
.pfm-panel { display: block; border: 1px solid var(--line, #e7dcc3); border-radius: 12px; padding: 18px 20px; background: var(--panel, rgba(255, 253, 247, 0.6)); }
.pfm-panel-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.pfm-panel-heading h3 { margin: 0; font-size: 16px; }
.pfm-panel-heading span { font-size: 12px; color: var(--muted, #8a7a5c); }
.pfm-stat-strip { display: flex; flex-wrap: wrap; gap: 14px; }
.pfm-stat { flex: 1 1 200px; min-width: 180px; display: flex; flex-direction: column; gap: 3px; padding: 14px 16px; border: 1px solid var(--line, #e7dcc3); border-radius: 12px; }
.pfm-stat span { font-size: 12px; color: var(--muted, #8a7a5c); }
.pfm-stat strong { font-size: 22px; line-height: 1.3; font-variant-numeric: tabular-nums; }
.pfm-stat small { font-size: 12px; color: var(--muted, #8a7a5c); }
.pfm-stat-review strong { font-size: 17px; }
.pfm-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.pfm-header .eyebrow { font-size: 12px; letter-spacing: 0.12em; color: var(--muted, #8a7a5c); text-transform: uppercase; }
.pfm-header h2 { margin: 2px 0 4px; }
.pfm-header p { margin: 0; color: var(--muted, #7d6f55); font-size: 13px; max-width: 560px; }
.pfm-header-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pfm-note { margin: 4px 0; padding: 14px 16px; border: 1px dashed var(--line, #d9cca9); border-radius: 10px; color: var(--muted, #7d6f55); font-size: 13px; background: transparent; }
.pfm-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pfm-table th, .pfm-table td { text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--line, #eee3cb); vertical-align: middle; }
.pfm-table td small { display: block; color: var(--muted, #8a7a5c); font-size: 11px; }
.pfm-table .linklike { background: none; border: none; padding: 0; color: inherit; font-weight: 600; cursor: pointer; text-decoration: underline dotted; font-size: 13px; }
.pf-badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.pf-badge-attention { background: #f7dcd2; color: #8c3b1d; }
.pf-badge-watch { background: #f5ecca; color: #7a621c; }
.pf-badge-normal { background: #ddecd4; color: #3d6b2b; }
.pf-pending { color: #8c3b1d; font-size: 12px; }
.pfm-review-card { border: 1px solid var(--line, #e7dcc3); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; }
.pfm-review-card.level-attention { border-left: 4px solid #c0522c; }
.pfm-review-card.level-watch { border-left: 4px solid #c9a13c; }
.pfm-review-card-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.pfm-review-card-head button { margin-left: auto; }
.pf-alert-four-part { display: grid; grid-template-columns: 1.1fr 1.4fr 1fr 1fr; gap: 8px 18px; padding: 10px 0; border-top: 1px dashed var(--line, #eee3cb); }
.pf-alert-four-part span { font-size: 11px; letter-spacing: 0.06em; color: var(--muted, #8a7a5c); }
.pf-alert-four-part p { margin: 2px 0 0; font-size: 13px; line-height: 1.5; }
.pf-data-note { font-size: 12px; color: #7a621c; margin: 8px 0 0; }
.pfm-all-clear { font-size: 14px; margin: 4px 0; }
.pfm-refresh-btn { margin-left: 10px; }
.pfm-structure-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.pfm-structure-grid h4 { margin: 0 0 8px; font-size: 13px; }
.pf-weight-row { display: grid; grid-template-columns: 72px 1fr 52px; align-items: center; gap: 8px; margin-bottom: 6px; font-size: 12px; }
.pf-weight-bar { height: 8px; border-radius: 999px; background: var(--line, #efe6cf); overflow: hidden; }
.pf-weight-bar i { display: block; height: 100%; background: var(--accent, #b98a2f); border-radius: 999px; }
.pfm-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.pfm-form-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted, #6f6247); }
.pfm-form-grid input { padding: 8px 10px; border: 1px solid var(--line, #d9cca9); border-radius: 8px; font-size: 14px; }
.pfm-form-reason { grid-column: 1 / -1; }
.pfm-form-actions { display: flex; align-items: center; gap: 12px; margin-top: 12px; flex-wrap: wrap; }
.pfm-form-actions small { color: var(--muted, #8a7a5c); }
.pfm-switch-grid { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 12px; font-size: 13px; }
.pfm-switch-grid label { display: flex; align-items: center; gap: 6px; }
.pfm-archived-list { list-style: none; margin: 0; padding: 0; }
.pfm-archived-list li { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px dashed var(--line, #eee3cb); font-size: 13px; }
.pfm-compliance { font-size: 12px; color: var(--muted, #8a7a5c); border-top: 1px solid var(--line, #eee3cb); padding-top: 12px; margin: 4px 0 0; }

/* 持仓 V2(69 号交接):Review 手风琴行 + 求证按钮 + 止盈止损线 + 组合日报 */
.pfm-review-row { border: 1px solid var(--line, #e7dcc3); border-radius: 12px; margin-bottom: 10px; background: var(--panel, rgba(255, 253, 247, 0.6)); overflow: hidden; }
.pfm-review-row.level-attention { border-left: 4px solid #c0522c; }
.pfm-review-row.level-watch { border-left: 4px solid #c9a13c; }
.pfm-review-row.level-normal { border-left: 4px solid #6b9a4d; }
.pfm-review-row-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 16px; cursor: pointer; }
.pfm-review-row-head:hover { background: rgba(185, 138, 47, 0.06); }
.pfm-review-row-head strong { font-size: 14px; }
.pfm-review-row-head button { margin-left: 4px; }
.pf-dot { width: 9px; height: 9px; border-radius: 999px; flex: 0 0 auto; }
.pf-dot-attention { background: #c0522c; }
.pf-dot-watch { background: #c9a13c; }
.pf-dot-normal { background: #6b9a4d; }
.pfm-review-brief { flex: 1 1 200px; font-size: 13px; color: var(--ink, #4a4132); min-width: 120px; }
.pfm-review-count { font-size: 12px; color: var(--muted, #8a7a5c); white-space: nowrap; }
.pfm-chevron { font-size: 10px; color: var(--muted, #8a7a5c); margin-left: auto; }
.pfm-review-row-head button + .pfm-chevron { margin-left: 6px; }
.pfm-review-row-body { padding: 0 16px 12px; }
.pfm-review-row-body .pf-alert-four-part:first-child { border-top: none; }
.pf-tag { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; white-space: nowrap; }
.pf-tag-user { background: #ece3ff; color: #5b3ea6; }
.pf-verify-btn { border: 1px solid var(--accent, #b98a2f); background: rgba(185, 138, 47, 0.1); color: #7a5a15; border-radius: 8px; padding: 5px 12px; font-size: 12px; cursor: pointer; }
.pf-verify-btn:hover:not(:disabled) { background: rgba(185, 138, 47, 0.2); }
.pf-verify-btn:disabled { opacity: 0.6; cursor: default; }
.pf-verify-btn.done { background: #ddecd4; border-color: #6b9a4d; color: #3d6b2b; }
.pf-verify-result { display: block; margin-top: 4px; font-size: 12px; line-height: 1.5; color: var(--ink, #4a4132); }
.pf-verify-result small { display: block; color: var(--muted, #8a7a5c); font-size: 11px; }
.pf-user-lines { font-size: 12px; color: var(--ink, #4a4132); }
.pf-user-lines.hit { color: #8c3b1d; font-weight: 600; }
tr.pf-row-hit { background: rgba(192, 82, 44, 0.06); }
.pf-badge-pulse { animation: pfBadgePulse 1.6s ease-in-out infinite; }
@keyframes pfBadgePulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(192, 82, 44, 0.5); } 50% { box-shadow: 0 0 0 4px rgba(192, 82, 44, 0); } }
.pf-chip { display: inline-block; padding: 2px 8px; border-radius: 6px; font-size: 11px; background: #f5ecca; color: #7a621c; white-space: nowrap; }
.pfm-digest-card .pfm-digest-card-body { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pfm-digest-card .pfm-note { margin: 0; }
.pfm-digest-card-lead { display:flex; align-items:center; gap:14px; min-width:0; }
.pfm-digest-card-lead > span { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; border-radius:10px; background:#6f4818; color:#fff; font-family:"Songti SC",serif; font-size:20px; }
.pfm-digest-card-lead h3,.pfm-digest-card-lead p { margin:0; }
.pfm-digest-card-lead p { color:#786a55; font-size:12px; }
.pfm-digest-card-lead .pfm-push-chips { margin-top:5px; }
.pfm-digest-card-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.pfm-digest-picker { display: flex; gap: 8px; flex-wrap: wrap; }
.pfm-digest-pick { border: 1px solid var(--line, #d9cca9); background: var(--panel, rgba(255, 253, 247, 0.6)); border-radius: 8px; padding: 6px 12px; font-size: 13px; cursor: pointer; text-align: left; }
.pfm-digest-pick small { display: block; font-size: 11px; color: var(--muted, #8a7a5c); }
.pfm-digest-pick.active { border-color: var(--accent, #b98a2f); background: rgba(185, 138, 47, 0.12); }
.pfm-digest-doc { font-size: 14px; line-height: 1.7; }
.pfm-digest-doc h1 { font-size: 20px; }
.pfm-digest-doc h2 { font-size: 16px; margin-top: 18px; }

/* 67 号原型:总览固定 5 卡 + 常驻结构条 */
.pfm-kpi-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.pfm-kpi-row .pfm-stat { min-width:0; background:#f7f1e4; border-color:#eadfc9; border-radius:8px; padding:14px 16px; }
.pfm-stat-value { display:grid; gap:2px; padding-top:2px; }
.pfm-stat-value + .pfm-stat-value { margin-top:7px; border-top:1px dashed #d7c199; padding-top:7px; }
.pfm-stat-review strong { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.pfm-stat-review .pf-dot { display:inline-block; width:8px; height:8px; }
.pfm-health-card { flex-direction:row; align-items:center; gap:12px; }
.pfm-health-card > div:last-child { display:grid; gap:4px; min-width:0; }
.pfm-health-card small { line-height:1.45; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.pfm-health-ring { width:52px; height:52px; flex:0 0 52px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(#c48625 0 var(--pfm-health),#eadfc9 var(--pfm-health) 100%); }
.pfm-health-ring b { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:#f7f1e4; color:#211b12; font-size:13px; }
.pfm-structure-bars { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 32px; margin-top:14px; }
.pfm-sbar { display:grid; grid-template-columns:106px minmax(70px,1fr) 112px; align-items:center; gap:10px; font-size:12px; }
.pfm-sbar > span { color:#786a55; }
.pfm-sbar > div { height:8px; border-radius:4px; overflow:hidden; background:#eadfc9; }
.pfm-sbar i { display:block; height:100%; border-radius:4px; background:#d7a644; }
.pfm-sbar i.warn { background:#b55c3d; }
.pfm-sbar em { color:#4a4132; font-style:normal; text-align:right; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pfm-webhook-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.pfm-webhook-grid label { display:grid; gap:6px; color:#6f6247; font-size:12px; }
.pfm-webhook-grid label > span { display:flex; align-items:center; gap:6px; }
.pfm-webhook-grid input[type="password"] { width:100%; min-width:0; border:1px solid #d9cca9; border-radius:8px; background:#f7f1e4; padding:8px 10px; font-size:12px; }

/* 68 号原型:左侧历史轨道 + 编辑风日报 */
.pfm-digest-layout { width:min(1180px,100%); margin:0 auto; padding:4px 0 40px; display:grid; grid-template-columns:230px minmax(0,1fr); gap:20px; color:#211b12; }
.pfm-digest-side { position:sticky; top:20px; align-self:start; }
.pfm-digest-side .pfm-panel { padding:16px; background:#fffdf7; box-shadow:0 1px 2px rgba(0,0,0,.14),0 8px 24px rgba(80,54,18,.06); }
.pfm-digest-side .pfm-panel-heading { margin-bottom:3px; }
.pfm-digest-side p { margin:0 0 10px; color:#786a55; font-size:11px; }
.pfm-digest-picker { display:grid; gap:2px; }
.pfm-digest-pick { width:100%; display:flex; justify-content:space-between; align-items:center; gap:6px; border:0; border-radius:7px; background:transparent; padding:7px 10px; color:#786a55; }
.pfm-digest-pick:hover { background:rgba(196,134,37,.14); }
.pfm-digest-pick.active { border:0; background:#6f4818; color:#fff; }
.pfm-digest-pick small { color:inherit; white-space:nowrap; }
.pfm-library-link,.pfm-digest-back,.pfm-stock-link { border:0; background:transparent; color:#6f4818; padding:0; font-size:12px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.pfm-library-link { margin-top:10px; text-align:left; }
.pfm-digest-main { min-width:0; }
.pfm-digest-paper { min-height:720px; border:1px solid #eadfc9; border-radius:12px; background:#fffdf7; box-shadow:0 1px 2px rgba(0,0,0,.14),0 8px 24px rgba(80,54,18,.06); padding:36px 44px; font-size:14px; line-height:1.75; }
.pfm-digest-masthead { margin:10px 0 14px; border-bottom:3px double #d7c199; padding-bottom:16px; }
.pfm-digest-masthead > span { color:#6f4818; font-size:11px; letter-spacing:.2em; text-transform:uppercase; }
.pfm-digest-masthead h1 { margin:4px 0 2px; font-family:"Songti SC","Noto Serif SC",Georgia,serif; font-size:28px; }
.pfm-digest-masthead p { margin:0; color:#786a55; font-size:13px; }
.pfm-digest-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:14px 0 22px; }
.pfm-digest-toolbar > div { display:flex; gap:6px; flex-wrap:wrap; }
.pfm-push-chips { display:flex; gap:6px; flex-wrap:wrap; }
.pfm-push-chip { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border:1px solid #d7c199; border-radius:10px; padding:2px 10px; color:#786a55; font-size:11px; }
.pfm-push-chip.state-sent { border-color:#5f7d3a; color:#5f7d3a; }
.pfm-push-chip.state-failed { border-color:#b55c3d; color:#b55c3d; }
.pfm-push-chip.state-not_configured { border-color:#c48625; color:#6f4818; }
.pfm-digest-lede { margin:0 0 20px; border-left:3px solid #c48625; padding-left:14px; font-family:"Songti SC","Noto Serif SC",Georgia,serif; font-size:15px; }
.pfm-digest-overview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:26px; }
.pfm-digest-overview article { display:grid; align-content:start; gap:2px; border:1px solid #eadfc9; border-radius:8px; background:#f7f1e4; padding:10px 14px; }
.pfm-digest-overview span { color:#786a55; font-size:11px; }
.pfm-digest-overview strong { display:block; font-size:17px; line-height:1.45; }
.pfm-digest-section { margin:26px 0 6px; border-bottom:1px solid #d7c199; padding-bottom:6px; font-family:"Songti SC","Noto Serif SC",Georgia,serif; font-size:18px; }
.pfm-digest-section small { margin-left:10px; color:#786a55; font-family:inherit; font-size:12px; font-weight:400; }
.pfm-digest-stock { padding:18px 0; border-bottom:1px dashed #eadfc9; }
.pfm-digest-stock > header { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:6px; }
.pfm-digest-stock > header > strong { font-family:"Songti SC","Noto Serif SC",Georgia,serif; font-size:16px; }
.pfm-digest-stock > header > span { color:#786a55; font-size:13px; }
.pfm-digest-stock h3 { margin:12px 0 2px; color:#6f4818; font-size:13px; }
.pfm-digest-item { display:flex; align-items:baseline; gap:8px; padding:6px 0; }
.pfm-digest-item > b { flex:0 0 auto; font-size:13px; }
.pfm-digest-item > span { flex:1; min-width:0; }
.pfm-digest-item > small { flex:0 0 auto; border:1px solid #eadfc9; border-radius:8px; background:#f7f1e4; padding:0 8px; color:#786a55; font-size:11px; }
.pfm-digest-item .tone-bull { color:#a44855; }
.pfm-digest-item .tone-bear { color:#5f7d3a; }
.pfm-digest-item .tone-neutral { color:#786a55; }
.pfm-digest-empty { margin:6px 0; color:#786a55; font-size:13px; }
.pfm-digest-kv { display:flex; gap:22px; flex-wrap:wrap; margin-top:8px; color:#786a55; font-size:12px; }
.pfm-digest-kv b { color:#211b12; }
.pfm-stock-link { margin-top:12px; }
.pfm-watch-item { display:grid; grid-template-columns:9px minmax(150px,auto) minmax(0,1fr); align-items:start; gap:12px; padding:10px 0; border-bottom:1px dashed #eadfc9; font-size:13px; }
.pfm-watch-item .pf-dot { margin-top:7px; }
.pfm-tomorrow-watch { font-size:13px; }
.pfm-digest-note { margin-top:10px; border:1px dashed #d7c199; border-radius:6px; background:#f7f1e4; padding:8px 10px; color:#786a55; font-size:12px; }
.pfm-digest-paper footer { margin-top:30px; border-top:3px double #d7c199; padding-top:14px; color:#786a55; font-size:12px; text-align:center; }

@media (max-width: 1180px) {
  .pfm-kpi-row { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pfm-health-card { grid-column:span 2; }
}

@media (max-width: 900px) {
  .pfm-kpi-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pfm-health-card { grid-column:auto; }
  .pfm-structure-bars,.pfm-webhook-grid { grid-template-columns:1fr; }
  .pfm-digest-layout { grid-template-columns:1fr; }
  .pfm-digest-side { position:static; }
  .pfm-digest-picker { display:flex; overflow-x:auto; padding-bottom:4px; }
  .pfm-digest-pick { min-width:150px; }
  .pfm-digest-paper { padding:24px; }
  .pfm-digest-toolbar { align-items:flex-start; flex-direction:column; }
  .pfm-digest-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 560px) {
  .pfm-kpi-row,.pfm-digest-overview { grid-template-columns:1fr; }
  .pfm-sbar { grid-template-columns:92px minmax(40px,1fr) 94px; gap:7px; font-size:11px; }
  .pfm-digest-paper { padding:20px 16px; }
  .pfm-digest-masthead h1 { font-size:24px; }
  .pfm-digest-toolbar > div:last-child { width:100%; }
  .pfm-digest-toolbar button { flex:1 1 auto; }
  .pfm-digest-item { align-items:flex-start; flex-wrap:wrap; }
  .pfm-digest-item > span { flex-basis:calc(100% - 52px); }
  .pfm-digest-item > small { margin-left:52px; }
  .pfm-watch-item { grid-template-columns:9px 1fr; }
  .pfm-watch-item > span { grid-column:2; }
}

@media print {
  body.portfolio-digest-print .sidebar,
  body.portfolio-digest-print .topbar,
  body.portfolio-digest-print .pfm-digest-side,
  body.portfolio-digest-print .pfm-digest-toolbar,
  body.portfolio-digest-print .pfm-digest-back { display:none !important; }
  body.portfolio-digest-print .app-shell,
  body.portfolio-digest-print .content,
  body.portfolio-digest-print .workspace,
  body.portfolio-digest-print #markdownView { display:block !important; width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
  body.portfolio-digest-print .pfm-digest-layout { display:block; width:100%; padding:0; }
  body.portfolio-digest-print .pfm-digest-paper { border:0; box-shadow:none; padding:18mm 16mm; }
}

.stock-watch-heading-actions { display:flex; align-items:center; gap:6px; margin-left:auto; }
.stock-watch-heading-actions button { min-height:30px; padding:0 10px; font-size:11px; white-space:nowrap; }
.stock-learning-insights { margin-top:14px; border-top:1px solid var(--sr-line, var(--line)); padding-top:14px; }
.stock-learning-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:10px; }
.stock-learning-grid article { display:grid; gap:6px; border:1px solid var(--sr-line, var(--line)); border-radius:9px; background:#fffdf8; padding:12px; }
.stock-learning-grid article > span,.stock-learning-grid article > small { color:var(--muted); font-size:11px; font-weight:700; }
.stock-learning-grid article > strong { color:var(--ink); font-family:var(--sr-serif,"Songti SC",serif); font-size:16px; }
.stock-learning-grid article > div { color:var(--muted); font-size:12px; }
.stock-learning-grid article > div b { color:var(--accent-dark); font-size:15px; }
.stock-learning-grid article > p,.stock-learning-state { margin:0; color:var(--muted); font-size:12px; line-height:1.55; }
.stock-learning-state { margin-top:8px; padding:10px; border:1px dashed var(--line); border-radius:8px; }
.stock-learning-state.error { color:#8c3b1d; }
.pfm-settings-groups { display:grid; gap:14px; }
.pfm-settings-groups > section { border:1px solid var(--line,#e7dcc3); border-radius:10px; background:#fffdf8; padding:14px; }
.pfm-settings-groups h4 { margin:0 0 10px; color:var(--accent-dark); font-size:13px; }
.pfm-settings-groups p { margin:8px 0 0; color:var(--muted); font-size:12px; }

@media (max-width: 1100px) {
  .pf-alert-four-part { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .pfm-workspace .pfm-panel { overflow-x: auto; }
  .pf-alert-four-part { grid-template-columns: 1fr; }
  .pfm-header-actions { width: 100%; }
  .stock-learning-grid { grid-template-columns:1fr; }
  .stock-watch-heading-actions { width:100%; margin-left:0; justify-content:flex-end; }
}

/* ---------------------------------------------------------------------------
   我的复查规则 · 规则构建器(40 号方向三)+ 工具偏好 */
.rule-module { margin-top: 18px; padding: 16px 18px; border: 1px solid var(--line, #e7dcc3); border-radius: 12px; }
.rule-module-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.rule-module-head h4 { margin: 0 0 2px; font-size: 15px; }
.rule-module-head span { font-size: 12px; color: var(--muted, #8a7a5c); }
.rule-module-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rule-api-pending { font-size: 11px; padding: 3px 10px; border: 1px dashed var(--line, #c9b98e); border-radius: 999px; color: var(--muted, #8a7a5c); white-space: nowrap; }
.rule-pref { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 0 12px; border-bottom: 1px dashed var(--line, #eee3cb); margin-bottom: 12px; }
.rule-pref-label { font-size: 12px; color: var(--muted, #8a7a5c); }
.rule-pref-chip { color:var(--sr-text, #332a20); font-size: 12px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--line, #d9cca9); background: transparent; cursor: pointer; }
.rule-pref-chip.active { background: var(--accent, #b98a2f); color: #fff; border-color: var(--accent, #b98a2f); }
.rule-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 0; border-bottom: 1px dashed var(--line, #eee3cb); }
.rule-row.is-disabled { opacity: 0.55; }
.rule-row-main { display: flex; flex-direction: column; gap: 2px; min-width: 200px; }
.rule-row-main span { font-size: 12px; color: var(--muted, #8a7a5c); }
.rule-row-side { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rule-eval-slot { font-size: 11px; padding: 3px 10px; border: 1px dashed var(--line, #c9b98e); border-radius: 999px; color: var(--muted, #8a7a5c); }
.rule-empty { font-size: 13px; color: var(--muted, #7d6f55); padding: 10px 0; margin: 0; }
.rule-builder { border: 1px solid var(--line, #e0d3b2); border-radius: 10px; padding: 14px; margin-bottom: 12px; }
.rule-builder-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 12px; margin-bottom: 10px; }
.rule-builder-grid label, .rule-builder-gates label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted, #6f6247); }
.rule-builder-grid input, .rule-builder-grid select, .rule-condition select, .rule-condition input { padding: 7px 9px; border: 1px solid var(--line, #d9cca9); border-radius: 8px; font-size: 13px; }
.rule-condition { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.rule-builder-row-actions { margin: 4px 0 10px; }
.rule-builder-gates { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; font-size: 13px; padding: 8px 0; border-top: 1px dashed var(--line, #eee3cb); }
.rule-builder-gates span { font-size: 12px; color: var(--muted, #8a7a5c); }
.rule-builder-gates label { flex-direction: row; align-items: center; gap: 6px; }
.rule-builder-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.rule-builder-actions small { color: var(--muted, #8a7a5c); }
.rule-compliance { font-size: 11px; color: var(--muted, #8a7a5c); margin: 10px 0 0; }

.my-method-workbench {
  overflow: hidden;
  padding: 0;
  background: linear-gradient(135deg, rgba(197, 151, 72, .08), transparent 42%), var(--panel, #fffdf8);
}
.my-method-workbench .rule-module-head { margin: 0; padding: 18px; border-bottom: 1px solid var(--line); }
.my-method-workbench .rule-module-head h4 { font-size: 18px; line-height: 1.35; }
.my-method-kicker { color: var(--accent-dark) !important; font-weight: 800; letter-spacing: .08em; }
.my-method-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.24); }
.my-method-flow span { display: flex; gap: 8px; align-items: center; min-width: 0; border-right: 1px solid var(--line); padding: 10px 14px; color: var(--ink); font-size: 12px; }
.my-method-flow span:last-child { border-right: 0; }
.my-method-flow b { color: var(--accent-dark); font-size: 10px; }
.my-method-workbench .rule-pref,
.my-method-workbench .rule-builder,
.my-method-workbench .rule-row,
.my-method-workbench .rule-empty,
.my-method-workbench .rule-compliance { margin-left: 18px; margin-right: 18px; }
.my-method-workbench .rule-pref { padding-top: 14px; }
.my-method-workbench .rule-pref-label { flex-basis: 100%; }
.my-method-workbench .rule-pref-chip { min-height: 32px; padding: 5px 11px; background: var(--panel-3); }
.my-method-workbench .rule-pref-chip.active { background: rgba(185, 138, 47, .18); color: var(--accent-dark); }
.my-method-workbench .rule-builder { background: rgba(255,255,255,.32); }
.my-method-workbench .rule-condition { position: relative; border: 1px solid var(--line); border-radius: 9px; background: var(--panel-3); padding: 10px; }
.my-method-workbench .rule-condition::before { content: "条件"; color: var(--accent-dark); font-size: 10px; font-weight: 800; }
.my-method-workbench .rule-compliance { margin-bottom: 16px; border-left: 2px solid var(--accent); padding-left: 9px; }

@media (max-width: 900px) {
  .valuation-workbench .valuation-hero { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .valuation-workbench .valuation-hero div:nth-child(3) { border-right: 0; }
  .valuation-method-decision { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .valuation-workbench .valuation-hero { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .valuation-workbench .valuation-hero div:nth-child(3) { border-right: 1px solid var(--line); }
  .valuation-workbench .valuation-hero div:nth-child(even) { border-right: 0; }
  .valuation-scenario-chart { overflow-x: auto; }
  .valuation-method-decision,
  .valuation-method-head,
  .valuation-method-scenarios,
  .valuation-method-notes,
  .rule-builder-grid { grid-template-columns: 1fr; }
  .my-method-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .my-method-flow span:nth-child(2) { border-right: 0; }
  .rule-condition { align-items: stretch; }
  .rule-condition select,
  .rule-condition input { width: 100%; }
}
@media (max-width: 700px) {
  .rule-builder-grid { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------------
   投资导师配置化(47 号原型,mtc- 前缀) */
.mtc-panel { border: 1px solid var(--line, #e7dcc3); border-radius: 12px; padding: 18px 20px; margin-bottom: 22px; }
.mtc-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.mtc-head h3 { margin: 0 0 2px; font-size: 16px; }
.mtc-head span { font-size: 12px; color: var(--muted, #8a7a5c); }
.mtc-head-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.mtc-api-pending { font-size: 11px; padding: 3px 10px; border: 1px dashed var(--line, #c9b98e); border-radius: 999px; color: var(--muted, #8a7a5c); white-space: nowrap; }
.mtc-tag { font-size: 11px; padding: 3px 10px; border-radius: 999px; background: #ddecd4; color: #3d6b2b; white-space: nowrap; }
.mtc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 14px; }
.mtc-card { border: 1px solid var(--line, #e7dcc3); border-radius: 12px; padding: 14px 16px; }
.mtc-card.is-off { opacity: 0.5; }
.mtc-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.mtc-card-head h4 { margin: 0; font-size: 14px; }
.mtc-card-head span { font-size: 11px; color: var(--muted, #8a7a5c); }
.mtc-avatar { width: 36px; height: 36px; border-radius: 10px; background: #2a2418; color: #e9c988; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; flex: none; }
.mtc-toggle { margin-left: auto; width: 34px; height: 19px; border-radius: 12px; background: #d8cfba; position: relative; cursor: pointer; border: none; flex: none; }
.mtc-toggle.on { background: #4a7c59; }
.mtc-toggle::after { content: ""; position: absolute; top: 2px; left: 2px; width: 15px; height: 15px; border-radius: 50%; background: #fff; transition: left 0.15s; }
.mtc-toggle.on::after { left: 17px; }
.mtc-persona { display: flex; gap: 6px; margin: 8px 0; }
.mtc-persona button { font-size: 11px; padding: 3px 10px; border-radius: 14px; border: 1px solid var(--line, #d9cca9); background: transparent; cursor: pointer; color: var(--muted, #8a7a5c); }
.mtc-persona button.active { background: var(--accent, #b98a2f); border-color: var(--accent, #b98a2f); color: #fff; font-weight: 700; }
.mtc-focus { margin: 8px 0 4px; }
.mtc-focus-row { display: grid; grid-template-columns: 14px 80px 1fr 26px; gap: 8px; align-items: center; font-size: 11.5px; margin-bottom: 5px; }
.mtc-focus-row b { color: var(--muted, #8a7a5c); }
.mtc-focus-row small { color: var(--muted, #8a7a5c); }
.mtc-focus-bar { height: 7px; border-radius: 6px; background: var(--line, #efe6cf); overflow: hidden; }
.mtc-focus-bar i { display: block; height: 100%; background: var(--accent, #b98a2f); border-radius: 6px; }
.mtc-veto { font-size: 11px; color: #8c3b1d; background: #f7dcd2; border-radius: 8px; padding: 5px 9px; margin: 8px 0 0; }
.mtc-ops { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.mtc-add { border: 1.5px dashed var(--line, #d9cca9); border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 180px; color: var(--muted, #8a7a5c); cursor: pointer; background: transparent; font-size: 13px; }
.mtc-add:hover { border-color: var(--accent, #b98a2f); color: var(--accent, #8a6023); }
.mtc-plus { font-size: 26px; line-height: 1; }
.mtc-add small { font-size: 10.5px; }
.mtc-form { border: 1px solid var(--line, #e0d3b2); border-radius: 12px; padding: 16px; margin-top: 14px; }
.mtc-form h4 { margin: 0 0 10px; font-size: 13px; }
.mtc-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mtc-form-grid label, .mtc-form-full { display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; color: var(--muted, #8a7a5c); }
.mtc-form-full { grid-column: 1 / -1; }
.mtc-form-grid input[type="text"] { padding: 7px 10px; border: 1px solid var(--line, #d9cca9); border-radius: 8px; font-size: 13px; }
.mtc-check-row { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; }
.mtc-check-row label { flex-direction: row; align-items: center; gap: 5px; }
.mtc-form-actions { display: flex; gap: 10px; align-items: center; margin-top: 12px; flex-wrap: wrap; }
.mtc-form-actions small { color: var(--muted, #8a7a5c); font-size: 11px; }
.mtc-compliance { font-size: 11px; color: var(--muted, #8a7a5c); border-top: 1px dashed var(--line, #eee3cb); margin-top: 14px; padding-top: 10px; }
.mtc-all-off { font-size: 13px; color: var(--muted, #7d6f55); padding: 8px 0; }
@media (max-width: 700px) { .mtc-form-grid { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------------------
   期权 V2 · 真实合约策略工作纸(optc- 前缀) */
.optc-panel { border: 1px solid var(--line, #e7dcc3); border-radius: 12px; padding: 18px 20px; margin-top: 22px; }
.optc-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.optc-head h3 { margin: 0 0 2px; font-size: 16px; }
.optc-head span { font-size: 12px; color: var(--muted, #8a7a5c); }
.optc-head-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.optc-api-pending { font-size: 11px; padding: 3px 10px; border: 1px dashed var(--line, #c9b98e); border-radius: 999px; color: var(--muted, #8a7a5c); white-space: nowrap; }
.optc-tag { font-size: 11px; padding: 3px 10px; border-radius: 999px; background: #f5ecca; color: #7a621c; white-space: nowrap; }
.optc-sub { font-size: 11px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--accent, #8a6023); font-weight: 700; margin: 14px 0 8px; }
.optc-flow { border: 1px solid var(--line, #e7dcc3); border-radius: 10px; overflow: hidden; }
.optc-flow-row { display: grid; grid-template-columns: 56px 118px 108px 76px 48px 52px 1fr; gap: 10px; align-items: center; padding: 9px 14px; font-size: 12.5px; border-bottom: 1px solid var(--line, #eee3cb); }
.optc-flow-row:last-child { border-bottom: none; }
.optc-flow-head { font-size: 10.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--muted, #8a7a5c); font-weight: 600; }
.optc-flow-note { white-space: normal; line-height: 1.45; }
.optc-side { font-size: 10.5px; padding: 2px 8px; border-radius: 12px; font-style: normal; white-space: nowrap; }
.optc-side.call { background: #ddecd4; color: #3d6b2b; }
.optc-side.put { background: #f7dcd2; color: #8c3b1d; }
.optc-mut { color: var(--muted, #8a7a5c); }
.optc-note { font-size: 11px; color: var(--muted, #8a7a5c); margin: 8px 0 0; }
.optc-builder { display: grid; grid-template-columns: 1.2fr 1fr; gap: 18px; }
.optc-legs .optc-leg { display: grid; grid-template-columns: 68px 68px 84px 74px 56px 30px; gap: 8px; align-items: center; margin-bottom: 8px; }
.optc-leg-head { display: grid; grid-template-columns: 68px 68px 84px 74px 56px 30px; gap: 8px; font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: var(--muted, #8a7a5c); margin-bottom: 6px; }
.optc-legs select, .optc-legs input { padding: 6px 8px; border: 1px solid var(--line, #d9cca9); border-radius: 8px; font-size: 12px; width: 100%; }
.optc-del { background: none; border: none; color: #8c3b1d; cursor: pointer; font-size: 14px; }
.optc-del:disabled { opacity: 0.35; cursor: default; }
.optc-plan { font-size: 11px; color: #7a621c; background: #f5ecca66; border: 1px solid #e6dcbf; border-radius: 8px; padding: 6px 10px; margin-top: 10px; }
.optc-payoff { border: 1px solid var(--line, #e7dcc3); border-radius: 12px; padding: 14px 16px; }
.optc-k { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: var(--muted, #8a7a5c); }
.optc-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 10px 0; }
.optc-stats strong { font-size: 17px; font-weight: 800; display: block; }
.optc-stats strong.good { color: #3d6b2b; }
.optc-stats strong.bad { color: #8c3b1d; }
.optc-stats small { font-size: 10.5px; color: var(--muted, #8a7a5c); }
#optcChart { width: 100%; height: 150px; border: 1px solid var(--line, #e7dcc3); border-radius: 8px; }
.optc-compliance { font-size: 11px; color: var(--muted, #8a7a5c); border-top: 1px dashed var(--line, #eee3cb); margin-top: 14px; padding-top: 10px; }
.optc-underlying-leg { display:grid; gap:2px; margin:0 0 10px; border:1px solid #d7c59f; border-radius:9px; background:#fff9ec; padding:9px 11px; }
.optc-underlying-leg strong { color:#2a251d; font-size:12px; }
.optc-underlying-leg span,.optc-underlying-leg small { color:#756856; font-size:10.5px; }
.optc-save-row { display:flex; align-items:center; gap:10px; margin-top:14px; }
.optc-save-row span { color:var(--muted,#8a7a5c); font-size:10.5px; }
@media (max-width: 800px) { .optc-builder { grid-template-columns: 1fr } }
@media (max-width: 520px) {
  .optc-panel { padding:14px 12px; }
  .optc-legs { overflow-x:auto; }
  .optc-legs .optc-leg,.optc-leg-head { min-width:430px; }
  .optc-save-row { align-items:stretch; flex-direction:column; }
}

/* ---------------------------------------------------------------------------
   投资导师工作区(浅色编辑风,替代旧深色 landing)+ 开关修复 */
.mtc-workspace { display: flex; flex-direction: column; gap: 18px; padding: 4px 0 32px; }
.mtc-hero { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; flex-wrap: wrap; }
.mtc-hero h2 { margin: 4px 0 6px; font-size: 22px; }
.mtc-hero p { margin: 0; font-size: 13px; color: var(--muted, #7d6f55); max-width: 720px; line-height: 1.6; }
.mtc-eyebrow { font-size: 10.5px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--accent, #8a6023); font-weight: 700; }
.mtc-workbench { margin-top: 4px; }
.mtc-app-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.mtc-app-card { border: 1px solid var(--line, #e7dcc3); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 7px; }
.mtc-app-card h4 { margin: 0; font-size: 15px; }
.mtc-app-card strong { font-size: 13px; font-weight: 600; color: var(--accent, #8a6023); }
.mtc-app-card ul { margin: 0; padding-left: 18px; font-size: 12.5px; color: var(--muted, #6f6247); display: flex; flex-direction: column; gap: 3px; }
.mtc-app-card .mtc-veto { margin-top: 2px; }
.mtc-app-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.mtc-usage-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--line, #eee3cb); }
.mtc-usage-grid article { border: 1px solid var(--line, #e7dcc3); border-radius: 10px; padding: 10px 12px; }
.mtc-usage-grid span { display: block; font-size: 10.5px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--muted, #8a7a5c); margin-bottom: 4px; }
.mtc-usage-grid strong { font-size: 12.5px; font-weight: 600; line-height: 1.5; }
/* 开关修复:全局 button 的 padding/圆角会把 34x19 的开关撑变形 */
.mtc-toggle, .mtc-toggle:hover, .mtc-toggle:focus {
  appearance: none; -webkit-appearance: none;
  padding: 0; margin-left: auto; line-height: 0;
  width: 34px; height: 19px; min-width: 34px; min-height: 19px; max-width: 34px; max-height: 19px;
  border-radius: 999px; border: none; box-shadow: none; overflow: hidden;
}

/* 技术与衍生品浅色工作区补充 */
.optc-entry-desc { margin: 0; font-size: 12.5px; color: var(--muted, #6f6247); line-height: 1.55; }
@media (max-width: 900px) { .optc-flow-row { grid-template-columns: 48px 100px 96px 64px 40px 44px 1fr; padding: 8px 10px; } }

/* ===== Global Framework Step 5 · 工作台外壳深色 rail（对齐 50 号原型；仅壳，不动模块内部） ===== */
.sidebar {
  border: 1px solid #43331d;
  border-right: 0;
  background: linear-gradient(180deg, #241a10 0%, #2c2013 100%);
  color: #e7d6b2;
  scrollbar-color: rgba(120, 96, 58, 0.7) transparent;
}
.sidebar::-webkit-scrollbar-thumb {
  background: rgba(120, 96, 58, 0.7);
}
.sidebar-primary {
  border-bottom: 1px solid #3a2c18;
}
.sidebar .brand {
  border-bottom: 1px solid #3a2c18;
}
.sidebar .brand h1 {
  color: #f4ead2;
}
.sidebar .brand p,
.sidebar .context-header span,
.sidebar .nav-item small {
  color: #a4895d;
}
.sidebar .product-intro {
  border: 1px solid #43331d;
  border-radius: 12px;
  background: rgba(255, 248, 232, 0.05);
  color: #c2ac82;
}
.sidebar .nav-item {
  color: #e0cfa9;
}
.sidebar .nav-item span {
  color: #ecdcb6;
}
.sidebar .nav-item:hover {
  border-color: transparent;
  background: rgba(51, 38, 21, 0.6);
  color: #fbe9c4;
}
.sidebar .nav-item.active {
  border-color: rgba(215, 166, 68, 0.28);
  background: linear-gradient(135deg, rgba(215, 166, 68, 0.22), rgba(196, 134, 37, 0.14));
  color: #fbe9c4;
}
.sidebar .nav-item.active span,
.sidebar .nav-item:hover span {
  color: #fbe9c4;
}
.sidebar .context-header {
  border-bottom: 1px solid #3a2c18;
}
.sidebar .context-header strong {
  color: #f4ead2;
}
/* 账户胶囊：从顶栏移到 rail 底部 */
.sidebar-footer .account-shell {
  position: relative;
}
.sidebar-footer .account-capsule {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  border: 1px solid #43331d;
  border-radius: 12px;
  background: #2f2214;
  padding: 6px 10px;
  color: #f4ead2;
}
.sidebar-footer .account-capsule:hover {
  border-color: rgba(215, 166, 68, 0.32);
  background: #37281691;
}
.sidebar-footer .account-copy {
  flex: 1;
  min-width: 0;
}
.sidebar-footer .account-copy strong {
  max-width: none;
  color: #f4ead2;
}
.sidebar-footer .account-copy small {
  color: #a4895d;
}
.sidebar-footer .account-caret {
  color: #a4895d;
  font-size: 16px;
}
.sidebar-footer .account-menu {
  top: auto;
  right: 0;
  bottom: calc(100% + 8px);
  left: 0;
  min-width: 0;
  border: 1px solid #43331d;
  background: #2f2214;
  box-shadow: 0 -12px 32px rgba(12, 8, 3, 0.5);
}
.sidebar-footer .account-menu button {
  color: #e0cfa9;
}
.sidebar-footer .account-menu button:hover {
  border-color: rgba(215, 166, 68, 0.28);
  background: #3a2b17;
  color: #fbe9c4;
}

/* ===== Step 5b · 登录前公开首页忠实还原 50 号原型 ===== */
.ab-home {
  --abh-bg: #e8e0d2; --abh-bg-elevated: #f7f1e4; --abh-panel: #fffdf7;
  --abh-ink: #211b12; --abh-muted: #786a55; --abh-line: #eadfc9;
  --abh-accent: #c48625; --abh-accent-dark: #6f4818; --abh-soft: rgba(196,134,37,.14);
  --abh-amber-bright: #efc86e;
  min-height: 100vh; background: var(--abh-bg); color: var(--abh-ink);
  font-size: 14px; line-height: 1.5;
}
.ab-home * { box-sizing: border-box; }
.ab-home .abh-hero { background: linear-gradient(160deg, #241a10 0%, #2f2213 55%, #3a2a15 100%); color: #f4ead2; }
.ab-home .abh-nav { display: flex; align-items: center; justify-content: space-between; max-width: 1180px; margin: 0 auto; padding: 22px 32px; }
.ab-home .abh-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.ab-home .abh-mark { width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(135deg, var(--abh-amber-bright), var(--abh-accent)); color: #231a0f; font-weight: 800; display: grid; place-items: center; font-size: 20px; }
.ab-home .abh-brandtext { display: flex; flex-direction: column; }
.ab-home .abh-brandtext strong { font-size: 18px; letter-spacing: .5px; color: #f4ead2; }
.ab-home .abh-brandtext small { font-size: 12px; color: #c9b48a; }
.ab-home .abh-links { display: flex; gap: 22px; align-items: center; }
.ab-home .abh-navlink { background: transparent; border: none; color: #d8c7a3; font-size: 14px; font-family: inherit; cursor: pointer; padding: 6px 4px; }
.ab-home .abh-navlink:hover { color: #fff8e9; }
.ab-home .abh-btn { border: none; border-radius: 10px; padding: 10px 18px; font-weight: 600; font-size: 14px; font-family: inherit; cursor: pointer; }
.ab-home .abh-btn-primary { background: linear-gradient(135deg, var(--abh-amber-bright), var(--abh-accent)); color: #231a0f; }
.ab-home .abh-btn-ghost { background: transparent; border: 1px solid #6a5535; color: #e7d6b2; }
.ab-home .abh-hero-body { max-width: 1180px; margin: 0 auto; padding: 56px 32px 84px; text-align: center; }
.ab-home .abh-eyebrow { color: var(--abh-amber-bright); font-weight: 600; letter-spacing: 2px; font-size: 13px; margin: 0; }
.ab-home .abh-hero-body h1 { font-size: 44px; line-height: 1.18; margin: 16px auto 10px; max-width: 820px; font-weight: 750; color: #f4ead2; }
.ab-home .abh-lead { font-size: 18px; color: #d8c7a3; max-width: 640px; margin: 0 auto 30px; }
.ab-home .abh-cta { display: flex; gap: 14px; justify-content: center; }
.ab-home .abh-notlist { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 34px; }
.ab-home .abh-notlist span { font-size: 12px; color: #b8a578; border: 1px solid #52422a; border-radius: 999px; padding: 5px 12px; }
.ab-home .abh-section { max-width: 1180px; margin: 0 auto; padding: 56px 32px; }
.ab-home .abh-section-tight { padding-top: 0; }
.ab-home .abh-head { text-align: center; margin-bottom: 34px; }
.ab-home .abh-eyebrow-2 { color: var(--abh-accent); font-weight: 700; font-size: 13px; letter-spacing: 1.5px; margin: 0; }
.ab-home .abh-head h2 { font-size: 28px; margin: 8px 0 6px; color: var(--abh-ink); }
.ab-home .abh-head p { color: var(--abh-muted); margin: 0 auto; max-width: 560px; }
.ab-home .abh-belief-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ab-home .abh-belief { background: var(--abh-panel); border: 1px solid var(--abh-line); border-radius: 12px; padding: 24px; box-shadow: 0 1px 2px rgba(0,0,0,.14), 0 8px 24px rgba(80,54,18,.06); }
.ab-home .abh-no { font-size: 13px; font-weight: 700; color: var(--abh-accent); }
.ab-home .abh-belief h4 { margin: 8px 0 8px; font-size: 17px; }
.ab-home .abh-belief p { margin: 0; color: var(--abh-muted); font-size: 13px; }
.ab-home .abh-flow { display: flex; align-items: stretch; gap: 0; background: var(--abh-panel); border: 1px solid var(--abh-line); border-radius: 12px; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,.14), 0 8px 24px rgba(80,54,18,.06); }
.ab-home .abh-flow-step { flex: 1; padding: 22px 18px; text-align: center; border-right: 1px solid var(--abh-line); }
.ab-home .abh-flow-step:last-child { border-right: none; }
.ab-home .abh-idx { width: 26px; height: 26px; border-radius: 50%; background: var(--abh-soft); color: var(--abh-accent-dark); font-weight: 700; display: grid; place-items: center; margin: 0 auto 10px; font-size: 13px; }
.ab-home .abh-flow-step strong { display: block; font-size: 15px; margin-bottom: 4px; }
.ab-home .abh-flow-step small { color: var(--abh-muted); }
.ab-home .abh-mod-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ab-home .abh-mod { background: var(--abh-panel); border: 1px solid var(--abh-line); border-radius: 12px; padding: 20px; box-shadow: 0 1px 2px rgba(0,0,0,.14), 0 8px 24px rgba(80,54,18,.06); }
.ab-home .abh-mod h4 { margin: 0 0 6px; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.ab-home .abh-mod p { margin: 0; color: var(--abh-muted); font-size: 13px; }
.ab-home .abh-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--abh-accent); display: inline-block; }
.ab-home .abh-footer { background: var(--abh-bg-elevated); border-top: 1px solid var(--abh-line); text-align: center; padding: 26px; color: var(--abh-muted); font-size: 12px; }
@media (max-width: 1080px) {
  .ab-home .abh-belief-grid, .ab-home .abh-mod-grid { grid-template-columns: 1fr 1fr; }
  .ab-home .abh-flow { flex-wrap: wrap; }
  .ab-home .abh-flow-step { flex: 1 1 45%; }
}

/* ===== Step 5c · 顶栏三件套(对齐 50) + 左栏可折叠 / 悬停唤起 ===== */
.workspace-header-left { display: flex; align-items: center; gap: 14px; min-width: 0; }
.rail-toggle {
  flex: 0 0 auto; width: 36px; height: 36px; display: grid; place-items: center;
  border: 1px solid rgba(148, 111, 55, 0.24); border-radius: 9px;
  background: rgba(255, 250, 236, 0.7); color: #5a4526; font-size: 16px; cursor: pointer;
}
.rail-toggle:hover { border-color: rgba(196, 134, 37, 0.4); background: rgba(255, 248, 232, 0.95); }
.header-brandlabel { color: var(--muted); font-size: 13px; }
.data-source-pill {
  display: inline-flex; align-items: center; gap: 6px; border-radius: 999px;
  font-size: 12px; font-weight: 600; padding: 3px 10px; border: 1px solid rgba(148, 111, 55, 0.28);
}
.data-source-pill.is-live { background: rgba(154, 106, 19, 0.13); color: #6f4f12; border-color: rgba(154, 106, 19, 0.3); }
.data-source-pill.is-degraded { background: rgba(181, 92, 61, 0.12); color: #8a4326; border-color: rgba(181, 92, 61, 0.32); }

/* 折叠态：rail 收起，主区占满；hover 左缘唤起 */
.sidebar { transition: transform 0.2s ease; }
body.rail-collapsed .app-shell { grid-template-columns: minmax(0, 1fr); }
body.rail-collapsed .sidebar {
  position: fixed; top: 0; left: 0; width: 300px; height: 100vh;
  transform: translateX(-100%); z-index: 60; box-shadow: 0 0 44px rgba(20, 13, 4, 0.5);
}
body.rail-collapsed.rail-peek .sidebar { transform: translateX(0); }
.rail-hotzone { display: none; }
body.rail-collapsed .rail-hotzone {
  display: block; position: fixed; top: 0; left: 0; width: 12px; height: 100vh; z-index: 55;
}

/* Stock research final surface — prototype 52 is the sole visual reference. */
.markdown-view:has(.stock-research-workspace) { overflow-x: clip; background: #ece5d6; }
.stock-research-workspace { --sr-bg:#ece5d6; --sr-panel:#faf7f0; --sr-paper:#fffdf8; --sr-ink:#2a251d; --sr-muted:#8b8471; --sr-amber:#a8752a; --sr-line:#e2d9c4; --sr-dark:#1b1812; gap:12px; max-width:1360px; margin:0 auto 28px; color:var(--sr-ink); }
.stock-research-workspace *, .stock-research-workspace *::before, .stock-research-workspace *::after { box-sizing:border-box; }
.stock-research-toolbar.sr-entry-zone { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px 16px; padding:12px 14px; border:1px solid var(--sr-line); border-radius:12px; background:var(--sr-panel); box-shadow:0 1px 2px rgba(60,45,20,.06),0 6px 18px rgba(60,45,20,.05); }
.sr-entry-copy span,.stock-watch-heading > strong { color:var(--sr-muted); font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
.sr-entry-copy h1 { margin:2px 0 0; color:var(--sr-ink); font-size:18px; line-height:1.1; }
.stock-research-toolbar-actions.sr-entry-actions { display:flex; justify-content:flex-end; align-items:center; gap:8px; min-width:0; padding:0; border:0; }
.sr-entry-actions label { min-width:0; }
.sr-entry-actions select,.sr-entry-actions input { width:auto; min-height:38px; border:1px solid var(--sr-line); border-radius:8px; background:var(--sr-paper); color:var(--sr-ink); padding:0 11px; }
.sr-entry-actions input { width:min(440px,42vw); }
.sr-entry-actions button { min-height:38px; border:1px solid var(--sr-amber); border-radius:8px; background:var(--sr-amber); color:#fff; padding:0 15px; }
.sr-entry-zone .stock-watch-track { grid-column:1/-1; display:block; overflow:visible; border:0; border-top:1px dashed var(--sr-line); border-radius:0; background:transparent; }
.stock-watch-heading { display:flex; align-items:center; gap:8px; padding:10px 0 0; background:transparent; }
.stock-watch-chips { display:flex; flex:1 1 auto; min-width:0; gap:8px; overflow:auto hidden; scrollbar-width:none; }
.stock-watch-row { display:block; padding:0; border:0; background:transparent; }
.stock-watch-symbol { display:flex; align-items:center; gap:7px; min-height:36px; border:1px solid var(--sr-line); border-radius:9px; background:var(--sr-paper); color:var(--sr-ink); padding:5px 9px; white-space:nowrap; }
.stock-watch-row.active .stock-watch-symbol { border-color:var(--sr-amber); background:#f0e6cf; box-shadow:none; }
.stock-watch-row.active { box-shadow:none!important; }
.stock-watch-symbol span { display:grid; gap:0; }.stock-watch-symbol strong { font-size:12px; }.stock-watch-symbol small { color:var(--sr-muted); font-size:10px; }
.stock-watch-symbol em { font-style:normal; font-size:9px; padding:1px 6px; }.sr-track-filter { flex:0 0 auto; min-height:34px; border-color:var(--sr-line); background:var(--sr-paper); }
.sr-company-logo { position:relative; display:inline-grid; place-items:center; width:19px; height:19px; flex:0 0 19px; overflow:hidden; border:1px solid #d6c6aa; border-radius:6px; background:#f5ecdc; color:#765120; box-shadow:inset 0 1px 0 rgba(255,255,255,.7); font-size:10px; }.sr-company-logo.market-cn { border-color:#e1c4bc; background:#f7e9e4; color:#994a3d; }.sr-company-logo.market-hk { border-color:#bfd7d0; background:#e6f1ee; color:#386d63; }.sr-company-logo.market-us { border-color:#c7d3dc; background:#e9eff3; color:#466779; }.sr-company-logo.large { width:44px; height:44px; flex-basis:44px; border-radius:12px; font-size:18px; }.sr-company-logo.large::after { content:""; position:absolute; right:4px; bottom:4px; width:4px; height:4px; border-radius:50%; background:currentColor; opacity:.45; }.sr-company-logo img { position:absolute; inset:0; z-index:2; width:100%; height:100%; object-fit:contain; background:#fff; }.sr-company-logo i { display:none; }.sr-company-logo b { font-weight:800; line-height:1; }
.sr-object-divider { display:flex; align-items:center; gap:10px; margin:0 2px; color:var(--sr-muted); font-size:11.5px; }.sr-object-divider strong { color:var(--sr-ink); }.sr-object-divider::after { content:""; flex:1; height:1px; background:var(--sr-line); }
.stock-research-dashboard { display:block; }.stock-research-cockpit { padding:16px 18px; border:1px solid var(--sr-line); border-radius:12px; background:var(--sr-panel); box-shadow:0 1px 2px rgba(60,45,20,.06),0 6px 18px rgba(60,45,20,.05); }
.stock-cockpit-editorial { display:grid; grid-template-columns:minmax(205px,.9fr) minmax(260px,1.55fr) 116px minmax(180px,.8fr); align-items:center; gap:18px; }
.stock-cockpit-identity { display:grid; gap:5px; }.stock-cockpit-title { display:flex; align-items:center; gap:9px; }.stock-cockpit-title h2 { margin:0; color:var(--sr-ink); font-size:20px; }.stock-cockpit-title p,.stock-cockpit-identity p { margin:0; color:var(--sr-muted); font-size:11px; }.sr-title-line { display:flex; align-items:center; gap:8px; }.stock-cockpit-identity > .stock-cockpit-quote { display:block; color:#8a6023; font-size:20px; line-height:1.05; }.stock-cockpit-identity > small { color:var(--sr-muted); font-size:10px; }
.stock-cockpit-verdict { min-width:0; }.stock-cockpit-verdict > span,.stock-cockpit-interval > span { color:var(--sr-muted); font-size:10px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; }.stock-cockpit-verdict h3 { margin:5px 0; color:var(--sr-ink); font-size:15px; line-height:1.55; }.stock-cockpit-verdict p,.stock-cockpit-interval small { margin:0; color:var(--sr-muted); font-size:11px; line-height:1.45; }
.stock-cockpit-score { display:grid; justify-items:center; gap:3px; padding:5px 0; border-left:1px solid var(--sr-line); }.stock-cockpit-score .stock-score-ring { width:84px; height:84px; }.stock-cockpit-score .stock-score-ring svg { width:84px; height:84px; }.stock-cockpit-score .stock-score-ring strong { font-size:26px; }.stock-cockpit-score .stock-score-ring circle { stroke-width:13; }.stock-cockpit-score small { color:var(--sr-muted); font-size:9px; text-align:center; }
.stock-cockpit-interval { display:grid; gap:5px; min-height:86px; align-content:center; border-left:1px solid var(--sr-line); padding-left:18px; }.stock-cockpit-interval strong { color:var(--sr-ink); font-size:15px; line-height:1.25; }
.stock-cockpit-actionbar { display:flex; align-items:center; gap:12px; margin-top:12px; border-top:1px solid var(--sr-line); padding-top:10px; }.stock-cockpit-actionbar > div { display:flex; flex-wrap:wrap; gap:7px; }.stock-cockpit-actionbar button { min-height:32px; border-radius:7px; font-size:11px; padding:0 10px; }.stock-cockpit-actionbar > span { flex:1; color:var(--sr-muted); font-size:10px; text-align:center; }.stock-cockpit-actionbar .stock-cockpit-generate { margin-left:auto; background:var(--sr-amber); border-color:var(--sr-amber); color:#fff; }
.stock-cockpit-edit { border-top:1px solid var(--sr-line); margin-top:10px; }.stock-cockpit-edit summary { color:#8a6023; }
.stock-report-nav { position:sticky; top:0; z-index:12; display:flex; align-items:center; gap:8px; overflow:visible; border:1px solid var(--sr-line); border-radius:10px; background:var(--sr-panel); padding:7px 10px; box-shadow:0 1px 2px rgba(60,45,20,.06); }.stock-section-tabs { display:flex; gap:6px; overflow:auto hidden; }.stock-report-nav button { min-height:30px; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--sr-muted); padding:0 12px; font-size:12px; }.stock-report-nav button.active { border-color:var(--sr-dark); background:var(--sr-dark); color:#f0d9a8; box-shadow:none; }.stock-report-nav button:hover { border-color:var(--sr-line); background:#f2ebda; color:var(--sr-ink); }.stock-section-queue-button { margin-left:auto; border-color:var(--sr-line)!important; background:var(--sr-paper)!important; color:var(--sr-ink)!important; }
.stock-research-content-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; align-items:start; gap:14px; }.stock-research-side-stack { position:sticky; top:62px; gap:14px; }.stock-report-panel,.stock-research-inbox,.stock-side-panel { border:1px solid var(--sr-line); border-radius:12px; background:var(--sr-panel); box-shadow:0 1px 2px rgba(60,45,20,.06),0 6px 18px rgba(60,45,20,.05); }.stock-report-panel-head { padding:16px 18px; border-color:var(--sr-line); }.stock-report-panel-head h2 { font-size:15px; }.stock-report-panel-body { padding:16px 18px; }.stock-report-panel-head em { border-color:#dfe4d6; border-radius:20px; background:#eef0ea; color:#5c6b52; font-size:10px; padding:2px 8px; }.stock-research-inbox,.stock-side-panel { padding:14px; }.stock-research-inbox h3,.stock-side-panel h3 { font-size:13px; }.stock-research-inbox > span,.stock-side-panel > span,.stock-report-panel-head span { color:var(--sr-muted); font-size:10px; letter-spacing:.7px; text-transform:uppercase; }
.stock-synthesis-layout { grid-template-columns:200px minmax(0,1fr); gap:22px; }.stock-synthesis-score-card { border:0; border-radius:0; background:transparent; padding:0; }.stock-synthesis-score-head { display:none; }.stock-synthesis-tabs { grid-column:1/-1; order:-1; margin:0 0 4px; }.stock-synthesis-tabs button { min-height:29px; border-radius:20px; font-size:11px; }.stock-synthesis-score-card .stock-price-interval-chart { grid-column:1/-1; }.stock-factor-composition { border-left:1px solid var(--sr-line); padding-left:18px; }.stock-factor-stack { height:12px; }.stock-factor-list { gap:8px; }.stock-factor-row { grid-template-columns:110px minmax(80px,1fr) minmax(160px,1.2fr); gap:9px; border-color:var(--sr-line); border-radius:8px; background:var(--sr-paper); padding:9px; }.stock-factor-row p { font-size:10px; }.stock-factor-detail { margin-top:14px; border-color:var(--sr-line); }.stock-factor-detail summary { color:#8a6023; font-size:12px; }
.stock-technical-triggers { border-top:0; padding:0; }.stock-technical-visual-grid { grid-template-columns:minmax(0,1.25fr) minmax(260px,1fr); gap:18px; }.stock-price-structure-chart,.stock-technical-matrix { border-color:var(--sr-line); border-radius:9px; background:var(--sr-paper); padding:11px; }.stock-price-structure-chart svg { min-height:210px; }.stock-technical-matrix article { border-color:var(--sr-line); border-radius:9px; background:var(--sr-paper); padding:9px 11px; }.stock-technical-matrix article.support { background:#fbfffc; border-color:#c7dacd; }.stock-technical-matrix article.review { background:#fff8f3; border-color:#e1c5b4; }.stock-technical-detail { border-color:var(--sr-line); border-radius:9px; background:var(--sr-paper); }.stock-technical-detail summary { color:#8a6023; font-size:12px; }.stock-technical-levels { grid-template-columns:repeat(4,minmax(0,1fr)); padding:12px; margin:0; }.stock-trigger-table { margin:0 12px 12px; }.stock-technical-ledger { grid-template-columns:repeat(3,minmax(0,1fr)); }.rule-module { border-color:var(--sr-line); border-radius:10px; background:var(--sr-paper); }
.stock-research-queue { border-color:var(--sr-line); border-radius:12px; background:var(--sr-panel); box-shadow:0 12px 36px rgba(60,45,20,.18); }.stock-research-queue header { background:#f1e7cf; border-color:var(--sr-line); }.stock-research-queue .stock-watch-track { background:var(--sr-paper); }.stock-research-queue .stock-watch-heading { display:block; padding:10px; }.stock-research-queue .stock-watch-chips { display:grid; width:100%; margin-top:8px; }.stock-research-queue .stock-watch-symbol { white-space:normal; }
@media (max-width:1120px) { .stock-cockpit-editorial { grid-template-columns:minmax(190px,1fr) minmax(260px,1.4fr) 100px; }.stock-cockpit-interval { grid-column:2 / -1; border-top:1px solid var(--sr-line); border-left:0; padding:10px 0 0; min-height:0; }.stock-research-content-grid { grid-template-columns:1fr; }.stock-research-side-stack { position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }.stock-research-inbox { grid-column:1/-1; } }
@media (max-width:760px) { .stock-research-toolbar.sr-entry-zone { grid-template-columns:1fr; }.stock-research-toolbar-actions.sr-entry-actions { justify-content:stretch; flex-wrap:wrap; }.sr-entry-actions input { width:100%; }.sr-entry-actions label:last-of-type { flex:1 1 220px; }.stock-watch-heading { flex-wrap:wrap; }.stock-watch-chips { flex-basis:100%; order:3; }.stock-cockpit-editorial { grid-template-columns:1fr 94px; }.stock-cockpit-verdict { grid-column:1/-1; grid-row:2; }.stock-cockpit-score { grid-column:2; grid-row:1; }.stock-cockpit-interval { grid-column:1/-1; grid-row:3; }.stock-cockpit-actionbar { align-items:flex-start; flex-wrap:wrap; }.stock-cockpit-actionbar > span { display:none; }.stock-research-side-stack { grid-template-columns:1fr; }.stock-technical-visual-grid,.stock-synthesis-layout { grid-template-columns:1fr; }.stock-factor-composition { border-top:1px solid var(--sr-line); border-left:0; padding:14px 0 0; }.stock-factor-row { grid-template-columns:1fr; }.stock-technical-ledger,.stock-technical-levels { grid-template-columns:1fr; } }

/* Prototype 52: signal chapter follows modes → scan chips → gauge/factors → range → analyst note. */
.stock-research-synthesis { display:grid; gap:14px; }
.stock-synthesis-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.stock-synthesis-facts article { min-height:82px; display:grid; align-content:start; gap:5px; padding:11px 12px; border:1px solid var(--sr-line); border-radius:9px; background:var(--sr-paper); }
.stock-synthesis-facts span,.stock-synthesis-facts small { color:var(--sr-muted); font-size:10px; }
.stock-synthesis-facts strong { font-size:15px; line-height:1.3; }
.stock-synthesis-composition { display:grid; grid-template-columns:190px minmax(0,1fr); align-items:stretch; gap:18px; padding:15px; border:1px solid var(--sr-line); border-radius:10px; background:var(--sr-paper); }
.stock-synthesis-gauge { display:flex; min-width:0; flex-direction:column; align-items:center; justify-content:center; gap:6px; text-align:center; }
.stock-synthesis-gauge > strong { font-family:var(--sr-serif); font-size:15px; }
.stock-synthesis-gauge > small { color:var(--sr-muted); font-size:10px; }
.stock-synthesis-composition .stock-factor-composition { border-left:1px solid var(--sr-line); padding:0 0 0 18px; }
.stock-synthesis-composition .stock-factor-row { grid-template-columns:104px minmax(92px,1fr) minmax(150px,1.15fr); }
.stock-synthesis-commentary { padding:15px 17px; border:1px solid #d8c8a5; border-left:4px solid #9b6a24; border-radius:9px; background:#fffcf5; }
.stock-synthesis-commentary span { display:block; margin-bottom:7px; color:var(--sr-muted); font-size:10px; letter-spacing:.08em; }
.stock-synthesis-commentary p { margin:0; font-family:var(--sr-serif); font-size:14px; line-height:1.75; }
@media (max-width:980px) { .stock-synthesis-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }.stock-synthesis-composition { grid-template-columns:1fr; }.stock-synthesis-composition .stock-factor-composition { border-top:1px solid var(--sr-line); border-left:0; padding:14px 0 0; } }
@media (max-width:620px) { .stock-synthesis-facts { grid-template-columns:1fr; }.stock-synthesis-composition .stock-factor-row { grid-template-columns:1fr; } }

/* Prototype 52 alignment pass 2 · gauge size / fact bars / tone colors / range chart / mode focus */
.stock-research-synthesis .stock-score-ring { width:180px; height:180px; }
.stock-research-synthesis .stock-score-ring svg { width:180px; height:180px; }
.stock-research-synthesis .stock-score-ring circle { stroke-width:16; }
.stock-research-synthesis .stock-score-ring .track { stroke:#eae1cd; }
.stock-research-synthesis .stock-score-ring .value { stroke:#a8752a; }
.stock-research-synthesis .stock-score-ring strong { font-size:38px; }
.stock-synthesis-facts .fact-bar { display:block; height:6px; margin-top:2px; overflow:hidden; border-radius:5px; background:#eae1cd; }
.stock-synthesis-facts .fact-bar i { display:block; height:100%; border-radius:inherit; }
.stock-factor-list.has-focus .stock-factor-row { opacity:.42; transition:opacity .15s ease; }
.stock-factor-list.has-focus .stock-factor-row.focused { opacity:1; }
.stock-factor-list.has-focus .stock-factor-row.focused strong { color:#8a6023; }
/* 原型 fbar：轻量行，无卡片框 */
.stock-synthesis-composition .stock-factor-list { gap:11px; }
.stock-synthesis-composition .stock-factor-row { grid-template-columns:104px minmax(0,1fr); gap:10px; align-items:center; border:0; border-radius:0; background:transparent; padding:0; }
.stock-synthesis-composition .stock-factor-row > div:first-child { display:grid; gap:1px; }
.stock-synthesis-composition .stock-factor-row strong { font-size:11.5px; }
.stock-synthesis-composition .stock-factor-row small { font-size:9.5px; color:var(--sr-muted); }
.stock-synthesis-composition .stock-factor-row > .stock-factor-measure { display:flex; align-items:center; gap:10px; }
.stock-synthesis-composition .stock-factor-measure .stock-factor-bar { flex:1 1 auto; height:9px; background:#eae1cd; }
.stock-synthesis-composition .stock-factor-measure > small { flex:0 0 auto; max-width:46%; color:var(--sr-ink); font-weight:700; font-size:11px; text-align:right; }
.stock-price-interval-chart svg { min-height:0; }
.stock-price-interval-chart { border-color:var(--sr-line); background:var(--sr-paper); }
.stock-price-interval-chart svg { min-height:150px; }
.stock-price-interval-chart .zone-low { fill:#e7d3b0; }
.stock-price-interval-chart .zone-high { fill:#dfe7d3; }
.stock-price-interval-chart .axis { stroke:#cbbf9f; stroke-width:1; }
.stock-price-interval-chart .base { stroke:#4a7c59; stroke-width:2; }
.stock-price-interval-chart .tick-line { stroke:#8b8471; stroke-width:2; }
.stock-price-interval-chart .fib { stroke:#b07d2b; stroke-width:1; stroke-dasharray:3 3; }
.stock-price-interval-chart .fib-label { fill:#a8752a; font-size:9.5px; font-weight:700; }
.stock-price-interval-chart .tick { fill:#6b6350; font-size:10.5px; font-weight:600; }
.stock-price-interval-chart .base-tick { fill:#4a7c59; }
.stock-price-interval-chart .current-marker { fill:#a8503f; }
.stock-price-interval-chart .current-line { stroke:#a8503f; stroke-width:2.5; }
.stock-price-interval-chart .current-label { fill:#a8503f; font-size:11px; font-weight:800; }
.stock-price-interval-note { margin:0; color:var(--sr-muted); font-size:11.5px; line-height:1.6; }
/* 原型 52 · 整页对齐：面板标题单行 / 驾驶舱高亮 / 数据门四行 / 证据缺口清单 */
.stock-report-panel-head h2 { margin:0; font-size:15px; }
.stock-cockpit-verdict h3 .sr-hl { color:#8a6023; font-weight:700; }
.stock-cockpit-verdict h3 .sr-hl.neg { color:#a8503f; }
.stock-gate-list { display:grid; }
.stock-gate-row { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:6px 0; border-bottom:1px dashed var(--sr-line); font-size:11.5px; }
.stock-gate-row:last-child { border-bottom:0; }
.stock-gate-row em { font-style:normal; font-size:9.5px; padding:1px 7px; border-radius:20px; white-space:nowrap; }
.gs.pass { background:#e6efe7; color:#4a7c59; }
.gs.cond { background:#f1ecdd; color:#b5852f; }
.gs.block { background:#f4e4e0; color:#a8503f; }
.stock-gate-note { margin:8px 0 0; color:var(--sr-muted); font-size:10px; line-height:1.6; }
.stock-gap-lines { display:grid; gap:4px; }
.stock-gap-lines p { margin:0; color:var(--sr-muted); font-size:11.5px; line-height:1.7; }
/* 原型 52 · 驾驶舱 scorechip / 区间块 / 入口检索行 */
.stock-cockpit-score { display:flex; align-items:center; justify-content:center; gap:6px; align-self:center; border:1px solid var(--sr-line); border-radius:10px; background:#f2ebda; padding:10px 14px; border-left:1px solid var(--sr-line); }
.stock-cockpit-score span { color:var(--sr-muted); font-size:10px; }
.stock-cockpit-score strong { color:var(--sr-ink); font-size:26px; font-weight:800; line-height:1; }
.stock-cockpit-score small { color:var(--sr-muted); font-size:10px; }
.stock-cockpit-interval .sr-current-price { color:var(--sr-ink); font-size:19px; font-weight:800; }
.stock-cockpit-interval .sr-current-price em { font-style:normal; color:var(--sr-muted); font-size:11px; font-weight:400; }
.sr-gate-pill { display:inline-block; width:fit-content; font-style:normal; font-size:10px; margin-top:2px; background:#f1ecdd; color:#b5852f; border:1px solid #e6dcbf; border-radius:20px; padding:2px 8px; }
.sr-compare-note { color:var(--sr-muted); font-size:10.5px; }
.sr-cockpit-note { flex:1; color:var(--sr-muted); font-size:10px; text-align:right; max-width:380px; margin-left:auto; }
.stock-cockpit-actionbar > .sr-cockpit-note { text-align:right; }
.stock-research-toolbar.sr-entry-zone { grid-template-columns:1fr; }
.sr-entry-copy h1 { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.stock-research-toolbar-actions.sr-entry-actions { justify-content:stretch; }
.sr-entry-actions label:last-of-type { flex:1 1 auto; }
.sr-entry-actions input { width:100%; }
.sr-entry-actions input.invalid { border-color:#b34d3d; background:#fff8f6; box-shadow:0 0 0 3px rgba(179,77,61,.12); }
.stock-research-feedback { display:flex; align-items:center; gap:10px; border:1px solid #cbd9df; border-radius:10px; background:#eef5f8; color:#35596a; padding:11px 14px; }
.stock-research-feedback strong { flex:0 0 auto; font-size:12px; }
.stock-research-feedback span { font-size:12px; }
.stock-research-feedback small { margin-left:auto; color:inherit; font-size:10px; }
.stock-research-feedback.error { border:2px solid #b34d3d; background:#fff0ec; color:#7f3025; box-shadow:0 5px 16px rgba(127,48,37,.1); }
.stock-research-feedback.error::before { content:"!"; display:grid; place-items:center; width:24px; height:24px; flex:0 0 24px; border-radius:50%; background:#b34d3d; color:#fff; font-weight:900; }
/* 原型 52 · 研究池 chip 单行化：中文名+代码+状态横排 */
.stock-watch-symbol { min-height:32px; padding:5px 10px; }
.stock-watch-symbol > span { display:flex; align-items:baseline; gap:6px; }
.stock-watch-symbol strong { font-size:12px; line-height:1.2; }
.stock-watch-symbol small { font-size:10.5px; color:var(--sr-muted); line-height:1.2; }

/* 研究池轨道交互规格 62/63：单标的自然宽度，多标的固定 152px，超出后横向滑动。 */
.stock-watch-track.is-entry { position:relative; overflow:visible; }
.stock-watch-track.is-entry .stock-watch-heading {
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center !important;
  gap:10px;
  min-width:0;
}
.stock-watch-track.is-entry .stock-watch-heading > strong,
.stock-watch-track.is-entry .sr-track-filter { position:relative; z-index:6; white-space:nowrap; }
.stock-watch-viewport { position:relative; min-width:0; }
.stock-watch-track.is-entry .stock-watch-chips {
  display:flex;
  width:100%;
  min-width:0;
  gap:8px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:4px 2px 8px;
  overscroll-behavior-x:contain;
  scroll-behavior:smooth;
  scrollbar-width:none;
  touch-action:pan-x;
}
.stock-watch-track.is-entry .stock-watch-chips::-webkit-scrollbar { display:none; }
.stock-watch-track.is-entry .stock-watch-row {
  display:block;
  min-width:0;
  margin:0;
  border:0;
  border-radius:0;
  background:transparent;
  padding:0;
  box-shadow:none !important;
}
.stock-watch-track.is-entry.is-single .stock-watch-row {
  flex:0 1 auto;
  width:max-content;
  min-width:176px;
  max-width:260px;
}
.stock-watch-track.is-entry.is-multi .stock-watch-row {
  flex:0 0 152px;
  width:152px;
}
.stock-watch-track.is-entry .stock-watch-symbol {
  display:flex;
  width:100%;
  min-width:0;
  min-height:38px;
  align-items:center;
  gap:7px;
  border:1px solid var(--sr-line);
  border-radius:9px;
  background:var(--sr-paper);
  color:var(--sr-ink);
  padding:6px 8px;
  box-shadow:none;
  white-space:nowrap;
}
.stock-watch-track.is-entry .stock-watch-symbol:hover,
.stock-watch-track.is-entry .stock-watch-symbol:focus-visible {
  border-color:#c3934b;
  background:var(--sr-paper);
  color:var(--sr-ink);
  box-shadow:0 4px 14px rgba(90,62,23,.1);
}
.stock-watch-track.is-entry .stock-watch-row.active,
.stock-watch-track.is-entry .stock-watch-row.active::before { box-shadow:none !important; }
.stock-watch-track.is-entry .stock-watch-row.active .stock-watch-symbol {
  border-color:var(--sr-amber);
  background:#f0e6cf;
  box-shadow:inset 0 0 0 1px rgba(168,117,42,.08);
}
.stock-watch-track.is-entry .stock-watch-identity {
  display:flex;
  min-width:0;
  align-items:baseline;
  gap:5px;
}
.stock-watch-track.is-entry .stock-watch-name {
  min-width:0;
  overflow:hidden;
  color:var(--sr-ink);
  font-size:12px;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.stock-watch-track.is-entry.is-multi .stock-watch-name { max-width:2.2em; }
.stock-watch-track.is-entry .stock-watch-symbol small {
  flex:0 0 auto;
  overflow:visible;
  color:var(--sr-muted);
  font-size:10px;
  line-height:1.2;
}
.stock-watch-track.is-entry .stock-watch-symbol > .stock-research-status {
  flex:0 0 auto;
  max-width:42px;
  overflow:hidden;
  padding:1px 5px;
  font-size:8.5px;
  line-height:1.5;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.stock-watch-viewport.has-overflow::before,
.stock-watch-viewport.has-overflow::after {
  content:"";
  position:absolute;
  z-index:4;
  top:2px;
  bottom:6px;
  width:36px;
  pointer-events:none;
}
.stock-watch-viewport.has-overflow:not(.at-start)::before {
  left:0;
  background:linear-gradient(90deg,var(--sr-panel),rgba(250,247,240,0));
}
.stock-watch-viewport.has-overflow:not(.at-end)::after {
  right:0;
  background:linear-gradient(270deg,var(--sr-panel),rgba(250,247,240,0));
}
.stock-watch-arrows {
  position:absolute;
  z-index:5;
  right:5px;
  top:10px;
  display:flex;
  gap:4px;
}
.stock-watch-arrows[hidden] { display:none !important; }
.stock-watch-arrow {
  display:grid;
  width:24px;
  height:24px;
  min-height:0;
  place-items:center;
  border:1px solid #d9ccb2;
  border-radius:50%;
  background:rgba(255,253,248,.96);
  color:#79511a;
  padding:0;
  box-shadow:0 2px 8px rgba(70,48,18,.1);
  font-size:16px;
  line-height:1;
}
.stock-watch-arrow:disabled { visibility:hidden; }
.stock-watch-peek {
  position:fixed;
  z-index:100;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:8px 10px;
  width:268px;
  border:1px solid #d5c6aa;
  border-radius:12px;
  background:#fffdf8;
  padding:12px;
  box-shadow:0 16px 38px rgba(52,38,18,.18);
  pointer-events:none;
}
.stock-watch-peek[hidden] { display:none !important; }
.stock-watch-peek .sr-company-logo { grid-row:1; width:38px; height:38px; flex-basis:38px; border-radius:10px; font-size:17px; }
.stock-watch-peek > div { display:grid; gap:2px; min-width:0; }
.stock-watch-peek strong { color:var(--sr-ink); font-family:var(--sr-serif); font-size:17px; line-height:1.2; }
.stock-watch-peek span { color:var(--sr-muted); font-size:11px; }
.stock-watch-peek em { width:max-content; border-radius:999px; background:#e8f1e8; color:#4c7657; padding:1px 7px; font-size:10px; font-style:normal; }
.stock-watch-mobile-current { display:none; }
.stock-watch-track.is-entry .stock-watch-empty { flex:1 1 auto; padding:9px 12px; text-align:left; }

@media (max-width:760px) {
  .stock-watch-track.is-entry .stock-watch-heading {
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center !important;
  }
  .stock-watch-track.is-entry .stock-watch-heading > strong { grid-column:1; grid-row:1; }
  .stock-watch-track.is-entry .stock-watch-viewport { grid-column:1/-1; grid-row:2; }
  .stock-watch-track.is-entry .sr-track-filter { grid-column:2; grid-row:1; }
  .stock-watch-track.is-entry.is-multi .stock-watch-row { flex-basis:152px; width:152px; }
  .stock-watch-mobile-current {
    display:flex;
    align-items:center;
    gap:7px;
    margin:1px 0 0;
    border-top:1px dashed var(--sr-line);
    padding:8px 2px 0;
    color:var(--sr-muted);
    font-size:10.5px;
  }
  .stock-watch-mobile-current strong { color:var(--sr-ink); font-size:11.5px; }
}

@media (hover:none) {
  .stock-watch-peek { display:none !important; }
}

@media (prefers-reduced-motion:reduce) {
  .stock-watch-track.is-entry .stock-watch-chips { scroll-behavior:auto; }
}

/* 估值专业化：当前标的即时解释 + 主动打开的方法库 */
.valuation-heading-actions { display:flex; align-items:center; gap:8px; }
.valuation-heading-actions .secondary { min-height:30px; padding:5px 10px; }
.valuation-context-explanation { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:12px 0 14px; }
.valuation-context-explanation > div { border:1px solid var(--sr-line,#e2d9c4); border-radius:10px; background:#fffdf8; padding:11px 12px; }
.valuation-context-explanation span { display:block; color:var(--sr-muted,#8b8471); font-size:10px; }
.valuation-context-explanation strong { display:block; margin:3px 0; color:var(--sr-ink,#2a251d); font-family:var(--sr-serif,"Songti SC",serif); font-size:15px; }
.valuation-context-explanation p { margin:0; color:#6e6657; font-size:10.5px; line-height:1.55; }
.valuation-calculation-desk { margin-top:12px; border:1px solid var(--sr-line,#e2d9c4); border-radius:10px; background:#fffdf8; }
.valuation-calculation-desk > summary { display:flex; justify-content:space-between; gap:12px; padding:10px 12px; cursor:pointer; color:#76501d; font-weight:750; }
.valuation-calculation-desk > summary span { color:var(--sr-muted,#8b8471); font-size:10px; font-weight:500; }
.valuation-calculation-desk > .valuation-method-library { border:0; border-top:1px solid var(--sr-line,#e2d9c4); border-radius:0; margin:0; }
.valuation-library-overlay { position:fixed; z-index:140; inset:0; background:rgba(30,25,17,.38); }
.valuation-knowledge-drawer { position:fixed; z-index:145; top:0; right:0; display:flex; flex-direction:column; width:min(760px,92vw); height:100dvh; background:#f8f4ea; box-shadow:-24px 0 54px rgba(29,24,17,.22); transform:translateX(102%); visibility:hidden; transition:transform .24s ease,visibility 0s linear .24s; }
.valuation-knowledge-drawer.open { transform:none; visibility:visible; transition-delay:0s; }
.valuation-knowledge-drawer > header { display:flex; justify-content:space-between; gap:20px; padding:20px 22px 15px; border-bottom:1px solid var(--sr-line,#e2d9c4); }
.valuation-knowledge-drawer > header span { color:#8a6023; font-size:10px; font-weight:850; letter-spacing:.13em; }
.valuation-knowledge-drawer > header h3 { margin:2px 0; color:#2a251d; font-family:var(--sr-serif,"Songti SC",serif); font-size:26px; }
.valuation-knowledge-drawer > header p { margin:0; color:#817967; font-size:11px; }
.valuation-knowledge-drawer > header button { display:grid; flex:0 0 34px; width:34px; height:34px; min-height:0; place-items:center; border:1px solid #ded3bc; border-radius:50%; background:#fffdf8; color:#2a251d; padding:0; font-size:20px; }
.valuation-knowledge-body { overflow:auto; padding:16px 22px 36px; }
.valuation-knowledge-context { display:flex; justify-content:space-between; align-items:center; gap:16px; border:1px solid #cfbd98; border-radius:11px; background:#fff9ec; padding:11px 13px; }
.valuation-knowledge-context span { display:block; color:#817967; font-size:9.5px; }
.valuation-knowledge-context strong { font-family:var(--sr-serif,"Songti SC",serif); font-size:16px; }
.valuation-knowledge-context em { border-radius:999px; background:#eee2ca; color:#80571f; padding:3px 8px; font-size:9.5px; font-style:normal; }
.valuation-knowledge-tabs { display:flex; gap:5px; overflow:auto; margin:12px 0 9px; }
.valuation-knowledge-tabs button { min-height:30px; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; color:#817967; padding:5px 8px; white-space:nowrap; }
.valuation-knowledge-tabs button.active { border-color:#a8752a; color:#2a251d; font-weight:800; }
.valuation-knowledge-search input { width:100%; border:1px solid #ded3bc; border-radius:9px; background:#fffdf8; padding:9px 11px; color:#2a251d; }
.valuation-knowledge-search input:focus { border-color:#a8752a; outline:3px solid rgba(168,117,42,.12); }
.valuation-knowledge-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:12px; }
.valuation-knowledge-card { border:1px solid #ded3bc; border-radius:11px; background:#fffdf8; padding:11px 12px; }
.valuation-knowledge-card[hidden] { display:none; }
.valuation-knowledge-card[open] { grid-column:1/-1; border-color:#a8752a; box-shadow:0 8px 20px rgba(70,48,18,.07); }
.valuation-knowledge-card summary { display:flex; justify-content:space-between; gap:10px; cursor:pointer; list-style:none; }
.valuation-knowledge-card summary::-webkit-details-marker { display:none; }
.valuation-knowledge-card summary strong,.valuation-knowledge-card summary small { display:block; }
.valuation-knowledge-card summary strong { color:#2a251d; font-family:var(--sr-serif,"Songti SC",serif); font-size:15px; }
.valuation-knowledge-card summary small { color:#817967; font-size:9.5px; }
.valuation-knowledge-card summary em { height:max-content; border-radius:999px; padding:2px 7px; font-size:8.5px; font-style:normal; white-space:nowrap; }
.valuation-knowledge-card summary em.calculated { background:#e6efe7; color:#4d7658; }
.valuation-knowledge-card summary em.calculated_with_limits { background:#f5ebd6; color:#80571f; }
.valuation-knowledge-card summary em.cross_check { background:#e5edf0; color:#4e6d7b; }
.valuation-knowledge-card summary em.method_intro { background:#eee9df; color:#746b5b; }
.valuation-knowledge-card > p { color:#655d4f; font-size:10.5px; }
.valuation-knowledge-card > div { display:grid; grid-template-columns:90px 1fr; gap:8px; border-top:1px solid #e7decc; padding-top:8px; }
.valuation-knowledge-card > div span { color:#817967; font-size:9.5px; }
.valuation-knowledge-card > div p { margin:0; color:#3d382f; font-size:10.5px; }
.valuation-knowledge-empty { border:1px dashed #ded3bc; border-radius:10px; padding:24px; text-align:center; color:#817967; }
body.valuation-library-open { overflow:hidden; }

@media (max-width:980px) {
  .valuation-context-explanation { grid-template-columns:1fr 1fr; }
}
@media (max-width:620px) {
  .valuation-workbench-heading { align-items:flex-start; }
  .valuation-heading-actions { align-items:flex-end; flex-direction:column; }
  .valuation-context-explanation,.valuation-knowledge-grid { grid-template-columns:1fr; }
  .valuation-knowledge-drawer { width:100vw; }
  .valuation-knowledge-drawer > header,.valuation-knowledge-body { padding-left:15px; padding-right:15px; }
  .valuation-knowledge-card[open] { grid-column:auto; }
}

/* 驾驶舱同行对比闭环 */
.stock-peer-overlay { position:fixed; z-index:140; inset:0; background:rgba(30,25,17,.38); }
.stock-peer-drawer { position:fixed; z-index:145; top:0; right:0; width:min(760px,94vw); height:100dvh; overflow:auto; background:#f8f4ea; box-shadow:-24px 0 54px rgba(29,24,17,.22); transform:translateX(102%); visibility:hidden; transition:transform .24s ease,visibility 0s linear .24s; }
.stock-peer-drawer.open { transform:none; visibility:visible; transition-delay:0s; }
.stock-peer-drawer > header { display:flex; justify-content:space-between; gap:18px; border-bottom:1px solid var(--sr-line,#e2d9c4); padding:20px 22px 15px; }
.stock-peer-drawer > header span { color:#8a6023; font-size:10px; font-weight:850; letter-spacing:.13em; }
.stock-peer-drawer > header h2 { margin:2px 0; font-family:var(--sr-serif,"Songti SC",serif); font-size:24px; }
.stock-peer-drawer > header p { margin:0; color:#817967; font-size:11px; }
.stock-peer-drawer > header button { display:grid; flex:0 0 34px; width:34px; height:34px; min-height:0; place-items:center; border:1px solid #ded3bc; border-radius:50%; background:#fffdf8; padding:0; color:#2a251d; font-size:20px; }
.stock-peer-body { padding:16px 22px 36px; }
.stock-peer-options { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.stock-peer-options label { cursor:pointer; }
.stock-peer-options label > input { position:absolute; opacity:0; pointer-events:none; }
.stock-peer-options label > span { display:flex; align-items:center; gap:8px; border:1px solid #ded3bc; border-radius:10px; background:#fffdf8; padding:9px 10px; }
.stock-peer-options input:checked + span { border-color:#a8752a; background:#f1e7d1; box-shadow:inset 0 0 0 1px rgba(168,117,42,.12); }
.stock-peer-options small { margin-left:auto; color:#817967; }
.stock-peer-custom { display:grid; gap:4px; margin:12px 0 8px; color:#817967; font-size:10px; }
.stock-peer-custom input { border:1px solid #ded3bc; border-radius:9px; background:#fffdf8; padding:9px 11px; }
.stock-peer-feedback { min-height:20px; color:#80571f; font-size:11px; }
.peer-source-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin:10px 0 14px; }
.peer-source-strip article { display:grid; gap:4px; border:1px solid var(--sr-line); border-radius:9px; background:var(--sr-paper); padding:10px 12px; }
.peer-source-strip strong { color:var(--sr-ink); font-size:13px; }.peer-source-strip strong small { color:var(--sr-muted); font-weight:600; }
.peer-source-strip span,.peer-source-strip em { color:var(--sr-muted); font-size:11px; font-style:normal; }
.stock-peer-body [data-peer-results] { margin-top:12px; }
.stock-peer-body [data-peer-results] .peer-table { overflow:auto; }
body.stock-peer-open { overflow:hidden; }
@media(max-width:620px){.stock-peer-drawer{width:100vw}.stock-peer-drawer>header,.stock-peer-body{padding-left:15px;padding-right:15px}.stock-peer-options,.peer-source-strip{grid-template-columns:1fr}}

.stock-research-empty-cockpit { display:grid; justify-items:start; gap:10px; border:1px solid var(--sr-line,#e2d9c4); border-radius:14px; background:#faf7f0; padding:34px; box-shadow:0 10px 28px rgba(60,45,20,.06); }
.stock-research-empty-cockpit > span { color:#8a6023; font-size:10px; font-weight:850; letter-spacing:.13em; }
.stock-research-empty-cockpit > strong { font-family:var(--sr-serif,"Songti SC",serif); font-size:26px; }
.stock-research-empty-cockpit > p { max-width:680px; margin:0; color:#817967; }
.stock-empty-examples { display:flex; flex-wrap:wrap; gap:7px; }
.stock-empty-examples button { min-height:30px; border:1px solid #ded3bc; border-radius:999px; background:#fffdf8; color:#80571f; padding:5px 10px; }
.stock-research-empty-cockpit > div:last-child { display:flex; flex-wrap:wrap; gap:8px; }
.stock-rail-more { border:1px solid var(--sr-line,#e2d9c4); border-radius:10px; background:#faf7f0; }
.stock-rail-more > summary { cursor:pointer; padding:9px 11px; color:#80571f; font-size:10.5px; font-weight:750; }
.stock-rail-more > .stock-side-panel { margin:0; border-width:1px 0 0; border-radius:0; box-shadow:none; }
.stock-reminder-rail button { width:100%; margin-top:8px; }
.stock-memory-now { display:grid; grid-template-columns:1fr 1fr 1.4fr; gap:8px; margin:10px 0 14px; }
.stock-memory-now article { border:1px solid var(--sr-line,#e2d9c4); border-radius:9px; background:#fffdf8; padding:9px 10px; }
.stock-memory-now span { display:block; color:#817967; font-size:9.5px; }
.stock-memory-now strong { display:block; margin-top:3px; color:#2a251d; font-family:var(--sr-serif,"Songti SC",serif); font-size:12px; }
.stock-memory-list article { position:relative; padding-left:24px; }
.stock-memory-list article::before { content:""; position:absolute; left:7px; top:14px; width:7px; height:7px; border-radius:50%; background:#a8752a; box-shadow:0 0 0 4px #f1e7d1; }
.stock-memory-list article:not(:last-child)::after { content:""; position:absolute; left:10px; top:24px; bottom:-12px; width:1px; background:#ded3bc; }
.stock-memory-list .memory-tone-current::before { background:#4d7658; box-shadow:0 0 0 4px #e6efe7; }
@media(max-width:620px){.stock-memory-now{grid-template-columns:1fr}}

/* Tablet/mobile: keep the research canvas above the fold while preserving all navigation. */
@media (max-width:900px) {
  .sidebar-primary { padding:11px 16px 9px; gap:8px; }
  .sidebar .brand { padding:0 0 8px; }
  .workspace-nav { display:flex; grid-template-columns:none; gap:7px; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
  .workspace-nav::-webkit-scrollbar { display:none; }
  .sidebar .nav-item { flex:0 0 138px; min-height:46px; padding:8px 10px; }
  .sidebar-footer { flex-direction:row; align-items:center; justify-content:space-between; gap:12px; margin-top:0; padding:8px 16px 10px; }
  .sidebar .context-header { display:flex; flex:1; align-items:center; justify-content:space-between; border:0; padding:0; }
  .sidebar .context-header span { display:none; }
  .sidebar .context-header strong { font-size:14px; }
  .sidebar-footer .account-shell { width:min(260px,55vw); }
  .sidebar-footer .account-capsule { min-height:40px; }
}
@media (max-width:520px) {
  .sidebar .brand p,.sidebar .nav-item small { display:none; }
  .sidebar .brand-mark { width:36px; height:36px; border-radius:10px; }
  .sidebar .brand h1 { font-size:17px; }
  .sidebar .nav-item { flex-basis:112px; }
  .sidebar-footer .account-shell { width:min(210px,62vw); }
}

/* Discovery V2 — isolated problem-first shell. Later stages extend only the dv2 namespace. */
.dv2-shell {
  --dv2-paper: #fffdf8;
  --dv2-paper-soft: #faf4e8;
  --dv2-ink: #211a13;
  --dv2-muted: #756856;
  --dv2-line: #dfd2bd;
  --dv2-amber: #a76617;
  --dv2-green: #247050;
  --dv2-red: #a6474e;
  --dv2-serif: "Songti SC", "STSong", "Iowan Old Style", Georgia, serif;
  --dv2-sans: "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
  max-width: 1510px;
  margin: 0 auto;
  color: var(--dv2-ink);
  font-family: var(--dv2-sans);
}

.dv2-shell *,
.dv2-shell *::before,
.dv2-shell *::after { box-sizing: border-box; min-width: 0; }

.dv2-shell button:focus-visible,
.dv2-shell [tabindex]:focus-visible {
  outline: 3px solid rgba(66, 102, 129, .35);
  outline-offset: 2px;
}

.dv2-flow { display: flex; flex-direction: column; gap: 18px; }

.dv2-section {
  overflow: clip;
  border: 1px solid rgba(115, 82, 37, .15);
  border-radius: 14px;
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 18px 48px rgba(57, 35, 13, .10);
}

.dv2-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px 15px;
}

.dv2-section-head h2 {
  margin: 0;
  color: var(--dv2-ink);
  font-family: var(--dv2-serif);
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing: -.025em;
}

.dv2-section-head p {
  max-width: 720px;
  margin: 6px 0 0;
  color: var(--dv2-muted);
  font-size: 13px;
  line-height: 1.55;
}

.dv2-eyebrow {
  display: block;
  margin-bottom: 4px;
  color: var(--dv2-amber);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.dv2-section-body { padding: 0 24px 24px; }

.dv2-soft-button {
  min-height: 38px;
  flex: 0 0 auto;
  border: 1px solid var(--dv2-line);
  border-radius: 10px;
  background: var(--dv2-paper-soft);
  color: var(--dv2-amber);
  padding: 8px 12px;
  font: 750 13px/1 var(--dv2-sans);
  cursor: pointer;
}

.dv2-soft-button:hover { border-color: #c99a58; background: #fff3d6; }

.dv2-focus-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  gap: 16px;
}

.dv2-question-card {
  position: relative;
  min-height: 235px;
  overflow: hidden;
  border-radius: 13px;
  background: linear-gradient(135deg, #2c1c10 0%, #503016 62%, #754517 100%);
  color: #fff7e7;
  padding: 26px;
}

.dv2-question-card::after {
  content: "";
  position: absolute;
  right: -80px;
  bottom: -110px;
  width: 280px;
  height: 280px;
  border: 54px solid rgba(241, 192, 87, .11);
  border-radius: 50%;
}

.dv2-question-card > * { position: relative; z-index: 1; }
.dv2-question-card .dv2-eyebrow { color: #dfa94e; }

.dv2-question-card h1 {
  max-width: 740px;
  margin: 0;
  font-family: var(--dv2-serif);
  font-size: clamp(27px, 3vw, 42px);
  line-height: 1.06;
  letter-spacing: -.025em;
}

.dv2-question-card p {
  max-width: 680px;
  margin: 14px 0 0;
  color: #d9c3a1;
  line-height: 1.7;
}

.dv2-focus-metrics { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.dv2-focus-metrics span { border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(255,255,255,.08); padding: 7px 10px; font-size: 12px; }
.dv2-today-list { display: grid; align-content: stretch; gap: 8px; }

.dv2-today-item {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  border: 1px solid var(--dv2-line);
  border-radius: 12px;
  background: var(--dv2-paper-soft);
  color: var(--dv2-ink);
  padding: 14px;
  text-align: left;
  cursor: pointer;
}

.dv2-today-item:hover,
.dv2-today-item.active { border-color: #c48633; background: #fff5dc; box-shadow: inset 3px 0 var(--dv2-amber); }
.dv2-today-item i { width: 9px; height: 9px; border-radius: 50%; background: var(--dv2-amber); }
.dv2-today-item.is-new i { background: var(--dv2-green); }
.dv2-today-item.is-pending i { background: var(--dv2-red); }
.dv2-today-item strong { display: block; font-size: 13px; }
.dv2-today-item small { display: -webkit-box; overflow: hidden; margin-top: 3px; color: var(--dv2-muted); font-size: 11px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.dv2-today-item b { color: var(--dv2-amber); font-family: var(--dv2-serif); font-size: 20px; }

.dv2-empty-state { display: grid; justify-items: center; gap: 8px; padding: 42px 24px; color: var(--dv2-muted); text-align: center; }
.dv2-empty-state b { font: 40px/1 var(--dv2-serif); color: #b99d72; }
.dv2-empty-state h3 { margin: 0; color: var(--dv2-ink); }
.dv2-empty-state p { max-width: 580px; margin: 0; line-height: 1.6; }

.dv2-inline-status { display: inline-flex; align-items: center; gap: 6px; color: var(--dv2-muted); font-size: 11px; }
.dv2-market-switch { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
.dv2-market-switch button { border: 1px solid var(--dv2-line); border-radius: 999px; background: var(--dv2-paper); color: var(--dv2-muted); padding: 8px 14px; font: 900 12px/1 var(--dv2-sans); cursor: pointer; }
.dv2-market-switch button.active { border-color: #d29a40; background: #f9dda0; color: #5f390c; box-shadow: inset 0 0 0 1px rgba(255,255,255,.55); }
.dv2-market-grid { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 18px; }
.dv2-market-score { display: grid; grid-template-columns: 94px 1fr; align-items: center; gap: 16px; border: 1px solid var(--dv2-line); border-radius: 12px; background: var(--dv2-paper-soft); padding: 16px; }
.dv2-score-ring { display: grid; width: 92px; height: 92px; place-items: center; border-radius: 50%; background: conic-gradient(var(--dv2-amber) 0 calc(var(--score) * 1%), #eadfca calc(var(--score) * 1%)); }
.dv2-score-ring::before { content: attr(data-score); display: grid; width: 69px; height: 69px; place-items: center; border-radius: 50%; background: var(--dv2-paper); color: var(--dv2-ink); font: 900 34px/1 var(--dv2-serif); }
.dv2-market-score > div:last-child > strong { display: block; font-size: 14px; }
.dv2-market-score p { margin: 7px 0 0; color: var(--dv2-muted); font-size: 12px; line-height: 1.55; }
.dv2-market-score small { display: block; margin-top: 8px; color: #98866d; font-size: 10px; }
.dv2-factor-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--dv2-line); border-radius: 12px; }
.dv2-factor { min-height: 132px; padding: 16px; border-right: 1px solid var(--dv2-line); }
.dv2-factor:last-child { border-right: 0; }
.dv2-factor > span { display: flex; align-items: center; justify-content: space-between; gap: 6px; color: var(--dv2-muted); font-size: 11px; }
.dv2-factor > strong { display: block; margin: 7px 0; font: 900 25px/1 var(--dv2-serif); }
.dv2-factor > small { color: var(--dv2-muted); font-size: 10px; line-height: 1.4; }
.dv2-factor.is-missing { background: #faf8f3; }
.dv2-factor.is-missing > strong { color: #a89b87; }
.dv2-factor-empty,
.dv2-basket-empty { display: grid; grid-column: 1 / -1; align-content: center; gap: 6px; min-height: 118px; color: var(--dv2-muted); padding: 20px; text-align: center; }
.dv2-market-benchmarks { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; margin-top: 14px; }
.dv2-benchmark-card { min-height: 164px; border: 1px solid var(--dv2-line); border-radius: 12px; background: #fffdfa; padding: 14px; }
.dv2-benchmark-card.is-unavailable { background: #faf7f0; }
.dv2-benchmark-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--dv2-muted); font-size: 10px; }
.dv2-benchmark-card h3 { margin: 8px 0 0; font: 900 21px/1.15 var(--dv2-serif); }
.dv2-benchmark-card h3 small { margin-left: 5px; color: var(--dv2-muted); font: 600 10px/1.2 var(--dv2-sans); }
.dv2-benchmark-price { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-top: 12px; }
.dv2-benchmark-price strong { font: 900 22px/1 var(--dv2-serif); }
.dv2-benchmark-price span { color: var(--dv2-green); font-size: 11px; font-weight: 900; }
.dv2-benchmark-price span.negative { color: var(--dv2-red); }
.dv2-benchmark-card p { margin: 8px 0 0; color: var(--dv2-muted); font-size: 10px; line-height: 1.55; }
.dv2-benchmark-levels { margin-top: 9px; padding-top: 8px; border-top: 1px solid var(--dv2-line); color: var(--dv2-muted); font-size: 10px; }
.dv2-issue-trigger { position: relative; display: inline-grid; flex: 0 0 22px; width: 22px; height: 22px; place-items: center; border: 1px solid currentColor; border-radius: 50%; background: transparent; color: var(--dv2-amber); padding: 0; font: 900 12px/1 var(--dv2-sans); cursor: help; }
.dv2-issue-trigger.is-good { color: var(--dv2-green); }
.dv2-issue-trigger.is-bad { color: var(--dv2-red); }
.dv2-issue-trigger.is-stale { color: #426681; }
.dv2-tooltip { position: absolute; left: 50%; bottom: calc(100% + 9px); z-index: 30; width: 240px; visibility: hidden; transform: translateX(-50%) translateY(4px); border-radius: 8px; background: #241b15; color: white; padding: 9px 10px; font-size: 11px; font-weight: 500; line-height: 1.5; opacity: 0; pointer-events: none; transition: .16s ease; box-shadow: 0 8px 22px rgba(0,0,0,.22); }
.dv2-issue-trigger:hover .dv2-tooltip,
.dv2-issue-trigger:focus-visible .dv2-tooltip { visibility: visible; transform: translateX(-50%) translateY(0); opacity: 1; }

.dv2-sector-tools { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.dv2-sector-tools > span { max-width: 740px; color: var(--dv2-muted); font-size: 11px; line-height: 1.5; text-align: right; }
.dv2-metric-switch { display: flex; flex-wrap: wrap; gap: 6px; }
.dv2-metric-switch button { border: 1px solid var(--dv2-line); border-radius: 999px; background: white; color: var(--dv2-muted); padding: 7px 10px; font: 900 11px/1 var(--dv2-sans); cursor: pointer; }
.dv2-metric-switch button.active { border-color: #d09a43; background: #fff0cb; color: #693f0d; }
.dv2-sector-heatmap { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.dv2-heat-tile { position: relative; display: flex; min-height: 94px; flex-direction: column; justify-content: space-between; gap: 8px; overflow: hidden; border: 1px solid rgba(50,38,27,.13); border-radius: 10px; color: #fff; padding: 11px; text-align: left; transition: transform .16s ease, box-shadow .16s ease; cursor: pointer; }
.dv2-heat-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(145deg, rgba(255,255,255,.12), transparent 55%); pointer-events: none; }
.dv2-heat-tile.positive { background: hsl(151 42% calc(33% + var(--fade))); }
.dv2-heat-tile.negative { background: hsl(356 40% calc(38% + var(--fade))); }
.dv2-heat-tile.neutral { background: #6e665c; }
.dv2-heat-tile > * { position: relative; z-index: 1; }
.dv2-heat-tile strong { font-size: 12px; }
.dv2-heat-tile span { font: 900 20px/1 var(--dv2-serif); }
.dv2-heat-tile small { color: rgba(255,255,255,.78); font-size: 9px; }
.dv2-heat-tile:hover,
.dv2-heat-tile:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(45,30,16,.18); }
.dv2-sector-foot { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; color: var(--dv2-muted); font-size: 11px; line-height: 1.5; }
.dv2-sector-foot span:last-child { max-width: 70%; text-align: right; }
.dv2-drawer-backdrop { position: fixed; inset: 0; z-index: 90; background: rgba(31,21,12,.32); backdrop-filter: blur(2px); }
.dv2-sector-drawer { position: absolute; top: 0; right: 0; display: grid; align-content: start; gap: 0; width: min(510px, 94vw); height: 100%; overflow-y: auto; background: var(--dv2-paper); box-shadow: -18px 0 42px rgba(35,22,10,.2); }
.dv2-sector-drawer > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--dv2-line); padding: 25px 24px 20px; }
.dv2-sector-drawer h2 { margin: 0; font: 900 28px/1.1 var(--dv2-serif); }
.dv2-sector-drawer header p { margin: 6px 0 0; color: var(--dv2-muted); font-size: 12px; }
.dv2-sector-drawer header > button { display: grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border: 1px solid var(--dv2-line); border-radius: 50%; background: white; color: var(--dv2-muted); font-size: 22px; cursor: pointer; }
.dv2-drawer-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--dv2-line); }
.dv2-drawer-metrics article { padding: 17px; border-right: 1px solid var(--dv2-line); }
.dv2-drawer-metrics article:last-child { border-right: 0; }
.dv2-drawer-metrics span { display: block; color: var(--dv2-muted); font-size: 10px; }
.dv2-drawer-metrics strong { display: block; margin-top: 7px; font: 900 22px/1 var(--dv2-serif); }
.dv2-sector-drawer > section { padding: 20px 24px; border-bottom: 1px solid var(--dv2-line); }
.dv2-sector-drawer > section h3 { margin: 0 0 8px; font-size: 14px; }
.dv2-sector-drawer > section p { margin: 0; color: var(--dv2-muted); font-size: 12px; line-height: 1.65; }
.dv2-sector-drawer > section small { display: block; margin-top: 9px; color: #9b8b74; }
.dv2-sector-leaders { display: grid; gap: 7px; }
.dv2-sector-leaders article { display: flex; justify-content: space-between; gap: 12px; border: 1px solid var(--dv2-line); border-radius: 9px; background: var(--dv2-paper-soft); padding: 10px 12px; }
.dv2-sector-leaders span { color: var(--dv2-muted); font-size: 11px; }
.dv2-drawer-empty { border: 1px dashed #cdbb9e; border-radius: 10px; background: #faf7f0; padding: 15px; }
.dv2-drawer-empty strong { display: block; margin-bottom: 5px; font-size: 12px; }

.dv2-theme-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.dv2-status-tabs { display: flex; gap: 7px; overflow-x: auto; }
.dv2-status-tabs button { min-height: 38px; white-space: nowrap; border: 1px solid var(--dv2-line); border-radius: 10px; background: var(--dv2-paper); color: var(--dv2-muted); padding: 8px 12px; font: 800 12px/1 var(--dv2-sans); cursor: pointer; }
.dv2-status-tabs button.active { border-color: #c2893e; background: #fff0ce; color: #75450f; }
.dv2-theme-layout { display: grid; grid-template-columns: 310px minmax(0, 1fr); gap: 16px; }
.dv2-theme-list { display: grid; align-content: start; gap: 8px; }
.dv2-theme-card { display: grid; grid-template-columns: 1fr auto; gap: 10px; border: 1px solid var(--dv2-line); border-radius: 12px; background: var(--dv2-paper-soft); color: var(--dv2-ink); padding: 14px; text-align: left; cursor: pointer; }
.dv2-theme-card.active { border-color: #c48633; background: #fff5dc; box-shadow: inset 3px 0 var(--dv2-amber); }
.dv2-theme-card strong { display: block; font-size: 13px; }
.dv2-theme-card small { display: block; margin-top: 4px; color: var(--dv2-muted); font-size: 10px; }
.dv2-theme-card b { color: var(--dv2-amber); font: 900 24px/1 var(--dv2-serif); }
.dv2-theme-detail { overflow: hidden; border: 1px solid var(--dv2-line); border-radius: 13px; }
.dv2-theme-hero { border-bottom: 1px solid var(--dv2-line); background: linear-gradient(120deg, #fbf2df, #fffdf8); padding: 20px; }
.dv2-theme-hero-head { display: flex; justify-content: space-between; gap: 16px; }
.dv2-theme-hero h2 { margin: 0; font: 900 clamp(21px,2vw,28px)/1.15 var(--dv2-serif); }
.dv2-theme-hero > p { max-width: 820px; margin: 8px 0 0; color: var(--dv2-muted); font-size: 12px; line-height: 1.6; }
.dv2-theme-score { flex: 0 0 auto; text-align: center; }
.dv2-theme-score strong { display: block; color: var(--dv2-amber); font: 900 34px/1 var(--dv2-serif); }
.dv2-theme-score span { color: var(--dv2-muted); font-size: 9px; }
.dv2-theme-badges { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.dv2-theme-badges span { border-radius: 999px; background: #efe7d8; color: #675844; padding: 6px 9px; font-size: 11px; font-weight: 800; }
.dv2-theme-badges span.new { background: #e2f0e8; color: var(--dv2-green); }
.dv2-theme-badges span.risk { background: #f7e6e6; color: var(--dv2-red); }
.dv2-theme-story { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--dv2-line); }
.dv2-theme-story article { min-height: 142px; padding: 16px; border-right: 1px solid var(--dv2-line); }
.dv2-theme-story article:last-child { border-right: 0; }
.dv2-theme-story span { display: block; margin-bottom: 7px; color: var(--dv2-amber); font-size: 9px; font-weight: 900; letter-spacing: .09em; }
.dv2-theme-story strong { font-size: 12px; }
.dv2-theme-story p { margin: 6px 0 0; color: var(--dv2-muted); font-size: 10px; line-height: 1.55; }
.dv2-chain-panel { border-bottom: 1px solid var(--dv2-line); background: #fffdf9; padding: 17px 18px; }
.dv2-chain-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.dv2-chain-head h3 { margin: 0; font-size: 14px; }
.dv2-chain-head p { margin: 4px 0 0; color: var(--dv2-muted); font-size: 11px; }
.dv2-chain-head button { border: 1px solid var(--dv2-line); border-radius: 999px; background: white; color: var(--dv2-muted); padding: 6px 9px; font-size: 10px; font-weight: 900; cursor: pointer; }
.dv2-chain-map { display: flex; align-items: stretch; gap: 7px; overflow-x: auto; padding-bottom: 3px; }
.dv2-chain-node { position: relative; flex: 1 0 145px; min-height: 96px; border: 1px solid var(--dv2-line); border-radius: 11px; background: var(--dv2-paper-soft); color: var(--dv2-ink); padding: 11px; text-align: left; cursor: pointer; }
.dv2-chain-node:not(:last-child)::after { content: "→"; position: absolute; top: 38%; right: -10px; z-index: 2; color: var(--dv2-amber); font-weight: 900; }
.dv2-chain-node.active { border-color: #b97621; background: #fff0cc; box-shadow: inset 0 0 0 1px rgba(185,118,33,.18); }
.dv2-chain-node span { display: block; color: var(--dv2-amber); font-size: 9px; font-weight: 900; letter-spacing: .09em; }
.dv2-chain-node strong { display: block; margin-top: 5px; font-size: 12px; }
.dv2-chain-node small { display: block; margin-top: 7px; color: var(--dv2-muted); font-size: 9px; line-height: 1.45; }
.dv2-theme-candidates-head { padding: 17px 18px 9px; }
.dv2-theme-candidates-head h3 { margin: 0; font-size: 14px; }
.dv2-theme-candidates-head p { margin: 4px 0 0; color: var(--dv2-muted); font-size: 10px; }
.dv2-theme-detail .opportunity-candidate-table-wrap { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.dv2-modal-backdrop { position: fixed; inset: 0; z-index: 95; display: grid; place-items: center; background: rgba(31,21,12,.42); padding: 24px; backdrop-filter: blur(3px); }
.dv2-method-dialog { width: min(840px, 96vw); max-height: 90vh; overflow-y: auto; border: 1px solid var(--dv2-line); border-radius: 16px; background: var(--dv2-paper); box-shadow: 0 24px 70px rgba(35,22,10,.25); }
.dv2-method-dialog > header,
.dv2-theme-manager > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--dv2-line); padding: 22px 24px 18px; }
.dv2-method-dialog h2,
.dv2-theme-manager h2 { margin: 0; font: 900 28px/1.1 var(--dv2-serif); }
.dv2-method-dialog header button,
.dv2-theme-manager header > button { display: grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border: 1px solid var(--dv2-line); border-radius: 50%; background: white; color: var(--dv2-muted); font-size: 22px; cursor: pointer; }
.dv2-method-summary { margin: 0; padding: 20px 24px 0; color: var(--dv2-muted); line-height: 1.65; }
.dv2-method-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; padding: 18px 24px; }
.dv2-method-steps article { border: 1px solid var(--dv2-line); border-radius: 11px; background: var(--dv2-paper-soft); padding: 14px; }
.dv2-method-steps span { color: var(--dv2-amber); font: 900 18px/1 var(--dv2-serif); }
.dv2-method-steps strong { display: block; margin-top: 9px; font-size: 12px; }
.dv2-method-steps p { margin: 6px 0 0; color: var(--dv2-muted); font-size: 10px; line-height: 1.55; }
.dv2-method-dialog footer { border-top: 1px solid var(--dv2-line); color: var(--dv2-muted); padding: 14px 24px 18px; font-size: 11px; }
.dv2-theme-manager { position: absolute; top: 0; right: 0; width: min(560px, 96vw); height: 100%; overflow-y: auto; background: var(--dv2-paper); box-shadow: -18px 0 42px rgba(35,22,10,.2); }
.dv2-theme-manager header p { margin: 7px 0 0; color: var(--dv2-muted); font-size: 11px; line-height: 1.5; }
.dv2-manager-list { display: grid; gap: 7px; padding: 16px 20px; border-bottom: 1px solid var(--dv2-line); }
.dv2-manager-list button { display: grid; grid-template-columns: 1fr auto; gap: 10px; border: 1px solid var(--dv2-line); border-radius: 10px; background: var(--dv2-paper-soft); color: var(--dv2-ink); padding: 11px 12px; text-align: left; cursor: pointer; }
.dv2-manager-list button.active { border-color: #c48633; background: #fff5dc; box-shadow: inset 3px 0 var(--dv2-amber); }
.dv2-manager-list strong,
.dv2-manager-list small { display: block; }
.dv2-manager-list small { margin-top: 3px; color: var(--dv2-muted); font-size: 9px; }
.dv2-manager-list b { color: var(--dv2-amber); font: 900 20px/1 var(--dv2-serif); }
.dv2-manager-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 20px; }
.dv2-manager-form label { display: grid; gap: 5px; color: var(--dv2-muted); font-size: 10px; }
.dv2-manager-form input { min-height: 38px; border: 1px solid var(--dv2-line); border-radius: 9px; background: white; padding: 8px 10px; }
.dv2-manager-form button { align-self: end; min-height: 38px; border: 1px solid #9b651f; border-radius: 9px; background: #a76617; color: white; padding: 8px 13px; font-weight: 800; cursor: pointer; }
.dv2-manager-form button.danger { grid-column: 1 / -1; border-color: #b67b7f; background: #fff3f3; color: var(--dv2-red); }
.dv2-manager-form button:disabled,
.dv2-manager-form input:disabled { cursor: not-allowed; opacity: .48; }
.dv2-manager-form > p { grid-column: 1 / -1; margin: 0; color: var(--dv2-muted); font-size: 11px; line-height: 1.5; }

.dv2-candidate-table th:nth-child(1) { width: 17%; }
.dv2-candidate-table th:nth-child(2) { width: 14%; }
.dv2-candidate-table th:nth-child(3) { width: 8%; }
.dv2-candidate-table th:nth-child(4) { width: 28%; }
.dv2-candidate-table th:nth-child(5) { width: 21%; }
.dv2-candidate-table th:nth-child(6) { width: 12%; }
.dv2-range-block { display: grid; gap: 6px; min-width: 0; }
.dv2-range-kind { width: max-content; border-radius: 999px; background: #f8e6bb; color: #75460f; padding: 3px 7px; font-size: 9px; font-weight: 900; }
.dv2-range-block > strong { color: #70430e; font: 900 15px/1.2 var(--dv2-serif); }
.dv2-range-block > div { display: flex; flex-wrap: wrap; gap: 4px 8px; color: var(--dv2-muted); font-size: 9px; }
.dv2-range-block > small { color: var(--dv2-muted); font-size: 9px; line-height: 1.4; }
.dv2-range-block > em { color: #9a7e55; font-size: 9px; font-style: normal; line-height: 1.4; }
.dv2-range-block.is-technical .dv2-range-kind { background: #e5edf2; color: #385a70; }
.dv2-range-block.is-technical > strong { color: #426681; }
.dv2-range-block.is-none .dv2-range-kind { background: #eee9df; color: #7e7363; }
.dv2-range-block.is-none > strong { color: #746b5d; }
.dv2-research-action { display: grid; width: 100%; min-width: 94px; gap: 4px; border: 1px solid #8e5713; border-radius: 10px; background: linear-gradient(180deg,#b97520,#8b5311); color: white; padding: 9px 10px; text-align: center; box-shadow: 0 7px 16px rgba(139,83,17,.16); cursor: pointer; }
.dv2-research-action strong { font-size: 11px; }
.dv2-research-action small { color: rgba(255,255,255,.76); font-size: 8px; }
.dv2-research-action:hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(139,83,17,.22); }
.discovery-return-button { white-space: nowrap; }
.discovery-return-banner { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; border: 1px solid #dcc6a2; border-radius: 13px; background: #fff7e7; padding: 15px 17px; }
.discovery-return-banner span { display: block; color: #a76617; font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.discovery-return-banner strong { display: block; margin-top: 3px; }
.discovery-return-banner p { margin: 4px 0 0; color: #756856; font-size: 11px; }
.discovery-return-banner button { flex: 0 0 auto; border: 1px solid #c99a58; border-radius: 9px; background: white; color: #75450f; padding: 9px 12px; font-weight: 800; cursor: pointer; }

.dv2-evaluation-lite { overflow: hidden; border: 1px solid rgba(115,82,37,.15); border-radius: 13px; background: rgba(255,253,248,.78); }
.dv2-evaluation-lite > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; list-style: none; padding: 14px 18px; color: var(--dv2-muted); cursor: pointer; }
.dv2-evaluation-lite > summary::-webkit-details-marker { display: none; }
.dv2-evaluation-lite > summary span { display: flex; align-items: baseline; gap: 10px; }
.dv2-evaluation-lite > summary strong { color: var(--dv2-ink); font-size: 12px; }
.dv2-evaluation-lite > summary small,
.dv2-evaluation-lite > summary b { font-size: 10px; font-weight: 700; }
.dv2-evaluation-lite[open] > summary { border-bottom: 1px solid var(--dv2-line); background: #fffaf0; }
.dv2-evaluation-lite[open] > summary b::before { content: "收起 · "; }
.dv2-ledger-body { padding: 18px; }
.dv2-ledger-body > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.dv2-ledger-body h2 { margin: 0; font: 900 22px/1.15 var(--dv2-serif); }
.dv2-ledger-body header p { max-width: 760px; margin: 6px 0 0; color: var(--dv2-muted); font-size: 11px; line-height: 1.55; }
.dv2-ledger-body header button { flex: 0 0 auto; border: 1px solid var(--dv2-line); border-radius: 9px; background: white; color: #75450f; padding: 8px 11px; font-size: 11px; font-weight: 800; cursor: pointer; }
.dv2-ledger-summary { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); margin-top: 16px; overflow: hidden; border: 1px solid var(--dv2-line); border-radius: 11px; }
.dv2-ledger-summary article { padding: 13px; border-right: 1px solid var(--dv2-line); }
.dv2-ledger-summary article:last-child { border-right: 0; }
.dv2-ledger-summary span,
.dv2-ledger-summary small { display: block; color: var(--dv2-muted); font-size: 9px; }
.dv2-ledger-summary strong { display: block; margin: 5px 0; font: 900 21px/1 var(--dv2-serif); }
.dv2-ledger-windows { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.dv2-ledger-windows article { border: 1px solid var(--dv2-line); border-radius: 10px; background: var(--dv2-paper-soft); padding: 12px; }
.dv2-ledger-windows header { display: flex; justify-content: space-between; gap: 8px; }
.dv2-ledger-windows header span { color: var(--dv2-muted); font-size: 9px; }
.dv2-ledger-windows b { display: block; margin: 10px 0 3px; color: var(--dv2-green); font: 900 19px/1 var(--dv2-serif); }
.dv2-ledger-windows small,
.dv2-ledger-windows footer { color: var(--dv2-muted); font-size: 9px; }
.dv2-ledger-windows footer { margin-top: 8px; }
.dv2-ledger-policies { display: grid; gap: 5px; margin-top: 12px; border-top: 1px solid var(--dv2-line); padding-top: 12px; }
.dv2-ledger-policies p { margin: 0; color: var(--dv2-muted); font-size: 10px; line-height: 1.5; }

/* Temporary stage wrappers keep later production sections in the approved order until their V2 replacements land. */
.dv2-legacy-stage { min-width: 0; }

@media (max-width: 900px) {
  .dv2-focus-hero { grid-template-columns: 1fr; }
  .dv2-today-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dv2-market-grid { grid-template-columns: 1fr; }
  .dv2-market-benchmarks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dv2-sector-heatmap { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .dv2-theme-layout { grid-template-columns: 1fr; }
  .dv2-theme-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dv2-theme-story { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dv2-theme-story article:nth-child(2) { border-right: 0; }
  .dv2-theme-story article:nth-child(-n+2) { border-bottom: 1px solid var(--dv2-line); }
  .dv2-method-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dv2-candidate-wrap { overflow-x: auto; }
  .dv2-candidate-table { min-width: 930px; }
  .dv2-ledger-summary,
  .dv2-ledger-windows { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dv2-ledger-summary article:nth-child(2) { border-right: 0; }
  .dv2-ledger-summary article:nth-child(-n+2) { border-bottom: 1px solid var(--dv2-line); }
}

@media (max-width: 620px) {
  .dv2-section-head { align-items: flex-start; padding: 18px 16px 12px; }
  .dv2-section-body { padding: 0 16px 16px; }
  .dv2-question-card { min-height: 0; padding: 21px; }
  .dv2-today-list { grid-template-columns: 1fr; }
  .dv2-factor-list,
  .dv2-market-benchmarks { grid-template-columns: 1fr; }
  .dv2-factor { min-height: 0; border-right: 0; border-bottom: 1px solid var(--dv2-line); }
  .dv2-factor:last-child { border-bottom: 0; }
  .dv2-sector-tools,
  .dv2-sector-foot { align-items: flex-start; flex-direction: column; }
  .dv2-sector-tools > span,
  .dv2-sector-foot span:last-child { max-width: none; text-align: left; }
  .dv2-sector-heatmap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dv2-theme-toolbar { align-items: flex-start; flex-direction: column; }
  .dv2-theme-list,
  .dv2-theme-story,
  .dv2-method-steps { grid-template-columns: 1fr; }
  .dv2-theme-story article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--dv2-line); }
  .dv2-theme-story article:last-child { border-bottom: 0; }
  .dv2-evaluation-lite > summary span,
  .dv2-ledger-body > header { align-items: flex-start; flex-direction: column; }
  .dv2-ledger-summary,
  .dv2-ledger-windows { grid-template-columns: 1fr; }
  .dv2-ledger-summary article { border-right: 0; border-bottom: 1px solid var(--dv2-line); }
  .dv2-ledger-summary article:last-child { border-bottom: 0; }
}

/* Options V2 · radar → symbol workspace → complete chain / assisted filter. */
.options-v2 {
  --ov2-ink: #18211d;
  --ov2-muted: #727a74;
  --ov2-line: #d8cfbd;
  --ov2-paper: #fbf8f1;
  --ov2-paper-strong: #fffdf8;
  --ov2-forest: #10231d;
  --ov2-gold: #b87922;
  --ov2-green: #2f7656;
  --ov2-blue: #3f7182;
  --ov2-serif: Georgia, "Times New Roman", "Songti SC", serif;
  min-height: calc(100vh - 136px);
  margin: -4px;
  border: 1px solid #d7cdbb;
  border-radius: 16px;
  background:
    radial-gradient(circle at 84% 4%, rgba(204, 153, 72, .12), transparent 26%),
    linear-gradient(145deg, #f4efe4 0%, #fbf8f1 48%, #eee6d7 100%);
  color: var(--ov2-ink);
  overflow: hidden;
}
.options-v2 *, .options-v2 *::before, .options-v2 *::after { box-sizing: border-box; }
.options-v2 button, .options-v2 input, .options-v2 select { font: inherit; }
.options-v2 button { cursor: pointer; }
.options-v2 button:focus-visible, .options-v2 input:focus-visible, .options-v2 select:focus-visible { outline: 3px solid rgba(184,121,34,.3); outline-offset: 2px; }
.options-v2-hero { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 42px; align-items: end; padding: 38px 42px 30px; border-bottom: 1px solid var(--ov2-line); }
.options-v2-hero h1 { max-width: 840px; margin: 8px 0 12px; font: 900 clamp(34px,4vw,58px)/.98 var(--ov2-serif); letter-spacing: -.045em; }
.options-v2-hero p { max-width: 780px; margin: 0; color: var(--ov2-muted); font-size: 14px; line-height: 1.75; }
.options-v2-kicker, .options-v2-section-head > div > span, .options-v2-results-head > div > span { color: var(--ov2-gold); font-size: 10px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.options-v2-boundary { display: grid; gap: 6px; border-left: 3px solid var(--ov2-gold); background: rgba(255,253,248,.68); padding: 14px 16px; }
.options-v2-boundary strong { font-size: 12px; }
.options-v2-boundary span { color: var(--ov2-muted); font-size: 11px; line-height: 1.55; }
.options-v2-nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-bottom: 1px solid var(--ov2-line); background: rgba(255,253,248,.72); }
.options-v2-nav button { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; border: 0; border-right: 1px solid var(--ov2-line); border-radius: 0; background: transparent; color: var(--ov2-muted); padding: 17px 28px; text-align: left; }
.options-v2-nav button:last-child { border-right: 0; }
.options-v2-nav button strong { color: var(--ov2-ink); font: 800 17px/1.2 var(--ov2-serif); }
.options-v2-nav button span { font-size: 10px; }
.options-v2-nav button.active { box-shadow: inset 0 -3px var(--ov2-gold); background: #fffdf8; }
.options-v2-section { padding: 32px 42px 46px; }
.options-v2-section-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.options-v2-section-head h2, .options-v2-results-head h2 { margin: 5px 0 8px; font: 900 28px/1.06 var(--ov2-serif); letter-spacing: -.025em; }
.options-v2-section-head p, .options-v2-results-head p { max-width: 780px; margin: 0; color: var(--ov2-muted); font-size: 12px; line-height: 1.65; }
.options-v2 .primary, .options-v2 .secondary { min-height: 38px; border-radius: 9px; padding: 9px 14px; font-size: 11px; font-weight: 850; }
.options-v2 .primary { border: 1px solid var(--ov2-forest); background: var(--ov2-forest); color: #f9f5ea; }
.options-v2 .primary:hover { background: #19362d; }
.options-v2 .secondary { border: 1px solid var(--ov2-line); background: #fffdf8; color: #704919; }
.options-v2 .secondary:hover, .options-v2 .secondary.active { border-color: #c08b3c; background: #f5ead5; }
.options-v2-radar-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.options-v2-radar-grid article { display: flex; min-height: 238px; flex-direction: column; border: 1px solid var(--ov2-line); border-radius: 13px; background: rgba(255,253,248,.84); padding: 20px; box-shadow: 0 12px 28px rgba(67,49,28,.05); }
.options-v2-card-meta { display: flex; align-items: center; gap: 10px; color: var(--ov2-gold); font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.options-v2-radar-grid h3 { margin: 18px 0 7px; font: 850 23px/1.05 var(--ov2-serif); }
.options-v2-radar-grid > article > strong { font-size: 12px; }
.options-v2-radar-grid p { flex: 1; margin: 14px 0 18px; color: var(--ov2-muted); font-size: 11px; line-height: 1.6; }
.options-v2-footnote { margin: 16px 0 0; color: var(--ov2-muted); font-size: 10px; }
.options-v2-empty { display: grid; justify-items: start; gap: 8px; border: 1px dashed #cfc3ae; border-radius: 13px; background: rgba(255,253,248,.65); padding: 32px; }
.options-v2-empty strong { font: 850 22px/1.1 var(--ov2-serif); }
.options-v2-empty span { color: var(--ov2-muted); font-size: 12px; }
.options-v2-saved-list { display: grid; gap: 8px; }
.options-v2-saved-list article { display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--ov2-line); padding: 14px 2px; }
.options-v2-saved-list article > div { display: grid; gap: 4px; }
.options-v2-saved-list span { color: var(--ov2-muted); font-size: 10px; }
.options-v2-saved-list .options-v2-saved-main { display: flex; align-items: center; gap: 14px; }
.options-v2-saved-list .options-v2-saved-main > div:last-child { display: grid; gap: 4px; }
.options-v2-symbolbar { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 24px; border-bottom: 1px solid var(--ov2-line); padding-bottom: 20px; }
.options-v2-security-identity { display: flex; min-width: 0; align-items: center; gap: 14px; }
.options-v2-security-copy { display: grid; min-width: 0; gap: 4px; }
.options-v2-security-name { display: flex; min-width: 0; align-items: center; gap: 10px; }
.options-v2-security-name h2 { margin: 0; font: 900 28px/1 var(--ov2-serif); letter-spacing: -.02em; }
.options-v2-security-name > span { flex: 0 0 auto; border: 1px solid #d6c7ad; border-radius: 999px; background: #f5ecdc; color: #765120; padding: 4px 8px; font-size: 10px; font-weight: 900; letter-spacing: .06em; }
.options-v2-security-copy > p { margin: 0; overflow: hidden; color: var(--ov2-muted); font-size: 10px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.options-v2-security-quote { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px; margin-top: 3px; }
.options-v2-security-quote strong { font: 850 18px/1 var(--ov2-serif); }
.options-v2-security-quote > span { border-radius: 999px; background: #e8efea; color: #356a58; padding: 4px 7px; font-size: 9px; font-weight: 850; }
.options-v2-security-quote > span.status-stale, .options-v2-security-quote > span.status-missing { background: #f4e8df; color: #984c39; }
.options-v2-security-quote > span.status-loading { background: #eee9df; color: #756d60; }
.options-v2-security-quote > span.status-demo { background: #f6ecd4; color: #8a5b1d; }
.options-v2-security-quote small { color: var(--ov2-muted); font-size: 9px; }
.options-v2-security-identity.compact { gap: 9px; margin-top: 10px; }
.options-v2-security-identity.compact .sr-company-logo { width: 32px; height: 32px; flex-basis: 32px; border-radius: 9px; font-size: 13px; }
.options-v2-security-identity.compact > div { display: grid; min-width: 0; gap: 3px; }
.options-v2-security-identity.compact > div > strong { overflow: hidden; font: 850 14px/1.1 var(--ov2-serif); text-overflow: ellipsis; white-space: nowrap; }
.options-v2-security-identity.compact > div > span { overflow: hidden; color: var(--ov2-muted); font-size: 9px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.options-v2-security-identity.compact > div > span b { color: #765120; letter-spacing: .05em; }
.options-v2-anomaly-detail .options-v2-security-identity.compact { margin: 8px 0 12px; }
.options-v2-symbolbar label { display: grid; gap: 5px; color: var(--ov2-muted); font-size: 9px; font-weight: 800; }
.options-v2-symbolbar label > div { display: flex; gap: 6px; }
.options-v2-symbolbar input { width: 150px; border: 1px solid var(--ov2-line); border-radius: 9px; background: #fffdf8; padding: 9px 10px; color: var(--ov2-ink); font-weight: 800; }
.options-v2-task-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 16px; }
.options-v2-task-grid button { display: grid; min-height: 136px; align-content: start; gap: 10px; border: 1px solid var(--ov2-line); border-radius: 13px; background: rgba(255,253,248,.74); color: var(--ov2-ink); padding: 18px; text-align: left; }
.options-v2-task-grid button > span { color: var(--ov2-gold); font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.options-v2-task-grid button > strong { font: 850 22px/1.05 var(--ov2-serif); }
.options-v2-task-grid button > small { color: var(--ov2-muted); font-size: 10px; line-height: 1.55; }
.options-v2-task-grid button.active { border-color: var(--ov2-forest); background: var(--ov2-forest); color: #fffdf8; box-shadow: 0 14px 30px rgba(16,35,29,.14); }
.options-v2-task-grid button.active > small { color: #becbc5; }
.options-v2-task-panel { border-top: 1px solid var(--ov2-line); padding-top: 24px; }
.options-v2-strategy-map { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-bottom: 18px; }
.options-v2-strategy-map article { display: grid; gap: 6px; border-left: 3px solid var(--ov2-gold); background: rgba(255,253,248,.72); padding: 14px 16px; }
.options-v2-strategy-map strong { font: 800 17px/1.2 var(--ov2-serif); }
.options-v2-strategy-map span { color: var(--ov2-muted); font-size: 11px; }
.options-v2-mode-switch { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-bottom: 18px; }
.options-v2-mode-switch button { display: grid; gap: 6px; border: 1px solid var(--ov2-line); border-radius: 11px; background: rgba(255,253,248,.7); color: var(--ov2-ink); padding: 15px 18px; text-align: left; }
.options-v2-mode-switch button strong { font: 800 17px/1.2 var(--ov2-serif); }
.options-v2-mode-switch button span { color: var(--ov2-muted); font-size: 10px; }
.options-v2-mode-switch button.active { border-color: #c18b3b; box-shadow: inset 3px 0 var(--ov2-gold); background: #fffaf0; }
.options-v2-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 12px; }
.options-v2-toolbar > div:first-child { display: grid; gap: 4px; }
.options-v2-toolbar span { color: var(--ov2-muted); font-size: 10px; }
.options-v2-toolbar > div:last-child { display: flex; gap: 7px; }
.options-v2 select, .options-v2-filter-form input { min-height: 39px; border: 1px solid var(--ov2-line); border-radius: 8px; background: #fffdf8; color: var(--ov2-ink); padding: 8px 10px; }
.options-v2-table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--ov2-line); border-radius: 11px; background: rgba(255,253,248,.8); }
.markdown-view .options-v2-table-wrap table { display: table; min-width: 820px; width: 100%; margin: 0; border-collapse: collapse; background: transparent; }
.markdown-view .options-v2-table-wrap thead { display: table-header-group; }
.markdown-view .options-v2-table-wrap tbody { display: table-row-group; }
.markdown-view .options-v2-table-wrap tr { display: table-row; }
.markdown-view .options-v2-table-wrap th, .markdown-view .options-v2-table-wrap td { display: table-cell; border: 0; border-bottom: 1px solid #e4dccd; background: transparent; padding: 11px 12px; color: var(--ov2-ink); font-size: 10px; text-align: left; vertical-align: middle; }
.markdown-view .options-v2-table-wrap th { color: var(--ov2-muted); font-size: 9px; text-transform: uppercase; }
.markdown-view .options-v2-table-wrap tr:last-child td { border-bottom: 0; }
.options-v2-table-wrap td button { display: grid; gap: 3px; border: 0; background: transparent; color: var(--ov2-ink); padding: 0; text-align: left; }
.options-v2-table-wrap td button span { color: var(--ov2-muted); font-size: 9px; }
.options-v2-filter-layout { display: grid; grid-template-columns: minmax(290px,.58fr) minmax(0,1.42fr); gap: 18px; align-items: start; }
.options-v2-filter-form { position: sticky; top: 90px; display: grid; gap: 14px; border: 1px solid var(--ov2-line); border-radius: 13px; background: rgba(255,253,248,.9); padding: 20px; }
.options-v2-filter-form h2 { margin: -5px 0 0; font: 850 22px/1.05 var(--ov2-serif); }
.options-v2-filter-form > p, .options-v2-filter-form > small { margin: 0; color: var(--ov2-muted); font-size: 10px; line-height: 1.55; }
.options-v2-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.options-v2-form-grid label { display: grid; gap: 5px; color: var(--ov2-muted); font-size: 9px; font-weight: 800; }
.options-v2-form-grid label.full { grid-column: 1/-1; }
.options-v2-filter-form fieldset { min-width: 0; margin: 0; border: 0; padding: 0; }
.options-v2-filter-form legend { margin-bottom: 7px; color: var(--ov2-muted); font-size: 9px; font-weight: 800; }
.options-v2-intents { display: grid; gap: 6px; }
.options-v2-intents button { display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid var(--ov2-line); border-radius: 8px; background: #fffdf8; color: var(--ov2-ink); padding: 9px 10px; text-align: left; }
.options-v2-intents button strong { font-size: 11px; }
.options-v2-intents button span { color: var(--ov2-muted); font-size: 9px; }
.options-v2-intents button.active { border-color: #c18b3b; background: #f5ead5; }
.options-v2-form-actions { display: grid; grid-template-columns: .5fr 1fr; gap: 7px; }
.options-v2-error { border-left: 3px solid #a44855; background: #f8e7e8; color: #7f3540; padding: 10px 12px; font-size: 10px; }
.options-v2-results { min-width: 0; }
.options-v2-results-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.options-v2-results-head h2 { font-size: 25px; }
.options-v2-data-status { border: 1px solid #d4c6ad; border-radius: 999px; background: #f7f0e2; color: var(--ov2-muted); padding: 7px 10px; font-size: 9px; }
.options-v2-candidates { display: grid; gap: 10px; }
.options-v2-candidate { --tier:#b87922; border: 1px solid var(--ov2-line); border-left: 4px solid var(--tier); border-radius: 12px; background: rgba(255,253,248,.9); padding: 17px; box-shadow: 0 10px 24px rgba(67,49,28,.045); }
.options-v2-candidate.tier-conservative { --tier:var(--ov2-green); }
.options-v2-candidate.tier-balanced { --tier:var(--ov2-blue); }
.options-v2-candidate-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.options-v2-candidate-head > div > span { display: inline-block; border-radius: 999px; background: color-mix(in srgb, var(--tier) 13%, white); color: var(--tier); padding: 5px 8px; font-size: 9px; font-weight: 900; }
.options-v2-candidate-head h3 { margin: 9px 0 4px; font: 850 20px/1.05 var(--ov2-serif); }
.options-v2-candidate-head small { color: var(--ov2-muted); font-size: 9px; }
.options-v2-candidate-head > strong { font: 900 19px/1 var(--ov2-serif); }
.options-v2-reasons { display: flex; flex-wrap: wrap; gap: 5px; margin: 13px 0; }
.options-v2-reasons span { border-radius: 999px; background: #f3eee4; color: var(--ov2-muted); padding: 5px 8px; font-size: 8px; }
.options-v2-metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-block: 1px solid #e4dccd; }
.options-v2-metrics > div { padding: 10px 8px; border-right: 1px solid #e4dccd; }
.options-v2-metrics > div:last-child { border-right: 0; }
.options-v2-metrics small { display: block; color: var(--ov2-muted); font-size: 8px; }
.options-v2-metrics strong { display: block; margin-top: 4px; font-size: 11px; }
.options-v2-candidate-actions, .options-v2-detail-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: 13px; }
.options-v2-compare { display: grid; gap: 11px; margin-top: 12px; border: 1px solid #c8b996; border-radius: 12px; background: #f4ead4; padding: 14px; }
.options-v2-compare > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.options-v2-compare span, .options-v2-compare small { color: var(--ov2-muted); font-size: 9px; }
.options-v2-detail { margin-top: 20px; border-top: 3px solid var(--ov2-forest); background: rgba(255,253,248,.86); padding: 21px; }
.options-v2-detail-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--ov2-line); }
.options-v2-detail-grid > div { padding: 13px; border-right: 1px solid var(--ov2-line); border-bottom: 1px solid var(--ov2-line); }
.options-v2-detail-grid > div:nth-child(4n) { border-right: 0; }
.options-v2-detail-grid > div:nth-last-child(-n+4) { border-bottom: 0; }
.options-v2-detail-grid small { display: block; color: var(--ov2-muted); font-size: 9px; }
.options-v2-detail-grid strong { display: block; margin-top: 5px; font: 800 17px/1 var(--ov2-serif); }
.options-v2-method { margin: 12px 0 0; border-left: 3px solid var(--ov2-blue); background: #edf4f4; color: var(--ov2-muted); padding: 10px 12px; font-size: 10px; line-height: 1.55; }

@media (max-width: 1100px) {
  .options-v2-hero { grid-template-columns: 1fr; gap: 18px; }
  .options-v2-radar-grid { grid-template-columns: 1fr 1fr; }
  .options-v2-filter-layout { grid-template-columns: 310px minmax(0,1fr); }
  .options-v2-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .options-v2-metrics > div { border-bottom: 1px solid #e4dccd; }
}
@media (max-width: 820px) {
  .options-v2-hero, .options-v2-section { padding-left: 22px; padding-right: 22px; }
  .options-v2-nav button { display: grid; padding: 14px; }
  .options-v2-task-grid { grid-template-columns: 1fr; }
  .options-v2-task-grid button { min-height: 0; }
  .options-v2-filter-layout { grid-template-columns: 1fr; }
  .options-v2-filter-form { position: static; }
  .options-v2-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .options-v2-detail-grid > div:nth-child(2n) { border-right: 0; }
  .options-v2-detail-grid > div:nth-last-child(-n+4) { border-bottom: 1px solid var(--ov2-line); }
  .options-v2-detail-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
}
@media (max-width: 620px) {
  .options-v2 { margin: -12px; border-inline: 0; border-radius: 0; }
  .options-v2-hero { padding-top: 26px; }
  .options-v2-hero h1 { font-size: 38px; }
  .options-v2-nav button span { display: none; }
  .options-v2-nav button strong { font-size: 14px; }
  .options-v2-section-head, .options-v2-symbolbar, .options-v2-toolbar, .options-v2-results-head { align-items: flex-start; flex-direction: column; }
  .options-v2-security-identity { width: 100%; }
  .options-v2-security-name h2 { font-size: 26px; }
  .options-v2-security-copy { width: min(100%, 310px); }
  .options-v2-security-quote { align-items: flex-start; }
  .options-v2-symbolbar label, .options-v2-symbolbar label > div, .options-v2-symbolbar input { width: 100%; }
  .options-v2-saved-list article { align-items: stretch; flex-direction: column; }
  .options-v2-radar-grid, .options-v2-strategy-map, .options-v2-mode-switch, .options-v2-form-grid { grid-template-columns: 1fr; }
  .options-v2-form-grid label.full { grid-column: auto; }
  .options-v2-candidate-head { display: grid; }
  .options-v2-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .options-v2-candidate-actions, .options-v2-detail-actions { align-items: stretch; flex-direction: column; }
  .options-v2-detail-grid { grid-template-columns: 1fr; }
  .options-v2-detail-grid > div { border-right: 0; border-bottom: 1px solid var(--ov2-line); }
  .options-v2-detail-grid > div:nth-last-child(-n+2) { border-bottom: 1px solid var(--ov2-line); }
  .options-v2-detail-grid > div:last-child { border-bottom: 0; }
}

/* Options V2 completion layer: decision context, market profile, strategy catalog and traceable workpaper. */
.options-v2-source { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:-8px 0 22px; border-left:4px solid var(--ov2-blue); background:#edf4f3; padding:14px 16px; }
.options-v2-source > div { display:grid; gap:4px; }
.options-v2-source span,.options-v2-source small { color:var(--ov2-muted); font-size:10px; line-height:1.45; }
.options-v2-source strong { font-size:12px; }
.options-v2-source button { border:0; background:transparent; color:#315f69; font-size:10px; font-weight:850; text-decoration:underline; text-underline-offset:3px; }
.options-v2-restore-notice { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:-8px 0 18px; border:1px solid #d8bd83; border-radius:10px; background:#f8edcf; padding:11px 14px; }
.options-v2-restore-notice strong { white-space:nowrap; color:#754d16; font-size:10px; }
.options-v2-restore-notice span { color:#7b6a4f; font-size:9px; line-height:1.5; }
.options-v2-profile { display:grid; gap:14px; margin-bottom:18px; border:1px solid #cfc2a9; border-radius:14px; background:rgba(255,253,248,.84); padding:18px; box-shadow:0 10px 24px rgba(67,49,28,.045); }
.options-v2-profile.compact { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.options-v2-profile.compact > div { display:grid; gap:4px; }
.options-v2-profile.compact span { color:var(--ov2-muted); font-size:10px; }
.options-v2-profile-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.options-v2-profile-head > div { display:grid; gap:4px; }
.options-v2-profile-head span { color:var(--ov2-gold); font-size:9px; font-weight:900; letter-spacing:.14em; }
.options-v2-profile-head strong { font:850 20px/1.1 var(--ov2-serif); }
.options-v2-profile-head small,.options-v2-profile > p { margin:0; color:var(--ov2-muted); font-size:9px; line-height:1.55; }
.options-v2-profile-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--ov2-line); }
.options-v2-profile-metrics > div { padding:12px; border-right:1px solid var(--ov2-line); }
.options-v2-profile-metrics > div:last-child { border-right:0; }
.options-v2-profile-metrics small { display:block; color:var(--ov2-muted); font-size:8px; }
.options-v2-profile-metrics strong { display:block; margin-top:5px; font:800 17px/1 var(--ov2-serif); }
.options-v2-term-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.options-v2-term-strip article { display:grid; gap:5px; min-width:0; border-radius:9px; background:#f2ede3; padding:11px; }
.options-v2-term-strip span,.options-v2-term-strip small { overflow:hidden; color:var(--ov2-muted); font-size:8px; line-height:1.4; text-overflow:ellipsis; }
.options-v2-term-strip strong { font-size:11px; }
.options-v2-loading { display:grid; justify-items:start; gap:7px; min-height:96px; align-content:center; }
.options-v2-loading > span { width:28px; height:3px; border-radius:3px; background:var(--ov2-gold); animation:ov2-loading 1.1s ease-in-out infinite alternate; }
.options-v2-loading small { color:var(--ov2-muted); font-size:9px; }
@keyframes ov2-loading { to { width:82px; opacity:.42; } }
.options-v2-evidence { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:10px; }
.options-v2-evidence span { border-radius:999px; background:#edf3ef; color:#35604f; padding:4px 7px; font-size:8px; }
.options-v2-radar-grid article.selected { border-color:var(--ov2-gold); box-shadow:0 0 0 2px rgba(184,121,34,.12); }
.options-v2-anomaly-detail { margin-top:18px; border-top:3px solid var(--ov2-gold); background:rgba(255,253,248,.88); padding:20px; }
.options-v2-anomaly-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.options-v2-anomaly-grid > div { display:grid; gap:7px; border:1px solid var(--ov2-line); border-radius:10px; padding:14px; }
.options-v2-anomaly-grid span,.options-v2-anomaly-detail > p { color:var(--ov2-muted); font-size:10px; line-height:1.55; }
.options-v2-failures { margin-top:14px; border-left:3px solid #9b5560; background:#f8ebec; padding:10px 12px; }
.options-v2-failures summary { cursor:pointer; font-size:10px; font-weight:800; }
.options-v2-failures p { margin:6px 0 0; color:#74414a; font-size:9px; }
.options-v2-decision-form { display:grid; gap:15px; margin-bottom:18px; border:1px solid var(--ov2-line); border-radius:14px; background:rgba(255,253,248,.9); padding:20px; }
.options-v2-decision-form.confirmed { border-color:#a7bdac; box-shadow:inset 4px 0 #3c7459; }
.options-v2-decision-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.options-v2-decision-head > div { display:grid; gap:3px; }
.options-v2-decision-head span { color:var(--ov2-gold); font-size:9px; font-weight:900; letter-spacing:.14em; }
.options-v2-decision-head strong { font:850 20px/1.1 var(--ov2-serif); }
.options-v2-decision-head small { color:var(--ov2-muted); font-size:9px; }
.options-v2-decision-head em { border-radius:999px; background:#e2eee7; color:#2f684d; padding:6px 9px; font-size:9px; font-style:normal; font-weight:850; }
.options-v2-decision-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.options-v2-decision-grid label { display:grid; gap:5px; color:var(--ov2-muted); font-size:9px; font-weight:800; }
.options-v2-decision-grid input,.options-v2-decision-grid select { width:100%; min-width:0; min-height:40px; border:1px solid var(--ov2-line); border-radius:8px; background:#fffdf8; color:var(--ov2-ink); padding:8px 10px; }
.options-v2-constraint-toggles { display:flex; flex-wrap:wrap; gap:8px; }
.options-v2-constraint-toggles label { display:flex; align-items:center; gap:7px; border:1px solid #ded4c1; border-radius:999px; background:#f5f0e6; padding:7px 10px; color:var(--ov2-muted); font-size:9px; }
.options-v2-decision-pending { margin-bottom:10px; padding:22px; }
.options-v2-strategy-catalog { display:grid; grid-template-columns:210px minmax(0,1fr); gap:12px; align-items:start; }
.options-v2-category-list { display:grid; gap:6px; position:sticky; top:84px; }
.options-v2-category-list button { display:grid; gap:3px; border:1px solid var(--ov2-line); border-radius:9px; background:rgba(255,253,248,.7); color:var(--ov2-ink); padding:11px 12px; text-align:left; }
.options-v2-category-list strong { font-size:11px; }
.options-v2-category-list span { color:var(--ov2-muted); font-size:8px; }
.options-v2-category-list button.active { border-color:var(--ov2-forest); background:var(--ov2-forest); color:#fffdf8; }
.options-v2-category-list button.active span { color:#b8c7c1; }
.options-v2-strategy-guidance,.options-v2-strategy-grid,.options-v2-strategy-compare { grid-column:2; }
.options-v2-strategy-guidance { display:flex; align-items:center; justify-content:space-between; gap:16px; border-left:3px solid var(--ov2-gold); background:#f4ead6; padding:12px 14px; }
.options-v2-strategy-guidance > div { display:grid; gap:3px; }
.options-v2-strategy-guidance strong { font-size:11px; }
.options-v2-strategy-guidance span { color:var(--ov2-muted); font-size:9px; }
.options-v2-strategy-guidance em { white-space:nowrap; color:#815519; font-size:8px; font-style:normal; font-weight:850; }
.options-v2-strategy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.options-v2-strategy-grid article { display:flex; min-width:0; flex-direction:column; border:1px solid var(--ov2-line); border-radius:12px; background:rgba(255,253,248,.86); padding:17px; }
.options-v2-strategy-grid article.selected { border-color:var(--ov2-gold); box-shadow:inset 0 3px var(--ov2-gold); }
.options-v2-strategy-grid article > div:first-child { display:flex; justify-content:space-between; gap:8px; color:var(--ov2-gold); font-size:8px; font-weight:850; }
.options-v2-strategy-grid h3 { margin:18px 0 3px; font:850 21px/1.05 var(--ov2-serif); }
.options-v2-strategy-grid article > strong { font-size:11px; }
.options-v2-strategy-grid article > p { min-height:32px; margin:10px 0; color:var(--ov2-muted); font-size:9px; line-height:1.55; }
.options-v2-strategy-grid dl { flex:1; margin:0; border-block:1px solid #e4dccd; }
.options-v2-strategy-grid dl > div { display:grid; grid-template-columns:54px 1fr; gap:8px; padding:7px 0; }
.options-v2-strategy-grid dt { color:var(--ov2-muted); font-size:8px; }
.options-v2-strategy-grid dd { margin:0; font-size:9px; line-height:1.4; }
.options-v2-strategy-grid article > div:last-child { display:flex; justify-content:flex-end; gap:7px; margin-top:12px; }
.options-v2-strategy-compare { display:grid; gap:10px; border:1px solid #c7b78f; border-radius:12px; background:#f3e9d4; padding:14px; }
.options-v2-strategy-compare > div:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.options-v2-strategy-compare span,.options-v2-strategy-compare small { color:var(--ov2-muted); font-size:9px; }
.optc-panel { grid-column:1/-1; margin-top:22px; border:1px solid #c9b98f; border-radius:14px; background:rgba(255,253,248,.92); padding:22px; box-shadow:0 18px 40px rgba(67,49,28,.07); }
.optc-head h3 { font:850 24px/1.05 var(--ov2-serif); }
.optc-sub { margin:14px 0 8px; color:var(--ov2-gold); font-size:9px; line-height:1.5; }
.optc-trace { display:flex; justify-content:space-between; gap:12px; border-block:1px solid var(--ov2-line); padding:8px 0; color:var(--ov2-muted); font-size:8px; }
.optc-workflow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:12px 0; padding:0; list-style:none; counter-reset:wheel; }
.optc-workflow li { counter-increment:wheel; border-left:3px solid var(--ov2-gold); background:#f5ecda; padding:10px; font-size:9px; line-height:1.5; }
.optc-workflow li::before { content:counter(wheel); display:block; margin-bottom:5px; color:var(--ov2-gold); font-weight:900; }
.optc-builder { grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr); align-items:start; }
.optc-units { display:grid; gap:5px; margin-bottom:12px; color:var(--ov2-muted); font-size:9px; font-weight:800; }
.optc-units input { max-width:180px; }
.optc-units small { font-weight:500; line-height:1.45; }
.optc-leg-head,.optc-legs .optc-leg { grid-template-columns:110px minmax(220px,1fr) 76px 76px 72px; }
.optc-leg-head { color:var(--ov2-muted); font-size:8px; }
.optc-legs .optc-leg { padding:8px 0; border-bottom:1px solid #e8dfcf; }
.optc-premium { display:grid; gap:2px; font-size:11px; font-weight:800; }
.optc-premium small { color:var(--ov2-muted); font-size:7px; font-weight:600; }
.optc-contract-open { min-height:34px !important; padding:6px 8px !important; }
.optc-payoff { background:#f9f5ed; }
.optc-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
.optc-stats > div { border-bottom:1px solid #e1d6c2; padding-bottom:8px; }
.optc-scenarios { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:10px 0; }
.optc-scenarios > div { display:grid; gap:3px; border-radius:8px; background:#fffdf8; padding:8px; }
.optc-scenarios small { color:var(--ov2-muted); font-size:7px; }
.optc-scenarios strong { font-size:10px; }
.optc-scenarios .good { color:#337050; }
.optc-scenarios .bad { color:#904452; }
.optc-payoff canvas { display:block; width:100%; height:150px; }
.optc-save-row button:disabled { cursor:not-allowed; opacity:.45; }

@media (max-width:1100px) {
  .options-v2-term-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .options-v2-strategy-catalog { grid-template-columns:180px minmax(0,1fr); }
  .options-v2-strategy-grid { grid-template-columns:1fr; }
  .optc-builder { grid-template-columns:1fr; }
}
@media (max-width:820px) {
  .options-v2-profile-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .options-v2-profile-metrics > div:nth-child(2) { border-right:0; }
  .options-v2-profile-metrics > div:nth-child(-n+2) { border-bottom:1px solid var(--ov2-line); }
  .options-v2-decision-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .options-v2-strategy-catalog { grid-template-columns:1fr; }
  .options-v2-category-list { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .options-v2-strategy-guidance,.options-v2-strategy-grid,.options-v2-strategy-compare { grid-column:1; }
  .optc-trace { flex-direction:column; }
  .optc-workflow { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .options-v2-source,.options-v2-restore-notice,.options-v2-profile.compact,.options-v2-profile-head,.options-v2-decision-head,.options-v2-strategy-guidance { align-items:flex-start; flex-direction:column; }
  .options-v2-profile-metrics,.options-v2-term-strip,.options-v2-anomaly-grid,.options-v2-decision-grid,.options-v2-category-list { grid-template-columns:1fr; }
  .options-v2-profile-metrics > div { border-right:0; border-bottom:1px solid var(--ov2-line); }
  .options-v2-profile-metrics > div:last-child { border-bottom:0; }
  .options-v2-constraint-toggles { display:grid; }
  .options-v2-strategy-grid article > div:last-child { flex-direction:column; }
  .optc-panel { padding:16px 12px; }
  .optc-legs { overflow-x:auto; }
  .optc-legs .optc-leg,.optc-leg-head { min-width:660px; }
  .optc-stats,.optc-scenarios { grid-template-columns:1fr; }
}

/* Options V2 100-point interaction gate: restore the continuous prototype workbench. */
.options-v2 .primary,
.options-v2 .secondary {
  min-height: 44px;
  padding: 10px 15px;
  font-size: 12px;
  transition: background 180ms cubic-bezier(.22,1,.36,1), border-color 180ms cubic-bezier(.22,1,.36,1), color 180ms cubic-bezier(.22,1,.36,1), transform 180ms cubic-bezier(.22,1,.36,1);
}
.options-v2 .primary:active,
.options-v2 .secondary:active { transform: translateY(1px); }
.options-v2 button:disabled { cursor:not-allowed; opacity:.5; transform:none; }

.options-v2-journey {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin:0 0 20px;
  padding:0;
  overflow:hidden;
  border-block:1px solid var(--ov2-line);
  list-style:none;
}
.options-v2-journey li {
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-height:76px;
  padding:12px 14px;
  border-right:1px solid var(--ov2-line);
  color:var(--ov2-muted);
}
.options-v2-journey li:last-child { border-right:0; }
.options-v2-journey li > span {
  display:grid;
  width:32px;
  height:32px;
  place-items:center;
  border:1px solid #c7bdab;
  border-radius:50%;
  font-size:10px;
  font-weight:900;
}
.options-v2-journey li div { display:grid; gap:3px; }
.options-v2-journey strong { color:var(--ov2-ink); font-size:12px; }
.options-v2-journey small { font-size:10px; line-height:1.35; }
.options-v2-journey li.done > span { border-color:#3d735b; background:#3d735b; color:white; }
.options-v2-journey li.active { background:#f4ead6; }
.options-v2-journey li.active > span { border-color:var(--ov2-gold); background:var(--ov2-gold); color:white; }
.options-v2-journey li.pending { opacity:.68; }

.options-v2-strategy-catalog {
  grid-template-columns:230px minmax(0,1fr);
  gap:14px 18px;
}
.options-v2-strategy-catalog > .options-v2-decision-form,
.options-v2-strategy-catalog > .options-v2-decision-summary,
.options-v2-strategy-guidance,
.options-v2-strategy-grid,
.options-v2-catalog-lock,
.options-v2-compare-bar,
.options-v2-strategy-compare { grid-column:2; }
.options-v2-category-list {
  top:88px;
  align-content:start;
  gap:7px;
  border-radius:12px;
  background:var(--ov2-forest);
  padding:14px;
}
.options-v2-category-list button {
  grid-template-columns:32px minmax(0,1fr);
  min-height:58px;
  align-items:center;
  gap:2px 10px;
  border-color:transparent;
  background:rgba(255,255,255,.035);
  color:#edf3ef;
  padding:9px 10px;
}
.options-v2-category-list button:hover { border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.07); }
.options-v2-category-list button.active { border-color:rgba(223,173,85,.42); background:rgba(223,173,85,.16); color:#fff8e9; }
.options-v2-category-list .options-v2-category-index {
  grid-row:1/3;
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  color:#afbbb5;
  font-size:9px;
  font-weight:900;
}
.options-v2-category-list button.active .options-v2-category-index { border-color:#dfad55; background:#dfad55; color:#15211d; }
.options-v2-category-list strong { font-size:13px; }
.options-v2-category-list small { color:#aeb9b3; font-size:10px; line-height:1.35; }

.options-v2-decision-form {
  margin:0;
  border-radius:12px;
  padding:20px;
  box-shadow:none;
}
.options-v2-decision-form.confirmed { border-color:#b9a678; box-shadow:none; }
.options-v2-decision-grid label,
.options-v2-constraint-toggles label { font-size:11px; }
.options-v2-decision-grid input,
.options-v2-decision-grid select { min-height:44px; font-size:13px; }
.options-v2-decision-head strong { font-size:22px; }
.options-v2-decision-head small { font-size:11px; }
.options-v2-decision-head em { font-size:10px; }
.options-v2-decision-summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border:1px solid #aac0b1;
  border-radius:12px;
  background:#edf4ef;
  padding:15px 17px;
}
.options-v2-decision-summary > div { display:grid; gap:4px; }
.options-v2-decision-summary > div:last-child { justify-items:end; }
.options-v2-decision-summary span { color:#35634e; font-size:9px; font-weight:900; letter-spacing:.12em; }
.options-v2-decision-summary strong { font-size:15px; }
.options-v2-decision-summary small { color:#53675d; font-size:11px; line-height:1.45; }
.options-v2-decision-summary em { color:#35634e; font-size:10px; font-style:normal; font-weight:850; }

.options-v2-strategy-guidance {
  border:1px solid #ddc89e;
  border-radius:10px;
  background:#f4ead6;
  padding:14px 16px;
}
.options-v2-strategy-guidance strong { font-size:13px; }
.options-v2-strategy-guidance span { font-size:11px; line-height:1.5; }
.options-v2-strategy-guidance em { font-size:10px; }
.options-v2-strategy-grid { gap:12px; }
.options-v2-strategy-grid article {
  min-height:300px;
  padding:19px;
  transition:border-color 180ms cubic-bezier(.22,1,.36,1), background 180ms cubic-bezier(.22,1,.36,1), transform 180ms cubic-bezier(.22,1,.36,1);
}
.options-v2-strategy-grid article:hover { border-color:#bea16f; background:#fffdf8; transform:translateY(-1px); }
.options-v2-strategy-grid article > div:first-child { font-size:10px; }
.options-v2-strategy-grid h3 { font-size:23px; }
.options-v2-strategy-grid article > strong { font-size:13px; }
.options-v2-strategy-grid article > p { min-height:0; font-size:11px; line-height:1.6; }
.options-v2-strategy-grid dt { font-size:10px; }
.options-v2-strategy-grid dd { font-size:11px; line-height:1.5; }
.options-v2-catalog-lock {
  margin:0;
  border:1px solid #d8c7a5;
  border-radius:9px;
  background:#f8f1e2;
  color:#6d5c43;
  padding:11px 13px;
  font-size:11px;
  line-height:1.55;
}

.options-v2-compare-bar {
  position:sticky;
  bottom:12px;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:1px solid #30453d;
  border-radius:12px;
  background:#172720;
  color:#edf3ef;
  padding:12px 14px;
  box-shadow:0 8px 8px rgba(21,34,28,.16);
}
.options-v2-compare-bar > div { display:grid; gap:7px; }
.options-v2-compare-bar span { font-size:11px; }
.options-v2-compare-bar > div > div { display:flex; flex-wrap:wrap; gap:6px; }
.options-v2-compare-bar em { border-radius:999px; background:#dfad55; color:#17211d; padding:5px 8px; font-size:9px; font-style:normal; font-weight:900; }
.options-v2-compare-bar .primary { border-color:#dfad55; background:#dfad55; color:#17211d; }
.options-v2-strategy-compare { gap:12px; background:#f6edda; padding:18px; }
.options-v2-strategy-compare > div:first-child { align-items:flex-start; }
.options-v2-strategy-compare > div:first-child strong { font-size:15px; }
.options-v2-strategy-compare > div:first-child span,
.options-v2-strategy-compare > p { margin:0; color:var(--ov2-muted); font-size:11px; line-height:1.55; }

.options-v2-boundary,
.options-v2-source,
.options-v2-strategy-map article,
.options-v2-error,
.options-v2-candidate,
.options-v2-method,
.options-v2-strategy-guidance,
.optc-workflow li,
.options-v2-failures { border-left-width:1px; }
.options-v2-error { border:1px solid #d9aeb4; border-radius:8px; font-size:11px; }

.optc-panel { box-shadow:0 8px 8px rgba(67,49,28,.07); }
.optc-sub,
.optc-trace,
.optc-workflow li,
.optc-units,
.optc-leg-head { font-size:10px; }
.optc-units input { min-height:44px; font-size:13px; }
.optc-premium { font-size:12px; }
.optc-premium small,
.optc-scenarios small { font-size:9px; }
.optc-scenarios strong { font-size:12px; }
.optc-contract-open { min-height:44px !important; }

@media (max-width:820px) {
  .options-v2-journey { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .options-v2-journey li:nth-child(2) { border-right:0; }
  .options-v2-journey li:nth-child(-n+2) { border-bottom:1px solid var(--ov2-line); }
  .options-v2-strategy-catalog { grid-template-columns:1fr; }
  .options-v2-strategy-catalog > .options-v2-decision-form,
  .options-v2-strategy-catalog > .options-v2-decision-summary,
  .options-v2-strategy-guidance,
  .options-v2-strategy-grid,
  .options-v2-catalog-lock,
  .options-v2-compare-bar,
  .options-v2-strategy-compare { grid-column:1; }
  .options-v2-category-list { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:620px) {
  .options-v2-journey { grid-template-columns:repeat(4,minmax(150px,1fr)); overflow-x:auto; }
  .options-v2-journey li { border-right:1px solid var(--ov2-line); border-bottom:0 !important; }
  .options-v2-category-list { display:flex; overflow-x:auto; }
  .options-v2-category-list button { flex:0 0 180px; }
  .options-v2-decision-summary,
  .options-v2-compare-bar { align-items:stretch; flex-direction:column; }
  .options-v2-decision-summary > div:last-child { justify-items:stretch; }
  .options-v2-decision-grid { grid-template-columns:1fr; }
  .options-v2-decision-grid label,
  .options-v2-constraint-toggles label,
  .options-v2-decision-head small,
  .options-v2-decision-summary small,
  .options-v2-strategy-guidance span,
  .options-v2-strategy-grid article > p,
  .options-v2-strategy-grid dd,
  .options-v2-catalog-lock,
  .options-v2-strategy-compare > p { font-size:14px; }
  .options-v2-category-list strong,
  .options-v2-strategy-grid article > strong,
  .options-v2-strategy-guidance strong { font-size:15px; }
  .options-v2 .primary,
  .options-v2 .secondary { width:100%; min-height:46px; font-size:14px; }
  .options-v2-strategy-grid article > div:last-child { align-items:stretch; }
  .options-v2-strategy-grid article { min-height:0; }
}

@media (prefers-reduced-motion:reduce) {
  .options-v2 *,
  .options-v2 *::before,
  .options-v2 *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

/* Options V2 minimal decision input: ask only what candidate generation needs. */
.options-v2-decision-form {
  gap: 18px;
  padding: 24px 26px 22px;
}
.options-v2-decision-head span {
  color: #8a5b1d;
  font-size: 11px;
  letter-spacing: .08em;
}
.options-v2-decision-head strong {
  font-family: var(--font-sans);
  font-size: 20px;
  letter-spacing: -.015em;
}
.options-v2-decision-core {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
  max-width: 820px;
}
.options-v2-decision-core label {
  display: grid;
  gap: 7px;
  color: #5d665f;
  font-size: 12px;
  font-weight: 800;
}
.options-v2-decision-core label > span {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.options-v2-decision-core label > span small {
  color: #7b837e;
  font-size: 10px;
  font-weight: 650;
}
.options-v2-decision-core input,
.options-v2-decision-core select {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  border: 1px solid #cfc4b1;
  border-radius: 10px;
  background: #fffdf8;
  color: var(--ov2-ink);
  padding: 10px 13px;
  font-size: 15px;
  font-weight: 750;
}
.options-v2-decision-core label > small {
  color: #727a74;
  font-size: 10px;
  font-weight: 550;
  line-height: 1.45;
}
.options-v2-decision-advanced {
  border-top: 1px solid #e1d9cb;
  border-bottom: 1px solid #e1d9cb;
}
.options-v2-decision-advanced summary {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  color: var(--ov2-ink);
  list-style: none;
}
.options-v2-decision-advanced summary::-webkit-details-marker { display: none; }
.options-v2-decision-advanced summary > span {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.options-v2-decision-advanced summary strong { font-size: 12px; }
.options-v2-decision-advanced summary small { color: var(--ov2-muted); font-size: 11px; }
.options-v2-decision-advanced summary em {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #7a5a2b;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}
.options-v2-decision-advanced summary em::after {
  content: "⌄";
  font-size: 15px;
  line-height: 1;
  transition: transform 180ms cubic-bezier(.22,1,.36,1);
}
.options-v2-decision-advanced[open] summary em::after { transform: rotate(180deg); }
.options-v2-decision-advanced summary:focus-visible {
  border-radius: 8px;
  outline: 3px solid rgba(184,121,34,.3);
  outline-offset: 3px;
}
.options-v2-decision-advanced-body {
  display: grid;
  gap: 16px;
  padding: 4px 0 18px;
}
.options-v2-decision-advanced .options-v2-decision-grid {
  grid-template-columns: repeat(4,minmax(0,1fr));
}
.options-v2-constraint-toggles {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 8px;
  min-width: 0;
  margin: 0;
  border: 0;
  padding: 0;
}
.options-v2-constraint-toggles legend {
  grid-column: 1/-1;
  margin-bottom: 2px;
  color: #5d665f;
  font-size: 11px;
  font-weight: 800;
}
.options-v2-constraint-toggles label {
  min-height: 44px;
  border: 1px solid #ded4c1;
  border-radius: 9px;
  background: #faf7f0;
  padding: 9px 11px;
  color: #4f5a53;
  font-size: 11px;
  line-height: 1.4;
}
.options-v2-constraint-toggles input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--ov2-forest);
}
.options-v2-form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}
.options-v2-reset-button {
  min-height: 44px;
  border: 0;
  background: transparent;
  color: #76552b;
  padding: 9px 10px;
  font-size: 12px;
  font-weight: 750;
}
.options-v2-reset-button:hover { color: var(--ov2-ink); text-decoration: underline; text-underline-offset: 4px; }
.options-v2-decision-submit {
  min-width: 208px;
  border-radius: 10px !important;
  padding-inline: 22px !important;
  font-size: 13px !important;
}
.options-v2-decision-submit::after {
  content: "→";
  margin-left: 10px;
  font-size: 16px;
  line-height: 1;
}

.optc-stock-context {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px 12px;
  margin: 0 0 14px;
  border: 1px solid #d6c7aa;
  border-radius: 10px;
  background: #f8f1e4;
  padding: 14px;
}
.optc-stock-context legend {
  padding: 0 6px;
  color: #6d4a1f;
  font-size: 11px;
  font-weight: 850;
}
.optc-stock-context label {
  display: grid;
  gap: 6px;
  color: #536058;
  font-size: 11px;
  font-weight: 800;
}
.optc-stock-context label span {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.optc-stock-context label em {
  color: #786a58;
  font-size: 9px;
  font-style: normal;
  font-weight: 650;
}
.optc-stock-context input {
  width: 100%;
  min-height: 44px;
  border: 1px solid #cfc1a7;
  border-radius: 8px;
  background: #fffdf8;
  padding: 9px 11px;
  color: var(--ov2-ink);
  font-size: 13px;
}
.optc-stock-context > small {
  grid-column: 1/-1;
  color: #6f786f;
  font-size: 10px;
  line-height: 1.45;
}
.optc-payoff-pending {
  display: grid;
  min-height: 260px;
  align-content: center;
  justify-items: start;
  gap: 8px;
  border: 1px dashed #cbbb9d;
}
.optc-payoff-pending span {
  color: #8a5b1d;
  font-size: 10px;
  font-weight: 850;
}
.optc-payoff-pending strong { max-width: 26ch; font-size: 17px; line-height: 1.3; }
.optc-payoff-pending small { max-width: 40ch; color: var(--ov2-muted); font-size: 11px; line-height: 1.5; }

@media (max-width:820px) {
  .options-v2-decision-advanced .options-v2-decision-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width:620px) {
  .options-v2-decision-form { padding: 20px 16px; }
  .options-v2-decision-core,
  .options-v2-decision-advanced .options-v2-decision-grid,
  .options-v2-constraint-toggles,
  .optc-stock-context { grid-template-columns: 1fr; }
  .options-v2-decision-advanced summary > span { display: grid; gap: 3px; }
  .options-v2-form-actions { align-items: stretch; flex-direction: column-reverse; }
  .options-v2-reset-button { width: 100%; }
  .options-v2-decision-submit { width: 100%; }
  .optc-stock-context > small { grid-column: 1; }
}

/* ==========================================================================
   专业观点 · 投资导师 V2（pop-）
   研究编辑部语气：清晰、克制、可追溯，不把人物包装成荐股角色。
   ========================================================================== */
.pop-workspace {
  --pop-ink: #19251f;
  --pop-deep: #0d2a20;
  --pop-deep-2: #15392d;
  --pop-paper: #fffdf7;
  --pop-paper-2: #f7f1e5;
  --pop-line: #dfd2b9;
  --pop-muted: #6f786f;
  --pop-amber: #b9781f;
  --pop-amber-soft: #f5e4c5;
  --pop-green-soft: #dcecdf;
  --pop-red: #9a432e;
  display: grid;
  gap: 22px;
  padding: 2px 0 42px;
  color: var(--pop-ink);
}
.pop-workspace * { box-sizing: border-box; }
.pop-workspace button,
.pop-workspace input,
.pop-workspace textarea { font: inherit; }
.pop-workspace button:focus-visible,
.pop-workspace input:focus-visible,
.pop-workspace textarea:focus-visible,
.pop-workspace a:focus-visible {
  outline: 3px solid rgba(185, 120, 31, .3);
  outline-offset: 3px;
}
.pop-module-header {
  display: grid;
  grid-template-columns: minmax(260px, .74fr) minmax(560px, 1.26fr);
  align-items: end;
  gap: 30px;
  padding: 4px 0 20px;
  border-bottom: 1px solid var(--pop-line);
}
.pop-module-header > div > span,
.pop-mentor-hero > div > span,
.pop-section-head > div > span,
.pop-coming-soon > div > span,
.pop-application-map > div > span,
.pop-review-result > header > div > span,
.pop-screen-result > header span {
  color: var(--pop-amber);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}
.pop-module-header h1 {
  max-width: 13ch;
  margin: 7px 0 9px;
  color: var(--pop-ink);
  font-family: Georgia, "Noto Serif SC", serif;
  font-size: clamp(26px, 3vw, 42px);
  line-height: 1.14;
  letter-spacing: -.035em;
}
.pop-module-header > div > p {
  max-width: 640px;
  margin: 0;
  color: var(--pop-muted);
  font-size: 13px;
  line-height: 1.7;
}
.pop-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--pop-line);
  border-radius: 14px;
  background: rgba(255, 253, 247, .78);
  box-shadow: 0 12px 34px rgba(58, 40, 16, .06);
}
.pop-tabs button {
  display: grid;
  min-height: 76px;
  align-content: center;
  gap: 4px;
  border: 0;
  border-right: 1px solid var(--pop-line);
  border-radius: 0;
  background: transparent;
  padding: 13px 15px;
  color: var(--pop-ink);
  text-align: left;
  cursor: pointer;
}
.pop-tabs button:last-child { border-right: 0; }
.pop-tabs button:hover { background: #f6eedf; }
.pop-tabs button.active {
  background: var(--pop-deep);
  color: #fffaf0;
}
.pop-tabs button span { font-size: 14px; font-weight: 800; }
.pop-tabs button small { color: var(--pop-muted); font-size: 10px; line-height: 1.35; }
.pop-tabs button.active small { color: #aebeb6; }
.pop-mentor-page { display: grid; gap: 22px; }
.pop-mentor-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 30px;
  overflow: hidden;
  border: 1px solid #234437;
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 0, rgba(225, 177, 87, .2), transparent 31%),
    linear-gradient(135deg, var(--pop-deep) 0%, var(--pop-deep-2) 100%);
  padding: clamp(25px, 4vw, 42px);
  color: #fffaf0;
  box-shadow: 0 20px 45px rgba(12, 36, 28, .16);
}
.pop-mentor-hero h2 {
  max-width: 16ch;
  margin: 8px 0 10px;
  color: #fffaf0;
  font-family: Georgia, "Noto Serif SC", serif;
  font-size: clamp(27px, 3vw, 40px);
  line-height: 1.17;
  letter-spacing: -.035em;
}
.pop-mentor-hero p {
  max-width: 660px;
  margin: 0;
  color: #c2d0c9;
  font-size: 13px;
  line-height: 1.75;
}
.pop-hero-actions { display: flex; gap: 10px; margin-top: 22px; }
.pop-workspace .primary,
.pop-workspace .secondary,
.pop-workspace .ghost {
  min-height: 42px;
  border-radius: 9px;
  padding: 9px 16px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}
.pop-workspace .primary {
  border: 1px solid var(--pop-deep);
  background: var(--pop-deep);
  color: #fffdf7;
}
.pop-mentor-hero .primary {
  border-color: #edc06e;
  background: #edc06e;
  color: #1a271f;
}
.pop-workspace .secondary {
  border: 1px solid #cbbb9c;
  background: #fffdf8;
  color: #603f19;
}
.pop-workspace .ghost {
  border: 1px solid transparent;
  background: transparent;
  color: #6d4a20;
}
.pop-workspace .ghost.danger { color: var(--pop-red); }
.pop-workspace .primary:hover,
.pop-workspace .secondary:hover,
.pop-workspace .ghost:hover { transform: translateY(-1px); }
.pop-workspace .secondary:hover { border-color: var(--pop-amber); }
.pop-workspace .ghost:hover { background: #f5ecdc; }
.pop-workspace button:disabled { opacity: .55; cursor: wait; transform: none; }
.pop-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(82px, 1fr));
  min-width: 300px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 12px;
  background: rgba(255,255,255,.06);
}
.pop-hero-stats article {
  display: grid;
  min-height: 96px;
  place-content: center;
  border-right: 1px solid rgba(255,255,255,.13);
  text-align: center;
}
.pop-hero-stats article:last-child { border-right: 0; }
.pop-hero-stats strong { color: #f2c979; font-family: Georgia, serif; font-size: 30px; line-height: 1; }
.pop-hero-stats span { margin-top: 7px; color: #b8c8c0; font-size: 10px; }
.pop-panel {
  border: 1px solid var(--pop-line);
  border-radius: 16px;
  background: rgba(255, 253, 247, .85);
  padding: clamp(20px, 3vw, 30px);
  box-shadow: 0 12px 34px rgba(74, 51, 21, .055);
}
.pop-section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 20px;
}
.pop-section-head h3 {
  margin: 4px 0 4px;
  color: var(--pop-ink);
  font-family: Georgia, "Noto Serif SC", serif;
  font-size: 24px;
}
.pop-section-head p {
  max-width: 620px;
  margin: 0;
  color: var(--pop-muted);
  font-size: 12px;
  line-height: 1.6;
}
.pop-filter-row { display: flex; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }
.pop-filter-row button {
  min-height: 32px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  padding: 6px 11px;
  color: #69736c;
  font-size: 10.5px;
  font-weight: 750;
  cursor: pointer;
}
.pop-filter-row button:hover { border-color: #d8c9ad; background: #faf4e8; }
.pop-filter-row button.active { border-color: #d3b77d; background: var(--pop-amber-soft); color: #6d4616; }
.pop-mentor-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}
.pop-mentor-card,
.pop-create-card {
  min-width: 0;
  border: 1px solid var(--pop-line);
  border-radius: 13px;
  background: #fffef9;
  padding: 17px;
  box-shadow: 0 7px 18px rgba(70, 48, 19, .035);
}
.pop-mentor-card { display: flex; min-height: 260px; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease; }
.pop-mentor-card:hover { transform: translateY(-2px); box-shadow: 0 13px 28px rgba(70, 48, 19, .09); }
.pop-mentor-card.is-off { opacity: .58; }
.pop-mentor-card > header { display: flex; align-items: center; gap: 10px; }
.pop-mentor-card > header > div:nth-child(2) { min-width: 0; }
.pop-mentor-card > header span { display: block; color: var(--pop-amber); font-size: 9px; font-weight: 800; letter-spacing: 1px; }
.pop-mentor-card h4 { margin: 2px 0 0; font-size: 16px; }
.pop-mentor-avatar {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  border-radius: 12px;
  background: var(--pop-deep);
  color: #efc773;
  font-family: Georgia, "Noto Serif SC", serif;
  font-size: 18px;
  font-weight: 800;
}
.pop-mentor-avatar.large { width: 54px; height: 54px; flex-basis: 54px; font-size: 23px; }
.pop-toggle,
.pop-toggle:hover,
.pop-toggle:focus {
  appearance: none;
  position: relative;
  width: 38px;
  min-width: 38px;
  max-width: 38px;
  height: 22px;
  min-height: 22px;
  max-height: 22px;
  margin-left: auto;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: #d5cbb8;
  padding: 0;
  box-shadow: inset 0 0 0 1px rgba(48,44,35,.06);
  cursor: pointer;
}
.pop-toggle.on { background: #39805c; }
.pop-toggle i {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: white;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  transition: transform .18s ease;
}
.pop-toggle.on i { transform: translateX(16px); }
.pop-mentor-style { min-height: 35px; margin: 15px 0 7px; color: var(--pop-amber); font-size: 11px; line-height: 1.5; }
.pop-mentor-card > strong { display: block; color: var(--pop-ink); font-size: 13px; line-height: 1.55; }
.pop-focus-tags { display: flex; gap: 5px; flex-wrap: wrap; margin: 13px 0 15px; }
.pop-focus-tags span {
  border: 1px solid #e7dcc7;
  border-radius: 999px;
  background: #f7f1e6;
  padding: 4px 8px;
  color: #687069;
  font-size: 9.5px;
}
.pop-mentor-card > footer { display: flex; gap: 5px; margin-top: auto; }
.pop-mentor-card > footer button { min-height: 34px; padding: 6px 10px; }
.pop-create-card {
  display: grid;
  min-height: 260px;
  place-content: center;
  justify-items: center;
  border-style: dashed;
  background: rgba(247, 241, 229, .52);
  color: #6b5433;
  text-align: center;
  cursor: pointer;
}
.pop-create-card:hover { border-color: var(--pop-amber); background: #fbf4e6; }
.pop-create-card > span { color: var(--pop-amber); font-family: Georgia, serif; font-size: 34px; }
.pop-create-card > strong { margin: 7px 0 5px; color: var(--pop-ink); font-size: 14px; }
.pop-create-card > small { max-width: 23ch; color: var(--pop-muted); font-size: 10px; line-height: 1.5; }
.pop-overlay {
  position: fixed;
  z-index: 1100;
  inset: 0;
  display: flex;
  justify-content: flex-end;
  background: rgba(15, 22, 18, .48);
  backdrop-filter: blur(3px);
  animation: pop-fade .18s ease both;
}
.pop-detail-drawer {
  width: min(620px, 92vw);
  height: 100%;
  overflow: auto;
  border-left: 1px solid #d7c9ad;
  background: #fbf7ed;
  box-shadow: -20px 0 55px rgba(10, 23, 17, .23);
  animation: pop-slide .22s ease both;
}
.pop-detail-drawer > header {
  position: sticky;
  z-index: 2;
  top: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid var(--pop-line);
  background: rgba(251, 247, 237, .95);
  padding: 22px 24px;
  backdrop-filter: blur(10px);
}
.pop-detail-drawer > header span { color: var(--pop-amber); font-size: 9.5px; font-weight: 800; letter-spacing: 1px; }
.pop-detail-drawer > header h2 { margin: 2px 0; font-family: Georgia, "Noto Serif SC", serif; font-size: 26px; }
.pop-detail-drawer > header p { margin: 0; color: var(--pop-muted); font-size: 11px; }
.pop-detail-drawer > header button {
  width: 38px;
  height: 38px;
  border: 1px solid #d9ccb4;
  border-radius: 50%;
  background: #fffdf8;
  padding: 0;
  color: #5f503a;
  font-size: 23px;
  cursor: pointer;
}
.pop-detail-body { display: grid; gap: 13px; padding: 24px; }
.pop-detail-thesis,
.pop-detail-list,
.pop-boundary,
.pop-source-list,
.pop-veto {
  border: 1px solid var(--pop-line);
  border-radius: 12px;
  background: #fffef9;
  padding: 17px;
}
.pop-detail-thesis span,
.pop-detail-list > span,
.pop-boundary > span,
.pop-source-list > div span {
  display: block;
  margin-bottom: 8px;
  color: var(--pop-amber);
  font-size: 9.5px;
  font-weight: 850;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}
.pop-detail-thesis strong { font-family: Georgia, "Noto Serif SC", serif; font-size: 19px; line-height: 1.5; }
.pop-detail-list ol { display: grid; gap: 9px; margin: 0; padding-left: 22px; }
.pop-detail-list li { color: #39453f; font-size: 12.5px; line-height: 1.6; }
.pop-detail-list.risk { background: #fbf1ed; }
.pop-boundary { border-left: 4px solid #397b5b; background: #edf5ef; }
.pop-boundary p { margin: 0; color: #355747; font-size: 12px; line-height: 1.6; }
.pop-source-list > div { display: flex; justify-content: space-between; gap: 12px; }
.pop-source-list > div small { color: var(--pop-muted); font-size: 9.5px; }
.pop-source-list a {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  border-top: 1px solid #eee4d2;
  padding: 11px 0;
  color: #5a4324;
  font-size: 11px;
  text-decoration: none;
}
.pop-source-list a:hover strong { text-decoration: underline; }
.pop-source-list a span { color: var(--pop-amber); white-space: nowrap; }
.pop-veto { margin: 0; border-color: #e9cfc7; background: #fbefeb; color: #753b2e; font-size: 12px; line-height: 1.55; }
.pop-veto b { display: block; margin-bottom: 5px; font-size: 10px; letter-spacing: 1px; }
.pop-coming-soon {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(220px, 310px);
  gap: clamp(24px, 5vw, 66px);
  min-height: 440px;
  align-items: center;
  border: 1px solid var(--pop-line);
  border-radius: 18px;
  background:
    linear-gradient(90deg, rgba(255,253,247,.95), rgba(247,241,229,.9)),
    repeating-linear-gradient(135deg, transparent 0 20px, rgba(185,120,31,.03) 20px 21px);
  padding: clamp(28px, 6vw, 70px);
}
.pop-coming-index { color: #dfcda9; font-family: Georgia, serif; font-size: clamp(64px, 9vw, 120px); line-height: 1; }
.pop-coming-soon h2 { margin: 7px 0 10px; font-family: Georgia, "Noto Serif SC", serif; font-size: clamp(28px, 4vw, 44px); }
.pop-coming-soon p { max-width: 580px; color: var(--pop-muted); font-size: 13px; line-height: 1.7; }
.pop-coming-soon ul { display: grid; gap: 8px; margin: 18px 0 24px; padding-left: 19px; color: #4f5c55; font-size: 12px; }
.pop-coming-soon aside { border-left: 3px solid var(--pop-amber); background: #f4ead7; padding: 18px; }
.pop-coming-soon aside strong { font-size: 12px; }
.pop-coming-soon aside p { font-size: 11px; }
.pop-coming-soon aside span { color: var(--pop-amber); font-size: 9.5px; font-weight: 850; letter-spacing: 1px; }
.pop-builder { border-color: #d2b87e; background: linear-gradient(135deg, #fffdf8, #faf1e1); }
.pop-builder-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 22px; }
.pop-builder-fields,
.pop-draft-fields { display: grid; gap: 14px; }
.pop-builder-fields > label,
.pop-draft-fields > label,
.pop-review-form > label {
  display: grid;
  gap: 7px;
  color: #5d665f;
  font-size: 11px;
  font-weight: 800;
}
.pop-builder-fields input[type="text"],
.pop-builder-fields textarea,
.pop-draft-fields textarea,
.pop-review-form input[type="text"] {
  width: 100%;
  border: 1px solid #d7c9ad;
  border-radius: 9px;
  background: #fffef9;
  padding: 11px 12px;
  color: var(--pop-ink);
  font-size: 12px;
  line-height: 1.55;
  resize: vertical;
}
.pop-builder-fields input:hover,
.pop-builder-fields textarea:hover,
.pop-draft-fields textarea:hover,
.pop-review-form input:hover { border-color: #bda77e; }
.pop-builder-fields fieldset,
.pop-review-form fieldset {
  margin: 0;
  border: 1px solid #d7c9ad;
  border-radius: 10px;
  padding: 12px;
}
.pop-builder-fields legend,
.pop-review-form legend { padding: 0 6px; color: #5d665f; font-size: 11px; font-weight: 800; }
.pop-check-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.pop-check-grid label,
.pop-review-mentor-list label {
  display: flex;
  align-items: center;
  gap: 7px;
  border: 1px solid #e1d6c1;
  border-radius: 8px;
  background: #fffdf8;
  padding: 8px;
  color: #4f5b54;
  font-size: 10.5px;
  cursor: pointer;
}
.pop-check-grid input,
.pop-review-mentor-list input { width: 15px; height: 15px; accent-color: #26704d; }
.pop-file-field { border: 1px dashed #cdbb98; border-radius: 9px; background: #f8f1e5; padding: 12px; }
.pop-file-field input { color: #675539; font-size: 10px; }
.pop-file-field small { color: var(--pop-muted); font-size: 9.5px; font-weight: 500; line-height: 1.5; }
.pop-builder-guide {
  align-self: start;
  border: 1px solid #315144;
  border-radius: 13px;
  background: var(--pop-deep);
  padding: 22px;
  color: #e8eee9;
}
.pop-builder-guide > span { color: #efc773; font-size: 9px; font-weight: 850; letter-spacing: 1.3px; text-transform: uppercase; }
.pop-builder-guide h4 { margin: 8px 0 13px; color: #fffaf0; font-family: Georgia, "Noto Serif SC", serif; font-size: 20px; line-height: 1.4; }
.pop-builder-guide ol { display: grid; gap: 8px; margin: 0; padding-left: 20px; color: #c5d2cb; font-size: 11px; line-height: 1.5; }
.pop-builder-guide p { border-top: 1px solid rgba(255,255,255,.14); margin: 16px 0; padding-top: 15px; color: #9fb3a9; font-size: 10.5px; line-height: 1.6; }
.pop-builder-guide .primary { width: 100%; border-color: #efc773; background: #efc773; color: #16241d; }
.pop-draft-review { display: grid; grid-template-columns: minmax(180px, .34fr) minmax(0, 1fr); gap: 24px; }
.pop-draft-review > aside { border-right: 1px solid var(--pop-line); padding-right: 22px; }
.pop-draft-review > aside > span { color: var(--pop-amber); font-size: 9px; font-weight: 850; letter-spacing: 1.3px; }
.pop-draft-review > aside .pop-mentor-avatar { margin: 14px 0; }
.pop-draft-review > aside h4 { margin: 0; font-size: 18px; }
.pop-draft-review > aside p,
.pop-draft-review > aside small { color: var(--pop-muted); font-size: 10.5px; line-height: 1.6; }
.pop-draft-actions { display: flex; justify-content: flex-end; gap: 8px; }
.pop-boundary-badge {
  border: 1px solid #b9ceb9;
  border-radius: 999px;
  background: var(--pop-green-soft);
  padding: 7px 12px;
  color: #2f6748;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}
.pop-review-form {
  display: grid;
  grid-template-columns: minmax(160px, .3fr) minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px;
}
.pop-review-form fieldset { padding: 8px 10px 10px; }
.pop-review-mentor-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.pop-review-mentor-list label { min-height: 43px; padding: 6px 8px; }
.pop-review-mentor-list label.custom { border-style: dashed; background: #f7f1e5; }
.pop-review-mentor-list label span { display: grid; gap: 1px; min-width: 0; }
.pop-review-mentor-list b { overflow: hidden; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.pop-review-mentor-list small { color: var(--pop-muted); font-size: 8.5px; }
.pop-review-form > button { min-width: 156px; }
.pop-review-empty,
.pop-review-loading,
.pop-inline-error {
  display: flex;
  align-items: center;
  gap: 15px;
  min-height: 105px;
  margin-top: 16px;
  border: 1px dashed #d4c5a8;
  border-radius: 11px;
  background: #faf5eb;
  padding: 18px;
}
.pop-review-empty > span { color: #ddc9a4; font-family: Georgia, serif; font-size: 38px; }
.pop-review-empty strong,
.pop-review-loading strong { display: block; margin-bottom: 4px; font-size: 13px; }
.pop-review-empty p,
.pop-review-loading span { margin: 0; color: var(--pop-muted); font-size: 10.5px; line-height: 1.55; }
.pop-review-loading i {
  width: 28px;
  height: 28px;
  border: 3px solid #dfd1b7;
  border-top-color: var(--pop-amber);
  border-radius: 50%;
  animation: pop-spin .8s linear infinite;
}
.pop-inline-error { min-height: 0; border-color: #e3bdb2; background: #fbefeb; color: #74382c; }
.pop-inline-error span { font-size: 11px; }
.pop-review-result { margin-top: 18px; border-top: 1px solid var(--pop-line); padding-top: 20px; }
.pop-review-result > header { display: flex; justify-content: space-between; align-items: end; gap: 15px; }
.pop-review-result > header h4 { margin: 2px 0 0; font-family: Georgia, "Noto Serif SC", serif; font-size: 26px; }
.pop-review-result > header aside { display: flex; align-items: baseline; gap: 5px; }
.pop-review-result > header aside strong { color: var(--pop-amber); font-family: Georgia, serif; font-size: 32px; }
.pop-review-result > header aside span { color: var(--pop-muted); font-size: 10px; }
.pop-review-summary { display: grid; grid-template-columns: 1.2fr 1.2fr .6fr; gap: 8px; margin: 15px 0; }
.pop-review-summary article { border: 1px solid #dfd3bd; border-radius: 9px; background: #f9f4e9; padding: 12px; }
.pop-review-summary span { display: block; margin-bottom: 5px; color: var(--pop-muted); font-size: 9px; }
.pop-review-summary strong { font-size: 11px; line-height: 1.55; }
.pop-review-summary small { display: block; margin-top: 5px; color: var(--pop-amber); font-size: 8.5px; }
.pop-review-view-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.pop-review-view-grid > article { border: 1px solid var(--pop-line); border-radius: 10px; background: #fffef9; padding: 14px; }
.pop-review-view-grid > article.custom { border-style: dashed; background: #f8f2e6; }
.pop-review-view-grid header { display: flex; justify-content: space-between; color: var(--pop-amber); font-size: 10px; font-weight: 850; }
.pop-review-view-grid header strong { color: var(--pop-ink); font-family: Georgia, serif; font-size: 18px; }
.pop-review-view-grid header em { font-size: 8px; font-style: normal; }
.pop-review-view-grid h5 { margin: 8px 0; font-size: 12px; }
.pop-review-view-grid p,
.pop-review-view-grid small { display: block; margin: 5px 0; color: #5b665f; font-size: 10px; line-height: 1.5; }
.pop-review-view-grid p.positive { border-left: 3px solid #5f9975; padding-left: 8px; }
.pop-review-view-grid p.caution { border-left: 3px solid #c0745d; padding-left: 8px; }
.pop-screen-result { margin-top: 16px; border: 1px solid #cbb78f; border-radius: 11px; background: #fbf3e3; padding: 16px; }
.pop-screen-result > header { display: flex; justify-content: space-between; gap: 15px; }
.pop-screen-result > header strong { display: block; margin: 3px 0; font-size: 14px; }
.pop-screen-result > header p { margin: 0; color: var(--pop-muted); font-size: 10px; }
.pop-screen-result > div { display: grid; gap: 5px; margin-top: 12px; }
.pop-screen-result > div > article {
  display: grid;
  grid-template-columns: 24px minmax(150px, 1fr) 70px 40px minmax(180px, 1.2fr);
  align-items: center;
  gap: 8px;
  border-top: 1px solid #e4d6bb;
  padding: 9px 2px;
}
.pop-screen-result article b { color: #c5a86f; font-family: Georgia, serif; }
.pop-screen-result article button { border: 0; background: transparent; padding: 0; color: #2c493a; font-size: 11px; font-weight: 800; text-align: left; cursor: pointer; }
.pop-screen-result article span,
.pop-screen-result article small { color: var(--pop-muted); font-size: 9px; }
.pop-application-map {
  display: grid;
  grid-template-columns: minmax(180px, 1.25fr) repeat(4, minmax(120px, 1fr));
  overflow: hidden;
  border: 1px solid var(--pop-line);
  border-radius: 14px;
  background: var(--pop-paper);
}
.pop-application-map > div,
.pop-application-map article { min-height: 112px; border-right: 1px solid var(--pop-line); padding: 18px; }
.pop-application-map article:last-child { border-right: 0; }
.pop-application-map h3 { margin: 5px 0 0; font-family: Georgia, "Noto Serif SC", serif; font-size: 18px; line-height: 1.4; }
.pop-application-map article span { display: block; margin-bottom: 8px; color: var(--pop-amber); font-size: 9px; font-weight: 850; letter-spacing: 1px; }
.pop-application-map article strong { color: #4c5952; font-size: 10.5px; line-height: 1.55; }
@keyframes pop-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pop-slide { from { transform: translateX(35px); opacity: .5; } to { transform: translateX(0); opacity: 1; } }
@keyframes pop-spin { to { transform: rotate(360deg); } }

@media (max-width: 1120px) {
  .pop-module-header { grid-template-columns: 1fr; align-items: start; }
  .pop-module-header h1 { max-width: none; }
  .pop-mentor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pop-review-form { grid-template-columns: minmax(150px, .4fr) minmax(0, 1fr); }
  .pop-review-form > button { grid-column: 1 / -1; }
  .pop-application-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pop-application-map > div { grid-column: 1 / -1; }
  .pop-application-map > div,
  .pop-application-map article { border-right: 1px solid var(--pop-line); border-bottom: 1px solid var(--pop-line); }
}
@media (max-width: 820px) {
  .pop-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pop-tabs button:nth-child(2) { border-right: 0; }
  .pop-tabs button:nth-child(-n+2) { border-bottom: 1px solid var(--pop-line); }
  .pop-mentor-hero { grid-template-columns: 1fr; }
  .pop-hero-stats { width: 100%; min-width: 0; }
  .pop-section-head { align-items: flex-start; flex-direction: column; }
  .pop-filter-row { justify-content: flex-start; }
  .pop-builder-grid,
  .pop-draft-review { grid-template-columns: 1fr; }
  .pop-draft-review > aside { border-right: 0; border-bottom: 1px solid var(--pop-line); padding: 0 0 15px; }
  .pop-check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pop-review-form { grid-template-columns: 1fr; }
  .pop-review-form > button { grid-column: auto; width: 100%; }
  .pop-review-summary { grid-template-columns: 1fr 1fr; }
  .pop-review-summary article:last-child { grid-column: 1 / -1; }
  .pop-coming-soon { grid-template-columns: auto 1fr; min-height: 0; }
  .pop-coming-soon aside { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .pop-workspace { gap: 16px; padding-bottom: 26px; }
  .pop-module-header { gap: 18px; padding-bottom: 14px; }
  .pop-tabs button { min-height: 66px; padding: 10px 12px; }
  .pop-mentor-hero,
  .pop-panel { border-radius: 12px; padding: 18px 15px; }
  .pop-hero-actions,
  .pop-draft-actions { align-items: stretch; flex-direction: column; }
  .pop-mentor-grid,
  .pop-review-view-grid { grid-template-columns: 1fr; }
  .pop-mentor-card,
  .pop-create-card { min-height: 0; }
  .pop-create-card { padding: 25px 16px; }
  .pop-review-mentor-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pop-review-summary { grid-template-columns: 1fr; }
  .pop-review-summary article:last-child { grid-column: auto; }
  .pop-detail-drawer { width: 100vw; }
  .pop-detail-drawer > header,
  .pop-detail-body { padding: 16px; }
  .pop-coming-soon { grid-template-columns: 1fr; padding: 24px 18px; }
  .pop-coming-index { font-size: 58px; }
  .pop-coming-soon aside { grid-column: auto; }
  .pop-screen-result > div > article { grid-template-columns: 22px 1fr 55px 32px; }
  .pop-screen-result article small { grid-column: 2 / -1; }
  .pop-application-map { grid-template-columns: 1fr; }
  .pop-application-map > div { grid-column: auto; }
  .pop-application-map > div,
  .pop-application-map article { min-height: 0; border-right: 0; padding: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .pop-workspace *,
  .pop-workspace *::before,
  .pop-workspace *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
