/* ═══════════════════════════════════════════════
   Longbridge VI · AISignal Theme
   Version 1.0 · 2026-05-13
   ═══════════════════════════════════════════════ */

/* ── Night Mode (default) ── */
:root {
  --lb-bg:         #0D1117;
  --lb-surface:    #161B22;
  --lb-surface-alt:#21262D;
  --lb-border:     #30363D;
  --lb-text:       #E6EDF3;
  --lb-text-dim:   #8B949E;
  --lb-text-muted: #484F58;

  --lb-primary:    #006B53;  /* Olo青 夜间暗绿 */
  --lb-up:         #006B53;
  --lb-down:       #F85149;
  --lb-warn:       #D29922;
  --lb-info:       #58A6FF;

  --lb-radius:     12px;
  --lb-chart-bg:   #21262D;
  --lb-chart-grid: rgba(72,79,88,0.3);
}

/* ── Day Mode ── */
.lb-day {
  --lb-bg:         #FCFAF2;
  --lb-surface:    #F5F2EC;
  --lb-surface-alt:#FFFFFF;
  --lb-border:     #E8E0D0;
  --lb-text:       #1F2328;
  --lb-text-dim:   #8B7E6A;
  --lb-text-muted: #C4B8A2;

  --lb-primary:    #00B894;  /* Olo青 日间亮绿 */
  --lb-up:         #00B894;
  --lb-down:       #CF222E;
  --lb-warn:       #BF8700;
  --lb-info:       #0969DA;

  --lb-chart-bg:   #FFFFFF;
  --lb-chart-grid: rgba(196,184,162,0.3);
}

/* ── Typography ── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
:root { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; }
code, .mono { font-family: 'SF Mono', 'JetBrains Mono', monospace; }


/* ── Body-level theme switching ── */
body {
  background-color: var(--lb-bg);
  color: var(--lb-text);
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* App shell */
.app-shell { background: var(--lb-bg); }
.app-sidebar { background: var(--lb-surface); border-color: var(--lb-border); }
.app-topbar { background: var(--lb-surface); border-color: var(--lb-border); }

/* Cards */
.app-mini-card, .card, .info-card, .analysis-card,
.chart-container, .stat-card, .metric-card {
  background: var(--lb-surface) !important;
  border-color: var(--lb-border) !important;
}
.card-header-v2, .card-header, .card-head {
  border-color: var(--lb-border) !important;
}
.card-body-v2, .card-body {
  background: var(--lb-surface) !important;
}

/* Tables */
.data-table, .tbl {
  background: var(--lb-surface);
}
.data-table th, .data-table td,
.table th, .table td {
  border-color: var(--lb-border) !important;
  color: var(--lb-text);
}
.data-table th, .table th {
  color: var(--lb-text-dim) !important;
}

/* Text */
h1, h2, h3, h4, .page-title, .card-title {
  color: var(--lb-text);
}
.text-muted, .subtitle, .card-sub {
  color: var(--lb-text-dim) !important;
}

/* Signal cards */
.signal-card {
  background: var(--lb-surface-alt) !important;
  border-color: var(--lb-border) !important;
}
.signal-card-label { color: var(--lb-text-dim) !important; }
.signal-card-value { color: var(--lb-text) !important; }

/* Score bars */
.score-bar-item { border-color: var(--lb-border) !important; }
.bar-label { color: var(--lb-text-dim) !important; }

/* Detail page */
.stock-header, .detail-header {
  background: var(--lb-surface);
  border-color: var(--lb-border);
}
.breadcrumb-item { color: var(--lb-text-dim); }
.breadcrumb-item.active { color: var(--lb-text); }

/* Scatter / industry chart */
.scatter-plot {
  background: var(--lb-surface-alt) !important;
}
.scatter-legend { color: var(--lb-text-dim); }

/* Heatmap legend */
.heatmap-legend { color: var(--lb-text-dim); }

/* Buttons */
.btn { background: var(--lb-surface); border-color: var(--lb-border); color: var(--lb-text); }
.btn:hover { background: var(--lb-surface-alt); }
.btn-primary { background: var(--lb-info); border-color: var(--lb-info); }

/* Nav links */
.app-nav-link { color: var(--lb-text-dim); }
.app-nav-link.active { color: var(--lb-primary); border-color: var(--lb-primary); }

/* Placeholder */
.chart-placeholder-v2 p { color: var(--lb-text-dim); }


/* ── Font readability fixes ── */
/* Increase base contrast */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Table cells: bolder, larger */
.data-table td, .data-table th,
.table td, .table th,
.tbl td, .tbl th,
table td, table th {
  font-size: 13px !important;
  font-weight: 500 !important;
}

/* Table headers */
.data-table th, .table th, .tbl th {
  font-weight: 600 !important;
  letter-spacing: 0.3px;
}

/* Numeric cells: extra weight and size */
.data-table td.num, .table td.num, .tbl td.num,
td.num, .num {
  font-weight: 600 !important;
  font-size: 13px !important;
  font-variant-numeric: tabular-nums;
}

/* Stat card values */
.signal-card-value, .stat-value {
  font-weight: 700 !important;
  font-size: 22px !important;
}

/* Card titles */
.card-title, .card-header-v2 h4, h3.card-title {
  font-weight: 600 !important;
  font-size: 14px !important;
}

/* Metric grid */
.metric-value, .dashboard-grid .value {
  font-weight: 700 !important;
}

/* Score bar labels */
.bar-label, .stat-label {
  font-weight: 500 !important;
}

/* Links and secondary text */
.app-nav-link {
  font-weight: 500 !important;
}

/* Breadcrumb */
.breadcrumb-item, .breadcrumb-separator {
  font-weight: 500 !important;
}
