/* Investment Companion Design System */

/* ========================================
   COLORS & THEME VARIABLES
   ======================================== */
:root {
	/* Primary */
	--color-primary: #029D6E;
	--color-primary-dark: #027a56;
	--color-primary-light: rgba(2, 157, 110, 0.1);
	
	/* Background */
	--bg-dark: #0f172a;
	--bg-darker: #020617;
	--bg-card: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
	
	/* Text */
	--text-primary: #e2e8f0;
	--text-secondary: #94a3b8;
	--text-muted: #64748b;
	
	/* Borders */
	--border-default: rgba(148, 163, 184, 0.2);
	--border-focus: #029D6E;
	
	/* Status */
	--color-success: #029D6E;
	--color-warning: #fbbf24;
	--color-error: #ef4444;
	--color-info: #3b82f6;
	
	/* Spacing */
	--spacing-xs: 4px;
	--spacing-sm: 8px;
	--spacing-md: 12px;
	--spacing-lg: 16px;
	--spacing-xl: 20px;
	--spacing-2xl: 24px;
	--spacing-3xl: 32px;
	
	/* Border Radius */
	--radius-sm: 6px;
	--radius-md: 8px;
	--radius-lg: 12px;
	
	/* Shadows */
	--shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);
	--shadow-md: 0 4px 10px rgba(0, 0, 0, 0.1);
	--shadow-lg: 0 8px 20px rgba(0, 0, 0, 0.2);
}

/* ========================================
   CARDS
   ======================================== */
.card {
	background: var(--bg-card);
	border: 1px solid var(--border-default);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
}

.card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--spacing-xl);
	padding: var(--spacing-lg) var(--spacing-xl);
	border-bottom: 1px solid var(--border-default);
}

.card-title,
.card-header h2 {
	font-size: 20px;
	font-weight: 600;
	color: var(--text-primary);
	display: flex;
	align-items: center;
	gap: var(--spacing-md);
	margin: 0;
}

.card-content,
.card-body {
	padding: var(--spacing-lg) var(--spacing-xl);
	color: var(--text-secondary);
}

/* ========================================
   STAT CARDS
   ======================================== */
.stat-card {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid var(--border-default);
	border-radius: var(--radius-md);
	padding: var(--spacing-lg) var(--spacing-xl);
	text-align: center;
}

.stat-label {
	font-size: 13px;
	color: var(--text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: var(--spacing-sm);
}

.stat-value {
	font-size: 24px;
	font-weight: 600;
	color: var(--text-primary);
	margin-bottom: var(--spacing-xs);
}

.stat-subvalue { font-size: 14px; color: var(--text-muted); }
.stat-value.positive { color: var(--color-success); }
.stat-value.negative { color: var(--color-error); }
.stat-value.neutral { color: var(--text-secondary); }

/* ========================================
   BUTTONS
   ======================================== */
.btn {
	padding: 12px 24px;
	border-radius: var(--radius-md);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.3s ease;
	border: none;
}

.btn-primary {
	background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
	color: white;
	box-shadow: 0 4px 12px rgba(2, 157, 110, 0.3);
}

.btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(2, 157, 110, 0.4);
}

.btn-secondary {
	background: rgba(255, 255, 255, 0.05);
	color: var(--text-primary);
	border: 1px solid var(--border-default);
}

.btn-secondary:hover { background: rgba(255, 255, 255, 0.08); }

/* ========================================
   GRIDS
   ======================================== */
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--spacing-xl); }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--spacing-xl); }
.grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-xl); }

/* ========================================
   UTILITIES
   ======================================== */
.text-primary { color: var(--text-primary); }
.text-secondary { color: var(--text-secondary); }
.text-muted { color: var(--text-muted); }
.text-success { color: var(--color-success); }
.text-warning { color: var(--color-warning); }
.text-error { color: var(--color-error); }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: var(--spacing-sm); }
.mb-2 { margin-bottom: var(--spacing-md); }
.mb-3 { margin-bottom: var(--spacing-lg); }
.mb-4 { margin-bottom: var(--spacing-xl); }
.mt-0 { margin-top: 0; }
.mt-1 { margin-top: var(--spacing-sm); }
.mt-2 { margin-top: var(--spacing-md); }
.mt-3 { margin-top: var(--spacing-lg); }
.mt-4 { margin-top: var(--spacing-xl); }

