html,
body {
    padding: 0;
    margin: 0;
}

* {
    box-sizing: border-box;
}

* {
    color: var(--color-dark);
    font-family: 'Roboto';
    font-style: normal;
}

h1, h2, h3, h4, h5 {
    font-weight: 700;
}

.main {
    display: flex;
    min-height: 100vh;
    width: 100%;
    position: relative;
    background: var(--background-main);
}

.verification span {
    font-size: 55px;
}

.select:not(.selectsearch)::after {
    content: '';
    position: absolute;
    width: 6px;
    height: 6px;
    border-right: 2px solid var(--color-dark);
    border-bottom: 2px solid var(--color-dark);
    right: 9px;
    transform: rotateX(0deg) rotate(45deg);
    pointer-events: none;
    transition: transform 400ms ease-in-out;
}

.select.rotated::after {
    transform: rotateX(180deg) rotate(45deg);
}

.circle {
    border-radius: 50%;
}

.notification-circle {
    border-radius: 50%;
    color: var(--button-color);
    width: 18px;
    height: 18px;
}

.br {
    border-radius: var(--border-radius);
}

.bs {
    box-shadow: var(--box-shadow);    
}

img.bs,
a.bs {
    filter: drop-shadow(var(--box-shadow));
}

.hidden {
    overflow: hidden;
}

.scrolly {
    overflow-y: scroll;
}

.scrollx {
    overflow-x: scroll;
}

.img-center {
    object-fit: contain;
    object-position: center center;
}

.pointer {
    cursor: pointer;
}

.edges-round {
    border-radius: 1000px;
}

.back-even:nth-child(even) {
    background-color: unset !important;;
}

.unselectable {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* width */
.scrolly::-webkit-scrollbar {
    width: 0;
}

/* Track */
.scrolly::-webkit-scrollbar-track {
    background: transparent;
}

/* Handle */
.scrolly::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: var(--border-radius)
}

/* Handle on hover */
.scrolly::-webkit-scrollbar-thumb:hover {
    background: transparent;
}

.bl {
    border: 1px solid #0000003d;
}

.bbl {
    border-bottom: 1px solid #0000003d;
}

.btl-fc:not(:first-of-type) {
    border-top: 1px solid #0000003d;
}

.btl-nfc:first-of-type {
    border-top: 1px solid #0000003d;
}

.btl {
    border-top: 1px solid #0000003d;
}

.brl {
    border-right: 1px solid #0000003d;
}

.bll {
    border-left: 1px solid #0000003d;
}

.bg-image {
    background-position: center center;
    background-size: cover;
}

.hover-line:hover {
    text-decoration: underline !important;
}

.hover-dark:hover {
    color: var(--color-dark);
}

/* Errors */

.error-message {
    color: red;
    margin: 0;
}


/* Hier wiederverwendbare Button strukturen */

.big-cb {
    width: 18px;
    height: 18px;
}

.reg-button {
    background: var(--button-background);
    border: none;
    appearance: none;
    color: var(--button-color);
    cursor: pointer;
    padding: 5px 10px;
    text-decoration: none;
    font-size: 14px;
}

.reg-button * {
    color: var(--color-light);
}

.reg-button.cancel {
    background: var(--button-cancel);
    color: var(--color-light);
}

.reg-button.accept {
    background: var(--button-accept);
    color: var(--color-light);
}

.reg-button.transparent {
    background: transparent;
    border: 1px solid var(--color-secondary-1);
    color: var(--color-secondary-1);
}

.reg-button.transparent * {
    color: var(--color-secondary-1);
}

.reg-button.transparent.cancel {
    background: transparent;
    color: var(--button-cancel);
    border: 1px solid var(--button-cancel);
}

.reg-button.transparent.cancel * {
    color: var(--button-cancel);
}

.reg-button.transparent.cancel:hover {
    background: var(--button-cancel);
    color: var(--color-light);
}

.reg-button.transparent.cancel:hover * {
    color: var(--color-light);
}

.reg-button.grey-input {
    background: transparent;
    border: 1px solid var(--color-input-grey);
    color: var(--color-grey);
}

.reg-button.grey-input * {
    color: var(--color-grey);
}

.reg-button.send {
    width: 36px;
    height: 36px;
}

.reg-button:disabled {
    cursor: not-allowed;
    opacity: .5;
}

.sub-button {
    background: var(--button-background);
    border: none;
    box-shadow: none;
    appearance: none;
    color: var(--button-color);
    font-weight: bold;
    cursor: pointer;
    height: 45px;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 16px;
    border-radius: var(--border-radius);
}

.sub-button.cancel {
    background: unset;
    /* border-radius: 100px; */
    color: var(--button-background);
    /* border: 2px solid var(--button-cancel); */
}

