/* ############################################################ */
/* ######################## STYLE DATA ######################## */
/* ############################################################ */

/*
    Fonts:
        Main:       Google Fonts -> 'Open Sans', sans-serif
    
    Colors:
        Background: #333333
        Foreground: #F5F5F5
        Accent:     #006E00
        Text        #000000
        Unknown:    #D9D9D9
        Valid:      #006E00
        Invalid:    #E00000
    
    Breakpoints:
        All:        0px
        Tablet:     550px
        Desktop:    900px
    
    Box Shadows:
        Main:       0 0 7px 0 #000 inset
*/


/* ############################################################ */
/* ######################### BACKDROP ######################### */
/* ############################################################ */

html {
    width: 100%;
    height: 100%;
    overflow: hidden !important;
}

b {
    font-weight: 900 !important;
}

body {
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
    
    /*background-image: url('/images/creation.png');*/
    background-size: cover;
    background-position: center;
}

html, body {
    color: #000000;
    background-color: #e9e9e9;
    
    font-weight: 300;
    font-size: 20px;
    font-family: 'Open Sans', sans-serif;
    
    line-height: 1em;
    letter-spacing: -1px;
    
    user-select: text !important;
    -o-user-select: text !important;
    -ms-user-select: text !important;
    -moz-user-select: text !important;
    -khtml-user-select: text !important;
    -webkit-user-select: text !important;
    -webkit-touch-callout: text !important;
}

/* all     */ @media (min-width: 0px)   { html, body { font-size: 14px; } }
/* tablet  */ @media (min-width: 550px) { html, body { font-size: 18px; } }
/* desktop */ @media (min-width: 900px) { html, body { font-size: 18px; } }


/* ############################################################ */
/* ##################### UTILITY  CLASSES ##################### */
/* ############################################################ */

a, .hint {
    color: #8b8b8b !important;
    font-size: 1em;
}

gs-page gs-header,
gs-page gs-footer {
    padding: 1em;
}


/* ############################################################ */
/* ##################### UTILITY  CLASSES ##################### */
/* ############################################################ */

.padding-box   { padding: 1em; }
.width-spacer  { width: 1em;   }
.height-spacer { height: 1em;  }
.text-box      { line-height: 1.5em; text-align: justify; }


/* ############################################################ */
/* ######################## APP HEADER ######################## */
/* ############################################################ */

#app-header, .app-header {
    font-size: 2em;
    color: #000000;
    line-height: 1em;
    text-align: left;
    font-weight: 400;
}

