/* analysis.css v14 — Always-blue, mechanical inference */

/* ── INPUT PANEL ──────────────────────────────────────────────────────── */
.an-input-panel {
  padding: 22px 26px;
  margin-bottom: 10px;
}
.an-input-panel .lt-input-bar {
  padding: 0;
  margin-bottom: 12px;
}

/* ── TF DESCRIPTION ───────────────────────────────────────────────────── */
.an-tf-desc-row { padding: 6px 0 10px; }
.an-tf-desc {
  font-size: 0.58rem;
  color: var(--text-dim);
  font-style: italic;
}

/* ── LOADING ──────────────────────────────────────────────────────────── */
.an-loading { margin-bottom: 10px; }

/* ── STRUCTURAL THESIS GRADE CHIP — small, inline with section header ─── */
.an-thesis-grade-chip {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.72rem;
  font-weight: 900;
  color: #3a90aa;
  letter-spacing: 0.5px;
  line-height: 1;
  flex-shrink: 0;
}

/* ── MARKET SKEW PANEL — 5-dimension labeled sections ─────────────────── */
.an-market-skew-panel {
  margin-bottom: 10px;
  padding: 16px 22px;
  background: rgba(150,96,10,0.035);
  border: 1px solid rgba(150,96,10,0.12);
  border-radius: var(--radius, 6px);
}
.an-market-skew-panel.hidden { display: none; }
.an-market-skew-panel .an-section-hdr {
  border-bottom-color: rgba(150,96,10,0.12);
}

/* Each labeled dimension */
.an-skew-section {
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(150,96,10,0.08);
}
.an-skew-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.an-skew-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.36rem;
  font-weight: 800;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--warn, #8c6010);
  margin-bottom: 5px;
}
.an-skew-text {
  font-size: 0.76rem;
  line-height: 1.70;
  color: var(--text-sec);
}
.an-skew-text p { margin: 0 0 6px; }
.an-skew-text p:last-child { margin-bottom: 0; }
.an-skew-text strong { color: var(--text); font-weight: 700; }

/* ── PIPELINE CONFLICT / ALIGNMENT INDICATOR ──────────────────────────── */
.an-pipeline-conflict {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.54rem;
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 6px;
  border: 1px solid;
  margin: 8px 0 10px;
  line-height: 1.4;
}
.an-pipeline-conflict.hidden { display: none; }
.an-pipeline-conflict.conflict-active {
  background: rgba(42,90,130,0.06);
  color: #2a5a82;
  border-color: rgba(42,90,130,0.22);
}
.an-pipeline-conflict.conflict-aligned {
  background: rgba(58,144,170,0.05);
  color: #3a7a9a;
  border-color: rgba(58,144,170,0.18);
  font-size: 0.50rem;
}

/* ── BIAS STRIP — compact left-aligned ruling ─────────────────────────── */
.an-bias-strip {
  background: rgba(0,0,0,0.025);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius);
  padding: 18px 22px;
  margin-bottom: 10px;
  transition: background 0.3s, border-color 0.3s;
}
.an-bias-strip.an-strip-bull,
.an-bias-strip.an-strip-bear,
.an-bias-strip.an-strip-hold {
  background: rgba(62, 154, 173, 0.06);
  border-color: rgba(62, 154, 173, 0.16);
}
.an-bs-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
  flex-wrap: nowrap;
}

.an-bs-direction-block,
.an-bs-move-block,
.an-bs-meta-block {
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 90px;
  flex-shrink: 0;
}
.an-bs-direction-block { padding-left: 0; }

.an-bs-thesis-block {
  flex: 1;
  padding: 0 0 0 20px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.an-bs-divider {
  width: 1px;
  height: 44px;
  background: var(--border-lt);
  align-self: center;
  flex-shrink: 0;
}

/* Labels */
.an-bs-dir-lbl,
.an-bs-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.38rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 2px;
}

