body {
  font-family: "Inter", sans-serif;
  background-color: #f0f2f5; /* Light grey background */
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
}
.main-container {
  max-width: 800px;
  width: 100%;
  background-color: #ffffff;
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  margin-bottom: 30px;
  border-top: 5px solid #007bff; /* Academic accent */
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 600;
  color: #007bff; /* Primary blue for headings */
}
.form-control,
.btn {
  border-radius: 8px;
}
.btn-primary {
  background-color: #007bff;
  border-color: #007bff;
  transition: background-color 0.3s ease, border-color 0.3s ease,
    transform 0.2s ease;
  font-weight: bold;
  letter-spacing: 0.5px;
}
.btn-primary:hover {
  background-color: #0056b3;
  border-color: #0056b3;
  transform: translateY(-2px);
}
.btn-primary:active {
  transform: translateY(0);
}
.loading-spinner {
  display: none;
  margin-top: 20px;
  text-align: center;
}
.message-box {
  margin-top: 20px;
  padding: 15px;
  border-radius: 8px;
  font-weight: bold;
  display: none;
  animation: fadeIn 0.5s ease-out;
}
.message-box.success {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}
.message-box.error {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}
.message-box.info {
  background-color: #d1ecf1;
  color: #0c5460;
  border: 1px solid #bee5eb;
}
.article-output {
  margin-top: 30px;
  border: 1px solid #e9ecef;
  padding: 20px;
  border-radius: 8px;
  background-color: #f8f9fa;
  text-align: left;
  white-space: pre-wrap; /* Preserve whitespace and line breaks */
  font-size: 0.9em;
  max-height: 400px; /* Limit height for preview */
  overflow-y: auto; /* Add scroll if content overflows */
  animation: fadeIn 0.8s ease-out;
}
.download-link {
  margin-top: 15px;
  text-align: center;
}
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.form-label {
  font-weight: 500;
  color: #343a40;
}
.lead {
  color: #6c757d;
}
