@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap');
body {
    font-family: "Raleway", sans-serif;
    font-optical-sizing: auto;
}
#mainContainer {
    display: grid;
    grid-template-columns: 300px 1fr;
    grid-template-rows: 1fr 146px;
    height: 100vh;
}
    #mainContainer nav {
        grid-column: 1;
        grid-row: 1;
        padding: 60px;
        background-color: #003b6b;
    }
        #mainContainer nav .logo {
            height: 60px;
            background-color: #FFF;
            font-size: 12px;
        }
        #mainContainer nav .title {
            color: #FFF;
            font-size: 28px;
            padding-left: 20px;
            line-height: 32px;
            margin-bottom: 40px;
        }
        #mainContainer nav .nav .nav-item:not(:last-child){
            margin-bottom: 27px;
        }
        #mainContainer nav .nav .nav-item .nav-link {
            color: #FFF;
            padding: 0;
            font-size: 16px;
        }
        #mainContainer nav .nav .nav-item .nav-link.active {
            font-weight: bold;
            padding-left: 25px;
            background: url('/assets/img/arrow.svg') no-repeat;
            background-position-y: 6px;
        }

    #mainContainer main {
        grid-column: 2;
        grid-row: 1;
        overflow-y: auto;
        overflow-x: hidden;
        padding-left: 92px;
        padding-top: 60px; 
    }
        #mainContainer main .header {
            display: grid;
            column-gap: 13px;
            grid-template-columns: 52px 1fr max-content;
            align-items: center;
            border-radius: 15px 0 0 15px;
            color: #FFF;
            padding: 30px 60px 30px 40px;
            margin-bottom: 60px;   
        }
            #mainContainer main .header.cyan-bg {
                background-color: #3F8493;
            }
            #mainContainer main .header.blue-bg {
                background-color: #3F6193;
            }
            #mainContainer main .header.purple-bg {
                background-color: #453F93;
            }
            #mainContainer main .header.grape-bg {
                background-color: #534B70;
            }
            #mainContainer main .header.pink-bg {
                background-color: #923F93;
            }            
            #mainContainer main .header.green-bg {
                background-color: #73933F;
            }
            #mainContainer main .header.black-bg {
                background-color: #000000;
            }
            #mainContainer main .header .icon {
                width: 42px;
                height: 42px;
                background: #FFF;
                border-radius: 21px;
                margin-top: 5px;
                justify-self: end;
                align-self: start;
                text-align: center;
            }
            #mainContainer main .header .icon img {
                vertical-align: middle;
                padding-top: 11px;
            }
            #mainContainer main .header h1 {
                font-size: 32px;
            } 
            #mainContainer main .header .sub-text{
                font-size: 16px;
            } 

    #mainContainer main .content {
        padding-right: 60px;
        padding-bottom: 60px;
    }

        #mainContainer main .content h2 {
            font-size: 20px;
        } 

    #mainContainer footer {
        grid-column: span 2;
        grid-row: 2;
        padding: 50px 60px;
        display: flex;   
        gap: 100px;
        color: #a3a3a3; 
    }
        #mainContainer footer .copyright {
            display: flex;
            flex-direction: column;
        }
            #mainContainer footer .copyright .smaller {
                font-size: 14px;
            }
        #mainContainer footer .privacy {
            display: flex;
            align-self: center;
            font-size: 14px;
            gap: 20px;
        }
            #mainContainer footer .privacy .terms {
                border-left: 1px solid white;
                padding-left: 20px;
            }
        #mainContainer footer .logo {
            width: 100px;
        }

