* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    font-family: "Mulish", Helvetica, Arial, sans-serif;
}

/* font */
h1 {
    font-size: var(--largeText);
}

h2 {
    font-size: var(--bigText);
}

p {
    font-size: var(--smallText);
}

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

/* colors */

.text-primary {
    color: var(--primary) !important;
}

.bg-primary {
    background-color: var(--primary) !important;
}

.bg-secondary {
    background-color: var(--secondary) !important;
}

.bg-info {
    background-color: var(--info) !important;
}

/* =========================================================
   BUTTONS
========================================================= */
.btn {
    border-radius: 15px;
    font-size: var(--smallText);
}

.btn-xl {
    --bs-btn-padding-y: 1rem;
    --bs-btn-padding-x: 3rem;
    --bs-btn-font-size: var(--regularText);
}

.btn-lg {
    --bs-btn-padding-y: 0.75rem;
    --bs-btn-padding-x: 2rem;
    --bs-btn-font-size: var(--middleText);
}

.btn-md {
    --bs-btn-padding-y: 0.5rem;
    --bs-btn-padding-x: 1rem;
    --bs-btn-font-size: var(--smallText);
}

.btn-sm {
    --bs-btn-padding-y: 0.10rem !important; 
    --bs-btn-padding-x: 0.50rem !important;
    --bs-btn-font-size: var(--smallText);
}

/* outline buttons */
.btn-outline-primary, .btn-outline-primary:hover, .btn-outline-primary:active {
    border-color: transparent !important;
    color: var(--primary) !important;
    font-weight: 700;
    padding: 5px;
}

    .btn-outline-primary:hover, .btn-outline-primary:active {
        background-color: transparent !important;
        text-decoration: underline !important;
    }

.btn-outline-info, .btn-outline-info:hover, .btn-outline-info:active {
    border-color: transparent !important;
    color: var(--info) !important;
}

    .btn-outline-info:hover, .btn-outline-info:active {
        background-color: transparent !important;
    }

.btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger:hover {
    border-color: transparent !important;
    color: var(--danger) !important;
}

    .btn-outline-danger:active, .btn-outline-danger:hover {
        background-color: transparent !important;
    }

.btn-outline-secondary,
.btn-outline-secondary i {
    color: var(--outlineSecondaryText) !important;
}

    .btn-outline-secondary:hover,
    .btn-outline-secondary:focus,
    .btn-outline-secondary:active,
    .btn-outline-secondary:focus:active {
        color: var(--outlineSecondaryText) !important;
    }

/* solid buttons */
.btn-primary, .btn-primary:active, .btn-primary:hover, .btn-secondary, .btn-secondary:active, .btn-secondary:hover, .btn-info, .btn-info:active, .btn-info:hover {
    color: var(--white) !important;
    border-color: transparent !important;
}

.btn-primary {
    background-color: var(--primary) !important;
}

    .btn-primary:active, .btn-primary:hover {
        background-color: var(--primaryHover) !important;
    }

.btn-secondary {
    background-color: var(--secondary) !important;
}

    .btn-secondary:active, .btn-secondary:hover {
        background-color: var(--secondaryHover) !important;
    }

.btn-info {
    background-color: var(--info);
}

    .btn-info:active, .btn-info:hover {
        background-color: var(--infoHover) !important;
    }

/* focus states */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus {
    box-shadow: 0 0 0 2px var(--outlineMain), 0 0 0 2px var(--outlineMain) !important;
    background: transparent;
}

button:focus {
    box-shadow: none !important;
    background: transparent;
}

.btn-close:focus {
    color: #000 !important;
    --bs-btn-close-bg: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e) !important;
}

/* =========================================================
   FORMS / INPUTS
========================================================= */
.form-control:focus, .form-check-input:focus, a:focus {
    box-shadow: 0 0 0 2px var(--outlineMain), 0 0 0 2px var(--outlineMain) !important;
}

.form-group {
    margin: 20px 0;
}

.bi-eye {
    color: var(--eyeColor) !important;
}

/* floating labels */
.form-floating > label {
    color: rgba(var(--bs-body-color-rgb), .6);
    font-size: var(--extraSmallText);
    padding: 1.1rem .75rem;
}

.form-floating, .form-check{
    margin-bottom: 1rem;
}

.input-group > .form-floating {
    margin-bottom: 0;
}

.form-check-input, .form-select, .form-control {
    border-radius: 15px;
    border: 1px solid var(--primary);
    background-color: transparent;
}

    .form-check-input:checked {
        background-color: var(--primary);
    }

.form-control, .form-select {
    width: 100%;
    border-radius: 15px;
}

    .form-control:focus, .form-control:active, .form-select:focus, .form-check-input:focus {
        border: 1px solid var(--primary);
        box-shadow: 0 0 0 0rem white, 0 0 0 0.1rem var(--primary);
    }