/* Direction word — soft color text only */
.an-bs-direction {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.55rem;
  font-weight: 900;
  letter-spacing: 0.5px;
  line-height: 1;
  color: var(--text);
}
.an-bs-direction.an-bs-bull { color: #3e9aad; }
.an-bs-direction.an-bs-bear { color: #3e7e8a; }
.an-bs-direction.an-bs-hold { color: #6a7a8a; }

/* Conviction dots */
.an-bs-conviction { font-size: 0.60rem; letter-spacing: 2px; color: var(--text-dim); }
.an-bs-dot        { color: rgba(0,0,0,0.15); }
.an-bs-dot.active { color: var(--text-sec); }

/* Expected move */
.an-bs-move {
  font-family: 'SFMono-Regular', 'Consolas', monospace;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
}
.an-bs-move-reason {
  font-size: 0.48rem;
  color: var(--text-dim);
  font-weight: 500;
  letter-spacing: 0.2px;
  margin-top: 2px;
}
.an-bs-window {
  font-size: 0.49rem;
  color: var(--text-dim);
  font-weight: 600;
  letter-spacing: 0.3px;
}

/* TF + binary */
.an-bs-tf {
  font-family: 'SFMono-Regular', 'Consolas', monospace;
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
}
.an-bs-binary-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.an-bs-binary-val {
  font-family: 'SFMono-Regular', 'Consolas', monospace;
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--text-sec);
}

/* Trade thesis */
.an-bs-thesis {
  font-size: 0.80rem;
  color: var(--text-sec);
  line-height: 1.70;
  font-style: italic;
  border-left: 3px solid rgba(62,126,138,0.35);
  padding-left: 12px;
}
.an-bs-ticker-meta {
  font-size: 0.46rem;
  color: var(--text-dim);
  line-height: 1.50;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.an-bs-tier-chip {
  font-family: 'SFMono-Regular', 'Consolas', monospace;
  font-size: 0.44rem;
  font-weight: 800;
  letter-spacing: 0.5px;
  padding: 1px 5px;
  border-radius: 3px;
  background: rgba(176,90,16,0.12);
  color: #b05a10;
  border: 1px solid rgba(176,90,16,0.25);
}

/* ── SECTION HDR ──────────────────────────────────────────────────────── */
.an-section-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.57rem;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: #606778;
  padding-bottom: 10px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--border-lt);
}

/* ── STRUCTURAL THESIS PANEL ───────────────────────────────────────────── */
.an-thesis-panel { margin-bottom: 10px; padding: 20px 22px; }

/* Verdict meta row */
.an-thesis-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-lt);
}
.an-thesis-verdict {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.70rem;
  font-weight: 800;
  letter-spacing: 2px;
  color: var(--text-dim);
}
.an-thesis-verdict.an-bull { color: #3a90aa; }
.an-thesis-verdict.an-bear { color: #4a6a84; }
.an-thesis-ratio {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.40rem;
  font-weight: 600;
  letter-spacing: 0.8px;
  color: var(--text-dim);
}

/* Three sections */
.an-thesis-section {
  margin-bottom: 14px;
}
.an-thesis-section:last-of-type { margin-bottom: 0; }
.an-thesis-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.38rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(0,0,0,0.28);
  margin-bottom: 5px;
}
.an-thesis-text {
  font-size: 0.76rem;
  line-height: 1.65;
  color: var(--text-sec);
}
.an-thesis-text strong { font-weight: 700; color: var(--text); }
.an-thesis-inv {
  font-size: 0.72rem;
  color: var(--text-dim);
  font-style: italic;
}

/* Recusals block */
.an-thesis-recusals {
  margin-top: 14px;
  padding: 10px 14px;
  background: rgba(0,0,0,0.025);
  border-left: 2px solid var(--border-lt);
  border-radius: 0 4px 4px 0;
}
.an-thesis-rec-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.36rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: rgba(0,0,0,0.28);
  text-transform: uppercase;
  margin-bottom: 5px;
}
.an-thesis-rec-item {
  font-size: 0.60rem;
  color: var(--text-dim);
  line-height: 1.55;
  margin-bottom: 3px;
}
.an-thesis-rec-item:last-child { margin-bottom: 0; }
.an-thesis-rec-item strong { color: var(--text-sec); font-weight: 700; }

/* ── STANDING & SENTIMENT ARTICULATION (legacy — unused post-v14) ──────── */
.an-newspaper-panel { margin-bottom: 10px; padding: 20px 22px; }
.an-headline {
  font-family: 'Montserrat', 'Segoe UI', Helvetica, Arial, sans-serif;
  font-size: 1.28rem;
  font-weight: 800;
  letter-spacing: -0.015em;
  line-height: 1.24;
  color: var(--text);
  margin-bottom: 9px;
}
.an-subheadline {
  font-family: 'Segoe UI', Helvetica, Arial, sans-serif;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-sec);
  line-height: 1.58;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--border-lt);
}
.an-paragraph {
  font-family: 'Segoe UI', Helvetica, Arial, sans-serif;
  font-size: 0.83rem;
  color: var(--text-sec);
  line-height: 1.90;
  max-width: 860px;
}
.an-paragraph p            { margin: 0 0 10px; }
.an-paragraph p:last-child { margin-bottom: 0; }
.an-paragraph strong       { color: var(--text); font-weight: 700; }
.an-paragraph em           { font-style: italic; color: var(--text-sec); }

