a[href="#"] {
    text-decoration: line-through;
}

html {
    scrollbar-width: thin;
}

body {
    background-color: var(--colourBackground);
    font-family: 'Albert Sans', sans-serif;
}

h1, h2, h3, h4, h5 {
    font-family: 'Inter Black';
    font-weight: bold;   
}

div.container {
    max-width: var(--layoutWidth);
    margin: 0 auto;
}

header {
    margin: 0 auto;
    padding: 0 18px;
    position: relative;
    z-index: 100;
    background-color: white;
    box-shadow: var(--layoutShadow);

    > div.container {
        display: flex;
        align-items: stretch;
        justify-content: space-between;
        height: var(--headerHeight);
        align-items: center;

        @media (max-width: 400px) {
            flex-direction: column;
            justify-content: center;
            gap: 10px;
        }

        a.brand {
            display: flex;
            align-items: center;
            gap: 18px;

            img.cog {
                width: 50px;
                aspect-ratio: 1/1;
            }

            img {
                filter: drop-shadow(0px 0px 50px rgba(0, 0, 0, 0.25));
            }

            img.text {
                height: 50px;
            }
        }
    }
}

footer {
    box-shadow: var(--layoutShadow);
    background-color: white;
    margin-top: 44px;
    padding: 18px;

    div.partners {
        margin-bottom: 36px;
    }

    p {
        text-align: center; 
    }

    div.columns {
        display: flex;
        justify-content: space-between;
        align-items: center;
        
        div.contact {
            display: flex;
            flex-direction: column;
            gap: 18px;
        }

        @media (max-width: 768px) {
            div.contact {
                display: none;
            }

            margin-bottom: 36px;
        }
    }

    p.taurusnetwork {
        font-weight: bold;
    }
}

