/* =========================================================
   iBOS Login
   Visual alinhado ao iBOS.Platform
   ========================================================= */

:root {
    /* Colors */
    --ibos-color-primary: #102E4A;
    --ibos-color-secondary: #6386AC;
    --ibos-color-accent: #FEF7E5;
    --ibos-color-background: #F5F6F8;
    --ibos-color-surface: #FFFFFF;
    --ibos-color-white: #FFFFFF;
    --ibos-color-placeholder: #9CA3AA;
    --ibos-color-border-neutral: #A7A7A7;
    --ibos-color-validation-danger: #E50000;
    /* RGB */
    --ibos-rgb-primary: 16, 46, 74;
    /* Typography */
    --ibos-font-body: "DM Sans", sans-serif;
    --ibos-font-heading: "Archivo Black", sans-serif;
    --ibos-font-size-sm: 13px;
    --ibos-font-size-md: 15px;
    --ibos-font-size-lg: 18px;
    --ibos-font-size-xl: 24px;
    --ibos-font-size-2xl: 31px;
    --ibos-font-weight-regular: 400;
    --ibos-font-weight-semibold: 600;
    /* Transition */
    --ibos-transition-normal: 0.18s ease;
}


/* =========================================================
   Fonts
   ========================================================= */

@font-face {
    font-family: "Archivo Black";
    src: url("/fonts/ArchivoBlack-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "DM Sans";
    src: url("/fonts/DMSans_18pt-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}


/* =========================================================
   Base
   ========================================================= */

html,
body {
    width: 100%;
    min-width: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
    background-color: var(--ibos-color-primary);
    font-family: var(--ibos-font-body);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}


/* =========================================================
   Cover
   ========================================================= */

.ibos-cover {
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background-color: var(--ibos-color-primary);
    background-image: linear-gradient( rgba(var(--ibos-rgb-primary), 0.38), rgba(var(--ibos-rgb-primary), 0.38) ), url("/images/login/fundo-login.webp");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    color: var(--ibos-color-accent);
    font-family: var(--ibos-font-body);
}


/* =========================================================
   Cover Header
   ========================================================= */

.ibos-cover-header {
    height: 150px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ibos-cover-header-logo {
    width: 240px;
    max-width: 70%;
    height: auto;
    display: block;
}


/* =========================================================
   Cover Content
   ========================================================= */

.ibos-cover-content {
    width: min(1420px, 90%);
    flex: 1;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.12fr;
    align-items: center;
    gap: 75px;
    padding-bottom: 100px;
}


/* =========================================================
   Brand
   ========================================================= */

.ibos-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.ibos-brand-logo {
    width: min(560px, 100%);
    height: auto;
    display: block;
}

.ibos-brand-message {
    margin-top: 65px;
    display: flex;
    flex-direction: column;
    font-family: var(--ibos-font-body);
    font-size: var(--ibos-font-size-2xl);
    line-height: 1.25;
}

    .ibos-brand-message strong {
        color: var(--ibos-color-secondary);
        font-family: var(--ibos-font-heading);
        font-weight: var(--ibos-font-weight-regular);
    }

    .ibos-brand-message span {
        color: var(--ibos-color-accent);
        font-family: var(--ibos-font-body);
        font-weight: var(--ibos-font-weight-regular);
    }


/* =========================================================
   Login Panel
   ========================================================= */

.ibos-panel {
    width: 100%;
    padding: 36px 58px 40px 58px;
    background-color: var(--ibos-color-accent);
    color: var(--ibos-color-primary);
    border-radius: 58px 0 58px 0;
}

.ibos-panel-title {
    margin: 0 0 24px 0;
    color: var(--ibos-color-primary);
    font-family: var(--ibos-font-heading);
    font-size: var(--ibos-font-size-2xl);
    line-height: 1;
    font-weight: var(--ibos-font-weight-regular);
}


/* =========================================================
   Form
   ========================================================= */

.ibos-form {
    display: flex;
    flex-direction: column;
    gap: 17px;
    font-family: var(--ibos-font-body);
}


/* =========================================================
   Input Group
   ========================================================= */

.ibos-input-group {
    width: 100%;
    height: 55px;
    display: flex;
    align-items: center;
    border: 1px solid var(--ibos-color-primary);
    background-color: transparent;
}

    .ibos-input-group > .rzi {
        width: 46px;
        flex-shrink: 0;
        color: var(--ibos-color-primary);
        font-size: var(--ibos-font-size-xl);
        text-align: center;
    }


    /* =========================================================
   TextBox
   ========================================================= */

    .ibos-input-group .rz-textbox {
        width: 100%;
        height: 53px;
        padding: 0 14px 0 0;
        border: 0;
        border-radius: 0;
        outline: 0;
        background: transparent;
        color: var(--ibos-color-primary);
        font-family: var(--ibos-font-body);
        font-size: var(--ibos-font-size-xl);
        font-weight: var(--ibos-font-weight-regular);
        box-shadow: none;
    }

        .ibos-input-group .rz-textbox:focus {
            border: 0;
            outline: 0;
            box-shadow: none;
        }

        .ibos-input-group .rz-textbox::placeholder {
            color: var(--ibos-color-placeholder);
            opacity: 1;
            font-family: var(--ibos-font-body);
        }


    /* =========================================================
   Password
   ========================================================= */

    .ibos-input-group .rz-password {
        width: 100%;
        height: 53px;
        border: 0;
        background: transparent;
    }

        .ibos-input-group .rz-password .rz-textbox {
            width: 100%;
            height: 53px;
            border: 0;
            background: transparent;
        }

        .ibos-input-group .rz-password .rzi {
            color: var(--ibos-color-primary);
        }


    /* =========================================================
   DropDown / Tenant
   ========================================================= */

    .ibos-input-group .rz-dropdown {
        width: 100%;
        height: 53px;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

        .ibos-input-group .rz-dropdown:focus,
        .ibos-input-group .rz-dropdown.rz-state-focused {
            border: 0;
            outline: 0;
            box-shadow: none;
        }

    .ibos-input-group .rz-dropdown-label {
        display: flex;
        align-items: center;
        height: 53px;
        padding-left: 0;
        color: var(--ibos-color-primary);
        font-family: var(--ibos-font-body);
        font-size: var(--ibos-font-size-xl);
        font-weight: var(--ibos-font-weight-regular);
    }

    .ibos-input-group .rz-dropdown-trigger {
        color: var(--ibos-color-primary);
    }


/* =========================================================
   Validation
   ========================================================= */

.ibos-form .rz-message {
    margin-top: -10px;
    color: var(--ibos-color-validation-danger);
    font-family: var(--ibos-font-body);
    font-size: var(--ibos-font-size-sm);
}

.ibos-form .rz-message-popup {
    position: static;
    width: 100%;
    margin-top: -10px;
    background: transparent;
    color: var(--ibos-color-validation-danger);
    box-shadow: none;
}


/* =========================================================
   Checkbox
   ========================================================= */

.ibos-checkbox {
    min-height: 35px;
    display: flex;
    align-items: center;
    gap: 10px;
}

    .ibos-checkbox .rz-chkbox {
        width: 28px;
        height: 28px;
    }

    .ibos-checkbox .rz-chkbox-box {
        width: 28px;
        height: 28px;
        border: 1px solid var(--ibos-color-border-neutral);
        border-radius: 0;
        background-color: transparent;
    }

        .ibos-checkbox .rz-chkbox-box.rz-state-active {
            border-color: var(--ibos-color-primary);
            background-color: var(--ibos-color-primary);
        }

    .ibos-checkbox .rz-label {
        margin: 0;
        color: var(--ibos-color-primary);
        font-family: var(--ibos-font-body);
        font-size: 27px;
        font-weight: var(--ibos-font-weight-regular);
        cursor: pointer;
    }


/* =========================================================
   Button
   ========================================================= */

.ibos-button.rz-button {
    min-height: 36px;
    padding: 0 18px;
    border: 0;
    font-family: var(--ibos-font-body);
    font-size: var(--ibos-font-size-sm);
    font-weight: var(--ibos-font-weight-semibold);
}

.ibos-button-primary.rz-button {
    background: var(--ibos-color-primary) !important;
    background-color: var(--ibos-color-primary) !important;
    color: var(--ibos-color-accent) !important;
}

    .ibos-button-primary.rz-button:hover {
        background: var(--ibos-color-secondary) !important;
        background-color: var(--ibos-color-secondary) !important;
        color: var(--ibos-color-white) !important;
    }


/* =========================================================
   Login Button
   ========================================================= */

.ibos-form > .ibos-button.rz-button {
    width: 100%;
    min-height: 55px;
    margin-top: 3px;
    border-radius: 0;
    box-shadow: none;
    transition: background-color var(--ibos-transition-normal), color var(--ibos-transition-normal);
}

    .ibos-form > .ibos-button.rz-button .rz-button-text {
        font-family: var(--ibos-font-body);
        font-size: var(--ibos-font-size-xl);
        font-weight: var(--ibos-font-weight-regular);
    }

    .ibos-form > .ibos-button.rz-button .rzi {
        color: inherit;
        font-size: 28px;
    }


/* =========================================================
   Responsive - Tablet
   ========================================================= */

@media (max-width: 900px) {

    .ibos-cover-header {
        height: 110px;
    }

    .ibos-cover-header-logo {
        width: 190px;
    }

    .ibos-cover-content {
        width: min(620px, 90%);
        grid-template-columns: 1fr;
        gap: 40px;
        padding-bottom: 50px;
    }

    .ibos-brand-logo {
        width: min(420px, 100%);
    }

    .ibos-brand-message {
        margin-top: 30px;
        font-size: var(--ibos-font-size-xl);
    }

    .ibos-panel {
        padding: 30px;
        border-radius: 40px 0 40px 0;
    }

    .ibos-panel-title {
        font-size: 27px;
    }

    .ibos-input-group {
        height: 50px;
    }

        .ibos-input-group .rz-textbox,
        .ibos-input-group .rz-password,
        .ibos-input-group .rz-password .rz-textbox,
        .ibos-input-group .rz-dropdown,
        .ibos-input-group .rz-dropdown-label {
            height: 48px;
            font-size: 20px;
        }

        .ibos-input-group > .rzi {
            font-size: 21px;
        }

    .ibos-checkbox .rz-label {
        font-size: 22px;
    }

    .ibos-form > .ibos-button.rz-button .rz-button-text {
        font-size: 20px;
    }
}


/* =========================================================
   Responsive - Mobile
   ========================================================= */

@media (max-width: 600px) {

    .ibos-cover-header {
        height: 90px;
    }

    .ibos-cover-header-logo {
        width: 160px;
    }

    .ibos-cover-content {
        width: 92%;
        gap: 28px;
        padding-bottom: 30px;
    }

    .ibos-brand-logo {
        width: min(330px, 90%);
    }

    .ibos-brand-message {
        margin-top: 20px;
        padding: 0 12px;
        font-size: 19px;
        text-align: center;
    }

    .ibos-panel {
        padding: 26px 22px 30px 22px;
        border-radius: 32px 0 32px 0;
    }

    .ibos-panel-title {
        font-size: 25px;
    }

    .ibos-checkbox .rz-label {
        font-size: 19px;
    }
}
