@font-face {
    font-family: 'Open Sans';
    src: url('/includes/fonts/OpenSans-Regular.woff2') format('woff2'),
    url('/includes/fonts/OpenSans-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

html {
    padding: 0;
    margin: 0;
}

body,
input {
    font-family: "Open Sans", sans-serif;
    background-color: white;
    margin: 0;
}

img {
    padding: 20px;
    padding-bottom: 30px;
}

button {
    background-color: #1a237e;
    color: white;
    border: none;
    padding: 9px 18px;
    margin-top: 10px;
    border-radius: 4px;
}

/*------------------------*/
/*---- Global classes ----*/
/*------------------------*/


.font-normal {
    font-weight: normal;
}

.font-bold {
    font-weight: bold;
}

/*--- Display, Flex & Grid ---*/

.block {
    display: block;
}

.flex {
    display: flex;
}

.flex-col {
    display: flex;
    flex-direction: column;
}

.grow {
    flex-grow: 1;
}

.items-center {
    align-items: center;
}

.space-between {
    justify-content: space-between;
}

.justify-center {
    justify-content: center;
}

.justify-end {
    justify-content: flex-end;
}

/* Width & Height */

.w-full {
    width: 100%;
}


.w-90 {
    width: 90%;
}

.w-80 {
    width: 80%;
}

.w-70 {
    width: 70%;
}

.w-60 {
    width: 60%;
}

.w-50 {
    width: 50%;
}

.w-fit {
    width: fit-content;
}

.max-w-600 {
    max-width: 600px;
}

.h-full {
    height: 100vh;
}


/* Margin and Padding */

.mx-auto {
    margin: 0 auto;
}

.m-0 {
    margin: 0;
}

.mb-0 {
    margin-bottom: 0;
}

.mb-30 {
    margin-bottom: 30px;
}

.mt-0 {
    margin-top: 0;
}

.mt-20 {
    margin-top: 20px;
}

.ml-20 {
    margin-left: 20px;
}

.p-0 {
    padding: 0;
}

.p-10 {
    padding: 10px;
}

.p-15 {
    padding: 15px;
}

.p-20 {
    padding: 20px;
}

.p-30 {
    padding: 30px;
}

.p-40 {
    padding: 40px;
}

.pt-5 {
    padding-top: 5px;
}

.pt-30 {
    padding-top: 30px;
}

.pt-50 {
    padding-top: 50px;
}

.pt-75 {
    padding-top: 75px;
}

.pl-5 {
    padding-left: 5px;
}

.pl-10 {
    padding-left: 10px;
}

.pl-15 {
    padding-left: 15px;
}

.pr-5 {
    padding-right: 5px;
}

.pr-10 {
    padding-right: 10px;
}

.pr-20 {
    padding-right: 20px;
}

.pb-15 {
    padding-bottom: 15px;
}

.pb-20 {
    padding-bottom: 20px;
}

.pb-30 {
    padding-bottom: 30px;
}

.pb-50 {
    padding-bottom: 50px;
}

.py-10 {
    padding-top: 10px;
    padding-bottom: 10px;
}

.py-20 {
    padding-top: 20px;
    padding-bottom: 20px;
}

.py-50 {
    padding-top: 50px;
    padding-bottom: 50px;
}

.px-10 {
    padding-left: 10px;
    padding-right: 10px;
}

.px-20 {
    padding-left: 20px;
    padding-right: 20px;
}

.px-30 {
    padding-left: 30px;
    padding-right: 30px;
}

.gap-5 {
    gap: 5px;
}

/* Visibility and Alignment */

.hidden {
    visibility: hidden;
}

.float-right {
    float: right;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.text-left {
    text-align: left;
}

.pointer {
    cursor: pointer;
}

.relative {
    position: relative;
}

.right-20 {
    right: 20px;
}

/* Tables */

.collapse-table {
    border-collapse: collapse;
}


/* Colors */

.text-white {
    color: white;
}

.text-black {
    color: black;
}

.text-gray {
    color: #a8a8a8;
}

.lightgray-bg {
    background: #e9e9e9;
}

.teal-bg {
    background: #083F46;
}

.gray-pill {
    background: #e9e9e9;
    padding: 4px 20px;
    margin-left: 20px;
    border-radius: 20px;
}

.gray-pattern li:nth-child(odd) {
    background: #e9e9e9;
}

/* Borders */

.rounded-5 {
    border-radius: 5px;
}

.rounded-10 {
    border-radius: 10px;
}

.boxShadowTopleft {
    box-shadow: 4px 4px 15px rgba(0, 0, 0, 0.3); /* Shadow from top left to bottom right */
}


.no-underline {
    text-decoration: none;
}


/* Buttons */

.redButton {
    background: #c64545;
}

.redbutton:hover {
    background: #973131;
}

.mediumButton {
    height: 50px;
    width: 150px;
}


/* Login Page */

.logo {
    display: flex;
    justify-content: center;
    align-content: center;
    position: relative;
}

.logo img {
    padding-top: 10%;
    /*position: relative;*/
    height: auto;
    max-width: 31%;
    animation: fadeInAnimation ease 7s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;

}

@keyframes fadeInAnimation {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@media screen and (max-width: 1600px) {
    .logo img {
        max-width: 40%;
    }
}

@media screen and (max-width: 1020px) {
    .logo img {
        padding-top: 1%;
        /*position: relative;*/
        left: 3vw;
        max-width: 70%;
        padding-left: 0;
    }
}

.loginContent {
    margin: 0 auto;
}

.loginContent,
.input-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: fit-content;
    float: none;
}

.loginContent .form-group {
    margin: 0;
    margin-bottom: 20px;
}

.loginContent label {
    width: 100px;
}

/* SSO Styling */
.sso-section {
    padding-top: 50px;
    margin: 0;
    text-align: center;
}

.btn-microsoft {
    display: inline-block;
    background: #0078d4;
    color: white;
    padding: 12px 24px;
    border-radius: 4px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    transition: background-color 0.2s;
    border: none;
    cursor: pointer;
    max-width: 300px;
}

.btn-microsoft:hover {
    background: #106ebe;
    color: white;
    text-decoration: none;
}

.divider {
    position: relative;
    margin: 20px 0;
    text-align: center;
    color: #666;
}

.divider::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: #ddd;
}

.divider span {
    background: white;
    padding: 0 15px;
    position: relative;
}

.btn-guest {
    display: inline-block;
    background: #f3f3f3;
    color: #333;
    padding: 12px 24px;
    border-radius: 4px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    transition: background-color 0.2s, color 0.2s;
    border: 1px solid #ccc;
    cursor: pointer;
    max-width: 300px;
}

.btn-guest:hover {
    background: #e0e0e0;
    color: #000;
    text-decoration: none;
}


input {
    width: 250px;
    padding: 12px;
    border-radius: 4px;
}

input[type=text] {
    margin-left: 0;
}

input[type=password] {

}

input[type=text]:focus,
input[type=password]:focus,
select {
    box-shadow: 2px 2px rgba(0, 0, 255, .12) inset;
}

h3 {
    margin-top: 23px;
}


.button-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    max-width: 80%;
    margin: auto;
}

.button-box a {
    width: 100px;
    height: 100px;
    margin: 10px;
}

.button-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
}

