html, body, #root {
  height: 100%;
}

:root {
  color-scheme: dark;
  --bg: #0f1115;
  --card: #141820;
  --muted: #a0aaba;
  --text: #cfd6e4; /* softer than pure white */
  --heading: #e2e8f3; /* slightly brighter for titles */
  --primary: #3d8bfd; /* softer primary */
  --border: #212836;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
}

.card { background: var(--card); color: var(--text); border-color: var(--border); border-radius: 12px; }
.card-title, .navbar-brand { color: var(--heading); }
.form-control, .form-select { background-color: #0f141b; color: var(--text); border-color: var(--border); }
.form-control::placeholder { color: #7f8aa1; }
.form-select option { color: #0f1115; background: #e6edf3; }
.btn-primary { background-color: var(--primary); border-color: var(--primary); color: #0c1220; }
.btn-outline-light { color: var(--text); border-color: var(--border); }
.btn-outline-light:hover { background: #1a2130; border-color: #2a3345; }
.text-muted { color: var(--muted) !important; }
.navbar .nav-link { color: var(--text); }
.navbar .nav-link.active, .navbar .nav-link:hover { color: var(--heading); }

/* Improve mobile navbar toggler visibility on dark background */
.navbar .navbar-toggler {
  border-color: #2a3345;
}
.navbar .navbar-toggler:focus {
  box-shadow: 0 0 0 0.15rem rgba(77, 115, 184, 0.35);
}
.navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23e2e8f3' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Typing indicator */
.typing { display: inline-flex; gap: 4px; align-items: center; }
.typing span {
  width: 6px; height: 6px; border-radius: 50%; background: #7f8aa1; display: inline-block; opacity: 0.4;
  animation: typingBlink 1.2s infinite ease-in-out;
}
.typing span:nth-child(2) { animation-delay: 0.15s }
.typing span:nth-child(3) { animation-delay: 0.3s }
@keyframes typingBlink { 0%, 80%, 100% { opacity: 0.3 } 40% { opacity: 1 } }

/* Dark lists (Bootstrap list-group overrides) */
.list-group-item {
  background: var(--card);
  color: var(--text);
  border-color: var(--border);
}
.list-group-item-action:hover, .list-group-item-action:focus {
  background: #1a2130;
  color: var(--heading);
}


