/* Define primary colors */
:root {
  --primary-color: rgba(76, 175, 80, 0.8);
  --secondary-color: rgba(33, 150, 243, 0.8);
  --tertiary-color: rgba(156, 39, 176, 0.8);
  --quaternary-color: rgba(255, 152, 0, 0.8);
}

/* General styling */
body,
table,
td,
button,
.mois,
.label {
  margin: 15px 5px;
  padding: 5px 5px;
  border-radius: 5px;
  border-color: transparent;
  font-weight: 900;
  transition: all 0.3s ease;
}

table {
  width: 100%;
  max-width: 960px;
  background-color: #eee;
  box-shadow: 0px 5px 15px #242434;
  position: relative;
  margin: 15px auto;
  opacity: 0.9;
}

body {
  max-width: 960px;
  background-color: #ffffff;
  box-shadow: 0px 5px 15px #242434;
  position: relative;
  margin: 0 auto;
}

button,
.mois,
.label {
  min-width: 100px;
  font-size: medium;
}

/* Color variations */
.darkorange {
  background-color: rgba(231, 184, 90, 0.47);
}
.darkgreen {
  background-color: rgba(0, 100, 0, 0.813);
}

/* Form elements */
.user--input,
.user--input1,
.btn--chercher {
  min-width: 600px;
  font-size: x-large;
  background-color: rgba(205, 224, 192, 0.815);
}

/* Button styles */
button {
  background-color: var(--primary-color);
  color: rgba(255, 255, 255, 0.857);
  box-shadow: 2px 5px 5px #343434cd;
}

/* Hover and focus effects */
button:hover,
button:active,
.mois:focus {
  background-color: var(--secondary-color);
  color: white;
}

.user--input:hover,
td:hover {
  background-color: rgba(205, 224, 192, 0.815);
  color: white;
}

/* Spinner animation */
.spinner {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 75%);
  width: auto;
  height: 450px;
  z-index: 9999;
  perspective: 2000px;
}

.spinner::before,
.spinner::after {
  content: "";
  position: absolute;
  top: 70%;
  left: 50%;
  width: 5px;
  height: 5px;
  margin: -120px 0 0 -120px;
  border-radius: 50% 20% 60% 50%;
  border: 40px solid transparent;
  border-top-color: var(--primary-color);
  border-bottom-color: var(--primary-color);
  animation: spin 4s cubic-bezier(0.6, 0, 0.4, 1) infinite,
    depth 4s ease-in-out infinite alternate, color-change 8s linear infinite;
  transform-origin: center center;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  box-shadow: 0 0 40px var(--primary-color), inset 0 0 20px var(--primary-color);
}

.spinner::after {
  width: 6px;
  height: 6px;
  margin: -80px 0 0 -80px;
  border-top-color: var(--tertiary-color);
  border-bottom-color: var(--tertiary-color);
  animation-direction: reverse;
  animation-delay: -2s;
  box-shadow: 0 0 40px var(--tertiary-color),
    inset 0 0 20px var(--tertiary-color);
}

@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes depth {
  0% {
    transform: translateZ(0);
  }
  100% {
    transform: translateZ(200px);
  }
}
@keyframes color-change {
  0%,
  100% {
    border-top-color: var(--primary-color);
    border-bottom-color: var(--primary-color);
  }
  25% {
    border-top-color: var(--secondary-color);
    border-bottom-color: var(--secondary-color);
  }
  50% {
    border-top-color: var(--tertiary-color);
    border-bottom-color: var(--tertiary-color);
  }
  75% {
    border-top-color: var(--quaternary-color);
    border-bottom-color: var(--quaternary-color);
  }
}

/* Glitch effect */
@keyframes glitch {
  0% {
    transform: translate3d(-50%, -50%, 0) skew(0deg);
    opacity: 1;
  }
  20% {
    transform: translate3d(-55%, -45%, 0) skew(-45deg);
    opacity: 0.7;
  }
  40% {
    transform: translate3d(-45%, -55%, 0) skew(45deg);
    opacity: 0.4;
  }
  60% {
    transform: translate3d(-55%, -45%, 0) skew(-45deg);
    opacity: 0.7;
  }
  80% {
    transform: translate3d(-45%, -55%, 0) skew(45deg);
    opacity: 1;
  }
  100% {
    transform: translate3d(-50%, -50%, 0) skew(0deg);
    opacity: 1;
  }
}

/* Neon effect */
@keyframes neon {
  0% {
    filter: brightness(1) hue-rotate(0deg);
  }
  100% {
    filter: brightness(2) hue-rotate(360deg);
  }
}

/* Scale effect */
@keyframes scale {
  0% {
    transform: translate3d(-50%, -50%, 0) scale(1) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
  }
  50% {
    transform: translate3d(-50%, -50%, 0) scale(1.2) rotateX(180deg)
      rotateY(180deg) rotateZ(180deg);
  }
  100% {
    transform: translate3d(-50%, -50%, 0) scale(1) rotateX(360deg)
      rotateY(360deg) rotateZ(360deg);
  }
}

/* Fade animation */
@keyframes fade {
  0%,
  100% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
}
