/* ================================================== */
/* Global base styles: fonts, root element defaults,  */
/* and shared layout/utility classes.                 */
/* ================================================== */


/* ================================================== */
/* ===== FONTS ====================================== */
/* ================================================== */

@font-face {
    font-family: "Montserrat Light";
    src: url("../fonts/Montserrat Light.ttf");
}

@font-face {
    font-family: "Montserrat Semi Bold";
    src: url("../fonts/Montserrat Semi Bold.ttf");
}

@font-face {
    font-family: "Proxima Nova Regular";
    src: url("../fonts/Proxima Nova Regular.ttf");
}

@font-face {
    font-family: "Proxima Nova Medium";
    src: url("../fonts/Proxima Nova Medium.ttf");
}


/* ================================================== */
/* ===== ROOT SELECTORS ============================= */
/* ================================================== */

/* Base page styles — font, sizing, and rendering defaults */
html,
body {
    width: 100%;
    min-width: 700px;
    height: 100%;
    font-size: 14px;
    font-family: "Proxima Nova Regular", Verdana, Geneva, sans-serif !important;
    text-rendering: optimizeLegibility;
    font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
}

/* Remove the default fieldset border */
fieldset {
    border: none !important;
}

/* ================================================== */
/* ===== FONT UTILITY CLASSES ======================= */
/* ================================================== */

/* Force Montserrat Light on any element */
.montserrat-light {
    font-family: "Montserrat Light", Verdana, Geneva, sans-serif !important;
}

/* Force Montserrat Semi Bold on any element */
.montserrat-bold {
    font-family: "Montserrat Semi Bold", Verdana, Geneva, sans-serif !important;
}


/* ================================================== */
/* ===== GLOBAL UI COMPONENTS ======================= */
/* ================================================== */

/* Header logo container — constrains logo to a fixed display area */
.global-logo-header {
    width: 170px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

    .global-logo-header img {
        width: auto !important;
        height: auto !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important;
        background: unset !important;
        background-color: unset !important;
        background-image: unset !important;
    }

/* Footer logo container — same constrained display as the header logo */
.global-logo-footer {
    width: 170px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

    .global-logo-footer img {
        width: auto !important;
        height: auto !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important;
        background: unset !important;
        background-color: unset !important;
        background-image: unset !important;
    }

/* Client/tenant logo container — slightly narrower than the global logos */
.client-logo {
    width: 150px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

    .client-logo img {
        width: auto !important;
        height: auto !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important;
        background: unset !important;
        background-color: unset !important;
        background-image: unset !important;
    }

/* Remove default link styling — renders links that visually blend into
   surrounding text */
.hide-link,
.hide-link:hover {
    color: inherit;
    text-decoration: none;
}

/* Full-viewport centering utility — useful for login and error pages */
.center-screen {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 100vh;
}

/* Left sidebar layout utility — orders the sidebar before main content
   and constrains its width */
.left-sidebar {
    order: -1;
    min-width: 60px;
    max-width: 185px;
    display: flex;
    flex-shrink: 0;
}
