:root {
  color-scheme: dark;
  --ink: #e8eef5;
  --muted: #96a4b4;
  --line: #223242;
  --page: #081018;
  --panel: #101a24;
  --panel-soft: #142130;
  --panel-softer: #172636;
  --teal: #41d6c3;
  --blue: #68a7ff;
  --gold: #f2bd5c;
  --rose: #ff6b8a;
  --green: #5be38b;
  --shadow: 0 18px 48px rgba(0, 0, 0, 0.34);
  --mobile-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
}

.sector-pnl-list { display: grid; gap: 7px; }
.spnl-title { font-size: 13px; font-weight: 800; color: var(--ink); margin: 10px 0 6px; }
.spnl-title:first-child { margin-top: 0; }
.spnl-title .hint { font-weight: 400; color: var(--muted); font-size: 11px; margin-left: 4px; }
.srev-row { margin-bottom: 9px; }
.srev-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 13px; margin-bottom: 3px; }
.srev-bar { position: relative; height: 12px; background: rgba(255,255,255,.05); border-radius: 4px; overflow: hidden; }
.srev-cur { position: absolute; top: 0; bottom: 0; left: 0; border-radius: 4px; }
.srev-cur.pos { background: linear-gradient(90deg, #41d6c3, #5be38b); }
.srev-cur.neg { background: linear-gradient(90deg, #f2bd5c, #ff6b8a); }
.srev-tgt { position: absolute; top: -2px; bottom: -2px; width: 2px; background: #e8eef5; box-shadow: 0 0 0 1px rgba(0,0,0,.3); }
.srev-meta { display: flex; justify-content: space-between; font-size: 11px; color: var(--muted); margin-top: 2px; }
.spnl-row { display: grid; grid-template-columns: 96px 1fr auto; align-items: center; gap: 8px; }
.spnl-label { font-size: 12px; color: var(--muted); text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spnl-bar { height: 14px; background: rgba(255,255,255,.05); border-radius: 4px; overflow: hidden; }
.spnl-fill { height: 100%; border-radius: 4px; }
.spnl-fill.pos { background: linear-gradient(90deg, #41d6c3, #5be38b); }
.spnl-fill.neg { background: linear-gradient(90deg, #f2bd5c, #ff6b8a); }

.holding-weight-bar { padding: 0 2px; margin: 3px 0 6px; }
.hwb-track { position: relative; height: 6px; background: var(--panel-soft); border-radius: 3px; overflow: hidden; }
.hwb-target { position: absolute; top: 0; bottom: 0; background: rgba(104,167,255,.20); border-left: 1px dashed var(--blue); border-right: 1px dashed var(--blue); }
.hwb-cur { position: absolute; top: 0; bottom: 0; left: 0; border-radius: 3px; }
.hwb-cur.over { background: var(--rose); }
.hwb-cur.under { background: var(--blue); }
.hwb-cur.ok { background: var(--teal); }

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  background:
    linear-gradient(160deg, rgba(65, 214, 195, 0.14), transparent 38%),
    linear-gradient(24deg, rgba(104, 167, 255, 0.1), transparent 42%),
    var(--page);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

button,
input,
select {
  font: inherit;
}

.shell {
  width: min(1120px, 100%);
  margin: 0 auto;
  padding: max(18px, env(safe-area-inset-top)) 16px 28px;
}

.gate-panel,
.forbidden-panel,
.audit-panel {
  margin-top: 14px;
}

.gate-summary {
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

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

.gate-metric {
  min-height: 64px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: var(--panel-soft);
}

.gate-metric span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.2;
}

.gate-metric strong {
  display: block;
  margin-top: 6px;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.25;
}

.gate-metric.ok strong,
.panel-head span.ok,
.trade-light-card.green b {
  color: var(--green);
}

.gate-metric.warn strong,
.panel-head span.warn,
.trade-light-card.yellow b,
.trade-light-card.blue b {
  color: var(--gold);
}

.gate-metric.risk strong,
.panel-head span.risk,
.trade-light-card.red b {
  color: var(--rose);
}

.gate-warning {
  margin-top: 10px;
  border: 1px solid rgba(255, 107, 138, 0.42);
  border-radius: 8px;
  padding: 10px 12px;
  background: rgba(255, 107, 138, 0.11);
  color: #ffd4dd;
  font-size: 13px;
  font-weight: 800;
}

.gate-warning.inline {
  grid-column: 1 / -1;
}

.trade-light-card {
  display: grid;
  gap: 6px;
  margin-top: 10px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: 8px;
  padding: 12px;
  background: var(--panel-soft);
}

.trade-light-card.red {
  border-left-color: var(--rose);
}

.trade-light-card.yellow {
  border-left-color: var(--gold);
}

.trade-light-card.green {
  border-left-color: var(--green);
}

.trade-light-card b {
  font-size: 22px;
}

.trade-light-card p {
  color: var(--muted);
  line-height: 1.45;
}

.gate-stop-card {
  border: 1px solid rgba(255, 107, 138, 0.42);
  border-radius: 8px;
  padding: 12px;
  background: rgba(255, 107, 138, 0.1);
}

.gate-stop-card strong {
  display: block;
  color: #ffd4dd;
  font-size: 16px;
}

.gate-stop-card p {
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

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

.action-layer {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.action-layer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.action-layer-head h3,
.audit-card h3 {
  margin: 0;
  font-size: 15px;
}

.action-layer-head span {
  color: var(--muted);
  font-size: 12px;
}

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

.action-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: var(--panel-soft);
}

.action-card.risk {
  border-color: rgba(255, 107, 138, 0.42);
}

.action-card.opportunity {
  border-color: rgba(91, 227, 139, 0.34);
}

.action-card.blocked {
  border-color: rgba(242, 189, 92, 0.44);
  background: rgba(242, 189, 92, 0.08);
}

.action-card-head,
.action-card-foot,
.sector-trade-meaning {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.action-card-head strong {
  display: block;
  font-size: 18px;
}

.action-card-head span,
.action-card-foot span {
  color: var(--muted);
  font-size: 12px;
}

.action-card-head em {
  flex: 0 0 auto;
  border-radius: 8px;
  padding: 5px 8px;
  background: rgba(255, 255, 255, 0.08);
  color: var(--ink);
  font-style: normal;
  font-weight: 850;
}

.action-rules,
.holding-plan-rules {
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

.action-rules p,
.holding-plan-rules p {
  color: var(--ink);
  font-size: 13px;
  line-height: 1.45;
}

.action-rules span,
.holding-plan-rules span {
  display: inline-block;
  min-width: 62px;
  margin-right: 6px;
  color: var(--muted);
  font-size: 12px;
}

.forbidden-list {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
  padding-left: 22px;
  color: var(--ink);
  line-height: 1.45;
}

.sector-trade-meaning {
  margin-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 8px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  grid-column: 2;
  width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}

.sector-trade-meaning b {
  color: var(--ink);
  font-weight: 750;
  text-align: right;
  min-width: 0;
  overflow-wrap: anywhere;
}

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

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

.audit-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.audit-row {
  display: grid;
  grid-template-columns: 1fr repeat(6, auto);
  gap: 8px;
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 8px;
  color: var(--muted);
  font-size: 12px;
}

.audit-row strong,
.audit-row b {
  color: var(--ink);
}

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

.audit-row em.risk {
  color: var(--rose);
}

.execution-audit-compact {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.audit-pill {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px;
  background: var(--panel-softer);
}

.audit-pill span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.2;
}

.audit-pill strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.2;
}

.audit-pill.ok strong {
  color: var(--green);
}

.audit-pill.risk strong {
  color: var(--rose);
}

.catalyst-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin-top: 8px;
  color: var(--muted);
  font-size: 12px;
}

.holding-card-foot {
  align-items: flex-start;
}

.holding-card-foot span:first-child {
  flex: 1 1 auto;
}

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

.home-page .shell {
  width: min(430px, 100%);
  padding-inline: 8px;
}

.home-page .review-engine-panel {
  grid-template-columns: 1fr;
  gap: 8px;
}

.data-block-banner {
  grid-column: 1 / -1;
  min-width: 0;
  margin: 0 0 4px;
  border: 1px solid rgba(255, 107, 138, 0.5);
  border-radius: 8px;
  padding: 10px 12px;
  background: rgba(255, 107, 138, 0.14);
  color: #ffd4dd;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.4;
  white-space: normal;
}

.data-block-banner[hidden] {
  display: none;
}

/* Grid display declarations elsewhere must never override the browser's
   hidden state while Gateway data is unavailable. */
#engineAiActions[hidden],
#enginePermStrip[hidden],
#engineDecisionLimits[hidden],
#riskRadarCard[hidden],
#stressTestCard[hidden],
#sectorReviewCard[hidden],
#holdingsQueuePanel[hidden],
#growthScreenerPanel[hidden] {
  display: none !important;
}

.review-engine-panel.data-blocked .decision-card:not(.account-decision-card),
.review-engine-panel.data-blocked .dashboard-grid {
  opacity: 0.72;
}

/* Mobile decision flow: one command console → one risk drawer → holdings. */
.home-page .review-engine-panel .command-console { order: 1; }
.home-page .review-engine-panel .dashboard-grid { order: 2; }
.home-page .review-engine-panel .risk-summary-drawer { order: 3; }
.home-page .review-engine-panel .attribution-drawer { order: 4; }
.home-page .review-engine-panel .sector-pnl-card { order: 5; }
.review-engine-panel.data-unavailable .account-decision-card { opacity: 1; }

.command-console {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(65, 214, 195, 0.3);
  border-radius: 10px;
  background:
    linear-gradient(135deg, rgba(65, 214, 195, 0.1), transparent 43%),
    var(--panel);
  box-shadow: var(--mobile-shadow);
}

/* ============================================================
   Mobile home review loop — operation score -> action -> evidence
   ============================================================ */
body.home-page {
  background: #07111a;
}

.home-page .shell {
  width: min(430px, 100%);
  padding: max(14px, env(safe-area-inset-top)) 10px 12px;
}

.legacy-home-runtime[hidden] {
  display: none !important;
}

.home-review-dashboard {
  display: grid;
  gap: 10px;
}

.home-review-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 2px 6px;
}

.home-review-topbar > div {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
}

.home-review-topbar h1 {
  margin: 0;
  color: #f6f9fc;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -.02em;
}

.home-live-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
}

.home-live-status i {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--gold);
}

.home-live-status.live {
  color: #b7c4d1;
}

.home-live-status.live i {
  background: var(--teal);
}

.home-live-status.stale i,
.home-live-status.error i {
  background: var(--rose);
}

.home-refresh-btn {
  min-width: 54px;
  min-height: 38px;
  border: 1px solid #2a4052;
  border-radius: 8px;
  background: #12202c;
  color: #e7edf4;
  font-size: 13px;
  font-weight: 800;
}

.home-refresh-btn:disabled {
  opacity: .58;
}

.home-account-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #2a3b4b;
  border-radius: 10px;
  background: #0d1823;
}

.home-account-overview > div {
  min-width: 0;
  padding: 11px 13px;
}

.home-account-overview > div:nth-child(odd) {
  border-right: 1px solid #223342;
}

.home-account-overview > div:nth-child(n+3) {
  border-top: 1px solid #223342;
}

.home-account-overview span,
.home-account-overview strong {
  display: block;
}

.home-account-overview span {
  color: var(--muted);
  font-size: 11px;
}

.home-account-overview strong {
  margin-top: 5px;
  overflow: hidden;
  color: #f6f9fc;
  font-size: 17px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-account-overview strong.positive { color: var(--teal); }
.home-account-overview strong.negative { color: var(--rose); }
.home-account-overview strong.allocation { color: #f2bd5c; }

.home-review-section,
.home-review-goal {
  border: 1px solid #2a3b4b;
  border-radius: 10px;
  background: #0d1823;
}

.home-review-section {
  padding: 13px;
}

.home-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.home-section-head h2 {
  margin: 0;
  color: #f4f7fb;
  font-size: 18px;
  line-height: 1.2;
}

.home-section-head small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.home-section-head a {
  padding-top: 3px;
  color: var(--teal);
  font-size: 11px;
  text-decoration: none;
  white-space: nowrap;
}

#operationPeriod {
  min-height: 34px;
  border: 1px solid #314657;
  border-radius: 8px;
  padding: 0 28px 0 10px;
  background: #101d28;
  color: #e9eff5;
  font-size: 12px;
}

.operation-freshness {
  margin: 7px 0 0;
  border: 1px solid rgba(242, 189, 92, .42);
  border-radius: 7px;
  padding: 7px 9px;
  background: rgba(242, 189, 92, .08);
  color: #f2c46d;
  font-size: 10px;
  line-height: 1.4;
}

.operation-freshness.risk {
  border-color: rgba(255, 107, 138, .4);
  background: rgba(255, 107, 138, .08);
  color: #ff8da5;
}

.operation-top-issue {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 10px;
}

.operation-top-issue strong {
  color: #dfe7ee;
  font-size: 10px;
}

.operation-top-issue span {
  border-radius: 999px;
  padding: 3px 6px;
  background: rgba(242, 189, 92, .09);
  color: #f2bd5c;
  font-weight: 800;
}

.operation-score-summary {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 6px;
}

.operation-score-summary > strong {
  color: var(--teal);
  font-size: 52px;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.05em;
  line-height: 1;
}

.operation-score-summary > strong small {
  margin-left: 2px;
  font-size: 18px;
  letter-spacing: 0;
}

.operation-score-summary > span {
  border-radius: 7px;
  padding: 7px 9px;
  background: rgba(65, 214, 195, .1);
  color: var(--teal);
  font-size: 13px;
  font-weight: 800;
}

.operation-score-summary > span.negative {
  background: rgba(255, 107, 138, .1);
  color: var(--rose);
}

.operation-score-summary > span.neutral {
  background: #142230;
  color: var(--muted);
}

.operation-score-meta {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}

.operation-chart-wrap {
  height: auto;
  margin-top: 8px;
}

#operationTrendChart {
  display: block;
  width: 100%;
  height: 120px;
  touch-action: pan-y;
}

#operationTrendChart:focus-visible {
  outline: 2px solid rgba(65, 214, 195, .75);
  outline-offset: 2px;
}

.operation-trend-detail {
  display: grid;
  gap: 3px;
  min-height: 38px;
  margin-top: 3px;
  padding: 6px 8px;
  border: 1px solid #213747;
  border-radius: 7px;
  background: rgba(10, 25, 35, .82);
  color: var(--muted);
  font-size: 10px;
}

.operation-trend-detail > div {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
}

.operation-trend-detail time {
  flex: 0 0 auto;
  color: #8da2b3;
}

.operation-trend-detail strong {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.operation-trend-detail b {
  flex: 0 0 auto;
  margin-left: auto;
  color: var(--teal);
  font-size: 11px;
}

.operation-trend-detail small {
  overflow: hidden;
  color: #8da2b3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.operation-dimension-chart-hint {
  margin: 8px 1px 4px;
  color: #718797;
  font-size: 9px;
  line-height: 1.35;
}

.operation-dimensions {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid #223646;
  border-radius: 8px;
}

.operation-dimension-row {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) 64px;
  align-items: center;
  gap: 8px;
  min-height: 41px;
  padding: 7px 9px;
}

.operation-dimension-label,
.operation-dimension-score {
  display: grid;
  gap: 2px;
}

.operation-dimension-row canvas {
  cursor: pointer;
  touch-action: pan-y;
}

.operation-dimension-row canvas:focus-visible {
  outline: 1px solid rgba(65, 214, 195, .8);
  outline-offset: 2px;
}

.operation-dimension-detail {
  display: grid;
  gap: 3px;
  min-height: 38px;
  margin-top: 5px;
  padding: 6px 8px;
  border: 1px solid #213747;
  border-radius: 7px;
  background: rgba(10, 25, 35, .82);
  color: #8da2b3;
  font-size: 10px;
}

.operation-dimension-detail > div {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
}

.operation-dimension-detail b {
  flex: 0 0 auto;
  color: var(--teal);
  font-size: 10px;
}

.operation-dimension-detail time {
  flex: 0 0 auto;
}

.operation-dimension-detail strong {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.operation-dimension-detail small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.operation-dimension-label small,
.operation-dimension-score small {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.2;
}

.operation-dimension-score {
  justify-items: end;
}

.operation-dimension-row + .operation-dimension-row {
  border-top: 1px solid #1f3040;
}

.operation-dimension-row strong {
  font-size: 13px;
}

.operation-dimension-row progress,
.home-review-goal progress {
  width: 100%;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: #1b2a38;
  appearance: none;
}

.operation-dimension-row progress { height: 6px; }
.operation-dimension-row progress::-webkit-progress-bar,
.home-review-goal progress::-webkit-progress-bar { background: #1b2a38; border-radius: 999px; }
.operation-dimension-row progress::-webkit-progress-value,
.home-review-goal progress::-webkit-progress-value { background: var(--teal); border-radius: 999px; }
.operation-dimension-row progress::-moz-progress-bar,
.home-review-goal progress::-moz-progress-bar { background: var(--teal); border-radius: 999px; }

.operation-dimension-row b {
  color: var(--teal);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.operation-dimension-row em {
  color: var(--muted);
  font-size: 10px;
  font-style: normal;
  text-align: right;
}

.operation-dimension-row.weak strong,
.operation-dimension-row.weak b { color: var(--gold); }
.operation-dimension-row.weak progress::-webkit-progress-value { background: var(--gold); }
.operation-dimension-row.weak progress::-moz-progress-bar { background: var(--gold); }

.home-skeleton-row {
  height: 41px;
  background: #101d28;
}

.home-skeleton-row + .home-skeleton-row { border-top: 1px solid #1f3040; }

.recommendation-head {
  padding-bottom: 10px;
  border-bottom: 1px solid #223342;
}

.home-recommendation-list {
  display: grid;
}

.home-recommendation-row {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 10px;
  padding: 11px 2px;
  color: inherit;
  text-decoration: none;
}

.home-recommendation-row + .home-recommendation-row {
  border-top: 1px solid #20313f;
}

.home-action-priority {
  align-self: start;
  border: 1px solid #3a4d5c;
  border-radius: 7px;
  padding: 7px 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-align: center;
}

.home-recommendation-row.risk .home-action-priority {
  border-color: rgba(255, 107, 138, .5);
  background: rgba(255, 107, 138, .08);
  color: var(--rose);
}

.home-recommendation-row.warn .home-action-priority {
  border-color: rgba(242, 189, 92, .5);
  background: rgba(242, 189, 92, .08);
  color: var(--gold);
}

.home-recommendation-row.ok .home-action-priority {
  border-color: rgba(65, 214, 195, .45);
  background: rgba(65, 214, 195, .08);
  color: var(--teal);
}

.home-action-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 8px;
}

.home-action-main strong {
  min-width: 0;
  overflow: hidden;
  color: #f1f5f9;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-action-main b {
  color: var(--teal);
  font-size: 14px;
  white-space: nowrap;
}

.home-recommendation-row.risk .home-action-main b { color: var(--rose); }
.home-recommendation-row.warn .home-action-main b { color: var(--gold); }

.home-action-main span,
.home-action-main small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.home-action-main small { text-align: right; }

.home-review-goal {
  padding: 12px 14px;
}

.home-goal-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 7px;
}

.home-goal-head span { color: #dce5ed; font-size: 12px; font-weight: 800; }
.home-goal-head strong { color: var(--teal); font-size: 13px; }
.home-goal-head b { color: var(--teal); font-size: 22px; font-variant-numeric: tabular-nums; }
.home-review-goal progress { height: 7px; margin-top: 8px; }

.recent-operation-list,
.home-holding-list {
  margin-top: 9px;
  overflow: hidden;
  border: 1px solid #223646;
  border-radius: 8px;
}

.recent-operation-row {
  display: grid;
  grid-template-columns: 54px 45px 40px minmax(0, 1fr) 38px;
  align-items: center;
  gap: 6px;
  min-height: 38px;
  padding: 7px 9px;
  color: inherit;
  font-size: 11px;
  text-decoration: none;
}

.recent-operation-row + .recent-operation-row,
.home-holding-row + .home-holding-row { border-top: 1px solid #20313f; }

.recent-operation-row strong { color: #eef3f8; font-size: 13px; }
.recent-operation-row .operation-side { color: var(--blue); font-weight: 800; }
.recent-operation-row .operation-event-score { font-weight: 900; }
.recent-operation-row .operation-event-score.good { color: var(--teal); }
.recent-operation-row .operation-event-score.warn { color: var(--gold); }
.recent-operation-row .operation-event-score.risk { color: var(--rose); }
.recent-operation-row .operation-issue { min-width: 0; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.recent-operation-row time { color: #8190a0; text-align: right; }

.holding-section-head { align-items: flex-end; }

.home-holding-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  margin-top: 10px;
}

.home-holding-tabs button {
  min-height: 34px;
  border: 1px solid #263a4a;
  border-radius: 7px;
  background: #101d28;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.home-holding-tabs button[aria-pressed="true"] {
  border-color: rgba(65, 214, 195, .55);
  background: rgba(65, 214, 195, .1);
  color: var(--teal);
}

.home-holding-row {
  display: grid;
  grid-template-columns: 55px minmax(0, 1fr) auto;
  gap: 9px;
  padding: 10px 9px;
  color: inherit;
  text-decoration: none;
}

.home-holding-symbol strong {
  display: block;
  color: #f2f6fa;
  font-size: 15px;
}

.home-holding-symbol small,
.home-holding-main small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
}
.recent-operation-section { padding: 6px; }
.recent-operation-section .recent-operation-list { margin-top: 3px; }
.recent-operation-section .recent-operation-row { min-height: 19px; }

.home-holding-weight {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 7px;
  font-size: 10px;
}

.home-holding-weight strong { color: #dfe8ef; }
.home-holding-weight span { color: var(--muted); }

.home-weight-track {
  position: relative;
  height: 6px;
  margin-top: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #1c2b39;
}

.home-weight-track i {
  position: absolute;
  inset: 0 auto 0 0;
  border-radius: inherit;
  background: var(--teal);
}

.home-weight-track b {
  position: absolute;
  top: -2px;
  bottom: -2px;
  width: 2px;
  background: #dfe8ef;
}

.home-holding-action {
  display: grid;
  align-content: center;
  justify-items: end;
  gap: 4px;
}

.home-holding-action b {
  border-radius: 5px;
  padding: 3px 6px;
  background: rgba(65, 214, 195, .1);
  color: var(--teal);
  font-size: 10px;
}

.home-holding-action b.risk { background: rgba(255, 107, 138, .1); color: var(--rose); }
.home-holding-action b.warn { background: rgba(242, 189, 92, .1); color: var(--gold); }
.home-holding-action span { color: var(--muted); font-size: 9px; }
.home-holding-action .negative { color: var(--rose); }
.home-holding-action .positive { color: var(--teal); }

.home-text-link {
  width: 100%;
  min-height: 36px;
  border: 0;
  border-top: 1px solid #20313f;
  background: transparent;
  color: var(--teal);
  font-size: 11px;
}

.home-empty {
  padding: 16px 10px;
  color: var(--muted);
  font-size: 11px;
  text-align: center;
}


.home-data-note {
  margin: 0;
  padding: 2px 0 0;
  color: #718090;
  font-size: 9px;
  text-align: center;
}

.home-review-entry { order: 4; padding: 0 4px 6px; }
.home-review-alert {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 9px 10px;
  border: 1px solid rgba(246, 199, 110, .38);
  border-radius: 8px;
  background: rgba(246, 199, 110, .08);
  color: #f6c76e;
  text-decoration: none;
  font-size: 12px;
}
.home-review-alert[hidden] { display: none; }
.home-review-alert > span:first-child { min-width: 0; flex: 1; }
.home-review-alert small { display: block; color: #bda56f; font-size: 10px; }
.home-review-alert strong { display: block; margin-top: 2px; line-height: 1.35; }
.home-review-alert-status { flex: none; font-size: 10px; white-space: nowrap; }
.home-review-evidence-link { display: inline-block; margin-top: 8px; color: #81c7ef; font-size: 11px; text-decoration: none; }
.home-review-evidence-link:focus-visible, .home-review-alert:focus-visible { outline: 2px solid #81c7ef; outline-offset: 2px; }

@media (max-width: 360px) {
  .home-page .shell { padding-inline: 8px; }
  .home-review-topbar h1 { font-size: 22px; }
  .home-live-status { display: none; }
  .operation-score-summary > strong { font-size: 46px; }
  .home-action-main { grid-template-columns: 1fr; }
  .home-action-main small { text-align: left; }
  .recent-operation-row { grid-template-columns: 50px 40px 38px minmax(0, 1fr); }
  .recent-operation-row time { display: none; }
  .home-holding-row { grid-template-columns: 50px minmax(0, 1fr) auto; }
}

.command-console .decision-card {
  border: 0;
  border-radius: 0;
  padding: 12px;
  background: transparent;
  box-shadow: none;
}

.command-console .today-decision-card,
.command-console .command-health-card {
  border-top: 1px solid var(--line);
}

.command-console .decision-card-head { margin-bottom: 8px; }
.command-console .account-safety-summary { margin-top: 7px; padding-top: 7px; }

.decision-card {
  min-width: 0;
  align-self: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: var(--panel);
  box-shadow: var(--mobile-shadow);
}

.decision-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.decision-card-head h2 {
  font-size: 15px;
}

.decision-card-head span {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.decision-card-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}

.decision-card-actions .refresh-btn {
  min-height: 36px;
  padding: 0 12px;
  font-size: 12px;
}

.review-nav-link {
  color: var(--blue);
  text-decoration: none;
}

.review-nav-link {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(104, 167, 255, 0.28);
  border-radius: 8px;
  padding: 0 8px;
  background: rgba(104, 167, 255, 0.1);
  font-size: 12px;
  font-weight: 850;
  white-space: nowrap;
}

.review-nav-link:hover {
  color: var(--teal);
}

.decision-card-head span.ok,
.engine-metric.ok strong {
  color: var(--green);
}

.decision-card-head span.risk,
.engine-metric.risk strong {
  color: var(--rose);
}

.decision-card-head span.warn,
.engine-metric.warn strong {
  color: var(--gold);
}

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

.account-decision-card .engine-account-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.permission-card .engine-permission-grid .engine-metric:first-child {
  grid-column: 1 / -1;
}

.home-page .account-decision-card .engine-account-strip {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-page .engine-permission-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.engine-metric {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px;
  background: var(--panel-soft);
}

.engine-account-strip .engine-metric,
.engine-permission-grid .engine-metric {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.engine-metric.wide {
  grid-column: 1 / -1;
}

.engine-metric span {
  display: block;
  color: var(--muted);
  font-size: 11px;
}

.engine-metric strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.2;
}

.engine-account-strip .engine-metric span,
.engine-account-strip .engine-metric strong,
.engine-permission-grid .engine-metric span,
.engine-permission-grid .engine-metric strong {
  display: inline;
  margin-top: 0;
  white-space: nowrap;
}

.engine-account-strip .engine-metric strong,
.engine-permission-grid .engine-metric strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: right;
}

.engine-account-strip .engine-metric.wide strong {
  white-space: normal;
}

.account-safety-summary {
  margin-top: 8px;
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.account-safety-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
  font-size: 12px;
}

.account-safety-head span,
.account-safety-summary p {
  color: var(--muted);
}

.account-safety-head strong {
  color: var(--green);
  font-size: 12px;
}

.account-safety-head strong.risk {
  color: var(--rose);
}

.account-safety-summary p {
  margin: 7px 0 0;
  font-size: 11px;
  line-height: 1.4;
}

.permission-card.red,
.permission-card.yellow {
  border-color: rgba(255, 107, 138, 0.36);
}

.permission-card.blue {
  border-color: rgba(104, 167, 255, 0.38);
}

.permission-card.green {
  border-color: rgba(91, 227, 139, 0.32);
}

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

.review-loop-card {
  grid-column: 1 / -1;
}

.conclusion-card > strong {
  display: block;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.35;
}

.conclusion-card > p {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.conclusion-card > p span {
  min-width: 0;
  display: grid;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px;
  background: var(--panel-soft);
  overflow-wrap: anywhere;
}

.conclusion-card > p b {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.1;
}

/* ── Portfolio Review & Sector Analysis ──────────────────────── */
.portfolio-health-section {
  border-top: 1px solid var(--line);
  padding-top: 10px;
  margin-bottom: 8px;
}
.health-score-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.health-score-row span { font-size: 13px; color: var(--muted); }
.health-score-row strong { font-size: 24px; font-weight: 900; }
.health-score-row strong.ok   { color: var(--green); }
.health-score-row strong.warn { color: var(--gold); }
.health-score-row strong.risk { color: var(--rose); }
.health-score-row em {
  font-size: 11px; font-style: normal; font-weight: 700;
  padding: 1px 6px; border-radius: 4px;
}
.health-score-row em.ok   { color: var(--green); background: rgba(91,227,139,.12); }
.health-score-row em.warn { color: var(--gold);  background: rgba(242,189,92,.12); }
.health-score-row em.risk { color: var(--rose); background: rgba(255,107,138,.12); }

.health-line { font-size: 12px; line-height: 1.4; }
.health-line.risk    { color: var(--rose); }
.health-line.ok      { color: var(--green); }
.health-line.summary { color: var(--text-soft, #8b95a7); font-weight: 600; }

.sector-outlook-section {
  border-top: 1px solid var(--line);
  padding-top: 6px;
  margin-bottom: 4px;
}
.outlook-head span { color: var(--teal); font-size: 11px; font-weight: 700; }
.outlook-details > summary {
  color: var(--teal); font-size: 11px; font-weight: 700;
  cursor: pointer; list-style: none; padding: 2px 0;
}
.outlook-details > summary::-webkit-details-marker { display: none; }
.outlook-details[open] > summary { margin-bottom: 4px; }
.outlook-hint { font-size: 12px; line-height: 1.5; color: var(--text-soft, #8b95a7); margin: 0; }

/* Unified sector row: name | momentum bar | score | weight% | PnL */
.sector-unified-item { border-bottom: 1px solid color-mix(in srgb, var(--line) 55%, transparent); }
.sector-unified-item:last-child { border-bottom: 0; }
.sector-unified-row {
  display: grid;
  grid-template-columns: 58px minmax(36px, 1fr) 24px 64px 78px;
  align-items: center;
  gap: 4px;
  padding: 5px 0;
}
.sector-name { font-size: 11px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sector-mom-bar { height: 6px; background: var(--panel-soft); border-radius: 3px; overflow: hidden; }
.sector-mom-bar.is-empty { background: repeating-linear-gradient(135deg, var(--panel-soft), var(--panel-soft) 4px, var(--panel-softer) 4px, var(--panel-softer) 8px); }
.sector-mom-fill { height: 100%; border-radius: 3px; }
.sector-mom-fill.ok  { background: var(--green); }
.sector-mom-fill.warn { background: var(--gold); }
.sector-mom-fill.risk { background: var(--rose); }
.sector-unified-row strong { font-size: 11px; text-align: right; }
.sector-unified-row strong.ok  { color: var(--green); }
.sector-unified-row strong.warn { color: var(--gold); }
.sector-unified-row strong.risk { color: var(--rose); }
.sector-unified-row em { font-size: 10px; color: var(--ink); text-align: right; white-space: nowrap; }
.sector-unified-row em i { display: block; font-size: 8px; font-style: normal; color: var(--muted); }
.sector-unified-row b { min-width: 0; font-size: 10px; text-align: right; white-space: nowrap; }
.sector-unified-row b i { display: block; overflow: hidden; color: var(--muted); font-size: 8px; font-style: normal; text-overflow: ellipsis; }
.sector-unified-row b.positive { color: var(--green); }
.sector-unified-row b.negative { color: var(--rose); }
.sector-target-range-line {
  display: grid;
  grid-template-columns: 58px minmax(36px, 1fr) 64px;
  align-items: center;
  gap: 4px;
  padding: 0 0 6px;
}
.sector-target-range-label,
.sector-target-range-value { color: var(--muted); font-size: 9px; }
.sector-target-range-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sector-target-range-value { text-align: right; white-space: nowrap; }
.sector-target-range-track {
  position: relative;
  height: 7px;
  background: var(--panel-soft);
  border-radius: 4px;
}
.sector-target-range-track.is-empty { background: repeating-linear-gradient(135deg, var(--panel-soft), var(--panel-soft) 4px, var(--panel-softer) 4px, var(--panel-softer) 8px); }
.sector-target-range-band {
  position: absolute;
  top: 0;
  bottom: 0;
  min-width: 2px;
  background: rgba(65, 214, 195, .32);
  border-left: 1px solid var(--teal);
  border-right: 1px solid var(--teal);
  border-radius: 4px;
}
.sector-target-range-current {
  position: absolute;
  top: -3px;
  width: 3px;
  height: 13px;
  transform: translateX(-50%);
  border-radius: 2px;
  background: var(--teal);
  box-shadow: 0 0 0 1px rgba(8, 16, 24, .75);
}
.sector-target-range-current.under { background: var(--gold); }
.sector-target-range-current.over { background: var(--rose); }
.sector-composition-note { display: block; padding: 0 0 5px 2px; color: var(--muted); font-size: 9px; line-height: 1.35; }

/* ── 今日决策卡（市场与许可 + 核心结论 合并）────────────── */
.today-decision-card > strong {
  display: block;
  color: var(--ink);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 8px;
  white-space: normal;
  overflow-wrap: anywhere;
}
.today-decision-card > strong.ok  { color: var(--green); }
.today-decision-card > strong.warn { color: var(--gold); }
.today-decision-card > strong.risk { color: var(--rose); }

.decision-ai-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin-bottom: 6px;
}

.decision-action-cards {
  display: grid;
  gap: 6px;
}

.decision-action-card {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 7px 8px;
  background: var(--panel-soft);
}

.decision-action-card > em {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(104, 167, 255, 0.14);
  color: var(--blue);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}

.decision-action-card div { min-width: 0; }
.decision-action-card strong,
.decision-action-card span { display: block; }
.decision-action-card strong { color: var(--ink); font-size: 12px; }
.decision-action-card span { color: var(--muted); font-size: 11px; line-height: 1.35; margin-top: 2px; }
.decision-action-card > b { font-size: 12px; color: var(--muted); }
.decision-action-card.risk { border-color: rgba(255, 107, 138, 0.42); }
.decision-action-card.risk > b { color: var(--rose); }
.decision-action-card.opportunity { border-color: rgba(91, 227, 139, 0.35); }
.decision-action-card.opportunity > b { color: var(--green); }
.decision-action-card.watch { border-color: rgba(104, 167, 255, 0.28); }
.decision-action-card.watch > b { color: var(--blue); }
.decision-action-card.ok { border-color: rgba(91, 227, 139, 0.35); }
.decision-action-card.ok > b { color: var(--green); }
.professional-decision-actions .decision-action-card {
  grid-template-columns: 18px minmax(0, 1fr) auto;
  gap: 5px;
  align-items: start;
  min-height: 0;
  padding: 7px;
}
.professional-decision-actions .decision-action-card > em {
  width: 18px;
  height: 18px;
  font-size: 9px;
}
.professional-decision-actions .decision-action-card > div {
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
}
.professional-decision-actions .decision-action-card strong,
.professional-decision-actions .decision-action-card span {
  display: block;
  font-size: 11px;
  line-height: 1.4;
}
.professional-decision-actions .decision-action-card span {
  margin: 2px 0 0;
  font-size: 10px;
}
.professional-decision-actions .decision-action-card > b {
  align-self: start;
  font-size: 11px;
  line-height: 1.4;
  white-space: nowrap;
}

.decision-journal-actions {
  grid-column: 2 / -1;
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
  padding-top: 5px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.professional-decision-actions .decision-journal-actions {
  overflow: visible;
  white-space: normal;
}

.journal-action {
  min-height: 34px;
  border: 1px solid rgba(104, 167, 255, 0.28);
  border-radius: 6px;
  padding: 3px 6px;
  background: rgba(104, 167, 255, 0.08);
  color: var(--muted);
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

@media (min-width: 900px) {
  .home-page .shell {
    width: min(1180px, 100%);
    padding-inline: 20px;
  }

  .home-page .review-engine-panel {
    grid-template-columns: minmax(390px, 430px) minmax(0, 1fr);
    grid-template-areas:
      "banner banner"
      "command holdings"
      "risk holdings"
      "attribution holdings"
      "sector holdings";
    align-items: start;
    gap: 12px;
  }

  .home-page .data-block-banner { grid-area: banner; }
  .home-page .command-console { grid-area: command; }
  .home-page .risk-summary-drawer { grid-area: risk; }
  .home-page .attribution-drawer { grid-area: attribution; }
  .home-page .sector-pnl-card { grid-area: sector; }
  .home-page .dashboard-grid { grid-area: holdings; }

  .home-page #growthScreenerPanel {
    width: min(430px, 100%);
  }
}

/* Operation review: conclusion-first mobile hierarchy. */
.operation-score-section {
  padding: 12px;
}

.operation-score-section.loading {
  opacity: .72;
}

.operation-score-section.loading #operationPeriod {
  cursor: progress;
}

.operation-review-hero {
  display: grid;
  grid-template-columns: minmax(112px, .78fr) minmax(0, 1.35fr);
  gap: 0;
  margin-top: 10px;
  overflow: hidden;
  border: 1px solid #2a4051;
  border-radius: 11px;
  background: #0b1924;
}

.operation-review-hero .operation-score-summary {
  display: grid;
  align-content: center;
  gap: 3px;
  margin: 0;
  padding: 14px 13px;
  border-right: 1px solid #2a4051;
}

.operation-review-hero .operation-score-summary > span {
  padding: 0;
  border: 0;
  background: transparent;
  color: #a7b5c1;
  font-size: 11px;
  font-weight: 800;
}

.operation-review-hero .operation-score-summary > strong {
  color: #5ad9ca;
  font-size: 51px;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.06em;
  line-height: .98;
}

.operation-review-hero .operation-score-summary > strong small {
  margin-left: 3px;
  font-size: 15px;
  letter-spacing: 0;
}

.operation-review-hero .operation-score-summary > em {
  width: max-content;
  max-width: 100%;
  border: 1px solid #345264;
  border-radius: 999px;
  padding: 3px 7px;
  color: #9eb0bd;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}

.operation-review-hero .operation-score-summary > em.good {
  border-color: rgba(65, 214, 195, .34);
  background: rgba(65, 214, 195, .08);
  color: #67dfd0;
}

.operation-review-hero .operation-score-summary > em.warn {
  border-color: rgba(242, 189, 92, .34);
  color: #f2bd5c;
}

.operation-review-hero .operation-score-summary > em.risk {
  border-color: rgba(255, 107, 118, .34);
  color: #ff7f86;
}

.operation-review-hero .operation-score-summary > small {
  color: #80909e;
  font-size: 9px;
  line-height: 1.3;
}

.operation-review-hero .operation-score-summary > small.negative {
  color: #ff7f86;
}

.operation-primary-issue {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: center;
  gap: 7px 10px;
  padding: 14px;
}

.operation-primary-issue > span {
  grid-column: 1 / -1;
  color: #ff7f86;
  font-size: 11px;
  font-weight: 900;
}

.operation-primary-issue > strong {
  min-width: 0;
  color: #f4f7fa;
  font-size: 17px;
  line-height: 1.25;
}

.operation-primary-issue > b {
  align-self: center;
  color: #ff6b76;
  font-size: 24px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  white-space: nowrap;
}

.operation-primary-issue > b i {
  font-style: normal;
}

.operation-primary-issue > b small {
  margin-left: 2px;
  color: #a0adba;
  font-size: 10px;
}

.operation-primary-issue > em {
  grid-column: 1 / -1;
  color: #8c9aa7;
  font-size: 10px;
  font-style: normal;
  line-height: 1.35;
}

.operation-primary-issue > em.positive { color: #5ad9ca; }
.operation-primary-issue > em.negative { color: #ff7f86; }

.operation-score-meta {
  margin: 8px 1px 0;
  color: #93a3af;
  font-size: 11px;
}

.operation-score-scope {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding: 11px 13px;
  border: 1px solid #2a4051;
  border-radius: 10px;
  background: #0b1924;
}

.operation-score-scope > div {
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 2px 8px;
}

.operation-score-scope > div > span {
  color: #d9e2e8;
  font-size: 13px;
  font-weight: 850;
}

.operation-score-scope > div > strong {
  color: #5ad9ca;
  font-size: 23px;
  line-height: 1;
}

.operation-score-scope > div > strong small {
  margin-left: 2px;
  font-size: 10px;
}

.operation-score-scope > div > small {
  grid-column: 1 / -1;
  color: #83929f;
  font-size: 10px;
  line-height: 1.35;
}

.operation-score-scope > p {
  max-width: 132px;
  margin: 0;
  padding: 0 0 0 12px;
  border-top: 0;
  border-left: 1px solid #2a4051;
  color: #7f8f9d;
  font-size: 10px;
  line-height: 1.4;
}

.operation-track-panel {
  margin-top: 10px;
  overflow: hidden;
  border: 1px solid #2a4051;
  border-radius: 11px;
  padding: 0;
  background: #0a1721;
}

.operation-track-head {
  min-height: 48px;
  padding: 0 13px;
  cursor: pointer;
  list-style-position: inside;
}

.operation-track-head > strong {
  margin-right: auto;
  color: #f0f5f8;
  font-size: 14px;
}

.operation-track-head > span {
  border-radius: 999px;
  padding: 4px 8px;
  background: #142534;
  color: #95a5b2;
  font-size: 9px;
  font-weight: 800;
}

.operation-track-head > span.risk {
  background: rgba(255, 107, 118, .1);
  color: #ff7f86;
}

.operation-track-head > span.good {
  background: rgba(65, 214, 195, .09);
  color: #5ad9ca;
}

.operation-track-body {
  padding: 0 12px 12px;
  border-top: 1px solid #253b4b;
}

.operation-track-legends {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding-top: 10px;
}

.operation-type-legend,
.operation-score-legend {
  color: #8b9ba8;
  font-size: 9px;
  line-height: 1.35;
}

.operation-score-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px 8px;
  margin: 0;
}

.operation-score-legend .good { color: #5ad9ca; }
.operation-score-legend .warn { color: #f2bd5c; }
.operation-score-legend .risk { color: #ff7f86; }

.operation-chart-hint {
  margin: 6px 0 0;
  color: #718291;
  font-size: 10px;
}

.operation-chart-wrap {
  margin-top: 2px;
}

#operationTrendChart {
  height: 172px;
}

.operation-chart-direction {
  margin-bottom: 7px;
}

.operation-trend-detail {
  min-height: 64px;
  border-color: #294151;
  border-radius: 8px;
  background: #0d1b26;
}

.operation-score-distribution {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 9px;
  overflow: hidden;
  border: 1px solid #294151;
  border-radius: 8px;
  background: #0b1924;
}

.operation-score-distribution > span {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 6px;
  padding: 9px;
  color: #8c9aa7;
  font-size: 10px;
}

.operation-score-distribution > span + span {
  border-left: 1px solid #294151;
}

.operation-score-distribution b {
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.operation-score-distribution small {
  grid-column: 1 / -1;
  color: #6f808e;
  font-size: 9px;
}

.operation-score-distribution .good b { color: #5ad9ca; }
.operation-score-distribution .warn b { color: #f2bd5c; }
.operation-score-distribution .risk b { color: #ff7f86; }

.operation-review-insights {
  gap: 7px;
  margin-top: 10px;
}

.operation-review-insights > div {
  padding: 10px;
}

@media (max-width: 360px) {
  .operation-review-hero {
    grid-template-columns: 108px minmax(0, 1fr);
  }

  .operation-review-hero .operation-score-summary,
  .operation-primary-issue {
    padding: 12px 10px;
  }

  .operation-review-hero .operation-score-summary > strong {
    font-size: 45px;
  }

  .operation-primary-issue > strong {
    font-size: 15px;
  }

  .operation-primary-issue > b {
    font-size: 21px;
  }

  .operation-score-scope > p {
    max-width: 112px;
  }

  #operationTrendChart {
    height: 158px;
  }
}

.journal-action:hover,
.journal-action.selected {
  border-color: var(--teal);
  background: rgba(65, 214, 195, 0.12);
  color: var(--teal);
}

.journal-action:disabled { cursor: wait; opacity: .55; }
.decision-journal-actions small { color: var(--muted); font-size: 10px; line-height: 1.3; }

.decision-journal-summary {
  margin: 7px 0 8px;
  border: 1px solid rgba(242, 189, 92, 0.24);
  border-radius: 7px;
  padding: 6px 8px;
  background: rgba(242, 189, 92, 0.07);
  color: var(--gold);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.35;
}

.decision-journal-summary.complete {
  border-color: rgba(91, 227, 139, 0.24);
  background: rgba(91, 227, 139, 0.07);
  color: var(--green);
}

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

.command-health-grid .engine-metric { min-height: 52px; }
.command-health-note { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }

.risk-summary-drawer { padding: 0; overflow: hidden; }
.risk-summary-drawer > summary.decision-card-head {
  min-height: 52px;
  margin: 0;
  padding: 0 12px;
  cursor: pointer;
  list-style: none;
}
.risk-summary-drawer > summary::-webkit-details-marker { display: none; }
.risk-summary-drawer > summary > div { min-width: 0; display: grid; gap: 2px; }
.risk-summary-drawer > summary h2 { margin: 0; }
.risk-summary-drawer > summary small { color: var(--muted); font-size: 11px; font-weight: 650; }
.risk-summary-drawer > summary b { color: var(--teal); font-size: 11px; }
.risk-summary-drawer[open] > summary b::after { content: "收起"; }
.risk-summary-drawer[open] > summary b { font-size: 0; }
.risk-summary-drawer[open] > summary b::after { font-size: 11px; }
.exception-center-list { display: grid; gap: 6px; padding: 0 12px 12px; }
.exception-item {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 8px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--blue);
  border-radius: 7px;
  padding: 7px 8px;
  background: var(--panel-soft);
}
.exception-item strong { color: var(--ink); font-size: 11px; }
.exception-item span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.exception-item.risk { border-left-color: var(--rose); }
.exception-item.warn { border-left-color: var(--gold); }
.exception-item.ok { border-left-color: var(--green); }

.risk-summary-drawer .risk-radar-card,
.risk-summary-drawer .stress-test-card {
  margin: 0 12px 12px;
  border-color: var(--line);
  box-shadow: none;
}

.risk-summary-drawer .stress-test-card { margin-top: -4px; }

.collapsible-decision-card { padding: 0; overflow: hidden; }
.collapsible-decision-card > summary.decision-card-head {
  min-height: 54px;
  margin: 0;
  padding: 0 12px;
  cursor: pointer;
  list-style: none;
}
.collapsible-decision-card > summary::-webkit-details-marker { display: none; }
.collapsible-decision-card > summary > div { min-width: 0; display: grid; gap: 2px; }
.collapsible-decision-card > summary h2 { margin: 0; }
.collapsible-decision-card > summary small { color: var(--muted); font-size: 11px; font-weight: 650; }
.collapsible-decision-card > summary > span { color: var(--teal); font-size: 11px; }
.collapsible-decision-card > summary::after { content: "展开"; color: var(--teal); font-size: 11px; font-weight: 800; }
.collapsible-decision-card[open] > summary::after { content: "收起"; }
.collapsible-decision-body { padding: 0 12px 12px; }
.collapsible-decision-body .portfolio-health-section { margin-top: 0; }

.performance-window-list { display: grid; gap: 6px; }
.performance-window {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-left: 3px solid var(--blue);
  border-radius: 7px;
  padding: 7px 8px;
  background: var(--panel-soft);
}
.performance-window.ok { border-left-color: var(--green); }
.performance-window.risk { border-left-color: var(--rose); }
.performance-window div { min-width: 0; }
.performance-window strong,
.performance-window span { display: block; }
.performance-window strong { color: var(--ink); font-size: 12px; }
.performance-window span,
.performance-window em { color: var(--muted); font-size: 10px; font-style: normal; line-height: 1.35; }
.performance-window > b { color: var(--ink); font-size: 13px; text-align: right; }
.performance-window.ok > b { color: var(--green); }
.performance-window.risk > b { color: var(--rose); }
.performance-window > b i { display: block; margin-top: 1px; color: var(--muted); font-size: 10px; font-style: normal; font-weight: 650; }
.performance-window > em { grid-column: 1 / -1; }

.attribution-split { display: grid; gap: 8px; margin-top: 8px; }
.attribution-card {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px;
  background: var(--panel-soft);
}
.attribution-card h3 { margin: 0; color: var(--muted); font-size: 11px; font-weight: 800; }
.attribution-card > strong { color: var(--ink); font-size: 16px; }
.attribution-card > strong.ok { color: var(--green); }
.attribution-card > strong.risk { color: var(--rose); }
.attribution-card > small { color: var(--muted); font-size: 10px; line-height: 1.35; }
.attribution-line {
  display: grid;
  grid-template-columns: 60px minmax(42px, 1fr) auto;
  gap: 6px;
  align-items: baseline;
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: 6px;
}
.attribution-line span { color: var(--muted); font-size: 10px; }
.attribution-line strong { min-width: 0; overflow: hidden; color: var(--ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.attribution-line b { color: var(--muted); font-size: 10px; text-align: right; white-space: nowrap; }
.attribution-line.ok b { color: var(--green); }
.attribution-line.risk b { color: var(--rose); }
.behavior-summary {
  display: grid;
  gap: 2px;
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: 6px;
}
.behavior-summary strong { color: var(--gold); font-size: 11px; }
.behavior-summary.ok strong { color: var(--green); }
.behavior-summary span { color: var(--muted); font-size: 10px; line-height: 1.35; }
.attribution-freshness { display: block; margin-top: 8px; color: var(--muted); font-size: 10px; line-height: 1.35; }

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

.risk-radar-grid .engine-metric { padding: 8px; }
.risk-radar-grid .engine-metric strong { font-size: 12px; }
.risk-radar-note,
.stress-test-note {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}

.data-freshness {
  display: block;
  margin-top: 7px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.sector-pnl-list + .compact-toggle {
  margin-top: 7px;
}

.stress-test-list { display: grid; gap: 6px; }
.stress-test-summary {
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}
.stress-test-details {
  margin-top: 8px;
  border-top: 1px solid var(--line);
  padding-top: 7px;
}
.stress-test-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  cursor: pointer;
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
  list-style: none;
}
.stress-test-details > summary::-webkit-details-marker { display: none; }
.stress-test-details > summary::after { content: "展开"; color: var(--teal); }
.stress-test-details[open] > summary::after { content: "收起"; }
.stress-test-details > summary small { color: var(--muted); font-size: 10px; font-weight: 600; margin-left: auto; }
.stress-test-details .stress-test-list { margin-top: 8px; }
.stress-test-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px;
  background: var(--panel-soft);
}
.stress-test-row div { min-width: 0; }
.stress-test-row strong,
.stress-test-row span { display: block; }
.stress-test-row strong { color: var(--ink); font-size: 12px; }
.stress-test-row span { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.stress-test-row > b { text-align: right; color: var(--rose); font-size: 13px; white-space: nowrap; }
.stress-test-row > b i { display: block; margin-top: 2px; font-size: 10px; font-style: normal; font-weight: 600; }

.ai-action-item {
  font-size: 12px;
  color: var(--ink);
  line-height: 1.45;
}

.ai-action-item em {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-right: 4px;
  border-radius: 50%;
  background: rgba(104, 167, 255, 0.12);
  color: var(--blue);
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
  vertical-align: -1px;
}


.decision-perm-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 6px 8px;
  background: var(--panel-soft);
  border-radius: 6px;
  margin-bottom: 8px;
  font-size: 11px;
  color: var(--muted);
  text-align: center;
  align-items: center;
}
.decision-perm-strip span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.decision-perm-strip b { font: inherit; font-weight: 600; }
.decision-perm-strip i {
  display: block;
  font-style: normal;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  margin-top: 1px;
}
.decision-perm-strip #enginePermMax {
  display: inline;
  margin-top: 0;
  vertical-align: middle;
}
.decision-perm-strip i.risk { color: var(--rose); }
.decision-perm-strip i.ok   { color: var(--green); }
.decision-perm-strip i.warn { color: var(--gold); }

.decision-context {
  display: flex;
  gap: 10px;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.decision-context .risk { color: var(--rose); }
.decision-context .ok   { color: var(--green); }
.decision-context .warn { color: var(--gold); }

.decision-limit-details {
  margin-top: 2px;
  border-top: 1px solid var(--line);
}
.decision-limit-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 28px;
  color: var(--muted);
  font-size: 11px;
  cursor: pointer;
  list-style: none;
}
.decision-limit-details summary::-webkit-details-marker { display: none; }
.decision-limit-details summary::before { content: "›"; color: var(--blue); font-size: 16px; line-height: 1; }
.decision-limit-details[open] summary::before { transform: rotate(90deg); }
.decision-limit-details summary small { margin-left: auto; color: var(--muted); font-size: 10px; }
.decision-limit-details .decision-context { padding-top: 4px; }
.decision-limit-details .engine-tag-list { padding: 2px 0 6px; }

.engine-news-signal {
  display: grid;
  gap: 5px;
  margin-top: 8px;
  border: 1px solid rgba(104, 167, 255, 0.2);
  border-radius: 8px;
  padding: 8px;
  background: var(--panel-soft);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.engine-news-signal span {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 6px;
}

.engine-news-signal b {
  color: var(--gold);
  font-size: 11px;
}

.engine-news-signal.risk {
  border-color: rgba(255, 107, 138, 0.32);
  color: #ffd4dd;
}

.engine-news-signal.ok {
  border-color: rgba(91, 227, 139, 0.28);
  color: #caf7d8;
}

.engine-action-list,
.engine-deviation-list,
.engine-detail-body {
  display: grid;
  gap: 7px;
}

.engine-action-row,
.engine-deviation-row,
.engine-position-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 52px 62px minmax(0, 1fr) minmax(72px, auto);
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px;
  background: var(--panel-soft);
  font-size: 12px;
}

.engine-action-row {
  grid-template-columns: 1fr;
  gap: 7px;
  align-items: stretch;
}

.engine-action-top {
  display: grid;
  grid-template-columns: 56px 56px minmax(70px, auto);
  gap: 8px;
  align-items: center;
}

.engine-action-top em {
  color: var(--muted);
  font-style: normal;
  text-align: right;
}

.engine-exec-check {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;
}

.engine-exec-check span {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3px;
  border: 1px solid rgba(104, 167, 255, 0.18);
  border-radius: 7px;
  padding: 4px 5px;
  background: rgba(104, 167, 255, 0.07);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.1;
}

.engine-exec-check i {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-style: normal;
}

.engine-exec-check b { flex: 0 0 auto; font-size: 13px; }
.engine-exec-check b.ck-ok { color: var(--green); }
.engine-exec-check b.ck-no { color: var(--rose); }
.engine-exec-check b.ck-pend { color: var(--gold); }

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

.engine-action-fields.primary {
  grid-template-columns: minmax(0, 1.45fr) minmax(78px, 0.65fr) minmax(0, 1fr);
}

.home-page .engine-action-fields.primary {
  grid-template-columns: 1fr;
}

.engine-action-fields span {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 5px;
  color: var(--muted);
  line-height: 1.35;
}

.engine-action-fields span.wide {
  grid-column: 1 / -1;
}

.engine-action-fields i {
  flex: 0 0 auto;
  color: var(--muted);
  font-style: normal;
}

.engine-action-fields b {
  min-width: 0;
  color: var(--ink);
  font-weight: 750;
  overflow-wrap: anywhere;
}

.engine-action-fields .news {
  align-items: start;
}

.engine-action-fields .news a,
.engine-action-fields .news span {
  min-width: 0;
  color: var(--blue);
  font-weight: 750;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.engine-action-detail {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: 5px;
}

.engine-action-detail summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  list-style-position: inside;
}

.engine-action-detail[open] summary {
  margin-bottom: 6px;
  color: var(--blue);
}

.engine-action-note,
.engine-candidate-line {
  border: 1px solid rgba(104, 167, 255, 0.2);
  border-radius: 8px;
  padding: 7px 8px;
  background: var(--panel-soft);
  color: var(--muted);
  font-size: 12px;
}

.engine-action-note {
  color: var(--gold);
  font-weight: 850;
}

.engine-candidate-line {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.engine-candidate-line strong {
  color: var(--ink);
}

.engine-candidate-line em {
  color: var(--muted);
  font-style: normal;
}

.engine-action-row strong,
.engine-deviation-row strong,
.engine-position-row strong {
  color: var(--ink);
  font-size: 14px;
}


.engine-action-row b {
  color: var(--teal);
}

.engine-action-row > span,
.engine-position-row span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
}

.engine-action-row > em,
.engine-deviation-row em,
.engine-position-row em {
  min-width: 0;
  color: var(--muted);
  font-style: normal;
  text-align: right;
}

.engine-action-row.risk,
.engine-action-row.blocked {
  border-color: rgba(255, 107, 138, 0.26);
}

.engine-action-row.warn {
  border-color: rgba(242, 189, 92, 0.28);
}

.engine-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.engine-tag-list span {
  border: 1px solid rgba(255, 107, 138, 0.28);
  border-radius: 8px;
  padding: 6px 8px;
  background: rgba(255, 107, 138, 0.08);
  color: #ffd4dd;
  font-size: 12px;
  font-weight: 800;
}

.engine-tag-list span i {
  margin-left: 5px;
  padding-left: 5px;
  border-left: 1px solid rgba(255, 255, 255, 0.18);
  color: var(--muted);
  font-style: normal;
  font-weight: 600;
  font-size: 11px;
}

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

.engine-deviation-row.task {
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: start;
}

.engine-deviation-row.task span,
.engine-deviation-row.task em {
  white-space: normal;
}

.engine-deviation-row.task em {
  grid-column: 2;
  text-align: left;
}

.engine-deviation-row span {
  color: var(--gold);
}

.review-detail-drawers {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.review-detail-drawers details {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  overflow: hidden;
}

.review-detail-drawers summary {
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 0 12px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 850;
  cursor: pointer;
}

.engine-detail-body {
  padding: 0 12px 12px;
}

.engine-detail-body:has(.engine-metric),
.engine-detail-body.engine-metric-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.engine-detail-body .engine-metric {
  min-height: 0;
}

.engine-detail-body .engine-metric span,
.engine-detail-body .engine-metric strong {
  display: inline;
  margin: 0;
}

.engine-detail-body .engine-metric span::after {
  content: " ";
}

.engine-detail-body p {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.data-quality-panel,
.trade-gate-panel,
.cockpit-panel,
.account-gate-panel,
.market-gate-panel,
.review-queue-panel,
.forbidden-panel,
.sector-composition-panel,
.audit-panel,
.news-radar-panel {
  display: none;
}

@media (max-width: 760px) {
  .review-engine-panel {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .decision-card {
    padding: 10px;
  }

  .decision-card-head {
    margin-bottom: 8px;
  }

  .engine-account-strip,
  .engine-permission-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .account-decision-card .engine-account-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-page .engine-account-strip .return-primary {
    border-color: rgba(65, 214, 195, 0.34);
    background: rgba(65, 214, 195, 0.08);
  }

  .home-page .engine-account-strip .return-primary strong {
    font-size: 15px;
  }

  .conclusion-card > strong {
    font-size: 16px;
  }

  .conclusion-card > p {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .engine-action-row {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .engine-action-top {
    grid-template-columns: 48px 48px minmax(64px, auto);
  }

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

  .engine-action-fields.primary {
    grid-template-columns: 1fr;
  }

  .engine-action-fields span.wide {
    grid-column: 1 / -1;
  }

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

  .engine-deviation-row em {
    grid-column: auto;
    text-align: right;
  }

  .review-detail-drawers summary {
    min-height: 38px;
  }

  .gate-grid,
  .action-card-grid,
  .gate-stop-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .action-layer-cards,
  .audit-grid,
  .catalyst-grid {
    grid-template-columns: 1fr;
  }

  .gate-metric {
    min-height: 52px;
    padding: 8px;
  }

  .gate-metric span {
    font-size: 11px;
  }

  .gate-metric strong {
    font-size: 12px;
  }

  .trade-light-card {
    padding: 10px;
  }

  .trade-light-card b {
    font-size: 18px;
  }

  .gate-summary,
  .trade-light-card p,
  .holding-card-role,
  .holding-card-reasons,
  .holding-card-foot span:first-child {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .action-rules p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
  }

  .action-card {
    padding: 10px;
  }

  .action-card-grid .gate-metric:nth-child(-n+2) {
    display: none;
  }

  .action-card-grid {
    display: none;
  }

  .action-rules {
    gap: 4px;
    margin-top: 8px;
  }

  .action-card-foot span,
  .briefing-mini li,
  .briefing-mini span {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .audit-row {
    grid-template-columns: 1fr 1fr;
  }

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

  .sector-trade-meaning,
  .action-card-head,
  .action-card-foot {
    display: grid;
  }

  .sector-trade-meaning {
    grid-column: 2;
    width: 100%;
  }

  .sector-trade-meaning b {
    text-align: left;
  }
}

h1,
h2,
p {
  margin: 0;
}

h1 {
  font-size: clamp(28px, 8vw, 44px);
  line-height: 1.04;
  letter-spacing: 0;
}

h2 {
  font-size: 18px;
  letter-spacing: 0;
}

.refresh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  touch-action: manipulation;
  text-decoration: none;
}

.mini-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  margin-top: 5px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 8px;
  background: var(--panel-soft);
  color: var(--teal);
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
  text-decoration: none;
}

.visibility-toggle {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  cursor: pointer;
  touch-action: manipulation;
}

.visibility-toggle svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.visibility-toggle .eye-closed,
.visibility-toggle.is-hidden .eye-open {
  display: none;
}

.visibility-toggle.is-hidden .eye-closed {
  display: block;
}

.refresh-btn:disabled {
  cursor: progress;
  opacity: 0.72;
}

.refresh-btn:hover,
.visibility-toggle:hover,
.text-toggle:hover {
  filter: brightness(1.08);
}

button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 2px;
}

.login-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom));
  background:
    linear-gradient(160deg, rgba(65, 214, 195, 0.14), transparent 320px),
    rgba(8, 16, 24, 0.94);
  backdrop-filter: blur(10px);
}

.login-card {
  width: min(100%, 352px);
  border: 1px solid rgba(65, 214, 195, 0.22);
  border-radius: 8px;
  padding: 18px;
  background: rgba(16, 26, 36, 0.96);
  box-shadow: var(--mobile-shadow);
}

.login-card h2 {
  margin: 0;
  color: var(--ink);
  font-size: 22px;
  line-height: 1.15;
}

.login-card p {
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
}

.login-card input {
  width: 100%;
  min-height: 46px;
  margin-top: 18px;
  border: 1px solid rgba(104, 167, 255, 0.24);
  border-radius: 8px;
  padding: 0 12px;
  outline: none;
  background: var(--panel-soft);
  color: var(--ink);
}

.login-card input:focus {
  border-color: rgba(65, 214, 195, 0.72);
}

.login-card button {
  width: 100%;
  min-height: 46px;
  margin-top: 12px;
  border: 0;
  border-radius: 8px;
  background: var(--teal);
  color: #06221e;
  font-weight: 900;
  cursor: pointer;
}

.login-error {
  margin-top: 8px;
  color: var(--rose);
  font-size: 12px;
}

.login-error[hidden] {
  display: none;
}

.metric-head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.metric-head > span {
  flex: 0 0 auto;
}

.metric-head > strong {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}

.metric-head > .refresh-btn {
  flex: 0 0 auto;
}

.text-toggle {
  width: 100%;
  min-height: 40px;
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
  color: var(--ink);
  font-weight: 800;
  cursor: pointer;
  touch-action: manipulation;
}

.text-toggle[hidden] {
  display: none;
}

/* 紧凑内联按钮(panel-head 内,不撑坏 flex 布局) */
.panel-head .refresh-btn {
  flex: 0 0 auto;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 4px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
  color: var(--ink);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.panel-head .refresh-btn:hover:not(:disabled) {
  border-color: var(--teal);
  color: var(--teal);
}
.panel-head .refresh-btn:disabled {
  opacity: 0.6;
  cursor: default;
}

.sort-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin: -4px 0 7px;
}

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

.sort-tabs button,
.filter-tabs button {
  min-width: 0;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.sort-tabs button[aria-pressed="true"],
.filter-tabs button[aria-pressed="true"] {
  border-color: rgba(65, 214, 195, 0.42);
  background: rgba(65, 214, 195, 0.13);
  color: var(--teal);
}

.holding-tab-summary {
  display: flex;
  gap: 6px;
  margin: -3px 0 10px;
}

.holding-tab-summary span {
  min-width: 0;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 6px 8px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.holding-tab-summary span.risk { border-color: rgba(255, 107, 138, 0.25); }
.holding-tab-summary span.warning { border-color: rgba(242, 189, 92, 0.25); }
.holding-tab-summary span.ok { border-color: rgba(65, 214, 195, 0.25); }
.holding-tab-summary span.risk b { color: var(--rose); }
.holding-tab-summary span.warning b { color: var(--gold); }
.holding-tab-summary span.ok b { color: var(--teal); }

.holding-group-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 2px;
  border-left: 3px solid var(--line);
  padding: 3px 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.holding-group-heading.risk { border-color: var(--rose); color: var(--rose); }
.holding-group-heading.warning { border-color: var(--gold); color: var(--gold); }
.holding-group-heading.ok { border-color: var(--teal); color: var(--teal); }
.holding-group-heading.neutral { border-color: var(--muted); }

.compact-toggle {
  min-height: 32px;
  margin-top: 10px;
  font-size: 13px;
}

.panel-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
}

.panel-action-link {
  flex: 0 0 auto;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(104, 167, 255, 0.48);
  border-radius: 999px;
  padding: 0 10px;
  background: rgba(104, 167, 255, 0.16);
  color: #bfdbfe;
  font-size: 12px;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
}

.panel-action-link:hover {
  filter: brightness(1.08);
}

.hero-metrics {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-bottom: 10px;
}

.metric,
.panel {
  background: rgba(16, 26, 36, 0.92);
  border: 1px solid rgba(55, 74, 94, 0.72);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.metric {
  min-height: 0;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: start;
}

.metric span,
.metric small,
.panel-head span,
.row-meta {
  color: var(--muted);
  font-size: 13px;
}

.metric strong {
  display: block;
  font-size: clamp(24px, 6vw, 38px);
  line-height: 1;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.metric.primary {
  position: relative;
  background: linear-gradient(135deg, #0e2a34, #101a24 62%);
  color: #fff;
  border-color: rgba(65, 214, 195, 0.26);
}

.metric.primary span,
.metric.primary small {
  color: rgba(255, 255, 255, 0.72);
}

.metric.primary .metric-head strong {
  font-size: clamp(24px, 5vw, 36px);
}

.data-freshness {
  position: absolute;
  bottom: 4px;
  right: 8px;
  color: rgba(255, 255, 255, 0.44);
  font-size: 11px;
  line-height: 1.2;
  pointer-events: none;
}

.data-freshness.is-stale {
  color: var(--gold);
}

/* The decision footer contains risk tags above its timestamps. Keep this one
   in normal flow; the generic freshness rule is for overlay card metrics. */
.today-decision-card .data-freshness {
  position: static;
  display: block;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
  pointer-events: auto;
}

/* These footnotes sit between normal content blocks. They must reserve their
   own vertical space instead of inheriting the metric-overlay positioning. */
.sector-pnl-card .data-freshness,
.stress-test-card .data-freshness {
  position: static;
  display: block;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
  pointer-events: auto;
}

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

.account-summary-grid div,
.ai-focus-grid div {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  background: rgba(255, 255, 255, 0.05);
}

.account-summary-grid span,
.ai-focus-grid span,
.ai-focus-grid strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-summary-grid b {
  min-width: 0;
}

.account-summary-grid div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 30px;
  padding: 6px 8px;
}

.account-summary-grid span {
  flex: 0 0 auto;
  color: rgba(255, 255, 255, 0.58);
  font-size: 11px;
  font-weight: 800;
}

.account-summary-grid b {
  flex: 1 1 auto;
  color: #fff;
  font-size: 13px;
  text-align: right;
}

.daily-review-panel {
  margin-bottom: 12px;
  border-color: rgba(104, 167, 255, 0.22);
  background: rgba(16, 26, 36, 0.94);
}

.module-metric span,
.sector-layout-row span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  line-height: 1.25;
}

.module-metric strong,
.sector-layout-row b {
  display: block;
  min-width: 0;
  margin-top: 3px;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cockpit-panel,
.dashboard-modules,
.sector-layout-panel {
  margin-bottom: 12px;
}

.cockpit-panel {
  border-color: rgba(65, 214, 195, 0.26);
  padding: 12px;
}

.cockpit-panel .panel-head {
  align-items: center;
  margin-bottom: 8px;
}

.cockpit-panel .panel-head h2 {
  font-size: 16px;
}

.cockpit-warning {
  margin-bottom: 10px;
  border: 1px solid rgba(255, 107, 138, 0.38);
  border-radius: 8px;
  padding: 10px 12px;
  background: rgba(54, 28, 39, 0.72);
  color: var(--rose);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}

.cockpit-grid,
.module-grid,
.sector-layout-priority {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.cockpit-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}

.cockpit-grid .module-metric {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-height: 31px;
  padding: 5px 7px;
}

.cockpit-grid .module-metric span {
  flex: 0 0 auto;
  font-size: 10px;
  line-height: 1;
}

.cockpit-grid .module-metric strong {
  flex: 1 1 auto;
  margin-top: 0;
  font-size: 12px;
  line-height: 1;
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cockpit-briefing {
  grid-template-columns: 1fr;
  gap: 8px;
}

.briefing-card {
  min-width: 0;
  border: 1px solid rgba(104, 167, 255, 0.28);
  border-radius: 8px;
  padding: 10px;
  background: rgba(20, 33, 48, 0.84);
}

.briefing-card.ok {
  border-color: rgba(91, 227, 139, 0.28);
}

.briefing-card.warn {
  border-color: rgba(242, 189, 92, 0.34);
}

.briefing-card.risk {
  border-color: rgba(255, 107, 138, 0.38);
  background: rgba(54, 28, 39, 0.58);
}

.briefing-card span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
}

.briefing-card strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 22px;
  line-height: 1.12;
}

.briefing-card.ok strong {
  color: var(--green);
}

.briefing-card.warn strong {
  color: var(--gold);
}

.briefing-card.risk strong {
  color: var(--rose);
}

.briefing-card p {
  display: -webkit-box;
  margin-top: 7px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: rgba(230, 237, 247, 0.74);
  font-size: 12px;
  line-height: 1.35;
}

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

.briefing-mini {
  display: grid;
  align-content: start;
  gap: 4px;
  min-width: 0;
  min-height: 82px;
  border: 1px solid rgba(104, 167, 255, 0.18);
  border-radius: 8px;
  padding: 8px;
  background: rgba(255, 255, 255, 0.045);
}

.briefing-mini b {
  color: rgba(230, 237, 247, 0.92);
  font-size: 11px;
  line-height: 1.15;
}

.briefing-mini span {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(230, 237, 247, 0.7);
  font-size: 11px;
  line-height: 1.22;
}

.briefing-mini span + span {
  margin-top: 1px;
}

.briefing-mini.ok {
  border-color: rgba(91, 227, 139, 0.22);
}

.briefing-mini.warn {
  border-color: rgba(242, 189, 92, 0.3);
}

.briefing-mini.risk {
  border-color: rgba(255, 107, 138, 0.34);
  background: rgba(54, 28, 39, 0.42);
}

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

.account-detail-toggle summary {
  min-height: 30px;
  display: flex;
  align-items: center;
  cursor: pointer;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.account-detail-toggle[open] summary {
  margin-bottom: 8px;
}

.module-metric {
  min-width: 0;
  min-height: 58px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 9px;
  background: var(--panel-soft);
}

.module-metric.ok {
  border-color: rgba(91, 227, 139, 0.26);
}

.module-metric.warn {
  border-color: rgba(242, 189, 92, 0.34);
}

.module-metric.risk {
  border-color: rgba(255, 107, 138, 0.38);
}

.module-metric.ok strong,
.ok {
  color: var(--green);
}

.module-metric.warn strong,
.warn {
  color: var(--gold);
}

.module-metric.risk strong,
.risk {
  color: var(--rose);
}

.module-note {
  margin-top: 10px;
  border-left: 2px solid rgba(104, 167, 255, 0.36);
  padding-left: 10px;
  color: rgba(230, 237, 247, 0.76);
  font-size: 12px;
  line-height: 1.45;
}

.dashboard-modules {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 12px;
}

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

.mini-table {
  display: grid;
  gap: 6px;
  margin-top: 8px;
}

.mini-table div {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 7px 8px;
  background: rgba(255, 255, 255, 0.04);
}

.mini-table span,
.mini-table strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
}

.mini-table span {
  color: var(--muted);
}

.sector-layout-priority {
  margin-bottom: 10px;
}

.sector-layout-table {
  display: grid;
  gap: 7px;
}

.sector-layout-row {
  display: grid;
  grid-template-columns: minmax(130px, 1.4fr) repeat(5, minmax(0, 1fr));
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 9px;
  background: var(--panel-soft);
}

.sector-layout-row > div {
  min-width: 0;
}

.sector-layout-row strong {
  display: block;
  font-size: 13px;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sector-composition-panel {
  margin-bottom: 12px;
}

.daily-review-body {
  display: grid;
  gap: 8px;
}

.daily-review-row {
  display: grid;
  grid-template-columns: auto repeat(4, minmax(0, 1fr));
  gap: 8px;
  align-items: stretch;
}

.daily-review-led {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 80px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  background: var(--panel-soft);
}

.daily-review-led .led-signal {
  width: 12px;
  height: 12px;
  border-radius: 99px;
  background: var(--muted);
}

.daily-review-led .led-signal.ok {
  background: var(--green);
  box-shadow: 0 0 0 3px rgba(91, 227, 139, 0.18);
}

.daily-review-led .led-signal.warn {
  background: var(--gold);
  box-shadow: 0 0 0 3px rgba(242, 189, 92, 0.18);
}

.daily-review-led .led-signal.risk {
  background: var(--rose);
  box-shadow: 0 0 0 3px rgba(255, 107, 138, 0.18);
}

.daily-review-led > span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.daily-review-cell {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 7px 9px;
  background: var(--panel-soft);
  overflow: hidden;
}

.daily-review-cell span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  margin-bottom: 3px;
}

.daily-review-cell b {
  display: block;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.daily-review-decision {
  min-width: 0;
  border: 1px solid rgba(65, 214, 195, 0.28);
  border-radius: 8px;
  padding: 13px;
  background: rgba(20, 33, 48, 0.88);
  display: grid;
  gap: 5px;
}

.daily-review-decision.warn {
  border-color: rgba(242, 189, 92, 0.32);
  background: rgba(32, 37, 39, 0.9);
}

.daily-review-decision.risk {
  border-color: rgba(255, 107, 138, 0.32);
  background: rgba(36, 30, 39, 0.9);
}

.daily-review-decision span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
}

.daily-review-decision strong {
  color: var(--ink);
  font-size: 18px;
  line-height: 1.25;
}

.daily-review-decision p {
  margin: 0;
  color: rgba(230, 237, 247, 0.78);
  font-size: 12px;
  line-height: 1.45;
}

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

.daily-review-metric {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 9px;
  background: var(--panel-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.daily-review-metric span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.daily-review-metric b {
  min-width: 0;
  display: grid;
  gap: 2px;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.2;
  text-align: right;
}

.daily-review-metric b strong,
.daily-review-metric b small {
  min-width: 0;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-review-metric b strong {
  color: var(--ink);
  font-size: 13px;
}

.daily-review-metric b small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.daily-review-actions-inline {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-left: 6px;
}

.daily-review-actions-inline span {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 2px 6px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.daily-review-actions-inline span.ok {
  border-color: rgba(91, 227, 139, 0.24);
  color: var(--green);
}

.daily-review-actions-inline span.warn {
  border-color: rgba(242, 189, 92, 0.32);
  color: var(--gold);
}

.daily-review-actions-inline span.risk {
  border-color: rgba(255, 107, 138, 0.34);
  color: var(--rose);
}

.news-radar-panel {
  margin-bottom: 10px;
}

.news-radar-panel > summary.panel-head {
  margin-bottom: 0;
}

.news-radar-panel[open] > summary.panel-head {
  margin-bottom: 12px;
}

.news-radar-panel > summary.panel-head::after {
  display: none;
  content: none;
}

.news-radar-head {
  display: grid;
  grid-template-columns: minmax(96px, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.news-radar-head p {
  min-width: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.news-radar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: 8px;
}

.news-radar-actions button {
  white-space: nowrap;
}

#newsRadarToggle {
  margin-top: 10px;
}

.news-radar-list {
  display: grid;
  gap: 8px;
}

.news-radar-item {
  min-width: 0;
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  background: var(--panel-soft);
}

.news-radar-item.featured {
  border-color: rgba(242, 189, 92, 0.38);
  background:
    linear-gradient(135deg, rgba(242, 189, 92, 0.08), transparent 46%),
    var(--panel-soft);
}

.news-radar-item.risk {
  border-color: rgba(255, 107, 138, 0.32);
}

.news-radar-item.ok {
  border-color: rgba(91, 227, 139, 0.28);
}

.news-radar-item > div {
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.news-radar-item > section {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.news-radar-item strong {
  font-size: 13px;
}

.news-radar-item span {
  color: var(--teal);
  font-size: 11px;
  font-weight: 850;
}

.news-radar-item.risk span {
  color: var(--rose);
}

.news-radar-item.ok span {
  color: var(--green);
}

.news-radar-item small {
  color: var(--muted);
  font-size: 11px;
}

.news-radar-item em {
  color: var(--gold);
  font-size: 11px;
  font-style: normal;
  font-weight: 850;
}

.news-radar-item em.review-match {
  color: var(--teal);
}

.news-radar-item a,
.news-radar-item b {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink);
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
}

.news-radar-item.featured a,
.news-radar-item.featured b {
  white-space: normal;
  line-height: 1.35;
}

.news-radar-item p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.hero-stat {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
}

.hero-stat span {
  color: rgba(255, 255, 255, 0.55);
  font-size: 11px;
  white-space: nowrap;
}

.hero-stat b {
  font-size: 13px;
  line-height: 1.1;
  color: #fff;
  white-space: nowrap;
}

.hero-stat b.positive { color: var(--green); }
.hero-stat b.negative { color: var(--rose); }

.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.panel {
  padding: 18px;
  min-width: 0;
}

.panel.wide {
  grid-column: auto;
}

.panel[hidden] {
  display: none;
}

.panel-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

summary.panel-head {
  cursor: pointer;
  list-style: none;
  margin-bottom: 0;
}

summary.panel-head::-webkit-details-marker {
  display: none;
}

summary.panel-head::after {
  content: "展开";
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 4px 8px;
  background: var(--panel-soft);
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

details[open] > summary.panel-head {
  margin-bottom: 14px;
}

details[open] > summary.panel-head::after {
  content: "收起";
  color: var(--teal);
}

.collapsible-body {
  min-width: 0;
}

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

.research-section {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.compact-head {
  margin-bottom: 0;
}

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

#holdingsListToggle {
  margin-top: 10px;
}

.holdings-header {
  display: none;
  grid-template-columns: 64px 52px minmax(80px, 1fr) minmax(110px, 1fr) minmax(96px, 0.9fr) 80px;
  gap: 8px;
  margin: 0 0 8px;
  padding: 0 0 7px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.holdings-header span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sector-group {
  min-width: 0;
  overflow: hidden;
}

.holding-row {
  display: grid;
  gap: 8px;
}

.swatch {
  width: 10px;
  height: 10px;
  border-radius: 999px;
}

.positive { color: var(--green); }
.negative { color: var(--rose); }

.decision-hub {
  margin: 0 0 12px;
  padding: 16px;
  border-color: rgba(65, 214, 195, 0.3);
  background:
    linear-gradient(135deg, rgba(65, 214, 195, 0.1), transparent 44%),
    rgba(16, 26, 36, 0.94);
}

.decision-hub-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
}

.decision-hub-head > div {
  min-width: 0;
}

.decision-hub-head span {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.decision-hub-head h2 {
  font-size: 25px;
  line-height: 1.12;
  overflow-wrap: anywhere;
}

.decision-hub-head strong {
  flex: 0 0 auto;
  border-radius: 8px;
  padding: 6px 9px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--teal);
  font-size: 12px;
  white-space: nowrap;
}

.decision-hub-head strong.warn {
  color: var(--gold);
}

.decision-hub-head strong.risk {
  color: var(--rose);
}


.decision-hub > p {
  margin-top: 8px;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.45;
}

.decision-hub-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1.1fr;
  gap: 12px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.decision-hub-card {
  min-width: 0;
  display: grid;
  gap: 8px;
}

.decision-hub-card > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.decision-chip-list {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.decision-chip-list b,
.decision-chip-list em {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 8px;
  padding: 5px 8px;
  background: var(--panel-softer);
  color: var(--ink);
  font-size: 12px;
  font-style: normal;
}

.decision-chip-list b.opportunity,
.decision-hub-card.add .decision-chip-list b {
  color: var(--green);
}

.decision-chip-list b.risk,
.decision-hub-card.reduce .decision-chip-list b {
  color: var(--rose);
}

.decision-chip-list em.ok {
  color: var(--green);
}

.decision-chip-list em.warn {
  color: var(--gold);
}

.decision-chip-list em.risk {
  color: var(--rose);
}

.decision-chip-list small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
}

.review-queue-panel {
  margin: 0 0 12px;
  border-color: var(--line);
  border-left: 3px solid rgba(104, 167, 255, 0.55);
  background: rgba(16, 26, 36, 0.94);
}

.review-queue-panel.risk {
  border-color: var(--line);
  border-left-color: rgba(255, 107, 138, 0.62);
}

.review-queue-panel > p {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.review-queue-list {
  display: grid;
  gap: 8px;
}

.review-queue-item {
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
  background: var(--panel-soft);
}

.review-queue-item.primary {
  border-color: rgba(242, 189, 92, 0.44);
  background: var(--panel-soft);
}

.review-queue-item.risk {
  border-color: rgba(255, 107, 138, 0.3);
}

.review-queue-item.opportunity {
  border-color: rgba(91, 227, 139, 0.25);
}

.review-queue-head {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.review-queue-head strong {
  color: var(--ink);
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
}

.review-queue-title,
.holding-card-title {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.review-queue-title span,
.holding-card-title span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.15;
}

.review-queue-title span.core,
.holding-card-role.core {
  color: var(--teal);
}

.review-queue-title span.watch,
.holding-card-role.watch {
  color: var(--gold);
}

.review-queue-title span.source,
.holding-card-role.source {
  color: var(--rose);
}

.holding-card-title .holding-identity {
  color: var(--muted);
}

.holding-card-title .holding-identity b {
  font-weight: 900;
}

.holding-card-title .holding-identity.core b { color: var(--teal); }
.holding-card-title .holding-identity.watch b { color: var(--blue); }
.holding-card-title .holding-identity.noncore b { color: var(--rose); }
.holding-card-title .holding-identity.defensive b { color: var(--green); }
.holding-card-title .holding-identity.unset b { color: var(--gold); }

.review-queue-head em {
  flex: 0 0 auto;
  border-radius: 8px;
  padding: 4px 8px;
  background: var(--panel-softer);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.1;
}

.review-queue-head em.ok {
  color: var(--green);
}

.review-queue-head em.warn {
  color: var(--gold);
}

.review-queue-head em.risk {
  color: var(--rose);
}

.review-queue-strip {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}

.review-queue-strip div {
  min-width: 0;
  display: grid;
  gap: 2px;
  align-content: start;
  justify-items: start;
  text-align: left;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  padding: 6px 7px;
  background: rgba(255, 255, 255, 0.025);
}

.review-queue-strip span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  line-height: 1.1;
}

.review-queue-strip strong {
  min-width: 0;
  width: 100%;
  display: block;
  justify-self: start;
  overflow: visible;
  overflow-wrap: anywhere;
  white-space: normal;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.2;
  text-align: left;
}

.review-queue-strip strong.warning {
  color: var(--gold);
}

.review-queue-copy {
  display: grid;
  gap: 6px;
}

.review-queue-reason,
.review-queue-nextstep,
.review-queue-protection {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.42;
}

.review-queue-nextstep {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 7px;
  align-items: start;
  border-left: 2px solid rgba(104, 167, 255, 0.36);
  padding-left: 8px;
  color: rgba(230, 237, 247, 0.82);
}

.review-queue-nextstep b {
  color: var(--teal);
  font-size: 11px;
  white-space: nowrap;
}

.review-queue-nextstep span {
  min-width: 0;
}

.review-queue-protection,
.holding-protection-note {
  border: 1px solid rgba(242, 189, 92, 0.24);
  border-radius: 8px;
  padding: 6px 8px;
  background: rgba(242, 189, 92, 0.08);
  color: var(--gold);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.review-queue-main {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1.3fr) minmax(120px, 0.8fr) 42px;
  gap: 8px;
  align-items: center;
}

.review-queue-main span,
.review-queue-main em {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.review-queue-main strong {
  min-width: 0;
  font-size: 14px;
  overflow: visible;
  white-space: normal;
}

.review-queue-main b {
  min-width: 0;
  overflow-wrap: anywhere;
}

.review-queue-meta span {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.review-queue-main strong small.dir {
  font-size: 10px;
  font-weight: 900;
  padding: 1px 5px;
  border-radius: 4px;
  margin-left: 3px;
  white-space: nowrap;
  vertical-align: 1px;
}

.review-queue-main strong small.dir.risk {
  color: var(--rose);
  background: rgba(255, 107, 138, 0.14);
}

.review-queue-main strong small.dir.ok {
  color: var(--teal);
  background: rgba(65, 214, 195, 0.12);
}

.review-queue-main strong small.dir.warn {
  color: var(--gold);
  background: rgba(242, 189, 92, 0.12);
}

.review-queue-main b {
  color: var(--ink);
  font-size: 13px;
}

.review-queue-main span {
  color: var(--muted);
  font-size: 12px;
}

.review-queue-main em {
  border-radius: 8px;
  padding: 4px 7px;
  background: var(--panel-softer);
  font-size: 12px;
  font-style: normal;
  font-weight: 850;
  text-align: center;
}

.review-queue-main em.ok {
  color: var(--green);
}

.review-queue-main em.warn {
  color: var(--gold);
}

.review-queue-main em.risk {
  color: var(--rose);
}

.review-queue-meta {
  min-width: 0;
  grid-column: 1 / -1;
}

.review-queue-item .mini-btn {
  align-self: start;
  white-space: nowrap;
}

.review-queue-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  grid-column: 1 / -1;
}

.review-queue-detail-grid div {
  min-width: 0;
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-softer);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.review-queue-detail-grid span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  white-space: nowrap;
}

.review-queue-detail-grid strong {
  flex: 0 0 auto;
  font-size: 12px;
  text-align: right;
  white-space: nowrap;
}

.review-trigger-tags {
  min-width: 0;
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.review-trigger-tags span {
  border: 1px solid rgba(242, 189, 92, 0.28);
  border-radius: 8px;
  padding: 4px 7px;
  background: rgba(242, 189, 92, 0.09);
  color: var(--gold);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.2;
}

.holding-trigger-tags {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.holding-trigger-tags span {
  border: 1px solid rgba(65, 214, 195, 0.22);
  border-radius: 8px;
  padding: 3px 6px;
  background: rgba(65, 214, 195, 0.07);
  color: var(--teal);
  font-size: 10px;
  font-weight: 850;
  line-height: 1.2;
}

.review-queue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* ── News Popup ── */

.news-popup-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 18, 28, 0.82);
  backdrop-filter: blur(6px);
  animation: newsPopupFadeIn 0.2s ease;
}

@keyframes newsPopupFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes newsPopupSlideIn {
  from { opacity: 0; transform: translateY(12px) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.news-popup {
  width: 92%;
  max-width: 480px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--panel-soft);
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);
  animation: newsPopupSlideIn 0.25s ease;
}

.news-popup-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--line);
}

.news-popup-head b {
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
}

.news-popup-head small {
  margin-left: auto;
  color: var(--muted);
  font-size: 11px;
}

.news-popup-body {
  overflow-y: auto;
  padding: 8px 0;
  flex: 1;
}

.news-popup-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 10px;
  align-items: start;
  padding: 10px 18px;
  border-bottom: 1px solid rgba(34, 50, 66, 0.5);
}

.news-popup-row:last-child {
  border-bottom: 0;
}

.news-popup-row strong {
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
}

.news-popup-row .impact-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 850;
  line-height: 1;
  padding: 2px 6px;
  border-radius: 4px;
  margin-top: 3px;
}

.news-popup-row .impact-tag.risk {
  color: var(--rose);
  background: rgba(255, 107, 138, 0.14);
}

.news-popup-row .impact-tag.warn {
  color: var(--gold);
  background: rgba(242, 189, 92, 0.14);
}

.news-popup-row .impact-tag.ok {
  color: var(--teal);
  background: rgba(65, 214, 195, 0.12);
}

.news-popup-row .watch-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  color: var(--gold);
  margin-left: 4px;
}

.news-popup-row a,
.news-popup-row span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
}

.news-popup-row a {
  color: var(--ink);
  text-decoration: none;
}

.news-popup-row a:hover {
  text-decoration: underline;
}

.news-popup-foot {
  padding: 12px 18px 16px;
  border-top: 1px solid var(--line);
  text-align: center;
}

.news-popup-foot button {
  padding: 8px 24px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-softer);
  color: var(--ink);
  font-size: 13px;
  font-weight: 850;
  cursor: pointer;
  transition: background 0.15s;
}

.news-popup-foot button:hover {
  background: var(--line);
}

.report-section {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.report-section strong {
  display: block;
  font-size: 14px;
}

.report-section span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
}

.report-section small {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.35;
}

.report-section b {
  flex: 0 0 auto;
  border-radius: 8px;
  padding: 5px 8px;
  background: var(--panel-softer);
  color: var(--muted);
  font-size: 12px;
}

.report-section.is-ready b {
  background: rgba(65, 214, 195, 0.12);
  color: var(--teal);
}

.holding-row {
  grid-template-columns: 1fr;
  align-items: center;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.holding-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.holding-compact {
  min-width: 0;
  display: grid;
  grid-template-columns: 64px 52px minmax(80px, 1fr) minmax(110px, 1fr) minmax(96px, 0.9fr) 80px;
  gap: 8px;
  align-items: center;
  cursor: pointer;
}

.holding-compact.holding-card-summary {
  grid-template-columns: minmax(165px, 1.05fr) minmax(0, 1.65fr) minmax(120px, 0.75fr);
  grid-template-areas:
    "head metrics foot";
  gap: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.025);
}

.holding-card-head {
  grid-area: head;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.holding-card-head .queue-badge {
  flex: 0 0 auto;
  min-width: max-content;
  overflow: visible;
  text-overflow: clip;
}

.holding-card-head strong {
  color: var(--ink);
  font-size: 18px;
  font-weight: 900;
  line-height: 1;
}

.holding-card-title strong,
.review-queue-title strong {
  grid-area: auto;
}

.holding-card-metrics {
  grid-area: metrics;
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 5px;
}

.holding-card-metrics .metric-cell {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding: 3px 0;
}

.holding-card-metrics .metric-label {
  min-width: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  white-space: nowrap;
  flex-shrink: 0;
}

.holding-card-metrics .metric-value {
  min-width: 0;
  max-width: 100%;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
}

.holding-card-metrics .metric-value.positive {
  color: var(--green);
}

.holding-card-metrics .metric-value.negative,
.holding-card-metrics .metric-value.risk {
  color: var(--rose);
}

.holding-card-metrics .metric-value.ok {
  color: var(--green);
}

.holding-card-metrics .metric-value.warning {
  color: var(--gold);
}

.holding-card-metrics .metric-value.neutral {
  color: var(--muted);
}

.holding-card-role {
  grid-area: role;
  display: none;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
}

.holding-card-reasons {
  margin: 2px 0 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--gold);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.holding-card-audit {
  display: none;
}

.holding-card-foot {
  grid-area: foot;
  min-width: 0;
  display: grid;
  gap: 3px;
  align-content: center;
  justify-items: end;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.2;
  text-align: right;
}

.holding-card-foot span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.holding-compact strong,
.holding-compact span,
.holding-compact b {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

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

.holding-compact .holding-card-metrics .metric-label {
  font-size: 10px;
  font-weight: 850;
}

.holding-compact .holding-card-metrics .metric-value {
  font-size: 12px;
}

/* Keep long P&L values inside their metric cell on narrow screens. */
.holding-compact .holding-card-metrics .metric-pnl .metric-value {
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.15;
}

.holding-compact .holding-card-foot span {
  color: inherit;
  font-size: 12px;
}

.holding-compact .holding-pnl {
  display: grid;
  gap: 2px;
  line-height: 1.1;
}

.holding-compact .holding-pnl b,
.holding-compact .holding-pnl small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.holding-compact .holding-pnl b {
  font-size: 12px;
  font-weight: 850;
}

.holding-compact .holding-pnl small {
  font-size: 11px;
  color: inherit;
}

.holding-detail {
  display: grid;
  gap: 10px;
  margin-top: 10px;
  border: 1px solid rgba(104, 167, 255, 0.18);
  border-radius: 8px;
  padding: 10px;
  background: rgba(9, 18, 30, 0.32);
}

.holding-detail[hidden] {
  display: none;
}

.holding-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.holding-detail-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 10px;
}

.holding-detail-metric {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding: 4px 0;
  min-width: 0;
}

.holding-detail-metric span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-size: 11px;
  flex-shrink: 1;
  min-width: 0;
}

.holding-detail-metric strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink);
  font-size: 12px;
  font-weight: 850;
  text-align: right;
  flex-shrink: 0;
}

.holding-detail-metric.positive strong {
  color: var(--green);
}

.holding-detail-metric.negative strong {
  color: var(--rose);
}

.holding-detail-metric.ok strong {
  color: var(--green);
}

.holding-detail-metric.warning strong {
  color: var(--gold);
}

.holding-detail-metric.risk strong {
  color: var(--rose);
}

.holding-target-summary {
  white-space: normal;
  line-height: 1.35;
}

.ticker {
  font-weight: 850;
}

.ticker-line {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.queue-badge {
  min-width: 0;
  border-radius: 8px;
  padding: 3px 7px;
  background: var(--panel-soft);
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.target-badge {
  min-width: 0;
  max-width: 100%;
  justify-self: start;
  border-radius: 8px;
  padding: 3px 7px;
  background: var(--panel-soft);
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.target-badge.ok {
  color: var(--green);
  background: rgba(91, 227, 139, 0.09);
}

.target-badge.risk {
  color: var(--rose);
  background: rgba(255, 107, 138, 0.1);
}

.target-badge.neutral {
  color: var(--muted);
}

.queue-badge.opportunity {
  color: var(--green);
}

.queue-badge.warning {
  color: var(--gold);
}

.queue-badge.risk {
  color: var(--rose);
}

.row-meta {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.row-target {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.25;
}

.holding-news {
  min-width: 0;
  max-width: 100%;
  display: grid;
  gap: 3px;
  margin-top: 6px;
  border-left: 2px solid var(--gold);
  padding-left: 8px;
}

.holding-news.risk {
  border-left-color: var(--rose);
}

.holding-news.warn {
  border-left-color: var(--gold);
}

.holding-news b,
.holding-news a,
.holding-news span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  line-height: 1.3;
}

.holding-news b {
  color: var(--gold);
}

.holding-news.risk b {
  color: var(--rose);
}

.holding-news a,
.holding-news span {
  color: var(--ink);
  text-decoration: none;
}

.row-value {
  text-align: right;
  font-weight: 800;
  min-width: max-content;
}

.row-pnl.positive {
  color: var(--green);
}

.row-pnl.negative {
  color: var(--rose);
}

.row-pnl.neutral {
  color: var(--muted);
}

.sector-composition-overview {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: var(--panel-soft);
}

.sector-composition-overview[hidden] {
  display: none;
}

.sector-stack-card {
  display: grid;
  gap: 8px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.sector-stack-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.sector-stack-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.sector-stack-head strong {
  color: var(--ink);
  font-size: 13px;
}

.sector-stack-wrap {
  display: grid;
  gap: 6px;
}

.sector-stack {
  min-width: 0;
  height: 28px;
  display: flex;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel-softer);
}

.sector-stack span {
  min-width: 3px;
  display: block;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: filter 0.15s ease;
}

.sector-labels {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  padding-top: 2px;
}

.sector-labels span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--ink);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
  white-space: nowrap;
}

.sector-labels span i {
  width: 8px;
  height: 8px;
  border-radius: 99px;
  flex-shrink: 0;
}

.sector-stack span + span {
  box-shadow: inset 1px 0 rgba(255, 255, 255, 0.32);
}

.sector-stack span:hover {
  filter: brightness(1.08);
}

.sector-legend {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.sector-legend-item {
  min-width: 0;
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  gap: 5px 8px;
  align-items: center;
  color: var(--muted);
  font-size: 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 7px 8px;
  background: rgba(255, 255, 255, 0.025);
}

.sector-legend-item i {
  width: 10px;
  height: 10px;
  border-radius: 99px;
  grid-row: 1;
}

.sector-legend-top,
.sector-legend-ticker-line,
.sector-legend-bottom,
.sector-flow,
.sector-gap {
  min-width: 0;
}

.sector-legend-top {
  grid-column: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.sector-legend-top span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.2;
}

.sector-legend-top em {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 2px 6px;
  background: var(--panel-softer);
  color: var(--muted);
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.2;
}

.sector-legend-ticker-line {
  grid-column: 2;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.25;
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
}

.sector-legend-bottom {
  grid-column: 2;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: 7px;
}

.sector-flow {
  display: flex;
  align-items: baseline;
  gap: 4px;
  white-space: nowrap;
}

.sector-flow b {
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
}

.sector-flow small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
}

.sector-status {
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 2px 6px;
  background: var(--panel-softer);
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.1;
  white-space: nowrap;
}

.sector-gap {
  justify-self: end;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sector-legend-tickers {
  grid-column: 2 / -1;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding-top: 1px;
}

.sector-legend-tickers b,
.sector-legend-tickers strong {
  max-width: 100%;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 2px 6px;
  background: var(--panel-softer);
  color: var(--ink);
  font-size: 11px;
  font-style: normal;
  font-weight: 850;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sector-legend-tickers strong {
  color: var(--muted);
  font-weight: 800;
}

.sector-legend-item.over {
  border-color: rgba(255, 107, 138, 0.18);
}

.sector-legend-item.over .sector-gap,
.sector-legend-item.over .sector-status,
.sector-legend-item.over .sector-legend-top em {
  color: var(--rose);
}

.sector-legend-item.under {
  border-color: rgba(242, 189, 92, 0.16);
}

.sector-legend-item.under .sector-gap,
.sector-legend-item.under .sector-status,
.sector-legend-item.under .sector-legend-top em {
  color: var(--gold);
}

.sector-legend-item.ok .sector-gap,
.sector-legend-item.ok .sector-status,
.sector-legend-item.ok .sector-legend-top em {
  color: var(--teal);
}

.decision-row.primary {
  border-color: rgba(242, 189, 92, 0.48);
  box-shadow: inset 0 0 0 1px rgba(242, 189, 92, 0.18);
}

.decision-row.primary {
  gap: 8px;
  padding: 14px;
  background:
    linear-gradient(135deg, rgba(242, 189, 92, 0.08), transparent 44%),
    var(--panel-soft);
}

.decision-row.primary .decision-main {
  align-items: start;
}

.decision-row.primary .decision-main strong {
  font-size: 20px;
}

.decision-row.primary .decision-main b {
  border-radius: 8px;
  padding: 5px 8px;
  background: rgba(65, 214, 195, 0.1);
  color: var(--teal);
  font-size: 13px;
}

.decision-row.primary p {
  color: var(--ink);
  font-size: 14px;
  font-weight: 800;
}

.decision-row.primary small {
  color: var(--muted);
  font-size: 12px;
}

.ai-focus-card {
  gap: 12px;
}

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

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

.ai-focus-summary div {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: var(--panel-softer);
}

.ai-focus-summary span,
.ai-focus-summary b {
  display: block;
  min-width: 0;
}

.ai-focus-summary span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.ai-focus-summary b {
  margin-top: 5px;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.4;
}

.ai-focus-grid div {
  background: var(--panel-softer);
}

.ai-focus-grid span {
  color: var(--muted);
  font-size: 11px;
}

.ai-focus-grid strong {
  margin-top: 4px;
  color: var(--ink);
  font-size: 13px;
}

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

.ai-action-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

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

.decision-row {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.decision-row.risk {
  background: rgba(255, 107, 138, 0.09);
  border-color: rgba(255, 107, 138, 0.28);
}

.decision-row.opportunity {
  background: rgba(91, 227, 139, 0.08);
  border-color: rgba(91, 227, 139, 0.22);
}

.decision-main {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.decision-main strong {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 16px;
}

.decision-main strong em {
  border-radius: 8px;
  padding: 3px 6px;
  background: rgba(242, 189, 92, 0.12);
  color: var(--gold);
  font-size: 11px;
  font-style: normal;
  line-height: 1;
}

.direction-badge { font-size: 11px; font-weight: 700; margin-left: 6px; padding: 1px 5px; border-radius: 4px; line-height: 1.2; }
.dir-add { background: rgba(22,163,74,0.1); color: #16a34a; }
.dir-cut { background: rgba(220,38,38,0.1); color: #dc2626; }
.dir-hold { background: rgba(100,116,139,0.1); color: #64748b; }
.dir-watch { background: rgba(37,99,235,0.1); color: #2563eb; }

.decision-main span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
}

.decision-main b {
  color: var(--teal);
  font-size: 14px;
  text-align: right;
  white-space: nowrap;
  flex-shrink: 0;
}

.decision-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}

.decision-metrics {
  color: var(--muted);
  font-size: 11px;
}

.decision-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.decision-tags span {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 4px 7px;
  background: rgba(255, 255, 255, 0.05);
  color: var(--ink);
  font-size: 12px;
  line-height: 1;
}

.decision-row p,
.decision-row small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.decision-row small {
  color: var(--ink);
}

.decision-news {
  display: grid;
  gap: 6px;
  margin-top: 2px;
}

.decision-news-item {
  display: grid;
  gap: 5px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-softer);
}

.decision-news-item > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.decision-news-item strong,
.decision-news-item em {
  font-size: 11px;
  line-height: 1;
}

.decision-news-item strong {
  color: var(--ink);
}

.decision-news-item em {
  border-radius: 8px;
  padding: 3px 6px;
  font-style: normal;
  font-weight: 800;
}

.decision-news-item span {
  color: var(--muted);
  font-size: 11px;
}

.decision-news-item a,
.decision-news-item b {
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: none;
}

.decision-news-item a:hover {
  color: var(--teal);
}

.decision-news-item p {
  margin: 0;
  color: var(--muted);
}

.decision-diagnostic {
  justify-self: end;
}

.source-link {
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.diagnostic-panel {
  display: grid;
  gap: 10px;
}

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

.diagnostic-head strong {
  display: block;
  font-size: 22px;
  line-height: 1;
}

.diagnostic-head span,
.diagnostic-grid span,
.diagnostic-columns span {
  color: var(--muted);
  font-size: 12px;
}

.diagnostic-head b {
  border-radius: 8px;
  padding: 6px 10px;
  background: rgba(65, 214, 195, 0.12);
  color: var(--teal);
  font-size: 13px;
}

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

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

.diagnostic-grid div,
.diagnostic-columns div {
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.diagnostic-grid strong {
  display: block;
  margin-top: 4px;
  font-size: 14px;
  overflow-wrap: anywhere;
}

.diagnostic-columns p {
  margin-top: 5px;
  font-size: 13px;
  line-height: 1.4;
}

.diagnostic-news {
  display: grid;
  gap: 6px;
}

.diagnostic-news a {
  color: var(--ink);
  font-size: 13px;
  line-height: 1.35;
  text-decoration: none;
}

.diagnostic-news a:hover {
  color: var(--teal);
}

.diagnostic-dimensions {
  display: grid;
  gap: 8px;
}

.diagnostic-dimension {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: var(--panel-soft);
}

.diagnostic-dimension .dimension-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}

.diagnostic-dimension .dimension-header > span {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
}

.diagnostic-dimension .dimension-header b {
  font-size: 12px;
  font-weight: 700;
}

.diagnostic-dimension > p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink);
  margin: 2px 0 8px;
}

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

.dimension-details div { font-size: 12px; }
.dimension-details small { color: var(--muted); }
.dimension-details span { display: block; margin-top: 1px; }

.catalyst-item {
  font-size: 12px;
  line-height: 1.4;
  padding: 3px 0;
}

.catalyst-item b { margin-right: 4px; }
.catalyst-item small { display: block; color: var(--muted); font-size: 11px; }

.insider-trade {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  padding: 2px 0;
}

.dimension-recommendation {
  border-left: 3px solid var(--teal);
}

.diagnostic-tags {
  display: flex;
  gap: 6px;
  align-items: center;
}

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

.diagnostic-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 11px;
  color: var(--muted);
  margin-top: 8px;
}

.diagnostic-sources a {
  color: var(--muted);
  text-decoration: none;
}

.diagnostic-sources a:hover { color: var(--teal); }

.empty,
.error {
  color: var(--muted);
  padding: 18px 0;
}

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

@media (max-width: 760px) {
  body {
    background:
      linear-gradient(160deg, rgba(65, 214, 195, 0.13), transparent 320px),
      var(--page);
  }

  .shell {
    padding: max(10px, env(safe-area-inset-top)) 10px calc(20px + env(safe-area-inset-bottom));
  }

  .journal-action,
  .compact-toggle,
  .refresh-btn,
  .review-nav-link,
  .sort-tabs button,
  .filter-tabs button {
    min-height: 44px;
  }

  .decision-limit-details summary,
  .stress-test-details > summary,
  .outlook-details > summary {
    min-height: 44px;
  }

  h1 {
    font-size: 22px;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .refresh-btn {
    min-height: 44px;
    padding: 0 10px;
    font-size: 13px;
  }

  .hero-metrics {
    grid-template-columns: 1fr;
    margin-bottom: 10px;
  }

  .metric-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas:
      "label eye refresh"
      "value value value";
    gap: 8px;
  }

  .metric-head > span {
    grid-area: label;
    align-self: center;
  }

  .metric-head > strong {
    grid-area: value;
  }

  .metric-head > .visibility-toggle {
    grid-area: eye;
  }

  .metric-head > .refresh-btn {
    grid-area: refresh;
  }

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

  .module-grid,
  .module-grid.compact,
  .sector-layout-priority,
  .dashboard-modules {
    grid-template-columns: 1fr;
  }

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

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

  .sector-layout-row > div:first-child {
    grid-column: 1 / -1;
  }

  .sector-layout-priority .module-metric strong,
  .sector-layout-row b,
  .mini-table strong {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .news-radar-head {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }

  .news-radar-actions {
    justify-self: end;
    max-width: 100%;
    overflow-x: visible;
    justify-content: flex-end;
  }

  .news-radar-item {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .news-radar-item a,
  .news-radar-item b {
    white-space: normal;
    line-height: 1.35;
  }

  .metric {
    padding: 14px;
    border-radius: 8px;
    box-shadow: var(--mobile-shadow);
  }

  .metric.primary {
    min-height: 0;
  }

  .metric span,
  .metric small,
  .panel-head span,
  .row-meta {
    font-size: 12px;
  }

  .metric strong {
    font-size: 24px;
  }

  .metric.primary strong {
    font-size: 28px;
  }

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

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

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

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

  .daily-review-led {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: flex-start;
    gap: 10px;
  }

  .dashboard-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .decision-hub {
    padding: 14px;
    margin-bottom: 10px;
  }

  .decision-hub-head {
    display: grid;
    gap: 8px;
  }

  .decision-hub-head h2 {
    font-size: 19px;
  }

  .decision-hub-head strong {
    justify-self: start;
    white-space: normal;
  }

  .decision-hub-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .ai-diagnostic-copy {
    grid-template-columns: 1fr;
  }

  .sector-composition-overview {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .sector-stack {
    height: 22px;
  }

  .sector-legend {
    grid-template-columns: 1fr;
  }

  .sector-legend-item {
    grid-template-columns: 10px minmax(0, 1fr);
  }

  .review-queue-item {
    grid-template-columns: 1fr;
  }

  .review-queue-main {
    grid-template-columns: 54px minmax(0, 1fr) 42px;
  }

  .review-queue-main span {
    display: none;
  }

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

  .review-queue-item .mini-btn {
    justify-self: start;
  }

  .holding-detail {
    padding: 9px;
  }

  .holding-detail-grid {
    gap: 3px 8px;
  }

  .holding-detail-metric {
    padding: 5px 0;
  }

  .holding-compact {
    grid-template-columns: 54px minmax(74px, 0.9fr) minmax(90px, 1fr) 62px;
    grid-template-areas:
      "ticker value pnl action"
      "target target weight action";
    gap: 5px 8px;
  }

  .holding-compact.holding-card-summary {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "head"
      "metrics"
      "foot";
    gap: 7px;
    padding: 9px;
  }

  .holding-card-metrics {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }

  .holding-card-title .holding-identity {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    line-height: 1.3;
  }

  .holding-card-audit {
    grid-area: foot;
    display: grid;
    gap: 5px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    padding-top: 7px;
  }

  .holding-card-audit > div {
    min-width: 0;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 7px;
    align-items: start;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.4;
  }

  .holding-card-audit b {
    color: var(--ink);
    font-size: 11px;
  }

  .holding-card-audit .ok b,
  .holding-card-audit .ok span { color: var(--green); }
  .holding-card-audit .warn b { color: var(--gold); }
  .holding-card-audit .risk b { color: var(--rose); }

  .holding-card-audit span {
    min-width: 0;
    overflow: visible;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .review-queue-strip {
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 0.72fr) minmax(0, 1.18fr) minmax(0, 0.86fr);
  }

  .holding-card-foot {
    display: flex;
    justify-content: space-between;
    text-align: left;
    justify-items: stretch;
  }

  .holding-card-title strong,
  .review-queue-title strong {
    grid-area: auto;
    text-align: left;
  }

  .holding-card-head strong {
    font-size: 20px;
  }

  .holdings-header {
    display: none;
  }

  .holdings-header span:nth-child(2),
  .holdings-header span:nth-child(4) {
    display: none;
  }

  .holding-compact strong {
    grid-area: ticker;
  }

  .holding-compact .holding-card-title strong,
  .holding-compact .review-queue-title strong {
    grid-area: auto;
  }

  .holding-compact .holding-weight {
    grid-area: weight;
    justify-self: end;
    color: var(--muted);
    font-size: 11px;
  }

  .holding-compact .holding-value {
    grid-area: value;
  }

  .holding-compact .target-badge {
    grid-area: target;
    justify-self: stretch;
    width: 100%;
    padding-inline: 6px;
  }

  .holding-compact .holding-pnl {
    grid-area: pnl;
  }

  .holding-compact .queue-badge {
    grid-area: action;
    justify-self: end;
    padding-inline: 6px;
  }

  .panel.wide {
    grid-column: auto;
  }

  .panel {
    padding: 12px;
    box-shadow: var(--mobile-shadow);
  }

  .diagnostic-grid,
  .diagnostic-columns {
    display: grid;
    grid-template-columns: 1fr;
  }

  .panel-head {
    margin-bottom: 12px;
  }

  h2 {
    font-size: 16px;
  }

  .holding-row {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    min-height: 0;
    padding-bottom: 12px;
  }

  .ticker {
    font-size: 15px;
  }

  .row-value {
    font-size: 14px;
    padding-left: 8px;
  }

}

@media (min-width: 361px) and (max-width: 430px) {
  .shell {
    display: flex;
    flex-direction: column;
    padding: max(8px, env(safe-area-inset-top)) 8px calc(18px + env(safe-area-inset-bottom));
  }

  .shell > * {
    order: 20;
  }

  .hero-metrics {
    order: 1;
  }

  .data-quality-panel {
    order: 2;
  }

  .trade-gate-panel {
    order: 3;
  }

  .cockpit-panel {
    order: 4;
  }

  .account-gate-panel {
    order: 5;
  }

  .market-gate-panel {
    order: 6;
  }

  .review-queue-panel {
    order: 7;
  }

  .forbidden-panel {
    order: 8;
  }

  .sector-composition-panel {
    order: 9;
  }

  .audit-panel {
    order: 10;
  }

  .dashboard-grid {
    order: 11;
  }

  .news-radar-panel {
    order: 12;
  }

  .hero-metrics {
    margin-bottom: 7px;
  }

  .metric.primary {
    gap: 7px;
    padding: 9px;
  }

  .metric-head {
    grid-template-columns: minmax(0, 1fr) 32px 52px;
    grid-template-areas:
      "label eye refresh"
      "value value value";
    gap: 6px;
  }

  .visibility-toggle {
    width: 32px;
    height: 32px;
  }

  .refresh-btn {
    min-height: 32px;
    padding: 0 9px;
  }

  .metric.primary .metric-head strong {
    font-size: 30px;
    line-height: 1.08;
  }

  .account-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
  }

  .metric.primary .account-summary-grid div {
    display: flex;
  }

  .account-summary-grid div {
    align-items: center;
    justify-content: space-between;
    min-height: 34px;
    gap: 6px;
    padding: 5px 6px;
  }

  .account-summary-grid span {
    flex: 0 0 auto;
    font-size: 10px;
    line-height: 1.1;
  }

  .account-summary-grid b {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.1;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .data-freshness {
    font-size: 11px;
    line-height: 1.2;
  }

  .cockpit-panel {
    border-color: rgba(65, 214, 195, 0.2);
    padding: 10px;
    box-shadow: none;
  }

  .cockpit-panel .panel-head {
    margin-bottom: 7px;
  }

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

  .cockpit-briefing {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .briefing-card {
    border: 0;
    border-left: 3px solid rgba(104, 167, 255, 0.5);
    padding: 10px;
  }

  .briefing-card.ok {
    border-left-color: rgba(91, 227, 139, 0.72);
  }

  .briefing-card.warn {
    border-left-color: rgba(242, 189, 92, 0.78);
  }

  .briefing-card.risk {
    border-left-color: rgba(255, 107, 138, 0.78);
  }

  .briefing-card strong {
    font-size: 20px;
  }

  .briefing-card p {
    margin-top: 5px;
    -webkit-line-clamp: 1;
  }

  .briefing-action-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
  }

  .briefing-mini {
    min-height: 72px;
    border: 0;
    padding: 7px;
    background: rgba(255, 255, 255, 0.045);
  }

  .briefing-mini b {
    font-size: 10px;
  }

  .briefing-mini span {
    font-size: 10px;
    line-height: 1.18;
  }

  .cockpit-grid .module-metric {
    min-height: 30px;
    gap: 4px;
    padding: 5px 6px;
  }

  .cockpit-grid .module-metric span {
    font-size: 9px;
  }

  .cockpit-grid .module-metric strong {
    font-size: 11px;
  }

  .dashboard-modules {
    gap: 8px;
  }

  .module-grid.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .module-metric {
    min-height: 48px;
    padding: 7px;
  }

  .module-metric strong {
    white-space: normal;
    line-height: 1.2;
  }

  .daily-review-panel {
    box-shadow: none;
  }

  .daily-review-row,
  .daily-review-metrics {
    display: none;
  }

  .daily-review-decision {
    padding: 12px;
  }

  .daily-review-decision p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .module-note {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 11px;
    line-height: 1.35;
  }

  .mini-table {
    gap: 5px;
  }

  .mini-table div {
    padding: 6px 7px;
  }
}

@media (max-width: 360px) {
  .shell {
    padding-inline: 10px;
  }

  h1 {
    font-size: 20px;
  }

  .metric {
    padding: 12px;
  }

  .metric.primary strong {
    font-size: 30px;
  }

  .metric strong {
    font-size: 21px;
  }

  .review-queue-detail-grid {
    grid-template-columns: 1fr;
  }

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

  .sort-tabs button,
  .filter-tabs button {
    min-height: 44px;
    padding-inline: 4px;
    font-size: 11px;
  }

  .holding-card-metrics {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }

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

}

.sector-legend-item .sector-trade-meaning {
  grid-column: 2;
  width: 100%;
}

@media (max-width: 760px) {
  .sector-legend-item .sector-trade-meaning {
    display: grid;
    grid-column: 2;
    gap: 4px;
  }

  .sector-legend-item .sector-trade-meaning b {
    text-align: left;
  }

  .sector-legend .sector-legend-item:nth-child(n+4) {
    display: none;
  }
}

/* Growth screener candidate cards */
.growth-screener-panel .panel-head {
  align-items: center;
  min-width: 0;
  flex-wrap: wrap;
}
.growth-screener-summary > span:first-child { min-width: 0; }
.growth-screener-summary h2 { margin: 0; }
.growth-screener-summary small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.35;
}
.growth-screener-body { padding-top: 10px; }
.growth-screener-tools {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
}
.growth-screener-tools .gate-summary { flex: 1; margin: 0; }
.growth-screener-tools .refresh-btn {
  flex: 0 0 auto;
  min-height: 36px;
  margin: 0;
}
.growth-screener-panel .gate-summary {
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.growth-screener-panel,
.growth-screener-list {
  min-width: 0;
  max-width: 100%;
}
.growth-screener-list { display: grid; gap: 8px; }
.growth-stale-state {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid rgba(242, 189, 92, .35);
  border-radius: 8px;
  background: rgba(242, 189, 92, .08);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.growth-stale-state strong { color: var(--gold); font-size: 13px; }
.growth-candidate-row {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 12px;
  background: var(--panel-soft);
  text-decoration: none;
  color: inherit;
  transition: border-color .15s;
}
.growth-candidate-row:hover {
  border-color: var(--teal);
}
.growth-candidate-head {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  margin-bottom: 5px;
}
.growth-candidate-title {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  flex: 1;
}
.growth-candidate-title strong {
  flex: 0 0 auto;
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 14px;
}
.growth-candidate-title span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-size: 12px;
}
.growth-candidate-head b {
  flex: 0 0 auto;
  min-width: 30px;
  text-align: right;
  font-size: 15px;
  color: var(--teal);
}
.signal-tag {
  flex: 0 0 auto;
  max-width: min(180px, 34vw);
  overflow: hidden;
  text-overflow: ellipsis;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.signal-tag.positive { background: rgba(91,227,139,.18); color: var(--green); }
.signal-tag.negative { background: rgba(255,107,138,.18); color: var(--rose); }
.signal-tag.warning  { background: rgba(242,189,92,.18);  color: var(--gold); }
.growth-candidate-row p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.growth-tags {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px 6px;
  margin-top: 7px;
  overflow: hidden;
}
.growth-tag {
  display: inline-block;
  max-width: 46%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  border-radius: 3px;
  padding: 1px 6px;
  font-size: 11px;
  line-height: 1.5;
}
.growth-tag.pos  { background: rgba(91,227,139,.10); color: var(--green); }
.growth-tag.risk { background: rgba(255,107,138,.10); color: var(--rose); }
.growth-tag.caution { background: rgba(242,189,92,.12); color: var(--gold); }

@media (max-width: 480px) {
  .growth-candidate-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "title score"
      "signal signal";
    gap: 5px 8px;
  }

  .growth-candidate-title {
    grid-area: title;
    flex-wrap: wrap;
    gap: 2px 8px;
  }

  .growth-candidate-title span {
    flex-basis: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .growth-candidate-head .signal-tag {
    grid-area: signal;
    justify-self: start;
    max-width: 100%;
  }

  .growth-candidate-head b {
    grid-area: score;
  }

  .growth-tags {
    flex-wrap: wrap;
    overflow: visible;
  }

  .growth-tag {
    max-width: 100%;
  }
}
.growth-candidate-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-top: 6px;
  color: var(--muted);
  font-size: 11px;
}

/* ═══════════════════════════════════════════════════════════════
   Stock Detail Page (/stock/:ticker)
   ═══════════════════════════════════════════════════════════════ */

/* ── Topbar ─────────────────────────────────────────────────── */
.stock-topbar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0 6px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 12px;
}
.stock-back {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--teal);
  font-size: 13px;
  text-decoration: none;
  font-weight: 600;
  white-space: nowrap;
}
.stock-back:hover { opacity: 0.8; }
.stock-topbar .refresh-btn { min-height: 44px; }
.stock-topbar-ticker {
  flex: 1;
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
  text-align: center;
}

/* ── Hero ───────────────────────────────────────────────────── */
.stock-hero-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 10px;
}
.stock-hero-head h2 {
  margin: 0;
  font-size: 20px;
  color: var(--ink);
}
.hero-company-name {
  font-size: 12px;
  color: var(--muted);
  display: block;
  margin-top: 2px;
}
.stock-hero-price strong {
  font-size: 22px;
  color: var(--ink);
  display: block;
  text-align: right;
}
.stock-hero-price span {
  font-size: 13px;
  display: block;
  text-align: right;
  margin-top: 2px;
}
.stock-hero-pos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}
.stock-hero-pos[hidden] { display: none; }
.hero-pos-item span {
  display: block;
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 2px;
}
.hero-pos-item strong {
  font-size: 14px;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.stock-hero-no-pos {
  padding-top: 8px;
  border-top: 1px solid var(--line);
  text-align: center;
}
.stock-page-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  margin: -4px 0 10px;
  padding: 7px 10px;
  border: 1px solid rgba(104, 167, 255, .28);
  border-radius: 8px;
  background: rgba(104, 167, 255, .07);
  color: var(--blue);
}
.stock-page-notice[hidden] { display: none; }
.stock-page-notice > span {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: currentColor;
}
.stock-page-notice.loading > span { animation: stock-status-pulse 1.1s ease-in-out infinite; }
.stock-page-notice.success { border-color: rgba(65, 214, 195, .3); background: rgba(65, 214, 195, .07); color: var(--teal); }
.stock-page-notice.error { border-color: rgba(255, 107, 138, .32); background: rgba(255, 107, 138, .07); color: var(--rose); }
.stock-page-notice strong { font-size: 11px; line-height: 1.4; }
@keyframes stock-status-pulse { 50% { opacity: .3; transform: scale(.72); } }
.stock-data-trust {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}
.stock-data-trust > div {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 8px;
  background: var(--panel-soft);
}
.stock-data-trust span,
.stock-data-trust small { color: var(--muted); font-size: 10px; }
.stock-data-trust strong {
  display: -webkit-box;
  overflow: hidden;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.4;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.stock-data-trust strong.ok { color: var(--teal); }
.stock-data-trust strong.review { color: var(--gold); }
.stock-data-trust strong.risk { color: var(--rose); }
.stock-data-trust small { overflow-wrap: anywhere; line-height: 1.35; }

/* ── InvestSkill AI ─────────────────────────────────────────── */
.ai-tag { vertical-align: middle; }
.research-gate {
  margin-bottom: 9px;
  padding: 9px 10px;
  border: 1px solid rgba(242, 189, 92, .28);
  border-left: 3px solid var(--gold);
  border-radius: 8px;
  background: rgba(242, 189, 92, .06);
}
.research-gate.pass {
  border-color: rgba(49, 207, 191, .28);
  border-left-color: var(--teal);
  background: rgba(49, 207, 191, .06);
}
.research-gate.blocked {
  border-color: rgba(255, 107, 138, .3);
  border-left-color: var(--rose);
  background: rgba(255, 107, 138, .06);
}
.research-gate-head {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
}
.research-gate-head span { color: var(--muted); font-size: 10px; }
.research-gate-head strong { color: var(--gold); font-size: 12px; }
.research-gate.pass .research-gate-head strong { color: var(--teal); }
.research-gate.blocked .research-gate-head strong { color: var(--rose); }
.research-gate-head small {
  min-width: 0;
  margin-left: auto;
  color: var(--muted);
  font-size: 9px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.research-gate > p {
  margin: 4px 0 0;
  color: var(--ink);
  font-size: 11px;
  line-height: 1.45;
}
.research-gate-details {
  display: grid;
  gap: 6px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}
.research-gate-details[hidden] { display: none; }
.research-gate-detail { display: grid; gap: 2px; }
.research-gate-detail b { color: var(--muted); font-size: 9px; }
.research-gate-detail span { color: var(--ink); font-size: 10px; line-height: 1.4; }
.stock-ai-scores { margin-bottom: 8px; }
.stock-ai-scores > small {
  display: block;
  margin: 0 0 5px;
  color: var(--muted);
  font-size: 9px;
}
.stock-ai-panel.research-blocked .stock-ai-summary { opacity: .78; }
.ai-score-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
}
.ai-score-item {
  text-align: center;
  padding: 8px 4px;
  background: var(--panel-soft);
  border-radius: 6px;
}
.ai-score-item span {
  display: block;
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 2px;
}
.ai-score-item strong {
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
}
.stock-ai-summary {
  margin: 8px 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink);
}
.stock-ai-meta {
  display: flex;
  gap: 12px;
  font-size: 11px;
  color: var(--muted);
  flex-wrap: wrap;
}
.stock-ai-meta strong { color: var(--ink); }

/* ── Fundamentals Grid ──────────────────────────────────────── */
.fundamentals-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.fundamental-group { display: grid; gap: 6px; }
.fundamental-group h3 {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
}
.fundamental-group > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}
.fundamental-cell {
  background: var(--panel-soft);
  border-radius: 6px;
  padding: 8px;
  text-align: center;
}
.fundamental-cell span {
  display: block;
  font-size: 10px;
  color: var(--muted);
  margin-bottom: 2px;
}
.fundamental-cell strong {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}
.fundamental-cell.missing strong,
.ft-quality-dimensions > div.missing strong { color: var(--muted); font-size: 11px; font-weight: 650; }

/* ── Technicals ─────────────────────────────────────────────── */
.technicals-indicators { margin-bottom: 6px; }
.tech-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  text-align: center;
}
.tech-row > div {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 8px 4px;
  border-radius: 7px;
  background: var(--panel-soft);
}
.tech-row span {
  font-size: 10px;
  color: var(--muted);
}
.tech-row strong {
  display: block;
  font-size: 14px;
  color: var(--ink);
  margin-bottom: 2px;
}
.technicals-levels {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--muted);
  margin-top: 8px;
}
.technicals-levels strong { color: var(--ink); }

/* ── Chart ──────────────────────────────────────────────────── */
.chart-inner {
  border-radius: 6px;
  overflow: hidden;
}

/* ── Position ───────────────────────────────────────────────── */
.position-weight-bar { margin: 8px 0; }
.position-advice { margin-top: 6px; }
.advice-warn { color: var(--rose); font-size: 13px; margin: 4px 0; }
.advice-ok   { color: var(--teal); font-size: 13px; margin: 4px 0; }
.advice-levels {
  font-size: 11px;
  color: var(--muted);
  margin: 4px 0;
  line-height: 1.4;
}

/* ── Catalysts & Risks ──────────────────────────────────────── */
.catalyst-group { margin-bottom: 10px; }
.catalyst-group h3 {
  font-size: 12px;
  color: var(--muted);
  margin: 0 0 6px;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.catalyst-item {
  display: flex;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.catalyst-item:last-child { border-bottom: 0; }
.catalyst-impact {
  font-size: 11px;
  font-weight: 700;
  flex: 0 0 48px;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.3;
}
.catalyst-item > div { flex: 1 1 auto; min-width: 0; }
.catalyst-item strong { display: block; color: var(--ink); margin-bottom: 2px; }
.catalyst-item p {
  margin: 0;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.4;
}
.risk-item strong { color: var(--rose); }
.event-risk-item strong { color: var(--gold); }

/* ── Entry Plan Panel ──────────────────────────────────────── */
.stock-entry-panel .entry-plan-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 8px;
}
.entry-zone {
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--surface);
  border: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}
.entry-zone-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  min-width: 80px;
}
.entry-zone-price {
  font-size: 14px;
  font-weight: 700;
  color: var(--teal);
  min-width: 110px;
}
.entry-zone-note {
  font-size: 11px;
  color: var(--muted);
  flex: 1;
  line-height: 1.4;
}
.entry-zone-warn {
  border-color: var(--rose);
  background: rgba(255,107,138,0.04);
}
.entry-zone-warn .entry-zone-price {
  color: var(--rose);
}
.entry-risk {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  padding: 10px 12px;
  background: var(--surface);
  border-radius: 8px;
  border: 1px solid var(--border);
}
.entry-risk div {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.5;
}
.entry-risk strong {
  display: block;
  font-size: 11px;
  color: var(--ink);
}
.entry-triggers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 10px 12px;
  background: var(--surface);
  border-radius: 8px;
  border: 1px solid var(--border);
}
.entry-triggers div {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.5;
}
.entry-triggers strong {
  display: block;
  font-size: 11px;
  color: var(--ink);
  margin-bottom: 2px;
}
#stockEntryPriority {
  font-size: 11px;
  font-weight: 600;
}

/* ── Growth Candidate Panel ─────────────────────────────────── */
.stock-growth-panel .gate-summary {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
  margin: 4px 0 0;
}

/* ── Holding ticker link to stock detail page ──────────────── */
.holding-ticker-link {
  color: var(--ink);
  text-decoration: none;
}
.holding-ticker-link:hover {
  color: var(--teal);
  text-decoration: underline;
}

/* ── Loading / Empty states ─────────────────────────────────── */
.stock-view-page .empty {
  color: var(--muted);
  font-size: 12px;
  text-align: center;
  padding: 16px 0;
}

/* ── Responsive: wider screens ──────────────────────────────── */
@media (min-width: 680px) {
  .stock-hero-pos { grid-template-columns: repeat(4, 1fr); }
  .fundamental-group > div { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .home-page .decision-card-actions .refresh-btn,
  .growth-screener-tools .refresh-btn,
  .growth-screener-summary {
    min-height: 44px;
  }
}

/* Keep the reviewed homepage intentionally mobile-only, including on wide screens. */
body.home-page { background: #07111a; }
.home-page .shell {
  width: min(430px, 100%);
  max-width: 430px;
  padding: max(10px, env(safe-area-inset-top)) 8px 12px;
}
.home-review-dashboard { gap: 6px; }
.home-review-topbar { min-height: 34px; padding: 0 2px 2px; }
.home-review-topbar h1 { font-size: 20px; }
.home-live-status { font-size: 9px; }
.home-refresh-btn { min-width: 48px; min-height: 34px; font-size: 11px; }
.home-account-overview { border-radius: 8px; }
.home-account-overview > div { padding: 4px 9px; }
.home-account-overview span { font-size: 8px; line-height: 1; }
.home-account-overview strong { margin-top: 2px; font-size: 12px; line-height: 1; }
.home-review-section,
.home-review-goal { border-radius: 8px; }
.home-review-section { padding: 7px; }
.home-section-head { gap: 6px; }
.home-section-head h2 { font-size: 15px; }
.home-section-head small { margin-top: 2px; font-size: 8px; }
.home-section-head a { padding-top: 1px; font-size: 9px; }
#operationPeriod { min-height: 40px; padding: 0 25px 0 9px; font-size: 11px; }
.operation-score-section { padding: 10px; }
.operation-score-section .home-section-head small {
  margin-top: 3px;
  font-size: 10px;
  line-height: 1.35;
}
.operation-score-summary { gap: 10px; margin-top: 7px; }
.operation-score-summary > strong { font-size: 44px; }
.operation-score-summary > strong small { font-size: 14px; }
.operation-score-summary > span { padding: 5px 7px; font-size: 11px; }
.operation-score-meta { margin-top: 3px; font-size: 10px; }
.operation-chart-wrap { height: auto; margin-top: 5px; }
#operationTrendChart { height: 102px; }
.operation-trend-detail { min-height: 34px; padding: 5px 7px; }
.operation-dimension-chart-hint { margin-top: 6px; }
.operation-dimensions { border-radius: 7px; }
.operation-dimension-detail { min-height: 34px; padding: 5px 7px; }
.operation-dimension-row {
  grid-template-columns: 90px minmax(0, 1fr) 64px;
  gap: 6px;
  min-height: 44px;
  padding: 5px 7px;
}
.operation-dimension-row strong { font-size: 11px; }
.operation-dimension-row canvas { display: block; width: 100%; height: 18px; }
.operation-dimension-row b { font-size: 15px; }
.operation-dimension-label small,
.operation-dimension-score small { font-size: 9px; }
.recommendation-head { align-items: baseline; padding-bottom: 4px; }
.recommendation-head > div,
.recent-operation-section .home-section-head > div,
.current-holding-section .home-section-head > div {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.recommendation-head small,
.recent-operation-section .home-section-head small,
.current-holding-section .home-section-head small { margin-top: 0; white-space: nowrap; }
.home-recommendation-row { grid-template-columns: 40px minmax(0, 1fr); gap: 7px; padding: 3px 1px; }
.home-action-priority { padding: 5px 3px; font-size: 10px; }
.home-action-main { gap: 1px 6px; }
.home-action-main strong,
.home-action-main b { font-size: 12px; }
.home-action-main span,
.home-action-main small { font-size: 8px; line-height: 1.25; }
.home-review-goal { padding: 5px 10px; }
.home-goal-head { gap: 5px; }
.home-goal-head span { font-size: 10px; }
.home-goal-head strong { font-size: 11px; }
.home-goal-head b { font-size: 16px; line-height: 1; }
.home-review-goal progress { display: block; height: 4px; margin-top: 3px; }
.recent-operation-list,
.home-holding-list { margin-top: 5px; border-radius: 6px; }
.recent-operation-row {
  grid-template-columns: 48px 39px 34px minmax(0, 1fr) 32px;
  gap: 4px;
  min-height: 21px;
  padding: 1px 7px;
  font-size: 9px;
}
.recent-operation-row strong { font-size: 11px; }
.current-holding-section {
  display: block;
  padding: 14px 6px 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.current-holding-section .home-section-head {
  display: block;
}
.current-holding-section .home-section-head > div {
  display: block;
}
.current-holding-section .home-section-head h2 {
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: -.02em;
}
.current-holding-section .home-section-head small {
  display: block;
  margin-top: 7px;
  color: #7e8d9e;
  font-size: 13px;
  line-height: 1.45;
  white-space: normal;
}
.current-holding-section .home-holding-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: 16px;
}
.current-holding-section .home-holding-tabs button {
  min-height: 44px;
  border: 1px solid #2a3b49;
  border-radius: 0;
  background: #0c1924;
  color: #8593a5;
  font-size: 13px;
  font-weight: 800;
  transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}
.current-holding-section .home-holding-tabs button:first-child {
  border-radius: 9px 0 0 9px;
}
.current-holding-section .home-holding-tabs button:last-child {
  border-radius: 0 9px 9px 0;
}
.current-holding-section .home-holding-tabs button + button {
  margin-left: -1px;
}
.current-holding-section .home-holding-tabs button[aria-selected="true"] {
  position: relative;
  z-index: 1;
  border-color: #31cfbf;
  background: rgba(49, 207, 191, .08);
  color: #38d6c8;
  box-shadow: inset 0 0 0 1px rgba(49, 207, 191, .25);
}
.current-holding-section .home-holding-tabs button:focus-visible,
.current-holding-section .home-text-link:focus-visible,
.current-holding-section .home-holding-row:focus-visible {
  outline: 2px solid #45dfcf;
  outline-offset: 2px;
}
.home-holding-sort-note {
  margin: 14px 1px 10px;
  color: #758596;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}
.current-holding-section .home-holding-list {
  margin-top: 0;
  overflow: hidden;
  border: 1px solid #2a3b49;
  border-radius: 10px;
  background: #0b1925;
}
.current-holding-section .home-holding-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 10px;
  min-height: 116px;
  padding: 12px 14px;
  color: inherit;
  text-decoration: none;
}
.current-holding-section .home-holding-row:hover {
  background: rgba(65, 214, 195, .035);
}
.current-holding-section .home-holding-symbol {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: 10px;
}
.current-holding-section .home-holding-symbol strong {
  flex: 0 0 auto;
  color: #f2f6fa;
  font-size: 18px;
  line-height: 1.25;
  letter-spacing: .01em;
}
.current-holding-section .home-holding-symbol small {
  min-width: 0;
  overflow: hidden;
  margin: 0;
  color: #8493a4;
  font-size: 12px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.current-holding-section .home-holding-action {
  display: block;
}
.current-holding-section .home-holding-action b {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(65, 214, 195, .52);
  border-radius: 8px;
  padding: 0 10px;
  background: rgba(65, 214, 195, .08);
  color: #41d6c3;
  font-size: 11px;
  line-height: 1.2;
  white-space: nowrap;
}
.current-holding-section .home-holding-action b.risk {
  border-color: rgba(255, 107, 138, .55);
  background: rgba(255, 107, 138, .09);
  color: #ff6b8a;
}
.current-holding-section .home-holding-action b.warn {
  border-color: rgba(242, 189, 92, .52);
  background: rgba(242, 189, 92, .08);
  color: #f2bd5c;
}
.current-holding-section .home-holding-action b.neutral {
  border-color: #354756;
  background: #12212d;
  color: #9aa8b6;
}
.current-holding-section .home-holding-main {
  display: block;
  grid-column: 1 / -1;
  min-width: 0;
}
.current-holding-section .home-holding-weight {
  display: grid;
  grid-template-columns: auto auto auto minmax(0, 1fr);
  align-items: baseline;
  justify-content: initial;
  gap: 6px;
  font-size: 13px;
}
.current-holding-section .home-holding-weight strong {
  color: #e6edf3;
  font-size: 13px;
}
.current-holding-section .home-holding-weight > span {
  color: #728293;
}
.current-holding-section .home-holding-weight > b {
  justify-self: end;
  color: #93a0ae;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.current-holding-section .home-holding-weight > b.negative { color: #ff6b8a; }
.current-holding-section .home-holding-weight > b.positive { color: #41d6c3; }
.current-holding-section .home-weight-track {
  position: relative;
  display: block;
  height: 8px;
  margin-top: 9px;
  overflow: visible;
  border-radius: 999px;
  background: #24323f;
}
.current-holding-section .home-weight-track i {
  position: absolute;
  inset: 0 auto 0 0;
  border-radius: inherit;
  background: #35cfc0;
}
.current-holding-section .home-weight-track b {
  position: absolute;
  top: -4px;
  bottom: -4px;
  width: 3px;
  border-radius: 2px;
  background: #f0f4f7;
  transform: translateX(-1px);
}
.home-holding-reason {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin-top: 10px;
  align-items: baseline;
}
.current-holding-section .home-holding-reason small {
  min-width: 0;
  overflow: hidden;
  margin: 0;
  color: #8594a4;
  font-size: 12px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-holding-reason em {
  color: #91a0ad;
  font-size: 12px;
  font-style: normal;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.home-holding-reason em.negative { color: #ff6b8a; }
.home-holding-reason em.positive { color: #41d6c3; }
.current-holding-section .home-text-link {
  width: 100%;
  min-height: 48px;
  margin-top: 12px;
  border: 1px solid rgba(49, 207, 191, .52);
  border-radius: 9px;
  background: transparent;
  color: #38d6c8;
  font-size: 13px;
  font-weight: 800;
}
.home-empty { padding: 10px 8px; font-size: 9px; }
.home-data-note { font-size: 8px; }
.home-page + footer,
body.home-page > footer { padding: 6px 0 4px !important; font-size: 9px !important; }
@media (max-width: 360px) {
  .home-page .shell { padding-inline: 6px; }
  .current-holding-section { padding-inline: 6px; }
  .current-holding-section .home-holding-row { padding-inline: 12px; }
  .current-holding-section .home-holding-weight { gap: 4px; }
  .current-holding-section .home-holding-weight strong,
  .current-holding-section .home-holding-weight > b { font-size: 12px; }
}

/* 2026-07 mobile review homepage: operation trajectory + sector treemap. */
.home-data-alert {
  display: grid;
  gap: 3px;
  border: 1px solid rgba(242, 189, 92, .38);
  border-radius: 9px;
  padding: 9px 11px;
  background: rgba(116, 83, 22, .14);
}
.home-data-alert[hidden] { display: none !important; }
.home-data-alert strong { color: #f2bd5c; font-size: 12px; }
.home-data-alert span { color: #c9b987; font-size: 10px; line-height: 1.45; }

.operation-loop {
  margin-top: 8px;
  overflow: hidden;
  border: 1px solid #294151;
  border-radius: 9px;
  background: #0a1721;
}
.operation-loop.redline { border-color: rgba(255, 107, 118, .6); }
.operation-loop-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.operation-loop-grid > div { min-width: 0; padding: 9px 10px; }
.operation-loop-grid > div + div { border-left: 1px solid #213846; }
.operation-loop.redline .operation-loop-grid > div:first-child { background: rgba(255, 107, 118, .07); }
.operation-loop-grid span, .operation-loop-grid strong { display: block; }
.operation-loop-grid span { color: #748795; font-size: 9px; font-weight: 800; }
.operation-loop-grid strong { margin-top: 4px; color: #d9e3e8; font-size: 10px; line-height: 1.4; overflow-wrap: anywhere; }
.operation-loop-grid small { display: block; margin-top: 3px; color: #80929f; font-size: 8px; line-height: 1.35; overflow-wrap: anywhere; }
.operation-loop-grid > div:nth-child(1) strong { color: #ff9499; }
.operation-loop-grid > div:nth-child(2) strong { color: #70dfd0; }

.operation-action-queues {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 9px;
  overflow: hidden;
  border: 1px solid #294151;
  border-radius: 9px;
  background: #0a1721;
}
.operation-action-queues > span { display: grid; min-width: 0; gap: 2px; padding: 8px 9px; }
.operation-action-queues > span + span { border-left: 1px solid #294151; }
.operation-action-queues b { color: #8fa2ae; font-size: 12px; }
.operation-action-queues small { color: #afbdc6; font-size: 9px; font-weight: 800; }
.operation-action-queues em { overflow: hidden; color: #738593; font-size: 8px; font-style: normal; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.operation-action-queues .data b { color: #f2bd5c; }
.operation-action-queues .blocked b { color: #ff7f86; }
.operation-action-queues .next b { color: #5ad9ca; }

/* 紧凑首页：纪律只是辅助信息，轨迹留给主动展开。 */
.operation-score-scope {
  grid-template-columns: 1fr;
  gap: 0;
  padding: 0;
}
.operation-score-scope > div { min-width: 0; padding: 9px; }
.operation-track-panel { margin-top: 8px; }
.operation-track-head { min-height: 42px; }
.home-account-overview {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.home-account-overview > div {
  padding: 9px 6px;
  text-align: center;
}
.home-account-overview > div:nth-child(odd) {
  border-right: 1px solid #223342;
}
.home-account-overview > div:nth-child(even):not(:last-child) {
  border-right: 1px solid #223342;
}
.home-account-overview > div:nth-child(n+3) {
  border-top: 0;
}
.home-account-overview span {
  font-size: 9px;
  line-height: 1.2;
}
.home-account-overview strong {
  margin-top: 5px;
  font-size: 13px;
}

.operation-score-section {
  padding: 13px;
}
.operation-score-section .home-section-head h2 {
  font-size: 19px;
}
.operation-score-section .home-section-head small {
  font-size: 10px;
}
.operation-score-summary {
  margin-top: 9px;
}
.operation-score-summary > strong {
  font-size: 54px;
}
.operation-score-summary > strong small {
  font-size: 17px;
}
.operation-score-summary > span {
  border: 1px solid rgba(65, 214, 195, .4);
  background: rgba(65, 214, 195, .06);
}
.operation-score-meta {
  color: #a4b0bc;
  font-size: 12px;
}
.operation-track-panel {
  margin-top: 10px;
  border: 1px solid #263b4b;
  border-radius: 9px;
  padding: 10px;
  background: #0a1721;
}
.operation-track-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.operation-track-head > strong {
  color: #f0f5f8;
  font-size: 14px;
}
.operation-type-legend,
.operation-score-legend {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #93a1ae;
  font-size: 9px;
  white-space: nowrap;
}
.operation-type-legend i {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 4px;
  background: #aab5bf;
}
.operation-type-legend i.buy {
  border-radius: 50%;
}
.operation-type-legend i.add {
  width: 0;
  height: 0;
  border-right: 5px solid transparent;
  border-bottom: 9px solid #aab5bf;
  border-left: 5px solid transparent;
  background: transparent;
}
.operation-score-legend {
  justify-content: flex-end;
  margin-top: 6px;
}
.operation-score-legend span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.operation-score-legend i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}
.operation-score-legend i.good { background: #35d2c1; }
.operation-score-legend i.warn { background: #f2a51f; }
.operation-score-legend i.risk { background: #ff5e66; }
.operation-score-scope {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 8px 9px;
  border: 1px solid #263b4b;
  border-radius: 7px;
  background: rgba(12, 31, 42, .82);
}
.operation-score-scope > div {
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  justify-content: start;
  gap: 2px 7px;
}
.operation-score-scope > div > span {
  color: #b6c2cb;
  font-size: 10px;
  font-weight: 800;
}
.operation-score-scope > div > strong {
  color: #41d6c3;
  font-size: 18px;
  line-height: 1;
}
.operation-score-scope > div > strong.warn { color: #f2bd5c; }
.operation-score-scope > div > strong.risk { color: #ff6b76; }
.operation-score-scope > div > strong small {
  margin-left: 1px;
  font-size: 9px;
}
.operation-score-scope > div > small {
  grid-column: 1 / -1;
  color: #7f919f;
  font-size: 9px;
  line-height: 1.35;
}
.operation-score-scope > p {
  margin: 0;
  padding-top: 5px;
  border-top: 1px solid rgba(70, 91, 106, .42);
  color: #8da0ae;
  font-size: 9px;
  line-height: 1.4;
  text-align: left;
}
.operation-chart-wrap {
  margin-top: 2px;
}
#operationTrendChart {
  height: 205px;
}
.operation-chart-direction {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  margin: -2px 28px 5px;
  color: #748492;
  font-size: 9px;
}
.operation-chart-direction span:last-child {
  text-align: right;
}
.operation-chart-direction b {
  color: #8f9eaa;
  font-weight: 700;
}
.operation-chart-direction b::before,
.operation-chart-direction b::after {
  content: "";
  display: inline-block;
  width: 26px;
  height: 1px;
  margin: 0 5px 3px;
  background: #465765;
}
.operation-trend-detail {
  min-height: 66px;
  margin-top: 0;
  padding: 7px 9px;
  background: #0d1b26;
  font-size: 10px;
}
.operation-trend-detail .operation-detail-head {
  display: flex;
}
.operation-trend-detail strong,
.operation-trend-detail b {
  font-size: 12px;
}
.operation-trend-detail small {
  white-space: normal;
}
.operation-trend-detail .operation-score-equation {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 3px;
  padding: 5px 7px;
  border-radius: 5px;
  background: #08131c;
  font-variant-numeric: tabular-nums;
}
.operation-score-equation span {
  color: #d9e3e9;
  font-size: 11px;
  font-weight: 900;
}
.operation-score-equation i {
  color: #ff7980;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}
.operation-score-equation strong {
  margin-left: auto;
  color: #f2bd5c;
}
.operation-score-equation.clean strong {
  color: #41d6c3;
}
.operation-deduction-list {
  display: grid;
  gap: 5px;
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
}
.operation-deduction-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1px 8px;
  padding-top: 5px;
  border-top: 1px solid rgba(70, 91, 106, .42);
}
.operation-deduction-list li > span {
  min-width: 0;
  color: #dbe5ea;
  font-size: 10px;
  font-weight: 800;
}
.operation-deduction-list li > span em {
  display: inline-block;
  margin-left: 5px;
  padding: 1px 4px;
  border: 1px solid rgba(242, 189, 92, .35);
  border-radius: 999px;
  color: #f2bd5c;
  font-size: 7px;
  font-style: normal;
}
.operation-deduction-list li > b {
  color: #ff7980;
  font-size: 10px;
}
.operation-deduction-list li > small {
  grid-column: 1 / -1;
  overflow: visible;
  color: #7f919f;
  font-size: 8px;
  line-height: 1.35;
  text-overflow: clip;
  white-space: normal;
}
.operation-no-deduction {
  margin: 3px 0 0;
  color: #7ae7d8;
  font-size: 9px;
}
.operation-review-insights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 9px;
}
.operation-review-insights > div {
  min-width: 0;
  border: 1px solid #263a49;
  border-radius: 8px;
  padding: 9px;
  background: #0c1924;
}
.operation-review-insights strong,
.operation-review-insights span {
  display: block;
}
.operation-review-insights strong {
  color: #39d4c4;
  font-size: 12px;
}
.operation-review-insights .repeating strong {
  color: #f2a51f;
}
.operation-review-insights .negative strong {
  color: #ff6b76;
}
.operation-review-insights span {
  margin-top: 5px;
  color: #a2afbb;
  font-size: 10px;
  line-height: 1.4;
}
.home-sector-structure {
  padding: 12px;
}
.home-sector-head {
  align-items: center;
}
.home-sector-head h2 {
  font-size: 19px;
}
.home-sector-head small {
  color: #9ba9b5;
  font-size: 10px;
}


.current-holding-section {
  padding: 12px;
  border: 1px solid #2a3b4b;
  border-radius: 10px;
  background: #0d1823;
}
.current-holding-section .home-section-head h2 {
  font-size: 20px;
}
.current-holding-section .home-section-head small {
  margin-top: 3px;
  font-size: 10px;
}
.current-holding-section .home-holding-tabs {
  margin-top: 10px;
}
.home-holding-sort-note {
  margin: 9px 1px 7px;
  font-size: 10px;
}
.current-holding-section .home-holding-row {
  grid-template-columns: 30px minmax(0, 1fr) auto;
  gap: 5px 8px;
  min-height: 88px;
  padding: 9px 10px;
}
.home-holding-rank {
  grid-row: 1 / 3;
  align-self: center;
  width: 23px;
  height: 23px;
  border: 1px solid #627281;
  border-radius: 50%;
  color: #b1bdc7;
  font-size: 11px;
  font-weight: 900;
  line-height: 21px;
  text-align: center;
}
.current-holding-section .home-holding-row:nth-child(1) .home-holding-rank {
  border-color: #ff5e66;
  color: #ff6b76;
}
.current-holding-section .home-holding-row:nth-child(2) .home-holding-rank,
.current-holding-section .home-holding-row:nth-child(3) .home-holding-rank {
  border-color: #f2a51f;
  color: #f2a51f;
}
.current-holding-section .home-holding-symbol {
  display: grid;
  gap: 2px;
}
.current-holding-section .home-holding-symbol strong {
  font-size: 15px;
}
.current-holding-section .home-holding-symbol small {
  max-width: 170px;
  font-size: 9px;
}
.home-holding-quality {
  display: flex;
  align-items: center;
  gap: 8px;
}
.home-holding-quality > strong {
  color: #aab6c0;
  font-size: 10px;
}
.home-holding-quality > b {
  color: #9ba8b4;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.home-holding-quality > b.good { color: #41d6c3; }
.home-holding-quality > b.warn { color: #f2bd5c; }
.home-holding-quality > b.risk { color: #ff6b76; }
.home-holding-quality small {
  font-size: 9px;
}
.current-holding-section .home-holding-main {
  grid-column: 2 / -1;
}
.current-holding-section .home-holding-weight,
.current-holding-section .home-holding-weight strong,
.current-holding-section .home-holding-weight > b {
  font-size: 11px;
}
.current-holding-section .home-weight-track {
  height: 6px;
  margin-top: 6px;
}
.home-holding-reason {
  margin-top: 7px;
}
.current-holding-section .home-holding-reason small,
.home-holding-reason em {
  font-size: 9px;
}
.current-holding-section .home-text-link {
  min-height: 42px;
  margin-top: 9px;
}

@media (max-width: 360px) {
  .home-account-overview strong { font-size: 11px; }
  .operation-track-head { align-items: flex-start; }
  .operation-type-legend { gap: 3px; font-size: 8px; }
  .operation-type-legend i { margin-left: 2px; }
  #operationTrendChart { height: 190px; }


}

/* Current holdings: add-position readiness and confirmation guidance. */
.holdings-panel-subtitle {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.holdings-sort-row {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: -2px 0 10px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.holdings-sort-row[hidden] {
  display: none;
}

.holdings-sort-row button {
  min-height: 30px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 4px 10px;
  background: var(--panel-soft);
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  cursor: pointer;
}

.holdings-sort-row button[aria-pressed="true"] {
  border-color: rgba(65, 214, 195, 0.45);
  background: rgba(65, 214, 195, 0.12);
  color: var(--teal);
}

.holding-tab-summary[data-mode="adjust"] {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.018);
}

.holding-tab-summary[data-mode="adjust"] span {
  min-height: 54px;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  padding: 7px 4px;
  background: transparent;
  text-align: center;
}

.holding-tab-summary[data-mode="adjust"] span:last-child {
  border-right: 0;
}

.holding-tab-summary[data-mode="adjust"] b {
  font-size: 18px;
}

.holding-compact.holding-card-summary.holding-guidance-card {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "head"
    "overview"
    "capacity"
    "gates"
    "readiness"
    "decision"
    "evidence";
  gap: 9px;
  border: 0;
  border-radius: 0;
  padding: 12px 2px;
  background: transparent;
  cursor: default;
}

.holding-guidance-row {
  padding: 0;
  border-bottom-color: rgba(104, 167, 255, 0.16);
}

.holding-guidance-row:last-child {
  padding-bottom: 0;
}

.holding-guidance-card .holding-card-head {
  grid-area: head;
}

.holding-guidance-card .holding-card-title {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.holding-guidance-card .holding-card-title .holding-identity {
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
  white-space: normal;
}

.holding-guidance-card .queue-badge {
  border: 1px solid var(--line);
  padding: 5px 8px;
  background: transparent;
  font-size: 11px;
}

.holding-guidance-card .queue-badge.opportunity {
  border-color: rgba(65, 214, 195, 0.5);
  color: var(--teal);
}

.holding-guidance-card .queue-badge.warning {
  border-color: rgba(242, 189, 92, 0.5);
  color: var(--gold);
}

.holding-guidance-card .queue-badge.risk {
  border-color: rgba(255, 107, 138, 0.5);
  color: var(--rose);
}

.holding-guidance-card .queue-badge.neutral {
  color: var(--muted);
}

.holding-guidance-overview {
  grid-area: overview;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px 14px;
  flex-wrap: wrap;
  color: var(--muted);
  font-size: 12px;
}

.holding-guidance-overview span {
  color: inherit;
}

.holding-guidance-overview b {
  color: var(--ink);
  font-size: 13px;
}

.holding-guidance-overview .positive,
.holding-guidance-overview .positive b {
  color: var(--green);
}

.holding-guidance-overview .negative,
.holding-guidance-overview .negative b {
  color: var(--rose);
}

.holding-capacity {
  grid-area: capacity;
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}

.holding-capacity strong {
  margin-left: 5px;
  color: var(--teal);
  font-size: 15px;
}

.holding-gates {
  grid-area: gates;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}

.holding-gates > div {
  min-width: 0;
  display: grid;
  gap: 2px;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 6px;
  background: rgba(255, 255, 255, 0.02);
  text-align: center;
}

.holding-gates span {
  color: var(--muted);
  font-size: 10px;
}

.holding-gates b {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.holding-gates .passed b {
  color: var(--teal);
}

.holding-gates .pending b {
  color: var(--gold);
}

.holding-gates .failed b {
  color: var(--rose);
}

.holding-readiness {
  grid-area: readiness;
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.holding-readiness progress {
  width: 100%;
  height: 7px;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  accent-color: var(--teal);
}

.holding-readiness progress::-webkit-progress-bar {
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
}

.holding-readiness progress::-webkit-progress-value {
  border-radius: 999px;
  background: var(--teal);
}

.holding-readiness b {
  color: var(--teal);
  font-size: 13px;
}

.holding-guidance-decision {
  grid-area: decision;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(112px, 0.7fr) minmax(0, 1.5fr);
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  background: rgba(255, 255, 255, 0.02);
}

.holding-guidance-decision strong {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
  white-space: normal;
}

.holding-guidance-decision span {
  border-left: 1px solid var(--line);
  padding-left: 10px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
  white-space: normal;
}

.holding-guidance-decision.opportunity {
  border-color: rgba(65, 214, 195, 0.24);
}

.holding-guidance-decision.opportunity strong {
  color: var(--teal);
}

.holding-guidance-decision.warning {
  border-color: rgba(242, 189, 92, 0.25);
}

.holding-guidance-decision.warning strong {
  color: var(--gold);
}

.holding-guidance-decision.risk {
  border-color: rgba(255, 107, 138, 0.25);
}

.holding-guidance-decision.risk strong {
  color: var(--rose);
}

.holding-guidance-evidence {
  grid-area: evidence;
  color: var(--muted);
  font-size: 10px;
}

.holding-guidance-evidence summary {
  width: max-content;
  color: var(--muted);
  cursor: pointer;
}

.holding-guidance-evidence p {
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.4;
}

.holdings-guidance-note {
  display: block;
  margin-top: 10px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
  text-align: center;
}

@media (max-width: 760px) {
  #holdingsQueuePanel .panel {
    padding: 12px;
  }

  #holdingsQueuePanel .panel-head {
    align-items: flex-start;
    margin-bottom: 10px;
  }

  #holdingsQueuePanel .panel-head > span {
    font-size: 10px;
  }

  #holdingsQueuePanel .filter-tabs {
    margin-bottom: 9px;
  }

  #holdingsQueuePanel .filter-tabs button {
    min-height: 40px;
  }

  #holdingsQueuePanel .holdings-list {
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0 10px;
    background: rgba(255, 255, 255, 0.014);
  }

  .holding-guidance-card .holding-card-head strong {
    font-size: 20px;
  }

  .holding-guidance-overview {
    gap: 5px 11px;
  }
}

@media (max-width: 360px) {
  .holding-tab-summary[data-mode="adjust"] span {
    font-size: 9px;
  }

  .holding-tab-summary[data-mode="adjust"] b {
    font-size: 16px;
  }

  .holding-guidance-card .holding-card-head {
    align-items: flex-start;
  }

  .holding-guidance-card .holding-card-title {
    display: grid;
    gap: 3px;
  }

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

  .holding-guidance-decision {
    grid-template-columns: 1fr;
  }

  .holding-guidance-decision span {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding: 7px 0 0;
  }
}

.home-holding-sort-tools {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 7px 0 5px;
}

.home-holding-sort-tools .home-holding-sort-note {
  margin: 0;
}

.home-holding-sort-tools button {
  min-height: 32px;
  border: 1px solid #2a3b49;
  border-radius: 999px;
  padding: 4px 10px;
  background: #0c1924;
  color: #8593a5;
  font-size: 10px;
  font-weight: 850;
}

.home-holding-sort-tools button[hidden] {
  display: none;
}

.home-holding-sort-tools button[aria-pressed="true"] {
  border-color: rgba(49, 207, 191, .55);
  background: rgba(49, 207, 191, .1);
  color: #38d6c8;
}

.home-holding-group + .home-holding-group {
  border-top: 1px solid #2a3b49;
}

.home-holding-group-head {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 12px 7px;
  background: rgba(8, 20, 30, .56);
}

.home-holding-group-head > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.home-holding-group-head strong {
  color: #cddce1;
  font-size: 11px;
  line-height: 1.2;
}

.home-holding-group-head small {
  overflow: hidden;
  color: #748895;
  font-size: 9px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-holding-group-head b {
  flex: 0 0 auto;
  min-width: 20px;
  padding: 2px 6px;
  border: 1px solid #2e4754;
  border-radius: 999px;
  color: #53d7c9;
  font-size: 10px;
  line-height: 1.2;
  text-align: center;
}

.current-holding-section .home-holding-row.home-add-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 9px;
  min-height: 0;
  padding: 13px 14px;
}

.current-holding-section .home-add-row + .home-add-row {
  border-top: 1px solid #263745;
}

.home-add-head {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.current-holding-section .home-add-head .home-holding-symbol {
  min-width: 0;
}

.home-add-head-meta {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 6px;
}

.home-holding-quality-chip {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  border: 1px solid #354756;
  border-radius: 8px;
  padding: 0 7px;
  color: #91a0ad;
  line-height: 1;
  white-space: nowrap;
}

.home-holding-quality-chip small {
  font-size: 8px;
  font-weight: 750;
  line-height: 1;
}

.home-holding-quality-chip strong {
  color: #b8c5cd;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.home-holding-quality-chip i {
  margin-left: 1px;
  color: #738490;
  font-size: 7px;
  font-style: normal;
  line-height: 1;
}

.home-holding-quality-chip em {
  font-size: 8px;
  font-style: normal;
  font-weight: 850;
  line-height: 1;
}

.home-holding-quality-chip.good {
  border-color: rgba(65, 214, 195, .42);
  color: #41d6c3;
}
.home-holding-quality-chip.good strong { color: #54dfcf; }
.home-holding-quality-chip.warning {
  border-color: rgba(242, 189, 92, .48);
  color: #f2bd5c;
}
.home-holding-quality-chip.warning strong { color: #f5c66e; }
.home-holding-quality-chip.risk {
  border-color: rgba(255, 107, 138, .5);
  color: #ff6b8a;
}
.home-holding-quality-chip.risk strong { color: #ff8ba2; }
.home-holding-quality-chip.muted { color: #71818d; }

.home-add-status {
  flex: 0 0 auto;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #354756;
  border-radius: 8px;
  padding: 0 9px;
  color: #9aa8b6;
  font-size: 11px;
  line-height: 1.2;
  white-space: nowrap;
}

.home-add-status.opportunity {
  border-color: rgba(65, 214, 195, .52);
  color: #41d6c3;
}

.home-add-status.warning {
  border-color: rgba(242, 189, 92, .55);
  color: #f2bd5c;
}

.home-add-status.risk {
  border-color: rgba(255, 107, 138, .55);
  color: #ff6b8a;
}

.home-add-overview {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 5px 12px;
  flex-wrap: wrap;
  color: #8493a4;
  font-size: 11px;
}

.home-add-overview > span {
  color: inherit;
}

.home-add-overview b {
  color: #e6edf3;
  font-size: 12px;
}

.home-add-overview .positive,
.home-add-overview .positive b {
  color: #41d6c3;
}

.home-add-overview .negative,
.home-add-overview .negative b {
  color: #ff6b8a;
}

.home-add-capacity {
  color: #8493a4;
  font-size: 11px;
  font-weight: 750;
}

.home-add-capacity strong {
  margin-left: 4px;
  color: #38d6c8;
  font-size: 14px;
}

.home-add-gates {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}

.home-add-gates > span {
  min-width: 0;
  display: grid;
  gap: 2px;
  border: 1px solid #263745;
  border-radius: 7px;
  padding: 6px 4px;
  background: rgba(255, 255, 255, .018);
  text-align: center;
}

.home-add-gates small {
  color: #758596;
  font-size: 9px;
}

.home-add-gates b {
  min-width: 0;
  overflow: hidden;
  color: #9aa8b6;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-add-gates .passed b { color: #38d6c8; }
.home-add-gates .pending b { color: #f2bd5c; }
.home-add-gates .failed b { color: #ff6b8a; }

.home-add-readiness {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.home-add-readiness small {
  color: #758596;
  font-size: 10px;
  font-weight: 800;
}

.home-add-readiness-bar {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
}

.home-add-readiness-bar i {
  height: 7px;
  border-radius: 999px;
  background: #24323f;
}

.home-add-readiness-bar i.passed { background: #35cfc0; }
.home-add-readiness-bar i.pending { background: #f2bd5c; }

.home-add-readiness > b {
  color: #38d6c8;
  font-size: 12px;
}

.home-add-decision {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(108px, .72fr) minmax(0, 1.45fr);
  align-items: center;
  gap: 9px;
  border: 1px solid #2a3b49;
  border-radius: 8px;
  padding: 8px 9px;
  background: rgba(255, 255, 255, .018);
}

.home-add-decision strong {
  color: #9aa8b6;
  font-size: 11px;
  line-height: 1.35;
}

.home-add-decision small {
  border-left: 1px solid #2a3b49;
  padding-left: 9px;
  color: #8493a4;
  font-size: 10px;
  line-height: 1.45;
}

.home-add-decision.opportunity {
  border-color: rgba(65, 214, 195, .25);
}

.home-add-decision.opportunity strong { color: #38d6c8; }
.home-add-decision.warning { border-color: rgba(242, 189, 92, .28); }
.home-add-decision.warning strong { color: #f2bd5c; }
.home-add-decision.risk { border-color: rgba(255, 107, 138, .28); }
.home-add-decision.risk strong { color: #ff6b8a; }

.home-holding-guidance-note {
  display: block;
  margin-top: 10px;
  color: #6f7f8f;
  font-size: 9px;
  line-height: 1.45;
  text-align: center;
}

@media (max-width: 360px) {
  .home-holding-status-summary > span {
    min-height: 50px;
    font-size: 9px;
  }

  .home-holding-status-summary b {
    font-size: 16px;
  }

  .current-holding-section .home-holding-row.home-add-row {
    padding-inline: 11px;
  }

  .home-add-head {
    align-items: flex-start;
  }

  .home-add-head-meta { gap: 4px; }
  .home-holding-quality-chip { padding-inline: 6px; }
  .home-holding-quality-chip em { display: none; }

  .home-add-head .home-holding-symbol {
    display: grid;
    gap: 2px;
  }

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

  .home-add-decision {
    grid-template-columns: 1fr;
  }

  .home-add-decision small {
    border-top: 1px solid #2a3b49;
    border-left: 0;
    padding: 7px 0 0;
  }
}

/* Keep the conclusion-first operation card above the legacy homepage overrides. */
.operation-score-section { padding: 12px; }
.operation-score-scope {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding: 11px 13px;
  border: 1px solid #2a4051;
  border-radius: 10px;
  background: #0b1924;
}
.operation-score-scope > div {
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 2px 8px;
}
.operation-score-scope > div > span { color: #d9e2e8; font-size: 13px; }
.operation-score-scope > div > strong { font-size: 23px; }
.operation-score-scope > div > small { font-size: 10px; }
.operation-score-scope > p {
  max-width: 132px;
  margin: 0;
  padding: 0 0 0 12px;
  border-top: 0;
  border-left: 1px solid #2a4051;
  font-size: 10px;
}
.operation-track-panel {
  margin-top: 10px;
  overflow: hidden;
  border: 1px solid #2a4051;
  border-radius: 11px;
  padding: 0;
  background: #0a1721;
}
.operation-track-head {
  min-height: 48px;
  padding: 0 13px;
  cursor: pointer;
  list-style-position: inside;
}
.operation-track-head > strong { margin-right: auto; font-size: 14px; }
.operation-track-body { padding: 0 12px 12px; border-top: 1px solid #253b4b; }
.operation-track-legends {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding-top: 10px;
}
.operation-type-legend,
.operation-score-legend { font-size: 9px; }
.operation-score-legend { margin: 0; }
.operation-chart-wrap { margin-top: 2px; }
#operationTrendChart { height: 172px; }
.operation-trend-detail { min-height: 64px; border-radius: 8px; }
.operation-review-insights { gap: 7px; margin-top: 10px; }
.operation-review-insights > div { padding: 10px; }
@media (max-width: 360px) {
  .operation-score-scope > p { max-width: 112px; }
  #operationTrendChart { height: 158px; }
}
/* Legacy today-action group shell; the current queue below uses one conclusion per holding. */


.home-add-gates,
.home-add-readiness-bar { grid-template-columns: repeat(5, minmax(0, 1fr)); }


/* Today position action: one conclusion per holding, with executable rows expanded. */


/* 2026-08 decision loop: one daily conclusion, then the review rule that governs it. */

.home-review-dashboard > .operation-score-section { order: 4; }
.home-review-dashboard > .home-sector-structure { order: 5; }
.home-review-dashboard > .current-holding-section { order: 6; }


/* The score remains in the discipline archive; the home surface is one actionable rule. */
.operation-score-section { padding: 12px; }
.operation-score-section .operation-review-hero,
.operation-score-section .operation-score-meta,
.operation-score-section .operation-score-scope { display: none; }
.operation-score-section .operation-loop {
  display: grid;
  gap: 7px;
  margin-top: 10px;
  border-color: #304858;
  border-radius: 10px;
  padding: 11px;
  background: #0a1823;
}
.operation-score-section .operation-loop.redline { border-color: rgba(255, 107, 118, .66); background: rgba(104, 31, 41, .12); }
.operation-loop-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.operation-loop-head > span { color: #a0b0bc; font-size: 10px; font-weight: 850; }
.operation-loop.redline .operation-loop-head > span { color: #ff959d; }
.operation-loop-head > b {
  border: 1px solid #355264;
  border-radius: 999px;
  padding: 3px 7px;
  color: #7edfd4;
  font-size: 9px;
}
.operation-loop.redline .operation-loop-head > b { border-color: rgba(255, 107, 118, .55); color: #ff9199; }
.operation-loop-eyebrow { color: #718594; font-size: 9px; font-weight: 800; }
.operation-loop-rule { color: #f0f5f8; font-size: 17px; line-height: 1.32; letter-spacing: -.015em; }
.operation-loop.redline .operation-loop-rule { color: #fff3f4; }
.operation-loop-action { margin: 0; color: #a8b6c0; font-size: 11px; line-height: 1.45; }
.operation-loop-metrics {
  display: grid;
  grid-template-columns: .72fr 1.55fr .95fr;
  overflow: hidden;
  margin-top: 2px;
  border: 1px solid #294050;
  border-radius: 7px;
}
.operation-loop-metrics > span { min-width: 0; display: grid; gap: 3px; padding: 7px; }
.operation-loop-metrics > span + span { border-left: 1px solid #294050; }
.operation-loop-metrics small { color: #718393; font-size: 8px; font-weight: 750; }
.operation-loop-metrics strong { overflow: hidden; color: #d8e2e8; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; }
.operation-loop-metrics > span:first-child strong { color: #ff9199; }
.operation-loop-metrics > span:last-child strong { color: #65dcd0; }
.operation-score-section .operation-track-panel { margin-top: 9px; }
.operation-score-section .operation-track-head > strong { font-size: 12px; }

@media (max-width: 360px) {


  .operation-loop-rule { font-size: 15px; }
  .operation-loop-metrics { grid-template-columns: .74fr 1.42fr .94fr; }
  .operation-loop-metrics > span { padding: 6px 5px; }
  .operation-loop-metrics strong { font-size: 9px; }
}

/* 首页只保留会影响当天操作的执行边界；完整操作轨迹继续在数据层生成。 */
.home-review-dashboard > .operation-score-section { display: none; }


/* Compact market pulse: current market facts plus the risk coefficient that governs offense. */
.home-review-dashboard > .home-market-pulse { order: 4; }
.home-market-pulse {
  padding: 12px;
  border-color: #304654;
  background: #0c1924;
}
.home-market-head { align-items: center; }
.home-market-source {
  flex: 0 0 auto;
  border: 1px solid #365163;
  border-radius: 999px;
  padding: 4px 7px;
  color: #9aabb7;
  font-size: 9px;
  font-weight: 800;
}
.home-market-source.ok { border-color: rgba(83, 218, 206, .42); color: #60dcd0; }
.home-market-source.warn { border-color: rgba(242, 189, 92, .45); color: #efc56d; }
.home-market-source.risk { border-color: rgba(255, 107, 138, .48); color: #ff95a7; }
.home-market-pulse-body { display: grid; gap: 8px; margin-top: 10px; }
.home-market-overview {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid #2c4352;
  border-radius: 9px;
  background: #091722;
}
.home-market-risk { display: grid; align-content: center; gap: 3px; padding: 10px; border-right: 1px solid #2c4352; }
.home-market-risk > span,
.home-market-summary > span { color: #8092a0; font-size: 9px; font-weight: 800; }
.home-market-risk > strong { color: #dbe7ed; font-size: 28px; line-height: 1; letter-spacing: -.03em; }
.home-market-risk > strong small { margin-left: 2px; color: #8193a2; font-size: 11px; }
.home-market-risk > b { font-size: 10px; }
.home-market-risk > i { display: block; height: 4px; overflow: hidden; margin-top: 2px; border-radius: 999px; background: #233846; }
.home-market-risk > i em { display: block; height: 100%; border-radius: inherit; background: #7a8c99; }
.home-market-risk.ok > strong, .home-market-risk.ok > b { color: #59d9cc; }
.home-market-risk.ok > i em { background: #54d7ca; }
.home-market-risk.warn > strong, .home-market-risk.warn > b { color: #f1c46b; }
.home-market-risk.warn > i em { background: #f2bd5c; }
.home-market-risk.risk > strong, .home-market-risk.risk > b { color: #ff8fa3; }
.home-market-risk.risk > i em { background: #ff6b8a; }
.home-market-summary { display: grid; align-content: center; gap: 4px; min-width: 0; padding: 10px; }
.home-market-summary > strong { overflow: hidden; color: #e5edf2; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.home-market-summary > small { color: #a5b4be; font-size: 10px; line-height: 1.35; }
.home-market-quotes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #2c4352;
  border-radius: 8px;
  background: #0a1823;
}
.home-market-quote { display: grid; gap: 2px; min-width: 0; padding: 7px 6px; }
.home-market-quote + .home-market-quote { border-left: 1px solid #2c4352; }
.home-market-quote small { overflow: hidden; color: #8092a0; font-size: 9px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.home-market-quote strong { overflow: hidden; color: #e2ebef; font-size: 12px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.home-market-quote b { overflow: hidden; color: #8496a3; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.home-market-quote.ok b { color: #59d9cc; }
.home-market-quote.risk b { color: #ff8fa3; }
.home-market-quote.unavailable strong { color: #d7bd7d; font-size: 10px; }
.home-market-quote.unavailable b { color: #aa9970; }
.home-market-note { margin: 0; color: #8395a2; font-size: 9px; line-height: 1.4; }
.home-market-unavailable { display: grid; gap: 4px; padding: 12px; border: 1px solid rgba(242, 189, 92, .38); border-radius: 8px; background: rgba(118, 83, 23, .12); }
.home-market-unavailable strong { color: #f2bd5c; font-size: 12px; }
.home-market-unavailable span { color: #a99a72; font-size: 10px; line-height: 1.4; }
.home-market-news { overflow: hidden; border: 1px solid #2c4352; border-radius: 8px; background: #091722; }
.home-market-news-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 9px; border-bottom: 1px solid #2c4352; }
.home-market-news-head strong { color: #dce8ed; font-size: 11px; }
.home-market-news-head span { overflow: hidden; color: #8395a2; font-size: 9px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.home-market-news-list { display: grid; }
.home-market-news-item { display: grid; gap: 4px; min-width: 0; padding: 8px 9px; }
.home-market-news-item.is-compact { gap: 3px; padding-block: 7px; }
.home-market-news-item + .home-market-news-item { border-top: 1px solid #203744; }
.home-market-news-link { display: grid; gap: 3px; min-width: 0; color: inherit; text-decoration: none; }
a.home-market-news-link:active { opacity: .72; }
.home-market-news-meta { color: #65cfc4; font-size: 9px; font-weight: 800; }
.home-market-news-link > strong {
  display: -webkit-box;
  overflow: hidden;
  color: #e6eef2;
  font-size: 11px;
  line-height: 1.4;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.home-market-news-original { min-width: 0; color: #8296a2; font-size: 9px; }
.home-market-news-original summary { width: max-content; max-width: 100%; cursor: pointer; color: #9bacb7; list-style: none; }
.home-market-news-original summary::-webkit-details-marker { display: none; }
.home-market-news-original summary::after { content: "⌄"; margin-left: 3px; color: #617985; }
.home-market-news-original[open] summary::after { content: "⌃"; }
.home-market-news-original p { margin: 4px 0 0; color: #81949f; line-height: 1.35; }
.home-market-news-untranslated { color: #8296a2; font-size: 8px; }
.home-market-news-source-link { width: max-content; max-width: 100%; overflow: hidden; color: #718794; font-size: 9px; font-weight: 700; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.home-market-news-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.home-market-news-tag { padding: 1px 5px; border: 1px solid #2c4352; border-radius: 999px; color: #9bacb7; font-size: 9px; font-weight: 750; }
.home-market-news-tag.is-positive { border-color: rgba(91, 227, 139, .35); color: var(--green); }
.home-market-news-tag.is-negative { border-color: rgba(255, 107, 138, .35); color: var(--rose); }
.home-market-news-tag.is-evidence { border-color: rgba(83, 218, 206, .3); color: #68bcb4; }
.home-market-news-tag.is-portfolio { border-color: rgba(242, 189, 92, .4); color: #e9c168; }
.home-market-news-why, .home-market-news-assets, .home-market-news-decision { margin: 0; color: #81949f; font-size: 9px; line-height: 1.45; }
.home-market-news-why b, .home-market-news-assets b, .home-market-news-decision b { margin-right: 5px; color: #9eb0ba; }
.home-market-news-decision { color: #c5d3d9; }
.home-market-news-decision b { color: #e9c168; }
.home-market-news-assets { color: #72b9b1; }
.home-market-news-item.is-compact .home-market-news-why, .home-market-news-item.is-compact .home-market-news-original { display: none; }
.home-market-news-source-row { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; }
.home-market-news-confirm { flex: 0 0 auto; border: 1px solid #2c4352; border-radius: 999px; padding: 1px 5px; color: #718794; font-size: 9px; font-weight: 700; }
a.home-market-news-source-link:active { color: #65cfc4; }
.home-market-news-loading > p, .home-market-news-unavailable > p, .home-market-news-empty > p { margin: 0; padding: 8px 9px; color: #8295a2; font-size: 9px; line-height: 1.4; }
.home-market-news-unavailable { border-color: rgba(242, 189, 92, .38); }
.home-market-news-unavailable .home-market-news-head { border-bottom-color: rgba(242, 189, 92, .25); }
.home-market-news-unavailable .home-market-news-head strong, .home-market-news.is-stale .home-market-news-head span { color: #e9c168; }
.home-market-news-empty { border-color: rgba(83, 218, 206, .25); }
.home-market-news-empty .home-market-news-head span { color: #65cfc4; }

/* Market facts, binding restrictions and source times have distinct roles. */
body.home-page .home-market-overview { grid-template-columns: 88px minmax(0, 1fr); }
body.home-page .home-market-risk { padding: 10px 8px; }
body.home-page .home-market-summary { gap: 7px; }
body.home-page .home-market-summary > strong { font-size: 16px; white-space: normal; }
.home-market-restrictions { display: grid; gap: 6px; }
.home-market-restrictions p { margin: 0; color: #bacbd4; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.home-market-restrictions b { margin-right: 7px; color: #e7bd73; }
.home-market-focus, .home-market-calendar { padding: 10px; border: 1px solid #2c4352; border-radius: 8px; background: #091722; }
.home-market-focus > div, .home-market-calendar > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px; }
.home-market-focus strong, .home-market-calendar strong { color: #dce8ed; font-size: 13px; }
.home-market-focus small, .home-market-calendar > div small { color: #9bacb7; font-size: 11px; }
.home-market-focus ul { margin: 7px 0 0; padding-left: 18px; color: #bacbd4; font-size: 12px; line-height: 1.6; }
body.home-page .home-market-key-quotes { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.home-market-quote i { color: #9bacb7; font-size: 10px; line-height: 1.35; font-style: normal; overflow-wrap: anywhere; }
.home-market-clock-note, .home-market-news-coverage { margin: 0; color: #9bacb7; font-size: 11px; line-height: 1.5; }
.home-market-calendar article { display: grid; gap: 4px; margin-top: 9px; padding-top: 8px; border-top: 1px solid #203744; }
.home-market-calendar article strong { font-size: 12px; }
.home-market-calendar article span, .home-market-calendar article small { color: #bacbd4; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.home-market-calendar p { margin: 7px 0 0; color: #9bacb7; font-size: 11px; line-height: 1.5; }
.home-market-calendar details { padding-top: 7px; }
.home-market-calendar summary, .home-market-news-evidence > summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: #9bacb7; font-size: 12px; }
.home-market-news-evidence > summary::after { content: "⌄"; margin-left: auto; }
.home-market-news-evidence[open] > summary::after { content: "⌃"; }
.home-market-news-coverage { padding: 7px 10px 0; }
body.home-page .home-market-news-item { padding: 10px; gap: 7px; }
body.home-page .home-market-news-link > strong { font-size: 13px; line-height: 1.5; -webkit-line-clamp: 3; }
body.home-page .home-market-news-meta, body.home-page .home-market-news-tag { font-size: 11px; }
.home-market-news-portfolio { margin: 0; color: #bacbd4; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.home-market-news-portfolio b { margin-right: 7px; color: #e9c168; }
body.home-page .home-market-news-why, body.home-page .home-market-news-assets, body.home-page .home-market-news-decision { color: #bacbd4; font-size: 12px; line-height: 1.55; }
body.home-page .home-market-news-item.is-compact .home-market-news-why, body.home-page .home-market-news-item.is-compact .home-market-news-original { display: block; }
body.home-page .home-market-news-original, body.home-page .home-market-news-source-link { font-size: 11px; }
body.home-page .home-market-head > div { min-width: 0; }
body.home-page #homeMarketUpdated { white-space: normal; line-height: 1.5; }
@media (max-width: 360px) {
  body.home-page .home-market-key-quotes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-market-key-quotes > span:nth-child(4) { border-left: 0; }
  .home-market-key-quotes > span:nth-child(n+4) { border-top: 1px solid #2c4352; }
}

/* Only the market card: conclusions first, source times separate, no empty tiles. */
body.home-page .home-market-pulse { align-self: start; height: auto; min-height: 0; }
.home-market-pulse .home-market-source[hidden] { display: none; }
body.home-page .home-market-pulse .home-market-overview { grid-template-columns: minmax(0, 1fr); }
body.home-page .home-market-pulse .home-market-summary { padding: 12px; gap: 6px; }
body.home-page .home-market-pulse .home-market-summary > strong { font-size: 17px; white-space: normal; overflow: visible; }
body.home-page .home-market-pulse .home-market-summary > span,
body.home-page .home-market-pulse .home-market-summary > small { font-size: 12px; line-height: 1.5; }
.home-market-pulse .home-market-impact, .home-market-pulse .home-market-gap { margin: 0; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.home-market-pulse .home-market-impact b { color: #dce8ed; }
.home-market-pulse .home-market-impact > small { color: #a9bdc6; font-size: 12px; }
.home-market-pulse .home-market-conclusion { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 5px 10px; }
.home-market-pulse .home-market-conclusion > span { color: #9eb3bd; font-size: 13px; }
.home-market-pulse .home-market-conclusion > strong { font-size: 17px; }
.home-market-pulse .home-market-restrictions { gap: 4px; }
.home-market-pulse .home-market-restrictions p { font-size: 13px; }
.home-market-pulse .home-market-aux-score { color: #91a7b2; }
body.home-page .home-market-pulse .home-market-key-quotes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-market-pulse .home-market-quote { padding: 8px 6px; gap: 4px; border: 0; border-bottom: 1px solid #203744; }
.home-market-pulse .home-market-quote > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 3px 4px; min-width: 0; }
.home-market-pulse .home-market-quote b { color: #dce8ed; font-size: 13px; }
.home-market-pulse .home-market-quote strong { font-size: 15px; overflow: visible; white-space: normal; }
.home-market-pulse .home-market-quote span { color: #b1c5cd; font-size: 12px; }
.home-market-pulse .home-market-quote small, .home-market-pulse .home-market-quote i { font-size: 12px; white-space: normal; overflow: visible; line-height: 1.45; overflow-wrap: anywhere; }
.home-market-pulse .home-market-quote.unavailable small { color: #e2ba6e; }
.home-market-pulse .home-market-calendar { min-height: 0; height: auto; align-self: start; padding: 10px 12px; }
.home-market-pulse .home-market-calendar article { margin-top: 6px; padding-top: 6px; gap: 3px; }
.home-market-pulse .home-market-calendar article strong { font-size: 14px; }
.home-market-pulse .home-market-calendar article span, .home-market-pulse .home-market-calendar p { font-size: 13px; }
.home-market-pulse .home-market-calendar article small { font-size: 12px; color: #9eb3bd; font-weight: 400; }
.home-market-pulse .home-market-review-trigger { border-top: 1px solid #203744; padding-top: 7px; }
.home-market-pulse .home-market-review-trigger b { color: #dce8ed; }
.home-market-pulse .home-market-news { min-height: 0; height: auto; }
.home-market-pulse .home-market-news-head { padding: 8px 12px; flex-wrap: wrap; }
.home-market-pulse .home-market-news-head strong { font-size: 14px; }
.home-market-pulse .home-market-news-head span { font-size: 12px; white-space: normal; overflow: visible; }
.home-market-pulse .home-market-news-item { padding: 10px 12px; gap: 5px; }
.home-market-pulse .home-market-news-title { font-size: 14px; line-height: 1.55; color: #dde8ed; overflow-wrap: anywhere; }
.home-market-pulse .home-market-news-title-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.home-market-pulse .home-market-news-title-row > small { color: #a9bdc6; font-size: 12px; }
.home-market-pulse .home-market-news-item > p { margin: 0; color: #b1c5cd; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.home-market-pulse .home-market-news-item > small { color: #9eb3bd; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.home-market-pulse .home-market-news-item.is-verified-risk { border-left: 3px solid #ff8fa3; }
.home-market-pulse .home-market-major-note, .home-market-pulse .home-market-empty { padding: 8px 12px; margin: 0; color: #a9bdc6; font-size: 13px; line-height: 1.5; }
.home-market-pulse .home-market-major-note.risk { color: #ff8fa3; }
.home-market-pulse .home-market-more-note { margin: 0; padding: 6px 12px; color: #9eb3bd; font-size: 12px; line-height: 1.5; }
.home-market-pulse .home-market-calendar .home-market-more-note { padding: 4px 0 0; }
.home-market-pulse .home-market-evidence { min-width: 0; }
.home-market-pulse .home-market-evidence p, .home-market-pulse .home-market-news-evidence p { margin: 7px 0; color: #b1c5cd; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.home-market-pulse .home-market-evidence h4 { margin: 12px 0 5px; color: #dde8ed; font-size: 14px; }
.home-market-pulse .home-market-evidence-index { border-top: 1px solid #203744; }
.home-market-pulse .home-market-audit-list p { display: grid; gap: 3px; padding: 6px 0; border-bottom: 1px solid #203744; }
body.home-page .home-market-pulse details > summary { min-height: 44px; font-size: 13px; cursor: pointer; overflow-wrap: anywhere; }
@media (max-width: 600px) {
  body.home-page .home-market-pulse .home-market-key-quotes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-market-pulse .home-market-quote:last-child { grid-column: span 2; }
}
@media (max-width: 340px) {
  body.home-page .home-market-pulse .home-market-key-quotes { grid-template-columns: minmax(0, 1fr); }
  .home-market-pulse .home-market-quote:last-child { grid-column: auto; }
}

/* Keep the homepage compact: at most three deeply reviewed quality candidates. */
.home-research-candidate { overflow: hidden; border: 1px solid #2c4352; border-radius: 8px; background: #091722; }
.home-research-candidate.is-ready { border-color: rgba(83, 218, 206, .36); background: linear-gradient(135deg, rgba(18, 65, 69, .35), #091722 62%); }
.home-research-candidate.is-quality { border-color: rgba(83, 218, 206, .46); background: linear-gradient(135deg, rgba(14, 77, 73, .38), #091722 65%); }
.home-research-candidate.is-quality .home-research-head > b { border-color: rgba(83, 218, 206, .5); color: #63d8c7; }
.home-research-candidate.is-conditional { border-color: rgba(242, 189, 92, .42); background: linear-gradient(135deg, rgba(92, 67, 22, .24), #091722 65%); }
.home-research-candidate.is-conditional .home-research-head > b { border-color: rgba(242, 189, 92, .46); color: #f0ca73; }
.home-research-head, .home-research-candidate.is-empty > div, .home-research-candidate.is-unavailable > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 9px; }
.home-research-head > div { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.home-research-head strong, .home-research-candidate.is-empty strong, .home-research-candidate.is-unavailable strong { color: #dce8ed; font-size: 10px; }
.home-research-head span, .home-research-candidate.is-empty span, .home-research-candidate.is-unavailable span { overflow: hidden; color: #8196a2; font-size: 8px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.home-research-head > b { flex: 0 0 auto; border: 1px solid rgba(83, 218, 206, .4); border-radius: 999px; padding: 3px 6px; color: #60dcd0; font-size: 8px; }
.home-research-main { display: grid; gap: 7px; padding: 0 9px 9px; color: inherit; text-decoration: none; }
a.home-research-main:active { opacity: .72; }
.home-research-title { display: flex; align-items: baseline; gap: 7px; min-width: 0; }
.home-research-title strong { color: #e8f7f4; font-size: 17px; letter-spacing: .015em; }
.home-research-title span { overflow: hidden; color: #91a5af; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.home-research-main > p { display: -webkit-box; overflow: hidden; margin: 0; color: #b7c8ce; font-size: 10px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.home-research-gates { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); overflow: hidden; border: 1px solid rgba(66, 100, 112, .72); border-radius: 6px; }
.home-research-gates span { display: grid; gap: 2px; min-width: 0; padding: 5px; }
.home-research-gates span + span { border-left: 1px solid rgba(66, 100, 112, .72); }
.home-research-gates small { color: #78909d; font-size: 8px; font-weight: 750; }
.home-research-gates b { overflow: hidden; color: #bbe9e3; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.home-research-wait { display: flex; gap: 5px; min-width: 0; color: #9bb1bb; font-size: 9px; line-height: 1.35; }
.home-research-wait b { flex: 0 0 auto; color: #efc56d; }
.home-research-wait span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-research-main > small { overflow: hidden; color: #708895; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.home-research-conditional-note { margin: 0; padding: 0 9px 7px; color: #b6c4c9; font-size: 9px; line-height: 1.35; }
.home-research-trigger-list { display: grid; gap: 5px; padding: 0 9px 8px; }
.home-research-trigger { display: grid; gap: 3px; padding: 7px; border: 1px solid rgba(104, 126, 133, .55); border-radius: 6px; background: rgba(4, 18, 27, .45); color: inherit; text-decoration: none; }
a.home-research-trigger:active { opacity: .72; }
.home-research-trigger > div { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.home-research-trigger strong { color: #e7f4ef; font-size: 12px; }
.home-research-trigger span { overflow: hidden; flex: 1; color: #91a5af; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.home-research-trigger b { flex: 0 0 auto; color: #68d9cd; font-size: 9px; }
.home-research-trigger .home-research-row-status { flex: 0 0 auto; border: 1px solid rgba(128, 151, 161, .45); border-radius: 999px; padding: 1px 4px; color: #8ea2ac; font-size: 7px; font-style: normal; font-weight: 800; line-height: 1.35; }
.home-research-trigger .home-research-row-status.is-new { border-color: rgba(83, 218, 206, .48); background: rgba(83, 218, 206, .09); color: #66d9cd; }
.home-research-price-status { flex: 0 0 auto; border: 1px solid rgba(128, 151, 161, .45); border-radius: 999px; padding: 1px 4px; color: #93a6af; font-size: 7px; font-style: normal; font-weight: 850; line-height: 1.35; }
.home-research-price-status.is-ready, .home-research-price-status.is-near { border-color: rgba(83, 218, 206, .5); background: rgba(83, 218, 206, .1); color: #67d8cd; }
.home-research-price-status.is-wait { border-color: rgba(242, 189, 92, .48); background: rgba(242, 189, 92, .08); color: #ebc369; }
.home-research-price-status.is-repair { border-color: rgba(167, 141, 235, .48); background: rgba(167, 141, 235, .08); color: #b9a5ed; }
.home-research-price-status.is-chase { border-color: rgba(239, 105, 137, .52); background: rgba(239, 105, 137, .08); color: #f08aa2; }
.home-research-trigger p { display: -webkit-box; overflow: hidden; margin: 0; color: #aebfc6; font-size: 8px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.home-research-trigger small { display: -webkit-box; overflow: hidden; color: #c0ced2; font-size: 8px; line-height: 1.32; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.home-research-trigger em { margin-right: 4px; color: #efc56d; font-style: normal; font-weight: 800; }
.home-research-trigger .home-research-why { color: #d1e9e3; }
.home-research-trigger .home-research-why em { color: #63d8c7; }
.home-research-trigger .home-research-event { color: #efc56d; }
.home-research-trigger .home-research-price-fit.is-ready, .home-research-trigger .home-research-price-fit.is-near { color: #bde9e3; }
.home-research-trigger .home-research-price-fit.is-chase { color: #efa0b2; }
.home-research-trigger .home-research-price-fit.is-repair { color: #c2b2eb; }
.home-research-conditional-foot { display: block; overflow: hidden; padding: 0 9px 9px; color: #718895; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.home-research-candidate.is-empty > div, .home-research-candidate.is-unavailable > div { padding-bottom: 4px; }
.home-research-candidate.is-empty > p, .home-research-candidate.is-unavailable > p { margin: 0; padding: 0 9px 8px; color: #8498a4; font-size: 9px; line-height: 1.4; }
.home-research-candidate.is-unavailable { border-color: rgba(242, 189, 92, .34); background: rgba(118, 83, 23, .1); }
.home-research-candidate.is-unavailable strong { color: #e9c168; }

/* 首页优先回答“现在先处理什么”：决策后先看问题持仓，再看市场与整体结构。 */
.home-review-dashboard > .current-holding-section { order: 4; }
.home-review-dashboard > .home-market-pulse { order: 5; }
.home-review-dashboard > .home-sector-structure { order: 6; }
/* 无直接操作时不展示 0/0/0，也不把报价延迟误画成三张风险卡。 */


/* 移动端今日决策：默认只保留门禁、一个订单草案和一行详情汇总。 */


/* 首页个股卡只保留结论与一句话下一步，完整证据链跳转个股页。 */
.current-holding-section .home-holding-row.home-add-row.home-add-row-compact {
  gap: 7px;
  padding: 11px 12px;
}
.home-add-row-compact .home-add-decision {
  grid-template-columns: minmax(90px, .7fr) minmax(0, 1.5fr);
  gap: 8px;
  padding: 7px 8px;
}
.home-add-row-compact .home-add-decision small { padding-left: 8px; }

/* 无候选是状态，不应占用一张完整推荐卡。 */
.home-research-inline {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 7px 9px;
  border: 1px solid #2c4352;
  border-radius: 7px;
  background: #091722;
}
.home-research-inline strong { flex: 0 0 auto; color: #d8e5e9; font-size: 10px; }
.home-research-inline span { overflow: hidden; color: #8396a2; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 360px) {
  .home-market-overview { grid-template-columns: 101px minmax(0, 1fr); }
  .home-market-risk, .home-market-summary { padding: 8px; }
  .home-market-risk > strong { font-size: 25px; }
  .home-market-quote { padding-inline: 5px; }
  .home-research-gates span { padding-inline: 4px; }
  .home-add-row-compact .home-add-decision { grid-template-columns: 1fr; }
  .home-add-row-compact .home-add-decision small { border-top: 1px solid #2a3b49; border-left: 0; padding: 6px 0 0; }
}

/* 行为复盘只在有未改善问题时，以一行纪律提示并入今日决策。 */
.home-review-dashboard > .current-holding-section { order: 4; }
.home-review-dashboard > .home-market-pulse { order: 5; }
.home-review-dashboard > .home-sector-structure { order: 6; }
.today-discipline-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 10px;
  align-items: center;
  gap: 9px;
  min-height: 52px;
  margin-top: 9px;
  padding: 7px 10px;
  border: 1px solid rgba(226, 178, 82, .38);
  border-radius: 8px;
  background: rgba(128, 91, 25, .055);
  color: inherit;
  text-decoration: none;
}
.today-discipline-summary[hidden] { display: none; }
.today-discipline-summary > span { min-width: 0; display: grid; gap: 2px; }
.today-discipline-summary small { color: #82939e; font-size: 8px; font-weight: 800; }
.today-discipline-summary strong { overflow: hidden; color: #dce6ea; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.today-discipline-summary > b {
  border-radius: 999px;
  padding: 4px 7px;
  background: rgba(226, 178, 82, .1);
  color: #e7bd68;
  font-size: 9px;
  white-space: nowrap;
}
.today-discipline-summary > i { color: #c5a967; font-size: 18px; font-style: normal; }
.today-discipline-summary:focus-visible { outline: 2px solid #e7bd68; outline-offset: 2px; }

/* 只有结构化日期且数据新鲜的持仓事件才会出现。 */
.home-upcoming-events { overflow: hidden; border: 1px solid rgba(128, 153, 220, .38); border-radius: 8px; background: rgba(76, 91, 145, .06); }
.home-upcoming-events[hidden] { display: none; }
.home-upcoming-events-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 9px; border-bottom: 1px solid rgba(128, 153, 220, .24); }
.home-upcoming-events-head strong { color: #b9c9f6; font-size: 9px; }
.home-upcoming-events-head span { color: #7f91a2; font-size: 8px; }
.home-upcoming-events-empty { margin: 0; padding: 9px; color: #8799a6; font-size: 10px; line-height: 1.4; }
.home-upcoming-event + .home-upcoming-event { border-top: 1px solid rgba(128, 153, 220, .2); }
.home-upcoming-event > button {
  width: 100%;
  display: grid;
  grid-template-columns: 40px 72px minmax(0, 1fr) 12px;
  align-items: center;
  gap: 6px;
  border: 0;
  min-height: 44px;
  padding: 8px 9px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.home-upcoming-event > button b { color: #dbe4ff; font-size: 10px; }
.home-upcoming-event > button time { color: #a9bfff; font-size: 9px; white-space: nowrap; }
.home-upcoming-event > button span { overflow: hidden; color: #a6b4bd; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.home-upcoming-event > button i { color: #899aaa; font-size: 13px; font-style: normal; text-align: right; }
.home-upcoming-event > button:focus-visible { outline: 2px solid #a9bfff; outline-offset: -2px; }
.home-upcoming-event.expanded > button { background: rgba(128, 153, 220, .08); }
.home-upcoming-event-detail { display: grid; gap: 7px; padding: 9px; border-top: 1px solid rgba(128, 153, 220, .22); background: #08151f; }
.home-upcoming-event-detail > div { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 7px; }
.home-upcoming-event-detail > div span { color: #7f91a2; font-size: 8px; font-weight: 800; }
.home-upcoming-event-detail > div strong { color: #dce6ea; font-size: 9px; line-height: 1.4; }
.home-upcoming-event-detail > p { margin: 0; color: #acbbc2; font-size: 9px; line-height: 1.5; }
.home-upcoming-event-detail > small { color: #718692; font-size: 8px; line-height: 1.35; }
.home-upcoming-event-detail > nav { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.home-upcoming-event-detail > nav a { width: max-content; color: #62d8cc; font-size: 10px; font-weight: 800; text-decoration: none; }

/* 个股页只承接结构化事件摘要；原始 InvestSkill 长文本留在普通风险区。 */
.stock-upcoming-event-panel { scroll-margin-top: 10px; }
#stockUpcomingEventMeta { color: var(--muted); font-size: 10px; }
.stock-upcoming-event-list { display: grid; gap: 8px; margin-top: 8px; }
.stock-upcoming-event-card { padding: 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); }
.stock-upcoming-event-card.selected { border-color: var(--teal); box-shadow: 0 0 0 1px rgba(83, 218, 206, .15); }
.stock-upcoming-event-card header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px; }
.stock-upcoming-event-card header span { border-radius: 999px; padding: 2px 6px; background: rgba(83, 218, 206, .12); color: var(--teal); font-size: 10px; font-weight: 800; }
.stock-upcoming-event-card header strong { overflow: hidden; color: var(--ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.stock-upcoming-event-card header b { color: var(--gold); font-size: 10px; }
.stock-upcoming-event-card > p { margin: 8px 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.stock-upcoming-event-card > div { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 7px; padding: 5px 0; border-top: 1px solid var(--line); }
.stock-upcoming-event-card > div span { color: var(--muted); font-size: 10px; }
.stock-upcoming-event-card > div strong { color: var(--ink); font-size: 11px; line-height: 1.45; }
.stock-upcoming-event-card footer { margin-top: 7px; }
.stock-upcoming-event-card footer a,
.stock-upcoming-event-card footer span { color: var(--teal); font-size: 10px; text-decoration: none; }

/* 个股详情页：决策优先、研究折叠、仓位区间按相对尺度展示。 */
.stock-detail-toggle {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 4px 7px;
  background: var(--panel-soft);
  color: var(--teal);
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  min-height: 44px;
  cursor: pointer;
}
.stock-detail-toggle:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.stock-ai-panel .panel-head,
.stock-catalysts-panel .panel-head { flex-wrap: wrap; }
.stock-ai-panel:not(.expanded) .stock-ai-summary {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.stock-ai-panel:not(.expanded) .stock-ai-meta { display: none; }
.stock-ai-panel:not(.expanded) .research-gate-details { display: none; }
.stock-decision-panel .panel-head { margin-bottom: 9px; }
.stock-decision-panel .panel-head span { color: var(--muted); font-size: 10px; }
.stock-decision-main {
  margin-bottom: 8px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--gold);
  border-radius: 8px;
  background: var(--panel-soft);
}
.stock-decision-main.ready { border-left-color: var(--green); }
.stock-decision-main.risk { border-left-color: var(--rose); }
.stock-decision-main strong { color: var(--ink); font-size: 17px; }
.stock-decision-main.ready strong { color: var(--green); }
.stock-decision-main.risk strong { color: var(--rose); }
.stock-decision-main p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.stock-decision-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}
.stock-decision-grid > div { min-width: 0; padding: 8px 5px; text-align: center; }
.stock-decision-grid > div + div { border-left: 1px solid var(--line); }
.stock-decision-grid span,
.stock-decision-boundary span { display: block; margin-bottom: 3px; color: var(--muted); font-size: 10px; }
.stock-decision-grid strong { display: block; color: var(--ink); font-size: 11px; overflow-wrap: anywhere; }
.stock-decision-grid strong.passed,
.stock-decision-boundary strong.passed { color: var(--teal); }
.stock-decision-grid strong.blocked,
.stock-decision-boundary strong.blocked { color: var(--rose); }
.stock-decision-boundary { display: grid; gap: 6px; margin-top: 7px; }
.stock-decision-boundary > div { padding: 8px 9px; border-radius: 7px; background: var(--panel-soft); }
.stock-decision-boundary strong { display: block; color: var(--ink); font-size: 11px; line-height: 1.4; }
.stock-decision-boundary strong.review { color: var(--gold); }
.stock-decision-panel > small { display: block; margin-top: 7px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.stock-technicals-panel .panel-head span.trend-risk { color: var(--rose); }
.stock-chart-legend { display: flex; justify-content: flex-end; gap: 10px; margin-top: 4px; color: var(--muted); font-size: 10px; }
.stock-chart-legend span { display: inline-flex; align-items: center; gap: 4px; }
.stock-chart-legend i { width: 12px; height: 2px; border-radius: 2px; }
.stock-chart-legend i.ma20 { background: #f2bd5c; }
.stock-chart-legend i.ma50 { background: #68a7ff; }
.position-weight-summary { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 6px; font-size: 11px; }
.position-weight-summary strong { color: var(--ink); }
.position-weight-summary span { color: var(--blue); }
.stock-position-panel .hwb-track { height: 8px; overflow: visible; }
.stock-position-panel .hwb-target { z-index: 2; border: 1px dashed var(--blue); border-radius: 3px; background: rgba(104,167,255,.18); }
.stock-position-panel .hwb-cur { z-index: 1; opacity: .82; }
.advice-decision { color: var(--ink); font-size: 12px; margin: 4px 0 8px; line-height: 1.45; }
.advice-decision strong { color: var(--gold); }
.stock-catalysts-panel:not(.expanded) .catalyst-item p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@media (max-width: 430px) {
  .stock-view-page .panel { padding: 13px; }
  .stock-view-page .panel-head { margin-bottom: 10px; gap: 8px; }
  .stock-view-page .panel-head h2 { font-size: 16px; line-height: 1.3; }
  .stock-hero-pos { gap: 5px; }
  .hero-pos-item span { font-size: 10px; }
  .hero-pos-item strong { font-size: 12px; }
  .fundamental-group > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fundamental-cell { min-height: 56px; display: grid; align-content: center; }
  .fundamental-cell span { font-size: 11px; line-height: 1.25; }
  .ai-score-item { padding: 7px 2px; }
  .ai-score-item strong { font-size: 15px; }
  .research-gate-head { gap: 5px; }
  .research-gate-head small { max-width: 46%; font-size: 10px; }
  .technicals-levels { align-items: flex-start; gap: 8px; }
  .technicals-levels span { min-width: 0; line-height: 1.4; }
  .catalyst-impact { flex-basis: 38px; font-size: 10px; }
}

@media (max-width: 360px) {
  .stock-data-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stock-data-trust > div:last-child { grid-column: 1 / -1; }
  .tech-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 系统数据问题自动维护；tab 只承担需关注事项与必须由用户确认的策略选择。 */
.current-holding-section .home-holding-tabs { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
.current-holding-section .home-holding-tabs button { padding-inline: 4px; font-size: 10px; }
.current-holding-section .home-holding-tabs button[hidden] { display: none; }
.home-holding-auto-maintenance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 7px;
  padding: 8px 10px;
  border: 1px solid rgba(49, 207, 191, .28);
  border-radius: 8px;
  background: rgba(49, 207, 191, .06);
}
.home-holding-auto-maintenance[hidden] { display: none; }
.home-holding-auto-maintenance > span { min-width: 0; display: grid; gap: 2px; }
.home-holding-auto-maintenance b { color: #54d8ca; font-size: 10px; }
.home-holding-auto-maintenance small { overflow: hidden; color: #78909d; font-size: 8px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.home-holding-auto-maintenance em { flex: 0 0 auto; color: #54d8ca; font-size: 9px; font-style: normal; font-weight: 850; }
.home-holding-auto-maintenance.delayed { border-color: rgba(242, 189, 92, .28); background: rgba(242, 189, 92, .06); }
.home-holding-auto-maintenance.delayed b,
.home-holding-auto-maintenance.delayed em { color: #f2bd5c; }

.home-holding-research-summary {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 7px;
  padding: 8px 10px;
  border: 1px solid rgba(65, 214, 195, .28);
  border-radius: 8px;
  background: rgba(65, 214, 195, .045);
}
.home-holding-research-summary > span { min-width: 0; display: grid; gap: 2px; }
.home-holding-research-summary small { color: #8296a1; font-size: 8px; font-weight: 750; }
.home-holding-research-summary strong { color: #52d9cb; font-size: 10px; line-height: 1.3; }
.home-holding-research-summary em { flex: 0 0 auto; color: #7e939d; font-size: 8px; font-style: normal; }
.home-holding-research-summary.limited { border-color: rgba(242, 189, 92, .3); background: rgba(242, 189, 92, .045); }
.home-holding-research-summary.limited strong { color: #f2bd5c; }
.home-holding-research-summary.blocked { border-color: rgba(255, 107, 138, .28); background: rgba(255, 107, 138, .04); }
.home-holding-research-summary.blocked strong { color: #ff8ba2; }

.home-holding-research {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 7px;
  border-left: 2px solid #3fcfbe;
  padding: 2px 0 2px 8px;
}
.home-holding-research strong {
  color: #52d9cb;
  font-size: 9px;
  font-weight: 850;
  line-height: 1.4;
  white-space: nowrap;
}
.home-holding-research small {
  display: -webkit-box;
  overflow: hidden;
  color: #879aa5;
  font-size: 9px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.home-holding-research.limited { border-left-color: #f2bd5c; }
.home-holding-research.limited strong { color: #f2bd5c; }
.home-holding-research.blocked { border-left-color: #ff7893; }
.home-holding-research.blocked strong { color: #ff8ba2; }

/* 首页持仓卡做空压测 chip — 克隆 research 布局，颜色按空方强度 */
.home-holding-bear {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 7px;
  border-left: 2px solid #5b6f7c;
  padding: 2px 0 2px 8px;
}
.home-holding-bear strong {
  color: #879aa5;
  font-size: 9px;
  font-weight: 850;
  line-height: 1.4;
  white-space: nowrap;
}
.home-holding-bear small {
  display: -webkit-box;
  overflow: hidden;
  color: #879aa5;
  font-size: 9px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.home-holding-bear.warn { border-left-color: #f2bd5c; }
.home-holding-bear.warn strong { color: #f2bd5c; }
.home-holding-bear.risk { border-left-color: #ff7893; }
.home-holding-bear.risk strong { color: #ff8ba2; }

/* 首页持仓卡技术面摘要 chip（investskill-technical） */
.home-holding-technical {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 7px;
  border-left: 2px solid #5b6f7c;
  padding: 2px 0 2px 8px;
}
.home-holding-technical strong {
  color: #879aa5;
  font-size: 9px;
  font-weight: 850;
  line-height: 1.4;
  white-space: nowrap;
}
.home-holding-technical small {
  display: -webkit-box;
  overflow: hidden;
  color: #879aa5;
  font-size: 9px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.home-holding-technical.warn { border-left-color: #f2bd5c; }
.home-holding-technical.warn strong { color: #f2bd5c; }
.home-holding-technical.risk { border-left-color: #ff7893; }
.home-holding-technical.risk strong { color: #ff8ba2; }

/* 持仓待办解释卡：把真正触发列表的持有分、门槛与连续失败直接展示出来。 */
.home-holding-attention {
  min-width: 0;
  display: grid;
  gap: 8px;
  padding: 10px;
  border-left: 3px solid #f2bd5c;
  border-radius: 8px;
  background: rgba(242, 189, 92, 0.09);
}
.home-holding-research-summary[hidden] { display: none !important; }
.home-holding-attention-head {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.home-holding-attention-head small {
  color: #f2bd5c;
  font-size: 10px;
  font-weight: 850;
  line-height: 1.2;
}
.home-holding-attention-head strong {
  color: #f5c66e;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.35;
}
.home-holding-attention-metrics {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(84px, 1fr));
  gap: 6px;
}
.home-holding-attention-metrics > span {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 7px 8px;
  border: 1px solid rgba(123, 145, 157, 0.28);
  border-radius: 7px;
  background: rgba(4, 19, 29, 0.3);
}
.home-holding-attention-metrics small {
  color: #879aa5;
  font-size: 9px;
  font-weight: 750;
  line-height: 1.2;
}
.home-holding-attention-metrics b {
  color: #dce7ec;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.home-holding-attention-metrics i {
  color: #879aa5;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}
.home-holding-attention-metrics .miss b { color: #f5c66e; }
.home-holding-attention-metrics .pass b { color: #54dfcf; }
.home-holding-attention > em {
  color: #a9bac3;
  font-size: 10px;
  font-style: normal;
  line-height: 1.5;
}
.home-holding-attention.risk {
  border-left-color: #ff7893;
  background: rgba(255, 120, 147, 0.1);
}
.home-holding-attention.risk .home-holding-attention-head small,
.home-holding-attention.risk .home-holding-attention-head strong,
.home-holding-attention.risk .home-holding-attention-metrics .miss b { color: #ff8ba2; }

/* 首页持仓卡多源防守结论横幅：技术面/做空压测/基本面/事件四个证据源合成，
   ≥3 源共振整幅红、单源琥珀；已进横幅的证据源不再重复渲染旁挂 chip。 */
.home-holding-verdict {
  display: grid;
  gap: 3px;
  padding: 8px 10px;
  border-left: 3px solid #5b6f7c;
  border-radius: 7px;
  background: rgba(91, 111, 124, 0.12);
}
.home-holding-verdict strong {
  font-size: 13px;
  font-weight: 900;
  line-height: 1.3;
  color: #879aa5;
}
.home-holding-verdict small {
  font-size: 10px;
  line-height: 1.5;
  color: #879aa5;
}
.home-holding-verdict-action {
  margin-top: 2px;
  padding-top: 3px;
  border-top: 1px dashed rgba(135, 154, 165, 0.25);
}
.home-holding-verdict.warn { border-left-color: #f2bd5c; background: rgba(242, 189, 92, 0.09); }
.home-holding-verdict.warn strong { color: #f2bd5c; }
.home-holding-verdict.risk { border-left-color: #ff7893; background: rgba(255, 120, 147, 0.1); }
.home-holding-verdict.risk strong { color: #ff8ba2; }
.home-holding-verdict.risk small { color: #c9a0ad; }
.home-holding-verdict.ok { border-left-color: #41d6c3; background: rgba(65, 214, 195, 0.08); }
.home-holding-verdict.ok strong { color: #41d6c3; }

/* 个股详情页综合结论面板：四层拆分（投资价值/执行环境/证据/事件 → 最终状态） */
.stock-verdict-final {
  display: grid;
  gap: 8px;
  padding: 12px;
  margin-bottom: 10px;
  border-left: 3px solid #5b6f7c;
  border-radius: 8px;
  background: rgba(91, 111, 124, 0.12);
}
.stock-verdict-final strong { font-size: 17px; font-weight: 900; line-height: 1.3; }
.stock-verdict-final p { font-size: 11px; line-height: 1.55; color: var(--muted); }
.stock-verdict-final.risk { border-left-color: #ff7893; background: rgba(255, 120, 147, 0.1); }
.stock-verdict-final.risk strong { color: #ff8ba2; }
.stock-verdict-final.warn { border-left-color: #f2bd5c; background: rgba(242, 189, 92, 0.09); }
.stock-verdict-final.warn strong { color: #f2bd5c; }
.stock-verdict-final.ok { border-left-color: #41d6c3; background: rgba(65, 214, 195, 0.08); }
.stock-verdict-final.ok strong { color: #41d6c3; }
.stock-verdict-state {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 3px 9px;
  padding: 9px 10px;
  border: 1px solid rgba(242, 189, 92, .24);
  border-radius: 8px;
  background: rgba(8, 16, 24, .28);
}
.stock-verdict-state > span { color: var(--muted); font-size: 11px; font-weight: 750; }
.stock-verdict-state > strong { justify-self: end; font-size: 16px; font-weight: 900; }
.stock-verdict-state > strong.ok { color: var(--teal) !important; }
.stock-verdict-state > strong.review { color: var(--gold) !important; }
.stock-verdict-state > strong.risk { color: var(--rose) !important; }
.stock-verdict-state > small {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}
.stock-verdict-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
}
.stock-verdict-summary-grid > div:nth-child(1),
.stock-verdict-summary-grid > div:nth-child(2) { grid-column: span 3; }
.stock-verdict-summary-grid > div:nth-child(n+3) { grid-column: span 2; }
.stock-verdict-summary-grid > div {
  display: grid;
  gap: 3px;
  padding: 8px 9px;
  border-radius: 7px;
  background: rgba(8, 16, 24, 0.24);
}
.stock-verdict-summary-grid span,
.stock-verdict-reasons > span {
  color: var(--muted);
  font-size: 11px;
}
.stock-verdict-summary-grid strong {
  font-size: 13px;
  line-height: 1.4;
}
.stock-verdict-summary-grid > div:nth-child(-n+2) strong { font-size: 15px; }
.stock-verdict-thesis {
  display: grid;
  gap: 6px;
  padding: 11px 12px;
  border: 1px solid rgba(242, 189, 92, .3);
  border-radius: 8px;
  background: rgba(8, 16, 24, .3);
  scroll-margin-top: 16px;
}
.stock-verdict-thesis[hidden] { display: none; }
.stock-verdict-thesis strong { color: var(--gold); font-size: 12px; }
.stock-verdict-thesis p { margin: 0; color: var(--ink); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.stock-verdict-thesis small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.stock-verdict-reasons { padding-top: 5px; }
.stock-verdict-reasons ul {
  display: grid;
  gap: 3px;
  margin: 4px 0 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.stock-verdict-next {
  display: grid;
  gap: 5px;
  padding-top: 8px;
  border-top: 1px solid rgba(135, 154, 165, 0.22);
}
.stock-verdict-next > div {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
}
.stock-verdict-next span { color: var(--muted); font-size: 11px; font-weight: 700; }
.stock-verdict-next strong {
  color: var(--ink) !important;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
}
.stock-verdict-next > div:first-child strong { color: var(--gold) !important; }

.stock-verdict-detail {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: rgba(8, 16, 24, 0.18);
}
.stock-verdict-detail > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 9px 11px;
  color: var(--teal);
  cursor: pointer;
  list-style: none;
}
.stock-verdict-detail > summary::-webkit-details-marker { display: none; }
.stock-verdict-detail > summary span { font-size: 11px; font-weight: 800; }
.stock-verdict-detail > summary small { margin-left: auto; color: var(--muted); font-size: 9px; }
.stock-verdict-detail > summary::after { content: "＋"; color: var(--muted); font-size: 14px; }
.stock-verdict-detail[open] > summary { border-bottom: 1px solid var(--line); }
.stock-verdict-detail[open] > summary::after { content: "－"; }
.stock-verdict-detail > summary:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
.stock-verdict-detail-body { padding: 10px; }

/* Supporting tabs keep the verdict as a compact decision header so their
   selected evidence appears within the first mobile viewport. */
.stock-verdict-panel.is-context-compact .stock-verdict-final {
  gap: 6px;
  padding: 9px;
  margin-bottom: 0;
}
.stock-verdict-panel.is-context-compact .stock-verdict-reasons,
.stock-verdict-panel.is-context-compact .stock-verdict-next,
.stock-verdict-panel.is-context-compact .stock-verdict-detail,
.stock-verdict-panel.is-context-compact .stock-verdict-summary-grid > div:nth-child(3),
.stock-verdict-panel.is-context-compact .stock-verdict-summary-grid > div:nth-child(4) {
  display: none;
}
.stock-verdict-panel.is-context-compact .stock-verdict-summary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
}
.stock-verdict-panel.is-context-compact .stock-verdict-summary-grid > div {
  grid-column: auto;
  padding: 7px 8px;
}
.stock-verdict-panel.is-context-compact .stock-verdict-summary-grid > div:nth-child(5) {
  grid-column: 1 / -1;
}

.stock-section-nav {
  position: sticky;
  top: 0;
  z-index: 12;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  margin: 0 0 10px;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(7, 17, 25, 0.96);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(10px);
}
.stock-section-nav button {
  min-width: 0;
  min-height: 42px;
  border: 0;
  border-radius: 7px;
  padding: 7px 4px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.stock-section-nav button.active {
  background: rgba(65, 214, 195, 0.12);
  color: var(--teal);
  box-shadow: inset 0 0 0 1px rgba(65, 214, 195, 0.24);
}
.stock-section-nav button:focus-visible { outline: 2px solid var(--teal); outline-offset: 1px; }
.stock-section-context {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 2px 8px;
  margin: -2px 2px 10px;
  padding: 7px 9px;
  border-left: 2px solid rgba(65, 214, 195, 0.55);
}
.stock-section-context > span {
  grid-row: 1 / span 2;
  align-self: center;
  border-radius: 999px;
  padding: 3px 7px;
  background: rgba(65, 214, 195, 0.1);
  color: var(--teal);
  font-size: 10px;
  font-weight: 850;
}
.stock-section-context > strong { color: var(--ink); font-size: 12px; line-height: 1.4; }
.stock-section-context > small { color: var(--muted); font-size: 10px; line-height: 1.45; }
[data-stock-section]:not(.stock-section-active) { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  .stock-view-page { scroll-behavior: auto; }
  .stock-page-notice.loading > span { animation: none; }
}

.stock-verdict-scores {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}
.stock-verdict-score-block {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 9px;
  background: rgba(91, 111, 124, 0.08);
}
.stock-verdict-score-block.muted { opacity: 0.65; }
.stock-verdict-score-block.degraded { border: 1px dashed rgba(240, 180, 41, 0.55); }
.stock-verdict-score-block.degraded header b { color: #f0b429; }
.stock-verdict-score-block header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 11px;
  color: var(--muted);
}
.stock-verdict-score-block header b { color: #dfe8ee; font-weight: 700; }
.stock-verdict-score-value { display: flex; align-items: baseline; gap: 6px; }
.stock-verdict-score-value strong { font-size: 26px; font-weight: 900; line-height: 1; color: #dfe8ee; }
.stock-verdict-score-value small { font-size: 10px; color: var(--muted); }
.stock-verdict-coverage {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 10px;
  color: var(--muted);
}
.stock-verdict-coverage strong { color: var(--ink); }
.stock-verdict-score-note { color: var(--muted); font-size: 9px; line-height: 1.45; }
.stock-verdict-score-block .ai-score-item span i {
  font-style: normal;
  font-size: 9px;
  opacity: 0.65;
  margin-left: 3px;
}
.stock-verdict-score-block .ai-score-item strong { font-size: 13px; }
.stock-verdict-score-block .ai-score-item.weak strong { color: var(--gold); }
.stock-verdict-score-block .ai-score-item.stale strong { color: var(--muted); }

.stock-verdict-gates {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}
.stock-verdict-gate {
  display: grid;
  gap: 2px;
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(91, 111, 124, 0.08);
  font-size: 10px;
  color: var(--muted);
}
.stock-verdict-gate span { font-size: 10px; }
.stock-verdict-gate b { font-size: 15px; font-weight: 900; letter-spacing: 0.03em; }
.stock-verdict-gate .gate-pass { color: #41d6c3; }
.stock-verdict-gate .gate-pending { color: #f2bd5c; }
.stock-verdict-gate .gate-blocked { color: #ff8ba2; }

.stock-verdict-conditions { display: grid; gap: 3px; margin-bottom: 8px; }
.stock-verdict-condition {
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 6px;
  font-size: 11px;
  line-height: 1.5;
  color: var(--muted);
}
.stock-verdict-condition b { color: #879aa5; font-weight: 700; }
.stock-verdict-caps {
  margin: 0 0 8px;
  padding: 6px 10px 6px 24px;
  border-left: 3px solid #f2bd5c;
  border-radius: 7px;
  background: rgba(242, 189, 92, 0.07);
  font-size: 11px;
  line-height: 1.6;
  color: var(--muted);
}
.stock-verdict-note { display: block; font-size: 10px; line-height: 1.6; color: var(--muted); opacity: 0.85; }

/* 个股详情页技术分析面板：关键位 tiles 用 5 列自适应 */
.stock-technical-panel .bear-downside-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.stock-technical-panel .bear-section ul li b {
  flex-shrink: 0;
  margin-right: 6px;
}

/* 个股详情页做空压测面板 */
.stock-bear-panel .bear-downside-tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.stock-bear-panel .ai-score-row[hidden],
.stock-bear-panel .bear-downside-tiles[hidden],
.stock-bear-panel .bear-section[hidden],
.stock-bear-panel #bearCaseMeta[hidden] {
  display: none !important;
}
.bear-downside-tile {
  display: grid;
  gap: 3px;
  border: 1px solid #263745;
  border-radius: 8px;
  padding: 8px 10px;
  background: rgba(16, 26, 34, 0.6);
}
.bear-downside-tile span { color: #879aa5; font-size: 10px; }
.bear-downside-tile strong { font-size: 15px; }
.bear-downside-tile small { color: #879aa5; font-size: 10px; line-height: 1.4; }
.bear-downside-tile.warn strong { color: #f2bd5c; }
.bear-downside-tile.risk strong { color: #ff8ba2; }
.bear-downside-tile.ok strong { color: #52d9cb; }
.stock-bear-panel .bear-section h3 {
  margin: 12px 0 6px;
  color: #aebfc9;
  font-size: 11px;
  font-weight: 750;
}
.stock-bear-panel .bear-section ul {
  margin: 0;
  padding-left: 16px;
  display: grid;
  gap: 5px;
}
.stock-bear-panel .bear-section li {
  color: #c6d3da;
  font-size: 11px;
  line-height: 1.5;
}
.stock-bear-panel .bear-section li span { display: block; color: #879aa5; }
.stock-bear-panel .ai-score-item.risk strong { color: #ff8ba2; }
.stock-bear-panel .bear-total strong { color: #f2bd5c; }
@media (max-width: 480px) {
  .stock-bear-panel .bear-downside-tiles { grid-template-columns: 1fr; }
  .home-holding-bear { grid-template-columns: 1fr; gap: 2px; }
  .home-holding-bear strong { white-space: normal; }
}

@media (max-width: 360px) {
  .home-holding-research-summary em { display: none; }
  .home-holding-research { grid-template-columns: 1fr; gap: 2px; }
  .home-holding-research strong { white-space: normal; }
}

.home-policy-confirm-card { min-width: 0; max-width: 100%; overflow: hidden; }
.home-policy-confirm-card + .home-policy-confirm-card { border-top: 1px solid #263745; }
.home-policy-confirm-card > .home-add-row { border-top: 0 !important; }
.home-policy-confirm-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  padding: 0 12px 11px;
}
.home-policy-confirm-actions button,
.home-policy-confirm-form button,
.home-policy-confirm-form input,
.home-policy-confirm-form select {
  min-height: 44px;
  border: 1px solid #304654;
  border-radius: 7px;
  background: #0a1823;
  color: #cbd8de;
  font: inherit;
}
.home-policy-confirm-actions button {
  color: #47d5c5;
  font-size: 14px;
  font-weight: 850;
}
.home-policy-confirm-actions button.danger { border-color: rgba(255, 107, 138, .4); color: #ff8fa3; }
.home-policy-confirm-form {
  min-width: 0;
  max-width: calc(100% - 24px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0 12px 11px;
  padding: 12px;
  border: 1px solid rgba(49, 207, 191, .3);
  border-radius: 8px;
  background: rgba(49, 207, 191, .045);
}
.home-policy-confirm-form[hidden] { display: none; }
.home-policy-confirm-form label { min-width: 0; display: grid; gap: 4px; }
.home-policy-confirm-form label > span:first-child { color: #81929f; font-size: 12px; font-weight: 750; }
.home-policy-confirm-form input,
.home-policy-confirm-form select { min-width: 0; max-width: 100%; width: 100%; padding: 8px; font-size: 16px; box-sizing: border-box; }
.home-policy-percent-input { position: relative; display: block; min-width: 0; width: 100%; max-width: 100%; overflow: hidden; }
.home-policy-percent-input input {
  min-width: 0;
  max-width: 100%;
  padding-right: 24px;
  font-size: 16px;
  appearance: textfield;
  -moz-appearance: textfield;
}
.home-policy-percent-input input::-webkit-inner-spin-button,
.home-policy-percent-input input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.home-policy-percent-input b { position: absolute; top: 50%; right: 9px; color: #7f929e; font-size: 13px; transform: translateY(-50%); }
.home-policy-confirm-form > small,
.home-policy-confirm-form > p,
.home-policy-confirm-form > div { grid-column: 1 / -1; }
.home-policy-confirm-form > small { color: #778b98; font-size: 12px; line-height: 1.5; }
.home-policy-confirm-form > p { margin: 0; color: #ff8fa3; font-size: 13px; line-height: 1.5; }
.home-policy-confirm-form > p[hidden] { display: none; }
.home-policy-confirm-form > .home-policy-form-buttons { display: grid; grid-template-columns: .7fr 1fr; gap: 7px; }
.home-policy-confirm-form > div button { color: #8fa1ad; font-size: 14px; font-weight: 800; }
.home-policy-confirm-form > div button[type="submit"] { border-color: rgba(49, 207, 191, .48); color: #47d5c5; }
.home-policy-confirm-actions button:disabled,
.home-policy-confirm-form button:disabled { cursor: wait; opacity: .55; }
.home-policy-confirm-form [hidden] { display: none; }
.home-policy-confirm-form .home-policy-group,
.home-policy-confirm-form .home-policy-custom { grid-column: 1 / -1; }
.home-policy-confirm-form .home-policy-industry { display: flex; flex-direction: column; gap: 4px; }
.home-policy-industry > span { color: #81929f; font-size: 12px; }
.home-policy-industry strong { font-size: 15px; }
.home-policy-industry small, .home-policy-custom small { color: #81929f; font-size: 12px; line-height: 1.5; }
.home-policy-custom { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding-block: 8px; border-block: 1px solid #263745; }
.home-policy-custom small { grid-column: 1 / -1; }
.home-policy-confirm-form label, .home-policy-confirm-form small, .home-policy-confirm-form p { overflow-wrap: anywhere; }
.home-policy-confirm-form button { padding: 8px; white-space: normal; }


@media (max-width: 360px) {
  .today-discipline-summary { gap: 6px; padding-inline: 8px; }
  .today-discipline-summary > b { padding-inline: 6px; }
  .home-upcoming-events-head span { display: none; }
}
/* 2026-09 mobile home: decision first, compact evidence. */


.home-refresh-btn { min-height: 44px; }

.home-upcoming-events-toggle {
  width: 100%;
  min-height: 44px;
  border: 0;
  border-top: 1px solid rgba(128, 153, 220, .24);
  background: transparent;
  color: #a9bfff;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.home-market-news > summary { cursor: pointer; list-style: none; }
.home-market-news > summary::-webkit-details-marker { display: none; }
.home-market-news > summary::after { content: "⌄"; flex: 0 0 auto; color: #7f929e; font-size: 14px; }
.home-market-news[open] > summary::after { content: "⌃"; }
.home-market-news-source-link { display: inline-flex; align-items: center; min-height: 44px; }

.home-research-candidate.is-quality .home-research-conditional-note,
.home-research-candidate.is-quality .home-research-why,
.home-research-candidate.is-quality .home-research-event,
.home-research-candidate.is-quality .home-research-conditional-foot { display: none; }
.home-research-candidate.is-quality .home-research-trigger:not(:first-child) { display: none; }
.home-research-candidate.is-quality .home-research-trigger { padding-block: 8px; }

.home-add-row-compact .home-add-decision { grid-template-columns: minmax(92px, .72fr) minmax(0, 1.55fr); }
.home-add-row-compact .home-add-decision small {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.home-holding-open { color: #62d8cc; font-size: 9px; font-weight: 800; text-align: right; }
.current-holding-section .home-text-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
.current-holding-section .home-text-link[hidden] { display: none; }

.home-sector-composition { margin-top: 11px; }
.home-sector-composition-caption { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.home-sector-composition-caption strong { color: #e6f3f2; font-size: 12px; }
.home-sector-composition-caption small { color: #94a7af; font-size: 9px; text-align: right; }
.home-sector-composition-stack { display: flex; height: 19px; overflow: hidden; border: 1px solid #31505b; border-radius: 6px; background: #162b34; }
.home-sector-composition-stack > span { flex: 0 0 auto; min-width: 0; height: 100%; border-right: 1px solid #091722; }
.home-sector-composition-stack > .home-sector-composition-remainder { border-right: 0; background: repeating-linear-gradient(135deg, #415763, #415763 4px, #263c48 4px, #263c48 8px); }
.home-sector-composition-legend { display: flex; gap: 5px; margin: 6px 0 10px; color: #9dafb5; font-size: 9px; line-height: 1.45; }
.home-sector-composition-legend i { flex: 0 0 11px; height: 11px; margin-top: 1px; border-radius: 2px; background: repeating-linear-gradient(135deg, #415763, #415763 3px, #263c48 3px, #263c48 6px); }
.home-sector-composition-list { display: grid; gap: 6px; }
.home-sector-composition-row { display: grid; gap: 6px; width: 100%; min-height: 66px; border: 1px solid #2b4651; border-radius: 8px; padding: 9px 10px; background: #0b1c26; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.home-sector-composition-row.selected { border-color: var(--sector-color); background: #102b33; }
.home-sector-composition-row:focus-visible { outline: 2px solid #7ae7d8; outline-offset: 2px; }
.home-sector-composition-head { display: flex; align-items: center; gap: 6px; min-width: 0; }
.home-sector-composition-head > i { flex: 0 0 9px; height: 9px; border-radius: 3px; background: var(--sector-color); }
.home-sector-composition-head strong { min-width: 0; overflow: hidden; color: #e7f1f2; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.home-sector-composition-head small { flex: 0 0 auto; color: #91a5ad; font-size: 9px; }
.home-sector-composition-head b { margin-left: auto; color: #eef7f6; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.home-sector-composition-head em { color: #9aadb4; font-size: 12px; font-style: normal; }
.home-sector-composition-track { display: block; height: 5px; overflow: hidden; border-radius: 999px; background: #243b45; }
.home-sector-composition-track > i { display: block; height: 100%; border-radius: inherit; background: var(--sector-color); }
.home-sector-composition-tickers { overflow-wrap: anywhere; color: #9baeb5; font-size: 9px; line-height: 1.4; }
.home-sector-inline-holdings { margin: -2px 0 5px 10px; overflow: hidden; border: 1px solid rgba(83, 218, 206, .38); border-radius: 0 0 9px 9px; background: #0a2028; }
.home-sector-inline-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 52px; padding: 7px 10px; border-bottom: 1px solid #29424a; }
.home-sector-inline-head > span { display: grid; gap: 3px; min-width: 0; }
.home-sector-inline-head strong { overflow: hidden; color: #e4f3f1; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.home-sector-inline-head small { color: #a1b6bd; font-size: 10px; }
.home-sector-inline-head button { flex: 0 0 auto; min-width: 44px; min-height: 44px; border: 1px solid #44636b; border-radius: 7px; background: #102b34; color: #d3e8e8; font: inherit; font-size: 11px; cursor: pointer; }
.home-sector-inline-head button:focus-visible, .home-sector-inline-row:focus-visible { outline: 2px solid #7ae7d8; outline-offset: -2px; }
.home-sector-share-guide { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 11px 11px 7px; }
.home-sector-share-guide strong { color: #e2f3f0; font-size: 12px; }
.home-sector-share-guide span { color: #a0b4bb; font-size: 10px; text-align: right; }
.home-sector-stock-stack { display: flex; height: 24px; overflow: hidden; margin: 0 10px 10px; border: 1px solid #35515a; border-radius: 6px; background: #203842; }
.home-sector-stock-stack > span { flex: 0 0 auto; min-width: 0; height: 100%; border-right: 1px solid #0a2028; }
.home-sector-inline-list { display: grid; }
.home-sector-inline-row { display: grid; gap: 8px; min-height: 83px; padding: 10px; color: inherit; text-decoration: none; }
.home-sector-inline-row + .home-sector-inline-row { border-top: 1px solid #29424a; }
.home-sector-stock-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-width: 0; }
.home-sector-stock-identity { display: flex; align-items: center; gap: 8px; min-width: 0; }
.home-sector-stock-rank { flex: 0 0 25px; color: #9db6bc; font-size: 11px; font-variant-numeric: tabular-nums; }
.home-sector-stock-name { display: grid; gap: 2px; min-width: 0; }
.home-sector-stock-name strong { color: #edf7f6; font-size: 13px; }
.home-sector-stock-name small { overflow: hidden; color: #a1b4ba; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.home-sector-stock-share { display: grid; gap: 1px; flex: 0 0 auto; text-align: right; }
.home-sector-stock-share small { color: #a6b9bd; font-size: 10px; }
.home-sector-stock-share strong { color: #eff8f7; font-size: 17px; font-variant-numeric: tabular-nums; line-height: 1.1; }
.home-sector-stock-track { display: block; height: 9px; overflow: hidden; border-radius: 999px; background: repeating-linear-gradient(90deg, #29414a, #29414a calc(25% - 1px), #527078 25%); }
.home-sector-stock-track > i { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: var(--stock-color); }
.home-sector-stock-foot { display: flex; justify-content: space-between; gap: 8px; color: #a1b5bc; font-size: 10px; }
.home-sector-stock-foot > span:last-child { color: #70d7cc; white-space: nowrap; }
.home-sector-inline-row:not(a) .home-sector-stock-foot > span:last-child { color: #a1b5bc; }
a.home-sector-inline-row:hover, a.home-sector-inline-row:active { background: rgba(83, 218, 206, .07); }

@media (max-width: 360px) {
  .home-add-row-compact .home-add-decision { grid-template-columns: 1fr; }
}
/* 2026-09 mobile-only home: one action hierarchy and readable evidence. */

.home-review-dashboard > .current-holding-section { order: 3; }
.home-review-dashboard > .home-market-pulse { order: 4; }
.home-review-dashboard > .home-sector-structure { order: 5; }


@media (max-width: 768px) {
  .home-page .shell {
    width: 100%;
    /* The footer carries the device's bottom safe area. */
    padding: max(12px, env(safe-area-inset-top)) 10px 12px;
  }
  .home-review-dashboard { gap: 8px; }
  .home-account-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-account-overview > div {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding: 0 10px;
    text-align: left;
  }
  .home-account-overview > div:nth-child(even):not(:last-child) { border-right: 0; }
  .home-account-overview > div:nth-child(n+3) { border-top: 1px solid #223342; }
  .home-account-overview span { flex: 0 0 auto; color: #91a3ae; font-size: 10px; white-space: nowrap; }
  .home-account-overview strong { min-width: 0; margin-top: 0; font-size: 14px; text-align: right; }
  .home-review-section { padding: 11px; }
  .home-section-head small,
  body.home-page .home-review-dashboard small { color: #91a3ae; font-size: 10px; }


  .current-holding-section .home-section-head h2,
  .home-sector-head h2 { font-size: 18px; }
  .current-holding-section .home-holding-row.home-add-row { padding: 12px; }
  .home-add-overview,
  .home-add-decision strong,
  .home-add-decision small { font-size: 10px; }
  .home-market-summary > strong { font-size: 13px; line-height: 1.45; white-space: normal; }
  .home-market-summary > small { font-size: 10px; line-height: 1.45; }
  .home-market-note { font-size: 10px; }
}

@media (max-width: 360px) {
  .home-account-overview > div { gap: 4px; padding-inline: 8px; }
  .home-account-overview span { font-size: 9px; }
  .home-account-overview strong { font-size: 13px; }
}

/* 2026-09 research-first home: judgment quality replaces mechanical order guidance. */
.home-research-priorities {
  border-color: #294252;
  padding: 13px;
  background: #091720;
}

.home-research-priorities-head {
  align-items: flex-start;
  margin-bottom: 10px;
}

.home-research-priorities-head h2 {
  color: #f4f7f9;
  font-size: 22px;
  letter-spacing: -.02em;
  line-height: 1.16;
}

.home-research-priorities-head small {
  display: block;
  margin-top: 3px;
  color: #92a8b4;
  font-size: 11px;
  line-height: 1.4;
}


.home-research-priority-list {
  display: grid;
  gap: 8px;
}

.home-research-focus {
  display: grid;
  gap: 9px;
  overflow: hidden;
  border: 1px solid #3c5967;
  border-left: 3px solid #f2bd5c;
  border-radius: 11px;
  padding: 12px;
  background: #0b1a24;
}

.home-research-focus.risk { border-left-color: #ff7893; }
.home-research-focus.watch { border-left-color: #a9bfff; }

.home-research-focus-kicker,
.home-research-focus-foot,
.home-research-compact-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.home-research-focus-kicker b,
.home-research-compact-title b {
  flex: 0 0 auto;
  border: 1px solid rgba(242, 189, 92, .42);
  border-radius: 999px;
  padding: 3px 7px;
  color: #f2bd5c;
  font-size: 9px;
  font-weight: 900;
  line-height: 1.2;
}

.home-research-focus.risk .home-research-focus-kicker b,
.home-research-compact.risk .home-research-compact-title b {
  border-color: rgba(255, 120, 147, .46);
  color: #ff7893;
}

.home-research-focus.watch .home-research-focus-kicker b,
.home-research-compact.watch .home-research-compact-title b {
  border-color: rgba(169, 191, 255, .42);
  color: #a9bfff;
}

.home-research-focus-kicker span {
  min-width: 0;
  overflow: hidden;
  color: #788f9b;
  font-size: 9px;
  line-height: 1.3;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-research-focus h3 {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
  margin: 0;
  color: #f1f5f7;
  line-height: 1.25;
}

.home-research-focus h3 strong {
  flex: 0 0 auto;
  color: #f7fafb;
  font-size: 20px;
  letter-spacing: .01em;
}

.home-research-focus h3 span {
  min-width: 0;
  overflow: hidden;
  color: #d7e1e6;
  font-size: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-research-why,
.home-research-thesis {
  margin: 0;
  color: #b4c3ca;
  font-size: 12px;
  line-height: 1.5;
}

.home-research-why {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 7px;
}

.home-research-why b {
  color: #f2bd5c;
  font-size: 10px;
}

.home-research-thesis {
  border-top: 1px solid #263d4c;
  padding-top: 8px;
  color: #d7e0e5;
}

.home-research-evidence {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #29414f;
  border-radius: 8px;
  background: #0a1720;
}

.home-research-evidence > span {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 8px;
}

.home-research-evidence > span + span { border-left: 1px solid #29414f; }
.home-research-evidence small { color: #748a96; font-size: 9px; }
.home-research-evidence strong {
  overflow: hidden;
  color: #cbd7dd;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.38;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-research-evidence > span:first-child strong { color: #53dace; }
.home-research-evidence > span:last-child strong { color: #ff8ca2; }

.home-research-next {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 8px;
}

.home-research-next small { color: #7f95a0; font-size: 10px; }
.home-research-next strong {
  color: #cbd6dc;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
}

.home-research-focus-foot {
  border-top: 1px solid #263d4c;
  padding-top: 9px;
}

.home-research-focus-foot > span {
  color: #91a5af;
  font-size: 10px;
}

.home-research-focus-foot > span strong {
  color: #f2bd5c;
  font-size: 15px;
}

.home-research-focus-foot a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(242, 189, 92, .62);
  border-radius: 8px;
  padding: 0 12px;
  color: #f2bd5c;
  font-size: 10px;
  font-weight: 900;
  text-decoration: none;
}

.home-research-secondary {
  overflow: hidden;
  border: 1px solid #29414f;
  border-radius: 10px;
  background: #0a1720;
}

.home-research-compact {
  min-height: 64px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "title meta"
    "copy meta";
  align-items: center;
  gap: 4px 8px;
  padding: 9px 11px;
  color: inherit;
  text-decoration: none;
}

.home-research-compact + .home-research-compact { border-top: 1px solid #29414f; }
.home-research-compact-title { grid-area: title; justify-content: flex-start; }
.home-research-compact-title strong { color: #edf3f6; font-size: 14px; }
.home-research-compact-copy {
  grid-area: copy;
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.home-research-compact-copy strong,
.home-research-compact-copy small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-research-compact-copy strong { flex: 0 0 auto; max-width: 44%; color: #c9d5db; font-size: 11px; }
.home-research-compact-copy small { color: #7d929d; font-size: 10px; }
.home-research-compact-meta {
  grid-area: meta;
  color: #9fb0b9;
  font-size: 9px;
  white-space: nowrap;
}

.home-research-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-top: 1px solid #263d4c;
  padding: 8px 2px 0;
  color: #728893;
  font-size: 8px;
  line-height: 1.35;
}

.home-research-footer b { color: #8fa2ac; font-weight: 700; text-align: right; }
.home-research-footer a { min-height: 44px; display: inline-flex; align-items: center; color: #9fb4bd; text-decoration: none; }
.home-research-policy { display: none; }
.home-research-empty {
  display: grid;
  gap: 5px;
  border: 1px solid #29414f;
  border-radius: 10px;
  padding: 14px;
  background: #0a1720;
}
.home-research-empty strong { color: #dbe5e9; font-size: 13px; }
.home-research-empty span { color: #8397a1; font-size: 10px; line-height: 1.45; }

@media (max-width: 360px) {
  .home-research-priorities { padding-inline: 10px; }
  .home-research-priorities-head h2 { font-size: 20px; }


  .home-research-evidence { grid-template-columns: 1fr; }
  .home-research-evidence > span + span { border-top: 1px solid #29414f; border-left: 0; }
  .home-research-focus-foot { align-items: stretch; }
  .home-research-focus-foot a { padding-inline: 9px; }
  .home-research-footer { align-items: flex-start; flex-direction: column; }
  .home-research-footer b { text-align: left; }
}
/* Portfolio-level homepage agenda: aggregate constraints, never stock calls. */


.home-action-priority {
  display: grid;
  gap: 4px;
  border: 1px solid #2c4651;
  border-radius: 9px;
  padding: 9px 10px;
  background: #0c1b24;
}
.home-action-priority {
  border-left: 3px solid #ff7893;
  color: inherit;
  text-decoration: none;
}

.home-action-priority > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.home-action-priority strong { color: #f4e6e8; font-size: 12px; }
.home-action-priority span { color: #f2bd5c; font-size: 10px; white-space: nowrap; }

.home-action-priority p {
  margin: 0;
  color: #bccbd0;
  font-size: 11px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.home-action-priority small { color: #ff9caf; font-size: 10px; }
.home-action-priority.ok { border-left-color: #41d6c3; }
.home-action-priority.ok small { color: #7ae7d8; }
.home-action-priority.warn { border-left-color: #f2bd5c; }
.home-action-priority.warn small { color: #f2bd5c; }


.home-action-priority:focus-visible { outline: 2px solid #53dace; outline-offset: 2px; }


/* V2: one real portfolio decision tension instead of a diagnostic checklist. */


/* V5: keep only today's action and the active new-risk gate in the daily card. */


.stock-ft-quality-panel .panel-head {
  align-items: center;
}

.ft-quality-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}

.ft-quality-hero > strong {
  min-width: 82px;
  font-size: 34px;
  line-height: 1;
  color: var(--teal);
}

.ft-quality-hero > div {
  display: grid;
  gap: 4px;
}

.ft-quality-hero span,
.stock-ft-quality-panel > small {
  color: var(--muted);
}

.ft-quality-dimensions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
}

.ft-quality-dimensions > div {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
}

.ft-quality-dimensions i {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  background: var(--teal);
}

.ft-quality-evidence {
  display: grid;
  gap: 6px;
  margin: 12px 0;
}

.ft-quality-strength,
.ft-quality-flag,
.ft-quality-neutral {
  padding: 8px 10px;
  border-radius: 7px;
  background: rgba(65, 214, 195, 0.08);
  color: var(--ink);
}

.ft-quality-flag {
  background: rgba(255, 107, 138, 0.09);
  color: var(--rose);
}

.ft-quality-neutral {
  background: rgba(150, 164, 180, 0.08);
  color: var(--muted);
}

.ft-quality-valuation {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  margin-bottom: 10px;
}

.ft-quality-valuation span {
  color: var(--muted);
}

.ft-quality-valuation b {
  padding: 4px 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 12px;
}

/* 2026-09 homepage readability pass: preserve decision output, reduce evidence noise. */
body.home-page .home-review-dashboard {
  --home-label-size: 11px;
  --home-body-size: 12px;
}

body.home-page .home-live-status,
body.home-page .home-data-note {
  font-size: 10px;
  line-height: 1.45;
}

body.home-page .home-section-head small {
  font-size: var(--home-label-size);
  line-height: 1.4;
}


body.home-page .home-holding-auto-maintenance b { font-size: 11px; }
body.home-page .home-holding-auto-maintenance small,
body.home-page .home-holding-auto-maintenance em { font-size: 10px; line-height: 1.45; }
body.home-page .home-holding-research-summary small,
body.home-page .home-holding-research-summary em { font-size: 10px; }
body.home-page .home-holding-research-summary strong { font-size: 12px; line-height: 1.4; }
body.home-page .home-holding-research-summary > details { width: 100%; min-width: 0; }
body.home-page .home-holding-research-summary summary > b { color: #f2bd5c; font-size: 12px; }
body.home-page .home-holding-research-summary .home-disclosure-body { overflow-wrap: anywhere; }
body.home-page .home-holding-group-head strong { font-size: 12px; }
body.home-page .home-holding-group-head small { font-size: 10px; line-height: 1.4; }
body.home-page .home-holding-quality-chip small,
body.home-page .home-holding-quality-chip em { font-size: 9px; }
body.home-page .home-holding-quality-chip i { font-size: 8px; }
body.home-page .home-holding-verdict { gap: 4px; padding: 9px 10px; }
body.home-page .home-holding-verdict strong { font-size: 14px; line-height: 1.35; }
body.home-page .home-holding-verdict small { font-size: 11px; line-height: 1.45; }
body.home-page .home-holding-verdict-facts,
body.home-page .home-holding-verdict-action,
body.home-page .home-holding-research small,
body.home-page .home-holding-bear small,
body.home-page .home-holding-technical small {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
}
body.home-page .home-holding-verdict-facts { -webkit-line-clamp: 2; }
body.home-page .home-holding-verdict-action,
body.home-page .home-holding-research small,
body.home-page .home-holding-bear small,
body.home-page .home-holding-technical small { -webkit-line-clamp: 1; }
body.home-page .home-add-overview { font-size: 11px; line-height: 1.5; }
body.home-page .home-holding-research strong,
body.home-page .home-holding-bear strong,
body.home-page .home-holding-technical strong { font-size: 10px; }
body.home-page .home-holding-research small,
body.home-page .home-holding-bear small,
body.home-page .home-holding-technical small { font-size: 10px; line-height: 1.45; }
body.home-page .home-holding-open { font-size: 11px; }
body.home-page .home-holding-guidance-note,
body.home-page .home-holding-sort-note { font-size: 10px; line-height: 1.45; }

/* “全部持仓”是扫描视图：保留排序分数、当前状态和长期预算，证据链进入详情页。 */
body.home-page .home-holding-row.is-compact-all {
  gap: 5px;
  padding-block: 8px;
}
body.home-page .home-holding-row.is-compact-all .home-holding-symbol small {
  overflow: hidden;
  max-width: 210px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.home-page .home-holding-priority-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 7px;
  padding: 6px 8px;
  border-left: 2px solid #e8b66a;
  border-radius: 0 5px 5px 0;
  background: rgba(173, 117, 36, .13);
  line-height: 1.4;
}
body.home-page .home-holding-priority-note b { color: #f5c66e; font-size: 11px; white-space: nowrap; }
body.home-page .home-holding-priority-note > span { color: #f2e3c8; font-size: 12px; }
body.home-page .home-holding-priority-note small { margin-left: auto; color: #c0a985; font-size: 10px; }
.home-holding-compact-state {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 5px 9px;
  min-width: 0;
  padding-top: 5px;
  border-top: 1px solid #223845;
}
.home-holding-compact-state strong {
  color: #f2bd5c;
  font-size: 11px;
  line-height: 1.35;
}
.home-holding-compact-state small {
  overflow: hidden;
  color: #8fa3ad;
  font-size: 10px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-holding-compact-state.risk strong { color: #ff8ba2; }
.home-holding-compact-state.ok strong { color: #53dace; }
.home-holding-compact-state.muted strong { color: #9aacb5; }
.home-holding-compact-state .home-holding-advice-reason {
  grid-column: 1 / -1;
  white-space: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.home-holding-compact-state .home-holding-advice-note { grid-column: 1 / -1; }

/* Mobile holdings: show the formal decision and its gate before secondary metrics. */
body.home-page .home-holding-compact-state {
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  padding-top: 7px;
}
body.home-page .home-holding-compact-state strong { font-size: 13px; }
body.home-page .home-holding-compact-state small {
  overflow: visible;
  font-size: 11px;
  line-height: 1.45;
  text-overflow: clip;
  white-space: normal;
}
body.home-page .home-holding-compact-state .home-holding-advice-reason {
  color: #d8e5e9;
  font-size: 12px;
  -webkit-line-clamp: 2;
}
body.home-page .home-holding-add-state { color: #f1c875; }
body.home-page .home-holding-event {
  color: #f5c66e;
  font-weight: 750;
}
body.home-page .home-holding-exit-pill {
  padding: 7px 9px;
  border: 1px solid rgba(255, 120, 147, .45);
  border-radius: 7px;
  color: #ff9bab;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
body.home-page .home-holding-attention > em {
  color: #e4edf0;
  font-size: 12px;
}
body.home-page .home-holding-attention .home-holding-execution {
  color: #bdced5;
  font-size: 11px;
  line-height: 1.45;
}
body.home-page .home-holding-quality-chip small,
body.home-page .home-holding-quality-chip em { font-size: 10px; }
body.home-page .home-holding-quality-chip i { font-size: 9px; }

body.home-page .home-market-source { font-size: 10px; }
body.home-page .home-market-risk > span,
body.home-page .home-market-summary > span { font-size: 10px; }
body.home-page .home-market-risk > b { font-size: 11px; }
body.home-page .home-market-summary > strong { font-size: 14px; line-height: 1.4; }
body.home-page .home-market-summary > small { font-size: 11px; line-height: 1.5; }
body.home-page .home-market-quote small,
body.home-page .home-market-quote b { font-size: 10px; }
body.home-page .home-market-quote strong { font-size: 13px; }
body.home-page .home-market-news-head strong { font-size: 12px; }
body.home-page .home-market-news-head span,
body.home-page .home-market-news-loading > p,
body.home-page .home-market-news-unavailable > p,
body.home-page .home-market-news-empty > p { font-size: 10px; line-height: 1.5; }

@media (max-width: 360px) {


  body.home-page .home-holding-verdict strong { font-size: 13px; }
}

/* 首页主模块默认可见；细节仍由模块自身的交互控制。 */
body.home-page .home-review-dashboard > .home-review-topbar { order: 0; }
body.home-page .home-review-dashboard > .home-data-alert { order: 1; }
body.home-page .home-review-dashboard > .home-account-snapshot { order: 2; }


body.home-page .home-review-dashboard > .home-sector-heat { order: 3; }


body.home-page .home-review-dashboard > .current-holding-section { order: 4; }
body.home-page .home-review-dashboard > .home-events-section { order: 5; }
body.home-page .home-review-dashboard > .home-sector-structure { order: 6; }
body.home-page .home-review-dashboard > .home-market-pulse { order: 7; }
body.home-page .home-review-dashboard > .home-data-note { order: 9; }
body.home-page .home-events-section[hidden] { display: none; }

body.home-page .home-account-snapshot {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: #223342;
}
body.home-page .home-account-snapshot > div:nth-child(n) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  min-width: 0;
  padding: 10px 9px;
  border: 0;
  background: #0d1823;
  text-align: left;
}
body.home-page .home-account-snapshot > .home-account-primary,
body.home-page .home-account-snapshot > .home-account-principal { grid-column: auto; }
body.home-page .home-account-snapshot span { flex: 0 0 auto; font-size: 11px; line-height: 1.25; white-space: nowrap; }
body.home-page .home-account-snapshot strong {
  min-width: 0;
  margin-top: 0;
  font-size: 13px;
  line-height: 1.2;
  text-align: right;
  white-space: nowrap;
}
body.home-page .home-account-snapshot .home-account-primary strong { font-size: 13px; color: #7ae7d8; }
body.home-page .home-account-snapshot #homeDefensiveWeight { color: #f2bd5c; }

@media (max-width: 620px) {
  body.home-page .home-account-snapshot > div:nth-child(n) { padding: 9px 7px; }
  body.home-page .home-account-snapshot span { font-size: clamp(10px, 2.8vw, 11px); }
  body.home-page .home-account-snapshot strong { font-size: clamp(10px, 2.9vw, 12px); }
  body.home-page .home-account-snapshot .home-account-primary strong { font-size: clamp(10px, 2.9vw, 12px); }
}

.home-risk-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 12px; }
.home-risk-metrics > div { min-width: 0; padding: 10px; border: 1px solid #2b4351; border-radius: 8px; background: #0a1b26; }
.home-risk-metrics > div:nth-child(3):last-child { grid-column: 1 / -1; }
.home-risk-metrics span { display: block; color: #9fb2bc; font-size: 10px; line-height: 1.4; }
.home-risk-metrics strong { display: block; margin-top: 5px; color: #eef7f6; font-size: 15px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.home-risk-coverage { margin: 8px 0 0; color: #a3b5bd; font-size: 10px; line-height: 1.45; }

.home-events-section .home-upcoming-events { margin-top: 10px; }
.home-events-section .home-upcoming-events-head strong,
.home-events-section .home-upcoming-event > button b { font-size: 11px; }
.home-events-section .home-upcoming-events-head span,
.home-events-section .home-upcoming-event > button time,
.home-events-section .home-upcoming-event > button span { font-size: 10px; }

body.home-page .home-review-dashboard > .home-review-section h2 { scroll-margin-top: 12px; }

/* Native-currency observation prices stay separate from execution permissions. */
body.home-page .holding-action-prices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
  min-width: 0;
  border-top: 1px solid #263b46;
  padding-top: 9px;
}
body.home-page .holding-action-price-column { display: grid; gap: 4px; min-width: 0; }
body.home-page .holding-action-price-label { color: #a2b7c1; font-size: 11px; }
body.home-page .holding-action-price-value { color: #e3edf1; font-size: 13px; font-variant-numeric: tabular-nums; }
body.home-page .holding-action-price-value em { color: #a2b7c1; font-size: 10px; font-style: normal; margin-right: 4px; }
body.home-page .holding-action-price-empty { color: #97aab5; font-size: 12px; }
body.home-page .holding-action-prices strong {
  white-space: normal; overflow-wrap: anywhere; text-overflow: clip; max-width: 100%;
}
/* Mobile homepage: one ranked decision, with the order queue kept subordinate. */


/* Sector Heat V1 is independent of the account decision/loading lifecycle. */
body.home-page .home-sector-heat { min-width: 0; }
body.home-page .home-sector-heat .home-section-head { margin-bottom: 8px; }
body.home-page .sector-heat-status { flex: 0 0 auto; color: #b8d2cf; font-size: 11px; }
body.home-page .sector-heat-tabs { display: flex; gap: 6px; padding: 4px; border-radius: 9px; background: #0a1b24; border: 1px solid #27434b; }
body.home-page .sector-heat-tabs button { flex: 1; min-height: 38px; padding: 7px 10px; border: 0; border-radius: 6px; background: transparent; color: #a7bdc4; font-size: 12px; font-weight: 600; cursor: pointer; }
body.home-page .sector-heat-tabs button[aria-selected="true"] { background: #21423f; color: #adf0df; }
body.home-page .sector-heat-asof { margin: 8px 0 3px; color: #9ab5bd; font-size: 11px; line-height: 1.5; }
body.home-page .sector-heat-data-status { margin: 6px 0; color: #9ab5bd; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
body.home-page .sector-heat-data-status summary { cursor: pointer; }
body.home-page .sector-heat-data-status summary:focus-visible { outline: 2px solid #89e3cc; outline-offset: 3px; }
body.home-page .sector-heat-data-status p { margin: 6px 0; }
body.home-page .sector-heat-list { display: grid; min-width: 0; }
body.home-page .sector-heat-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto auto; align-items: center; gap: 8px; min-height: 48px; padding: 8px 0; border-bottom: 1px solid #25414a; min-width: 0; text-decoration: none; color: #e7f1f1; }
body.home-page .sector-heat-title { font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
body.home-page .sector-heat-state { display: inline-block; padding: 2px 5px; border-radius: 4px; background: #253945; color: #b0c5cc; font-size: 10px; line-height: 1.4; white-space: nowrap; }
body.home-page .sector-heat-state.strong,
body.home-page .sector-heat-state.heating,
body.home-page .sector-heat-state.early_rotation { background: #1b3c37; color: #9ce3cb; }
body.home-page .sector-heat-state.overheated { background: #493c25; color: #f3cf8b; }
body.home-page .sector-heat-state.cooling { background: #442d35; color: #ecb2be; }
body.home-page .sector-heat-state.unverified { background: #3a362b; color: #d9c59f; }
body.home-page .sector-heat-value, body.home-page .sector-heat-delta { font-size: 12px; white-space: nowrap; font-variant-numeric: tabular-nums; }
body.home-page .sector-heat-value small, body.home-page .sector-heat-delta small { font-size: 9px; color: #89a7b0; }
body.home-page .sector-heat-expand { display: block; margin: 9px auto; padding: 7px 12px; min-height: 38px; border: 0; border-radius: 6px; background: #162f3a; color: #b8dcd5; font-size: 11px; cursor: pointer; }
body.home-page .sector-heat-notice { padding: 8px 9px; border: 1px solid #645538; border-radius: 6px; color: #e0c69d; background: #28251f; font-size: 11px; line-height: 1.5; }
body.home-page .sector-heat-empty { margin: 14px 0; color: #b6cbd0; font-size: 12px; line-height: 1.6; }
body.home-page .sector-heat-tabs button:focus-visible,
body.home-page .sector-heat-expand:focus-visible,
body.home-page .sector-heat-row:focus-visible { outline: 2px solid #89e3cc; outline-offset: 3px; }
@media (max-width: 360px) {
  body.home-page .sector-heat-row { gap: 5px; }
  body.home-page .sector-heat-title { font-size: 12px; }
  body.home-page .sector-heat-value, body.home-page .sector-heat-delta { font-size: 11px; }
}

/* Mobile holding structure: all sectors and positions stay visible. */
body.home-page .home-asset-mix {
  margin-top: 12px;
  padding: 12px 8px 9px;
  border: 1px solid #285267;
  border-radius: 10px;
  background: #092330;
}
body.home-page .home-asset-mix-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.home-page .home-asset-mix-grid > div { min-width: 0; padding: 1px 7px 3px; }
body.home-page .home-asset-mix-grid > div + div { border-left: 1px solid #285267; }
body.home-page .home-asset-mix-grid span { display: block; color: #bfd3dc; font-size: 10px; line-height: 1.3; white-space: nowrap; }
body.home-page .home-asset-mix-grid strong { display: block; margin-top: 5px; color: #52e5d7; font-size: clamp(14px, 4vw, 19px); font-variant-numeric: tabular-nums; white-space: nowrap; }
body.home-page .home-risk-coverage { margin: 5px 2px 0; min-height: 14px; color: #92aab5; font-size: 10px; }
body.home-page .home-sector-composition { margin-top: 16px; }
body.home-page .home-sector-composition-caption { margin: 0 1px 9px; align-items: center; }
body.home-page .home-sector-composition-caption strong { color: #edf7f6; font-size: 17px; }
body.home-page .home-sector-composition-caption small { color: #8da7b1; font-size: 10px; }
body.home-page .home-sector-composition-list { display: grid; gap: 8px; }
body.home-page .home-sector-card {
  min-width: 0;
  padding: 10px 9px 9px;
  border: 1px solid #285267;
  border-radius: 10px;
  background: #092330;
}
body.home-page .home-sector-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; min-width: 0; }
body.home-page .home-sector-card-head > strong { min-width: 0; color: #eef8f7; font-size: 14px; line-height: 1.3; }
body.home-page .home-sector-card-head > span { flex: 0 0 auto; color: #acc7d0; font-size: 11px; white-space: nowrap; }
body.home-page .home-sector-card-head b { color: #52e5d7; font-size: 15px; font-variant-numeric: tabular-nums; }
body.home-page .home-sector-card-head small { color: #acc7d0; font-size: 10px; }
body.home-page .home-sector-card-track { height: 6px; margin: 7px 0 8px; overflow: hidden; border-radius: 99px; background: #1b3d4d; }
body.home-page .home-sector-card-track i { display: block; height: 100%; border-radius: inherit; background: #39dccb; }
body.home-page .home-sector-stock-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
body.home-page .home-sector-stock-tile {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 2px 4px;
  min-width: 0;
  min-height: 46px;
  padding: 5px 7px;
  border: 1px solid #295367;
  border-radius: 6px;
  background: #0b2a38;
  color: #eaf5f7;
  text-decoration: none;
}
body.home-page .home-sector-stock-tile:focus-visible { outline: 2px solid #7ae7d8; outline-offset: 2px; }
body.home-page .home-sector-stock-tile:active { background: #123847; }
body.home-page .home-sector-tile-name { grid-column: 1; grid-row: 1; min-width: 0; overflow: hidden; color: #c5dbe2; font-size: 11px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
body.home-page .home-sector-stock-tile strong { grid-column: 2; grid-row: 1; color: #f0f9f8; font-size: 14px; font-variant-numeric: tabular-nums; line-height: 1.1; white-space: nowrap; }
body.home-page .home-sector-stock-tile small { grid-column: 1 / -1; grid-row: 2; justify-self: end; align-self: center; color: #b3ccd4; font-size: 9px; line-height: 1.1; white-space: nowrap; }
body.home-page .home-risk-metrics { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 10px 2px 0; }
body.home-page .home-risk-metrics > div { display: inline-flex; gap: 4px; padding: 0; border: 0; background: none; }
body.home-page .home-risk-metrics span, body.home-page .home-risk-metrics strong { display: inline; margin: 0; color: #90aab4; font-size: 10px; line-height: 1.4; }
body.home-page .home-risk-metrics strong { color: #c5dbdf; }
@media (max-width: 360px) {
  body.home-page .home-asset-mix-grid > div { padding-inline: 4px; }
  body.home-page .home-asset-mix-grid span { font-size: 9px; }
  body.home-page .home-asset-mix-grid strong { font-size: 13px; }
  body.home-page .home-sector-stock-tile { padding: 5px 6px; }
  body.home-page .home-sector-stock-tile strong { font-size: 13px; }
}

/* Research ranges are subordinate to the formal holding decision. */
body.home-page .home-price-watch { display: grid; grid-column: 1 / -1; gap:6px; padding-top: 9px; border-top: 1px solid #29414b; }
body.home-page .home-price-watch-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 8px; }
body.home-page .home-price-watch-head b { color: #c9e5e2; font-size: 11px; }
body.home-page .home-price-watch-head small { color: #91aab4; font-size: 9px; line-height: 1.4; }
body.home-page .home-price-watch-row { display: grid; gap: 3px; padding: 7px 8px; border: 1px solid #284552; border-radius: 7px; background: #0a202a; }
body.home-page .home-price-watch-line { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: baseline; gap: 5px; }
body.home-page .home-price-watch-line b { color: #a9cbd1; font-size: 10px; white-space: nowrap; }
body.home-page .home-price-watch-line strong { color: #eaf5f4; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
body.home-page .home-price-watch-line em { color: #e8bd77; font-size: 10px; font-style: normal; white-space: nowrap; }
body.home-page .home-price-watch-row > small { display: -webkit-box; overflow: hidden; color: #a3bac1; font-size: 10px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

/* Homepage scan first, evidence on demand. Analytical values stay unchanged. */
body.home-page .home-detail-disclosure { min-width: 0; }
body.home-page .home-detail-disclosure > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  color: #c0d5db;
  font-size: 12px;
  line-height: 1.45;
  cursor: pointer;
  list-style: none;
}
body.home-page .home-detail-disclosure > summary::-webkit-details-marker { display: none; }
body.home-page .home-detail-disclosure > summary::before {
  content: "›";
  color: #6aa9aa;
  font-size: 18px;
  transition: transform .15s;
}
body.home-page .home-detail-disclosure[open] > summary::before { transform: rotate(90deg); }
body.home-page .home-detail-disclosure > summary > span { margin-left: auto; color: #95adb6; font-size: 11px; text-align: right; }
body.home-page .home-disclosure-body { display: grid; gap: 9px; min-width: 0; padding: 5px 0 9px; font-size: 12px; }
body.home-page .home-disclosure-body > small { display: block; color: #b6cbd1; font-size: 12px; line-height: 1.5; }
body.home-page .home-detail-disclosure > summary:focus-visible,
body.home-page .home-holding-symbol:focus-visible,
body.home-page .home-holding-open:focus-visible { outline: 2px solid #53dace; outline-offset: 3px; border-radius: 4px; }
body.home-page .home-structure-disclosure { border-top: 1px solid #223845; margin-top: 10px; }
body.home-page .home-structure-disclosure .home-sector-composition { padding-top: 8px; }
body.home-page .home-review-dashboard > .home-evidence-entry { order: 8; padding: 6px 4px; font-size: 12px; }
body.home-page .home-review-entry:has(.home-review-alert[hidden]) { display: none; }
body.home-page .home-holding-auto-maintenance > .home-detail-disclosure { width: 100%; }
body.home-page .home-holding-auto-maintenance .home-detail-disclosure > summary { min-height: 30px; }
body.home-page .home-holding-auto-maintenance .home-disclosure-body > small { white-space: normal; overflow-wrap: anywhere; }
body.home-page .home-holding-auto-maintenance b { font-size: 12px; }
body.home-page .home-holding-row.is-home-summary { gap: 7px; padding: 10px 12px; min-width: 0; }
body.home-page .is-home-summary .home-add-head { align-items: start; }
body.home-page .is-home-summary .home-holding-symbol { min-width: 0; display: grid; gap: 3px; color: inherit; text-decoration: none; }
body.home-page .is-home-summary .home-holding-symbol > strong { overflow: hidden; font-size: 16px; line-height: 26px; text-overflow: ellipsis; white-space: nowrap; }
body.home-page .is-home-summary .home-holding-symbol small {
  display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px;
}
body.home-page .home-stock-link-arrow { color: #83a8b0; font-size: 14px; }
body.home-page .home-holding-head-meta { flex: none; display: grid; justify-items: end; gap: 3px; }
body.home-page .home-holding-current-price { display: flex; align-items: baseline; gap: 5px; text-align: right; white-space: nowrap; }
body.home-page .home-holding-current-price small { color: #9fb6c0; font-size: 11px; }
body.home-page .home-holding-current-price b { color: #eaf5f4; font-size: 16px; font-variant-numeric: tabular-nums; }
body.home-page .home-holding-head-score {
  min-width: 0; min-height: 26px; gap: 5px;
  border: 0; padding: 0; background: none; line-height: 1.3;
}
body.home-page .home-holding-head-score > small { font-size: 11px; font-weight: 500; }
body.home-page .home-holding-head-score > strong { font-size: 16px; }
body.home-page .home-holding-head-score > strong > i { font-size: 10px; }
body.home-page .home-holding-head-score > em { display: inline; font-size: 11px; }
body.home-page .is-home-summary .home-holding-compact-state {
  display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 5px;
}
body.home-page .is-home-summary .home-holding-compact-state > strong { font-size: 13px; }
body.home-page .is-home-summary .home-holding-add-state { font-size: 12px; }
body.home-page .is-home-summary .home-holding-compact-state > .home-holding-advice-reason {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  min-width: 0;
}
body.home-page .is-home-summary .home-holding-execution,
body.home-page .is-home-summary .home-holding-priority { min-width: 0; }
body.home-page .is-home-summary .home-holding-priority { color: #f1c875; font-size: 12px; font-weight: 700; }
body.home-page .is-home-summary .home-holding-priority.risk { color: #ff9bab; }
body.home-page .is-home-summary .home-add-overview { display: block; font-size: 12px; line-height: 1.5; }
body.home-page .home-holding-evidence { border-top: 1px solid #223845; }
body.home-page .home-holding-evidence .home-holding-verdict-facts,
body.home-page .home-holding-evidence .home-holding-verdict-action,
body.home-page .home-holding-evidence .home-holding-bear small,
body.home-page .home-holding-evidence .home-holding-technical small { display: block; -webkit-line-clamp: unset; overflow: visible; font-size: 12px; }
body.home-page .home-evidence-reason { margin: 0; color: #d8e5e9; line-height: 1.5; }
body.home-page .home-holding-logic-status { font-size: 12px; }
body.home-page .home-holding-logic-status.warning { color: #f1c875; }
body.home-page .home-holding-logic-status.risk { color: #ff9bab; }
body.home-page .home-holding-logic-detail { display: grid; gap: 6px; min-width: 0; }
body.home-page .home-holding-logic-detail > strong { display: flex; flex-wrap: wrap; gap: 5px 9px; color: #c9e5e2; font-size: 12px; }
body.home-page .home-holding-logic-detail > strong > small { color: #9fb6c0; font-weight: 400; font-size: 11px; }
body.home-page .home-holding-logic-detail > p { margin: 0; color: #d8e5e9; line-height: 1.6; overflow: visible; overflow-wrap: anywhere; white-space: pre-wrap; }
body.home-page .home-holding-evidence .home-holding-open { padding-block: 7px; color: #53dace; font-size: 12px; }
body.home-page .home-price-watch.is-price-summary { gap: 4px; padding-top: 7px; }
body.home-page .is-price-summary .home-price-watch-row { padding: 4px 0; border: 0; border-radius: 0; background: none; }
body.home-page .is-price-summary .home-price-watch-line { grid-template-columns: auto minmax(0, 1fr) auto; gap: 6px; }
body.home-page .home-price-conditions { display: grid; gap: 7px; min-width: 0; }
body.home-page .home-price-conditions > strong { color: #c9e5e2; font-size: 12px; }
body.home-page .home-price-conditions ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
body.home-page .home-price-conditions li { display: grid; gap: 4px; color: #d8e5e9; line-height: 1.5; overflow-wrap: anywhere; }
body.home-page .home-price-conditions li > b { color: #c9e5e2; }
body.home-page .home-price-conditions li > span { color: #a3bac1; }
body.home-page .home-holding-sort-note,
body.home-page .home-holding-guidance-note,
body.home-page .home-market-clock-note { font-size: 11px; color: #9fb6c0; }
body.home-page #homeHoldingExpand,
body.home-page #homeHoldingToggle { min-height: 40px; }
@media (max-width: 400px) {
  body.home-page .home-holding-evidence > summary > span { font-size: 10px; }
}

/* Only the 股票持仓 tab uses this summary; other tabs keep their layout. */
body.home-page .home-holding-account-notice {
  margin: 0; padding: 10px 12px; min-width: 0; border-left: 2px solid #d5ab66;
  color: #e1c08c; background: rgba(213, 171, 102, .06);
  font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere;
}
body.home-page #homeHoldingList .home-holding-row.home-compact-holding {
  display: flex; flex-direction: column; align-items: stretch; gap: 6px; padding: 12px;
  min-width: 0; min-height: 0; height: auto; color: #c4d7de; font-size: .875rem; line-height: 1.5;
}
body.home-page #homeHoldingList .home-compact-holding-line {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px; min-width: 0;
}
body.home-page #homeHoldingList .home-compact-holding-head {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 6px;
}
body.home-page #homeHoldingList .home-compact-holding-identity {
  flex: 1 1 auto;
}
body.home-page #homeHoldingList .home-compact-holding-identity,
body.home-page #homeHoldingList .home-compact-holding-state-text {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; min-width: 0; overflow-wrap: anywhere;
}
body.home-page #homeHoldingList .home-compact-holding .home-holding-symbol > strong {
  display: inline-flex; align-items: baseline; gap: 4px; overflow: visible;
  font-size: 1.125rem; line-height: 1.4; white-space: nowrap; overflow-wrap: normal; text-overflow: clip;
}
body.home-page #homeHoldingList .home-compact-holding .home-holding-symbol {
  display: inline-flex; flex: 0 0 auto; width: max-content; min-width: max-content;
  color: inherit; text-decoration: none; white-space: nowrap; overflow-wrap: normal;
}
body.home-page #homeHoldingList .home-compact-holding-action { font-size: .875rem; font-weight: 600; }
body.home-page #homeHoldingList .home-compact-holding .neutral { color: #b6cbd3; }
body.home-page #homeHoldingList .home-compact-holding .warning { color: #f1c875; }
body.home-page #homeHoldingList .home-compact-holding .risk { color: #f1c875; }
body.home-page #homeHoldingList .home-compact-holding-action.risk,
body.home-page #homeHoldingList .home-compact-holding-state-text > .risk,
body.home-page #homeHoldingList .home-compact-holding-exception.risk { color: #ff9bab; }
body.home-page #homeHoldingList .home-compact-holding-price {
  display: grid; justify-items: end; gap: 0;
  flex: 0 1 auto; min-width: 0; max-width: 100%; margin-left: auto; text-align: right; overflow-wrap: anywhere;
}
body.home-page #homeHoldingList .home-compact-holding-price b { color: #eaf5f4; font-size: 1rem; font-variant-numeric: tabular-nums; }
body.home-page #homeHoldingList .home-compact-holding-price small { color: #9fb6c0; font-size: .75rem; }
body.home-page #homeHoldingList .home-compact-holding-pnl {
  flex: 0 0 auto; font-size: .8125rem; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap;
}
body.home-page #homeHoldingList .home-compact-holding-score {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: end; gap: 3px; max-width: 115px;
  color: #b6cbd3; overflow-wrap: anywhere; font-variant-numeric: tabular-nums;
}
body.home-page #homeHoldingList .home-compact-holding-score small,
body.home-page #homeHoldingList .home-compact-holding-score i { font-size: .75rem; font-style: normal; }
body.home-page #homeHoldingList .home-compact-holding-score b { font-size: .8125rem; }
body.home-page #homeHoldingList .home-compact-holding-basis { align-items: center; }
body.home-page #homeHoldingList .home-compact-holding-basis p,
body.home-page #homeHoldingList .home-compact-holding-exception {
  display: block; min-width: 0; margin: 0; overflow: visible; overflow-wrap: anywhere; white-space: normal; -webkit-line-clamp: unset;
}
body.home-page #homeHoldingList .home-compact-holding-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: 3px; min-width: 44px; min-height: 44px;
  border: 0; padding: 0; background: transparent; color: #b6cbd3; font-size: .75rem; cursor: pointer;
}
body.home-page #homeHoldingList .home-compact-holding-toggle:focus-visible { outline: 2px solid #53dace; outline-offset: 2px; border-radius: 4px; }
body.home-page #homeHoldingList .home-compact-holding-exception { font-size: .8125rem; }
body.home-page #homeHoldingList .home-compact-holding-details {
  display: grid; gap: 8px; min-width: 0; border-top: 1px solid #223845; padding-top: 12px; overflow-wrap: anywhere;
}
body.home-page #homeHoldingList .home-compact-holding-details[hidden] { display: none; }
body.home-page .current-holding-section .home-detail-disclosure > summary {
  white-space: normal; overflow-wrap: anywhere; gap: 8px;
}
body.home-page .current-holding-section .home-detail-disclosure > summary b { min-width: 0; }
body.home-page .current-holding-section .home-holding-sort-note { font-size: .75rem; }
body.home-page #homeHoldingList .home-holding-execution-label {
  display: inline; margin-right: 6px; color: #9fb6c0; font-size: .8125rem;
}
body.home-page #homeHoldingList .home-holding-detail-group {
  display: grid; gap: 8px; min-width: 0; padding: 8px 0; border-top: 1px solid #223845;
}
body.home-page #homeHoldingList .home-holding-detail-group:first-child { border-top: 0; padding-top: 0; }
body.home-page #homeHoldingList .home-holding-detail-group h3 {
  margin: 0; color: #c4d7de; font-size: .9375rem; line-height: 1.5;
}
body.home-page #homeHoldingList .home-holding-observation { display: grid; gap: 6px; min-width: 0; }
body.home-page #homeHoldingList .home-holding-focus-risk { color: #ff9bab; }
body.home-page #homeHoldingList .home-holding-secondary { border-top: 1px solid #223845; }
body.home-page #homeHoldingList .home-holding-secondary > summary { min-height: 44px; font-size: .8125rem; }
body.home-page #homeHoldingList .home-holding-secondary .home-holding-detail-group { border-top: 0; padding-top: 0; }
body.home-page #homeHoldingList .home-holding-price-focus-row { display: flex; flex-wrap: wrap; gap: 4px 8px; }
body.home-page #homeHoldingList .home-holding-price-focus-row > b { font-variant-numeric: tabular-nums; }
body.home-page #homeHoldingList .home-holding-price-focus > small { color: #9fb6c0; font-size: .75rem; }
body.home-page #homeHoldingList .home-compact-holding-details p { margin: 0; font-size: .875rem; line-height: 1.5; white-space: pre-wrap; }
body.home-page #homeHoldingList .home-compact-holding-details p > small { display: block; color: #9fb6c0; font-size: .75rem; }
body.home-page #homeHoldingList .home-compact-holding-sector,
body.home-page #homeHoldingList .home-compact-holding-details .home-add-overview { font-size: .8125rem; }
body.home-page #homeHoldingList .home-compact-holding-diagnostics { padding: 0; font-size: .875rem; }
body.home-page #homeHoldingList .home-compact-holding-diagnostics ul { margin: 0; padding-left: 18px; }
body.home-page #homeHoldingList .home-compact-holding-details .home-price-watch { border: 0; padding-top: 0; }
body.home-page #homeHoldingList .home-compact-holding-details .home-price-watch-head { flex-wrap: wrap; }
body.home-page #homeHoldingList .home-compact-holding-details .home-price-watch-head b,
body.home-page #homeHoldingList .home-compact-holding-details .home-price-watch-line b,
body.home-page #homeHoldingList .home-compact-holding-details .home-price-watch-line em { font-size: .8125rem; }
body.home-page #homeHoldingList .home-compact-holding-details .home-price-watch-head small { font-size: .75rem; }
body.home-page #homeHoldingList .home-compact-holding-details .home-price-watch-line { display: flex; flex-wrap: wrap; }
body.home-page #homeHoldingList .home-compact-holding-details .home-price-watch-line strong { font-size: .9375rem; white-space: normal; overflow-wrap: anywhere; }
body.home-page #homeHoldingList .home-compact-holding-details .home-price-watch-row > small { display: block; overflow: visible; -webkit-line-clamp: unset; font-size: .875rem; }
body.home-page #homeHoldingList .home-compact-holding-details .home-holding-verdict { border: 0; padding: 0; }
body.home-page #homeHoldingList .home-compact-holding-details .negative { color: #b6cbd3; }
body.home-page #homeHoldingList .home-compact-holding-details .home-holding-verdict.risk strong { color: #f1c875; }
body.home-page #homeHoldingList .home-compact-holding-details .home-holding-verdict strong,
body.home-page #homeHoldingList .home-compact-holding-details .home-holding-logic-detail > strong,
body.home-page #homeHoldingList .home-compact-holding-details .home-price-conditions > strong { font-size: .875rem; }
body.home-page #homeHoldingList .home-compact-holding-details .home-holding-verdict-facts { display: block; overflow: visible; -webkit-line-clamp: unset; font-size: .8125rem; }
body.home-page #homeHoldingList .home-compact-holding-events,
body.home-page #homeHoldingList .home-compact-holding-events > article { display: grid; gap: 6px; min-width: 0; }
body.home-page #homeHoldingList .home-compact-holding-events > article { padding-block: 6px; }
body.home-page #homeHoldingList .home-compact-holding-events small { color: #9fb6c0; font-size: .75rem; }
body.home-page #homeHoldingList .home-compact-holding-details .home-holding-open { min-height: 44px; font-size: .875rem; white-space: normal; overflow-wrap: anywhere; }

body.home-page #homeHoldingList .home-growth-score-evidence { color: var(--muted); font-size: .8125rem; }
body.home-page #homeHoldingList .home-growth-score-evidence summary,
.stock-growth-score-sources summary { min-height: 44px; padding: 12px 0; cursor: pointer; }
body.home-page #homeHoldingList .home-growth-score-evidence p,
.stock-growth-score-sources p { overflow-wrap: anywhere; white-space: normal; }

/* Market summary only: one frame, four sections, evidence on demand. */
body.home-page .home-market-pulse #homeMarketUpdated[hidden] { display: none; }
body.home-page .home-market-pulse .home-market-status {
  flex: 0 0 auto; border: 0; border-radius: 5px; padding: 4px 8px;
  font-size: 15px; line-height: 1.4; font-weight: 750; color: #b1c5cd; background: #18303b;
}
body.home-page .home-market-pulse .home-market-status.risk { color: #ff8fa3; background: #35212e; }
body.home-page .home-market-pulse .home-market-status.warn { color: #f2bd5c; background: #332d21; }
body.home-page .home-market-pulse .home-market-status.ok { color: #59d9cc; background: #12332f; }
body.home-page .home-market-pulse .home-market-compact { display: grid; gap: 0; min-width: 0; }
body.home-page .home-market-pulse .home-market-compact .home-market-summary { padding: 0 0 10px; gap: 6px; }
body.home-page .home-market-pulse .home-market-compact .home-market-reason { margin: 0; font-size: 15px; line-height: 1.55; color: #e0eaf0; }
body.home-page .home-market-pulse .home-market-compact .home-market-impact,
body.home-page .home-market-pulse .home-market-compact .home-market-gap { font-size: 14px; line-height: 1.5; }
body.home-page .home-market-pulse .home-market-compact .home-market-key-quotes {
  grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 20px; padding-top: 10px;
  border: 0; border-top: 1px solid #203744; border-radius: 0; background: transparent; overflow: visible;
}
body.home-page .home-market-pulse .home-market-compact .home-market-quote {
  display: block; padding: 0; border: 0; min-width: 0; grid-column: auto;
}
body.home-page .home-market-pulse .home-market-compact .home-market-quote:nth-child(5) { grid-column: span 2; }
body.home-page .home-market-pulse .home-market-compact summary {
  min-height: 44px; list-style: none; color: #bbced6; font-size: 14px; line-height: 1.5;
  cursor: pointer; overflow: visible; white-space: normal; overflow-wrap: anywhere;
}
body.home-page .home-market-pulse .home-market-compact summary::-webkit-details-marker { display: none; }
body.home-page .home-market-pulse .home-market-compact summary:focus-visible,
body.home-page .home-market-pulse .home-market-close:focus-visible { outline: 2px solid #53dace; outline-offset: 2px; }
body.home-page .home-market-pulse .home-market-compact .home-market-quote summary { display: grid; gap: 3px; padding: 0; }
body.home-page .home-market-pulse .home-market-compact .home-market-quote-value {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 3px 8px;
}
body.home-page .home-market-pulse .home-market-compact .home-market-quote b { font-size: 13px; color: #dce8ed; }
body.home-page .home-market-pulse .home-market-compact .home-market-quote strong { font-size: 15px; color: #e2ebef; }
body.home-page .home-market-pulse .home-market-compact .home-market-quote-change { font-size: 13px; color: #b1c5cd; }
body.home-page .home-market-pulse .home-market-compact .home-market-quote-anomaly { font-size: 12px; color: #91a7b2; font-weight: 400; }
body.home-page .home-market-pulse .home-market-compact .home-market-quote.unavailable .home-market-quote-anomaly { color: #f2bd5c; }
body.home-page .home-market-pulse .home-market-compact .home-market-common-time { margin: 8px 0 10px; color: #91a7b2; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
body.home-page .home-market-pulse .home-market-compact .home-market-attention { border-top: 1px solid #203744; padding-top: 10px; min-width: 0; }
body.home-page .home-market-pulse .home-market-compact h3 { margin: 0 0 5px; color: #dce8ed; font-size: 14px; line-height: 1.5; }
body.home-page .home-market-pulse .home-market-compact .home-market-attention-item { border: 0; border-bottom: 1px solid #203744; border-radius: 0; min-width: 0; }
body.home-page .home-market-pulse .home-market-compact .home-market-attention-item > summary { display: grid; gap: 3px; padding: 8px 0; }
body.home-page .home-market-pulse .home-market-compact .home-market-attention-title { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 8px; }
body.home-page .home-market-pulse .home-market-compact .home-market-attention-title strong { min-width: 0; font-size: 14px; color: #dce8ed; }
body.home-page .home-market-pulse .home-market-compact .home-market-attention-title small { color: #a3b8c2; font-size: 12px; }
body.home-page .home-market-pulse .home-market-compact .home-market-attention-time { color: #91a7b2; font-size: 12px; }
body.home-page .home-market-pulse .home-market-compact .home-market-attention-impact { color: #b1c5cd; font-size: 13px; }
body.home-page .home-market-pulse .home-market-compact .is-verified-risk > summary { padding-left: 8px; border-left: 3px solid #ff8fa3; }
body.home-page .home-market-pulse .home-market-compact .is-verified-risk .home-market-attention-title strong { color: #ff8fa3; }
body.home-page .home-market-pulse .home-market-compact .home-market-attention-more > summary,
body.home-page .home-market-pulse .home-market-compact .home-market-evidence > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 0; font-size: 14px; color: #88c9c6;
}
body.home-page .home-market-pulse .home-market-compact .home-market-attention-empty { margin: 8px 0; font-size: 14px; line-height: 1.5; color: #a3b8c2; }
body.home-page .home-market-pulse .home-market-compact .home-market-footer { border-top: 1px solid #203744; padding-top: 9px; min-width: 0; }
body.home-page .home-market-pulse .home-market-compact .home-market-footer > p { margin: 0; color: #a3b8c2; font-size: 13px; line-height: 1.5; }
body.home-page .home-market-pulse .home-market-compact .home-market-evidence { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
body.home-page .home-market-pulse .home-market-compact .home-market-evidence > summary::before,
body.home-page .home-market-pulse .home-market-compact .home-market-evidence > summary::after { content: none; }
body.home-page .home-market-pulse .home-market-compact .home-market-evidence-body { display: grid; gap: 10px; min-width: 0; padding: 8px 0 0; }
body.home-page .home-market-pulse .home-market-compact .home-market-evidence-body > section + section,
body.home-page .home-market-pulse .home-market-compact .home-market-rules { border-top: 1px solid #203744; padding-top: 8px; }
body.home-page .home-market-pulse .home-market-compact .home-market-evidence-index > summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; justify-content: space-between; }
body.home-page .home-market-pulse .home-market-compact .home-market-evidence-index > summary span { color: #91a7b2; font-size: 12px; }
body.home-page .home-market-pulse .home-market-compact .home-market-source-detail,
body.home-page .home-market-pulse .home-market-compact .home-market-attention-detail { padding: 4px 0 8px; min-width: 0; }
body.home-page .home-market-pulse .home-market-compact p { overflow-wrap: anywhere; white-space: normal; }
body.home-page .home-market-pulse .home-market-compact .home-market-source-detail p,
body.home-page .home-market-pulse .home-market-compact .home-market-attention-detail p,
body.home-page .home-market-pulse .home-market-compact .home-market-attention-more p,
body.home-page .home-market-pulse .home-market-compact .home-market-evidence-body p { margin: 6px 0; font-size: 14px; line-height: 1.55; }
body.home-page .home-market-pulse .home-market-compact .home-market-calendar { border: 0; background: transparent; padding: 0; border-radius: 0; }
body.home-page .home-market-pulse .home-market-compact .home-market-news-item { padding: 6px 0; }
body.home-page .home-market-pulse .home-market-compact pre { max-width: 100%; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; line-height: 1.5; color: #9fb6c0; }
body.home-page .home-market-pulse .home-market-close { min-width: 44px; min-height: 44px; padding: 6px 0; border: 0; background: transparent; color: #88c9c6; font-size: 14px; text-align: left; cursor: pointer; }
@media (max-width: 340px) {
  body.home-page .home-market-pulse .home-market-compact .home-market-key-quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.home-page .home-market-pulse .home-market-compact .home-market-quote:nth-child(5) { grid-column: auto; }
}
body.home-page #homeHoldingList .home-holding-logic-detail p { text-spacing-trim: space-all; }
.stock-growth-score-sources { margin-top: 10px; color: var(--muted); font-size: .8125rem; min-width: 0; }
.stock-growth-period { display: inline-block; max-width: 100%; vertical-align: top; }

[data-score-band="excellent"] { --score-grade-color: #56dbc4; }
[data-score-band="good"] { --score-grade-color: #92b8ff; }
[data-score-band="qualified"] { --score-grade-color: #b5d7e2; }
[data-score-band="review"] { --score-grade-color: #f0cc86; }
[data-score-band="weak"] { --score-grade-color: #f5a889; }
[data-score-band="unavailable"] { --score-grade-color: #a6b5bd; }
#stockVerdictInvestBlock[data-score-band="unavailable"] { opacity: 1; }
body.home-page #homeHoldingList .home-compact-holding-score[data-score-band],
body.home-page #homeHoldingList .home-holding-score-grade[data-score-band],
body.home-page #homeHoldingList .home-holding-head-score[data-score-band] strong,
body.home-page #homeHoldingList .home-holding-head-score[data-score-band] em,
#stockVerdictInvestBlock[data-score-band] .stock-verdict-score-value strong,
#stockVerdictInvestBlock[data-score-band] > header > b { color: var(--score-grade-color, #a6b5bd); }
body.home-page #homeHoldingList .home-growth-score-gap,
.stock-growth-score-gap { color: #a6b5bd; font-size: .8125rem; line-height: 1.6; white-space: normal; overflow-wrap: anywhere; }
body.home-page #homeHoldingList .home-growth-score-gap > small { display: block; font-size: .75rem; overflow-wrap: anywhere; }