/* ── METRIC CONTAINER ─────────────────────────────────────────────────── */
.an-metric-panel {
  margin-bottom: 10px;
  padding: 0;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}
.an-metric-panel .an-section-hdr {
  margin-bottom: 8px;
  border-bottom: none;
  padding-bottom: 0;
}
.an-metric-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: transparent;
}
.an-metric-item {
  padding: 10px 14px;
  border-right: 1px solid var(--border-lt);
  border-bottom: 1px solid var(--border-lt);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.an-metric-item:nth-child(3n)      { border-right: none; }
.an-metric-item:nth-last-child(-n+3) { border-bottom: none; }
.an-metric-top-row {
  display: flex;
  align-items: baseline;
  gap: 7px;
  flex-wrap: wrap;
}
.an-metric-code {
  font-family: 'SFMono-Regular', 'Consolas', monospace;
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--text);
}
.an-metric-fullname {
  font-size: 0.49rem;
  color: var(--text-dim);
  font-weight: 600;
}
.an-metric-value {
  font-family: 'SFMono-Regular', 'Consolas', monospace;
  font-size: 1.10rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
  margin: 2px 0 2px;
}
.an-metric-band {
  font-size: 0.57rem;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--text-sec, #52596b);
}
.an-metric-plain {
  font-size: 0.59rem;
  color: var(--text-dim);
  line-height: 1.55;
  margin-top: 2px;
}

/* ── AI THINKING DISPLAY — visible during Stage 2 generation ────────────── */
.an-think-display {
  padding: 18px 22px 14px;
  border-top: 1px solid var(--border-lt, rgba(0,0,0,0.055));
}
.an-think-display.hidden { display: none; }

.an-think-phrase {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.55rem;
  font-weight: 200;
  color: var(--text, #1a1c23);
  opacity: 0;
  line-height: 1.28;
  letter-spacing: -0.3px;
  transition: opacity 0.42s ease;
  user-select: none;
  pointer-events: none;
}

/* ── STRUCTURAL SPECTRUM EXPLORER ────────────────────────────────────────
   Starts at CENTER on load. Scrub left→compression, right→expansion.
   Generates metric-level elaboration without AI — from data already loaded.
   ────────────────────────────────────────────────────────────────────────── */
.an-spectrum-wrap {
  padding: 16px 22px 18px;
  border-top: 1px solid var(--border-lt, rgba(0,0,0,0.055));
}
.an-spectrum-wrap.hidden { display: none; }

.an-spectrum-rail {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}
.an-spec-pole {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.36rem;
  font-weight: 700;
  letter-spacing: 1.4px;
  color: var(--text-dim);
  text-transform: uppercase;
}
.an-spec-pos-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.44rem;
  font-weight: 800;
  letter-spacing: 1px;
  color: #3e9aad;
  text-transform: uppercase;
  transition: color 0.2s;
}

.an-spectrum-slider {
  width: 100%;
  height: 3px;
  -webkit-appearance: none;
  appearance: none;
  background: rgba(62,154,173,0.18);
  border-radius: 2px;
  outline: none;
  cursor: pointer;
  margin-bottom: 4px;
}
.an-spectrum-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: #3e9aad;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.18);
  cursor: pointer;
  transition: background 0.15s;
}
.an-spectrum-slider::-moz-range-thumb {
  width: 14px; height: 14px;
  border-radius: 50%;
  background: #3e9aad;
  border: 2px solid #fff;
  cursor: pointer;
}

