:root {
    /* Colors: */
    --akzente-buttons: #49BCFF;
    --beschriftung: #7E7E7E;
    --disabled: #B1B1B1;
    --text: #3D3D3D;
    --background: #F3F3F3;
    --error-background: #F658581A;
}

@font-face {
    font-family: Open Sans;
    src: url(icons/open-sans.ttf);
}

body:not(#fsw-btn) {
    font: normal normal normal 18px/24px Open Sans;
    position: relative;
    margin: 0;
    padding-left: 1.5em;
    padding-right: 1.5em;
    min-height: 100vh;
}

input {
    border: 2px solid var(--akzente-buttons);
    background: white 0% 0% no-repeat padding-box;
    padding: 1em;
    opacity: 1;
    height: 1.5em;
}

input {
    color: var(--beschriftung);
    text-align: left;
    font: normal normal normal 18px/24px Open Sans;
    letter-spacing: 0px;
    color: #7E7E7E;
    opacity: 1;
}

button {
    background: var(--akzente-buttons) 0% 0% no-repeat padding-box;
    opacity: 1;
    border: none;
    min-height: 3.5em;
    cursor: pointer;
}

button {
    text-align: center;
    font: normal normal 600 18px/24px Open Sans;
    letter-spacing: 0px;
    color: #FCFCFC;
    opacity: 1;
}

details {
    display: none;
}

.center-content {
    display: flex;
    align-items: center;
    justify-content: center;
}

h1 {
    color: var(--text);
    text-align: left;
    font: normal normal bold 40px/50px Open Sans;
    letter-spacing: 0px;
    opacity: 1;
}

h2 {
    color: var(--text);
    text-align: left;
    font: normal normal 600 24px/34px Open Sans;
    letter-spacing: 0px;
    opacity: 1;
}

summary {
    padding-top: 1em;
    color: var(--text);
    text-align: left;
    font: normal normal 600 20px/30px Open Sans;
    letter-spacing: 0px;
    opacity: 1;
    cursor: pointer;
}

.error {
    display: inline-grid;
    grid-template-columns: auto auto;
    gap: 1.5em;
    background: var(--error-background) 0% 0% no-repeat padding-box;
    color: var(--text);
    text-align: left;
    font: normal normal normal 18px/28px Open Sans;
    letter-spacing: 0px;
    opacity: 1;
    padding: 1em 2em;
    letter-spacing: 0px;
}

.error-img {
    margin: auto;
    display: block;
}

#status-container {
    display: grid;
    grid-template-columns: auto;
    grid-gap: 1em;
}

.status-div {
    background-color: #7E7E7E1A;
    display: grid;
    grid-template-columns: 3.02em auto auto;
    height: 4.4em;
    grid-gap: 1.5em;
    padding: 1em;
    color: var(--text);
    text-align: left;
    font: normal normal normal 18px/28px Open Sans;
    letter-spacing: 0px;
    color: #3D3D3D;
    opacity: 1;
}

.status-img {
    height: 4.4em;
    aspect-ratio: 24/30;
    z-index: 500;
}

.status {
    border: 0.5px solid #3E3E3E;
    max-height: 28px;
    padding: 0.5em;
    min-width: 12em;
    max-width: 15em;
    font: normal normal 600 18px/24px Open Sans;
    letter-spacing: 0.72px;
    color: #3E3E3E;
    text-transform: uppercase;
    text-align: center;
    opacity: 1;
}

#app-container,
#login-div {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 4em;
    min-height: calc(100vh - 4em);
    overflow-y: scroll;
    overflow-x: hidden;
}

#app-container {
    padding-top: 9em;
    min-height: calc(100vh - 13em);
}

#app-logo-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 9em;
    background-color: white;
    z-index: 950;
}

#app-logo {
    position: absolute;
    top: 2em;
    left: 2em;
    width: 5em;
    cursor: pointer;
}

#username {
    position: absolute;
    display: flex;
    align-items: center;
    top: 2em;
    right: 2em;
    max-width: calc(100vw - 10em);
    min-height: 3em;
}

#username-text {
    text-align: right;
    letter-spacing: 0px;
    opacity: 1;
}

#username-span {
    color: var(--akzente-buttons)
}