.sub-button.accept {
    background: var(--button-accept);
    color: var(--color-light);
}

.sub-button.transparent {
    background: transparent;
    border: 1px solid var(--color-secondary-1);
    color: var(--color-secondary-1);
}

.sub-button.inactive {
    background: transparent;
    border: 1px solid var(--color-dark);
    color: var(--color-dark);
}

.sub-button:disabled,
.sub-button.disabled,
.reg-button:disabled,
.reg-button.disabled {
    cursor: not-allowed;
    opacity: .5;
}
.passwd-button {
    background: transparent;
    border: none;
    appearance: none;
    cursor: pointer;
}

.favorite-button {
    width: 32px;
    height: 32px;
}

.favorite-button i {
    font-size: 22px;
    color: #ffcc08;
}

.collapse {
    border-collapse: collapse;
}


/* Hier wiederverwendbare Grid und Flex strukturen */

.flex {
    display: flex;
}

.space-between {
    justify-content: space-between;
}

.row {
    flex-direction: row;
}

.reverse {
    flex-direction: row-reverse;
}

.column {
    flex-direction: column;
} 

.column-reverse {
    flex-direction: column-reverse;
}

.align-center {
    align-items: center;
}

.align-bottom {
    align-items: baseline;
}

.align-left {
    align-items: flex-start;
}

.align-right {
    align-items: flex-end;
}

.justify-left {
    justify-content: start;
}

.justify-center {
    justify-content: center;
}

.justify-right {
    justify-content: end;
}

.flex.wrap {
    flex-wrap: wrap;
}

.grid {
    display: grid;
}

.col2 {
    grid-template-columns: 1fr 1fr;
}

.col3 {
    grid-template-columns: 1fr 1fr 1fr;
}

.col4 {
    grid-template-columns: 1fr 1fr 1fr 1fr;
}

.col5 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
}

.col6 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}

.col7 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.col8 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.col9 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.col1-2 {
    grid-template-columns: 1fr 2fr;
}

.col1-3 {
    grid-template-columns: 1fr 3fr;
}

.col1-4 {
    grid-template-columns: 1fr 3fr;
}

.col2-1 {
    grid-template-columns: 2fr 1fr;
}

.col3-1 {
    grid-template-columns: 3fr 1fr;
}

.col3-2 {
    grid-template-columns: 3fr 2fr;
}

.col4-1 {
    grid-template-columns: 4fr 1fr;
}

.row2 {
    grid-template-rows: 1fr 1fr;
}

.row3 {
    grid-template-rows: 1fr 1fr 1fr;
}

.row4 {
    grid-template-rows: 1fr 1fr 1fr 1fr;
}

.row5 {
    grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
}

.row6 {
    grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr;
}

