* {
  padding: 0;
  margin: 0;
  font-family: consolas;
  box-sizing: border-box;
}

body {
  display: flex;
  height: 100vh;
  width: 100%;
  justify-content: center;
  align-items: center;
  place-items: center;
  background: linear-gradient(to right, #9796f0, #474faf);
  overflow: hidden;
}

.calendar {
  height: 30rem;
  width: max-content;
  background-color: white;
  border-radius: 25px;
  overflow: hidden;
  padding: 35px 50px 0px 50px;
}

.calendar {
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
}

.calendar-header {
  background: #8089FE;
  display: flex;
  justify-content: space-between;
  border-radius: 7px;
  align-items: center;
  font-weight: 700;
  color: #ffffff;
  padding: 10px;
}

.calendar-body {
  padding: 10px;
}

.calendar-week-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  font-weight: 600;
  color: rgb(104, 104, 104);
}

.calendar-week-days div {
  display: grid;
  place-items: center;
  color: #6D67CF;
  height: 50px;
}

.calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  color: #0A0921;
}

.calendar-days div {
  width: 37px;
  height: 33px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px;
  position: relative;
  cursor: pointer;
  animation: to-top 1s forwards;
}

/* .year-picker {
  padding: 5px 10px;
  border-radius: 10px;
  cursor: pointer;
} */

/* .month-picker {
  display: flex;
  align-items: center;
} */

/* é a flechinha do lado do mes */
.month-change {
  height: 30px;
  width: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin: 0px 10px;
  cursor: pointer;
}
.month-change:hover {
  background-color: #9796f0;
  transition: all .2s ease-in-out;
  transform: scale(1.12);
}

.calendar-footer {
  padding: 0px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

#year:hover {
  cursor: pointer;
  transform: scale(1.2);
  transition: all 0.2 ease-in-out;
}

.calendar-days div span {
  position: absolute;
}

.calendar-days div:hover {
  transition: width 0.2s ease-in-out, height 0.2s ease-in-out;
  background-color: #fbc7d4;
  border-radius: 20%;
  color: #f8fbff;
}

.calendar-days div.current-date {
  color: #f8fbff;
  background-color: #9796f0;
  border-radius: 20%;
}


/* estilo da lista de anos */
.year-list  {
  position: relative;
  left: 0;
  top: -130px;
  background-color: #ebebeb;
  color: #151426;
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 5px;
  border-radius: 20px;
}
.year-list>div {
  display: grid;
  place-content: center;
  margin: 5px 10px;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}


/* estilos do ano */
.year-list>div>div {
  border-radius: 15px;
  padding: 10px;
  cursor: pointer;
}
.year-list>div>div:hover {
  background-color: #9796f0;
  color: #f8fbff;
  transform: scale(0.9);
  transition: all 0.2s ease-in-out;
}
.year-list .hideonce {
  visibility: hidden;
}
.year-list.hide {
  visibility: hidden;
  pointer-events: none;
}

.year-list.show {
  visibility: visible;
  pointer-events: all;
  transition: all 0.6s ease-in-out;
  animation: to-left 0.71s forwards;
}

/* .......................... */

/* estilos da data, não alterar */
.date-time-formate {
  height: 4rem;
  width: 100%;
  font-family: Dubai Light, Century Gothic;
  position: relative;
  display: flex;
  top: 50px;
  justify-content: center;
  align-items: center;
}

.day-text-formate {
  font-family: Microsoft JhengHei UI;
  font-size: 1.4rem;
  padding-right: 5%;
  border-right: 3px solid #9796f0;
}

.date-time-value {
  display: block;
  position: relative;
  text-align: center;
  padding-left: 5%;
}

.time-formate {
  font-size: 1.5rem;
}

.time-formate.hideTime {
  animation: hidetime 1.5s forwards;
}

.day-text-formate.hidetime {
  animation: hidetime 1.5s forwards;
}

.date-formate.hideTime {
  animation: hidetime 1.5s forwards;
}

.day-text-formate.showtime {
  animation: showtime 1s forwards;
}

.time-formate.showtime {
  animation: showtime 1s forwards;
}

.date-formate.showtime {
  animation: showtime 1s forwards;
}

@keyframes to-top {
  0% {
    transform: translateY(0);
    opacity: 0;
  }

  100% {
    transform: translateY(100%);
    opacity: 1;
  }
}

@keyframes to-left {
  0% {
    transform: translatex(230%);
    opacity: 1;
  }

  100% {
    transform: translatex(0);
    opacity: 1;
  }
}

@keyframes to-right {
  10% {
    transform: translatex(0);
    opacity: 1;
  }

  100% {
    transform: translatex(-150%);
    opacity: 1;
  }
}

@keyframes showtime {
  0% {
    transform: translatex(250%);
    opacity: 1;
  }

  100% {
    transform: translatex(0%);
    opacity: 1;
  }
}

@keyframes hidetime {
  0% {
    transform: translatex(0%);
    opacity: 1;
  }

  100% {
    transform: translatex(-370%);
    opacity: 1;
  }
}