@import url('https://fonts.googleapis.com/css2?family=Comfortaa:wght@300..700&display=swap');

* {
    box-sizing: border-box;
    font-family: 'Comfortaa', sans-serif;
    outline: none;
}

:root {
    --color-highlight: #A8DADC;
    --color-highlightTransparent: rgba(168,218,220,0.2);
    --color-green: #8EDBB5;
    --color-orange: #FFB170;
    --color-red: #F37776;
    --color-yellow: #F3F376;
    --color-blue: #2F81D1;
    --color-violet: #7F6AF5;
    --color-coral: #F66C5E;
    --color-mustard: #FFC300;
    --color-grey: #B4BDBD;
    --color-greyTransparent: rgba(180,189,189,0.1);
    --color-darken: rgba(0,0,0,0.08);
    --color-background: #F5F5F5;
    --color-text: #727A7A;
    --color-backgroundMenu: #ffffff;
    --color-backgroundElements: #ffffff;
    --color-backgroundDialogs: #F5F5F5;
    --color-backgroundInputs: #ffffff;
}

@media (prefers-color-scheme: dark) {
    :root {
        --color-background: #1B1B1B;
        --color-text: #ffffff;
        --color-backgroundMenu: #343434;
        --color-backgroundElements: #343434;
        --color-backgroundDialogs: #343434;
        --color-backgroundInputs: #4A4A4A;
    }
}

body {
    height: 100dvh;
    min-width: 360px;
    margin: 0;
    padding: 0;
    background-color: var(--color-background);
    display: flex;
    flex-direction: row;
}

#container {
    flex: 1;
    background-color: var(--color-background);
    height: 100%;
}

#mainContainer {
    height: 100%;
    display: flex;
    flex-flow: column nowrap;
}

.main {
    flex: 1;
    color: var(--color-text);
    font-size: 1em;
    display: flex;
    flex-flow: column nowrap;
    overflow-y: hidden;
    padding: 20px;
    gap: 20px;
}

.mainContent {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow-y: auto;
    gap: 20px;
}

::selection {
    background-color: var(--color-highlightTransparent);
}

a {
    text-decoration: none;
}

h1 {
    color: var(--color-text);
    font-size: 1.5em;
    font-weight: normal;
    margin: 0;
}

h2 {
    color: var(--color-text);
    font-size: 1.2em;
    font-weight: normal;
    margin: 0;
}

h3 {
    color: var(--color-text);
    font-size: 1.1em;
    font-weight: normal;
    margin: 0;
}

p {
    color: var(--color-text);
    font-size: 1em;
    font-weight: normal;
    margin: 0;
}

#darkening {
    position: fixed;
    display: none;
    height: 100%;
    width: 100%;
    background-color: rgba(0,0,0,0.5);
    z-index: 2;
}

footer {
    align-self: center;
    gap: 20px;
}

