
:root 
{
    --RIGHT-WIDTH: 0px;
    --LEFT-WIDTH: 120px;
    --TOP-HEIGHT: 40px;
    --BOTTOM-HEIGHT: 30px;
    --MOBILE-BOTTOM-HEIGHT: 60px;
}

/*---------------------  Layout ---------------------*/
.lay{
    overflow:hidden;
}
.lay-left {
    position: fixed;
    left: 0px;
    top: var(--TOP-HEIGHT);
    bottom: var(--BOTTOM-HEIGHT);
    width: var(--LEFT-WIDTH);
    background: linear-gradient(#571717, #0c0f52 );
    color: lightgray;
}
.lay-top {
    position: fixed;
    left: 0px;
    top: 0px;
    right: var(--RIGHT-WIDTH);
    height: var(--TOP-HEIGHT);
    background: linear-gradient(rgb(227 227 235), rgb(209 185 182));
}
.lay-bottom {
    position: fixed;
    left: 0px;
    bottom: 0px;
    right: var(--RIGHT-WIDTH);
    height: var(--BOTTOM-HEIGHT);
}

.lay-center {
    position: fixed;
    left: var(--LEFT-WIDTH);
    bottom: var(--BOTTOM-HEIGHT);
    right: var(--RIGHT-WIDTH);
    top: var(--TOP-HEIGHT);
    display:flex;
    flex-direction: row;
    background-color: #f2f0f0;
    overflow:hidden;
}
.lay-main{
    overflow:hidden;
    height:unset;
}
.lay-article {
    overflow: hidden;
    height: unset;
}
.lay-article.pc{
    margin-top:10px;
}
.lay-content-body {
    overflow: hidden;
    height: unset;
}

/*---------------------  Layout (Mobile) ------------*/
.lay-bottom.mobile {
    visibility: hidden;
    display: none;
}
.lay-top.mobile {
    left: 0px;
    height: var(--BOTTOM-HEIGHT);
}

.lay-left.mobile {
    /*---------------------  nach unten ------------*/
    top: unset;
    width: unset;
    left: 0px;
    bottom: 0px;
    right: var(--RIGHT-WIDTH);
    height: var(--MOBILE-BOTTOM-HEIGHT);
}
.lay-center.mobile {
    left: 0px;
    bottom: var(--MOBILE-BOTTOM-HEIGHT);
    right: var(--RIGHT-WIDTH);
    top: var(--BOTTOM-HEIGHT);
    background-color: rgb(247,248,250);
    background-repeat: repeat-x;
    background-position-x: 0%;
    background-position-y: 0%;
}

/*---------------------  ApplicationHeader ---------------------*/
.lay-top {
    background: linear-gradient(to right, #571717, #0c0f52 );
    border-bottom: 1px solid gray;
}
.appl-header {
    display: flex;
    flex-direction: row;
    margin-left: 5px;
    margin-right: 5px;
    justify-content: end;
    color:lightgray;
}
.appl-header > .btn{
    color:lightgray;
}
.app-offline {
    color: #fb7a7a;
}
.app-online {
    color:greenyellow;
}
.bi-state {
    border: 2px solid transparent;
    border-radius: 50%;
}

/*---------------------  CHAT ---------------------*/
.ch-side {
    display: flex;
    flex-direction: row;
    overflow: hidden;
    width: 100%;
    height:100%;
}

.ch-side-header, .ch-side-footer {

    width: 100%;
    min-height: 60px;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 3px;
}

.ch-side-header {
    border-bottom: 1px solid black;
}

.ch-side-footer {
    background-color: whitesmoke;
    padding: 3px;
}


.ch-side-content {
    display: flex;
    flex-direction: column;
    width: 100%;
    background-color: white;
    overflow-x: hidden;
    overflow-y: auto;
}

.ch-side-content-pc {
    overflow: hidden;
    flex-direction: row;
    justify-items: stretch;
}
.ch-eingabe {
    width: 100%;
    height: 56px;
    padding: 5px;
    display: flex;
    align-items: center;
    border-top:1px solid gray;
    margin-top:3px;
}
.bi-button {
    border: 1px solid transparent;
    border-radius: 50px;
    min-width: 40px;
    min-height: 40px;
    text-align: center;
    padding-top:4px;
}
    .bi-button:hover {
        border: 1px solid blue;
        background-color: #abb1cf6e;
        color: darkviolet;
        font-weight:900;
        /* Firefox */
        -moz-transition: all 0.2s ease-in;
        /* WebKit */
        -webkit-transition: all 0.2s ease-in;
        /* Opera */
        -o-transition: all 0.2s ease-in;
        /* Standard */
        transition: all 0.2s ease-in;
        cursor: pointer;
    }
.msg {
    background-color: white;
    border-radius: 10px;
    padding-left: 5px;
    padding-right: 3px;
    padding-top: 2px;
    display: grid;
    border: 1px solid lightgray;
}
.msg-flex {
    display: flex;
    flex-direction: row;
    
}

.recv-msg {
    justify-self: start;
    border-top-left-radius: 0px;
}

.send-msg {
    border-top-right-radius: 0px;
    justify-self: end;
    background-color: #c7e8ce4e;
}
.recv-props {
    display: none;
    align-content: space-evenly;
    margin-left: 5px;
    cursor: pointer;
}
    .recv-props:hover >i{
        color: blueviolet;
    }
    .msg-flex:hover > .recv-props {
        display: block;
    }
.user-image {
    object-fit: cover;
    border-radius: 50%;
    border: 1px solid gray;
}
.msg-text {
    color: black;
    font-size: medium;
    margin-bottom:2px;
}
.msg-time {
    color: #b7b3b3;
    font-size: 10px;
    margin-bottom: 0px;
    float:right
}
.msg-trenner {
    width: 100%;
    background-color: ghostwhite;
    text-align: center;
    border: 1px solid lightgray;
    padding: 5px;
    margin: 5px;
    margin-right:15px;
    border-radius: 10px;
}
/*---------------------  App-Start ------------*/
.loading-progress {
    position: relative;
    display: block;
    width: 8rem;
    height: 8rem;
    margin: 20vh auto 1rem auto;
}

    .loading-progress circle {
        fill: none;
        stroke: #e0e0e0;
        stroke-width: 0.6rem;
        transform-origin: 50% 50%;
        transform: rotate(-90deg);
    }

        .loading-progress circle:last-child {
            stroke: #1b6ec2;
            stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
            transition: stroke-dasharray 0.05s ease-in-out;
        }

.loading-progress-text {
    position: absolute;
    text-align: center;
    font-weight: bold;
    inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
}

    .loading-progress-text:after {
        content: var(--blazor-load-percentage-text, "Loading");
    }

/*---------------------  TabControl ---------------------*/
.tabpage{
    border: 1px solid transparent;
    border-radius:5px;
    color:lightgray;
}
    .tabpage:hover > div {
        color: darkturquoise;
    }

    .tabpage-selected {
        border-color: lightgray;
    }

    .tabpage-selected > div {
        color: chartreuse;
    }


/*---------------------  Form-Controls ------------*/
.input-group {
    position: relative;
}
    .input-group .form-input {
        display: block;
        background: none;
        background-color: #fff;
        font-size: 1.25rem;
        font-weight: 500;
        padding: 5px;
        width: 100%;
        border: none;
        border-radius: 0;
        border-bottom: 2px solid rgba(0, 0, 0, 0.12);
        margin: 5px 0;
        background-color:transparent;
    }

        .input-group .form-input:focus {
            outline: none;
            border-color: #d80810;
            background-color: #0fb35e17;
        }

            .input-group .form-input:not([value=""]) ~ .form-input-label,
            .input-group .form-input:focus ~ .form-input-label {
                top: -12px;
                left: 5px;
                color: #181d2f;
            }

    .input-group .form-input-label {
        color: #8995a2;
        font-size: 14px;
        font-weight: normal;
        position: absolute;
        pointer-events: none;
        left: 8px;
        top: 8px;
        -webkit-transition: 300ms ease all;
        transition: 300ms ease all;
    }

        .input-group .form-input-label.shrink {
            top: -18px;
            left: 5px;
            color: #181d2f;
        }

.floating-label-input {
    position: relative;
    height: 60px;
}

    .floating-label-input input {
        width: 100%;
        height: 100%;
        position: relative;
        background: transparent;
        border: 0 none;
        outline: none;
        vertical-align: middle;
        font-size: 20px;
        font-weight: 700;
        padding-top: 10px;
        border-bottom:1px solid black;
    }
        .floating-label-input input:focus {
            border-bottom: 1px solid red;
            background-color: #0fb35e17;
        }

    .floating-label-input label {
        position: absolute;
        top: calc(50% - 5px);
        font-size: 20px;
        left: 0;
        color: #b3aeae;
        transition: all 0.3s;
        font-style: italic;
    }

    .floating-label-input input:focus ~ label,
    .floating-label-input input:focus ~ label,
    .floating-label-input input:disabled ~ label,
    .floating-label-input input:valid ~ label {
        top: 0;
        font-size: 15px;
        color: #101010;
        font-style: normal;
    }


    .floating-label-input input:focus ~ .line:after, .floating-label-input input:focus ~ .line:after, .floating-label-input input:valid ~ .line:after {
        width: 100%;
    }

/*---------------------  ListBox ---------------------*/
.listbox{
    overflow-x:hidden;
    margin-top:1px;
    overflow-y:auto;
    line-height:16px;
}
.listitem{
    width:100%;
    min-height:70px;
    border-bottom:1px solid gray;
    background-color:transparent;
    cursor:pointer;
    padding:3px;
}
    .listitem:hover {
        background-color: lightblue;
    }
.listitem-selected {
    background-color: aliceblue;
}
.chat-listitem{
    border: none;
    min-height:20px;
    padding:1px 5px;
    display:grid;
    cursor: default;

}
    .chat-listitem:hover {
        background-color: transparent;
    }


/*---------------------  Form-Layout ------------*/
.form-root {
    background-color: whitesmoke;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.form-titel {
    display: flex;
    align-items: center;
    border-bottom: 1px solid lightblue;
    background: linear-gradient(to right, white, lightcyan );
    color: darkblue;
    height: 60px;
    padding-left: 5px;
    padding-right: 5px;
    justify-content:flex-start;
}

.form-desktop{
    display:grid;
    grid-template-columns:40% 60%;
    grid-template-rows: max-content;
}
.form-content {
    padding: 5px;
    border: 1px solid black;
}
.form-overlay {
    padding: 5px;
    border: 1px solid green;
}
.form-toolbar{
    border-bottom:1px solid gray;
    margin:5px 0px;
    padding:5px 0px;
}
.contact-template{
    display:flex;
    align-items:center;
}
.contact-template-small,
.contact-template-small > div > h5,
.contact-template-small > div > h4,
.contact-template-small > div > h3,
.contact-template-small > div > h2,
.contact-template-small > div > h1
{
    font-size: 16px;
    margin-bottom:1px
}

/*---------------------  Modal-Form (als Overlay) ------------*/
.modal-form-background {
    position: fixed;
    left: 0px;
    top: 0px;
    right: 0px;
    bottom: 0px;
    background-color:#d1c3c394;
    z-index:9998;
}
.modal-form {
    position: fixed;
    background-color: white;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    padding: 5px;
    border-radius: 10px;
    border: 1px solid green;
    min-width: 400px;
    z-index: 9999;
}
.modal-form-header {
    background: linear-gradient(#571717, #0c0f52 );
    color: white;
    text-align: center;
    margin-left: -6px;
    margin-top: -6px;
    margin-right: -6px;
    margin-bottom: 10px;
    padding-bottom: 3px;
    padding-top: 3px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    display:flex;
    align-items: center;
}
    .modal-form-header > i {
        margin-right: 8px;
        margin-left: 8px;
        font-size: 22px !important;
        border-radius: 50%;
        border: 2px solid lightgray;
        width: 35px;
        height: 35px;

    }
    .modal-form-content {
        width: 100%;
        min-height: 300px;
    }
.modal-form-footer {
    display: flex;
    flex-direction: row;
    align-items: center;
    border-top: 1px solid lightgray;
    padding: 5px 0px;
    justify-content: center;
    background-color: #eeeeee7c;
    margin-left: -6px;
    margin-right: -6px;
    margin-bottom: -6px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}
.search-kontakt-results {
    height: 220px;
    padding: 5px;
    border: 1px solid gray;
    border-radius:5px;
    margin-bottom:5px;
}
.search-kontakt-results >listbox{
    height:200px;
}
/*---------------------  Contact ------------*/
.contact-form{
    display:flex;
    flex-direction:row;
    width:100%;
    align-items:center
}
.contact-daten {
    font-size: 12px;
    width: 100%;
    display: grid;
    grid-template-columns: 260px auto;
    row-gap: 3px;
}
.contact-name {
    font-size: 20px;
    font-weight: bold;
    white-space: nowrap;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-bottom:5px;
}
.contact-status {
    font-size: 14px;
    font-weight: bold;
    color: forestgreen;
    white-space: nowrap;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
}
.contact-info {
    font-size: 12px;
    font-style: italic;
    white-space: nowrap;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
}
.contact-handy {
    font-size: 12px;
    color: blue;
    white-space: nowrap;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
}
.contact-nickname {
    font-size: 12px;
    font-weight: bold;
    white-space: nowrap;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
}
.contact-lastchanged {
    font-size: 11px;
    white-space: nowrap;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
}
.contact-properties{

}
    .contact-properties > i {
        font-size: 22px !important;
        border-radius: 50%;
        border: 2px solid transparent;
        min-width: 35px;
        min-height: 35px;
        padding-left: 4px;
        padding-right: 4px;
    }
        .contact-properties > i:hover {
            border: 2px solid blue;
            background-color: #abb1cf6e;
            color: darkviolet;
            font-weight: 900;
            /* Firefox */
            -moz-transition: all 0.2s ease-in;
            /* WebKit */
            -webkit-transition: all 0.2s ease-in;
            /* Opera */
            -o-transition: all 0.2s ease-in;
            /* Standard */
            transition: all 0.2s ease-in;
            cursor: pointer;
        }
.contact-template-small {
    row-gap: 0px;
}
    .contact-template-small > .contact-name {
        font-size: 18px;
    }
    .contact-template-small > .contact-info,
    .contact-template-small > .contact-lastchanged {
        display: none;
    }


/*---------------------  Emojies ---------------------*/
.emoji-list{
    max-width:400px;
    display:flex;
    flex-wrap: wrap;
    flex-direction:row;
    margin:1px;
    font-size:30px;
}
.emoji {
    border: 2px solid #bab3b337;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-width: 1px;
    margin: 1px;
    border-radius: 5px;
    cursor: pointer;

}
.emoji:hover{
    border-color: green;
}