.form-switch .form-check-input,
.form-switch .form-check-input:focus {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2363AD13'/%3e%3c/svg%3e");
}

    .form-switch .form-check-input:checked {
        --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23FFFFFF'/%3e%3c/svg%3e");
    }

.form-select {
    width: 100%;
    min-width: 300px;
}

/* =========================================================
   FILE UPLOAD
========================================================= */
.dropArea {
    position: relative;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    font-size: var(--mediumText);
    cursor: pointer;
    border-radius: 15px;
    transition: .3s;
    background-color: var(--light);
    border: 1px solid var(--primary);
}

    .dropAreaDrug, .dropArea:hover {
        background-color: var(--lightHover);
        color: var(--white);
    }

    .dropArea input[type=file] {
        position: absolute;
        width: 100%;
        height: 100%;
        opacity: 0;
        cursor: pointer;
    }

/* =========================================================
   PAGINATION
========================================================= */
.page-link {
    font-size: 12px;
    color: black;
}

    .active > .page-link, .page-link.active {
        z-index: 3;
        color: var(--white);
        background-color: var(--primary);
        border-color: var(--primary);
    }

.pagination {
    margin-bottom: 0;
}

.bb-grid-pagination-text {
    font-size: var(--extraSmallText) !important;
}

/* =========================================================
   NAVS / TABS / ACCORDION
========================================================= */
/* tabs */
.nav-tabs {
    border-bottom: none;
    margin-bottom: 48px;
}

.nav-link {
    font-weight: bold;
    font-size: var(--regularText);
    /*padding: 15px;*/
}

    .nav-link.disabled {
        color: var(--disabled) !important;
        cursor: not-allowed !important;
    }

.nav-tabs .nav-link {
    color: var(--primary);
    background-color: var(--white);
    border: 1px solid transparent !important;
}

    .nav-tabs .nav-link.active {
        color: var(--white);
        background-color: var(--primary);
        border-radius: 10px;
    }

.nav-link:focus {
    isolation: initial !important;
    border: 1px solid var(--secondary) !important;
}

.nav-box {
    background: #e0e0e0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: inset 0px 0px 12px rgba(0,0,0,0.5);
}

.nav-tabs .nav-link {
    border-radius: 10px;
}

/* accordion */
.accordion-item {
    color: var(--bs-accordion-color);
    background-color: transparent !important;
    border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
}

.accordion-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
    color: var(--black) !important;
    text-align: center !important;
    background-color: var(--navColor) !important;
    border: 0;
    border-radius: 0;
    transition: var(--bs-accordion-transition);
    font-weight: bold;
}

    .accordion-button:focus {
        background-color: var(--navColor) !important;
    }

.accordion-title-center > .accordion-header {
    text-align: center;
    width: 100%;
}

.accordion-item:first-of-type .accordion-button, .accordion-item:last-of-type .accordion-button.collapsed {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    padding: 22px;
    font-size: var(--extraSmallText) !important;
}

.accordion-button:not(.collapsed) {
    box-shadow: none;
}

.accordion-button::after {
    display: none !important;
}

.accordion-button:not(.collapsed)::after {
    display: none !important;
}

.accordion-item {
    border: none;
}

.accordion-header {
    text-align: center;
}

.accordion-body {
    margin: 0;
    padding: 0;
}

.ql-toolbar {
    border-start-end-radius: 15px;
    border-start-start-radius: 15px;
    border: 1px solid var(--primary) !important;
    border-bottom: 0px !important;
}

.ql-container {
    border-end-end-radius: 15px;
    border-end-start-radius: 15px;
    border: 1px solid var(--primary) !important;
}

.ql-editor:focus, .ql-toolbar:focus {
    box-shadow: 0 0 0 .2rem var(--primary);
    border-end-end-radius: 15px;
    border-end-start-radius: 15px;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

/* =========================================================
   RESPONSIVE FONT SIZES
========================================================= */
@media (min-width: 768px) {
    .table-responsive:has(.bb-dropdown-menu-enum) {
        overflow-x: scroll !important;
    }
}

@media only screen and (max-width: 600px) {
    :root {
        /* font */
        --largeText: 1.5rem; /* 24px */
        --bigText: 1.25rem; /* 20px */
        --mediumText: 1.125rem; /* 18px */
        --smallText: 0.875rem; /* 14px */
        --extraSmallText: 0.75rem; /* 12px */
        --tinyText: 0.75rem;
    }

    .form-select {
        min-width: 200px;
    }

    .nav-link {
        width: 45%
    }

    .nav-tabs {
        display: flex;
        justify-content: center;
        gap: 10px;
        width: 100%;
    }
}
