/* Global dark theme enhancements for the SPA */
:root {
  /* Slightly brighter secondary text on pure black */
  --fd-muted-rgb: 173, 181, 189; /* approx. Bootstrap text-secondary */
}

html[data-bs-theme='dark'],
html[data-bs-theme='dark'] body,
body {
  background-color: #000 !important;
  color: #e9ecef; /* text-light-ish */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Make muted text slightly more legible on black */
html[data-bs-theme='dark'] .text-muted,
.text-muted {
  color: rgba(var(--fd-muted-rgb), 0.8) !important;
}

/* Improve link contrast and interactions */
a {
  text-underline-offset: 2px;
}

a:hover {
  text-decoration: underline;
}

/* Better visible focus for keyboard users on dark */
:where(a, button, .btn, [tabindex]) :focus,
:where(a, button, .btn, [tabindex]):focus,
:where(a, button, .btn, [tabindex]):focus-visible {
  outline: 2px solid rgba(13, 110, 253, 0.75); /* primary */
  outline-offset: 2px;
}

/* Subtle separators */
hr {
  opacity: 0.12;
}

/* Cards/Modals/Dropdowns a tad darker than default to blend into pure black */
.card,
.modal-content,
.dropdown-menu,
.offcanvas,
.list-group-item {
  background-color: #0b0b0b;
}

/* Borders a bit dimmer on black */
.card,
.modal-content,
.dropdown-menu,
.offcanvas,
.list-group-item,
.table,
.table > :not(caption) > * > * {
  border-color: rgba(255, 255, 255, 0.08) !important;
}

/* Placeholders (skeletons) a bit dimmer */
.placeholder {
  background-color: rgba(255, 255, 255, 0.08);
}
.placeholder-glow .placeholder {
  animation: placeholder-glow 2s ease-in-out infinite;
}
@keyframes placeholder-glow {
  50% {
    opacity: 0.4;
  }
}

/* Buttons: subtle shadow to lift from black bg */
.btn {
  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.35);
}

/* Utility: center min height fix for mobile address bar */
.min-vh-100 {
  min-height: 100svh !important; /* accounts for mobile safe viewport */
}
