:host {
  width: 100%;
  height: 100%;
  display: block;
  font-family: Arial, Helvetica, sans-serif;
  box-sizing: border-box;
}

button, #file + label {
    font-size: 0.8em;
    padding: 10px;
    margin: 10px;
    background-color: white;
    border: 1px solid cornflowerblue;
    color: #505050;
    transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
    cursor: pointer;
}

#visualizer {
    display: block;
}

button:hover:enabled, #file + label:hover {
    background-color: cornflowerblue;
    color: white;
}

button:disabled, #file + label:disabled {
    color: #C6C6C6;
    border-color: #C6C6C6;
    cursor: default;
}

.btn-container {
    display: flex;
    flex-flow: row wrap;
    align-content: flex-start;
}

.btn-container > button {
    flex-grow: 1;
    flex-basis: 0;
}

#durationLabel {
    flex: 0 1 100%;
    margin-left: 10px;
    font-size: 0.8em;
    color: #505050;
}

#file {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
}

#file:focus + label {
    outline: 1px dotted #000;
    outline: -webkit-focus-ring-color auto 5px;
}

#file + label {
    text-align: center;
}
#file-label {
    font-size: 0.8em;
    color: #505050;
    margin-left: 10px;
}

.file-container {
    display: flex;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
}

.download-container {
    display: flex;
    margin-left: auto;
}

.download-container > select {
    margin: 10px;
    border-color: cornflowerblue;
}

.download-container > select:disabled {
    border-color: #C6C6C6;    
}

.upload-disabled {
    border-color: #C6C6C6 !important;
    color: #C6C6C6 !important;
}

.upload-disabled:hover {
    background-color: white !important;
    cursor: default !important;
}

progress {
    margin-left: 10px;
    width: calc(100% - 20px);
}