html,
body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: 'Roboto', Arial, sans-serif;
    background:#85459b;
}
form { overflow:auto; }
.body > *, #user_info > * {  margin:0 auto; max-width:1000px; }
.body > * { text-align:center; padding:0px;}
#user_info > * { padding:0 0 10px; width:100%; }
.body > div:not(.error-box):not(.success-box) { background:white; border-radius:20px; padding:20px 40px; }
#user_info { background:#7ca563; color:white; font-size:20px; padding:0 30px;}
#user_info h1 { margin:10px 0 5px; }
.wrapper {
    position: absolute;
    top: 0;
    width: 100%;
    min-height: 100%;
    margin: 0;
    background: #85459b;
}

.content {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    padding:0;
    margin: auto;
    font-size: 16px;
}
.content > * { margin:0 auto; }
.body { background:#93ca55; padding:30px 30px; }
.header .col { margin:0 auto; width:350px; }
.header table { padding:0; margin:0 auto; text-align:center; width:100%; max-width:1000px; position:relative; }
.header table h1.narrow { text-align:left; display:inline-block; width:min-content;font-family: Dejavu Sans,Arial,Verdana,sans-serif; text-transform:uppercase; font-size:26px; font-weight:normal; color:white; }
.header {
    position: relative;
    width: 100%;
    color: #97999B;
    box-sizing: border-box;
    background:#522b60;
    padding:0 30px;
}

img.logo {
    height: 100px;
    display: inline;
    margin-right: 30px;
}
.si-text { color:white; font-size:20px; }
img.si-logo { height:36px; }

.header>h1 {
    display: inline-block;
    line-height: 60px;
    font-size: 32px;
    vertical-align: middle;
    /*white-space: nowrap;*/
}

#logout, #profile, #manage {
    font-size: 18px;
    cursor: pointer;
    color: #1a288b;
    padding:10px 20px; float:right; width:auto !important; clear:both; margin-bottom:6px;
}

.error-box {
    color: #E4002B;
    padding: 8px;
    position:relative; /*top:12px;*/ text-align:center;
}

.success-box {
    color: white; /*#78BE20;*/
    padding: 8px;
    width:fit-content !important;
}

.form-content {
    width: 100%;
    margin: auto;
    display: table;
}

.form-group {
    display: table-row;
    border-collapse: separate;
}

.padded {
    box-sizing: border-box;
    padding: 8px;
}

input[type=text],
input[type=password] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 10px 5px;
    min-width:100px;
}

select {
    width: 100%;
    height: 34px;
    background: #fafafa;
    border-color: #bbb;
    border-radius: 3px;
}

.form-group>* {
    display: table-cell;
    box-sizing: border-box;
    margin-bottom: 8px;
}

.form-group>label {
    text-align: right;
    padding-right: 4px;
    font-weight: 500;
    width: 1%;
    white-space: nowrap;
    min-width:150px;
}

button,
input[type=submit] {
    background-image: linear-gradient(to right,#824498,#512a5f);
    cursor:pointer; 
    color: #fff;
    border-radius: 5px;
    width: 100%;
    font-size: 16px;
    font-weight: 600;
    padding: 10px;
}

input.read-only {
    background: #EEE;
    color: #000;
    cursor: not-allowed;
}

table.devices {
    width: 100%;
    text-align: left;
    border-collapse: collapse;
}

tbody>tr {
    border-top: 1px solid #ccc;
}

.side-link {
    text-align: right;
}

a {
    text-decoration: none;
}

a.account-link {
    text-decoration: none;
    font-size: 14px;
    margin-right: 4px;
    line-height: 32px;
}

.text-right {
    text-align: right;
}

.text-left {
    text-align: left;
}

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

.align-right {
    position: absolute;
    right: 4px;
}

.text-mono {
    font-family: 'Roboto Mono', monospace;
}

span.delete {
    font-size: 20px;
    color: #E4002B;
    cursor: pointer;
}

span.add {
    font-size: 20px;
    color: #78BE20;
    cursor: pointer;
}

.hidden {
    display: none;
}

#help-overlay {
    z-index: 9999;
    background-color: rgba(0, 0, 0, 0.50);
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
}

.help-box {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate( -50%, -50%);
    width: 550px;
    max-width: 99%;
    box-sizing: border-box;
    background-color: #fff;
    z-index: 99999;
}

.help-header {
    padding: 16px;
    color: #333;
    background-color: #F7F7F7;
    text-align: center;
}

.help-header>h2 {
    margin: 0;
}

#help-close {
    font-family: "Roboto mono", monospace;
    font-size: 18px;
    font-weight: 1000;
    position: absolute;
    right: 8px;
    top: 0;
    color: #c11;
    cursor: pointer;
}

.help-content {
    padding: 24px;
    max-height: 75vh;
    overflow-y: auto;
}

#help-text {
    color: #333;
}

.soln-help, #logout, #profile, #manage {
    /*font-family: "Roboto mono", monospace;*/
    background-color: #78BE20;
    color: #fff;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 1000;
    width: 18px;
    display: inline-block;
    text-align: center;
    cursor: pointer;
}

.soln-help.big {
    font-size: 24px;
    width: 32px;
}

.soln-help::before {
    content: "?";
}

.terms {
    max-height: 45vh;
    overflow-y: auto;
    margin-top: 8px;
    margin-bottom: 8px;
    border: 1px solid #ccc;
    padding: 8px;
}

.footer-links {
    padding-top:40px; color:white; font-size:30px;
}
.footer-links img { max-width:200px; }
div.footer-img {
    width:100%;
    text-align:right;
}
img.footer {
    height: 40px;
}

.tech-support {
    font-size: 14px;
}
.visit-reminder a { color:white !important; text-decoration:underline!important; }
.visit-reminder {
    font-size: 14px;
    margin-top: 0px;
}

@media only screen and (max-width: 850px) {
    table { max-width:none !important; }
    table:not(.devices) td { display:inline-block; width:100%; }
    .body #middle_col { font-size:18px !important; width:30px !important; padding:10px 5px !important; }
    .hide-mobile { display:none; }
    #user_info { font-size: 18px; }
}
@media only screen and (max-width: 480px) {
    .header table h1.narrow { font-size:5vw; }
    img.logo { width:50%; height:initial !important; margin-right:7% !important; }
    #user_info { font-size: 16px; }
    .content { font-size:14px; }
    .body > div:not(.error-box):not(.success-box) { padding:15px; }
    .footer-links img { max-width:150px; }
    .body { padding: 0 0 30px 0; }
    .body > * { text-align:center; padding:10px;}
    .form-group>label { min-width:125px; }
}