footer {
    position: absolute;
    display: grid;
    grid-template-columns: auto auto auto auto;
    gap: 1em;
    bottom: 0;
    left: 0;
    /*right: 0;*/
    padding: 1em;
    color: var(--text);
    font: normal normal normal 18px/24px Open Sans;
    letter-spacing: 0px;
    color: #3D3D3D;
    background-color: white;
    opacity: 1;
    z-index: 950;
}

footer>* {
    cursor: pointer
}

#login-div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3em;
}

#big-logo {
    width: 13.5em;
}

#big-logo-bg {
    margin-left: auto;
    margin-right: 0;
    width: 29em;
    height: 29em;
    background: #000000 0% 0% no-repeat padding-box;
    border-radius: 20px;
    opacity: 1;
}

#login-side {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1em;
    width: 22em;
    max-width: calc(100vw - 3em);
    max-height: calc(100vh - 4em);
}

#invoice-recipient-form {
    display: grid;
    gap: 13px;
    grid-template-columns: 6.5em auto 6.5em;
    grid-template-rows: repeat(4, 1fr); 
}

#invoice-name { grid-area: 1 / 1 / 2 / 4; }
#invoice-street { grid-area: 2 / 1 / 3 / 3; }
#invoice-number { grid-area: 2 / 3 / 3 / 4; }
#invoice-zip { grid-area: 3 / 1 / 4 / 2; }
#invoice-city { grid-area: 3 / 2 / 4 / 4; }
#invoice-email { grid-area: 4 / 1 / 5 / 4; }

#invoice-submit {
    width: 20em;
}

#pay-left-ele {
    max-width: 30em;
    padding: 0 25px;
    border-right: 3px solid var(--akzente-buttons);
}

#pay-right-ele {
    background-color: var(--background);
    padding: 0 25px;
}

#next-payment-screen {
    width: 20em;
    margin-left: 25px;
}

.photo-upload {
    display: grid;
    grid-template-rows: auto auto;
    gap: 1em;
    padding: 1.5em;
    border: 2px dashed var(--beschriftung);
    background: #F3F3F3 0% 0% no-repeat padding-box;
    border-radius: 10px;
    opacity: 1;
    cursor: pointer;
    text-align: center;
    font: normal normal 600 18px/25px Open Sans;
    letter-spacing: 0px;
    color: #8D8D8D;
    opacity: 1;
    max-width: calc(100vw - 3em);
}

.photo-upload.uploadSuccessful {
    border: 2px dashed var(--akzente-buttons);
}

.photo-upload.uploadSuccessful>*>* {
    color: var(--akzente-buttons);
    text-align: center;
    font: normal normal 600 18px/25px Open Sans;
    letter-spacing: 0px;
    color: #49BCFF;
    opacity: 1;
}

input[type="file"] {
    display: none;
}

.grid-w-line {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5em;
}

#photo-upload-text {
    text-align: center;
    font: normal normal 600 18px/25px Open Sans;
    letter-spacing: 0px;
    color: #8D8D8D;
    opacity: 1;
}

#explainer {
    border-left: 3px solid var(--akzente-buttons);
    padding-left: 1.5em;
}

#upload-button {
    width: 20em;
    margin: 2em;
    padding: 0 2em;
}

#upload-button:disabled {
    background: var(--disabled)
}

#next-payment-screen:disabled {
    background: var(--disabled)
}

#login:disabled {
    background: var(--disabled)
}

.upload-successfull>* {
    display: flex;
    justify-content: center;
}

.upload-successfull-text {
    color: var(--text);
    text-align: center;
    font: normal normal normal 20px/28px Open Sans;
    letter-spacing: 0px;
    color: #3D3D3D;
    opacity: 1;
}

.doc {
    z-index: 970;
    min-width: calc(100vw - 3em);
    min-height: 100vh;
    background-color: white;
    position: absolute;
    padding: 1em;
    top: 0;
    left: 0;
}

.select-payment {
    width: 100%;
    min-height: 7.5em;
    background: white;
    color: black;
    border: 3px solid var(--akzente-buttons);
}

#pay-via-sct {
    margin-bottom: 25px;
}

#close-button {
    min-height: 2em;
    width: 2em;
    border-radius: 1em;
}

.lr {
    display: grid;
    grid-template-columns: 2.75em auto;
    gap: 1em;
}

/* The switch - the box around the slider */
.switch {
    position: relative;
    display: inline-block;
    width: 2.75em;
    height: 1.5em;
}

