* {
    box-sizing: border-box;
    font-family: 'Montserrat', sans-serif;
    line-height: 25px;
}

.colors {
    color: #176440;
    color: #59113B;
    color: #801A55;
    color: #A10861;
    color: #BF448A;
    color: #FFA500;
}

form {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

p {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
}

label {
    display: flex;
    flex: 1 0 95%;
    flex-wrap: wrap;
    gap: 10px;
}

    label span {
        align-self: center;
        flex: 0 1 auto;
    }

    .input_info {
        cursor: pointer;
        flex: 0 0 auto;
    }

.form_input {
    display: flex;
    flex: 1 1 65%;
    flex-wrap: wrap;
    height: 40px;
    line-height: 40px;
    padding: 0 5px;
    text-align: right;
}

.input_unit{
    display: flex;
    flex: 0 1 25%;
    flex-wrap: wrap;
    height: 40px;
    line-height: 40px;
    padding: 0 5px;
}

.bottom_button_bar,
.top_button_bar {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
}

    .bottom_button_bar {
        margin: 20px 0 10px 0;
    }

    .left_button_bar,
    .right_button_bar {
        display: flex;
        flex: 1 1 auto;
        flex-wrap: wrap;
        gap: 10px;
    }

        .left_button_bar {
            justify-content: start;
        }

        .right_button_bar {
            justify-content: end;
        }

        .left_button_bar p,
        .right_button_bar p {
            /* border: solid 1px darkgray;
            border-radius: 16px;  */
            font-size: 10px;
            font-weight: bold;
            height: 24px;
            padding: 0 10px;
            text-transform: uppercase;
        }

label.btn {
    background-color: whitesmoke;
    border: solid 1px darkgray;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    flex: 0 0 auto;
    gap: 10px;
    height: 30px;
    padding: 0 10px;
}

    label.btn span {
        flex: 0 1 auto;

        align-self: center;
        font-size: 12px;
        font-weight: bold;
        text-transform: uppercase;
    }

button {
    background-color: whitesmoke;
    border: solid 1px darkgray;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    flex: 0 0 100%;
    gap: 10px;
    height: 30px;
    padding: 0 10px;
}

    .btn:hover {
        background-color: white;
    }

    .btn.green {
        background-color: #5af7ad;
    }
        .btn.green:hover {
            background-color: #89fcc6;
        }

    .btn.red {
        background-color: #ffcd9d;
    }
        .btn.red:hover {
            background-color: #fdddbf;
        }

    .btn i {
        align-self: center;
    }

    button span {
        align-self: center;
        font-size: 12px;
        font-weight: bold;
        text-transform: uppercase;
    }

    button.selector {
        border-radius: 16px;
        height: 24px;
    }

        button.selector span {
            font-size: 10px;
        }

    .icon_btn {
        align-self: center;
        cursor: pointer;
        padding: 5px 10px;
    }

    .row {
        display: flex;
    }

        .row.header {
            font-weight: bold;
            text-transform: uppercase;
        }

        .row.header .column_name,
        .row.header .column_data {
            font-size: 12px;
        }

        .partial_results .row:nth-child(odd) {
            background-color: whitesmoke;
        }

    .column_name {
        flex: 1 1 50%;
        font-size: 14px;
        padding: 0 10px;
    }

    .column_data {
        display: flex;
        flex: 1 1 20%;
        font-size: 14px;
        justify-content: flex-end;
        padding: 0 10px;
    }

    .total_results {
        background-color: #5af7ad;
        border: solid 1px gray;
        border-radius: 6px;
        font-weight: bold;
        margin-top: 10px;
        padding: 5px 0;
    }

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type=number] {
    -moz-appearance: textfield;
    appearance: textfield;
}

#form_actions_cont {
    display: flex;
    flex: 0 0 100%;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
    margin: 10px 0;
    width: 100%;
}

    .form_actions {
        display: flex;
        flex: 1 1 100%;
        flex-wrap: wrap;
        gap: 10px;
    }

    .form_actions_left {
        justify-content: flex-start;
    }
    .form_actions_right {
        justify-content: flex-end;
    }

#test_data_cont {
    background-color: white;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    width: auto;
}

    #test_data_examples_cont {
        background-color: white;
        display: flex;
        flex: 1 1 auto;
        flex-wrap: wrap;
        gap: 5px;
    }