.page {
    >.header {
        color: white;

        display: flex;
        justify-content: space-between;
        align-items: center;

        .left {
            h1 {
                font-size: xx-large;
            }

            p {
                margin-top: 10px;
            }
        }

        .right {            
            a {
                text-align: center;
                color: white;
                text-decoration: none;

                &:visited {
                    color: white;
                }

                svg {
                    fill: white;
                    width: 50px;
                    display: block;
                    margin: 0 auto;
                }

                &:hover {
                    color: var(--colourBrandSecondary);
                    svg {
                        fill: var(--colourBrandSecondary);
                    }
                }
            }
        }
    }

    .main {
        display: flex;
        --gap: 30px;
        gap: var(--gap);

        .left {
            width: calc(65% - var(--gap));
        }

        .right {
            width: calc(35%);
        }

        @media screen and (max-width: 900px) {
            flex-direction: row;
            flex-wrap: wrap;
            gap: 0;
            
            .left, .right {
                width: 100%;
            }
        }
    }

    &.dashboard {
        .machine {
            margin-top: 20px;
        }
    }

    .machines {
        margin-top: 10px;
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        justify-content: center;

        .card {
            width: 300px;

            .card-body {
                display: flex;
                align-items: center;
                gap: 20px;
                height: 100%;
            }

            &.checked {
                background-color: var(--colourBrandSecondary);
            }
        }
    }

    &.ticket {
        .ticket-body {
            display: flex;
            --gap: 30px;
            gap: var(--gap);
            margin-top: 30px;

            .left {
                width: calc(70% - var(--gap));
                min-width: 300px;

                .post {
                    margin-bottom: 40px;
                    display: flex;
                    gap: 20px;

                    &.by-vortex {
                        flex-direction: row-reverse;
                    }

                    &.system {
                        .card {
                            background-color: var(--colourBrandSecondary);
                            font-size: small;
                        }
                    }

                    .author {
                        text-align: center;
                        color: white;
                        width: 200px;

                        p.name {
                            font-weight: bold;
                            margin-top: 10px;
                        }

                        p.type {
                            font-size: small;
                        }

                        svg {
                            fill: white;
                            width: 50px;
                            display: block;
                            margin: 0 auto;
                        }
                    }

                    .message {
                        flex-grow: 1;

                        .card-body {
                            display: flex;
                            flex-direction: column;
                            justify-content: space-between;
                            height: 100%;

                            .timestamp {
                                text-align: right;
                                font-style: italic;
                                font-size: small;
                            }
                        }
                    }
                }
            }

            .right {
                width: 30%;
                position: sticky;

                > .card {
                    margin-bottom: 30px;
                }
            }

            @media screen and (max-width: 900px) {
                flex-wrap: wrap;
                flex-direction: column-reverse;

                .left {
                    width: 100%;
                }

                .right {
                    width: 100%;
                }
            }
        }
    }

    .list {
        .card {
            margin-bottom: 30px;

            &:last-of-type {
                margin-bottom: 0;
            }

            .card-body {
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: 30px;

                .icon {
                    width: 50px;
                }

                .content {
                    flex-grow: 1;
                }

                @media screen and (max-width: 600px) {
                    .icon {
                        display: none;
                    }
                }
            }
        }
    }

    &.place-order {
        h2 {
            font-size: x-large;

        }
        .wizard {
            display: flex;
            gap: 30px;

            .left {
                flex-grow: 1;
            }

            .right {
                width: 400px;
            }

            @media screen and (max-width: 900px) {
                flex-wrap: wrap;
                flex-direction: column-reverse;

                .right {
                    width: 100%;
                }
            }
        }
    }

    &.order {
        .order-body {
            display: flex;
            --gap: 30px;
            gap: var(--gap);
            margin-top: 30px;

            .left {
                width: calc(70% - var(--gap));

                .items {
                    display: flex;
                    gap: 20px;
                    flex-wrap: wrap;

                    .item {
                        max-width: 300px;
                        flex-grow: 1;
                    }
                }
                
                > .card {
                    margin-bottom: 30px;
                }
            }

            .right {
                width: 30%;
                position: sticky;

                > .card {
                    margin-bottom: 30px;
                }
            }

            @media screen and (max-width: 900px) {
                flex-wrap: wrap;
                flex-direction: column-reverse;

                .left {
                    width: 100%;
                }

                .right {
                    width: 100%;
                }
            }
        }
    }

    &.machine {
        .machine-body {
            display: flex;
            --gap: 30px;
            gap: var(--gap);
            margin-top: 30px;

            .left {
                width: calc(70% - var(--gap));

                .modules {
                    display: flex;
                    gap: 20px;
                    flex-wrap: wrap;

                    .module {
                        max-width: 300px;
                        flex-grow: 1;
                    }
                }
                
                > .card {
                    margin-bottom: 30px;
                }

                .related-tickets {
                    .card {
                        margin-top: 20px;
                        .card-body {
                            display: flex;
                            justify-content: space-between;
                            align-items: center;
                            gap: 30px;
        
                            .icon {
                                width: 50px;
                            }
        
                            .content {
                                flex-grow: 1;
                            }
                        }
                    }
                }
            }

            .right {
                width: 30%;
                position: sticky;

                > .card {
                    margin-bottom: 30px;
                }

                .related-orders {
                    .card-body {
                        display: flex;
                        justify-content: space-between;
                        align-items: center;
                    }
                }
            }

            @media screen and (max-width: 900px) {
                flex-wrap: wrap;
                flex-direction: column-reverse;

                .left {
                    width: 100%;
                }

                .right {
                    width: 100%;
                }
            }
        }
    }

    &.service-list {
        .machine-filter {
            max-width: 400px;
            margin-left: auto;
            margin-right: 0;

            form {
                display: flex;

                .dropdown {
                    flex-grow: 1;
                }

                button {
                    width: fit-content;
                    height: 39px;
                }
            }
        }
    }

    &.service {
        .service-body {
            display: flex;
            --gap: 30px;
            gap: var(--gap);
            margin-top: 30px;

            .left,.right {
                width: calc(50% - (var(--gap) / 2));

                > .card {
                    margin-bottom: 30px;
                }

                .spread {
                    display: flex;
                    gap: 10px;

                    > * {
                        flex: 1;
                    }
                }
            }

            @media screen and (max-width: 900px) {
                flex-wrap: wrap;
                flex-direction: column-reverse;

                .left {
                    width: 100%;
                }

                .right {
                    width: 100%;
                }
            }
        }
    }

    &.order-list, &.ticket-list, &.machine-list, &.service-list {
        div.list {
            margin-top: 30px !important;
        }

        div.machine-filter {
            margin-top: 30px !important;

            form {
                align-items: flex-end;
                gap: 20px;

                > * {
                    margin-top: 0 !important;
                }

                button {
                    height: unset !important;
                }
            }
        }
    }
}