/* --- Variables --- */
:root {
  --bg-color: #f4f7f6; /* Very light, slightly cool gray */
  --card-bg: #ffffff;
  --text-color: #3a3f44; /* Dark grayish blue */
  --heading-color: #2c3e50; /* Darker slate blue */
  --accent-blue: #3498db; /* Brighter blue for accents if needed */
  --border-color: #e1e8ed; /* Light blue-gray border */
  --shadow-color: rgba(44, 62, 80, 0.08); /* Shadow based on heading color */
  --cozy-green: #77dd77; /* Pastel green */
  --cozy-red: #ff6961;   /* Pastel red */
  --cozy-neutral: #aec6cf; /* Pastel blue-gray for neutral */
  --font-primary: 'Inter', sans-serif;
  --font-mono: 'Source Code Pro', monospace;
}

/* --- Reset & Base --- */
body {
  font-family: var(--font-primary);
  line-height: 1.65;
  background-color: var(--bg-color);
  color: var(--text-color);
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  min-height: 100vh;
}

.container {
  max-width: 750px; /* Slightly narrower */
  width: 100%;
  padding: 2.5em 1.5em 3em 1.5em;
  box-sizing: border-box;
}

/* --- Typography --- */
h1 {
  font-size: 2.6em;
  font-weight: 600;
  color: var(--heading-color);
  text-align: center;
  margin-bottom: 2em; /* More space below title */
  padding-bottom: 0.5em;
}

h2 {
  font-size: 1.4em; /* Base size */
  font-weight: 500;
  color: var(--heading-color);
  margin: 0 0 0.8em 0; /* Reset margin */
  padding-bottom: 0.3em;
  border-bottom: 1px solid var(--border-color);
  transition: color 0.3s ease; /* Smooth color transition */
}

/* --- Recommendation Cards --- */
.recommendation-card {
  background-color: var(--card-bg);
  padding: 1.8em;
  border-radius: 12px; /* More rounded */
  margin-bottom: 2em;
  box-shadow: 0 5px 15px var(--shadow-color);
  border: 1px solid var(--border-color);
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}

.recommendation-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px var(--shadow-color);
}

/* --- Today vs Tomorrow Distinction --- */
#today-card {
  padding: 2.2em; /* More padding for today */
  border-left: 5px solid var(--accent-blue); /* Default accent */
}

#today-card h2 {
  font-size: 1.6em; /* Larger heading for today */
}

#today-card pre {
  font-size: 0.95em; /* Slightly larger pre for today */
}

#tomorrow-card {
  opacity: 0.9; /* Slightly faded */
}

/* --- Preformatted Text (Recommendations) --- */
pre {
  font-family: var(--font-mono);
  font-size: 0.9em; /* Base size */
  line-height: 1.7;
  background-color: #f8f9fa; /* Match body bg */
  padding: 1em 1.2em;
  border-radius: 6px;
  overflow-x: auto;
  white-space: pre-wrap;
  word-wrap: break-word;
  border: 1px solid #e9ecef;
  color: #495057;
  margin-top: 0.5em;
  border-left: 5px solid var(--cozy-neutral); /* Default border */
  transition: border-color 0.3s ease;
}

/* --- Color Coding --- */
.recommendation-card.bullish { border-left-color: var(--cozy-green); }
.recommendation-card.bearish { border-left-color: var(--cozy-red); }
/* Keep neutral border for neutral/default */

.recommendation-card.bullish h2 { color: #3d9970; } /* Darker cozy green */
.recommendation-card.bearish h2 { color: #d9534f; } /* Darker cozy red */

.recommendation-card.bullish pre { border-left-color: var(--cozy-green); }
.recommendation-card.bearish pre { border-left-color: var(--cozy-red); }

/* --- Footer --- */
footer {
  margin-top: 4em;
  text-align: center;
  color: #adb5bd;
  font-size: 0.85em;
  border-top: 1px solid var(--border-color);
  padding-top: 1.5em;
}

/* --- Responsive --- */
@media (max-width: 600px) {
  .container {
    padding: 1.5em 1em 2em 1em;
  }
  h1 { font-size: 2.1em; }
  #today-card h2 { font-size: 1.4em; }
  h2 { font-size: 1.2em; }
  .recommendation-card { padding: 1.5em; }
  #today-card { padding: 1.8em; }
  pre { font-size: 0.85em; }
  #today-card pre { font-size: 0.9em; }
}