.an-spectrum-ticks {
  display: flex;
  justify-content: space-between;
  margin-bottom: 14px;
}
.an-spectrum-ticks span {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.30rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: var(--text-dim);
  text-transform: uppercase;
  text-align: center;
  flex: 1;
}
.an-spectrum-ticks span:nth-child(4) { color: #3e9aad; font-weight: 800; }

.an-spectrum-body {
  font-size: 0.63rem;
  color: var(--text-sec);
  line-height: 1.70;
  min-height: 48px;
}
.an-spec-section { margin-bottom: 10px; }
.an-spec-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.34rem;
  font-weight: 800;
  letter-spacing: 1.6px;
  color: var(--text-dim);
  text-transform: uppercase;
  margin-bottom: 3px;
}
.an-spec-metric-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 5px;
}
.an-spec-chip {
  font-family: 'SFMono-Regular', monospace;
  font-size: 0.52rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(62,154,173,0.09);
  color: #3e9aad;
  white-space: nowrap;
}
.an-spec-chip.neutral { background: rgba(0,0,0,0.05); color: var(--text-dim); }
.an-spec-empty { font-size: 0.58rem; color: var(--text-dim); font-style: italic; }

/* ── NEWS PANEL ───────────────────────────────────────────────────────── */
.an-news-panel { margin-bottom: 16px; padding: 18px 22px; }
.an-news-body {
  font-size: 0.79rem;
  color: var(--text-sec);
  line-height: 1.80;
}

/* ── DESKTOP — horizontal strip ─────────────────────────────────────── */
@media (min-width: 681px) {
  .an-bs-row {
    flex-wrap: nowrap;
    align-items: stretch;
  }
  .an-bs-divider { display: block; }
}

/* ── TABLET / MOBILE ─────────────────────────────────────────────────── */
@media (max-width: 680px) {
  .an-input-panel { padding: 16px 18px; }

  /* Bias strip: stack vertically */
  .an-bs-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .an-bs-divider { display: none; }
  .an-bs-direction-block,
  .an-bs-move-block,
  .an-bs-meta-block { padding: 0; min-width: 0; }
  .an-bs-thesis-block {
    padding: 0;
    border-top: 1px solid var(--border-lt);
    padding-top: 14px;
    width: 100%;
  }

  /* Metric: 2-col on tablet */
  .an-metric-container { grid-template-columns: repeat(2, 1fr); }
  .an-metric-item:nth-child(3n)       { border-right: 1px solid var(--border-lt); }
  .an-metric-item:nth-child(2n)       { border-right: none; }
  .an-metric-item:nth-last-child(-n+3){ border-bottom: 1px solid var(--border-lt); }
  .an-metric-item:nth-last-child(-n+2){ border-bottom: none; }
}

@media (max-width: 420px) {
  .an-metric-container { grid-template-columns: 1fr; }
  .an-metric-item { border-right: none !important; }
  .an-metric-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--border-lt); }
  .an-metric-item:last-child           { border-bottom: none !important; }

  .an-bs-direction { font-size: 1.30rem; }
  .an-bs-move      { font-size: 1.00rem; }
}

/* ── AN-SECTION-HDR SUB-LABEL ─────────────────────────────────────────── */
.an-section-sub {
  font-size: 0.46rem;
  font-weight: 400;
  letter-spacing: 0.3px;
  color: var(--text-dim);
  text-transform: none;
  margin-left: auto;
}

/* ── CATALYST CONTEXT PANEL ───────────────────────────────────────────── */
.an-catalyst-panel { margin-bottom: 10px; padding: 20px 22px; }
.an-catalyst-events { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }

