@font-face {
    font-family: 'Inter';
    src: url('font/Inter-VariableFont_opsz,wght.ttf') format('truetype');
}

@font-face {
    font-family: 'Comfortaa';
    src: url('font/Comfortaa-VariableFont_wght.ttf') format('truetype');
}

html {
    width: 100%;
    height: 100%;

    body {
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        font-family: var(--font-family), serif;
        font-weight: var(--font-weight-normal);
        font-size: var(--font-size-text);
        color: var(--color-text);
        margin: 0;
        --background: url('img/background.jpg');

        main {
            flex: 1;
            width: 100%;
            box-sizing: border-box;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: var(--page-padding);
            padding: var(--page-padding);
            overflow: hidden;
        }
    }

    body:before {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: -1;
        background-image: var(--background);
        background-size: cover;
        background-position: center;
        opacity: 0.3;
    }
}

.forced-hidden {
    display: none !important;
}

.fade-element {
    opacity: 1;
    visibility: visible;
    transition: opacity .3s ease, visibility 0s ease 0s;
}

.fade-element.hidden {
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility 0s ease .3s;
}

.slide-element {
    overflow: hidden;
    transition: max-height .5s ease-in-out, padding .5s ease-in-out;
}

.slide-element.hidden {
    max-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

a {
    color: var(--color-text);
    text-decoration: none;
    outline: none;
}

a.text {
    position: relative;
    cursor: pointer;
    transition: .2s;
}

a.text:hover {
    color: var(--color-primary);
}

a.text::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: var(--color-primary);
    transform-origin: bottom left;
    transform: scaleX(0);
    transition: transform .2s ease-out;
}

a.text:hover::after {
    transform: scaleX(1);
}

p {
    text-align: justify;
    margin: 0;
}

span.material-symbols-outlined {
    font-weight: 200;
}

form {
    p.label {
        font-size: var(--font-size-label);
        color: var(--color-primary);
        margin: 0 0 5px 1px;
    }

    p.label.no-margin {
        margin-bottom: 0;
    }

    label.input, label.textarea, select, label.select, div.switch, div.checkbox, div.radio, div.display-input {
        margin-bottom: 15px;
    }

    button {
        width: 100%;
    }
}

img.img-responsive {
    width: 90vw;
    max-width: 800px;
    border-radius: 3vw;
    box-shadow: var(--box-shadow);
}

div.button-row {
    width: 100%;
    box-sizing: border-box;
    display: flex;
    justify-content: right;
    gap: 15px;

    button {
        flex: 1;
    }
}

.full-width {
    width: 100%;
    box-sizing: border-box;
}

div.data-row {
    display: flex;
    background-color: var(--color-grey);
    border-radius: var(--border-radius-input);
    margin-bottom: 3px;
    padding: 5px 7px;
}

ul.file-tree {
    margin: 0;
    padding-left: 20px;

    li.folder {
        list-style-type: "📂 ";
    }

    li.file {
        list-style-type: "📄 ";
    }
}