.errorMessage {
    color: #930000;
    font-size: 1.2em;
    font-weight: bold;
}

button:hover {
    background-color: #0093b4;
    box-shadow: 2px 2px 2px 2px rgba(0, 0, 255, .024) inset;
    cursor: pointer;
}

.button-after {
    background-color: #0093b4;
    box-shadow: 2px 2px 2px 2px rgba(0, 0, 255, .024) inset;
    cursor: pointer;
}

.form-group {
    margin-left: auto;
}

.output p {
    justify-self: center;
    font-weight: bolder;
}

/* Header App Portal */

header {
    width: 100%;
    height: 400px;
    background: rgb(0, 21, 71) url(../images/vert-logo-white.png) center no-repeat;
    background-size: contain;
    margin: 0 auto 0 auto;
    color: white;
}


.logout {
    display: flex;
    justify-content: flex-end;
}

.logout a {
    text-decoration: none;
    color: white;
    margin: 20px;
}

.logout a:hover {
    text-decoration: underline;
}

.titleHeading {
    text-align: center;
    padding-bottom: 0px;
    color: black;
    font-size: x-large;
}

.actionButtons {

}


/* Apps Portal Icons */

.bounding {
    /*width: 75%;*/
    justify-self: center;
    padding: 50px 20px;

    img {
        width: 70%;
    }

}

