/* Signals Daily Intelligence — Dark Theme
   Colors from specs/style-guide.md
   Background: #1a1a2e (Pine Script HEADER_BG)
   Cards: #16213e (Pine Script ROW_BG)
   Text: #e0e0e0 (TEXT_PRIMARY)
   Grid/borders: #2a2a2a (GRID_COLOR)
   Status: green #2ecc71, yellow #f39c12, orange #e67e22, red #e74c3c
*/

/* ── Reset & Base ─────────────────────────────────────────────── */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
  background-color: #1a1a2e;
  color: #e0e0e0;
  line-height: 1.6;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

a {
  color: #42a5f5;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* ── Header & Navigation ─────────────────────────────────────── */

.site-header {
  background-color: #0f1729;
  border-bottom: 1px solid #2a2a2a;
  position: sticky;
  top: 0;
  z-index: 100;
}

.nav-bar {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0.75rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav-logo {
  font-size: 1.125rem;
  font-weight: 700;
  color: #e0e0e0;
  letter-spacing: 0.02em;
}

.nav-logo:hover {
  color: #42a5f5;
  text-decoration: none;
}

.nav-links {
  display: flex;
  gap: 1.5rem;
}

.nav-links a {
  color: #888888;
  font-size: 0.875rem;
}

.nav-links a:hover {
  color: #e0e0e0;
  text-decoration: none;
}

/* ── Main Content ─────────────────────────────────────────────── */

.content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
  flex: 1;
}

/* Wide content for reports with wide tables */
.content:has(.report-wide) {
  max-width: 1400px;
}

.page-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #e0e0e0;
  margin-bottom: 1.5rem;
}

/* ── Breadcrumb ───────────────────────────────────────────────── */

.breadcrumb {
  font-size: 0.875rem;
  color: #888888;
  margin-bottom: 1rem;
}

.breadcrumb a {
  color: #888888;
}

.breadcrumb a:hover {
  color: #42a5f5;
}

/* ── Day Navigation ───────────────────────────────────────────── */

.day-nav {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
}

.day-nav a {
  color: #42a5f5;
}

.day-nav .disabled {
  color: #2a2a2a;
}

/* ── Status Cards (Dashboard) ─────────────────────────────────── */

.status-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}

.status-card {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  border-left: 4px solid #2a2a2a;
}

.status-card .card-header {
  font-size: 0.875rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
}

.status-card .card-level {
  font-size: 1.5rem;
  font-weight: 700;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  margin-bottom: 0.25rem;
}

.status-card .card-description {
  font-size: 0.8125rem;
  color: #888888;
  line-height: 1.4;
  margin-bottom: 0.75rem;
}

.status-card .card-metric {
  font-size: 0.875rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

/* Status card border + text colors by warning level */
.status-card.status-normal {
  border-left-color: #2ecc71;
}
.status-card.status-normal .card-level {
  color: #2ecc71;
}

.status-card.status-elevated {
  border-left-color: #f39c12;
}
.status-card.status-elevated .card-level {
  color: #f39c12;
}

.status-card.status-high {
  border-left-color: #e67e22;
}
.status-card.status-high .card-level {
  color: #e67e22;
}

.status-card.status-critical {
  border-left-color: #e74c3c;
}
.status-card.status-critical .card-level {
  color: #e74c3c;
}

.status-card.status-info {
  border-left-color: #42a5f5;
}
.status-card.status-info .card-level {
  color: #42a5f5;
}

/* ── Attention Callout ────────────────────────────────────────── */

.attention-callout {
  background-color: #16213e;
  border: 1px solid #e67e22;
  border-radius: 8px;
  padding: 1.25rem;
  margin-bottom: 2rem;
}

.attention-callout h2 {
  font-size: 1rem;
  color: #e67e22;
  margin-bottom: 0.75rem;
}

.attention-item {
  padding: 0.5rem 0;
  border-bottom: 1px solid #2a2a2a;
}

.attention-item:last-child {
  border-bottom: none;
}

.findings-bullets {
  margin: 0.5rem 0 0.25rem 1.5rem;
  padding: 0;
  list-style-type: disc;
}

.findings-bullets li {
  font-size: 0.875rem;
  color: #e0e0e0;
  line-height: 1.5;
  margin-bottom: 0.25rem;
}

.findings-bullets li:last-child {
  margin-bottom: 0;
}

/* ── Dashboard Tiles (3-column grid) ─────────────────────────── */

.dashboard-tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}

.dashboard-tile {
  display: block;
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  border-left: 4px solid #2a2a2a;
  transition: background-color 0.15s ease;
  color: #e0e0e0;
}

a.dashboard-tile {
  text-decoration: none;
}

a.dashboard-tile:hover {
  background-color: #1b2a4e;
  text-decoration: none;
}

.dashboard-tile.tile-no-data {
  opacity: 0.5;
}

/* Tile border colors by warning level */
.dashboard-tile.status-normal {
  border-left-color: #2ecc71;
}
.dashboard-tile.status-elevated {
  border-left-color: #f39c12;
}
.dashboard-tile.status-high {
  border-left-color: #e67e22;
}
.dashboard-tile.status-critical {
  border-left-color: #e74c3c;
}
.dashboard-tile.status-info {
  border-left-color: #42a5f5;
}

.dashboard-tile .tile-header {
  font-size: 1.125rem;
  font-weight: 600;
  color: #e0e0e0;
  margin-bottom: 0.25rem;
}

.dashboard-tile .tile-description {
  font-size: 0.8125rem;
  color: #888888;
  line-height: 1.4;
  margin-bottom: 0.75rem;
}

