* {
    font-family: 'Bahnschrift', 'Arial';
    list-style: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

img, input[type=button], a, button {
    /* disable selectability */
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none;    /* Firefox */
    -ms-user-select: none;     /* Internet Explorer/Edge */
    user-select: none;         /* Standard-Syntax */
}

body {
    background-color: #BDC9D4 !important;
    overflow-x: hidden !important;
    padding-top: 1vh;
    z-index: 1;
}

.bg-items {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.bg-itm {
    font-family: 'Papyrus';
    position: absolute;
    color: #CED9E5;
    text-shadow: #eee -1px 1px 3px;
    font-weight: 150;
    font-size: 11px;
    transform-origin: center;
    cursor: default;
    line-height: 1;
    display: inline-block;
    padding: 0;
    margin: 0;
    box-sizing: content-box;
    transition: all 3s;
    /* disable selectability */
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none;    /* Firefox */
    -ms-user-select: none;     /* Internet Explorer/Edge */
    user-select: none;         /* Standard-Syntax */
}

.bg-itm.damaged {
    color: #FFD9E5;
    text-shadow: #fff -1px 1px 7px;
    font-size: 7rem;
    font-weight: 900;
    cursor: pointer;
}

.banner {
    cursor: default;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.3rem 0px 0.3rem 0px;
    margin: 1rem 0px 1rem 0px;
    width: -webkit-fill-available;
    text-shadow: #eee 1px 0 3px;
}


.banner.bg-red.gradient {
    font-family: 'Arial', 'Source Sans Pro Topnav' !important;
    background-image: radial-gradient(circle, #984c4c 65%, rgba(189,201,212,1) 95%);
    /*background-image: radial-gradient(circle, #111 65%, rgba(189,201,212,1) 95%);*/
    text-align: center;
    /* disable selectability */
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none;    /* Firefox */
    -ms-user-select: none;     /* Internet Explorer/Edge */
    user-select: none;         /* Standard-Syntax */
}

.banner img {
    margin: 0.25vw;
}

@keyframes fadeIn {
    from {
        opacity: 0.3;
    }
    to {
        opacity: 1;
    }
}

.element-box {
    background-color: #ffffff;
    color: black;
    margin: 0 auto;
    margin-top: 25px;
    border: 1px hidden lightgray;
    border-radius: 4px;
    padding: 15px;
    width: fit-content;
    box-shadow: 0px 0px 10px 1px rgba(255, 255, 255, 0.5);
    width: 75vw;
    transform-origin: 50% 50%;
    transition: all 0.25s ease;
}

.element-box.simple {
    width: fit-content;
    color: white;
    background-color: initial;
    box-shadow: none;
}

.element-box.center-content {
    text-align: center;
    align-content: center;
}

.element-box.simple.special {
    text-shadow: -0.05rem 0.05rem #bbb;
    animation: fadeIn 1s ease-in-out;
}


.element-box.simple.special:hover {
    text-shadow: -0.1rem 0.1rem #aaa;
}

.element-box:not([class*=' ']):hover {
    box-shadow: 0px 0px 25px 2px white;
    width: calc(75vw + 0.5rem);
}

.element-box.slim:hover {
    box-shadow: 0px 0px 25px 2px white;
    width: calc(55vw + 0.5rem) !important;
}

.element-box.large-width { width: 95% !important }
.element-box.slim { width: 55vw !important }

.element-box.gradient {
    background-color: #BDC9D4 !important;
    border-color: #BDC9D4 !important;
    background-image: radial-gradient(circle, rgba(255,255,255,1) 35%, rgba(189,201,212,1) 95%);
    box-shadow: none !important;
    color: #fff;
    text-align: center;
    font-weight: bolder;
    text-shadow: #111 2px 0 8px;
    padding: 5px !important;
}

.text-block {
    border-radius: 3px;
    /*background-color: rgb(134 183 254 / 15%);*/
    text-shadow: 0.5px 0.5px 0.7px #86b7fe;
}

.icon {
    padding: 0;
    width: 32px !important;
    height: 32px !important;
}

/** colors */

.bg-dark {    background-color: #111; color: #fff; }
.bg-red { background-color: #b93b3b; color: white; }
.bg-darkred { background-color: #930000; color: white; }
.bg-green { background-color: #3a7f14; }
.bg-blue { background-color: #1d6bbf; }
.bg-yellow { background-color: #d6d600; }
.bg-purple { background-color: #6c4177; }
.bg-orange { background-color: #e69543; }
.bg-cyan { background-color: #80bfff; }

.center {
    margin: 0 auto;
    width: 50%;
    display: flex;
    justify-content: center;
}

.show {
    display: block !important;
}

.hidden, .hide {
    display: none !important;
}

.sp-tp {
    margin-top: 0.7rem !important;
}
.sp-btm {
    margin-bottom: 0.7rem !important;
}

.user-box {
    color: #222;
    font-weight: bold;
    background-color: #eee;
    padding: 0.15rem 0.5rem 0.15rem 0rem;
    user-select: none;
    border-radius: 10px 5px 5px 10px;
    cursor: pointer;
    text-decoration: none;
}

.user-box img {
    width: 32px;
    height: 32px;
    align-self: center;
}

.user-box:hover {
    color: #111;
    background-color: #fff;
    box-shadow: 0 0 0.07rem 0.05rem #ddd;
    padding: 0.2rem 0.5rem 0.2rem 0rem;

}

@media (max-width: 900px) {
    * {
        font-size: 25px;
    }

    .banner.bg-red.gradient  {
        font-size: 11px !important;
    }

    .element-box {
        margin-top: -10px !important;
        margin-bottom: 25px;
        width: 98% !important;
    }

    .logout-smsc {
        display: block !important;
        display: flex;
        justify-content: center;
        padding: 0;
        position: fixed;
        right: 0;
        bottom: 0;
    }

    .form-check-input {
        zoom: 300%;
        padding: 0px !important;
        margin: 3px;
        margin-left: -15px;
    }

    .btn-sm {
        margin: 15px;
    }

    .banner.initialized {
        font-size: 13px !important;
    }
}

.icon-bg {
    background-color: #A4C1E7;
    border-radius: 50%;
}

/**
    pricing table (https://codepen.io/Amriad/pen/zYJPPNP)
**/

.pricing-plans {
    display: flex;
    gap: 25px;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: center;
    width: 100vw;
    padding: 24px;
    background-image: radial-gradient(circle, rgba(198 201 212 / 0%) 75%, rgba(51 51 51 / 20%) 100%);
}

.pricing-card {
    position: static;
    min-width: 300px;
    min-height: 300px;
    padding: 1rem;
    padding-bottom: 32px;
    border-radius: 12px;
    background-color: #212529;
    border: 1px solid #212529;
    box-shadow: 0px 0px 8px 3px #fff;
    text-align: center;
    transition: all 0.5s ease;
}

.pricing-card:hover {
    border-color: var(--col);
    background-color: #111;
    box-shadow: 0px 0px 15px 1px var(--col);
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}


.pricing-card.basic {
    --col: #aaccaa;
}

.pricing-card.trial {
    --col: #8abfee;
}


.pricing-card.premium {
    --col: #e39f5b;
}

.pricing-card > *:not(:last-child) {
    margin-bottom: 10px;
}

.pricing-card .heading h4 {
    padding-bottom: 6px;
    color: var(--col);
    font-size: 24px;
    font-weight: normal;
}

.pricing-card .heading p {
    color: #a3a3a3;
    font-size: 14px;
    font-weight: lighter;
}

.pricing-card .price {
    position: static;
    color: var(--col);
    font-size: 60px;
    font-weight: bold;
}

.pricing-card .price sub {
    position: static;
    bottom: 14px;
    color: #a3a3a3;
    font-size: 14px;
    font-weight: lighter;
}

.pricing-card .features li {
    padding-bottom: 16px;
    color: #a3a3a3;
    font-size: 15px;
    font-weight: lighter;
    text-align: left;
    max-height: fit-content;
}

.pricing-card .features li i,
.pricing-card .features li strong {
    color: #e4e4e7;
    font-size: 16px;
    text-align: left;
}

.pricing-card .features li strong {
    padding-left: 12px;
}


/**
    loading overlay
*/

#loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 9999; /* Sehr hoher z-index, um über allem zu liegen */
    display: flex;
    justify-content: center;
    align-items: center;
}

.spinner {
    border: 8px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    border-top: 8px solid #ffffff;
    width: 60px;
    height: 60px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}