/* Light Theme Palette - Clean Modern Style */
:root {
    --bg-primary: #FAFAFA;
    --bg-surface: #F5F5F5;
    --text-primary: #1A1A1A;
    --text-secondary: #6B7280;
    --accent-success: #10B981;
    --accent-danger: #EF4444;
    --border-color: #E5E7EB;
    --bitcoin-color: #F59E0B;
}

/* Base styles */
* {
    box-sizing: border-box;
}

body {
    margin: 0;
    padding: 0;
    color: var(--text-primary);
    background-color: var(--bg-primary);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
    color: var(--text-primary);
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    margin-top: 0;
}

p, li, span, div {
    color: var(--text-primary);
}

/* Monospace font for numerical data */
.mono, 
.numeric,
[data-numeric],
.price,
.amount,
.percentage,
.roi,
.stat-value,
strong.numeric,
strong.price {
    font-family: 'JetBrains Mono', 'Roboto Mono', 'Space Mono', 'Courier New', monospace;
    font-weight: 500;
    letter-spacing: 0.02em;
}

/* Bitcoin accent color */
.bitcoin {
    color: var(--bitcoin-color);
}

/* Indicator styles */
.indicator {
    padding: 10px;
}

/* Buy signal indicators */
.buy-true {
    background-color: rgba(16, 185, 129, 0.1);
    border: 1px solid var(--accent-success);
    color: var(--accent-success);
}

.buy-false {
    background-color: rgba(239, 68, 68, 0.1);
    border: 1px solid var(--accent-danger);
    color: var(--accent-danger);
}

/* Links */
a, a:visited {
    color: var(--text-primary);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--accent-success);
    text-decoration: underline;
}

/* Separator/Section containers */
.separator {
    margin-top: 3em;
    margin-bottom: 2em;
    background-color: var(--bg-surface);
    padding: 20px;
    border-radius: 4px;
    border: 1px solid var(--border-color);
}

/* Full width banner */
.full-width-banner {
    width: 100%;
    padding: 20px;
    display: flex;
    justify-content: center;
    min-height: 80px;
    background-color: var(--bg-surface);
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    color: var(--text-secondary);
}

.full-width-banner strong {
    color: var(--text-primary);
}

/* Stat cards */
.stat-card {
    background-color: var(--bg-surface);
    padding: 20px;
    border-radius: 4px;
    margin-bottom: 1em;
    border: 1px solid var(--border-color);
}

.stat-card h5 {
    color: var(--text-primary);
    margin-bottom: 1em;
    font-size: 1.2em;
    font-weight: 600;
}

.stat-card ul {
    list-style: none;
    padding-left: 0;
}

.stat-card ul li {
    margin-bottom: 0.5em;
    padding: 0.3em 0;
    color: var(--text-secondary);
}

.stat-card ul li strong {
    color: var(--text-primary);
}

/* Success/Positive values */
.text-success,
.success,
.positive,
[data-positive="true"] {
    color: var(--accent-success) !important;
}

/* Danger/Negative values */
.text-danger,
.danger,
.negative,
[data-negative="true"] {
    color: var(--accent-danger) !important;
}

/* Buttons */
.btn {
    border-radius: 4px;
    border: 1px solid var(--border-color);
    padding: 10px 20px;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    transition: all 0.2s ease;
    cursor: pointer;
}

.btn-primary {
    background-color: var(--text-primary);
    color: var(--bg-primary);
    border-color: var(--text-primary);
}

.btn-primary:hover {
    background-color: var(--accent-success);
    border-color: var(--accent-success);
    color: var(--bg-primary);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}

.btn-success {
    background-color: var(--accent-success);
    color: var(--bg-primary);
    border-color: var(--accent-success);
}

.btn-success:hover {
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
}

.btn-danger {
    background-color: var(--accent-danger);
    color: var(--bg-primary);
    border-color: var(--accent-danger);
}

.btn-danger:hover {
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

/* Bootstrap overrides */
.container {
    color: var(--text-primary);
}

/* Bootstrap dark theme overrides */
.bg-dark {
    background-color: var(--bg-surface) !important;
}

.text-white {
    color: var(--text-primary) !important;
}

.text-muted {
    color: var(--text-secondary) !important;
}

.border {
    border-color: var(--border-color) !important;
}

/* Ensure Bootstrap cards use our theme */
.card {
    background-color: var(--bg-surface);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    color: var(--text-primary);
}

.card-header {
    background-color: var(--bg-surface);
    border-bottom: 1px solid var(--border-color);
    color: var(--text-primary);
}

.card-body {
    color: var(--text-primary);
}

/* Table styling */
.table {
    color: var(--text-primary);
}

.table-dark {
    background-color: var(--bg-surface);
    color: var(--text-primary);
}

.table-dark th,
.table-dark td {
    border-color: var(--border-color);
}

/* Form controls */
.form-control {
    background-color: var(--bg-surface);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    border-radius: 4px;
}

.form-control:focus {
    background-color: var(--bg-primary);
    border-color: var(--accent-success);
    color: var(--text-primary);
    box-shadow: 0 0 0 0.2rem rgba(16, 185, 129, 0.25);
}

.form-control::placeholder {
    color: var(--text-secondary);
}

/* Select dropdowns */
.form-select {
    background-color: var(--bg-surface);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    border-radius: 4px;
}

.form-select:focus {
    border-color: var(--accent-success);
    box-shadow: 0 0 0 0.2rem rgba(16, 185, 129, 0.25);
}

/* Ensure all strong tags with prices/numbers use monospace */
strong.price,
strong.numeric,
strong.mono {
    font-family: 'JetBrains Mono', 'Roboto Mono', 'Space Mono', monospace;
}

/* Chart container adjustments */
canvas {
    background-color: var(--bg-surface);
    border-radius: 4px;
    border: 1px solid var(--border-color);
    padding: 10px;
}

/* Code/formula blocks */
code,
pre,
.formula {
    font-family: 'JetBrains Mono', 'Roboto Mono', 'Space Mono', monospace;
    background-color: var(--bg-surface);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    padding: 10px;
    color: var(--text-primary);
}

/* Utility classes */
.text-muted {
    color: var(--text-secondary) !important;
}

.border-subtle {
    border: 1px solid var(--border-color);
}

.bg-surface {
    background-color: var(--bg-surface);
}

/* Ensure all numerical displays use monospace */
.stat-card ul li strong:has(+ .mono),
.stat-card ul li .mono {
    font-family: 'JetBrains Mono', monospace;
}

/* Digest content */
.digest-content h4 {
    font-size: 1rem;
    font-weight: 600;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    color: var(--text-primary);
}

.digest-content h4:first-child {
    margin-top: 0;
}

.digest-content p {
    margin-bottom: 0.75rem;
    color: var(--text-secondary);
    line-height: 1.7;
}

.digest-content a {
    color: var(--bitcoin-color);
    font-weight: 600;
    font-size: 1.05rem;
    display: inline-block;
    margin-top: 0.75rem;
    margin-bottom: 1.75rem;
    padding: 0.4rem 0;
    border-bottom: 2px solid var(--bitcoin-color);
    text-decoration: none;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.digest-content a:hover {
    color: #D97706;
    border-color: #D97706;
}