.step_container {
    margin-top: 30px;
}
    .step_container .step {
        border-top: 1px solid #AEAEAF;
        border-bottom: 1px solid #AEAEAF;
        color: #5A6066;
    }
        .step_container .step h3 {
            font-size: 20px;    
            padding: 34px 0;  
            display: flex;
            justify-content: space-between;
            margin-bottom: 0;              
        }
            .step_container .step h3 .expander {
                border: none;
                background: url('/assets/img/expander_arrow.svg') no-repeat center;
                background-size: cover;
                width: 20px;
            }
        .step_container .step:not(.expanded) .step_content {
            display: none;
        }
        .step_container .step + .step {
            border-top: none;
        }
        .step_container .step.expanded {
            border: none;
            border-radius: 10px;
            background: #D8E1E5;
            color: #003B6B;
            margin-top: 40px;
            margin-bottom: 60px;
            padding: 50px;
        }
            .step_container .step.expanded + .step {
                border-top: 1px solid #AEAEAF;
            }
                .step_container .step.expanded + .step.incomplete {
                    border-top-style: dashed;
                }
            .step_container .step.expanded h3 {
                padding-top: 0;
            }
        .step_container .step.incomplete {
            border-bottom-style: dashed;
            color: #AEAEAF;
        }  
            .step_container .step.incomplete h3 .expander,
            .step_container .step.expanded h3 .expander {
                display: none;
            } 
    .step_container .step form .inputs {
        display: flex;
        column-gap: 25px;
        align-items: flex-start;
    }
        .step_container .step form .input_container {
            background: white;
            border: 2px solid #003B6B;
            border-radius: 5px;
            padding: 20px;
        }   
            .step_container .step form .input_container > label {
                display: block;
                border-bottom: 1px solid #003B6B;
                padding-bottom: 10px;
                margin-bottom: 15px;
            }
            .step_container .step form .input_container .sub_label {
                font-size: 14px;
                margin-bottom: 15px;
                display: block;
            }
            .step_container .step form .input_container select, .step_container .step form .input_container input {
                padding: 10px;                
                border-radius: 5px;
                border: 2px solid #003B6B;
                color: #003B6B;                
            }
            .step_container .step form .input_container select {
                padding-right: 40px;
                appearance: none;
                background-image: url('/assets/img/select_arrow.svg');
                background-repeat: no-repeat;
                background-position: right 0.7em top 50%;
                background-size: 0.65em auto;
            }
            .step_container .step form .input_container .checkbox_container {
                margin-bottom: 10px;
            }  
            .step_container .step form .input_container .checkbox_container input {
                margin-right: 5px;
            }

.flex_pin_right {
    margin-left: auto;
    margin-right: 0;
}

.listing_container {
    min-height: 475px;
}
    .listing_container .listing_actions .btn {
        min-width: 160px;
        font-size: 16px;
        font-weight: bold;
        padding: 11px 40px;
    }
    .listing_container .listing_form .input-group .btn {
        margin-top: 4px;
    }

.listing_container .listing_header, .listing_container .listing_results .listing_result {
    padding: 18px;
    font-size: 14px;
}

.listing_header input[type="radio"] {
    opacity: 0;
    position: absolute;
}

.listing_header label {
    font-weight: bold;
}

.listing_header .sortable_header input[type="radio"], .listing_header .sortable_header label {
    cursor: pointer;
}

.listing_header .sortable_header input[type="radio"]:checked + label::after {
    content: "▼";
    display: inline;
    font-size: 8px;
    padding-left: 5px;
}

.listing_results {
    gap: 15px;
}
    .listing_results .listing_result {
        background-color: #D8E1E5;
        border-radius: 4px;                
        margin-bottom: 15px;
    }
        .listing_results .listing_result.inactive {
            background: #FFF;
            border: 1px solid #D8E1E5;
        }
        .listing_results .listing_result .btn.btn-link {
            color: #000;
        }
        .listing_results .listing_result .stop_code {
            font-weight: bold;
        }
        .listing_results .listing_result .actions {
            gap: 30px;
        }
            .listing_results .listing_result .actions .btn {
                min-width: 70px;
                --bs-btn-font-size: 14px; 
                --bs-btn-padding-x: 0.75rem;
                --bs-btn-padding-y: 0.375rem;
            }

button img {
    height: 15px;
}

.hide {
    display: none!important;
}

#loader {
    position: absolute;
    left: 50%;
    top: 45%;
    margin-left: -75px;
    margin-top: -75px;
    z-index: 1056;
}
.route_short_name {
    padding: 1px 7px;
    border-radius: 2px;
    display: inline-block;
}

.route_info {
    color: black;
}