/* all     */ @media (min-width: 0px)   { #app-header { font-size: 2em; } }
/* tablet  */ @media (min-width: 550px) { #app-header { font-size: 2em; } }
/* desktop */ @media (min-width: 900px) { #app-header { font-size: 3em; } }


/* ############################################################ */
/* ####################### PAGE HEADER  ####################### */
/* ############################################################ */

#page-header, .page-header {
    font-size: 3em;
    color: #000000;
    line-height: 1em;
    text-align: center;
}

/* all     */ @media (min-width: 0px)   { #page-header { font-size: 1em; } }
/* tablet  */ @media (min-width: 550px) { #page-header { font-size: 1em; } }
/* desktop */ @media (min-width: 900px) { #page-header { font-size: 2em; } }


/* ############################################################ */
/* #################### CONTENT CONTAINERS #################### */
/* ############################################################ */

.width-box {
    position: relative;
    margin: 0 auto;
    width: 100%;
    max-width: 900px;
    background: #FFFFFF;
    border-left: solid 1px #000000;
    border-right: solid 1px #000000;
    border-bottom: solid 1px #000000;
    margin-bottom: 5em;
    
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    -o-box-sizing: border-box;
    box-sizing: border-box;
}


.body-box {
    position: relative;
    box-shadow: 0 0 7px 0 #000;
    background-color: #F5F5F5;
    
    -webkit-border-radius: 0.25em;
    -moz-border-radius: 0.25em;
    -ms-border-radius: 0.25em;
    -o-border-radius: 0.25em;
    border-radius: 0.25em;
}

.sign-in-bar {
    position: absolute;
    left: 0;
    bottom: 0.5em;
    width: 100%;
    padding-left: 0.5em;
    padding-right: 0.5em;
    
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    -o-box-sizing: border-box;
    box-sizing: border-box;
}


/* all     */ @media (min-width: 0px)   { .width-box { max-width: 999999px; } }
/* tablet  */ @media (min-width: 550px) { .width-box { max-width: 550px; } }
/* desktop */ @media (min-width: 900px) { .width-box { max-width: 900px; } }


/* ############################################################ */
/* ##################### CONTROL WRAPPERS ##################### */
/* ############################################################ */

.control-wrapper {
    position: relative;
    padding-left: 2em;
    min-height: 1em;
}

.control-validation {
    position: absolute;
    top: 0;
    left: 0;
    
    background-color: #D9D9D9;
    
    width: 1em;
    height: 1em;
    
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    border-radius: 50%;
}

.control-validation-error {
    display: none;
    font-style: italic;
    z-index: 900;
    text-align: center;
    padding-top: 0.5em;
}

.fail .control-validation-error {
    display: block;
}
.fail.fail-hide-message .control-validation-error {
    display: none;
}

.control-wrapper /*.no-validation*/ {
    padding-left: 0;
}

.control-wrapper /*.no-validation*/ .control-validation {
    display: none;
}

.control-wrapper.pass #control-upload label,
.control-wrapper.pass input { background-color: #c7e5c7; }
.control-wrapper.fail #control-upload label,
.control-wrapper.fail input { background-color: #e5c7c7; }


/* ############################################################ */
/* ###################### INPUT  CONTROL ###################### */
/* ############################################################ */

.control-wrapper.input-control gs-text {
    margin: 0 !important;
    /*font-size: 1.1775em;*/
    padding: 0 !important;
    font-size: 1em !important;
    line-height: 1em !important;
    
    -webkit-border-radius: 0.25em;
    -moz-border-radius: 0.25em;
    -ms-border-radius: 0.25em;
    -o-border-radius: 0.25em;
    border-radius: 0.25em;
}

.control-wrapper.input-control input {
    padding-left: 1em !important;
    padding-right: 1em !important;
    font-size: 1em !important;
    height: 3em !important;
    line-height: 3em !important;
}


/* ############################################################ */
/* ###################### INPUT  CONTROL ###################### */
/* ############################################################ */

.control-wrapper.select-control gs-select {
    margin: 0 !important;
    /*font-size: 1.1775em;*/
    padding: 0 !important;
    font-size: 1em !important;
    line-height: 1em !important;
    
    -webkit-border-radius: 0.25em;
    -moz-border-radius: 0.25em;
    -ms-border-radius: 0.25em;
    -o-border-radius: 0.25em;
    border-radius: 0.25em;
}

.control-wrapper.select-control gs-select::after {
    right: 1em;
    width: 1em;
}

.control-wrapper.select-control select {
    padding-left: 1em !important;
    padding-right: 1em !important;
    font-size: 1em !important;
    height: 3em !important;
    line-height: 3em !important;
}


/* ############################################################ */
/* ###################### BUTTON CONTROL ###################### */
/* ############################################################ */

.button-control {
    text-align: center;
    background-color: #D9D9D9;
    color: #919191 !important;
    
    -webkit-border-radius: 0.25em;
    -moz-border-radius: 0.25em;
    -ms-border-radius: 0.25em;
    -o-border-radius: 0.25em;
    border-radius: 0.25em;
}

.button-title {
    display: block;
    font-size: 2em;
    line-height: 1em;
}

.button-title a,
a:has(.button-title),
a.button-title {
    color: #000;
    text-decoration: none;
}

a:has(.button-control.inactive),
.button-control.inactive,
.button-control.inactive a { background-color: #E00000; color: #F5F5F5 !important; pointer-events: none; }
a:has(.button-control.active),
.button-control.active,
.button-control.active   a { background-color: #006E00; color: #F5F5F5 !important; cursor: pointer; }

/*.button-control.active:hover {*/
    
    /*box-shadow: 0 0.3em 0.5em -0.125em rgba(0,0,0,.1), 0 0.2em 0.5em 0 rgba(0,0,0,.14), 0 0.0625em 0.3125em 0 rgba(0,0,0);*/
    /*box-shadow: 0.3em 0.3em 0.1em 0 rgba(0,0,0,.1), 0 0 0.2em 0 rgba(0,0,0,.2);*/
/*    box-shadow: 0.3em 0.3em 0.1em 0 rgba(0,0,0,.2), 0 0 0.2em 0 rgba(0,0,0,.4);*/
/*    transition: box-shadow 0.5s;*/
/*}*/

gs-button {
    margin: 0 !important;
    padding: 0 !important;
    font-weight: normal;
}



/* ############################################################ */
/* ########################## LABEL  ########################## */
/* ############################################################ */

.control-label {
    font-size: 1.5em;
    line-height: 1em;
    padding-bottom: 0.5em;
}


/* ############################################################ */
/* ################# STATUS BAR/PROGRESS BAR  ################# */
/* ############################################################ */

.status-bar {
    position: relative;
    margin-bottom: 1em;
}

.status-check {
    position: absolute;
    top: 0;
    left: 0;
    width: 2em;
    height: 2em;
    display: inline-block;
    
    padding: 0.5em 0.25em;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    -o-box-sizing: border-box;
    box-sizing: border-box;
    
    box-shadow: 0 0 7px 0 #000;
    background-color: #F5F5F5;
    -webkit-border-radius: 0.25em;
    -moz-border-radius: 0.25em;
    -ms-border-radius: 0.25em;
    -o-border-radius: 0.25em;
    border-radius: 0.25em;
    background: none;
}

.status-check.warning {
    background: #FF0000;
}

.status-check.warning:before {
    font-family: fontawesome;
    content: '\f071';
    font-size: 1.5em;
    color: #FFFF00;
}

.status-check.checked:before {
    font-family: fontawesome;
    content: '\f00c';
    font-size: 1.5em;
    color: #006E00;
}

.progress-bar {
    height: 1em;
    
    box-shadow: 0 0 7px 0 #000;
    background-color: #F5F5F5;
    -webkit-border-radius: 0.25em;
    -moz-border-radius: 0.25em;
    -ms-border-radius: 0.25em;
    -o-border-radius: 0.25em;
    border-radius: 0.25em;
}
.progress-bar > .progress {
    height: 1em;
    width: 0;
    
    background-color: #006E00;
    -webkit-border-radius: 0.25em;
    -moz-border-radius: 0.25em;
    -ms-border-radius: 0.25em;
    -o-border-radius: 0.25em;
    border-radius: 0.25em;
}




