/* Signal colors */
.signal-buy, .signal-strong_buy { color: #26a69a; font-weight: bold; }
.signal-sell, .signal-strong_sell { color: #ef5350; font-weight: bold; }
.signal-hold { color: #78909c; font-weight: bold; }

.signal-badge {
  display: inline-block;
  padding: 0.2em 0.6em;
  border-radius: 4px;
  font-weight: bold;
}
.signal-badge.buy, .signal-badge.strong_buy { background: rgba(38,166,154,0.2); color: #26a69a; }
.signal-badge.sell, .signal-badge.strong_sell { background: rgba(239,83,80,0.2); color: #ef5350; }
.signal-badge.hold { background: rgba(120,144,156,0.2); color: #78909c; }

/* Predicted change colors */
.change-up { color: #26a69a; font-weight: bold; }
.change-down { color: #ef5350; font-weight: bold; }

/* Risk colors */
.risk-low { color: #26a69a; }
.risk-medium { color: #ffa726; }
.risk-high { color: #ef5350; }

/* Summary bar */
.summary-bar { margin-bottom: 1.5rem; }
.summary-card {
  text-align: center;
  padding: 1rem;
  border-radius: 8px;
  font-size: 1.1rem;
}
.summary-card span { font-size: 2rem; display: block; font-weight: bold; }
.summary-card.buy { background: rgba(38,166,154,0.15); color: #26a69a; }
.summary-card.sell { background: rgba(239,83,80,0.15); color: #ef5350; }
.summary-card.hold { background: rgba(120,144,156,0.15); color: #78909c; }

/* Training status indicators */
.status-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}
.status-green { background: #26a69a; }
.status-yellow { background: #ffa726; }
.status-red { background: #ef5350; }

/* Output pane */
.output-pane {
  background: #1a1a2e;
  color: #e0e0e0;
  padding: 1rem;
  border-radius: 8px;
  max-height: 500px;
  overflow-y: auto;
  font-size: 0.85rem;
  line-height: 1.4;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Chart */
#chart-container {
  width: 100%;
  height: 400px;
  margin-bottom: 1.5rem;
  border-radius: 8px;
  overflow: hidden;
}

/* Sortable columns */
.sortable, .sortable-acc { cursor: pointer; user-select: none; }
.sortable:hover, .sortable-acc:hover { text-decoration: underline; }
.sort-asc::after { content: ' \25B2'; font-size: 0.7em; }
.sort-desc::after { content: ' \25BC'; font-size: 0.7em; }

/* Nav active link */
nav a.active { font-weight: bold; text-decoration: underline; }

/* Table tweaks */
table { font-size: 0.9rem; }
td, th { padding: 0.5rem 0.75rem; }

/* Task buttons & progress */
#task-status { margin-top: 1rem; }
#btn-stop { margin-top: 0.75rem; }
.progress-info { font-size: 0.9rem; text-align: right; }
.progress-info div { margin-bottom: 0.25rem; }
#progress-eta { color: #78909c; font-style: italic; }
