/* style.css — overrides légers pour Bootswatch Minty */
:root {
  --mt-accent: #2ecc71;
}

.bi {
  margin-right: 0.25rem;
}

html,
body {
  height: 100%;
}

.navbar {
  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.08);
  position: sticky;
  top: 0;
  z-index: 1030;
}

.navbar .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.navbar .btn {
  gap: 0.35rem;
}

.navbar .nav-link .bi,
.navbar .btn .bi {
  margin-right: 0;
}

.navbar .nav-brand-label,
.navbar .nav-icon-label,
.navbar .btn-label {
  font-weight: 600;
}

@media (max-width: 991.98px) {
  .navbar .nav-icon-label,
  .navbar .btn-label {
    display: none;
  }

  .navbar-nav {
    width: 100%;
  }

  .navbar .nav-link {
    padding-inline: 0.5rem;
  }
}

.card {
  border-radius: 1rem;
}
.card.shadow-sm {
  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.08);
}

main.container {
  max-width: 960px;
}

.fs-5.question {
  white-space: pre-wrap;
} /* à appliquer si besoin */

.btn-outline-secondary.disabled,
.btn.disabled {
  pointer-events: none;
  opacity: 0.6;
}

.table th,
.table td {
  vertical-align: middle;
}

.alert {
  border-radius: 0.75rem;
}

code {
  font-size: 0.95em;
}

.fade-me-out.htmx-swapping {
  opacity: 0;
  transition: opacity 1s ease-out;
}

.flag-emoji { font-size: 1em; line-height: 1; }

/* Chrome, Edge, Safari */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type="number"] {
  -moz-appearance: textfield;
}

.copied-text {
  opacity: 1;
  transition: opacity .3s linear;
}
.copied-text.fade-out {
  opacity: 0;
}

.jap-left-parenthesis {
  margin-left: -0.4em;
}

.recent-attempt-form {
  display: block;
}

.recent-attempt-button {
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  padding: 0;
  color: inherit;
}

.recent-attempt-button:hover,
.recent-attempt-button:focus-visible {
  background-color: var(--bs-primary-bg-subtle, rgba(13, 110, 253, 0.08));
  outline: none;
}

.difficulty-mode-form.htmx-request input[type="radio"]:checked + label .difficulty-saving-indicator.htmx-request {
  opacity: 1;
}

.difficulty-mode-form .difficulty-saved-feedback {
  color: var(--bs-success, #198754);
  opacity: 0;
  animation: difficulty-saved-fade 1s ease-in-out forwards;
}

@keyframes difficulty-saved-fade {
  0% {
    opacity: 0;
    transform: translateY(0.15rem);
  }

  10% {
    opacity: 1;
    transform: translateY(0);
  }

  80% {
    opacity: 1;
    transform: translateY(0);
  }

  100% {
    opacity: 0;
    transform: translateY(-0.15rem);
  }
}

.goal-progress-card {
  background-color: var(--bs-light, #f8f9fa);
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.goal-progress {
  height: 0.65rem;
  border-radius: 999px;
  background-color: rgba(0, 0, 0, 0.05);
}

.goal-progress-bar {
  background: linear-gradient(135deg, var(--mt-accent, #2ecc71), var(--bs-success, #198754));
  box-shadow: inset 0 0 0.35rem rgba(255, 255, 255, 0.3);
}

.goal-medal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  color: #fff;
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.15);
}

.goal-medal i {
  margin-right: 0;
}

.goal-medal-active {
  background: linear-gradient(135deg, #6c757d, #495057);
}

.goal-medal-bronze {
  background: linear-gradient(135deg, #cd7f32, #b46a24);
}

.goal-medal-silver {
  background: linear-gradient(135deg, #e0f0f0, #a3c3c3);
}

.goal-medal-gold {
  background: linear-gradient(135deg, #ffd700, #e0b000);
}

.goal-medal-generic,
.goal-medal-locked {
  background: linear-gradient(135deg, #adb5bd, #868e96);
}

.goal-tier-badge {
  font-weight: 600;
  border: 1px solid rgba(0, 0, 0, 0.08);
}
