/* HTML: <div class="loader"></div> */
.loader {
  margin-left: 50%;
  width: 50px;
  aspect-ratio: 1;
  display: grid;
}
.loader::before,
.loader::after {
  content: "";
  grid-area: 1/1;
  --c: no-repeat radial-gradient(farthest-side, #25b09b 92%, #0000);
  background: var(--c) 50% 0, var(--c) 50% 100%, var(--c) 100% 50%, var(--c) 0 50%;
  background-size: 12px 12px;
  animation: l12 1s infinite;
}
.loader::before {
  margin: 4px;
  filter: hue-rotate(45deg);
  background-size: 8px 8px;
  animation-timing-function: linear;
}

@keyframes l12 {
  100% {
    transform: rotate(0.5turn);
  }
}

/* 科目別のGPAを集計する際のローダー */
/* HTML: <div class="loader"></div> */
.loader2 {
  text-align: center;
  width: 120px;
  height: 20px;
  border-radius: 20px;
  background: repeating-linear-gradient(135deg, #f03355 0 10px, #ffa516 0 20px) 0/0% no-repeat,
    repeating-linear-gradient(135deg, #ddd 0 10px, #eee 0 20px) 0/100%;
  animation: l3 2s infinite;
}

@keyframes l3 {
  100% {
    background-size: 100%;
  }
}

.GPA_total_loader {
  display: block;
  margin-left: 50%;
}

.loader3 {
  text-align: center;
  width: 120px;
  height: 20px;
  border-radius: 20px;
  background: repeating-linear-gradient(135deg, #f03355 0 10px, #ffa516 0 20px) 0/0% no-repeat,
    repeating-linear-gradient(135deg, #ddd 0 10px, #eee 0 20px) 0/100%;
  animation: l3 2s infinite;
}

.GPA_loader {
  display: block;

  margin-top: 20px;
  margin-bottom: 10px;
  margin-left: 50%;
}