.popup_cont {
    align-content: center;
    display: flex;
    flex-wrap: wrap;

    justify-content: center;
    padding: 30px;
    position: absolute;
    top: 0;
    width: 99%;
}

    .popup {
        background-color: white;
        border-radius: 6px;
        -webkit-box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.75);
        -moz-box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.75);
        box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.75);
        height: auto;
        margin: 0 auto;
        max-height: 90%;
        padding: 10px 20px;
        position: relative;
        flex: 1 1 95%;
        z-index: 2;
    }

        .sub_popup_cont {
            align-content: center;
            display: flex;
            flex-wrap: wrap;
            height: 100%;
            justify-content: center;
            width: 100%;
            z-index: 3;
        }
        
            .sub_popup {
                background-color: white;
                border-radius: 6px;
                -webkit-box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.75);
                -moz-box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.75);
                box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.75);
                margin: 0 auto;
                padding: 10px 20px;
                /* width: 60%; */
                z-index: 4;
            }

    .popup_header {
        align-content: center;
        border-bottom: solid 1px gray;
        display: flex;
        gap: 10px;
        justify-content: space-between;
        margin-bottom: 15px;
    }

        .popup_header h3 {
            margin: 10px 0;
            text-transform: uppercase;
        }

        .popup_header_left,
        .popup_header_right {
            display: flex;
            margin: 5px 0;
        }
        

    .popup_body {
        display: flex;
        flex-direction: column;
        gap: 10px;
        /* height: calc(100% - 120px); */
        width: 100%;
    }

    #charts {
        height: 400px;
        min-width: 310px;
        max-width: 800px;
        margin: 0 auto;
    }

    #popup_body > div {
        display: flex;
        flex-direction: column;
        gap: 10px;
        height: 100%;
        width: 100%;
    }

    .contain_overflow {
        height: 100%;
        overflow: auto;
        padding-right: 5px;
        width: 100%;
    }

        .historic_entry {
            align-content: center;
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            justify-content: space-between;
        }

            .historic_check_all,
            .historic_check {
                cursor: pointer;
                display: flex;
                flex: 0 0 20px;
                width: 20px;
            }

            #historic_check_all_label {
                cursor: pointer;
                flex: 0 0 auto;
            }

            .historic_entry_info {
                display: flex;
                flex-direction: column;
                flex: 1 1 35%;
            }

                .historic_title {
                    font-weight: bold;
                    line-height: 25px;
                }

                .historic_rename,
                .cancel_rename {
                    cursor: pointer;
                    padding: 4px;
                }

                #edit_historic_name {
                    display: flex;
                    gap: 10px;
                }

                .historic_new_name {
                    height: 25px;
                    line-height: 25px;
                }

                .historic_date {
                    font-size: 14px;
                    line-height: 20px;
                }

            .historic_entry_actions {
                display: flex;
                flex: 1 0 95%;
                flex-wrap: wrap;
                gap: 10px;
                justify-content: flex-end;
            }

#no_local_storage {
    background-color: whitesmoke;
    border: solid 1px #BF448A;
    border-left-width: 30px;
    border-radius: 8px;
    display: flex;
    gap: 10px;
    height: 30px;
    line-height: 30px;
    margin-bottom: 20px;

}

#msg_cont {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0 auto;
    padding: 10px;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 4;
}

    .msg {
        background-color: whitesmoke;
        border: solid 1px gray;
        border-left-width: 30px;
        display: flex;
        gap: 10px;
        height: 30px;
        line-height: 30px;

        -webkit-box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.75);
        -moz-box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.75);
        box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.75);
    }

        .msg_info {
            border-color: rgb(58, 107, 212);
        }

        .msg_error {
            border-color: #BF448A;
        }

        .msg_warning {
            border-color: #BF448A;
        }

        .msg_icon {
            color: white;
            margin-left: -23px;
            padding: 6px 0;
        }

        .msg_text { 
            display: flex;
            flex: 1 1 auto;
            height: 30px;
            line-height: 30px;
            padding: 0 10px;
        }

        .msg_discard {
            align-self: center;
            cursor: pointer;
            padding: 4px 8px;
        }

.hidden {
    display: none !important;
}

.blur {
    filter: blur(1px);
}

.selected {
    background-color: lightblue;
}

.disabled {
    color: darkgray;
    background-color: whitesmoke !important;
    /* pointer-events: none; */
}

@media (min-width: 600px) {

    label {
        flex: 1 0 50%;
        justify-content: space-between;
    }

        label span {
            flex: 0 0 80%;
            margin: 0;
        }

        .input_info {
            margin-top: 0;
        }

    .form_input {
        flex: 0 1 30%;
        height: 30px;
        line-height: 30px;
    }

    .input_unit {
        flex: 1 0 30px;
        height: 30px;
        line-height: 30px;
    }

    #form_actions_cont {
        flex: 1 1 86%;
        flex-wrap: nowrap;
    }
    
        .form_actions {
            flex-wrap: nowrap;
        }

    button {
        flex: 0 0 auto;
    }

    .historic_entry_actions {
        flex: 1 0 55%;
    }

    .popup {
        width: 90%;
    }

}

@media (min-width: 900px) {

    .popup {
        width: 90%;
    }

}

@media (min-width: 1200px) {

    .popup {
        width: 80%;
    }

}