.side-panel {
  position: absolute;
  bottom: 0px;
  width: 100%;
  left: 0px;
  top:50%;
  transition: left 0.2s, top 0.2s;
  background-color: white;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
  pointer-events: all;
}

.side-panel.resizing {
  transition: left 0s, top 0s;
}

.side-panel.collapsed {
  left:-44rem;
}

.arrow {
  position: absolute;
  top: 1rem;
  left: 100%;  
  background-color: inherit;
  cursor:pointer;
}

.arrow i {
  transition: transform 0.2s;
}

.collapsed .arrow i {
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

.side-panel.hidden {
  top:100%;
}

.content {
  height:100% ;
  width:100%;
  overflow:hidden;
  overflow-y:auto;
  position: relative;
  z-index: 1;
  background-color: rgb(255,255,255);
}

.resizegrip {
  height:2rem;
  line-height: 1rem;
  display: none;
  text-align: center;
  position: relative;
  z-index: 2; 
}
div.resizegrip > div {
  position: absolute;
  top:0px;
  height: 1rem;
  width: 100%;
  background-color: rgb(255,255,255);
}

div.resizegrip > span {
  position: relative;
  display: inline-block;
  height:0.3rem;
  width:4rem;
  background-color:rgba(0, 0, 0, 0.3);
  top:-0.3rem;
}

.resizeable .resizegrip {
  display:block;  
}

.resizeable .content {
  height:calc(100% - 1rem);
  top:-1rem;
}

@media screen and (min-width:40rem) {
  .side-panel {
    top:0px;
    width: 22rem;
    height:100%;
    left:0px;
  }

  .side-panel.hidden {
    width: 22rem;
    left:-22rem;
    height:100%;
    top: 0px;
  }
  
  .side-panel.extrawide {
    top:0px;
    width: 44rem;
    height:100%;
    left:0px;
  }  
}


.side-panel.left {
  top:0px;
  width: 80%;
  height:100%;
  left:0px;
}

.side-panel.left.hidden {
  width: 80%;
  left:-80%;
  height:100%;
}  

@media screen and (min-width:40rem) {
  .side-panel.left {
    width:22rem;
  }
  .side-panel.left.hidden {
    width:22rem;
  }  
}