.row7 {
    grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.row8 {
    grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.row9 {
    grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.row1-2 {
    grid-template-rows: 1fr 2fr;
}

.row2-1 {
    grid-template-rows: 2fr 1fr;
}

.row3-1 {
    grid-template-rows: 3fr 1fr;
}

.row3-2 {
    grid-template-rows: 3fr 2fr;
}

.row4-1 {
    grid-template-rows: 4fr 1fr;
}

@media (max-width: 700px) {
    .col1-resp {
        grid-template-columns: 1fr;
    }
}

.reg-gap {
    row-gap: 16px;
    column-gap: 16px;
}

.reg-gap-row {
    row-gap: 16px;
}

.reg-gap-col {
    column-gap: 16px;
}

.label-gap {
    row-gap: 30px;
    column-gap: 30px;
}

.label-gap-row {
    row-gap: 30px;
}

.label-gap-col {
    column-gap: 30px;
}

.small-gap {
    row-gap: 8px;
    column-gap: 8px;
}

.small-gap-row {
    row-gap: 8px;
}

.small-gap-col {
    column-gap: 8px;
}

@media (max-width: 700px) {
    .reg-gap {
        row-gap: 6px;
        column-gap: 6px;
    }
    
    .label-gap {
        row-gap: 12px;
        column-gap: 12px;
    }
}


/* Hier wiederverwendbares padding und margin */

.tbs5 {
    border-spacing: 5px;
}

.tbs10 {
    border-spacing: 10px;
}

.tbs15 {
    border-spacing: 15px;
}

.tbs20 {
    border-spacing: 20px;
}

.tbs25 {
    border-spacing: 25px;
}

.tbs30 {
    border-spacing: 30px;
}

.tcpx5 td {
    padding: 0 5px;
}

.tcpx10 td {
    padding: 0 10px;
}

.tcpx15 td {
    padding: 0 15px;
}

.tcpx20 td {
    padding: 0 20px;
}

.tcpx25 td {
    padding: 0 25px;
}

.tcpx30 td {
    padding: 0 30px;
}

.tcpy5 td {
    padding-top: 5px;
    padding-bottom: 5px;
}

.tcpy10 td {
    padding-top: 10px;
    padding-bottom: 10px;
}

.tcpy15 td {
    padding-top: 15px;
    padding-bottom: 15px;
}

.tcpy20 td {
    padding-top: 20px;
    padding-bottom: 20px;
}

.tcpy25 td {
    padding-top: 25px;
    padding-bottom: 25px;
}

.tcpy30 td {
    padding-top: 30px;
    padding-bottom: 30px;
}

.p0-10 {
    padding: 0 10px;
}

.p5 {
    padding: 5px;
}

.p10 {
    padding: 10px;
}

.p10-20 {
    padding: 10px 20px;
}

.p20 {
    padding: 20px;
}

.p20-10 {
    padding: 20px 10px;
}

.p30 {
    padding: 30px;
}

.p40 {
    padding: 40px;
}

.p50 {
    padding: 50px;
}

.p60 {
    padding: 60px;
}

.p100 {
    padding: 100px;
}

.pt10 {
    padding-top: 10px;
}

.pt20 {
    padding-top: 20px;
}

.pt30 {
    padding-top: 30px;
}

.pb5 {
    padding-bottom: 5px;
}

.pb10 {
    padding-bottom: 10px;
}

.pb20 {
    padding-bottom: 10px;
}

.pb30 {
    padding-bottom: 30px;
}

.pb40 {
    padding-bottom: 40px;
}

.pb50 {
    padding-bottom: 50px;
}

.pb60 {
    padding-bottom: 60px;
}

.pb70 {
    padding-bottom: 70px;
}

.pb80 {
    padding-bottom: 80px;
}

.pb90 {
    padding-bottom: 90px;
}

.pl10 {
    padding-left: 10px;
}

.pl20 {
    padding-left: 20px;
}

.pl50 {
    padding-left: 50px;
}

.pr10 {
    padding-right: 10px;
}

.pr20 {
    padding-right: 20px;
}

.pr30 {
    padding-right: 30px;
}

.pr40 {
    padding-right: 40px;
}

.px5 {
    padding-left: 5px;
    padding-right: 5px;
}

.px10 {
    padding-left: 10px;
    padding-right: 10px;
}

.px20 {
    padding-left: 20px;
    padding-right: 20px;
}

.px25 {
    padding-left: 25px;
    padding-right: 25px;
}

.px30 {
    padding-left: 30px;
    padding-right: 30px;
}

.px40 {
    padding-left: 40px;
    padding-right: 40px;
}

.py5 {
    padding-top: 5px;
    padding-bottom: 5px;
}

.py10 {
    padding-top: 10px;
    padding-bottom: 10px;
}

.py20 {
    padding-top: 20px;
    padding-bottom: 20px;
}

.py30 {
    padding-top: 30px;
    padding-bottom: 30px;
}

.py40 {
    padding-top: 40px;
    padding-bottom: 40px;
}

.pgap {
    padding: var(--padding-gap);
}

.gap {
    gap: var(--padding-gap);
}

.m0 {
    margin: 0;
}

.mt0 {
    margin-top: 0;
}

.mt5 {
    margin-top: 5px;
}

.mt10 {
    margin-top: 10px;
}

.mt15 {
    margin-top: 15px;
}

.mt20 {
    margin-top: 20px;
}

.mt25 {
    margin-top: 25px;
}

.mt30 {
    margin-top: 30px;
}

.mt35 {
    margin-top: 35px;
}

.mt40 {
    margin-top: 40px;
}

.mt50 {
    margin-top: 50px;
}

.mb0 {
    margin-bottom: 0;
}

.mb5 {
    margin-bottom: 5px;
}

.mb10 {
    margin-bottom: 10px;
}

.mb15 {
    margin-bottom: 15px;
}

.mb20 {
    margin-bottom: 20px;
}

.mb30 {
    margin-bottom: 30px;
}

.mb40 {
    margin-bottom: 40px;
}

.mxauto {
    margin-left: auto;
    margin-right: auto;
}

.mtopbar {
    margin-top: var(--topbar-height);
}

.mbtopbar {
    margin-bottom: var(--topbar-height);
}


/* Hier wiederverwendbare Positionierungen */

.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.fixed {
    position: fixed;
}

.sticky {
    position: sticky;
}

.z1 {
    z-index: 1;
}

.inset0 {
    top: 0;
    bottom: 0;
    right:0 ;
    left: 0;
}

.top0 {
    top: 0;
}

.top10 {
    top: 10px;
}

.left0 {
    left: 0;
}

.right0 {
    right: 0;
}

.right10 {
    right: 10px;
}

.bottom0 {
    bottom: 0;
}

.bottom10 {
    bottom: 10px;
}

.bottom20 {
    bottom: 20px;
}

.fit-content {
    width: fit-content;
}

.fit-content-height {
    height: fit-content;
}

.w33 {
    width: 33% !important;
}

.w50 {
    width: 50% !important;
}

.w100 {
    width: clamp(0px, 100%, 1600px) !important;
}

.w400 {
    width: 400px;
}

.w600 {
    width: 600px;
}

.w800 {
    width: 800px;
}

.mw1000 {
    max-width: 1000px;
}

.mw1200 {
    max-width: 1200px;
}

.mw1400 {
    max-width: 1400px;
}

.mw1600 {
    max-width: 1600px;
}

.h100 {
    height: 100%;
}

.block {
    display: block;
}


/* Hier wiederverwendbare Farbklassen */

.color-light {
    color: var(--color-light);
}

.color-grey {
    color: var(--color-grey);
}

.color-lightgrey {
    color: var(--color-lightgrey);
}

.color-xlightgrey {
    color: var(--color-xlightgrey);
}

.color-xxlightgrey {
    color: var(--color-xxlightgrey);
}

.color-p {
    color: var(--color-primary);
}

.color-s1 {
    color: var(--color-secondary-1);
}

.color-s2 {
    color: var(--color-secondary-2);
}

.color-cancel {
    color: var(--button-cancel);
}

.color-accept {
    color: var(--button-accept);
}

.color-lightblue {
    color: var(--color-lightblue);
}

.bfff {
    background: #fff;
}

.background-main {
    background: var(--background-main);
}

.background-color-p {
    background-color: var(--color-primary);
}

.background-color-s1 {
    background-color: var(--color-secondary-1);
}

.background-color-s2 {
    background-color: var(--color-secondary-2);
}

.background-color-s3 {
    background-color: var(--color-secondary-3);
}

.background-grey {
    background-color: var(--color-grey);
}

.background-lightgrey {
    background-color: var(--color-lightgrey);
}

.background-xlightgrey {
    background-color: var(--color-xlightgrey);
}

.background-xxlightgrey {
    background-color: var(--color-xxlightgrey);
}

.background-lightblue {
    background-color: var(--color-lightblue);
}

.background-accept {
    background-color: var(--button-accept);
}

.background-cancel {
    background-color: var(--button-cancel);
}

.background-yellow {
    background-color: #ffcc08;
}


/* Hier wiederverwendbare Fontklassen */

.upper {
    text-transform: uppercase;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.text-left {
    text-align: left;
}

.italic {
    font-style: italic;
}

.underline {
    text-decoration: underline !important;
}

.decoration-none,
.decoration-none * {
    text-decoration: none !important;
}

.weight100 {
    font-weight: 100;
}

.weight300 {
    font-weight: 300;
}

.weight400 {
    font-weight: 400;
}

.weight500 {
    font-weight: 500;
}

.weight700 {
    font-weight: 700;
}

.weight900 {
    font-weight: 900;
}

.h1 {
    font-size: 50px;
}

.h2 {
    font-size: 35px;
}

.h3 {
    font-size: 28px;
}

.h4 {
    font-size: 24px;
}

.h5 {
    font-size: 20px;
}

.h6 {
    font-size: 16px;
}

.h7 {
    font-size: 14px;
}

.h8 {
    font-size: 12px;
}

.h9 {
    font-size: 10px;
}

.h10 {
    font-size: 8px;
}


:root {
    --background-main: #e2f3ff;
    --button-background: #1B53D4;
    --button-color: #fff;
    /*--button-cancel: #f00;*/
    --button-cancel: #ff5c5c;
    --button-accept: #06AC20;
    --border-radius: 2px;
    --box-shadow:  0px 2px 8px rgba(0, 0, 0, 0.08);
    --color-dark: #14133B;
    --color-light: #fff;
    --color-grey: #00000075;
    --color-input-grey: rgb(118, 118, 118);
    --color-lightgrey: #0000003d;
    --color-xlightgrey: #f0f0f0;
    --color-xxlightgrey: #f9f9f9;
    --color-primary: #445AFF;
    --color-secondary-1: #12229D;
    --color-secondary-2: #1A98FF;
    --color-secondary-3: #D94D5C;
    --color-lightblue: #e8f5ff;
    --color-verlingo: #2f7785;
    --padding-gap: 20px;
    --topbar-height: 75px;
}