.forbidden {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

    .forbidden > img {
        width: 100px;
        height: 100px;
        filter: invert(42%) sepia(1%) saturate(2391%) hue-rotate(131deg) brightness(110%) contrast(72%);
    }

    .forbidden > h2 {
        white-space: pre-wrap;
        text-align: center;
    }

.search {
    flex: 1 0 200px;
    background: var(--color-backgroundInputs);
    height: 30px;
    border-radius: 15px;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    overflow: hidden;
    padding-left: 5px;
}

    .search::before {
        content: '';
        background-image: url(../images/search.png);
        background-size: 22px 22px;
        background-repeat: no-repeat;
        width: 22px;
        height: 22px;
        flex: 0 0 22px;
        filter: invert(47%) sepia(3%) saturate(589%) hue-rotate(131deg) brightness(99%) contrast(86%);
    }

.filters {
    align-items: center;
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    gap: 5px;
}

.dateSearch {
    flex: 1 0 200px;
    display: flex;
    background-color: var(--color-backgroundInputs);
    border-radius: 15px;
    height: 30px;
    justify-content: space-evenly;
}

    .dateSearch input[type=date] {
        color: var(--color-textonormal);
        border: 0px;
        padding: 5px 10px;
        background-color: transparent;
        font-size: 1em;
        margin: 0px;
        text-align: center;
    }

.statusSearch {
    background: var(--color-backgroundInputs);
    border-radius: 15px;
    height: 30px;
    flex: 1 0 200px;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    overflow: hidden;
    padding: 0px 10px;
    gap: 5px;
}

    .statusSearch select {
        width: 100%;
        margin: 0px;
        background-color: var(--color-backgroundInputs);
        border: 0px;
        font-size: 1em;
        padding: 5px;
        color: var(--color-textonormal);
    }

.installationSearch {
    background: var(--color-backgroundInputs);
    border-radius: 15px;
    height: 30px;
    flex: 1 0 200px;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    overflow: hidden;
    padding: 0px 10px;
    gap: 5px;
}

    .installationSearch select {
        width: 100%;
        margin: 0px;
        background-color: var(--color-backgroundInputs);
        border: 0px;
        font-size: 1em;
        padding: 5px;
        color: var(--color-textonormal);
    }

    .installationSearch::before {
        content: '';
        background-image: url(../images/home.png);
        background-size: 18px 18px;
        background-repeat: no-repeat;
        width: 18px;
        height: 18px;
        flex: 0 0 18px;
        filter: invert(47%) sepia(3%) saturate(589%) hue-rotate(131deg) brightness(99%) contrast(86%);
    }

.resultHeader {
    display: flex;
    flex-direction: row nowrap;
    gap: 10px;
}

    .resultHeader > .iconOk {
        background-image: url(../images/result_ok.png);
        background-size: 128px 128px;
        background-repeat: no-repeat;
        width: 128px;
        height: 128px;
        filter: invert(92%) sepia(13%) saturate(983%) hue-rotate(83deg) brightness(90%) contrast(89%);
    }

    .resultHeader > .iconError {
        background-image: url(../images/result_error.png);
        background-size: 128px 128px;
        background-repeat: no-repeat;
        width: 128px;
        height: 128px;
        filter: invert(53%) sepia(77%) saturate(2819%) hue-rotate(328deg) brightness(110%) contrast(93%);
    }

    .resultHeader .resultHeaderDetails {
        margin-top: 20px;
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 5px;
    }

        .resultHeader .resultHeaderDetails > p:first-of-type {
            font-size: 0.8em;
        }

            .resultHeader .resultHeaderDetails > p:first-of-type::before {
                display: inline-block;
                vertical-align: top;
                background-image: url('../images/home.png');
                background-size: contain;
                background-repeat: no-repeat;
                margin-right: 5px;
                width: 12px;
                height: 12px;
                content: '';
                filter: invert(42%) sepia(1%) saturate(2391%) hue-rotate(131deg) brightness(110%) contrast(72%);
            }

        .resultHeader .resultHeaderDetails h1 > span {
            background-color: var(--color-blue);
            color: white;
            font-size: 0.8em;
            padding: 3px 5px;
            border-radius: 5px;
        }

.nodeResult {
    background-color: var(--color-backgroundElements);
    border-radius: 5px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

    .nodeResult .nodeResultItem {
        display: flex;
        flex-direction: row;
        width: 100%;
        gap: 20px
    }

        .nodeResult .nodeResultItem > p:first-of-type {
            flex: 1;
        }

        .nodeResult .nodeResultItem .nodeResultItemOk::before {
            display: inline-block;
            vertical-align: top;
            background-image: url('../images/result_ok.png');
            background-size: contain;
            background-repeat: no-repeat;
            margin-right: 5px;
            width: 16px;
            height: 16px;
            content: '';
            filter: invert(92%) sepia(13%) saturate(983%) hue-rotate(83deg) brightness(90%) contrast(89%)
        }

        .nodeResult .nodeResultItem .nodeResultItemError::before {
            display: inline-block;
            vertical-align: top;
            background-image: url('../images/result_error.png');
            background-size: contain;
            background-repeat: no-repeat;
            margin-right: 5px;
            width: 16px;
            height: 16px;
            content: '';
            filter: invert(53%) sepia(77%) saturate(2819%) hue-rotate(328deg) brightness(110%) contrast(93%);
        }

        .nodeResult .nodeResultItem > p:last-of-type {
            flex: 3;
        }

.taskUpload {
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100vh;
    gap: 20px;
}

    .taskUpload label {
        max-width: 400px;
        width: 100%;
        border-radius: 20px;
        background-color: var(--color-backgroundElements);
        padding: 20px;
        gap: 20px;
        display: flex;
        flex-direction: column;
        align-items: center;
        cursor: pointer;
    }

        .taskUpload label > img {
            width: 100px;
            height: 100px;
            filter: invert(80%) sepia(15%) saturate(443%) hue-rotate(133deg) brightness(100%) contrast(97%);
        }

        .taskUpload label > h2 {
            color: var(--color-highlight);
            text-align: center;
        }

.taskDetails {
    overflow-y: auto;
}

    .taskDetails > div:last-of-type {
        display: flex;
        flex-direction: row;
        justify-content: center;
        gap: 10px;
    }

.taskDetail h1, h3 {
    color: var(--color-highlight);
}

.taskDetailSeparator {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}

    .taskDetailSeparator > img {
        width: 32px;
        height: 32px;
        filter: invert(80%) sepia(15%) saturate(443%) hue-rotate(133deg) brightness(100%) contrast(97%);
    }

.taskDetail {
    margin-bottom: 20px;
    display: flex;
    flex-flow: column;
    align-items: center;
    gap: 10px;
    border-radius: 20px;
    background-color: var(--color-backgroundElements);
    padding: 20px;
}