aside {
  --sidebar-background: #fff;
  --sidebar-text: var(--text);
  --sidebar-interact-guide-text: #888;
  --sidebar-status-toggle-background: #ddd;
}

.night aside {
  --sidebar-background: #000;
  --sidebar-interact-guide-text: #aaa;
  --sidebar-status-toggle-background: #444;
}

aside {
  color: var(--sidebar-text);
}

aside div#interact p {
  margin-bottom: 0.5em;
}

aside div#interact_options {
  margin: 0.65em 0 0.35em;
}

aside div#interact_options .interact_option {
  display: inline-block;
  margin: 0.2em 0.2em 0.2em 0;
  padding: 0.15em 0.5em;
  font-size: 0.8em;
  /* line-height: 1.85em; */
  /* background: var(--accent); */
  border: 1px solid var(--accent);
  /* color: #fff; */
  color: var(--accent);
  border-radius: 0.65em;
  cursor: pointer;
  --transition-duration: 0.15s;
  -webkit-transition-duration: var(--transition-duration);
  transition-duration: var(--transition-duration);
  -webkit-transition-property: background, color;
  transition-property: background, color;
}

aside div#interact_options .interact_option:hover {
  background: var(--accent);
  color: #fff;
}

aside div#interact_options .interact_option:focus {
  outline: 1px solid var(--accent);
}

aside div#interact input#interact_input {
  width: 100%;
  margin-top: 0.25em;
  padding: 0.35em;
  font-family: var(--font);
  font-size: 0.875em;
  color: var(--text);
  background-color: transparent;
  border: none;
  border-radius: 0;
  outline-color: var(--accent);
  border-bottom: 1px solid var(--accent);
}

aside div#interact input#interact_input::-webkit-input-placeholder {
  /* font-weight: bold; */
  /* font-style: italic; */
}

aside div#interact input#interact_input:-ms-input-placeholder {
  /* font-weight: bold; */
  /* font-style: italic; */
}

aside div#interact input#interact_input::-ms-input-placeholder {
  /* font-weight: bold; */
  /* font-style: italic; */
}

aside div#interact input#interact_input::placeholder {
  /* font-weight: bold; */
  /* font-style: italic; */
}

aside div#interact_guide {
  margin-top: 0.5em;
  font-size: 0.8em;
  color: var(--sidebar-interact-guide-text);
  line-height: 1.25em;
}

aside div#interact_guide div:not(:first-child) {
  font-style: italic;
}

aside div#interact div#interact_suggestions {
  display: none;
  margin-top: 0.6em;
  font-size: 0.8em;
  opacity: 0;
  --transition-duration: 0.35s;
  -webkit-transition: opacity var(--transition-duration);
  transition: opacity var(--transition-duration);
}

aside div#interact div#interact_suggestions div#suggestions_title {
  color: #888;
  font-style: italic;
}

aside div#interact div#interact_suggestions div#suggestions_box {
  color: var(--accent);
}

aside div#interact div#interact_suggestions div#suggestions_box .suggestion {
  cursor: pointer;
}

aside div#interact div#interact_suggestions div#suggestions_box .suggestion:hover {
  color: var(--text);
  font-weight: bold;
}

aside div#interact div#interact_suggestions div#suggestions_other {
  color: #888;
  font-style: italic;
  font-size: 0.9em;
}

aside div#recs {
  display: none;
  font-size: 0.9em;
  padding-left: 0.5em;
}

aside div#recs.show {
  display: block;
}

aside div#recs p {
  margin: 0.5em 0;
}

aside div#recs a {
  display: inline-block;
  margin: 0.2em 0.2em 0.2em 0;
  padding: 0.15em 0.35em;
  font-size: 0.8em;
  border: 1px solid var(--accent);
  color: var(--accent);
  line-height: 1.65em;
  border-radius: 0.65em;
  cursor: pointer;
  --transition-duration: 0.15s;
  -webkit-transition-duration: var(--transition-duration);
  transition-duration: var(--transition-duration);
  -webkit-transition-property: background, color;
  transition-property: background, color;
}

aside div#recs a:hover {
  background: var(--accent);
  color: #fff;
}

aside div#recs a:focus {
  outline: 1px solid var(--accent);
}

aside div#status .status_row span {
  display: inline-block;
  vertical-align: middle;
}

aside div#status .status_row span.status_toggle {
  /* margin: 0 0.75em 0 0.35em; */
  margin-right: 0.75em;
  height: 0.45em;
  width: 1.15em;
  background: var(--sidebar-status-toggle-background);
  border-radius: 0.5em;
}

aside div#status .status_row span.status_toggle::before {
  --size: 0.65em;
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  height: var(--size);
  width: var(--size);
  background: var(--accent);
  border-radius: 100%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

aside div#status .status_row span.status_toggle.on::before {
  right: 0;
}

aside div#status .status_row span.status_toggle:not(.on)::before {
  left: 0;
}

aside div#status .status_row .status_description {
  padding-left: calc(1.9em / 0.8);
  font-size: 0.8em;
  line-height: 1.35em;
  color: #888;
}

aside div#stats {
  /* display: grid; */
}