.an-cat-event-row {
  padding: 10px 14px;
  border: 1px solid var(--border-lt);
  border-radius: 10px;
  background: rgba(0,0,0,0.015);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.an-cat-event-head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.an-cat-event-type {
  font-size: 0.70rem;
  font-weight: 700;
  letter-spacing: 0.3px;
  color: var(--text);
  flex: 1;
}
.an-cat-event-date {
  font-size: 0.58rem;
  font-weight: 600;
  color: var(--text-dim);
  font-family: 'SFMono-Regular', monospace;
  flex-shrink: 0;
}
.an-cat-event-impact {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 4px;
  border-top: 1px solid var(--border-lt);
}
.an-cat-impact-lbl {
  font-size: 0.46rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-dim);
}
.an-cat-impact-val {
  font-size: 0.60rem;
  font-weight: 700;
  letter-spacing: 0.3px;
}
.an-bull { color: var(--call, #3a90aa); }
.an-bear { color: var(--put, #4a6a84); }

.an-catalyst-summary {
  font-size: 0.68rem;
  color: var(--text-sec);
  line-height: 1.7;
  padding-top: 10px;
  border-top: 1px solid var(--border-lt);
}
.an-catalyst-summary p { margin: 0 0 8px; }
.an-catalyst-summary p:last-child { margin-bottom: 0; }

/* ── INSTITUTION SENTIMENT PANEL ──────────────────────────────────────── */
.an-institution-panel { margin-bottom: 10px; padding: 20px 22px; }
.an-inst-body { display: flex; flex-direction: column; gap: 12px; }

.an-inst-rating-row {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.an-inst-badge {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.80rem;
  font-weight: 800;
  letter-spacing: 1px;
  padding: 5px 16px;
  border-radius: 6px;
  border: 1.5px solid;
  flex-shrink: 0;
}
.an-inst-buy  { background: rgba(58,144,170,0.09); color: #3a90aa; border-color: rgba(58,144,170,0.30); }
.an-inst-sell { background: rgba(42,80,118,0.09); color: #4a6a84; border-color: rgba(42,80,118,0.28); }
.an-inst-hold { background: rgba(120,120,120,0.08); color: var(--text-sec); border-color: var(--border); }

.an-inst-meta {
  font-size: 0.60rem;
  font-weight: 600;
  color: var(--text-dim);
  letter-spacing: 0.3px;
}
.an-inst-meta.an-aligned  { color: var(--call, #1a8c4e); }
.an-inst-meta.an-diverges { color: var(--put, #c53030); }

.an-inst-targets {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.an-inst-tgt-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(0,0,0,0.025);
  border: 1px solid var(--border-lt);
  border-radius: 8px;
}
.an-inst-tgt-lbl {
  font-size: 0.46rem;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--text-dim);
}
.an-inst-tgt-val {
  font-family: 'SFMono-Regular', monospace;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text);
}
.an-inst-tgt-upside {
  font-size: 0.58rem;
  font-weight: 700;
}

.an-inst-ownership {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.an-inst-own-item {
  display: flex;
  align-items: center;
  gap: 6px;
}
.an-inst-own-lbl {
  font-size: 0.46rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-dim);
}
.an-inst-own-val {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--text);
}

/* ══════════════════════════════════════════════════════════════════════
   STRUCTURAL SCALE PANEL — standalone, between bias strip and thesis
   ══════════════════════════════════════════════════════════════════════ */

/* Container */
.an-disp-panel {
  margin-bottom: 10px;
  padding: 16px 22px 14px;
  background: rgba(10, 22, 42, 0.03);
  border-color: rgba(30, 60, 100, 0.13);
}
.an-disp-panel.hidden { display: none; }

/* Bar row: STRONG BEAR · track · STRONG BULL */
.an-disp-bar-outer {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 5px;
}
.an-disp-pole {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.36rem;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  flex-shrink: 0;
  white-space: nowrap;
}
.an-disp-pole-l { color: #4a6a84; }
.an-disp-pole-r { color: #3a90aa; }
.an-disp-track-wrap { flex: 1; min-width: 0; }

/* Tier label + reset row */
.an-disp-tier-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 22px;
  margin-top: 4px;
  margin-bottom: 10px;
}

/* Center reading display */
.an-disp-center-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border-lt);
}
.an-disp-center-text {
  font-size: 0.76rem;
  line-height: 1.65;
  color: var(--text-sec);
}
.an-disp-center-text p { margin: 0 0 8px; }
.an-disp-center-text p:last-child { margin-bottom: 0; }
.an-disp-center-tension {
  margin-top: 10px;
  font-size: 0.70rem;
  line-height: 1.60;
  color: var(--text-dim);
  font-style: italic;
}
.an-disp-center-tension p { margin: 0 0 6px; }
.an-disp-center-tension p:last-child { margin-bottom: 0; }

/* Legacy wrap (unused but harmless) */
.an-dispute-wrap {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--border-lt);
}

.an-dispute-tier-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.48rem;
  font-weight: 800;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--text-dim);
  text-align: center;
  flex: 1;
  transition: color 0.2s;
}
.an-dispute-tier-lbl.is-bear { color: #4a6a84; }
.an-dispute-tier-lbl.is-bull { color: #3a90aa; }

/* Slider track — dark near-black-blue edges, lighter gray-blue center */
.an-dispute-slider {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  height: 3px;
  border-radius: 2px;
  outline: none;
  cursor: pointer;
  background: linear-gradient(
    to right,
    #0c1728,
    #18304c 20%,
    #3a6480 42%,
    #7aaec8 50%,
    #3a6480 58%,
    #18304c 80%,
    #0c1728
  );
  border: none;
}

/* Pill thumb — 1.5× dark, rounded pill */
.an-dispute-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 27px;
  height: 15px;
  border-radius: 8px;
  background: #0c1728;
  border: none;
  cursor: grab;
  transition: background 0.18s;
}
.an-dispute-slider:active::-webkit-slider-thumb { cursor: grabbing; background: #0f1e38; }
.an-dispute-slider::-moz-range-thumb {
  width: 27px;
  height: 15px;
  border-radius: 8px;
  background: #0c1728;
  border: none;
  cursor: grab;
}

/* Thumb stays dark at all positions */
.an-dispute-slider.ds-bear::-webkit-slider-thumb,
.an-dispute-slider.ds-bull::-webkit-slider-thumb,
.an-dispute-slider.ds-center::-webkit-slider-thumb { background: #0c1728; }
.an-dispute-slider.ds-bear::-moz-range-thumb,
.an-dispute-slider.ds-bull::-moz-range-thumb,
.an-dispute-slider.ds-center::-moz-range-thumb     { background: #0c1728; }

/* Tick labels */
.an-dispute-ticks {
  display: flex;
  justify-content: space-between;
  margin-top: 5px;
  gap: 0;
}
.an-dispute-ticks span {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.37rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: rgba(0,0,0,0.25);
  text-align: center;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  transition: color 0.15s;
}
.an-dispute-ticks span.tick-active { color: var(--text-dim); }

/* Footer row */
.an-dispute-foot {
  display: flex;
  justify-content: center;
  min-height: 24px;
  margin-top: 8px;
}
.an-dispute-reset {
  background: none;
  border: 1px solid var(--border-lt);
  border-radius: 3px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.42rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-dim);
  padding: 3px 12px;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}
.an-dispute-reset:hover { color: var(--text); border-color: var(--border); }

/* Result panel */
.an-dispute-result {
  margin-top: 0;
  padding-top: 10px;
  border-top: 1px solid var(--border-lt);
}
.an-dispute-result.hidden { display: none; }
.an-dispute-dots {
  display: flex;
  align-items: center;
  gap: 6px;
  justify-content: center;
  padding: 8px 0;
}
.an-dispute-dots span {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(0,0,0,0.16);
  animation: panelDotPulse 1.5s ease-in-out infinite both;
}
.an-dispute-dots span:nth-child(2) { animation-delay: 0.22s; }
.an-dispute-dots span:nth-child(3) { animation-delay: 0.44s; }

/* Per-metric inference layout (replaces stat boxes) */
.an-disp-metric-inferences {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 12px;
}
.an-disp-inf-row {
  padding: 8px 0;
  border-bottom: 1px solid var(--border-lt);
}
.an-disp-inf-row:last-child { border-bottom: none; }
.an-disp-inf-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 3px;
}
.an-disp-inf-code {
  font-family: 'SFMono-Regular', 'Consolas', monospace;
  font-size: 0.64rem;
  font-weight: 800;
  color: var(--text);
}
.an-disp-inf-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.36rem;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--text-dim);
}
.an-disp-inf-text {
  font-size: 0.70rem;
  line-height: 1.58;
  color: var(--text-sec);
}
.an-disp-boundary {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border-lt);
}
.an-disp-boundary-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.34rem;
  font-weight: 800;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: rgba(0,0,0,0.25);
  margin-bottom: 5px;
}
.an-disp-boundary-text {
  font-size: 0.70rem;
  line-height: 1.58;
  color: var(--text-dim);
  font-style: italic;
}

/* Stats row (legacy — kept for any fallback paths) */
.an-dispute-stats {
  display: flex;
  gap: 0;
  margin-bottom: 12px;
}
.an-dispute-stat {
  flex: 1;
  padding: 0 6px;
  border-right: 1px solid var(--border-lt);
}
.an-dispute-stat:first-child { padding-left: 0; }
.an-dispute-stat:last-child  { border-right: none; }
.an-dispute-stat-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.40rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 4px;
}
.an-dispute-stat-val {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
}
.an-dispute-stat-val.ds-val-bear { color: #4a6a84; }
.an-dispute-stat-val.ds-val-bull { color: #3a90aa; }
.an-dispute-text {
  font-size: 0.72rem;
  line-height: 1.58;
  color: var(--text-sec);
}

/* Mobile */
@media (max-width: 540px) {
  .an-dispute-ticks span:nth-child(2),
  .an-dispute-ticks span:nth-child(3),
  .an-dispute-ticks span:nth-child(5),
  .an-dispute-ticks span:nth-child(6) { visibility: hidden; }
  .an-dispute-stats { flex-wrap: wrap; gap: 10px 0; }
  .an-dispute-stat  { flex: 0 0 50%; border-right: none; border-bottom: 1px solid var(--border-lt); padding: 0 0 8px 0; }
  .an-dispute-stat:nth-child(odd)  { padding-right: 12px; }
  .an-dispute-stat:nth-child(even) { padding-left: 12px; border-left: 1px solid var(--border-lt); }
  .an-dispute-stat:last-child { border-bottom: none; }
}

/* ── SYNTHESIS ROW — structural × fundamental cross ──────────────────── */
.an-synthesis-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 8px 18px;
  border-radius: var(--radius-sm);
  margin-bottom: 10px;
  background: rgba(0,0,0,0.028);
  border: 1px solid var(--border-lt);
}
.an-synthesis-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  flex-shrink: 0;
}
.an-synthesis-label.syn-bear-confirmed { color: #a32828; }
.an-synthesis-label.syn-bull-confirmed { color: #2a7a44; }
.an-synthesis-label.syn-trap           { color: #b05a10; }
.an-synthesis-label.syn-dip            { color: #2a6a8a; }
.an-synthesis-desc {
  font-size: 0.60rem;
  color: var(--text-sec);
  line-height: 1.4;
}

/* ── COMPANY GRADE BLOCK ─────────────────────────────────────────────── */
.fl-company-grade {
  margin: 10px 0 12px;
  padding: 10px 14px;
  border: 1px solid var(--border-lt);
  border-radius: var(--radius-sm);
  background: rgba(0,0,0,0.015);
}
.cg-row {
  display: flex;
  gap: 20px;
}
.cg-block {
  display: flex;
  align-items: baseline;
  gap: 7px;
  flex: 1;
}
.cg-horizon {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.46rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-dim);
  flex-shrink: 0;
}
.cg-grade {
  font-family: 'SFMono-Regular', 'Consolas', monospace;
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1;
  flex-shrink: 0;
}
.cg-grade.cg-grade-good { color: #2a7a44; }
.cg-grade.cg-grade-mid  { color: var(--text); }
.cg-grade.cg-grade-bad  { color: #a32828; }
.cg-sentence {
  font-size: 0.57rem;
  color: var(--text-sec);
  line-height: 1.45;
}

/* ── METRIC PANEL DATA SOURCE ROW ────────────────────────────────────── */
.an-metric-sources {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.ds-chip {
  font-family: 'SFMono-Regular', 'Consolas', monospace;
  font-size: 0.48rem;
  font-weight: 600;
  letter-spacing: 0.4px;
  padding: 2px 6px;
  border-radius: 3px;
  border: 1px solid var(--border-lt);
  color: var(--text-dim);
  background: transparent;
}
.ds-chip strong { font-weight: 800; color: var(--text); }
.ds-chip.ds-tier1 { border-color: var(--border-lt); }
.ds-chip.ds-tier2 { border-color: #b05a10; color: #b05a10; }
.ds-chip.ds-tier2 strong { color: #b05a10; }
.ds-chip.ds-none  { border-color: var(--border-lt); opacity: 0.5; }

/* ── MICRO-CAP REGIME ─────────────────────────────────────────────────────── */

/* Banner — sits between bias strip and thesis panel */
.an-mc-banner {
  border: 1px solid rgba(220, 120, 20, 0.30);
  background: rgba(220, 120, 20, 0.05);
  border-radius: var(--radius);
  padding: 14px 20px 12px;
  margin-bottom: 10px;
}
.an-mc-banner.hidden { display: none; }

.an-mc-banner-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.an-mc-regime-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.60rem;
  font-weight: 800;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: #d07010;
}
.an-mc-regime-secondary {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.50rem;
  font-weight: 700;
  letter-spacing: 1.0px;
  text-transform: uppercase;
  color: #c05008;
}
.an-mc-cap {
  font-family: 'SFMono-Regular', monospace;
  font-size: 0.50rem;
  color: var(--text-dim);
  margin-left: auto;
}

/* Grade row */
.an-mc-grades-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.an-mc-grade-block {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.an-mc-grade-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.38rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-dim);
}
.an-mc-grade-val {
  font-family: 'SFMono-Regular', monospace;
  font-size: 0.80rem;
  font-weight: 800;
  color: var(--text-dim);
}
.an-mc-grade-val.mc-grade-good { color: #2a7a4a; }
.an-mc-grade-val.mc-grade-mid  { color: #7a6020; }
.an-mc-grade-val.mc-grade-low  { color: #b05010; }
.an-mc-grade-val.mc-grade-fail { color: #a02020; }
.an-mc-grade-divider { width: 1px; height: 30px; background: var(--border-lt); flex-shrink: 0; }
.an-mc-friction-block { display: flex; flex-direction: column; gap: 2px; }
.an-mc-friction-val {
  font-family: 'SFMono-Regular', monospace;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text);
}

/* Gate strip in banner */
.an-mc-gate-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.mc-gate-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.42rem;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid;
  cursor: default;
}
.mc-gate-chip.mc-gate-pass  { color: #2a7a4a; border-color: rgba(42,122,74,0.30); background: rgba(42,122,74,0.06); }
.mc-gate-chip.mc-gate-fail  { color: #a02020; border-color: rgba(160,32,32,0.30); background: rgba(160,32,32,0.06); }
.mc-gate-chip.mc-gate-ambig { color: var(--text-dim); border-color: var(--border-lt); }
.mc-gate-icon { font-size: 0.55rem; font-weight: 900; }
.mc-gate-name { font-size: 0.42rem; }
.mc-gate-recusal-note {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.42rem;
  color: var(--text-dim);
  font-style: italic;
  margin-left: 4px;
}

/* Micro-cap metrics panel */
.an-mc-metrics-panel { margin-bottom: 10px; }
.an-mc-metrics-panel.hidden { display: none; }

.an-mc-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.an-mc-metric-item {
  background: rgba(0,0,0,0.03);
  border: 1px solid var(--border-lt);
  border-radius: 8px;
  padding: 10px 12px;
}
.an-mc-metric-item.mc-metric-recused {
  opacity: 0.45;
  border-style: dashed;
}
.an-mc-metric-top {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin-bottom: 6px;
}
.an-mc-metric-code {
  font-family: 'SFMono-Regular', monospace;
  font-size: 0.60rem;
  font-weight: 800;
  color: var(--text);
}
.an-mc-metric-name {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.40rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--text-dim);
}
.an-mc-metric-val {
  font-family: 'SFMono-Regular', monospace;
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 3px;
}
.an-mc-metric-band {
  font-size: 0.48rem;
  color: var(--text-dim);
  font-style: italic;
  margin-bottom: 5px;
}
.an-mc-metric-plain {
  font-size: 0.50rem;
  color: var(--text-sec);
  line-height: 1.5;
}

/* Narratives */
.an-mc-inst-narrative,
.an-mc-retail-narrative {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.56rem;
  color: var(--text-sec);
  line-height: 1.7;
  padding: 10px 14px;
  border-left: 2px solid var(--border-lt);
  margin-bottom: 10px;
}
.an-mc-inst-narrative.hidden,
.an-mc-retail-narrative.hidden { display: none; }

/* Friction-adjusted move panel */
.an-mc-friction-panel {
  border-top: 1px solid var(--border-lt);
  padding-top: 10px;
  margin-top: 4px;
}
.an-mc-friction-panel.hidden { display: none; }
.an-mc-friction-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.40rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 8px;
}
.an-mc-friction-rows { display: flex; flex-direction: column; gap: 4px; }
.mc-friction-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 3px 0;
  border-bottom: 1px solid var(--border-lt);
}
.mc-friction-row:last-child { border-bottom: none; }
.mc-friction-row.mc-friction-net {
  border-top: 1px solid var(--border-lt);
  padding-top: 6px;
  margin-top: 2px;
}
.mc-fr-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.44rem;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--text-dim);
}
.mc-fr-val {
  font-family: 'SFMono-Regular', monospace;
  font-size: 0.70rem;
  font-weight: 800;
  color: var(--text);
}
.mc-fr-cost { color: #a02020; }
.mc-fr-pos  { color: #2a7a4a; }
.mc-fr-neg  { color: #a02020; }

@media (max-width: 600px) {
  .an-mc-metrics-grid { grid-template-columns: 1fr 1fr; }
  .an-mc-grades-row   { gap: 8px; }
}
