html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-size: 16px;
}
#root { 
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
/* IE 10 and 11 hack - it repleces the min-height property */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    #root {
         height: 100%;
    }
 }
#content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
a:link, a:visited {
    color: #0B6EFD;
}
.panel-wrapper {
    flex-grow: 1;
}

.panel-wrapper.panel-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 90px;

    min-width: 480px;
    max-width: 800px;
    width: 80%;
    margin: auto;
}
.panel-wrapper.panel-center .panel {
    border: 1px solid lightgray;
}

.panel input[type="text"] {
    border: 1px solid #cccccc;
}

.panel-header {
    padding: 0.6em 2em;
    font-size: 1.5em;
    background-color: #0B6EFD;
    color: white;
    font-weight: 300;
}

.panel-content {
    padding: 1em 3em;
}
.panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 {
    padding: 0.4em 0 0 0;
    margin: 0;
    color: gray;
    font-weight: 300;
}
.panel h4, .panel h5, .panel h6 {
    font-weight: normal;
}

.panel-row {
    padding: 0.1em 0;
}
.panel-row.panel-row-form {
    padding: 0.9em 0 0.1em 0;
    display: flex;
    flex: 1 1 auto;
    align-items: center;
}
.panel-row p {
    margin: 0.2em 0 0.5em 0;
}

.panel-row.panel-error {
    position: relative;
}

.panel-row.panel-error h1,
.panel-row.panel-error h2,
.panel-row.panel-error h3,
.panel-row.panel-error h4,
.panel-row.panel-error p {
    color: #BD2053;
    margin-left: 1.6em; 
}

.panel-row.panel-error p {
    color: white;
    background-color: #0B6EFD;
}

.panel-row.panel-error h1:before,
.panel-row.panel-error h2:before,
.panel-row.panel-error h3:before,
.panel-row.panel-error h4:before {
    position: absolute;
    content: ' ';
    background-image: url("alert-circle.png");
    margin-top: -2px;
    margin-left: -1.6em;
    background-repeat: no-repeat;
}

.panel-row.panel-error h1:before { 
    width: 48px;
    height: 48px;
    background-position: -0px 0; 
}
.panel-row.panel-error h2:before {
    width: 36px;
    height: 36px;
    background-position: -48px 0; 
}
.panel-row.panel-error h3:before {
    width: 28px;
    height: 28px;
    background-position: -84px 0; 
}
.panel-row.panel-error h4:before {
    width: 24px;
    height: 24px;
    background-position: -112px 0; 
}

.panel-row.panel-error h1~p { padding-left: 1.9em; }
.panel-row.panel-error h2~p { padding-left: 1em; }
.panel-row.panel-error h3~p { padding-left: 0.4em; }
.panel-row.panel-error h4~p { padding-left: 0.1em; }

.panel-row-form .label,
.panel-row-form .control {
    vertical-align: middle;
}

.panel-row-form .label {
    width: 50%;
    text-align: right;
    white-space: nowrap;
    box-sizing: border-box;
    text-overflow: ellipsis;
    overflow-x: hidden;
}
.panel-row-form .label.label-left {
    text-align: left;
}
.panel-row-form .control {
    padding-left: 1em;
    width: 49%;
    text-align: left;
    box-sizing: border-box;
}
.panel-row-form .control input {
    padding: 0.3em;
    font-size: 1em;
    width: 100%;
    box-sizing: border-box;
}

.panel-row-form.panel-error .label {
    color: #BD2053;
}
.panel-row-form.panel-error input[type="text"] {
    border-color: #BD2053;
    outline-color: red;
}

.panel-actions {
    padding: 0 3em 2em 3em;
    text-align: right;
}

.panel-actions input,
.panel-actions a,
.panel-actions button {
    display: inline-block;
    border: none;
    border-radius: 0.2em;
    outline: none;
    margin: 1px 0.2em;
    padding: 0;
    text-decoration: none;
    width: 8em;
    height: 2em;
    line-height: 2em;
    text-align: center;
    vertical-align: middle;
    background-color: #E5E5E5;
    font-size: 1em;
    cursor: default;
}
.panel-actions button span {
    position: relative;
}
.panel-actions input:active,
.panel-actions a:active,
.panel-actions button:active {
    margin-top: 2px;
    margin-bottom: 0;
}
.panel-actions input.main,
.panel-actions a.main,
.panel-actions button.main {
    background-color: #0B6EFD;
    color: white;
}
.panel-actions input.disabled,
.panel-actions a.disabled,
.panel-actions button.disabled {
    background-color: #EFEFEF;
    color: #666666;
    pointer-events: none;
}
.panel-actions input.disabled:active,
.panel-actions a.disabled:active,
.panel-actions button.disabled:active {
    margin: 1px 0.2em;
}
.panel-actions input.main.disabled,
.panel-actions a.main.disabled,
.panel-actions button.main.disabled {
    background-color: #A9D6ED;
    color: white;
}
