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{box-sizing:border-box;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}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}

:root {
  --main-bg-color: #f2f3f6;
  --line-color: #8b687f;
  --link-color: #3e7543;
}

body {
  width: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1em;
  background-color: var(--main-bg-color);
}

body > header {
  display: flex;
  flex-direction: row;
  gap: 0.5em;
  border-bottom: 1px solid var(--line-color);
  padding-bottom: 0.5em;
  width: 100%;
  @media only screen and (min-width: 651px) {
    #sidebar-show-hide { display: none; }
  }
  h1 {
    flex: 1;
  }
}

section#content {
  display: flex;
  flex-direction: row;
  width: 100%;
  @media only screen and (max-width: 650px) {
    position: relative;
  }
}

#contacts-sidebar {
  display: flex;
  flex-direction: column;
  padding-right: 1em;
  @media only screen and (max-width: 650px) {
    position: absolute;
    float: left;
    z-index: 1;
    left: 0;
    width: 100%;
    background-color: #0003;
    height: 100%;

    &.hide {
      display: none;
    }
  }

  ul {
    flex: 1;
    width: fit-content;
    background-color: var(--main-bg-color);
    padding: 0.5em 1em 0 0;
    @media only screen and (min-width: 651px) {
      border-right: 1px solid var(--line-color);
    }

    button {
      width: 100%;
    }
  }

  li {
    border-bottom: 1px solid var(--line-color);
    padding: 0.5em 0;
    &:last-of-type {
      border-bottom: none;
    }
  }
}

main {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
  overflow: visible;
}

a, a:visited {
  color: var(--link-color);
  text-decoration: underline dotted;
}
