/* General Styles */
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    font-family: "SourceSans3-Regular", "Source Sans 3", sans-serif;
}

.pagecontainer{
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    width: 100%;
}

.mt0{
    margin-top: 0;
}

/* Header Styles */
header {
    background-color: #003c3c;
    padding: 10px 20px;
    color: white;
    height: 100px;
    display: flex;
    align-items: center;
}

header nav{
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 65em;
    margin: 0 auto;
}

header .logo {
    padding-top: 65px;
}
header .logo img {
    height: 20px;
}

header .contact {
    text-align: right;
    padding: 30px 0;
    color: #e1f0eb;
}

header .contact > div {
    display: flex;
    margin-top: 5px;
}

header .contact p ,
header .contact a {
    margin: 0;
    line-height: 28px;
    font-size: 18px;
    color: #e1f0eb;
}

header .contact a:hover,
.login-box .submit a:hover{
    color: #ffffff;
    cursor: pointer;
}

.phone{
    font-size: 18px !important;
    margin-top: 4px;
    margin-right: 10px;
}


/* Main Section Styles */

main{
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.content {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 40px 0;
}

.background-shape,
.background-shape2 {
    position: absolute;
    width: 660px;
    height: 660px;
    z-index: -1;
}

.background-shape {
    bottom: -390px;
    left: -360px;
}

.background-shape2 {
    top: 0px;
    right: -370px;
    transform: rotate(-100deg);
}

.container {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    max-width: 590px;
    width: 100%;
    margin: 0 15px;
}

.text-top{
    color: #e1f0eb;
    font-size: 18px;
    line-height: 28px;
}

.login-box {
    background-color: #003A3A;
    color: white;
    padding: 30px;
    border-radius: 4px;
    margin-bottom: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    width: -webkit-fill-available;
    height: fit-content;
    display: flex;
    flex-direction: column;
}

.login-box h2 {
    margin-bottom: 15px;
    font-family: "Ubuntu-Bold", "Ubuntu Bold", "Ubuntu", sans-serif;
    font-weight: 700;
    line-height: 36px;
    font-size: 24px;
    margin-top: 0;
}

.underline {
    text-decoration: underline;
}

.login-box form {
    display: flex;
    flex-direction: column;
    margin-bottom: 10px;
}

.login-box label {
    font-size: 12px;
    font-family: "Ubuntu-Regular", "Ubuntu", sans-serif;
    padding: 8px 8px 4px 8px;
    line-height: 24px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.login-box input[type="text"],
.login-box input[type="password"],
.login-box input[type="email"] {
    padding: 8px;
    border: none;
    border-radius: 5px;
    background-color: #F4F8F9;
    height: 32px;
}

input[type="password"]::placeholder,
input[type="text"]::placeholder,
input[type="email"]::placeholder {
    padding-left: 10px;
    font-size: 18px;
    color: #aaaaaa;
    font-family: "SourceSans3-Regular", "Source Sans 3", sans-serif;
}

.submit{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;

}

.login-box a {
    color: #e1f0eb;
    font-size: 12px;
    margin-top: 10px;
    margin-left: auto;
    font-size: 18px;
    margin-top: 26px;
    text-decoration: underline;
}

.login-box a:hover {
    text-decoration: underline;
}

.login-box .submit p {
    color: #e1f0eb;
    font-size: 18px;
    margin-top: 50px;
    margin-left: auto;
}

.login-box .secondary {
    background-color: #e1f0eb;
    color: #003c3c;
    border: 0px;
    border-radius: 8px;
    cursor: pointer;
    margin-top: 10px;
    width: fit-content;
    text-align: center;
    padding: 16px 32px 16px 32px;
    line-height: 20px;
    font-size: 18px;
}

.login-box .secondary:hover {
    background-color: #d7eb00;
}

.two-factor-container {
    margin-top: auto;
}

.two-factor-container p ,.text-top p {
    color: #e1f0eb;
    font-size: 18px;
    line-height: 28px;
    margin-top: 0;
}

.help-box {
    background-color: #e1f0eb;
    color: #003A3A;
    padding: 30px;
    border-radius: 4px;
    width: -webkit-fill-available;
    width: -moz-available;
    text-align: left;
    font-size: 18px;
    line-height: 28px;
    margin: 15px 0 100px 0;
}

.help-box h3 {
    margin: 0;
    font-size: 18px;
    line-height: 28px;
}

.help-box p {
    margin: 0;
    color: #003c3c;
    font-size: 18px;
    line-height: 28px;
    margin-bottom: 15px;
}

.help-box a {
    color: #00787a;
    text-decoration: none;
    font-size: 18px;
    line-height: 20px;
    position: relative;
}

.help-box span.material-symbols-outlined {
    position: absolute;
    top: 1px;
    right: -30px;
}

.help-box a:hover {
    text-decoration: none;
    color: #008c91;
}

/* Footer Styles */
footer {
    background-color: #003c3c;
    color: white;
    text-align: center;
    height: 325px;
}

.footer-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 65em; /* Consistent max-width */
    margin: 0 auto;
    padding: 90px 20px 0;
}

footer img {
    height: 20px;
    align-self: flex-start;
    margin-top: 10px;
}

footer ul {
    list-style: none;
    padding: 0;
    margin: 10px 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    justify-content: center;
    flex-wrap: wrap;
    text-align: left;
    margin-left: 108px;
}

footer ul li {
    display: inline;
}

footer ul li a {
    color: white;
    text-decoration: none;
    font-size: 18px;
    line-height: 18px;
}

footer ul li a:hover {
    text-decoration: none;
}

footer p {
    margin-top: auto;
    font-size: 14px;
    margin-left: auto;
}

/* password*/

.password-container {
    position: relative;
    display: flex;
    align-items: center;
}

.password-container input {
    flex-grow: 1;
}

.toggle-password {
    background: none;
    border: none;
    cursor: pointer;
    outline: none;
    position: absolute;
    right: 5px;
    top: 15%;
    font-size: 20px;
}

.checkMark {
    position: absolute;
    top: 30%;
    right: 5px;
    font-size: 20px;
    color: green;
}


/* Buttons */
.btn-primary {
    background-color: #d2e100;
    color: #003c3c;
    border: none;
    padding: 0.75rem;
    font-size: 18px;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.2s ease;
    width: fit-content;
    height: 52px;
    padding: 16px 32px 16px 32px;
    margin-top: 30px;
    line-height: 20px;
    font-family: "SourceSans3-Regular", "Source Sans 3", sans-serif;
}

.btn-primary:hover {
    background-color: #d7eb00;
}

.btn-secondary {
    background-color: #e1f0eb;
    color: #003c3c;
    border: none;
    padding: 0.75rem;
    font-size: 18px;
    border-radius: 8px;
    line-height: 20px;
}

.btn-secondary:hover {
    background-color: #d7eb00;
}


/*login*/

/*.login .two-factor-container p  {
    margin-top: 50px;
}*/

/* Zwei-Fa-Auth */
.zwei-fa-Auth .text-top {
    margin-top: unset;
}

.zwei-fa-Auth .submit{
    justify-content: space-between;
}


/* Auth-Einrichten */

.zweiF-einrichten  .login-box p,
.zweiF-einrichten .instructions li{
    font-size: 18px;
    color: #e1f0eb;
    line-height: 28px;
    margin-bottom: 15px;
}

.zweiF-einrichten .instructions ol{
    padding-left: 30px;
}
.zweiF-einrichten .text-top,
.zweiF-konfig-option .text-top{
    display: flex;
}

.zweiF-einrichten .text-top .close{
    font-size: 20px;
    margin: 3px 10px 0 0;
}

.zweiF-konfig-option .zweiF-einrichten .qr-code{
    margin: 10px 0;
}

.zweiF-einrichten .app-links a{
    margin-right: 15px;
}

/* Plattform Auswahl*/

.auswahl-Plattform input[type="radio"] {
    margin-right: 10px;
}

.login-box .auswahl-Plattform td {
    padding: 0.5rem;
}

.login-box .auswahl-Plattform td label {
    margin: 10px 0;
    font-size: 18px;
    font-family: "SourceSans3-Regular", "Source Sans 3", sans-serif;
    line-height: 20px;
    text-transform: none;
}


/* Zwei-Fa-Konfig-Option */

.zweiF-konfig-option .login-box input[type="text"]{
    margin-bottom: 0;
}

.zweiF-konfig-option .login-box {
    height: fit-content;
}

.zweiF-konfig-option .submit >div:first-of-type{
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.zweiF-konfig-option .submit{
    align-items: end;
}

.zweiF-konfig-option .btn-secondary{
    margin-left: 30px;
    height: 48px;
    padding: 16px 32px 16px 32px;
    line-height: 16px;
}

.zweiF-konfig-option .text-top .check{
    font-size: 20px;
    margin: 3px 10px 0 0;
}

.visible {
    font-size: 20px !important;
    margin-top: 5px;
    margin-right: 5px;
    color: #00464b;
}

.notvisible{
    display: none;
}

.radio-label {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.radio-label .material-symbols-outlined {
    font-size: 20px;
    margin-right: 8px;
}

/* Style for unchecked state */
.radio-label input[type="radio"] + .material-symbols-outlined:before {
    content: 'radio_button_unchecked';
}

/* Style for checked state */
.radio-label input[type="radio"]:checked + .material-symbols-outlined:before {
    content: 'radio_button_checked';
}

.errorMsg li {
    color: #FF215E;
    font-size: 14px;
    line-height: 24px;
}

ul.errorMsg, .messages ul{
    list-style: none;
    padding-left: 0;
    margin-top: 5px;
}

.messages li {
    color: #FF215E;
}

.messages.info li {
    color: #ffffff;
}

input.error, select.error, textarea.error {
    background-color: #feece8 !important;
    border: 2px solid #FF215E !important;
    outline: medium none
}

a.secondary, a.secondary:hover {
    text-decoration: none;
    display: inline-block;
}

.col-30 {
    width: 30%;
}

.col-70 {
    width: 70%;
}

.full-width-table, .full-width-table input[type="text"] {
    width: 100%;
}

input[type="text"]:disabled {
    background: #dddddd;
}

.factor-input, .factor2-input {
    font-weight: bold;
    color: blue;
}

.qr-code-setup {
    width: 200px;
    display: block;
}

.social-badge {
    background: transparent;
    padding: 0 3px;
}

.social-logo {
    width: 15px;
    height: 15px;
    display: inline-block;
}

.div-wrapper {
    display: flex;
    flex-direction: row;
    text-transform: uppercase;
    border: none;
    font-size: 12px;
    font-weight: 400;
    margin: 5px 0;
    padding: 10px 0;
    align-items: center;
    justify-content: center;
    vertical-align: baseline;
}

.cloud-identity-btn {
    width: 202px;
    text-align: left;
    display: block;
    background-color: #ffffff;
}

.div-wrapper:before, .div-wrapper:after {
    content: "";
    border-bottom: 1px solid #c2c8d0;
    flex: 1 0 auto;
    height: .5em;
    margin: 0;
}

.divider {
    text-align: center;
    flex: .2 0 auto;
    margin: 0;
    height: 12px;
    /* font-weight: bold; */
    font-size: 14px;
    font-family: "Ubuntu-Regular", "Ubuntu", sans-serif;
    line-height: 17px;
}

.margin-top-10px {
    margin-top: 10px;
}

.margin-top-15px {
    margin-top: 15px;
}

.social-btn-wrapper {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

.social-btn-wrapper > a.social-link {
    flex: 1 1 auto;
    margin: 5px 0;
}

.login-box a.social-link {
    text-decoration: none;
}

.passwd-selection tr:first-child td {
    padding-bottom: 32px;
}

.info-box {
    color: #000000;
    background-color: rgba(225, 240, 235, 1);
    border-radius: 4px;
    font-family: "SourceSans3-Regular", "Source Sans 3", "sans-serif";
    line-height: 28px;
    padding: 7px 10px;
    font-size: 18px;
    margin-top: 7px;
}

.login-box p {
    margin: 3px 0;
}

.info-box p.caption {
    font-family: "SourceSans3-Bold", "Source Sans 3 Bold", "Source Sans 3", "sans-serif";
    font-weight:700;
    color:#003C3C;
    font-size: 1.1rem;
}

.info-box a {
    position: relative;
    color: rgb(0, 120, 122);
}

.info-box a span.material-symbols-outlined {
    position: absolute;
}

.info-box ol li {
    margin-bottom: 10px;
}