@media screen and (max-width: 1580px) {
    .bounding {
        width: 75%;
        justify-self: center;
        margin: 0 auto;
    }
}

.gatewayIcons {
    display: flex;
    grid-template-columns:  repeat(auto-fit, minmax(180px, 1fr));
    gap: 35px;
    text-align: center;
    font-size: x-large;
    padding: 0;
    justify-items: center;
    justify-content: center;
    flex-wrap: wrap;
    cursor: pointer;

}

.gatewayIcons img {
    max-width: 175px;
    cursor: pointer;
}

.gatewayIcons li {
    list-style: none;
    border-radius: 50%;
}

.gatewayIcons a {
    text-decoration: none;
    text-align: center;
    color: black;
    padding: 0px;
}

.gatewayIcons p {
    margin: 0;
    padding: 0;
}

.casedocs,
.odsplus,
.cojet,
.webdocs,
.oims,
.caselines,
.potluck
.oa {
    display: flex;
}

/* App Portal Icon Hover Functions */
/*
.gatewayIcons a:hover {
    transform: scale(.9);
    font-size: xx-large;
}*/

.casedocs a:hover {
    color: rgba(0, 74, 20);
    font-weight: bolder;
}

.odsplus a:hover {
    color: rgba(109, 0, 0);
    font-weight: bolder;
}

.cojet a:hover {
    color: rgba(161, 81, 0);
    font-weight: bolder;
}

.oims a:hover {
    color: rgba(45, 0, 78);
    font-weight: bolder;
}

.webdocs a:hover {
    color: rgba(71, 87, 125);
    font-weight: bolder;
}

.caselines a:hover {
    color: rgba(188, 170, 0);
    font-weight: bolder;
}

.potluck a:hover {
    color: rgba(1, 101, 183);
    font-weight: bolder;
}

.oa a:hover {
    color: rgb(0, 53, 66);
    font-weight: bolder;
}


@media screen and (max-width: 1580px) {
    .titleHeading {
        font-size: large;
    }

    .gatewayIcons {
        /*gap: 3px;*/
    }

    .gatewayIcons li {
        font-size: large;
        padding: 0px;
    }

    .gatewayIcons img {
        width: 148px;
        padding: 12px;
    }

    .gatewayIcons a {
        padding: 0;
    }

    /*.gatewayIcons a:hover {
        transform: scale(.9);
        font-size: x-large;
    }*/

}




/* Footer App Portal */

footer {
    width: 100%;
    height: 200px;
    margin-top: auto;
    background-color: gray;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
}

footer a,
footer p {
    display: inline-block;
    width: fit-content;
    height: fit-content;
    position: relative;
    padding-top: 4px;
    color: white;
}

footer a:nth-child(1) {
    font-size: medium;
}

footer a:nth-child(2) {
    font-size: small;
}

footer a:hover {
    color: rgba(90, 1, 1, 0.8)
}


/*adding downtimeAnnounce div */

.downtimeAnnounce {
    position: relative;
    left: 50%;
    transform: translate(-45%, 20%);
    text-align: center;
    border: 3px solid red;
    background-color: #FFCCCC;
    border-radius: 5px;
    max-width: 60%;
    overflow-wrap: break-word;
    padding: 5px 20px;
}


#loginDowntimeError {
    margin-top: 50px;

    .downtimeAnnounce {
        position: static;
        margin: 0 auto;
        transform: none;
    }
}

/* ---------------------- */
/* --- Admin classes ---- */
/* ---------------------- */


/* Blueback Users */

#bluebackUsersTable tbody tr td {
    padding: 0 30px;
}

#bluebackUsersTable tbody tr:nth-child(odd) {
    background: #e9e9e9;
}

#downtimeTable tbody tr:nth-child(Odd) {
    background: #e9e9e9;
}


.bluebackForm input {
    margin: 0;

}

.bluebackForm button[type='submit'] {
    float: right;
    width: 100%;
    padding: 12px 0;

}

.bluebackForm select {
    width: 100%;
    padding: 12px 2px;
}

#bluebackUsersEdit label {
    display: block;
    font-weight: bold;
    padding: 5px 0;
}

#bluebackUsersEdit input {
    margin: 0;
    width: 500px;
}

