:root {
  --primary-color: #B7A196;
  --secondary-color: #DDC3D0;
  --third-color: #dbdaea;
  --font-color: #333333;
  --background-color: #4a6741;
  --background-color-dark: #3b5234;
  --light-background-color: #f7f5eb;
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  font-family: Poppins, sans-serif;
  box-sizing: border-box;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

body {
  background-color: var(--background-color);
  margin: 0;
  padding: 0;
  height: 100vh;
}

.hero {
  display: block;
  max-width: 620px;
  margin: auto;
}

.content {
  display: flex;
  align-items: center;
  text-align: center;
  min-height: 100vh;
  width: 100%;
  flex-direction: column;
  justify-content: start;
  position: relative;
  margin-top: 32px;
}

.title {
  -webkit-animation: slide-top 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) reverse both;
	animation: slide-top 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) reverse both;
}

@-webkit-keyframes title {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  100% {
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
}
@keyframes slide-top {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  100% {
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
}


h1 {
  margin: 0;
  padding: 0;
  color: var(--light-background-color);
  font-size: 42px;
}

h2 {
  margin: 0;
  padding: 0;
  font-weight: 600;
  display: flex;
  justify-content: center;
}

.timer-container {
  background-color: var(--light-background-color);
  color: var(--font-color);
  padding: 20px;
  margin-top: 32px;
  border-radius: 10px;
  max-width: 480px;
  min-width: 480px;
  -webkit-box-shadow: 5px 5px 7px 0px rgba(0,0,0,0.73); 
  box-shadow: 5px 5px 7px 0px rgba(0,0,0,0.73);
}

#timer-header {
  margin-bottom: 20px;
}

#timer-display {
  display: flex;
  justify-content: center;
  font-size: 110px;
}

#start-timer-btn, #stop-timer-btn, #focus-btn, #short-break-btn, #long-break-btn, #reset-timer-btn {
  background-color: var(--background-color);
  color: white;
  border-radius: 5px;
  border: 1px solid var(--font-color);
  -webkit-box-shadow: 5px 5px 12px 5px rgba(0,0,0,0.19); 
  box-shadow: 5px 5px 12px 5px rgba(0,0,0,0.19);
  padding: 12px;
  cursor: pointer;
  transition: .3s ease;
}

#start-timer-btn:hover, #stop-timer-btn:hover, #focus-btn:hover, #short-break-btn:hover, #long-break-btn:hover, #reset-timer-btn:hover {
  background-color: var(--background-color-dark);
}

.task-list-container {
  background-color: var(--light-background-color);
  color: var(--font-color);
  padding: 20px;
  border-radius: 10px;
  margin-top: 20px;
  margin-bottom: 32px;
  max-width: 480px;
  min-width: 480px;
  -webkit-box-shadow: 5px 5px 7px 0px rgba(0,0,0,0.73); 
  box-shadow: 5px 5px 7px 0px rgba(0,0,0,0.73);
}

#task-header {
  margin-bottom: 20px;
}

.input-container {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
  position: relative;
}

#add-task-btn {
  background-color: var(--background-color);
  color: white;
  border: 1px solid var(--font-color);
  border-left: 0px;
  height: 37px;
  padding: 0px 10px;
  position: absolute;
  right: 0;
  top: 0;
  border-radius: 0px 5px 5px 0px;
  cursor: pointer;
  font-size: large;
  transition: .3s ease;
}

#add-task-btn:hover {
  background-color: var(--background-color-dark);
}

#task-input {
  width: 100%;
  padding: 10px;
  padding-right: 40px;
  margin-bottom: 10px;
  border: 1px solid var(--font-color);
  border-radius: 5px;
}

ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
  overflow: auto;
}

.my-checkbox {
  margin-right: 10px;
  cursor: pointer;
  accent-color: green;
}

.task.completed .task-label {
  text-decoration: line-through;
  opacity: .6;
}

.task {
  display: flex;
  align-items: center;
  text-align: start;
  margin-bottom: 10px;
  position: relative;
}

.task-label {
  padding-right: 22px;
}

.task-label:hover {
  cursor: pointer;
}

.delete-icon {
  position: absolute;
  right: 0;
  cursor: pointer;
  visibility: hidden;
}

.task:hover .delete-icon {
  visibility: visible;
}

.delete-icon:hover {
  color: red;
  transition: .2s ease-in;
}

.task-footer {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  border-top: 1px solid var(--font-color);
  padding-top: 20px;
  position: relative;
}

.filter-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-align: center;
  gap: 10px;
  width: 100%
}

#task-number {
  font-size: 12px;
  position: absolute;
  left: 0;
  bottom: auto;
}

.filter-control-buttons {
  background-color: var(--background-color);
  color: white;
  border-radius: 5px;
  border: 1px solid var(--font-color);
  -webkit-box-shadow: 5px 5px 12px 5px rgba(0,0,0,0.19); 
  box-shadow: 5px 5px 12px 5px rgba(0,0,0,0.19);
  padding: 6px;
  cursor: pointer;
  transition: .3s ease;
}

.filter-control-buttons:hover {
  background-color: var(--background-color-dark);
}

#clear-completed-items {
  font-size: 12px;
  cursor: pointer;
  position: absolute;
  right: 0;
  top: auto;
}

#clear-completed-items:hover {
  text-decoration: underline;
}

.timer-container, .task-list-container {
  -webkit-animation: fade-in 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
	animation: fade-in 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

@-webkit-keyframes timer-container, task-list-container {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

footer {
  display: flex;
  justify-content: center;
  align-items: center;
}

.author:hover {
  color: var(--light-background-color);
  cursor: pointer;
  transition: .2s ease-in;
}

a {
  color: black;
  text-decoration: none;
}

/* Responsive Design */
@media screen and (max-width: 600px) {
  .timer-container, .task-list-container {
    max-width: 90%;
    min-width: 90%;
  }

  h1 {
    font-size: 32px;
  }

  #timer-display {
    font-size: 80px;
  }

  .input-container {
    flex-direction: column;
    gap: 4px;
  }

  #add-task-btn {
    width: 100%;
    position: static;
    border-left: 1px solid var(--font-color);
    border-radius: 5px;
  }

  .delete-icon {
    visibility: visible;
  }

  #task-number {
    font-size: 10px;
  }
  
  #clear-completed-items {
    font-size: 10px;
  }
}

@media screen and (min-width: 600px) and (max-width: 768px) {
  .input-container {
    flex-direction: column;
    gap: 4px;
  }
  
  #add-task-btn {
    width: 100%;
    position: static;
    border-left: 1px solid var(--font-color);
    border-radius: 5px;
  }

  .delete-icon {
    visibility: visible;
  }

  #task-number {
    font-size: 10px;
  }
}

@media screen and (min-width: 768px) and (max-width: 992px) {
    .input-container {
    flex-direction: column;
    gap: 4px;
  }
  
  #add-task-btn {
    width: 100%;
    position: static;
    border-left: 1px solid var(--font-color);
    border-radius: 5px;
  }

  .delete-icon {
    visibility: visible;
  }

  #task-number {
    font-size: 10px;
  }
}