@keyframes spin {
    to {transform:rotate(360deg);}
}

#loader img {
    width: 150px;
    animation: spin 2000ms linear infinite;
}

body.loading #loader {
    display: initial!important;
}

body.loading {
    position: relative;
}
    body.loading::before {
        content: '';
        display: block;
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        background-color: rgba(0, 0, 0, 0.25);
        z-index: 2500;
    }

table tr.selected {
    background: yellow;
}

/* Bootstrap overrides */
.btn:not(.btn-link) {
    --bs-btn-border-radius: 30px;
    --bs-btn-font-size: 14pt;
    --bs-btn-padding-y: 0.5rem;
    --bs-btn-padding-x: 2rem;
    min-width: 120px;
    text-align: center;
}
.btn-link {
    padding:0;
}
.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #16639C;
    --bs-btn-border-color: #16639C;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #003B6B;
    --bs-btn-hover-border-color: #003B6B;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #16639C;
    --bs-btn-active-border-color: #16639C;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #0d6efd;
    --bs-btn-disabled-border-color: #0d6efd;
}

.btn-secondary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #5A6066;
    --bs-btn-border-color: #5A6066;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #31383F;
    --bs-btn-hover-border-color: #31383F;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #5A6066;
    --bs-btn-active-border-color: #5A6066;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #5A6066;
    --bs-btn-disabled-border-color: #5A6066;
}

.btn-warning {
    --bs-btn-color: #fff;
    --bs-btn-bg: #F28D00;
    --bs-btn-border-color: #F28D00;
    --bs-btn-hover-bg: #D76B00;
    --bs-btn-hover-border-color: #D76B00;
    --bs-btn-hover-color: #fff;
    --bs-btn-active-color: #fff;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #F28D00;
    --bs-btn-disabled-border-color: #F28D00;
}

.btn-light {
    --bs-btn-color: #5A6066;
    --bs-btn-bg: #fff;
    --bs-btn-border-color: #5A6066;
    --bs-btn-hover-color: #5A6066;
    --bs-btn-hover-bg: #E3F1F8;
    --bs-btn-active-color: #5A6066;
    --bs-btn-disabled-color: #5A6066;
    --bs-btn-disabled-bg: #fff;
    --bs-btn-disabled-border-color: #fff;
}

.btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: #DC3545;
    --bs-btn-border-color: #DC3545;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #A21522;
    --bs-btn-hover-border-color: #A21522;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #DC3545;
    --bs-btn-active-border-color: #DC3545;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #DC3545;
    --bs-btn-disabled-border-color: #DC3545;
}

.btn-success {
    --bs-btn-color: #fff;
    --bs-btn-bg: #319510;
    --bs-btn-border-color: #319510;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #2C7D10;
    --bs-btn-hover-border-color: #2C7D10;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #319510;
    --bs-btn-active-border-color: #319510;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #319510;
    --bs-btn-disabled-border-color: #319510;
}

.form-control {
    padding: 0.6rem 0.75rem;
    border-color: #003B6B;    
}

.form_field_container {
    margin-bottom: 2.25rem;
}

.form-label { 
    margin-bottom: 0;    
    color: #003B6B;
    font-size: 1.2rem;
}

.form-text {
    margin-top: 0.2rem;
    font-size: 1rem;
    color: var(--bs-secondary-color);
}

.form-select {
    border: 1px solid #003B6B;
    width: auto;
    padding-top: 9px;
    padding-bottom: 9px;
}

input, optgroup, select, textarea, button {
    margin-top: 4px;
}

.page-link {
    --bs-pagination-color: #5A6066;
    --bs-pagination-active-color: black;
    --bs-pagination-active-bg: #D8E1E5;
    --bs-pagination-active-border-color: #D8E1E5;
    --bs-pagination-disabled-bg: white;
}

.modal-title {
    color: #003B6B;
    font-size: 1.4rem;
}

.modal-xxl {
    --bs-modal-width: 1440px;
}

@media (min-width: 1400px) {
    .container {
        max-width: initial;
    }
}

.grecaptcha-badge {
    visibility: hidden;
}