.dashboard-tile .tile-metric {
  font-size: 0.875rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.dashboard-tile .tile-findings {
  margin: 0.5rem 0 0.5rem 1.5rem;
  padding: 0;
  list-style-type: disc;
}

.dashboard-tile .tile-findings li {
  font-size: 0.875rem;
  color: #e0e0e0;
  line-height: 1.5;
  margin-bottom: 0.25rem;
}

.dashboard-tile .tile-findings li:last-child {
  margin-bottom: 0;
}

.dashboard-tile .tile-updated {
  font-size: 0.75rem;
  color: #888888;
  margin-top: 0.75rem;
}

.dashboard-tile .tile-updated-none {
  font-style: italic;
}

/* ── Badges ───────────────────────────────────────────────────── */

.badge {
  display: inline-block;
  padding: 0.15em 0.5em;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.badge-normal {
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}

.badge-elevated {
  background-color: rgba(243, 156, 18, 0.15);
  color: #f39c12;
}

.badge-high {
  background-color: rgba(230, 126, 34, 0.15);
  color: #e67e22;
}

.badge-critical {
  background-color: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}

.badge-info {
  background-color: rgba(66, 165, 245, 0.15);
  color: #42a5f5;
}

/* ── History Table ────────────────────────────────────────────── */

.history-section {
  margin-top: 1rem;
}

.history-section h2 {
  font-size: 1.125rem;
  color: #e0e0e0;
  margin-bottom: 1rem;
}

.table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.history-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.history-table th {
  background-color: #0f1729;
  color: #888888;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  padding: 0.75rem 1rem;
  text-align: left;
  border-bottom: 1px solid #2a2a2a;
  white-space: nowrap;
}

.history-table td {
  padding: 0.625rem 1rem;
  border-bottom: 1px solid #2a2a2a;
  vertical-align: middle;
}

.history-table tbody tr:hover {
  background-color: rgba(22, 33, 62, 0.5);
}

.history-table td a {
  color: #42a5f5;
  font-weight: 600;
  white-space: nowrap;
}

.metric-small {
  display: block;
  font-size: 0.75rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  margin-top: 0.15rem;
}

.no-data {
  color: #2a2a2a;
}

/* ── Report Cards (Daily Digest) ──────────────────────────────── */

.report-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.report-card {
  display: block;
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  border-left: 4px solid #2a2a2a;
  transition: background-color 0.15s ease;
}

.report-card:hover {
  background-color: #1b2a4e;
  text-decoration: none;
}

.report-card .card-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: #e0e0e0;
  margin-bottom: 0.5rem;
}

.report-card .card-metric {
  font-size: 0.875rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  margin-bottom: 0.5rem;
}

.report-card .card-headline {
  font-size: 0.875rem;
  color: #888888;
  line-height: 1.5;
}

/* Report card border colors */
.report-card.status-normal {
  border-left-color: #2ecc71;
}
.report-card.status-elevated {
  border-left-color: #f39c12;
}
.report-card.status-high {
  border-left-color: #e67e22;
}
.report-card.status-critical {
  border-left-color: #e74c3c;
}
.report-card.status-info {
  border-left-color: #42a5f5;
}

/* ── Report Page ──────────────────────────────────────────────── */

.report-page {
  max-width: 900px;
}

/* Setup screener needs full width for wide table */
.report-page.report-wide {
  max-width: 100%;
}

.report-header {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.5rem;
  border-left: 4px solid #2a2a2a;
  margin-bottom: 2rem;
}

.report-header h1 {
  font-size: 1.5rem;
  margin-bottom: 0.75rem;
}

.report-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.report-date {
  font-size: 0.875rem;
  color: #888888;
}

.report-metric {
  font-size: 0.875rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

/* Report header border colors */
.report-header.status-normal {
  border-left-color: #2ecc71;
}
.report-header.status-elevated {
  border-left-color: #f39c12;
}
.report-header.status-high {
  border-left-color: #e67e22;
}
.report-header.status-critical {
  border-left-color: #e74c3c;
}
.report-header.status-info {
  border-left-color: #42a5f5;
}

/* ── Quality Warning Banner ──────────────────────────────────── */

.quality-warning {
  background-color: rgba(254, 231, 92, 0.12);
  border: 1px solid #FEE75C;
  border-radius: 8px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  color: #FEE75C;
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1.5;
}

.quality-warning .quality-warning-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.25rem;
}

.quality-warning .quality-warning-detail {
  font-weight: 400;
  color: #e0e0e0;
  font-size: 0.8125rem;
}

/* ── Report Body (rendered from txt) ──────────────────────────── */

.report-body h2 {
  font-size: 1.25rem;
  color: #e0e0e0;
  margin: 1.5rem 0 0.75rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid #2a2a2a;
}

.report-body h3 {
  font-size: 1rem;
  color: #e0e0e0;
  margin: 1.25rem 0 0.5rem;
}

.report-body p {
  margin-bottom: 0.75rem;
}

.report-body strong {
  color: #e0e0e0;
}

.report-body blockquote {
  border-left: 3px solid #42a5f5;
  padding: 0.5rem 1rem;
  margin: 0.75rem 0;
  background-color: rgba(66, 165, 245, 0.08);
  color: #888888;
  font-style: italic;
}

.report-body ul, .report-body ol {
  margin: 0.5rem 0 0.75rem 1.5rem;
}

.report-body li {
  margin-bottom: 0.25rem;
}

.report-body pre {
  background-color: #0f0f0f;
  border: 1px solid #2a2a2a;
  border-radius: 4px;
  padding: 1rem;
  overflow-x: auto;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.8125rem;
  line-height: 1.5;
  margin: 0.75rem 0;
}

.report-body img {
  max-width: 720px;
  width: 100%;
  height: auto;
  border-radius: 4px;
  border: 1px solid #2a2a2a;
  display: block;
  margin: 1rem 0;
}

.report-body code {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.875em;
  background-color: rgba(42, 42, 42, 0.5);
  padding: 0.1em 0.3em;
  border-radius: 3px;
}

.report-body pre code {
  background: none;
  padding: 0;
}

.report-body hr {
  border: none;
  border-top: 1px solid #2a2a2a;
  margin: 1.5rem 0;
}

/* ── Credit Stress Report ─────────────────────────────────────── */

.cs-callout {
  display: flex;
  gap: 0.75rem;
  border-radius: 8px;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  font-size: 0.875rem;
  line-height: 1.5;
}

.cs-callout-icon {
  font-size: 1.25rem;
  flex-shrink: 0;
  line-height: 1.4;
}

.cs-callout-content p {
  margin: 0;
}

.cs-callout-info {
  background-color: rgba(66, 165, 245, 0.1);
  border: 1px solid rgba(66, 165, 245, 0.3);
  color: #64b5f6;
}

.cs-callout-info .cs-callout-icon {
  color: #42a5f5;
}

.cs-callout-action {
  background-color: rgba(230, 126, 34, 0.1);
  border: 1px solid rgba(230, 126, 34, 0.3);
  color: #e0e0e0;
}

.cs-callout-action .cs-callout-icon {
  color: #e67e22;
}

/* Sub-scores */
.cs-subscores {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.cs-subscore {
  display: grid;
  grid-template-columns: 140px 1fr 60px;
  align-items: center;
  gap: 0.75rem;
}

.cs-subscore-label {
  font-size: 0.875rem;
  color: #888888;
  font-weight: 500;
}

.cs-subscore-bar-track {
  height: 8px;
  background-color: #0f1729;
  border-radius: 4px;
  overflow: hidden;
}

.cs-subscore-bar {
  height: 100%;
  border-radius: 4px;
  transition: width 0.3s ease;
}

.cs-bar-normal {
  background-color: #2ecc71;
}

.cs-bar-elevated {
  background-color: #f39c12;
}

.cs-bar-high {
  background: linear-gradient(90deg, #e67e22, #e74c3c);
}

.cs-bar-na {
  background-color: #2a2a2a;
}

.cs-subscore-value {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.875rem;
  font-weight: 600;
  text-align: right;
  color: #e0e0e0;
}

/* Divergence alert */
.cs-divergence {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 1rem;
  border-radius: 6px;
  margin-bottom: 1.5rem;
  font-size: 0.8125rem;
  background-color: rgba(42, 42, 42, 0.3);
  color: #888888;
}

.cs-divergence-active {
  background-color: rgba(243, 156, 18, 0.1);
  border: 1px solid rgba(243, 156, 18, 0.25);
  color: #e0e0e0;
}

.cs-divergence-badge {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.2rem 0.5rem;
  border-radius: 3px;
  background-color: #f39c12;
  color: #0f1729;
  white-space: nowrap;
}

.cs-divergence-detail {
  color: #b0b0b0;
}

/* Warning scale */
.cs-scale {
  position: relative;
  margin: 1.5rem 0 2rem;
  padding-bottom: 1.5rem;
}

.cs-scale-bar {
  display: flex;
  height: 10px;
  border-radius: 5px;
  overflow: hidden;
}

.cs-scale-seg {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.cs-scale-seg span {
  position: absolute;
  top: 14px;
  font-size: 0.625rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #888888;
  white-space: nowrap;
}

.cs-seg-normal {
  background-color: #2ecc71;
}

.cs-seg-elevated {
  background-color: #f39c12;
}

.cs-seg-high {
  background-color: #e67e22;
}

.cs-seg-critical {
  background-color: #e74c3c;
}

.cs-scale-pointer {
  position: absolute;
  top: -6px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.cs-scale-pointer::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid #e0e0e0;
}

.cs-scale-pointer-label {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.75rem;
  font-weight: 700;
  color: #e0e0e0;
  margin-top: -22px;
  background-color: #16213e;
  padding: 0.125rem 0.375rem;
  border-radius: 3px;
  border: 1px solid #2a2a2a;
}

/* CCS section */
.cs-ccs-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.cs-ccs-score {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 1.5rem;
  font-weight: 700;
  color: #e0e0e0;
}

.cs-ccs-desc {
  font-size: 0.8125rem;
  color: #888888;
  line-height: 1.5;
  margin-bottom: 1rem;
}

/* CCS indicators */
.cs-indicators {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.cs-indicator {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  border-left: 3px solid #2a2a2a;
  background-color: #16213e;
}

.cs-ind-icon {
  font-size: 1rem;
  flex-shrink: 0;
  line-height: 1.4;
}

.cs-ind-triggered {
  border-left-color: #e74c3c;
}

.cs-ind-triggered .cs-ind-icon {
  color: #e74c3c;
}

.cs-ind-clear {
  border-left-color: #2ecc71;
}

.cs-ind-clear .cs-ind-icon {
  color: #2ecc71;
}

.cs-ind-name {
  font-size: 0.875rem;
  font-weight: 600;
  color: #e0e0e0;
  margin-bottom: 0.25rem;
}

.cs-ind-desc {
  font-size: 0.8125rem;
  color: #888888;
  line-height: 1.4;
}

.cs-ind-status {
  font-size: 0.8125rem;
  color: #888888;
  margin-top: 0.25rem;
  font-style: italic;
}

.cs-ind-status-fired {
  color: #e74c3c;
  font-weight: 500;
  font-style: normal;
}

/* Timestamp */
.cs-timestamp {
  font-size: 0.75rem;
  color: #78909c;
  margin-bottom: 1.5rem;
}

/* Context cards (SLOOS, Private Credit) */
.cs-context-card {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
  border-left: 3px solid #2a2a2a;
}

.cs-context-card h3 {
  font-size: 0.8125rem;
  color: #42a5f5;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.75rem;
}

.cs-context-data {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.8125rem;
  color: #e0e0e0;
  line-height: 1.6;
}

.cs-context-row {
  padding: 0.125rem 0;
}

.cs-context-note {
  font-size: 0.75rem;
  color: #888888;
  margin-top: 0.75rem;
  font-style: italic;
  line-height: 1.4;
}

/* ── Charts ───────────────────────────────────────────────────── */

.report-charts {
  margin-top: 2rem;
}

.report-charts h2 {
  font-size: 1.125rem;
  margin-bottom: 1rem;
}

.chart-figure {
  margin: 1rem 0;
}

.chart-figure img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  border: 1px solid #2a2a2a;
}

/* ── Deep Dive Header ─────────────────────────────────────────── */

.dd-header {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.5rem;
  border-left: 4px solid #2a2a2a;
  margin-bottom: 1.5rem;
}

.dd-header.conviction-1 { border-left-color: #e74c3c; }
.dd-header.conviction-2 { border-left-color: #e67e22; }
.dd-header.conviction-3 { border-left-color: #f39c12; }
.dd-header.conviction-4 { border-left-color: #2ecc71; }
.dd-header.conviction-5 { border-left-color: #2ecc71; }

.dd-header-top {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}

.dd-header-top h1 {
  font-size: 1.5rem;
  margin: 0;
}

.dd-conviction-badge {
  display: inline-block;
  padding: 0.15em 0.6em;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.dd-conviction-badge.conviction-1 {
  background-color: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}
.dd-conviction-badge.conviction-2 {
  background-color: rgba(230, 126, 34, 0.15);
  color: #e67e22;
}
.dd-conviction-badge.conviction-3 {
  background-color: rgba(243, 156, 18, 0.15);
  color: #f39c12;
}
.dd-conviction-badge.conviction-4 {
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}
.dd-conviction-badge.conviction-5 {
  background-color: rgba(46, 204, 113, 0.2);
  color: #2ecc71;
}

.dd-header-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.dd-date {
  font-size: 0.875rem;
  color: #888888;
}

.dd-asset-class {
  font-size: 0.75rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.dd-scores {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.75rem;
}

.dd-score-item {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.dd-score-label {
  font-size: 0.75rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.dd-score-value {
  font-size: 0.875rem;
  color: #e0e0e0;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.dd-score-value.dd-na {
  color: #888888;
}

/* ── Deep Dive Sub-Navigation ─────────────────────────────────── */

.dd-sub-nav {
  display: flex;
  gap: 1rem;
  margin-bottom: 2rem;
}

.dd-sub-link {
  display: inline-block;
  padding: 0.5rem 1rem;
  background-color: #16213e;
  border: 1px solid #2a2a2a;
  border-radius: 4px;
  font-size: 0.875rem;
  color: #42a5f5;
}

.dd-sub-link:hover {
  background-color: #1b2a4e;
  text-decoration: none;
}

.dd-back-link {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid #2a2a2a;
}

.dd-back-link a {
  font-size: 0.875rem;
  color: #42a5f5;
}

/* ── Deep Dive Index Table ────────────────────────────────────── */

.dd-index-table .dd-bias-bullish { color: #2ecc71; }
.dd-index-table .dd-bias-neutral { color: #f39c12; }
.dd-index-table .dd-bias-bearish { color: #e74c3c; }

.dd-empty {
  color: #888888;
  font-style: italic;
}

/* ── Research Header ─────────────────────────────────────────── */

.research-header {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.5rem;
  border-left: 4px solid #42a5f5;
  margin-bottom: 2rem;
}

.research-header h1 {
  font-size: 1.5rem;
  margin: 0 0 0.75rem 0;
}

.research-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.research-date {
  font-size: 0.875rem;
  color: #888888;
}

.research-author {
  font-size: 0.875rem;
  color: #888888;
}

/* ── Deep Dive Report Body Tables ─────────────────────────────── */

.report-body table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  margin: 0.75rem 0;
}

.report-body th {
  background-color: #0f1729;
  color: #888888;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  padding: 0.625rem 0.75rem;
  text-align: left;
  border-bottom: 1px solid #2a2a2a;
}

.report-body td {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid #2a2a2a;
  vertical-align: top;
}

.report-body tbody tr:hover {
  background-color: rgba(22, 33, 62, 0.5);
}

/* ── Setup Screener Table ─────────────────────────────────────── */

.setup-definitions {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  border-left: 4px solid #42a5f5;
}

.setup-definitions h3 {
  font-size: 0.8125rem;
  color: #42a5f5;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.75rem;
}

.setup-definitions dl {
  margin: 0;
}

.setup-definitions dt {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #e0e0e0;
  margin-top: 0.625rem;
}

.setup-definitions dt:first-child {
  margin-top: 0;
}

.setup-definitions dd {
  font-size: 0.8125rem;
  color: #888888;
  margin: 0.15rem 0 0 0;
  line-height: 1.5;
}

.setup-definitions .bucket-list-detail {
  list-style: none;
  padding: 0;
  margin: 0.375rem 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.setup-definitions .bucket-list-detail li {
  font-size: 0.8125rem;
  color: #888888;
  line-height: 1.5;
}

.setup-definitions .bucket-list-detail li strong {
  color: #e0e0e0;
}

.setup-table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.setup-table {
  width: 100%;
  min-width: 960px;
  border-collapse: collapse;
  font-size: 0.8125rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
  table-layout: fixed;
}

.setup-table th {
  background-color: #0f1729;
  color: #888888;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.6875rem;
  letter-spacing: 0.05em;
  padding: 0.625rem 0.5rem;
  text-align: left;
  border-bottom: 1px solid #2a2a2a;
  white-space: nowrap;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
}

.setup-table td {
  padding: 0.5rem 0.5rem;
  border-bottom: 1px solid #2a2a2a;
  vertical-align: middle;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
}

/* Column widths — compact left cols, generous rationale */
.setup-table .col-ticker    { width: 70px; }
.setup-table .col-score     { width: 48px; }
.setup-table .col-bucket    { width: 40px; text-align: center; }
.setup-table .col-price     { width: 68px; }
.setup-table .col-ema      { width: 60px; }
.setup-table .col-spark     { width: 68px; }
.setup-table .col-rationale { width: auto; min-width: 260px; }
.setup-table .col-watch     { width: 160px; }

.setup-table .col-ticker {
  font-weight: 600;
  white-space: nowrap;
}

th.col-score {
  text-align: center;
}

td.col-score {
  font-weight: 700;
  font-size: 0.875rem;
  white-space: nowrap;
  text-align: center;
}

/* Score color = confidence level (soft tints, not stoplight) */
.setup-table .score-high {
  color: #66bb6a;
}
.setup-table .score-medium {
  color: #ffa726;
}
.setup-table .score-low {
  color: #888888;
}

/* Definition legend uses same colors */
.score-high   { color: #66bb6a; }
.score-medium { color: #ffa726; }
.score-low    { color: #888888; }

.setup-table td.col-rationale {
  font-size: 0.8125rem;
  color: #b0b0b0;
  line-height: 1.4;
  white-space: normal;
  word-wrap: break-word;
}

.setup-table td.col-watch {
  font-size: 0.8125rem;
  color: #888888;
  line-height: 1.4;
}

.setup-table td.col-price {
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.setup-table .col-price {
  text-align: right;
}

.setup-table td.col-ema {
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: #e0e0e0;
}

.setup-table .col-ema {
  text-align: right;
}

.setup-table .col-spark {
  padding: 2px 4px;
  vertical-align: middle;
}

.setup-table .col-spark .sparkline {
  display: block;
}

/* EMA color classes (kept for definition legend if needed) */

/* Bucket row tints (0.08 alpha per spec Section 5.5) */
.setup-table tr.bucket-1 { background-color: rgba(239, 83, 80, 0.08); }
.setup-table tr.bucket-2 { background-color: rgba(255, 167, 38, 0.08); }
.setup-table tr.bucket-3 { background-color: rgba(66, 165, 245, 0.08); }
.setup-table tr.bucket-4 { background-color: rgba(102, 187, 106, 0.08); }
.setup-table tr.bucket-5 { background-color: rgba(144, 238, 144, 0.08); }

.setup-table tbody tr:hover {
  filter: brightness(1.15);
}

/* Bucket badge (colored pill in Bucket column) */
.bucket-badge {
  display: inline-block;
  padding: 0.15em 0.5em;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.bucket-badge-1 { background-color: rgba(239, 83, 80, 0.2); color: #ef5350; }
.bucket-badge-2 { background-color: rgba(255, 167, 38, 0.2); color: #ffa726; }
.bucket-badge-3 { background-color: rgba(66, 165, 245, 0.2); color: #42a5f5; }
.bucket-badge-4 { background-color: rgba(102, 187, 106, 0.2); color: #66bb6a; }
.bucket-badge-5 { background-color: rgba(144, 238, 144, 0.2); color: #90EE90; }

/* Score change indicators (kept for text report compatibility) */
.change-up { color: #2ecc71; }
.change-down { color: #ef5350; }
.change-flat { color: #888888; }
.change-new { color: #888888; font-style: italic; }

/* Setup screener summary line */
.setup-summary {
  color: #888888;
  font-size: 0.875rem;
  margin-bottom: 1rem;
}

/* Setup screener footer notes */
.setup-footer {
  margin-top: 1rem;
  font-size: 0.8125rem;
  color: #888888;
}

.setup-footer p {
  margin-bottom: 0.25rem;
}

/* ── Models Catalog ──────────────────────────────────────────── */

.catalog-subtitle {
  font-size: 0.875rem;
  color: #888888;
  margin-bottom: 2rem;
}

.catalog-category {
  margin-bottom: 2rem;
}

.catalog-category-header {
  font-size: 1.125rem;
  font-weight: 600;
  color: #e0e0e0;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #2a2a2a;
  margin-bottom: 1rem;
}

.catalog-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1rem;
}

.catalog-card {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  border-left: 4px solid #2a2a2a;
}

.catalog-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.catalog-card-name {
  font-size: 1rem;
  font-weight: 600;
  color: #e0e0e0;
}

.catalog-card-name a {
  color: #42a5f5;
}

.catalog-card-description {
  font-size: 0.8125rem;
  color: #888888;
  line-height: 1.5;
  margin-bottom: 0.75rem;
}

.catalog-card-footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.catalog-dispatch-badge {
  display: inline-block;
  padding: 0.15em 0.5em;
  border-radius: 4px;
  font-size: 0.6875rem;
  font-weight: 700;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background-color: rgba(66, 165, 245, 0.15);
  color: #42a5f5;
}

.catalog-make-target {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.75rem;
  color: #888888;
  background-color: rgba(42, 42, 42, 0.5);
  padding: 0.15em 0.4em;
  border-radius: 3px;
}

/* Status badge colors for catalog */
.badge-active {
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}

.badge-development {
  background-color: rgba(243, 156, 18, 0.15);
  color: #f39c12;
}

.badge-planned {
  background-color: rgba(136, 136, 136, 0.15);
  color: #888888;
}

/* ── Brief (Synthesis Decision Surface) ───────────────────────── */

.brief-section {
  margin-bottom: 2rem;
}

.brief-section-title {
  font-size: 1.25rem;
  color: #e0e0e0;
  margin-bottom: 1rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid #2a2a2a;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.brief-investigate-card {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  border-left: 4px solid #2a2a2a;
  margin-bottom: 1rem;
}

.brief-investigate-card.status-bullish {
  border-left-color: #2ecc71;
}

.brief-investigate-card.status-bearish {
  border-left-color: #e74c3c;
}

.brief-investigate-card.status-mixed {
  border-left-color: #f39c12;
}

.brief-card-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}

.brief-ticker {
  font-size: 1.25rem;
  font-weight: 700;
  color: #e0e0e0;
}

.brief-agreement {
  font-size: 0.8125rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.brief-card-scores {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.brief-signal-list {
  margin-bottom: 1rem;
}

.brief-signal-list h4 {
  font-size: 0.8125rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.5rem;
}

.brief-signal-list ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.brief-signal-list li {
  font-size: 0.8125rem;
  color: #e0e0e0;
  padding: 0.375rem 0;
  border-bottom: 1px solid rgba(42, 42, 42, 0.5);
  line-height: 1.5;
}

.brief-signal-list li:last-child {
  border-bottom: none;
}

.brief-strength {
  font-size: 0.75rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.brief-age {
  font-size: 0.75rem;
  color: #888888;
}

.brief-coverage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.brief-coverage h4 {
  font-size: 0.8125rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.375rem;
}

.brief-coverage ul {
  margin: 0;
  padding: 0 0 0 1.25rem;
  list-style-type: disc;
}

.brief-coverage li {
  font-size: 0.8125rem;
  color: #e0e0e0;
  margin-bottom: 0.25rem;
}

.brief-conflicts h4 {
  font-size: 0.8125rem;
  color: #e74c3c;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.375rem;
}

.brief-conflicts ul {
  margin: 0;
  padding: 0 0 0 1.25rem;
  list-style-type: disc;
}

.brief-conflicts li {
  font-size: 0.8125rem;
  color: #e0e0e0;
  margin-bottom: 0.25rem;
}

.brief-regime-notice {
  background-color: rgba(231, 76, 60, 0.08);
  border: 1px solid rgba(231, 76, 60, 0.3);
  border-radius: 8px;
  padding: 1rem;
  margin-top: 1rem;
  font-size: 0.875rem;
  color: #e0e0e0;
}

.brief-regime-notice ul {
  margin: 0.5rem 0 0 1.25rem;
  padding: 0;
}

.brief-regime-notice li {
  margin-bottom: 0.25rem;
}

.brief-monitor-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.brief-monitor-table th {
  background-color: #0f1729;
  color: #888888;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  padding: 0.75rem 1rem;
  text-align: left;
  border-bottom: 1px solid #2a2a2a;
}

.brief-monitor-table td {
  padding: 0.625rem 1rem;
  border-bottom: 1px solid #2a2a2a;
  vertical-align: middle;
}

.brief-monitor-table tbody tr:hover {
  background-color: rgba(22, 33, 62, 0.5);
}

.brief-regime-panel {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.75rem;
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  border-left: 4px solid #42a5f5;
}

.brief-regime-item {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.brief-parked-list {
  margin: 0 0 0 1.5rem;
  padding: 0;
  list-style-type: disc;
}

.brief-parked-list li {
  font-size: 0.875rem;
  color: #e0e0e0;
  margin-bottom: 0.5rem;
  line-height: 1.5;
}

.brief-research-queue {
  margin: 0 0 0 1.5rem;
  padding: 0;
}

.brief-research-queue li {
  font-size: 0.875rem;
  color: #e0e0e0;
  margin-bottom: 0.5rem;
  line-height: 1.5;
}

.brief-empty {
  color: #888888;
  font-style: italic;
  font-size: 0.875rem;
}

/* Badge direction colors for Brief */
.badge-bullish {
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}

.badge-bearish {
  background-color: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}

.badge-mixed {
  background-color: rgba(243, 156, 18, 0.15);
  color: #f39c12;
}

/* Priority badges for research queue */
.badge-high {
  background-color: rgba(230, 126, 34, 0.15);
  color: #e67e22;
}

.badge-medium {
  background-color: rgba(66, 165, 245, 0.15);
  color: #42a5f5;
}

.badge-low {
  background-color: rgba(136, 136, 136, 0.15);
  color: #888888;
}

/* Brief summary card for daily digest */
.brief-summary-card {
  display: block;
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  border-left: 4px solid #42a5f5;
  margin-bottom: 1rem;
}

.brief-summary-card .card-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: #e0e0e0;
  margin-bottom: 0.5rem;
}

.brief-summary-card .card-metric {
  font-size: 0.875rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  margin-bottom: 0.5rem;
}

.brief-summary-card .card-link {
  font-size: 0.875rem;
  color: #42a5f5;
}

/* ── Crypto Cycle Report ─────────────────────────────────────── */

.cc-header {
  margin-bottom: 1.5rem;
}

.cc-header h1 {
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
}

.cc-header-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  color: #888888;
}

.cc-date {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.875rem;
}

.degraded-warning {
  background-color: rgba(230, 126, 34, 0.15);
  border: 1px solid #e67e22;
  border-radius: 6px;
  padding: 0.75rem 1rem;
  margin-bottom: 1.5rem;
  color: #e67e22;
  font-size: 0.875rem;
}

.cc-assets {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.cc-asset-card {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  border: 1px solid #2a2a2a;
}

.cc-asset-card h2 {
  font-size: 1.375rem;
  margin-bottom: 0.75rem;
}

.cc-asset-card h3 {
  font-size: 1rem;
  margin-top: 1.25rem;
  margin-bottom: 0.5rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.cc-phase-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}

.cc-phase-badge {
  display: inline-block;
  padding: 0.2em 0.6em;
  border-radius: 4px;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.phase-capitulation {
  background-color: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}

.phase-accumulation {
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}

.phase-neutral {
  background-color: rgba(243, 156, 18, 0.15);
  color: #f39c12;
}

.phase-late-bull {
  background-color: rgba(230, 126, 34, 0.15);
  color: #e67e22;
}

.phase-distribution {
  background-color: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}

.cc-score,
.cc-confidence {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.875rem;
  color: #888888;
}

.cc-component-table {
  margin-top: 0.5rem;
}

.cc-risk-bar-container {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 120px;
}

.cc-risk-bar {
  height: 8px;
  border-radius: 4px;
  min-width: 2px;
}

.cc-risk-low {
  background-color: #2ecc71;
}

.cc-risk-medium {
  background-color: #f39c12;
}

.cc-risk-high {
  background-color: #e67e22;
}

.cc-risk-extreme {
  background-color: #e74c3c;
}

.cc-risk-score-label {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.75rem;
  color: #888888;
  min-width: 1.5rem;
}

.cc-context-list {
  list-style: none;
  padding-left: 0;
}

.cc-context-list li {
  padding: 0.25rem 0;
  font-size: 0.875rem;
}

/* ── Crypto Cycle: ELI5 Enhancements ─────────────────────────── */

.cc-scale-legend {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
}

.cc-scale-legend h3 {
  font-size: 1rem;
  margin-bottom: 0.5rem;
  color: #e0e0e0;
}

.cc-scale-explainer {
  font-size: 0.875rem;
  color: #888888;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}

.cc-scale-bar {
  display: flex;
  border-radius: 4px;
  overflow: hidden;
  height: 36px;
}

.cc-scale-segment {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  line-height: 1.2;
  transition: opacity 0.2s;
}

.cc-scale-segment:hover {
  opacity: 0.85;
}

.cc-scale-label {
  font-weight: 600;
  color: #e0e0e0;
}

.cc-scale-range {
  color: rgba(224, 224, 224, 0.7);
  font-size: 0.65rem;
}

.cc-scale-capitulation {
  background-color: rgba(231, 76, 60, 0.35);
}

.cc-scale-accumulation {
  background-color: rgba(46, 204, 113, 0.25);
}

.cc-scale-neutral {
  background-color: rgba(243, 156, 18, 0.2);
}

.cc-scale-late-bull {
  background-color: rgba(230, 126, 34, 0.25);
}

.cc-scale-distribution {
  background-color: rgba(231, 76, 60, 0.2);
}

.cc-eli5-summary {
  background-color: rgba(100, 181, 246, 0.08);
  border-left: 3px solid #42a5f5;
  border-radius: 0 6px 6px 0;
  padding: 0.75rem 1rem;
  margin: 0.75rem 0 1rem 0;
}

.cc-eli5-summary p {
  font-size: 0.9rem;
  color: #e0e0e0;
  line-height: 1.6;
  margin: 0;
}

.cc-comp-eli5 {
  font-size: 0.75rem;
  color: #78909c;
  margin-top: 0.25rem;
  line-height: 1.4;
  font-style: italic;
}

.cc-interpretation {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  margin-top: 1.5rem;
}

.cc-interpretation h2 {
  font-size: 1.25rem;
  margin-bottom: 0.75rem;
  color: #e0e0e0;
}

.cc-interp-headline {
  font-size: 1rem;
  font-weight: 600;
  color: #ffa726;
  margin-bottom: 0.5rem;
}

.cc-interp-detail {
  font-size: 0.9rem;
  color: #888888;
  margin-bottom: 1rem;
}

.cc-interp-actions {
  list-style: none;
  padding-left: 0;
}

.cc-interp-actions li {
  font-size: 0.9rem;
  color: #e0e0e0;
  padding: 0.3rem 0 0.3rem 1.25rem;
  position: relative;
}

.cc-interp-actions li::before {
  content: "\2192";
  position: absolute;
  left: 0;
  color: #42a5f5;
}

.cc-stale-badge {
  display: inline-block;
  font-size: 0.7rem;
  background-color: rgba(255, 193, 7, 0.2);
  color: #ffa726;
  padding: 0.1rem 0.4rem;
  border-radius: 3px;
  margin-left: 0.5rem;
}

.cc-context-detail {
  font-size: 0.8rem;
  color: #78909c;
  margin-top: 0.25rem;
  line-height: 1.4;
}

@media (max-width: 768px) {
  .cc-scale-bar {
    flex-direction: column;
    height: auto;
  }

  .cc-scale-segment {
    padding: 0.35rem 0;
    flex-direction: row;
    gap: 0.5rem;
  }

  .cc-eli5-summary {
    padding: 0.5rem 0.75rem;
  }
}

/* ── Brief: Responsive (<=768px) ─────────────────────────────── */

@media (max-width: 768px) {
  .brief-coverage {
    grid-template-columns: 1fr;
  }

  .brief-card-scores {
    grid-template-columns: 1fr 1fr;
  }

  .brief-regime-panel {
    grid-template-columns: 1fr;
  }
}

/* ── Footer ───────────────────────────────────────────────────── */

.site-footer {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
  border-top: 1px solid #2a2a2a;
  text-align: center;
  font-size: 0.75rem;
  color: #888888;
}

/* ── Responsive: Setup Screener Mobile (<640px) ──────────────── */
/* Rationale and Watch For collapse into a sub-row below the
   compact main row (card-like layout).                          */

@media (max-width: 640px) {
  .setup-table {
    min-width: 0;
    table-layout: auto;
  }

  .setup-table thead .col-rationale-h,
  .setup-table thead .col-watch-h {
    display: none;
  }

  .setup-table td.col-rationale,
  .setup-table td.col-watch,
  .setup-table td.col-ema,
  .setup-table th.col-ema,
  .setup-table td.col-spark,
  .setup-table th.col-spark {
    display: none;
  }

  .setup-table .mobile-detail {
    display: block;
  }

  .setup-table td {
    padding: 0.5rem 0.5rem;
    font-size: 0.75rem;
  }

  .setup-table th {
    padding: 0.5rem 0.5rem;
    font-size: 0.625rem;
  }

  .bucket-badge {
    font-size: 0.6875rem;
    padding: 0.1em 0.4em;
  }
}

/* Sub-row for rationale/watch-for on mobile (hidden on desktop) */
.setup-table .mobile-detail {
  display: none;
  padding: 0 0.75rem 0.625rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #b0b0b0;
  border-bottom: 1px solid #2a2a2a;
}

.setup-table .mobile-detail strong {
  color: #888888;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* ── Responsive: Tablet (<=768px) ─────────────────────────────── */

@media (max-width: 768px) {
  .status-cards {
    grid-template-columns: 1fr;
  }

  .dashboard-tiles {
    grid-template-columns: 1fr;
  }

  .catalog-cards {
    grid-template-columns: 1fr;
  }

  .content {
    padding: 1.5rem 1rem;
  }

  .history-table {
    font-size: 0.8125rem;
  }

  .history-table th,
  .history-table td {
    padding: 0.5rem 0.625rem;
  }
}

/* ── Responsive: Mobile (<=480px) ─────────────────────────────── */

@media (max-width: 480px) {
  .nav-bar {
    padding: 0.5rem 1rem;
  }

  .nav-logo {
    font-size: 1rem;
  }

  .nav-links {
    gap: 1rem;
  }

  .nav-links a {
    font-size: 0.8125rem;
  }

  .content {
    padding: 1rem 0.75rem;
  }

  .page-title {
    font-size: 1.25rem;
  }

  .status-card {
    padding: 1rem;
  }

  .status-card .card-level {
    font-size: 1.25rem;
  }

  .dashboard-tile {
    padding: 1rem;
  }

  .report-header {
    padding: 1rem;
  }

  .report-header h1 {
    font-size: 1.25rem;
  }

  .report-meta {
    gap: 0.5rem;
  }

  .report-body pre {
    font-size: 0.75rem;
    padding: 0.75rem;
  }

  .report-card {
    padding: 1rem;
  }

  .report-card .card-header {
    font-size: 1rem;
    flex-wrap: wrap;
  }

  .badge {
    font-size: 0.6875rem;
  }

  .day-nav {
    font-size: 0.8125rem;
  }

  .history-table {
    font-size: 0.75rem;
  }

  .history-table th,
  .history-table td {
    padding: 0.375rem 0.5rem;
  }

  .metric-small {
    font-size: 0.6875rem;
  }
}

/* ── Help Links ──────────────────────────────────────────────── */

.help-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  border: 1px solid #424242;
  background-color: transparent;
  color: #888888;
  font-size: 0.625rem;
  font-weight: 600;
  text-decoration: none;
  margin-left: 0.25rem;
  vertical-align: middle;
  line-height: 1;
  flex-shrink: 0;
}

.help-link:hover {
  color: #42a5f5;
  border-color: #42a5f5;
  text-decoration: none;
}

/* Inside dd-score-label, keep inline flow */
.dd-score-label .help-link {
  vertical-align: baseline;
}

/* Inside pre blocks, help links need special handling */
pre .help-link {
  font-family: inherit;
}

/* ── Glossary Page ───────────────────────────────────────────── */

.glossary-page {
  max-width: 900px;
  margin: 0 auto;
}

.glossary-page h1 {
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
}

.glossary-intro {
  color: #888888;
  margin-bottom: 2rem;
  line-height: 1.6;
}

.glossary-toc {
  background-color: #16213e;
  border: 1px solid #2a2a2a;
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 2.5rem;
}

.glossary-toc h2 {
  font-size: 1rem;
  margin-bottom: 0.75rem;
  color: #e0e0e0;
}

.glossary-toc ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
}

.glossary-toc a {
  color: #42a5f5;
  font-size: 0.875rem;
}

.glossary-section {
  margin-bottom: 3rem;
}

.glossary-section > h2 {
  font-size: 1.25rem;
  color: #e0e0e0;
  border-bottom: 1px solid #2a2a2a;
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
}

.glossary-entry {
  background-color: #16213e;
  border: 1px solid #2a2a2a;
  border-radius: 6px;
  padding: 1.25rem;
  margin-bottom: 1rem;
}

.glossary-entry h3 {
  font-size: 1rem;
  color: #42a5f5;
  margin-bottom: 0.75rem;
}

.glossary-entry dt {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #e0e0e0;
  margin-top: 0.75rem;
  margin-bottom: 0.25rem;
}

.glossary-entry dt:first-of-type {
  margin-top: 0;
}

.glossary-entry dd {
  font-size: 0.8125rem;
  color: #b0b0b0;
  line-height: 1.5;
  margin-left: 0;
}

.glossary-entry code {
  background-color: #0f1729;
  padding: 0.1rem 0.35rem;
  border-radius: 3px;
  font-size: 0.75rem;
  color: #e0e0e0;
}

@media (max-width: 640px) {
  .glossary-toc ul {
    flex-direction: column;
    gap: 0.375rem;
  }

  .glossary-entry {
    padding: 1rem;
  }
}

/* ── Market Pulse Tile ───────────────────────────────────────── */

.pulse-tile {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  border-left: 5px solid #2a2a2a;
}

.pulse-tile.pulse-green { border-left-color: #2ecc71; }
.pulse-tile.pulse-yellow-green { border-left-color: #2ecc71; }
.pulse-tile.pulse-yellow { border-left-color: #f39c12; }
.pulse-tile.pulse-orange { border-left-color: #e67e22; }
.pulse-tile.pulse-red { border-left-color: #e74c3c; }

.pulse-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.pulse-title-group {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.pulse-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #e0e0e0;
  margin: 0;
}

.pulse-direction {
  font-size: 0.8125rem;
  color: #888888;
  font-style: italic;
}

.pulse-score-group {
  text-align: right;
}

.pulse-score {
  font-size: 1.5rem;
  font-weight: 700;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.pulse-score-green { color: #2ecc71; }
.pulse-score-yellow-green { color: #2ecc71; }
.pulse-score-yellow { color: #f39c12; }
.pulse-score-orange { color: #e67e22; }
.pulse-score-red { color: #e74c3c; }

.pulse-updated {
  display: block;
  font-size: 0.75rem;
  color: #888888;
  margin-top: 0.25rem;
}

/* Condition badge overrides for pulse */
.pulse-tile .badge-stable { background-color: rgba(46, 204, 113, 0.15); color: #2ecc71; }
.pulse-tile .badge-improving { background-color: rgba(46, 204, 113, 0.15); color: #2ecc71; }
.pulse-tile .badge-mixed { background-color: rgba(243, 156, 18, 0.15); color: #f39c12; }
.pulse-tile .badge-deteriorating { background-color: rgba(230, 126, 34, 0.15); color: #e67e22; }
.pulse-tile .badge-critical { background-color: rgba(231, 76, 60, 0.15); color: #e74c3c; }

/* Trends */
.pulse-trends {
  display: flex;
  gap: 1.5rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  align-items: center;
}

.pulse-trend {
  font-size: 0.875rem;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

/* For pulse: up = worse (orange/red), down = better (green) */
.pulse-trend-worse { color: #e67e22; }
.pulse-trend-better { color: #2ecc71; }
.pulse-trend-flat { color: #888888; }

.pulse-note {
  font-size: 0.75rem;
  color: #888888;
  font-style: italic;
}

/* Narrative */
.pulse-narrative {
  background-color: #1a1a2e;
  border-radius: 6px;
  padding: 1.25rem;
  margin-bottom: 1rem;
}

.pulse-headline,
.pulse-changes,
.pulse-sowhat {
  margin-bottom: 1rem;
}

.pulse-sowhat {
  margin-bottom: 0;
}

.pulse-narrative strong {
  font-size: 0.8125rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: block;
  margin-bottom: 0.375rem;
}

.pulse-narrative p {
  font-size: 0.9375rem;
  color: #e0e0e0;
  line-height: 1.6;
  margin: 0;
}

.pulse-narrative ul {
  margin: 0;
  padding-left: 1.25rem;
  list-style-type: disc;
}

.pulse-narrative li {
  font-size: 0.875rem;
  color: #e0e0e0;
  line-height: 1.5;
  margin-bottom: 0.25rem;
}

/* Expandable details */
.pulse-details {
  margin-top: 0.75rem;
}

.pulse-details summary {
  font-size: 0.875rem;
  color: #42a5f5;
  cursor: pointer;
  padding: 0.5rem 0;
}

.pulse-details summary:hover {
  color: #e0e0e0;
}

/* ── ELI5 (plain-language) explanations ─────────────────────────── */

.eli5-details {
  margin-top: 0.75rem;
  margin-bottom: 0.5rem;
}

.eli5-details summary {
  font-size: 0.875rem;
  color: #42a5f5;
  cursor: pointer;
  padding: 0.5rem 0;
}

.eli5-details summary:hover {
  color: #e0e0e0;
}

.eli5-content {
  padding: 0.75rem 1rem;
  background: rgba(66, 165, 245, 0.06);
  border-radius: 6px;
  margin-top: 0.25rem;
}

.eli5-content p {
  font-size: 0.875rem;
  color: #b0b0b0;
  line-height: 1.6;
  margin: 0;
}

.eli5-callout {
  border-left: 3px solid #42a5f5;
  padding-left: 1rem;
  background: rgba(66, 165, 245, 0.08);
}

.driver-eli5 {
  display: block;
  font-size: 0.8rem;
  color: #9e9e9e;
  margin-left: 1.5rem;
  margin-top: 0.15rem;
  margin-bottom: 0.5rem;
  font-style: italic;
}

.metric-eli5 {
  display: block;
  font-size: 0.75rem;
  color: #888;
  margin-left: 0.25rem;
  margin-top: 0.1rem;
  margin-bottom: 0.5rem;
}

@media (max-width: 768px) {
  .driver-eli5 {
    margin-left: 0.5rem;
  }
}

.pulse-drivers-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
  margin-top: 0.75rem;
}

.pulse-drivers-table th {
  background-color: #0f1729;
  color: #888888;
  text-align: left;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid #2a2a2a;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.6875rem;
  letter-spacing: 0.03em;
}

.pulse-drivers-table td {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid #2a2a2a;
  color: #e0e0e0;
}

.pulse-source-links {
  margin-top: 0.75rem;
  display: flex;
  gap: 1rem;
  font-size: 0.8125rem;
}

/* Compound conditions */
.pulse-compounds {
  margin-top: 0.75rem;
}

.pulse-compound {
  padding: 0.75rem;
  margin-bottom: 0.5rem;
  border-radius: 4px;
  background-color: #1a1a2e;
}

.pulse-compound .badge {
  margin-right: 0.5rem;
}

.pulse-compound p {
  font-size: 0.8125rem;
  color: #888888;
  margin: 0.375rem 0 0 0;
  line-height: 1.5;
}

.pulse-compound-critical { border-left: 3px solid #e74c3c; }
.pulse-compound-high { border-left: 3px solid #e67e22; }
.pulse-compound-medium { border-left: 3px solid #f39c12; }
.pulse-compound-info { border-left: 3px solid #42a5f5; }


/* ── Dashboard Banners ─────────────────────────────────────────── */

.banner {
  display: block;
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
  text-decoration: none;
  color: inherit;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

a.banner:hover {
  background-color: #1b2a4e;
  text-decoration: none;
}

.banner-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.banner-label {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #888888;
}

.banner-tags {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.banner-score-tag {
  display: inline-block;
  padding: 0.2em 0.6em;
  border-radius: 4px;
  font-size: 0.6875rem;
  font-weight: 600;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  letter-spacing: 0.02em;
}

.banner-score-tag.tag-high {
  background: rgba(243, 156, 18, 0.15);
  color: #f39c12;
  border: 1px solid rgba(243, 156, 18, 0.3);
}

.banner-score-tag.tag-critical {
  background: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
  border: 1px solid rgba(231, 76, 60, 0.3);
}

.banner-score-tag.tag-normal,
.banner-score-tag.tag-low {
  background: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
  border: 1px solid rgba(46, 204, 113, 0.3);
}

.banner-score-tag.tag-elevated {
  background: rgba(230, 126, 34, 0.15);
  color: #e67e22;
  border: 1px solid rgba(230, 126, 34, 0.3);
}

.banner-action {
  font-size: 0.875rem;
  color: #b0b0b0;
  line-height: 1.6;
  margin-top: 0.5rem;
}

.banner-meta {
  font-size: 0.75rem;
  color: #888888;
  margin-top: 0.5rem;
}

.banner-muted {
  color: #78909c;
  font-size: 0.8125rem;
  padding: 0.75rem 1.25rem;
}

/* Brief banner */
.banner-brief {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 4px solid #3498db;
}

.banner-brief:hover {
  border-color: rgba(52, 152, 219, 0.4);
  border-left-color: #3498db;
}

/* Crypto cycle banner */
.banner-crypto {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 4px solid #FFA726;
}

.banner-crypto:hover {
  border-color: rgba(255, 167, 38, 0.4);
  border-left-color: #FFA726;
}

.cc-phase-badge {
  display: inline-block;
  padding: 0.15em 0.5em;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 600;
}

.cc-phase-badge.phase-accumulation {
  background: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}

.cc-phase-badge.phase-early-bull,
.cc-phase-badge.phase-early_bull {
  background: rgba(46, 204, 113, 0.25);
  color: #58d68d;
}

.cc-phase-badge.phase-mid-bull,
.cc-phase-badge.phase-mid_bull {
  background: rgba(243, 156, 18, 0.15);
  color: #f39c12;
}

.cc-phase-badge.phase-late-bull,
.cc-phase-badge.phase-late_bull {
  background: rgba(230, 126, 34, 0.15);
  color: #e67e22;
}

.cc-phase-badge.phase-distribution {
  background: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}

.cc-phase-badge.phase-capitulation {
  background: rgba(231, 76, 60, 0.25);
  color: #ef5350;
}

.cc-inline-score {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.8125rem;
  color: #888;
}

/* ── Quality Gate Banner (AC-15: degraded data) ──────────────── */

.quality-banner {
  padding: 0.75rem 1.25rem;
  border-radius: 8px;
  margin-bottom: 1rem;
  font-size: 0.875rem;
  line-height: 1.5;
}

.quality-banner.degraded {
  background: rgba(243, 156, 18, 0.12);
  border: 2px solid #f39c12;
  color: #ffd700;
}

.quality-banner.degraded strong {
  color: #f39c12;
  letter-spacing: 0.05em;
}

/* ── Data Quality Warning ─────────────────────────────────────── */

.data-quality-warning {
  background: rgba(243, 156, 18, 0.08);
  border: 1px solid rgba(243, 156, 18, 0.3);
  border-left: 4px solid #f39c12;
  border-radius: 8px;
  padding: 0.75rem 1.25rem;
  margin-bottom: 1rem;
}

.data-quality-warning .dq-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.375rem;
}

.data-quality-warning .dq-icon {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #f39c12;
}

.data-quality-warning .dq-issues {
  list-style: none;
  padding: 0;
  margin: 0;
}

.data-quality-warning .dq-issues li {
  font-size: 0.8125rem;
  color: #ffd700;
  line-height: 1.5;
}

.data-quality-warning .dq-issues li::before {
  content: "• ";
  color: #f39c12;
}

/* Stale badge — inline warning pill */
.badge-stale {
  display: inline-block;
  padding: 0.1em 0.4em;
  border-radius: 3px;
  font-size: 0.5625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: rgba(243, 156, 18, 0.2);
  color: #f39c12;
  border: 1px solid rgba(243, 156, 18, 0.4);
  vertical-align: middle;
  margin-left: 0.375rem;
}

/* Stale tile styling */
.dashboard-tile.tile-stale {
  opacity: 0.7;
  border-left-color: #f39c12 !important;
}

.tile-updated-stale {
  color: #f39c12 !important;
}

/* Pulse banner override — pulse-tile has its own styles, banner just adds spacing */
.pulse-tile.banner {
  padding: 1.5rem;
  margin-bottom: 1rem;
}

/* Banner-to-grid spacing */
.banner + .dashboard-tiles {
  margin-top: 1.5rem;
}

@media (max-width: 640px) {
  .pulse-header {
    flex-direction: column;
  }

  .pulse-score-group {
    text-align: left;
  }

  .pulse-score {
    font-size: 1.25rem;
  }

  .pulse-trends {
    flex-direction: column;
    gap: 0.5rem;
  }
}

/* ── Market Brief Page ─────────────────────────────────────────── */

.market-brief-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  padding: 1rem;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 6px;
  border-left: 4px solid #42a5f5;
}

.market-brief-pulse {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.market-brief-timestamp {
  font-size: 0.8125rem;
  color: #888;
}

.market-brief-layout {
  display: flex;
  gap: 1.5rem;
}

.market-brief-content {
  flex: 1;
  min-width: 0;
}

.market-brief-body {
  white-space: pre-wrap;
  line-height: 1.7;
}

.market-brief-action {
  border-left: 4px solid #2ecc71;
  padding-left: 1rem;
  background: rgba(46, 204, 113, 0.04);
  border-radius: 0 6px 6px 0;
}

.market-brief-footer {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.75rem;
  color: #78909c;
  display: flex;
  gap: 2rem;
}

/* Catalyst Sidebar */
.catalyst-sidebar {
  width: 240px;
  flex-shrink: 0;
}

.catalyst-sidebar-title {
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #888888;
  margin-bottom: 0.75rem;
}

.catalyst-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.catalyst-item {
  padding: 0.5rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

.catalyst-date {
  font-size: 0.75rem;
  color: #888;
  font-family: monospace;
}

.catalyst-event {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #e0e0e0;
}

.catalyst-note {
  font-size: 0.75rem;
  color: #78909c;
  line-height: 1.4;
}

/* (market-brief-tile replaced by .banner-brief system) */

@media (max-width: 768px) {
  .market-brief-layout {
    flex-direction: column;
  }

  .catalyst-sidebar {
    width: 100%;
    order: -1;
  }

  .market-brief-header {
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
  }
}

/* ── Dashboard Responsive Breakpoints ────────────────────────── */

@media (max-width: 1024px) {
  .dashboard-tiles {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .dashboard-tiles {
    grid-template-columns: 1fr;
  }

  .banner-header {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .banner {
    padding: 1rem;
  }

  .banner-tags {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.375rem;
  }
}

/* ══════════════════════════════════════════════════════════════════════
   THE BRIDGE — Thesis-centric command center
   Colors: green #2ecc71, yellow #f39c12, orange #e67e22, red #e74c3c
   ══════════════════════════════════════════════════════════════════════ */

/* ── Regime Banner (Section 1) ────────────────────────────────────────── */

.bridge-regime-banner {
  background-color: #0f1729;
  border: 1px solid #2a2a2a;
  border-radius: 8px;
  padding: 2rem;
  margin-bottom: 2rem;
  border-left: 5px solid #2a2a2a;
}

.bridge-regime-banner.bridge-regime-risk-on {
  border-left-color: #2ecc71;
}
.bridge-regime-banner.bridge-regime-cautious {
  border-left-color: #f39c12;
}
.bridge-regime-banner.bridge-regime-risk-off {
  border-left-color: #e74c3c;
}

.bridge-regime-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 1.25rem;
}

.bridge-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.bridge-timestamp {
  font-size: 0.8125rem;
  color: #888888;
}

.bridge-regime-status {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.bridge-regime-label {
  font-size: 1rem;
  font-weight: 600;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.bridge-regime-badge {
  font-size: 2rem;
  font-weight: 700;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  letter-spacing: 0.05em;
}

.bridge-regime-badge.bridge-regime-risk-on {
  color: #2ecc71;
}
.bridge-regime-badge.bridge-regime-cautious {
  color: #f39c12;
}
.bridge-regime-badge.bridge-regime-risk-off {
  color: #e74c3c;
}

.bridge-regime-description {
  font-size: 0.875rem;
  color: #aaaaaa;
  font-weight: 400;
  max-width: 480px;
}

.bridge-model-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.bridge-model-card {
  background-color: #16213e;
  border-radius: 6px;
  padding: 1rem;
  border-left: 3px solid #2a2a2a;
  text-decoration: none;
  color: #e0e0e0;
  transition: background-color 0.15s ease;
}

.bridge-model-card:hover {
  background-color: #1b2a4e;
  text-decoration: none;
}

.bridge-model-card.bridge-severity-normal {
  border-left-color: #2ecc71;
}
.bridge-model-card.bridge-severity-elevated {
  border-left-color: #f39c12;
}
.bridge-model-card.bridge-severity-high {
  border-left-color: #e67e22;
}
.bridge-model-card.bridge-severity-critical {
  border-left-color: #e74c3c;
}

.bridge-model-name {
  font-size: 0.75rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.375rem;
}

.bridge-model-level {
  font-size: 1.25rem;
  font-weight: 700;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  margin-bottom: 0.25rem;
}

.bridge-severity-normal .bridge-model-level { color: #2ecc71; }
.bridge-severity-elevated .bridge-model-level { color: #f39c12; }
.bridge-severity-high .bridge-model-level { color: #e67e22; }
.bridge-severity-critical .bridge-model-level { color: #e74c3c; }

.bridge-model-metric {
  font-size: 0.8125rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.bridge-rule-summary {
  font-size: 0.875rem;
  color: #e0e0e0;
  margin-bottom: 0.5rem;
  padding: 0.75rem 1rem;
  background-color: rgba(243, 156, 18, 0.08);
  border-radius: 4px;
}

.bridge-rule-trigger {
  color: #888888;
  font-size: 0.8125rem;
}

.bridge-blackout-indicator {
  margin-top: 0.5rem;
}

.bridge-blackout-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.25rem 0.75rem;
  border-radius: 4px;
  background-color: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}

.bridge-stale-warning {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  color: #f39c12;
}

/* ── Section Shared ───────────────────────────────────────────────────── */

.bridge-section {
  margin-bottom: 2.5rem;
}

.bridge-section-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #2a2a2a;
}

.bridge-awaiting {
  font-size: 0.875rem;
  color: #888888;
  font-style: italic;
  padding: 1rem;
  background-color: #16213e;
  border-radius: 6px;
}

.bridge-awaiting-inline {
  color: #888888;
  font-style: italic;
}

/* ── Themes (Section 2) ──────────────────────────────────────────────── */

.bridge-themes-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.bridge-theme-card {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
  border-left: 3px solid #2a2a2a;
}

.bridge-theme-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}

.bridge-theme-rank {
  font-size: 0.875rem;
  font-weight: 700;
  color: #42a5f5;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.bridge-theme-name {
  font-size: 1rem;
  font-weight: 600;
  color: #e0e0e0;
}

.bridge-theme-link {
  color: #42a5f5;
  text-decoration: none;
  font-size: 0.85rem;
  margin-left: 0.35rem;
}
.bridge-theme-link:hover {
  color: #90caf9;
}

.bridge-conviction-badge {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.125rem 0.5rem;
  border-radius: 3px;
  margin-left: auto;
}

.bridge-conviction-highest {
  background-color: rgba(46, 204, 113, 0.2);
  color: #2ecc71;
}
.bridge-conviction-high {
  background-color: rgba(66, 165, 245, 0.2);
  color: #42a5f5;
}
.bridge-conviction-mediumhigh {
  background-color: rgba(66, 165, 245, 0.15);
  color: #42a5f5;
}
.bridge-conviction-medium {
  background-color: rgba(136, 136, 136, 0.2);
  color: #888888;
}
.bridge-conviction-low {
  background-color: rgba(136, 136, 136, 0.15);
  color: #78909c;
}

.bridge-theme-description {
  font-size: 0.8125rem;
  color: #888888;
  line-height: 1.5;
  margin-bottom: 0.75rem;
}

.bridge-vehicles {
  margin-bottom: 0.75rem;
}

.bridge-vehicle-row {
  display: flex;
  align-items: center;
  padding: 0.25rem 0;
  font-size: 0.875rem;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  gap: 0.75rem;
}

.bridge-vehicle-ticker {
  font-weight: 600;
  color: #e0e0e0;
  min-width: 5rem;
}

.bridge-vehicle-price {
  color: #e0e0e0;
  min-width: 5.5rem;
  text-align: right;
}

.bridge-vehicle-change {
  min-width: 4rem;
  text-align: right;
}

.bridge-change-up {
  color: #2ecc71;
}

.bridge-change-down {
  color: #e74c3c;
}

.bridge-theme-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(42, 42, 42, 0.5);
  font-size: 0.8125rem;
}

.bridge-regime-eligibility {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.75rem;
  padding: 0.125rem 0.5rem;
  border-radius: 3px;
}

.bridge-eligibility-full-size {
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}
.bridge-eligibility-half-size {
  background-color: rgba(243, 156, 18, 0.15);
  color: #f39c12;
}
.bridge-eligibility-blocked {
  background-color: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}

.bridge-play-label {
  color: #888888;
}

/* ── Accumulation Zones ──────────────────────────────────────────────── */

.bridge-accum-zones {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
}

.bridge-accum-label {
  font-size: 0.75rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 0.375rem;
}

.bridge-accum-zone {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  padding: 0.125rem 0;
}

.bridge-zone-indicator {
  font-size: 0.75rem;
}

.bridge-zone-pending .bridge-zone-indicator {
  color: #888888;
}

.bridge-zone-reached .bridge-zone-indicator {
  color: #2ecc71;
}

.bridge-zone-label {
  color: #e0e0e0;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.bridge-zone-action {
  color: #888888;
  font-size: 0.75rem;
}

/* Accumulation bar */
.bridge-accum-bar-container {
  margin-top: 0.75rem;
}

.bridge-accum-bar {
  height: 6px;
  background-color: #2a2a2a;
  border-radius: 3px;
  overflow: hidden;
}

.bridge-accum-bar-fill {
  height: 100%;
  background-color: #2ecc71;
  border-radius: 3px;
  transition: width 0.3s ease;
}

.bridge-accum-bar-labels {
  display: flex;
  justify-content: space-between;
  font-size: 0.6875rem;
  color: #888888;
  margin-top: 0.25rem;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.bridge-accum-current {
  font-size: 1.5rem;
  font-weight: 700;
  color: #e0e0e0;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  margin-bottom: 0.25rem;
}

.bridge-accum-status-text {
  font-size: 0.8125rem;
  color: #888888;
  margin-bottom: 0.5rem;
}

/* ── Risks & Triggers (Section 3) ────────────────────────────────────── */

.bridge-risk-category {
  margin-bottom: 1.5rem;
}

.bridge-risk-category-header {
  font-size: 0.75rem;
  font-weight: 700;
  color: #42a5f5;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.5rem;
  padding-bottom: 0.25rem;
}

.bridge-risk-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  background-color: #16213e;
  border-radius: 4px;
  margin-bottom: 0.375rem;
  flex-wrap: wrap;
}

.bridge-risk-indicator {
  font-size: 1rem;
  flex-shrink: 0;
}

.bridge-severity-indicator-critical {
  color: #e74c3c;
}
.bridge-severity-indicator-elevated {
  color: #f39c12;
}
.bridge-severity-indicator-watch {
  color: #888888;
}
.bridge-severity-indicator-resolved {
  color: #2ecc71;
}

.bridge-risk-name {
  font-size: 0.875rem;
  color: #e0e0e0;
  flex: 1;
  min-width: 200px;
}

.bridge-risk-reading {
  font-size: 0.875rem;
  color: #e0e0e0;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.bridge-risk-threshold {
  font-size: 0.8125rem;
  color: #888888;
}

.bridge-severity-badge {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.125rem 0.5rem;
  border-radius: 3px;
  flex-shrink: 0;
}

.bridge-severity-critical {
  background-color: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}
.bridge-severity-elevated {
  background-color: rgba(243, 156, 18, 0.15);
  color: #f39c12;
}
.bridge-severity-watch {
  background-color: rgba(136, 136, 136, 0.15);
  color: #888888;
}
.bridge-severity-resolved {
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}

.bridge-risk-response {
  font-size: 0.8125rem;
  color: #888888;
  line-height: 1.5;
  padding: 0.375rem 0.75rem 0.375rem 2.5rem;
  margin-bottom: 0.375rem;
}

/* ── Positions (Section 4) ───────────────────────────────────────────── */

.bridge-positions-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  background-color: #16213e;
  border-radius: 6px;
}

.bridge-pos-count {
  font-size: 1rem;
  font-weight: 600;
  color: #e0e0e0;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.bridge-concentration {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.bridge-conc-item {
  font-size: 0.8125rem;
  color: #888888;
}

.bridge-play-group {
  margin-bottom: 1.25rem;
}

.bridge-play-header {
  font-size: 0.75rem;
  font-weight: 700;
  color: #42a5f5;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.5rem;
}

.bridge-position-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.bridge-position-table th {
  text-align: left;
  font-size: 0.75rem;
  font-weight: 600;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid #2a2a2a;
}

.bridge-position-table td {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid rgba(42, 42, 42, 0.5);
  color: #e0e0e0;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.bridge-pos-ticker {
  font-weight: 700;
}

.bridge-pnl-positive {
  color: #2ecc71;
}

.bridge-pnl-negative {
  color: #e74c3c;
}

.bridge-untagged-note {
  font-size: 0.8125rem;
  color: #888888;
  font-style: italic;
  margin-bottom: 0.5rem;
}

.bridge-compliance {
  display: flex;
  gap: 1rem;
  align-items: center;
  font-size: 0.875rem;
  color: #888888;
  margin-top: 0.75rem;
  padding: 0.5rem 0.75rem;
  background-color: #16213e;
  border-radius: 4px;
}

.bridge-compliance-alert {
  color: #f39c12;
  font-weight: 600;
}

/* ── Opportunities (Section 5) ───────────────────────────────────────── */

.bridge-opportunities-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.bridge-opportunity-card {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.25rem;
}

.bridge-opp-card-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: #e0e0e0;
  margin-bottom: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.bridge-pullback-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.375rem 0;
  font-size: 0.875rem;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  border-bottom: 1px solid rgba(42, 42, 42, 0.3);
  flex-wrap: wrap;
}

.bridge-pullback-row:last-child {
  border-bottom: none;
}

.bridge-pullback-buyzone {
  background-color: rgba(46, 204, 113, 0.05);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  border-radius: 3px;
}

.bridge-pullback-ticker {
  font-weight: 600;
  color: #e0e0e0;
  min-width: 4rem;
}

.bridge-pullback-price {
  color: #e0e0e0;
}

.bridge-pullback-pct {
  min-width: 3.5rem;
  text-align: right;
}

.bridge-pullback-52w {
  font-size: 0.75rem;
  color: #888888;
}

.bridge-buyzone-badge {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.125rem 0.5rem;
  border-radius: 3px;
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
  margin-left: auto;
}

.bridge-drawdown-status {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.bridge-drawdown-active {
  font-weight: 700;
  color: #2ecc71;
}

.bridge-drawdown-inactive {
  color: #888888;
}

.bridge-drawdown-score {
  font-size: 0.875rem;
  color: #888888;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.bridge-timing-card {
  grid-column: 1 / -1;
}

.bridge-timing-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0;
  font-size: 0.875rem;
  flex-wrap: wrap;
}

.bridge-timing-name {
  font-weight: 600;
  color: #e0e0e0;
}

.bridge-timing-status {
  font-weight: 700;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.bridge-timing-not-yet {
  color: #888888;
}

.bridge-timing-active {
  color: #f39c12;
}

.bridge-timing-detail {
  color: #888888;
  font-size: 0.8125rem;
}

/* ── Bridge Responsive ───────────────────────────────────────────────── */

@media (max-width: 768px) {
  .bridge-regime-banner {
    padding: 1.25rem;
  }

  .bridge-regime-header {
    flex-direction: column;
    gap: 0.25rem;
  }

  .bridge-regime-badge {
    font-size: 1.5rem;
  }

  .bridge-model-cards {
    grid-template-columns: 1fr;
  }

  .bridge-themes-grid {
    grid-template-columns: 1fr;
  }

  .bridge-opportunities-grid {
    grid-template-columns: 1fr;
  }

  .bridge-timing-card {
    grid-column: auto;
  }

  .bridge-risk-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
  }

  .bridge-risk-name {
    min-width: 0;
  }

  .bridge-positions-summary {
    flex-direction: column;
    align-items: flex-start;
  }

  .bridge-position-table {
    font-size: 0.8125rem;
  }

  .bridge-position-table th,
  .bridge-position-table td {
    padding: 0.375rem 0.5rem;
  }

  .bridge-pullback-row {
    font-size: 0.8125rem;
  }
}

@media (max-width: 480px) {
  .bridge-vehicle-row {
    font-size: 0.8125rem;
    gap: 0.5rem;
  }

  .bridge-vehicle-ticker {
    min-width: 4rem;
  }

  .bridge-vehicle-price {
    min-width: 4.5rem;
  }
}

/* ── Crypto Trend System ─────────────────────────────────────────────── */

.ct-header {
  margin-bottom: 1.5rem;
}

.ct-header h1 {
  margin: 0;
  font-size: 1.5rem;
}

.ct-header-meta {
  display: flex;
  gap: 1rem;
  align-items: center;
  margin-top: 0.25rem;
  color: #888;
  font-size: 0.875rem;
}

.ct-version {
  background: #2a2a2a;
  padding: 0.125rem 0.5rem;
  border-radius: 4px;
  font-size: 0.75rem;
}

/* Signal Banner */
.ct-signal-banner {
  padding: 1rem 1.5rem;
  border-radius: 8px;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.ct-signal-exit {
  background: rgba(231, 76, 60, 0.15);
  border: 1px solid #e74c3c;
}

.ct-signal-entry {
  background: rgba(46, 204, 113, 0.15);
  border: 1px solid #2ecc71;
}

.ct-signal-warning {
  background: rgba(243, 156, 18, 0.15);
  border: 1px solid #f39c12;
}

.ct-signal-steady {
  background: rgba(42, 42, 42, 0.5);
  border: 1px solid #2a2a2a;
}

.ct-signal-icon {
  font-size: 1.125rem;
  font-weight: 700;
  white-space: nowrap;
}

.ct-signal-exit .ct-signal-icon { color: #e74c3c; }
.ct-signal-entry .ct-signal-icon { color: #2ecc71; }
.ct-signal-warning .ct-signal-icon { color: #f39c12; }
.ct-signal-steady .ct-signal-icon { color: #888; }

.ct-signal-detail {
  font-size: 0.9375rem;
  color: #e0e0e0;
}

/* State Cards */
.ct-state-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}

.ct-state-card {
  background: #141414;
  border-radius: 8px;
  padding: 1.25rem;
  border: 1px solid #2a2a2a;
}

.ct-state-card h2 {
  font-size: 1.125rem;
  margin: 0 0 0.75rem 0;
}

.ct-state-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 4px;
  font-weight: 700;
  font-size: 0.875rem;
  margin-bottom: 1rem;
}

.ct-state-bullish {
  background: rgba(46, 204, 113, 0.2);
  color: #2ecc71;
  border: 1px solid rgba(46, 204, 113, 0.4);
}

.ct-state-bearish {
  background: rgba(231, 76, 60, 0.2);
  color: #e74c3c;
  border: 1px solid rgba(231, 76, 60, 0.4);
}

.ct-state-badge-sm {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  border-radius: 3px;
  font-weight: 600;
  font-size: 0.75rem;
}

.ct-state-badge-sm.ct-state-bullish {
  background: rgba(46, 204, 113, 0.2);
  color: #2ecc71;
}

.ct-state-badge-sm.ct-state-bearish {
  background: rgba(231, 76, 60, 0.2);
  color: #e74c3c;
}

.ct-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.ct-card-section h3 {
  font-size: 0.8125rem;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 0.5rem 0;
}

.ct-metric-list {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.ct-metric {
  display: flex;
  justify-content: space-between;
  font-size: 0.8125rem;
}

.ct-metric-label {
  color: #888;
}

.ct-metric-value {
  color: #e0e0e0;
  font-weight: 500;
}

/* F&G Classification Colors */
.ct-fg-extreme-fear { color: #e74c3c; }
.ct-fg-fear { color: #FF4500; }
.ct-fg-neutral { color: #FFD700; }
.ct-fg-greed { color: #2ecc71; }
.ct-fg-extreme-greed { color: #006400; }

/* Delta Gauges */
.ct-delta-gauges {
  display: flex;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.ct-delta-gauge {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.375rem 0.5rem;
  background: #0f0f0f;
  border-radius: 4px;
  flex: 1;
}

.ct-delta-label {
  font-size: 0.6875rem;
  color: #888;
  text-transform: uppercase;
}

.ct-delta-value {
  font-size: 0.875rem;
  font-weight: 700;
}

.ct-delta-pos { color: #2ecc71; }
.ct-delta-neg { color: #e74c3c; }

.ct-action {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid #2a2a2a;
  font-size: 0.875rem;
  color: #e0e0e0;
}

/* Chart Section */
.ct-chart-section {
  margin-bottom: 1.5rem;
}

.ct-chart-embed iframe {
  background: #0f0f0f;
}

/* Trade History */
.ct-trades-table {
  font-size: 0.8125rem;
}

.ct-return-pos { color: #2ecc71; font-weight: 600; }
.ct-return-neg { color: #e74c3c; font-weight: 600; }

.ct-trigger-badge {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  border-radius: 3px;
  font-size: 0.6875rem;
  font-weight: 600;
}

.ct-trigger-delta {
  background: rgba(243, 156, 18, 0.2);
  color: #f39c12;
}

.ct-trigger-envelope {
  background: rgba(120, 144, 156, 0.2);
  color: #78909c;
}

@media (max-width: 768px) {
  .ct-state-cards {
    grid-template-columns: 1fr;
  }

  .ct-card-grid {
    grid-template-columns: 1fr;
  }

  .ct-signal-banner {
    flex-direction: column;
    text-align: center;
  }
}

/* ── Market SitRep Report ──────────────────────────────────────── */

/* Regime banner (AC-16) */
.sr-regime-banner {
  border-radius: 10px;
  padding: 1.5rem 2rem;
  margin-bottom: 1.5rem;
}

.sr-regime-normal {
  background: linear-gradient(135deg, rgba(46, 204, 113, 0.15), rgba(46, 204, 113, 0.05));
  border: 1px solid rgba(46, 204, 113, 0.3);
}

.sr-regime-elevated {
  background: linear-gradient(135deg, rgba(243, 156, 18, 0.15), rgba(243, 156, 18, 0.05));
  border: 1px solid rgba(243, 156, 18, 0.3);
}

.sr-regime-high {
  background: linear-gradient(135deg, rgba(230, 126, 34, 0.15), rgba(230, 126, 34, 0.05));
  border: 1px solid rgba(230, 126, 34, 0.3);
}

.sr-regime-critical {
  background: linear-gradient(135deg, rgba(231, 76, 60, 0.15), rgba(231, 76, 60, 0.05));
  border: 1px solid rgba(231, 76, 60, 0.3);
}

.sr-regime-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.sr-regime-label-group {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.sr-regime-label {
  font-size: 1.5rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #e0e0e0;
}

.sr-regime-change {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.2rem 0.5rem;
  border-radius: 3px;
  background-color: rgba(243, 156, 18, 0.2);
  color: #f39c12;
  letter-spacing: 0.03em;
}

.sr-regime-score {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
}

.sr-pulse-number {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 3rem;
  font-weight: 700;
  color: #e0e0e0;
  line-height: 1;
}

.sr-pulse-label {
  font-size: 0.875rem;
  color: #888888;
  font-weight: 500;
}

.sr-regime-trends {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.sr-trend {
  font-size: 0.8125rem;
  padding: 0.25rem 0.625rem;
  border-radius: 4px;
  font-weight: 500;
}

.sr-trend-worse {
  background-color: rgba(231, 76, 60, 0.15);
  color: #e74c3c;
}

.sr-trend-better {
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}

.sr-trend-flat {
  background-color: rgba(120, 144, 156, 0.15);
  color: #78909c;
}

.sr-compound-count {
  font-size: 0.8125rem;
  padding: 0.25rem 0.625rem;
  border-radius: 4px;
  background-color: rgba(231, 76, 60, 0.1);
  color: #e74c3c;
  font-weight: 500;
}

/* Degradation notice (AC-21) */
.sr-degraded-notice,
.sr-quality-warning {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  margin-bottom: 1rem;
  font-size: 0.8125rem;
  background-color: rgba(243, 156, 18, 0.1);
  border: 1px solid rgba(243, 156, 18, 0.25);
}

.sr-degraded-badge {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.2rem 0.5rem;
  border-radius: 3px;
  background-color: #f39c12;
  color: #0f1729;
  white-space: nowrap;
}

.sr-degraded-text {
  color: #b0b0b0;
}

/* Driver cards */
.sr-drivers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.sr-driver-card {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1rem;
  border-left: 3px solid #2a2a2a;
}

.sr-driver-tier-1 {
  border-left-color: #e74c3c;
}

.sr-driver-tier-2 {
  border-left-color: #f39c12;
}

.sr-driver-tier-3 {
  border-left-color: #2a2a2a;
}

.sr-driver-name {
  font-size: 0.75rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.375rem;
}

.sr-driver-value {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 1.125rem;
  font-weight: 700;
  color: #e0e0e0;
  margin-bottom: 0.25rem;
}

.sr-driver-detail {
  font-size: 0.75rem;
  color: #78909c;
}

/* Section cards (AC-17) */
.sr-section {
  background-color: #16213e;
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1rem;
  border-left: 3px solid #2a2a2a;
}

.sr-section-degraded {
  opacity: 0.6;
  border-left-color: #f39c12;
  position: relative;
}

.sr-section-badge-degraded {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.15rem 0.4rem;
  border-radius: 3px;
  background-color: rgba(243, 156, 18, 0.2);
  color: #f39c12;
}

.sr-section-title {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 1rem;
  font-weight: 600;
  color: #e0e0e0;
  margin-bottom: 0.75rem;
}

.sr-section-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background-color: rgba(66, 165, 245, 0.15);
  color: #42a5f5;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
}

.sr-section-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #78909c;
  font-style: italic;
}

.sr-section-body {
  font-size: 0.875rem;
  line-height: 1.6;
  color: #b0b0b0;
  margin-bottom: 0.75rem;
}

.sr-section-body p {
  margin-bottom: 0.5rem;
}

/* Implication callouts (AC-17, matches cs-callout-action pattern) */
.sr-callout {
  display: flex;
  gap: 0.75rem;
  border-radius: 8px;
  padding: 1rem 1.25rem;
  margin-top: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
}

.sr-callout-icon {
  font-size: 1.25rem;
  flex-shrink: 0;
  line-height: 1.4;
}

.sr-callout-content p {
  margin: 0;
}

.sr-callout-action {
  background-color: rgba(230, 126, 34, 0.1);
  border: 1px solid rgba(230, 126, 34, 0.3);
  color: #e0e0e0;
}

.sr-callout-action .sr-callout-icon {
  color: #e67e22;
}

/* Sector data table (AC-18) */
.sr-sector-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
  font-size: 0.8125rem;
}

.sr-sector-table thead th {
  text-align: left;
  padding: 0.5rem 0.75rem;
  color: #888888;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.6875rem;
  border-bottom: 1px solid #2a2a2a;
}

.sr-sector-table tbody td {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid rgba(42, 42, 42, 0.5);
  color: #e0e0e0;
}

.sr-sector-ticker {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-weight: 600;
}

.sr-positive {
  color: #2ecc71;
}

.sr-negative {
  color: #e74c3c;
}

/* Visual separator between tiers */
.sr-tier-focus + .sr-tier-watch td,
.sr-tier-watch + .sr-tier-avoid td {
  border-top: 2px solid #2a2a2a;
}

/* Tier badges */
.sr-tier-badge {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.15rem 0.4rem;
  border-radius: 3px;
}

.sr-tier-badge-focus {
  background-color: rgba(46, 204, 113, 0.2);
  color: #2ecc71;
}

.sr-tier-badge-watch {
  background-color: rgba(243, 156, 18, 0.2);
  color: #f39c12;
}

.sr-tier-badge-avoid {
  background-color: rgba(231, 76, 60, 0.2);
  color: #e74c3c;
}

/* Crypto data cards */
.sr-crypto-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.sr-crypto-card {
  background-color: #0f1729;
  border-radius: 8px;
  padding: 0.75rem;
  text-align: center;
}

.sr-crypto-asset {
  font-size: 0.6875rem;
  color: #888888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.375rem;
}

.sr-crypto-phase {
  font-size: 0.875rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}

.sr-phase-accumulation {
  color: #2ecc71;
}

.sr-phase-capitulation {
  color: #e74c3c;
}

.sr-phase-markup,
.sr-phase-bullish {
  color: #2ecc71;
}

.sr-phase-distribution,
.sr-phase-bearish {
  color: #e74c3c;
}

.sr-phase-unknown {
  color: #78909c;
}

.sr-crypto-score {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.75rem;
  color: #78909c;
}

.sr-crypto-action {
  font-size: 0.875rem;
  font-weight: 600;
  color: #f39c12;
}

/* Blind spot ticker cards (AC-19) */
.sr-blindspot-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.625rem;
  margin: 1rem 0;
}

.sr-blindspot-card {
  background-color: #0f1729;
  border-radius: 8px;
  padding: 0.875rem;
  border-left: 3px solid #2ecc71;
}

.sr-blindspot-ticker {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 1.125rem;
  font-weight: 700;
  color: #e0e0e0;
  margin-bottom: 0.375rem;
}

.sr-blindspot-data {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.375rem;
}

.sr-blindspot-rs {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.75rem;
  font-weight: 600;
  color: #42a5f5;
}

.sr-blindspot-return {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 0.75rem;
  font-weight: 600;
}

.sr-blindspot-tier {
  display: flex;
  gap: 0.375rem;
  flex-wrap: wrap;
}

.sr-convergence-badge {
  font-size: 0.5625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.15rem 0.4rem;
  border-radius: 3px;
  background-color: rgba(66, 165, 245, 0.2);
  color: #42a5f5;
}

/* Metadata footer */
.sr-metadata {
  border-top: 1px solid #2a2a2a;
  padding-top: 1rem;
  margin-top: 1rem;
}

.sr-meta-row {
  display: flex;
  justify-content: space-between;
  padding: 0.25rem 0;
  font-size: 0.75rem;
}

.sr-meta-label {
  color: #888888;
}

.sr-meta-value {
  color: #78909c;
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
}

.sr-meta-stale {
  color: #f39c12;
}

.sr-meta-missing {
  color: #e74c3c;
}

/* Dashboard tile banner (AC-22) */
.sr-tile-banner {
  display: block;
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
  text-decoration: none;
  color: #e0e0e0;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.sr-tile-banner:hover {
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.sr-tile-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

.sr-tile-title-group {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  flex-wrap: wrap;
}

.sr-tile-title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
}

.sr-tile-regime-change {
  font-size: 0.6875rem;
  font-weight: 600;
  padding: 0.15rem 0.4rem;
  border-radius: 3px;
  background-color: rgba(243, 156, 18, 0.2);
  color: #f39c12;
}

.sr-tile-degraded-badge {
  font-size: 0.5625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.15rem 0.35rem;
  border-radius: 3px;
  background-color: rgba(243, 156, 18, 0.2);
  color: #f39c12;
}

.sr-tile-score-group {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
}

.sr-tile-pulse-score {
  font-family: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono",
    "Courier New", monospace;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

.sr-tile-pulse-label {
  font-size: 0.75rem;
  color: #888888;
}

.sr-tile-details {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.sr-tile-detail {
  font-size: 0.8125rem;
  color: #b0b0b0;
}

.sr-tile-meta {
  font-size: 0.6875rem;
  color: #78909c;
  margin-top: 0.5rem;
}

/* SitRep responsive adjustments */
@media (max-width: 768px) {
  .sr-regime-inner {
    flex-direction: column;
    text-align: center;
  }

  .sr-regime-score {
    justify-content: center;
  }

  .sr-regime-trends {
    justify-content: center;
  }

  .sr-drivers {
    grid-template-columns: repeat(2, 1fr);
  }

  .sr-sector-table {
    font-size: 0.75rem;
  }

  .sr-sector-table thead th,
  .sr-sector-table tbody td {
    padding: 0.375rem 0.5rem;
  }

  .sr-crypto-cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .sr-blindspot-cards {
    grid-template-columns: 1fr;
  }

  .sr-tile-header {
    flex-direction: column;
    text-align: center;
  }

  .sr-tile-details {
    justify-content: center;
  }
}