/* Hide default HTML checkbox */
.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

/* The slider */
.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: white;
    -webkit-transition: .4s;
    transition: .4s;
}

.slider:before {
    position: absolute;
    content: "";
    height: calc(1.15em - 4px);
    width: calc(1.15em - 4px);
    left: 2px;
    bottom: 2px;
    background-color: white;
    border: 2px solid #3E3E3E;
    -webkit-transition: .4s;
    transition: .4s;
}

input+.slider {
    border: 2px solid black;
}

input:checked+.slider {
    background-color: var(--akzente-buttons);
}

/*input:focus+.slider {
    box-shadow: 0 0 1px #2196F3;
}*/

input:checked+.slider:before {
    -webkit-transform: translateX(calc(1.6em - 8px));
    -ms-transform: translateX(calc(1.6em - 8px));
    transform: translateX(calc(1.6em - 8px));
}

/* Rounded sliders */
.slider.round {
    border-radius: 0.75em;
}

.slider.round:before {
    border-radius: 50%;
}

/*@media only screen and (min-width: 1051px) {
    .grid-w-line > *:nth-child(2) {
        border-left: 3px solid var(--akzente-buttons);
    }
}*/

@media only screen and (max-width: 1050px) {
    body {
        padding-left: 1em;
        padding-right: 1em;
    }

    #login-div {
        margin-top: 1em;
        grid-template-columns: 1fr;
        /*grid-template-rows: auto auto;*/
        gap: 1em;
    }

    #big-logo-bg {
        margin: 0 auto;
        max-width: 22em;
        max-height: 22em;
    }

    #big-logo {
        max-width: 10em;
    }

    #login-side {
        margin: 0 auto;
    }

    #app-logo {
        top: 1em;
        left: 1em;
    }

    #username {
        top: 1em;
        right: 1em;
        max-width: calc(100vw - 8em);
    }

    .grid-w-line {
        display: flex;
        justify-content: center;
    }

    #pay-left-ele {
        border: none;
    }

    #payment-div {
        flex-direction: column;
    }

    .photo-upload {
        width: calc(100vw - 4em);
    }

    details {
        display: block;
    }

    #explainer {
        display: none;
    }

    .lr {
        max-width: calc(100vw - 3em);
    }

    h1 {
        font: normal normal bold 30px/40px Open Sans;
    }
}

@media only screen and (max-width: 750px) {
    .grid-w-line {
        display: flex;
        justify-content: center;
    }

    .photo-upload {
        width: calc(100vw - 4em);
    }

    #explainer {
        display: none;
    }

    .lr {
        max-width: calc(100vw - 3em);
    }

    .status-div {
        margin-left: 2em;
        padding-left: 2em;
        grid-template-columns: calc(100vw - 6em);
        grid-template-rows: 4.4em auto auto;
        height: auto;
        gap: 0;
        width: calc(100vw - 2em);
    }
}

@media only screen and (max-width: 672px) {
    #login-div {
        grid-template-columns: 1fr;
        grid-template-rows: calc(100vw - 3em) auto;
    }

    #big-logo-bg {
        width: calc(100vw - 3em);
        height: calc(100vw - 3em);
    }

    #big-logo {
        width: calc(calc(100vw - 3em) * 0.466)
    }
    #invoice-recipient-form {
        display: flex;
        flex-direction: column;
    }
}

#new-picture-button:disabled {
    background: var(--disabled)
}

#crop-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    height: calc(var(--vh, 1vh) * 100);
    background-color: rgba(0, 0, 0, 0.9);
    z-index: 995;
}

#pic-border-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    height: calc(var(--vh, 1vh) * 100);
}

#pic-border {
    box-shadow: 0 0 0 max(50vw, 50vh) rgba(0, 0, 0, 0.4);
    pointer-events: none;
    background: none !important;
    border: 2px solid var(--akzente-buttons);
    width: calc(100vw - 3em);
    z-index: 996;
    aspect-ratio: 24/30;
}

@media (min-aspect-ratio: 24/30) {
    #pic-border {
        width: auto;
        height: calc(100vh - 3em);
        height: calc((var(--vh, 1vh) * 100) - 3em)
    }
}

#pic-border-btn {
    min-height: 0;
    padding: 0.75em 1.5em;
    z-index: 997;
    position: absolute;
    bottom: 1em;
    right: 1em;
}