aside div#stats .stats_row:not(:last-child) {
  margin-bottom: 0.2em;
}

aside div#stats .stats_row:last-child {
  color: var(--accent);
}

aside div#stats .stats_row div {
  display: inline-block;
}

@media screen and (max-width: 600px) {
  div#mobile_menu_open {
    /* height: calc(1.15em + 2*0.65em); */
    color: #fff;
    background: var(--accent);
    text-align: right;
    /* padding: 2vw; */
    padding: 0.65em;
    position: -webkit-sticky;
    position: sticky;
    /* top: 0; */
    top: 54px;
    z-index: 1;
  }

  div#mobile_menu_open * {
    display: inline-block;
    vertical-align: middle;
  }

  div#mobile_menu_open span {
    visibility: hidden;
  }

  div#mobile_menu_open svg {
    height: 1.15em;
    width: 1.15em;
    margin-left: 0.15em;
  }

  aside {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: 100%;
    /* padding-top: 3vw; */
    padding-top: 54px;
    background: var(--sidebar-background);
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
    overflow: auto;
    --transition-duration: 0.35s;
    -webkit-transition: transform var(--transition-duration);
    -webkit-transition: -webkit-transform var(--transition-duration);
    transition: -webkit-transform var(--transition-duration);
    transition: transform var(--transition-duration);
    transition: transform var(--transition-duration), -webkit-transform var(--transition-duration);
    z-index: 2;
  }

  aside.show {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  aside .box {
    margin: 10vw;
    /* padding: 5vw; */
  }

  aside div#mobile_close {
    color: #fff;
    background: var(--accent);
    text-align: right;
    /* padding: 2vw; */
    padding: 0.65em;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 1;
  }

  aside div#mobile_close * {
    display: inline-block;
    vertical-align: middle;
  }

  aside div#mobile_close svg {
    height: 1.15em;
    width: 1.15em;
    margin-left: 0.15em;
  }

  aside div#hello {
    display: none;
  }
}
@media screen and (min-width: 600px) {
  div#mobile_menu_open, aside div#mobile_close {
    display: none;
  }

  aside {
    display: inline-block;
    vertical-align: top;
    position: -webkit-sticky;
    position: sticky;
    width: 25vw;
    margin-left: 5vw;
    /* margin-bottom: 5vw; */
    top: 5vw;
  }

  aside .box {
    background: var(--sidebar-background);
    padding: 1.5vw;
  }

  aside .box:not(:last-child) {
    margin-bottom: 2vw;
  }

  aside div#hello p {
    margin-bottom: 0;
  }

  aside span#user_name {
    display: inline-block;
    /* min-width: 5vw; */
    padding: 0 0.15em;
    border-bottom: 1px solid;
    cursor: text;
    -webkit-user-select: all;
       -moz-user-select: all;
        -ms-user-select: all;
            user-select: all;
  }

  aside span#user_name:empty::before {
    /* content: '(enter your name.)'; */
    content: '(enter your name)';
    /* font-size: 0.75em; */
    font-size: 0.85em;
    /* font-style: italic; */
    color: #888;
  }

  aside span#skip_name {
    display: inline-block;
    font-size: 0.8em;
    /* font-weight: bold; */
    cursor: pointer;
  }

  aside div#hello span#user_name, aside span#skip_name {
    display: none;
    opacity: 0;
    -webkit-transition: opacity 0.2s;
    transition: opacity 0.2s;
  }

  aside div#hello span#edit_name {
    /* text-decoration: underline; */
    color: var(--accent);
  }

  aside div#hello span#edit_name:hover, aside div#hello span#edit_name:focus {
    /* outline: 1px solid var(--accent); */
    text-decoration: underline;
  }

  aside div#hello p#name_changes {
    display: none;
    margin-top: 0.35em;
    opacity: 0;
    --transition-duration: 0.5s;
    -webkit-transition: opacity var(--transition-duration);
    transition: opacity var(--transition-duration);
  }

  aside div#hello small {
    line-height: 1.35em;
    color: #888;
  }

  aside div#mobile_hello {
    display: none;
  }

  aside div#interact, aside div#status, aside div#stats {
    display: none;
    opacity: 0;
    --transition-duration: 0.5s;
    -webkit-transition: opacity var(--transition-duration);
    transition: opacity var(--transition-duration);
  }

  aside.input_done div#interact, aside.input_done div#status, aside.input_done div#stats {
    display: block;
    /* opacity: 1; */
  }

  aside div#status {
    --transition-delay: 0.25s;
    -webkit-transition-delay: var(--transition-delay);
    transition-delay: var(--transition-delay);
  }

  aside div#stats {
    --transition-delay: 0.5s;
    -webkit-transition-delay: var(--transition-delay);
    transition-delay: var(--transition-delay);
  }

  aside div#stats .stats_row {
    font-size: 0.9em;
  }

  /* aside div#interact input {
    font-family: var(--font);
    font-size: 1em;
    background-color: transparent;
    border: none;
    width: 100%;
    padding: 0 0.15em;
    border-bottom: 1px solid;
  } */

  /* aside div#search input {
    width: 100%;
    font-family: var(--font);
  } */
}
