#app {
    display: flex;
    flex-direction: column;
    height: 100vh;
}
#toolbar {
    display: flex;
    align-items: center;
    background-color: #555;
    color: #fff;
    padding: 0.5em;
}
#toolbar button,
#page-mode input {
    color: currentColor;
    background-color: transparent;
    font: inherit;
    border: 1px solid currentColor;
    border-radius: 3px;
    padding: 0.25em 0.5em;
}
#toolbar button:hover,
#toolbar button:focus,
#page-mode input:hover,
#page-mode input:focus {
    color: lightGreen;
}
#page-mode {
    display: flex;
    align-items: center;
    padding: 0.25em 0.5em;
}

#viewport-container {
    flex: 1;
    background: #eee;
    overflow: auto;
}
#viewport {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
#viewport > div {
    text-align: center;
    max-width: 100%;
}
#viewport canvas {
    width: 100%;
    box-shadow: 0 2px 5px gray;
}

.d-flex{
    display: flex;
}

.justify-content-center{
    justify-content: center;
}

.align-items-center{
    align-items: center;
}

.flex-direction-column{
    flex-direction: column;
}

.zoomin{
    position: absolute; 
    bottom: 5em; 
    right: 2em; 
    width: 2em;
    height: 2em;
    font-size: 2em;
    border: 0;
    border-radius: 2em;
    box-shadow: 0 1px 3px 0px #000000a1;
}

.zoomout{
    position: absolute; 
    bottom: 2em; 
    right: 2em; 
    width: 2em;
    height: 2em;
    font-size: 2em;
    border: 0;
    border-radius: 2em;
    box-shadow: 0 1px 3px 0px #000000a1;
}

.zoomin:focus{
    outline: none;
}

.zoomout:focus{
    outline: none;
}

.btn-download{
    outline: none;
    box-sizing: border-box;
    border: none;
    background-color: #224169;
    color: #fff !important;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
}