/* ========================================
   MOBILE
   ======================================== */
@media (max-width: 768px) {
	.grid-2,
	.grid-3,
	.grid-4 { grid-template-columns: 1fr; gap: var(--spacing-lg); }
	.card { padding: 16px 20px; }
	.stat-value { font-size: 20px; }
	.card-title { font-size: 18px; }
	.btn { width: 100%; }
	.table-container { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	table { min-width: 600px; }
}

/* ========================================
   PAGE POLISH (Dashboard, Signals, History, Decisions, Settings)
   ======================================== */

/* Dashboard - theme items consistent height */
.theme-item { display: flex; flex-direction: column; min-height: 180px; }
.theme-header { display: flex; justify-content: space-between; align-items: center; }
.theme-bar-container { margin-top: 8px; }
.theme-details { display: flex; justify-content: space-between; margin-top: 8px; }
.theme-value { margin-top: auto; font-weight: 600; color: var(--text-primary); }

/* Signals - prominent check button */
.signal-check-btn {
	background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
	color: #ffffff;
	padding: 14px 28px;
	font-size: 16px;
	font-weight: 600;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(2, 157, 110, 0.3);
	transition: all 0.3s ease;
}
.signal-check-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(2, 157, 110, 0.4); }

/* History - table improvements */
.changes-table table { width: 100%; border-collapse: separate; border-spacing: 0; }
.changes-table thead { position: sticky; top: 0; background: #1e293b; z-index: 2; box-shadow: 0 2px 8px rgba(0,0,0,0.2); }
.changes-table tbody tr:nth-child(even) { background: rgba(255,255,255,0.03); }
.changes-table th, .changes-table td { padding: 12px 16px; border-bottom: 1px solid rgba(148,163,184,0.1); }

/* Decisions - nicer empty state fallback */
#decision-list .no-data { text-align: center; padding: 40px 20px; color: var(--text-secondary); }

/* Decisions list visuals */
#decision-list .decision-item { background: rgba(255,255,255,0.04); border: 1px solid var(--border-default); border-radius: 8px; padding: 12px 14px; margin-bottom: 12px; color: var(--text-primary); }
#decision-list .decision-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
#decision-list .decision-symbol { font-weight: 600; }
#decision-list .decision-action { font-size: 12px; padding: 4px 8px; border-radius: 999px; border: 1px solid var(--border-default); }
#decision-list .decision-meta { color: var(--text-secondary); font-size: 12px; margin-top: 4px; }
#decision-list .decision-reasoning { color: var(--text-secondary); margin-top: 6px; }
#decision-list .decision-action.action-ACCEPTED { background: rgba(2,157,110,0.12); color: #029D6E; border-color: rgba(2,157,110,0.3); }
#decision-list .decision-action.action-DECLINED { background: rgba(239,68,68,0.12); color: #ef4444; border-color: rgba(239,68,68,0.3); }
#decision-list .decision-action.action-IGNORED { background: rgba(148,163,184,0.12); color: #94a3b8; border-color: rgba(148,163,184,0.3); }
#decision-list .decision-action.action-MODIFIED { background: rgba(59,130,246,0.12); color: #60a5fa; border-color: rgba(59,130,246,0.3); }

/* Settings - status badge */
.status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 6px; font-size: 13px; font-weight: 500; }
.status-badge.active { background: var(--color-primary-light); color: var(--color-success); }

/* Normalize card header color accent */
.card-header h2 { color: var(--text-primary); }

/* Refresh Portfolio button - match signal button */
.refresh-btn-small {
	background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
	color: #ffffff;
	padding: 10px 16px;
	font-size: 14px;
	font-weight: 600;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(2, 157, 110, 0.3);
	transition: all 0.3s ease;
}
.refresh-btn-small:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(2, 157, 110, 0.4);
}