#bluebackChangeUsername, #bluebackChangeUserPassword, #bluebackAddEmail {
    display: none;
}

#bluebackDeleteModal {
    position: absolute;
    width: 50vw;
    height: fit-content;
    min-width: fit-content;
    border-radius: 10px;
    top: 50%;
    left: 50%;
    background: #e9e9e9;
    z-index: 5;
    transform: translate(-50%, -90%); /* Center the div */
    display: none;
}

#bluebackDeleteModal button {
    width: 150px;
    font-weight: bold;
    padding: 0;
    margin: 0;
}

#bluebackDeleteModal a {
    width: 150px;
    height: 33px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    margin: 0;
    border-radius: 4px;
    color: white;
    font-weight: bold;
    cursor: pointer;
    font-size: 12px;
}


#bluebackDeleteModal form {
    float: right;
    padding-right: 30px;
    gap: 5px;
}

span.potluckCategoryCheck {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
}

/* Job Postings */

.jobPosting {
    width: 100%;
    min-height: 300px;
    height: fit-content;
    border-radius: 10px;
    position: relative;
    margin: 0 auto;
}

#jobPostingDescription p:has(img) {
    position: absolute;
    top: 70px;
    right: 0;
}

#jobPostingDescription p:has(img) img {
    height: 120px !important;
    width: 207px !important;
}

#newJobForm {
    padding: 20px;
    margin: 0 auto;

    input[type='radio'] {
        width: fit-content;
    }

    input, textarea {
        border: 2px solid black;
    }

}

.activeJob {
    background: Limegreen;
}

.inactiveJob {
    background: lightgray;
}

/* Downtime Announcements */

#downtimeTable {
    td {
        padding-top: 20px;
        padding-bottom: 20px;
    }
}

/* Modify Existing User */

#adminModifyUserForm {
    select {
        height: 48px;
        width: 200px;
        margin-left: 10px;
        font-weight: bold;
        padding-left: 10px;
    }

    input[type='submit'] {
        background: #00b2dc;
        border: none;
        height: 48px;
        width: 200px;
        padding: 0;
        margin: 0;
        font-weight: bold;
        font-size: 16px;

    }


}


@media screen and (max-width: 1000px) {
    .downtimeAnnounce {
        max-width: 50%;
    }
}

@media screen and (max-width: 700px) {
    #loginDowntimeError .downtimeAnnounce {
        left: unset;
        transform: unset;
        margin: 0 auto;
        max-width: 80%;
        top: 20px;
    }
}


@media screen and (max-width: 480px) {
    .downtimeAnnounce {
        max-width: 25%;
        padding-bottom: 0;
    }
}

.passwordResetCtn {
    width: fit-content;
    margin: 0 auto;
    text-align: left;
    position: relative;
    bottom: 50px;
}


.loginContent img {
    position: relative;
    padding-bottom: 0;
}


#portalServiceError .downtimeAnnounce {
    position: static;
    margin: 0 auto;
    transform: unset;
}

#portalIcons {
    min-height: 849px;
}

.gatewayIcons p {
    font-weight: bold;
    font-size: 125%;
}


@media screen and (max-width: 1600px) {
    .loginContent img {
        left: 2vw;
        top: 30px;
    }
}

@media screen and (max-width: 1024px) {


    .gatewayIcons {
        flex-direction: column;
        gap: 24px;

        p {
            font-size: 100%;
        }


        li {
            display: flex;
            border-radius: 10px;
            background: black;
            padding: 0;


            a {
                color: white;
                display: flex;
                align-items: center;
                font-size: xx-large;
            }
        }
    }
}


@media screen and (max-width: 1000px) {
    .w-70 {
        width: 90%;
    }
}

@media screen and (max-width: 700px) {
    .loginContent .form-group {
        flex-direction: column;
        align-items: flex-start;
    }

    .loginContent label {
        float: left;
    }

}


@media screen and (max-width: 600px) {
    .titleHeading {
        font-size: large;
    }

    .gatewayIcons {
        gap: 10px;

    }


    .gatewayIcons li {
        font-size: large;
        /*padding: 22px;*/
    }

    .gatewayIcons img {
        width: 85px;
    }

    /*
    .gatewayIcons a:hover {
        transform: scale(.9);
        font-size: x-large;
    }*/
}

h1 {
    margin: 0;
}