html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
 margin: 0;
 padding: 0;
 border: 0;
 font-size: 100%;
 font: inherit;
 vertical-align: baseline;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
 display: block;
}
body {
 line-height: 1;
 box-sizing: border-box;
}
* {
  box-sizing: inherit;
}
ol, ul {
 list-style: none;
}
blockquote, q {
 quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
 content: '';
 content: none;
}
table {
 border-collapse: collapse;
 border-spacing: 0;
}

html, body {
  font-family: 'Rubik', sans-serif;
}
main {
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  font-family: inherit;
  background-color: #06b6d4;
  overflow: hidden;
}
.app {
  margin: auto;
  padding: 2rem;
  color: #020617;
}

[type=checkbox] {
  vertical-align: middle;
  -webkit-appearance: none;
  color: inherit;
  background-color: #f1f5f9;
  border: 0;
  border-radius: 50%;
  outline: 0;
  transition: background 300ms;
  cursor: pointer;
}
[type=checkbox]::before {
  content: "";
  display: block;
  width: inherit;
  height: inherit;
  color: transparent;
  background-color: transparent;
  background-size: contain;
  border: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px #f1f5f9;
}
[type=checkbox]:checked {
  background-color: currentcolor;
}
[type=checkbox]:checked::before {
  box-shadow: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath d='M15.88 8.29L10 14.17l-1.88-1.88a.996.996 0 1 0-1.41 1.41l2.59 2.59c.39.39 1.02.39 1.41 0L17.3 9.7a.996.996 0 0 0 0-1.41c-.39-.39-1.03-.39-1.42 0z' fill='%23fff'/%3E %3C/svg%3E");
}

.tasks {
  width: calc(100vw - 4rem);
}
.tasks[data-count="0"]::before {
  content: '\0263A';
  font-size: 240px;
  color: white;
  width: 100%;
  text-align: center;
  display: block;
}
.tasks li {
  margin-bottom: 2rem;
  font-size: 2rem;
  line-height: 1.4;
}
.tasks label {
  display: flex;
  align-items: start;
}
.tasks input {
  width: 1.8rem;
  height: 1.8rem;
  flex-shrink: 0;
  margin: 0.5rem 1rem 0 0;
  color: #ea580c;
}

.form {
  position: absolute;
  left: -100%;
  top: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #0e7490;
  transition: all 0.5s;
  visibility: hidden;
}
.form.visible {
  visibility: visible;
  left: 0;
}
.form label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.form label span {
  display: block;
  width: 100%;
  flex-shrink: 0;
  margin-bottom: 2rem;
  font-size: 2rem;
}
.form input {
  height: 36px;
  background-color: #f1f5f9;
  border: 0 none;
  border-radius: 0.25rem 0 0 0.25rem;
}
.form button {
  height: 36px;
  padding: 0 1rem;
  font-size: 2rem;
  font-weight: 700;
  color: #f1f5f9;
  background-color: #06b6d4;
  border: 0 none;
  border-radius: 0 0.25rem 0.25rem 0;
}

.toggle-form {
  position: absolute;
  bottom: 1.5rem;
  right: 1.5rem;
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.4rem;
  font-weight: 700;
  color: #06b6d4;
  border: 0 none;
  border-radius: 50%;
  cursor: pointer;
}
