/* Ticker opinion homepage; builds on dashboard.css + consensus.css. */

.ticker-main {
  display: grid;
  gap: 32px;
  padding-block: 32px 64px;
}

.ticker-hero {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  border: 1px solid var(--wire);
  border-radius: var(--radius-panel);
  background: var(--terminal-raised);
  padding: 24px;
}

.ticker-hero-copy { min-width: 0; }

.ticker-kicker,
.ticker-section-kicker {
  margin: 0;
  color: var(--signal-tertiary);
  font: 700 var(--type-meta)/1.3 "Ubuntu Mono", "Nimbus Mono PS", monospace;
  letter-spacing: .08em;
}

.ticker-hero h1 {
  margin: 8px 0;
  color: var(--signal-ink);
  font: 700 var(--type-display)/1.12 "Ubuntu Mono", "Nimbus Mono PS", monospace;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.ticker-hero-copy > p:last-child {
  margin: 0;
  color: var(--signal-secondary);
  font-size: var(--type-body);
  line-height: 1.5;
  text-wrap: pretty;
}

.ticker-hero-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 8px;
}

.ticker-hero-actions a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--wire);
  border-radius: var(--radius-control);
  padding: 8px 12px;
  color: var(--signal-secondary);
  font-size: var(--type-body);
  font-weight: 650;
  text-decoration: none;
  transition: color 150ms ease-out, border-color 150ms ease-out, background-color 150ms ease-out, transform 120ms ease-out;
}

.ticker-hero-actions a:hover {
  border-color: var(--wire-focus);
  color: var(--signal-ink);
}

.ticker-hero-actions a:active { transform: scale(.97); }

.ticker-hero-actions a:focus-visible {
  outline: 2px solid var(--wire-focus);
  outline-offset: 2px;
}

.ticker-hero-actions .ticker-tradingview-link {
  border-color: var(--wire-focus);
  background: var(--profit-muted);
  color: var(--profit);
}

.ticker-opinion-empty {
  border: 1px solid var(--wire);
  border-radius: var(--radius-panel);
  background: var(--terminal-raised);
  padding: 20px;
}

.ticker-opinion-empty h2 {
  margin: 8px 0;
  color: var(--signal-ink);
  font-size: var(--type-key);
}

.ticker-opinion-empty > p:last-child {
  margin: 0;
  color: var(--signal-secondary);
  font-size: var(--type-body);
  line-height: 1.5;
}

#uzi-research { scroll-margin-top: 96px; }

.ticker-search {
  display: flex;
  gap: 0.6rem;
  max-width: 30rem;
}

.ticker-search input {
  flex: 1 1 auto;
  background: var(--tape-inset);
  border: 1px solid var(--wire);
  border-radius: 10px;
  color: var(--signal-ink);
  font-size: var(--type-body);
  padding: 0.65rem 0.9rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ticker-search input:focus {
  outline: 2px solid var(--wire-focus);
  outline-offset: 1px;
}

.ticker-search button {
  background: var(--profit-muted);
  border: 1px solid var(--wire);
  border-radius: 10px;
  color: var(--signal-ink);
  font-size: var(--type-body);
  padding: 0.65rem 1.3rem;
  cursor: pointer;
  white-space: nowrap;
}

.ticker-search button:hover { filter: brightness(1.2); }

.opinion-card {
  border: 1px solid var(--wire);
  border-radius: var(--radius-panel);
  background: var(--terminal-raised);
  padding: 20px;
}

.opinion-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.9rem;
  margin-bottom: 0.9rem;
}

.opinion-title-block h2 { margin: 4px 0 0; font-size: var(--type-key); }
.opinion-window { color: var(--signal-tertiary); }
.opinion-bloggers { display: inline-flex; flex-wrap: wrap; gap: 0.4rem; }

.stance-chip {
  display: inline-block;
  border-radius: var(--radius-control);
  padding: 3px 6px;
  font-size: var(--type-meta);
  font-weight: 700;
  border: 1px solid var(--wire);
  color: var(--signal-secondary);
}

.stance-chip.stance-bullish { color: var(--profit); background: rgba(84, 224, 139, 0.10); }
.stance-chip.stance-bearish { color: var(--risk); background: rgba(239, 120, 111, 0.10); }

.opinion-summary {
  margin: 0;
  line-height: 1.95;
  font-size: var(--type-body);
}

.opinion-meta {
  margin: 0.7rem 0 0;
  color: var(--signal-muted);
  font-size: var(--type-meta);
}

.landing-section h2 { margin: 0 0 0.7rem; }
.landing-section { display: grid; gap: 1rem; }

.chip-row {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.hot-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
  border: 1px solid var(--wire);
  border-radius: 999px;
  padding: 0.25rem 0.85rem;
  background: var(--tape-surface);
  color: var(--signal-ink);
  text-decoration: none;
  font-weight: 600;
}

.hot-chip:hover { border-color: var(--wire-focus); }
.hot-chip.stance-bullish { color: var(--profit); }
.hot-chip.stance-bearish { color: var(--risk); }

.hot-meta {
  color: var(--signal-muted);
  font-size: var(--type-meta);
  font-weight: 400;
}

.signal-text {
  flex: 1 1 auto;
  color: var(--signal-ink);
  line-height: 1.6;
}

.signal-src {
  color: var(--signal-muted);
  text-decoration: none;
  font-size: var(--type-body);
  white-space: nowrap;
}

.signal-src:hover { color: var(--wire-focus); }

.back-row { margin: 0; }

.back-link {
  color: var(--signal-tertiary);
  text-decoration: none;
  font-size: var(--type-body);
}

.back-link:hover { color: var(--signal-ink); }

.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
}

/* Per-blogger digest blocks: one card each, instead of one wall of prose. */
.opinion-blogger-list {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.opinion-blogger {
  border-left: 3px solid var(--wire);
  background: var(--tape-inset);
  border-radius: 0 8px 8px 0;
  padding: 12px 14px;
}

.opinion-blogger.stance-bullish { border-left-color: var(--profit); }
.opinion-blogger.stance-bearish { border-left-color: var(--risk); }
.opinion-blogger.stance-neutral { border-left-color: var(--caution); }

.opinion-blogger-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 6px;
}

.opinion-blogger-head strong {
  color: var(--signal-ink);
  font-size: var(--type-body);
  font-weight: 650;
}

.opinion-blogger-head em {
  color: var(--signal-tertiary);
  font-style: normal;
  font: 500 var(--type-meta)/1 "Ubuntu Mono", monospace;
}

.opinion-blogger p {
  margin: 0;
  color: var(--signal-secondary);
  font-size: var(--type-body);
  line-height: 1.75;
}

@media (max-width: 600px) {
  .ticker-main { gap: 24px; padding-block: 24px 48px; }
  .ticker-main,
  .ticker-main > * { min-width: 0; }
  .ticker-main .feed-grid { grid-template-columns: minmax(0, 1fr); }
  .ticker-hero { align-items: stretch; flex-direction: column; padding: 20px; }
  .ticker-hero-actions { width: 100%; }
  .ticker-hero-actions a { flex: 1 1 0; }
}
