/****************************
******* GLOBAL STYLES *******
*****************************/
/* Variaveis */
:root {
    --bs-primary: #2b4570;
    --bs-primary-light: #6a82ad;
    --bs-primary-dark: #172a46;
    --bs-secondary: #1D3E7C;
    --bs-secondary-light: #637DAC;
    --bs-secondary-dark: #11254A;
    --bs-success: #1FB77B;
    --bs-success-light: #79D4B0;
    --bs-success-dark: #136E4A;
    --bs-error: #E33B3B;
    --bs-error-light: #EE8989;
    --bs-error-dark: #882323;
    --bs-warning: #F6C034;
    --bs-warning-light: #FAD985;
    --bs-warning-dark: #94741F;
    --bs-info: #1277E0;
    --bs-info-light: #71ADEC;
    --bs-info-dark: #0B4786;
    --bs-gray-100: #F4F4F4;
    --bs-gray-200: #E8E8E8;
    --bs-gray-300: #D6D6D6;
    --bs-gray-400: #A5A5A5;
    --bs-gray-500: #757575;
    --bs-gray-600: #575757;
    --bs-gray-700: #444444;
    --bs-gray-800: #2B2B2B;
    --bs-gray-900: #1C1C1C;
    --bs-title: var(--bs-gray-800);
    --bs-text: var(--bs-gray-700);
    --bs-text-secondary: var(--bs-gray-500);
    --bs-text-tertiary: var(--bs-gray-400);
    --bs-border: var(--bs-gray-200);
    --bs-body-secondary-bg: #F4F3FC;
    --bs-card-bg: #FFFFFF;

    --bs-border-radius: 0.375rem;
    --bs-border-radius-sm: 0.25rem;
    --bs-border-radius-lg: 0.5rem;
    --bs-border-radius-md: 0.75rem;
    --bs-border-radius-xl: 1rem;

    --bs-display-xs: 1.5rem;
    --bs-text-lg: 1.125rem;
    --bs-text-md: 1rem;
    --bs-text-sm: 0.875rem;
}

/* Fonte padrão */
body {
    font-family: 'Figtree', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    color: var(--bs-text);
    background-color: #FAFAFA;
}

a {
    color: var(--bs-primary);
    text-decoration: none;
}

a:hover {
    color: var(--bs-primary-dark);
}

p {
    line-height: 1.6;
}

small {
    font-size: 80%;
    font-weight: 400;
}

menu {
    padding-left: 0px;
}

a:hover,
a:active,
a:focus {
    outline: none!important;
    text-decoration: none!important;
}

b, 
strong,
.bold {
    font-weight: 600;
}

dt {
    font-weight: 500;
}

hr{
    opacity: 1;
}

/****************************
********* UTILITIES **********
*****************************/
/* Divider */
.divider {
    display: block;
    content: '';
    width: 100%;
    height: 1px;
    background: var(--bs-border);
    margin: 30px 0;
}

/* Margins & Paddings */
.no-s {
    margin: 0px !important;
    padding: 0px !important;
}

.no-m {
    margin: 0;
}

.no-p {
    padding: 0;
}

.m {
    margin: 15px;
}

.m-t-xxs {
    margin-top: 5px;
}

.m-r-xxs {
    margin-right: 5px;
}

.m-b-xxs {
    margin-bottom: 5px;
}

.m-l-xxs {
    margin-left: 5px;
}

.m-t-xs {
    margin-top: 10px;
}

.m-r-xs {
    margin-right: 10px;
}

.m-b-xs {
    margin-bottom: 10px;
}

.m-l-xs {
    margin-left: 10px;
}

.m-t-sm {
    margin-top: 15px;
}

.m-r-sm {
    margin-right: 15px;
}

.m-b-sm {
    margin-bottom: 15px;
}

.m-l-sm {
    margin-left: 15px;
}

.m-t-md {
    margin-top: 20px;
}

.m-r-md {
    margin-right: 20px;
}

.m-b-md {
    margin-bottom: 20px;
}

.m-l-md {
    margin-left: 20px;
}

.m-t-lg {
    margin-top: 25px;
}

.m-r-lg {
    margin-right: 25px;
}

.m-b-lg {
    margin-bottom: 25px;
}

.m-l-lg {
    margin-left: 25px;
}

.m-t-xxl {
    margin-top: 30px;
}

.m-r-xxl {
    margin-right: 30px;
}

.m-b-xxl {
    margin-bottom: 30px;
}

.m-l-xxl {
    margin-left: 30px;
}

.m-t-n-xxs {
    margin-top: -5px;
}

.m-r-n-xxs {
    margin-right: -5px;
}

.m-b-n-xxs {
    margin-bottom: -5px;
}

.m-l-n-xxs {
    margin-left: -5px;
}

.m-t-n-xs {
    margin-top: -10px;
}

.m-r-n-xs {
    margin-right: -10px;
}

.m-b-n-xs {
    margin-bottom: -10px;
}

.m-l-n-xs {
    margin-left: -10px;
}

.m-t-n-sm {
    margin-top: -15px;
}

.m-r-n-sm {
    margin-right: -15px;
}

.m-b-n-sm {
    margin-bottom: -15px;
}

.m-l-n-sm {
    margin-left: -15px;
}

.m-t-n-md {
    margin-top: -20px;
}

.m-r-n-md {
    margin-right: -20px;
}

.m-b-n-md {
    margin-bottom: -20px;
}

.m-l-n-md {
    margin-left: -20px;
}

.m-t-n-lg {
    margin-top: -25px;
}

.m-r-n-lg {
    margin-right: -25px;
}

.m-b-n-lg {
    margin-bottom: -25px;
}

.m-l-n-lg {
    margin-left: -25px;
}

.m-t-n-xxl {
    margin-top: -30px;
}

.m-r-n-xxl {
    margin-right: -30px;
}

.m-b-n-xxl {
    margin-bottom: -30px;
}

.m-l-n-xxl {
    margin-left: -30px;
}

.p {
    padding: 32px;
}

.p-h-xxs {
    padding-left: 5px;
    padding-right: 5px;
}

.p-h-xs {
    padding-left: 10px;
    padding-right: 10px;
}

.p-h-sm {
    padding-left: 15px;
    padding-right: 15px;
}

.no-p-h {
    padding-left: 0;
    padding-right: 0;
}

.no-p-v {
    padding-top: 0;
    padding-bottom: 0;
}

.p-h-md {
    padding-left: 20px;
    padding-right: 20px;
}

.p-h-lg {
    padding-left: 25px;
    padding-right: 25px;
}

.p-h-xxl {
    padding-left: 32px;
    padding-right: 32px;
}

.p-v-xxs {
    padding-top: 5px;
    padding-bottom: 5px;
}

.p-v-xs {
    padding-top: 10px;
    padding-bottom: 10px;
}

.p-v-sm {
    padding-top: 15px;
    padding-bottom: 15px;
}

.p-v-md {
    padding-top: 20px;
    padding-bottom: 20px;
}

.p-v-lg {
    padding-top: 25px;
    padding-bottom: 25px;
}

.p-v-xxl {
    padding-top: 30px;
    padding-bottom: 30px;
}

/* Width */
.full-width {
    width: 100% !important;
}

.w-20{
  width: 1.25rem;
}

.w-40{
  width: 2.5rem;
}

.w-xxs {
    width: 50px;
}

.w-xs {
    width: 90px;
}

.w-sm {
    width: 140px;
}

.w {
    width: 200px;
}

.w-md {
    width: 240px;
}

.w-lg {
    width: 280px;
}

.w-xl {
    width: 330px;
}

.w-xxl {
    width: 370px;
}

.w-auto {
    width: auto;
}

/* Height */
.h-20{
  height: 1.25rem;
}

.h-40{
  height: 2.5rem;
}

.full-height {
    height: 100% !important;
}

.h-auto {
    height: auto;
}

/* Borders */
.no-b {
    border: 0 !important;
}

.b-color{
    border-color: var(--bs-border);
}

.b {
    border: 1px solid var(--bs-border) !important;
}

.b-t {
    border-top: 1px solid var(--bs-border) !important;
}

.b-r {
    border-right: 1px solid var(--bs-border) !important;
}

.b-b {
    border-bottom: 1px solid var(--bs-border) !important;
}

.b-l {
    border-left: 1px solid var(--bs-border) !important;
}

.b-default {
    border-color: var(--bs-border) !important;
}

.b-primary {
    border-color: var(--bs-primary) !important;
}

.b-info {
    border-color: var(--bs-info) !important;
}

.b-success {
    border-color: var(--bs-success) !important;
}

.b-warning {
    border-color: var(--bs-warning) !important;
}

.b-danger {
    border-color: var(--bs-error) !important;
}

.b-2 {
    border-width: 2px;
}

.b-3 {
    border-width: 3px;
}

.b-4 {
    border-width: 4px;
}

.b-n-t {
    border-top: 0;
}

.b-n-r {
    border-right: 0;
}

.b-n-b {
    border-bottom: 0;
}

.b-n-l {
    border-left: 0;
}

/* Radius */
.no-r {
    border-radius: 0 !important;
}

.r {
    border-radius: var(--bs-border-radius-md);
}

.r-lg{
    border-radius: var(--bs-border-radius-lg);
}

.r-t-l {
    border-top-left-radius: var(--bs-border-radius-md);
}

.r-t-r {
    border-top-right-radius: var(--bs-border-radius-md);
}

.r-b-l {
    border-bottom-left-radius: var(--bs-border-radius-md);
}

.r-b-r {
    border-bottom-right-radius: var(--bs-border-radius-md);
}

.no-r-t-l {
    border-top-left-radius: 0 !important;
}

.no-r-t-r {
    border-top-right-radius: 0 !important;
}

.no-r-b-l {
    border-bottom-left-radius: 0 !important;
}

.no-r-b-r {
    border-bottom-right-radius: 0 !important;
}

/* Backgrounds */
.bg-primary {
    background-color: var(--bs-primary) !important;
}

.bg-primary-light {
    background-color: #DCD8F4 !important;
}

.bg-secondary {
    background-color: var(--bs-secondary) !important;
}

.bg-secondary-light {
    background-color: #E7F6D9 !important;
}

.bg-success {
    background-color: var(--bs-success) !important;
}

.bg-danger {
    background-color: var(--bs-error) !important;
}

.bg-warning {
    background-color: var(--bs-warning) !important;
}

.bg-info {
    background-color: var(--bs-info) !important;
}

.bg-light {
    background-color: var(--bs-gray-100) !important;
}

.bg-dark {
    background-color: #2B2B2B !important;
}

/* Text Colors */
.text-white {
    color: #fff;
}

.text-primary {
    color: var(--bs-primary) !important;
}

.text-secondary {
    color: var(--bs-text) !important;
}

.text-success {
    color: var(--bs-success) !important;
}

.text-danger {
    color: var(--bs-error) !important;
}

.text-warning {
    color: var(--bs-warning) !important;
}

.text-info {
    color: var(--bs-info) !important;
}

.text-light {
    color: var(--bs-text-secondary) !important;
}

.text-dark {
    color: var(--bs-title) !important;
}

/* Size text */
.text-sm{
    font-size: var(--bs-text-sm);
}

.text-lg{
    font-size: var(--bs-text-lg);
}

/* Buttons */
.btn {
  height: 44px;
  padding: 0 20px;
  border-radius: var(--bs-border-radius-lg);
  font-weight: 500;
  font-size: var(--bs-text-sm);
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-cursor-auto{
    cursor: auto;
}

.btn-primary {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.btn-primary:hover {
  background-color: var(--bs-primary-dark);
  border-color: var(--bs-primary-dark);
}

.btn-icon{
    width: 18px;
    height: 18px;
}

.btn-outline-secondary{
    border-color: var(--bs-border);
    color: var(--bs-text);
}

.btn-outline-secondary:hover,
.btn-outline-secondary.show{
    background: transparent;
    color: var(--bs-title);
}

.btn-actions{
    width: 30px;
    height: 30px;
    justify-content: center;
}

.btn-actions:hover{
    color: var(--bs-title);
}

.btn-disabled{
    opacity: 0.6;
}

.btn-success{
    background: var(--bs-success);
    border-color: var(--bs-success);
}

.btn-success:hover{
    background: var(--bs-success-dark);
    border-color: var(--bs-success-dark);
}

/****************************
********* UI ELEMENTS *******
*****************************/
/* Dropdowns */
.dropdown-menu {
    border-radius: var(--bs-border-radius-md);
    border: 1px solid var(--bs-border);
    padding: 15px 0;
    margin: 10px 0 0 0 !important;
    z-index: 1060;
}

.dropdown-item {
    color: var(--bs-text-secondary);
    font-size: var(--bs-text-sm);
    padding: 9px 26px;
    white-space: normal;
    display: flex;
    gap: 10px;
    align-items: center;
}

.dropdown-item:hover {
    background: none;
    color: var(--bs-text);
}

.dropdown-divider {
    border-color: var(--bs-border);
}

.dropdown-item.active, .dropdown-item:active {
    color: var(--bs-primary);
    background: none;
}

.dropdown-header {
    padding: 8px 26px;
}

.dropdown-menu form {
    padding: 8px 20px;
}

/* Cards */
.card {
    border-radius: 8px;
    border: none;
}

.card-title {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    font-size: 24px;
    color: var(--bs-title);
    margin-bottom: 30px;
}

.card-title h1{
    font-size: 24px;
}

.card-body {
    padding: 32px;
}

.card-header,
.card-footer {
    border-color: var(--bs-border);
}

/* Breadcrumb */
.breadcrumb {
    font-size: var(--bs-text-sm);
}

.breadcrumb-item a{
    color: var(--bs-text-secondary);
}

.breadcrumb-item a:hover{
    color: var(--bs-title);
}

.breadcrumb-item.active {
    color: var(--bs-title);
    font-weight: 500;
}

/* Navs */
.nav.nav-tabs{
    width: 100%;
    border-bottom: 1px solid var(--bs-border) !important;
    column-gap: 20px;
    row-gap: 10px;
}

.nav.nav-tabs .nav-link{
    border: none;
    background: transparent !important;
    border-bottom: 2px solid transparent;
    padding: 0 0 10px 0;
    color: var(--bs-gray-500);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
}

.nav.nav-tabs .nav-link.active,
.nav.nav-tabs .nav-link:hover{
    border-color: var(--bs-primary);
    color: var(--bs-title);
}

.nav.nav-tabs .tabs-number{
    background: var(--bs-gray-200);
    padding: 2px 8px;
    color: var(--bs-gray-600);
    border-radius: 4px;
    font-size: 12px;
    font-weight: 700;
}

.nav.nav-tabs .nav-link.active .tabs-number,
.nav.nav-tabs .nav-link:hover .tabs-number{
    background: var(--bs-primary);
    color: #FFFFFF;
}

.nav.nav-tabs .tab-icon{
    width: 20px;
    height: 20px;
}

/* Badge */
.badge {
    font-weight: 500;
    padding: 7px 12px;
}

.badge:not(.badge-pill) {
    border-radius: 7px;
}

.badge.bg-primary {
    background-color: #DCD8F4 !important;
    color: var(--bs-primary);
}

.badge.bg-success {
    background-color: #D2F1E5 !important;
    color: var(--bs-success);
}

.badge.bg-danger {
    background-color: #F9D8D8 !important;
    color: var(--bs-error);
}

.badge.bg-warning {
    background-color: #FDF2D6 !important;
    color: var(--bs-warning);
}

.badge.bg-info {
    background-color: #D0E4F9 !important;
    color: var(--bs-info);
}

.badge.bg-dark {
    background-color: #E8E8E8 !important;
    color: var(--bs-gray-700);
}

/* Modals */
body.modal-open {
    overflow: visible;
}

.modal-content {
    border-radius: var(--bs-border-radius-md);
    border: none;
}

.modal-header {
    padding: 16px 30px;
    border: 0;
    border-bottom: 1px solid var(--bs-border);
}

.modal-title{
    font-size: 18px !important;
    color: var(--bs-title) !important;
}

.modal-body {
    padding: 30px;
}

/* Alerts */
.alert.light{
    border-radius: 8px;
    padding: 20px;
}

.alert.light .alert-content{
    display: flex;
    flex-direction: column;
}

.alert-success.light {
    background: #e9f8f2; 
    border-color: var(--bs-success); 
    color: #062519;
}

.alert-success.light svg{
    color: #1FB77B;
}

.alert-warning.light {
    background: #fef9eb; 
    border-color: var(--bs-warning); 
    color: #33280A;
}

.alert-warning.light svg{
    color: var(--bs-warning);
}

/* Pagination */
.page-link {
    color: var(--bs-text);
    border-color: var(--bs-border);
    border-radius: var(--bs-border-radius-lg);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.page-link:hover{
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #FFFFFF;
}

.page-item.disabled .page-link {
    border-color: var(--bs-border);
}

.page-item:first-child .page-link,
.page-item:last-child .page-link {
    border-radius: var(--bs-border-radius-lg);
}

.page-item.active .page-link {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    border-radius: var(--bs-border-radius-lg);
}

/* Progress */
.progress {
    height: 10px;
    background-color: var(--bs-gray-100);
}

.progress-bar {
    background-color: var(--bs-primary);
    border-radius: 10px;
}

/* Accordion */
.accordion-element{
    overflow: hidden;
    border-radius: var(--bs-border-radius-lg);
}

.accordion-header{
    background: var(--bs-gray-100);
}

.accordion-button {
    border: none;
    padding: 20px;
}

.accordion-collapse {
    border: none;
}

.accordion-button:not(.collapsed) {
    background-color: transparent;
    color: var(--bs-primary);
}

.accordion-item:first-of-type .accordion-button {
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
}

.accordion-item:last-of-type .accordion-button.collapsed {
    border-bottom-left-radius: 15px;
    border-bottom-right-radius: 15px;
}

.accordion-flush .accordion-button {
    box-shadow: none;
}

/* Form Elements */
.form-label {
  font-weight: 500;
  font-size: var(--bs-text-sm);
  margin-bottom: 6px;
  color: var(--bs-title);
}

.form-label-small{
    font-size: 12px;
    margin-top: 6px;
    color: var(--bs-text-secondary); 
}

.form-control {
    height: 44px;
    border-radius: var(--bs-border-radius-lg);
    font-size: var(--bs-text-md);
    border: 1px solid var(--bs-border) !important;
    box-shadow: none;
    padding: 10px 18px;
}

.form-control:disabled, 
.form-control[readonly],
.form-select:disabled {
    background-color: var(--bs-border);
    color: var(--bs-title);
}

.form-control:focus,
.form-select:focus {
  border-color: var(--bs-primary) !important;
  box-shadow: 0 0 0 0.25rem rgba(108, 77, 255, 0.2);
}

.form-select {
    border-color: var(--bs-border) !important;
    border-radius: var(--bs-border-radius-lg);
    height: 44px;
    padding: 0 18px;
}

.form-check-input:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary); 
}

.input-group-text {
    border-radius: var(--bs-border-radius-lg);
    background-color: #fff;
    border-color: var(--bs-border);
}

.form-control.is-valid, 
.was-validated .form-control:valid,
.form-select.is-valid, 
.was-validated .form-select:valid {
    border-color: var(--bs-success);
}

.form-control.is-invalid, 
.was-validated .form-control:invalid,
.form-select.is-invalid, 
.was-validated .form-select:invalid {
    border-color: var(--bs-error);
}

textarea.form-control{
    height: auto;
    padding: 18px;
}

.dropzone{
    border: 2px dashed var(--bs-border);
    border-radius: var(--bs-border-radius-lg);
    cursor: pointer;
}

.dropzone-btn{
    width: 48px; 
    height:48px;
    background:var(--bs-primary);
    color: #FFFFFF;
}

.dropzone.dragover {
  background: #f5f3ff;
  border-color: var(--bs-border);
}

.object-fit-cover { 
    object-fit: cover; 
}

.dropzone-btn-action{
    width: 30px;
    height: 30px;
    background: #FFFFFF;
    padding: 0;
    border: 1px solid var(--bs-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-text);
    border-radius: var(--bs-border-radius-lg);
    cursor: pointer;
}

.form-subtitle{
    font-size: 18px;
    color: var(--bs-title);
}

.form-switch{
    padding-left: 0;
}

.form-switch .form-check-input{
    margin-left: 8px !important;
    height: 22px !important;
    width: 36px !important;
    margin-top: 0 !important;
}

/* Tables */
.table {
    color: var(--bs-text);
    border-color: var(--bs-border);
}

.table * {
    border-color: var(--bs-border) !important;
}

.table th,
.table td {
    padding: 15px 20px !important;
    font-weight: normal;
    vertical-align: middle;
    font-size: var(--bs-text-sm);
    color: var(--bs-text);
}

.table thead th{
    font-weight: 500;
    color: var(--bs-text-secondary);
    text-transform: uppercase;
    font-size: 12px;
}

.table tbody tr:last-child td,
.table tbody tr:last-child th {
    border-bottom: none;
}

.table tfoot tr td,
.table tfoot tr th {
    border-bottom: none;
    border-top-width: 1px;
}

.table-hover tbody tr {
    -webkit-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
}

.table-hover tbody tr:hover {
    --bs-table-hover-bg: transparent;
    background: var(--bs-gray-100);
}

.table-striped tbody tr:nth-of-type(odd) {
    --bs-table-striped-bg: var(--bs-gray-100);
}

.table-striped tbody tr:nth-of-type(odd) {
    color: var(--bs-text);
}

.table-active{
    --bs-table-bg-state: var(--bs-gray-100);
}

/****************************
************ HEADER **********
*****************************/
.navbar-nav .dropdown-menu{
    position: absolute !important;
}

.header-main{
    padding: 16px 0;
}

.header-left .header-toggle{
    display: none;
    cursor: pointer;
    color: var(--bs-title);
}

.header-left .navbar-logo img{
    width: 90px;
}

.header-left .nav-item-close{
    display: none;
}

.header-left .navbar-nav .nav-link{
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--bs-text-sm);
    color: var(--bs-gray-500);
    position: relative;
}

.header-left .navbar-nav .nav-link:hover::before,
.header-left .navbar-nav .nav-link.active::before{
    content: '';
    position: absolute;
    width: 100%;
    height: 2px;
    background: var(--bs-primary);
    bottom: -16px;
    left: 0;
}

.header-left .navbar-nav .nav-link svg{
    fill: var(--bs-gray-500);
}

.header-left .navbar-nav .nav-link.active,
.header-left .navbar-nav .nav-link:hover{
    color: var(--bs-gray-800) !important;
}

.header-left .navbar-nav .nav-link.active svg,
.header-left .navbar-nav .nav-link:hover svg{
    fill: var(--bs-primary);
}

.header-right .navbar-nav{
    flex-direction: row !important;
    flex-wrap: nowrap;
}

.header-right .notif-btn{
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px; 
    height: 36px;
    color: var(--bs-text);
    border: 1px solid var(--bs-border);
    border-radius: 50%;
    font-weight: 700;
}

.header-right .notif-btn-icon{ 
    width: 20px; 
    height: 20px; 
}

.header-right .notif-badge{
    position: absolute; 
    top: -4px; 
    right: -4px;
    width: 18px;
    height: 18px; 
    padding: 0 4px;
    font-size: 11px; 
    line-height: 18px; 
    text-align: center;
    background: var(--bs-primary); 
    color: #fff;
    border-radius: 50%;
}

.header-right .notif-menu{
    width: 340px;
    max-height: 420px;
    overflow-y: auto;
    overflow-x: hidden;
}

.header-right .notif-menu .dropdown-item{ 
    white-space: normal; 
}

.header-right .notif-menu .flex-grow-1{ 
    min-width: 0; 
}

.header-right .notif-icon{
    width: 36px;
    height: 36px;
    flex: 0 0 36px; 
    line-height: 1;
    color: #fff;
}

.header-right .notif-icon i,
.header-right .notif-icon svg{
    width: 18px;
    height: 18px;
}

.header-right .notif-menu p{
    line-height: 18px;
}

.header-right .avatar{
    width: 36px; 
    height: 36px; 
    object-fit: cover; 
    border-radius: 50%;
    display: block;
}

.header-right .profile-menu{
    width: 250px;
}

.profile-menu-icon{
    width: 18px;
    height: 18px;
}

.profile-menu .dropdown-item{
    display: flex;
    gap: 10px;
}

/****************************
********* PAGE CONTENT *******
*****************************/
/* Content */
.page-content{
    padding: 50px 0;
    min-height: calc(100vh - 140px);
}

.page-container{
    position: relative;
}

/* Jornada */
.journey .card-body{
    padding: 10px 30px;
}

.journey h6{
    font-size: var(--bs-text-lg);
    color: var(--bs-title);
}

.journey span{
    font-size: var(--bs-text-sm);
    color: var(--bs-gray-500);
}

/* Card curso */
.course-card .card-body{
    padding: 20px;
}

.course-card-image{
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    border-radius: 8px 8px 0 0;
}

.course-card-icon{
   position: absolute;
   width: 48px;
   height: 48px;
   display: none;
}

.course-card:hover .course-card-icon {
    display: flex;
}

.course-card-img {
    width: 100%;
    height: 180px;
    object-fit: cover;
}

.course-card h6{
    color: var(--bs-title);
    min-height: 40px;
}

.course-card-date{
    background: var(--bs-gray-100);
    border-radius: 8px;
    padding: 10px 20px;
}

.course-card-date .date-text{
    width: calc(50% - 20px);
    display: flex;
    flex-direction: column;
}

.course-card-date .date-text strong{
    font-size: 12px;
    font-weight: normal;
    color: var(--bs-gray-500);
}

.course-card-date .date-text span{
    font-size: var(--bs-text-sm);
    font-weight: 600;
    color: var(--bs-title);
}

.course-card-date .date-line{
    width: 2px;
    background: var(--bs-border);
    height: 40px;
}

.course-card .divider{
    margin: 20px 0;
}

.course-card-info{
    gap: 10px;
}

.course-card-info .info-text{
    display: flex;
    align-items: center;
    gap: 5px;
    color: var(--bs-gray-600);
}

.course-card-info .info-icon{
    width: 16px;
}

.course-card-info .info-circle{
    width: 6px;
    height: 6px;
    background: var(--bs-gray-300);
    border-radius: 50%;
}

.course-card .progress{
    height: 6px;
}

/* Module course */
.course-module-header-info{
    padding: 20px 30px;
}

.course-module-header-info p{
    font-size: var(--bs-text-sm);
    color: var(--bs-gray-700);
    margin: 0;
}

.header-info-text{
    width: 80%;
}

.header-info-summary{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.header-info-summary .summary-item{
    color: var(--bs-gray-600);
}

.header-info-summary .summary-icon{
    width: 16px;
    height: 16px;
}

.header-info-summary .info-circle {
    width: 6px;
    height: 6px;
    background: var(--bs-gray-300);
    border-radius: 50%;
}

.course-module-header-progress{
    padding: 24px 30px;
}

.course-module-header-progress span{
    color: var(--bs-title);
}

.course-modules{
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.course-modules .accordion-item{
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--bs-border) !important;
}

.course-modules .list-group-item {
    border-color: var(--bs-border) !important;
}

.course-modules .accordion-button{
    border-radius: 8px 8px 0 0 !important;
    box-shadow: none !important;
    gap: 12px;
}

.course-modules .accordion-check{
    border-radius: 50%;
    background: var(--bs-success);
    width: 24px;
    height: 24px;
    padding: 4px;
    color: #fff;
}

.course-modules .accordion-button::after{
    width: 18px;
    height: 18px;
    color: var(--bs-gray-500);
}

.course-modules .accordion-body{
    border-top: 1px solid var(--bs-border);
}

.course-modules .accordion-button:not(.collapsed){
    color: var(--bs-title) !important;
}

.course-modules .accordion-box-icon{
    background: var(--bs-gray-100);
    border-radius: 8px;
    color: var(--bs-gray-500);
}

.course-modules .accordion-box-icon.accordion-box-icon-success{
    background: var(--bs-success);
    color: #FFFFFF;
}

.course-modules .accordion-icon{
    width: 18px;
    height: 18px;
}

.course-modules .accordion-info h6{
    margin: 0;
    font-size: var(--bs-text-sm);
    color: var(--bs-gray-700);
    font-weight: 600;
}

.course-modules .accordion-info-lock{
    width: 14px;
    height: 14px;
    color: var(--bs-gray-600);
}

.course-modules .accordion-clock{
    color: var(--bs-gray-600);
    font-weight: 500;
}

.course-modules .accordion-clock-icon{
    width: 18px;
    height: 18px;
}

/* Aulas */
.lesson-header .toggle-sidebar {
    width: 44px;
    height: 44px; 
    border-radius: 10px;
    display: flex;
    padding: 0;
    justify-content: center;
    background: #fff;
    border-color: var(--bs-border);
}

.lesson-layout {
    position: relative;
    display: flex; 
    gap: 24px;
    transition: gap .25s ease;
}

.lesson-left,
.lesson-right {
    min-height: 1px;
}

.lesson-left {
    flex: 1 1 100%;
    transition: flex-basis .25s ease, width .25s ease, max-width .25s ease;
}

.lesson-right {
    width: 300px; 
    max-width: 300px; 
    flex: 0 0 300px;
    display: none;
    background: #FFFFFF;
    border: 1px solid var(--bs-border);
    border-radius: 8px;
    position: relative;
    overflow: auto;
}

.lesson-right-close {
    margin: 15px 15px 0 15px;
    color: var(--bs-primary);
    cursor: pointer;
    display: none;
}

.lesson-right .course-modules{
    padding: 20px;
}

.lesson-right .course-modules .accordion-button{
    padding: 15px;
}

.lesson-right .course-modules .accordion-button span{
    font-size: var(--bs-text-sm);
}

.lesson-right .course-modules .accordion-box-icon{
    width: 28px !important;
    height: 28px !important;
}

.lesson-right .course-modules .accordion-icon{
    width: 16px;
    height: 16px;
}

.lesson-right .course-modules .list-group{
    gap: 10px;
    padding: 15px;
}

.lesson-right .course-modules .list-group-item{
    padding: 0 !important;
    border: none;
}

.lesson-layout.sidebar-open .lesson-right {
    display: block;
}

.lesson-layout.sidebar-open .lesson-left {
    flex-basis: calc(100% - 384px);
}

.lesson-player {
    border-radius: 12px; 
    overflow: hidden; 
    border: 1px solid var(--bs-border);
}

.lesson-title h6{
    width: 100%;
    font-size: 20px;
    color: var(--bs-title);
    margin-bottom: 0;
}

.lesson-title-buttons{
    width: 100%;
}

.lesson-tab{
    background: #FFFFFF;
    border: 1px solid var(--bs-border);
    border-radius: 8px;
}

.lesson-tab .nav-tabs{
    padding: 0 30px;
}

.lesson-tab .nav.nav-tabs .nav-link{
    padding: 20px 0;
    font-size: var(--bs-text-sm);
}

.lesson-tab .card-body p:last-child{
    margin-bottom: 0;
}

.side-card { 
    border-bottom: 1px solid var(--bs-border);
    padding: 25px 20px;
}

.side-info{
    position: fixed;
    bottom: 15px;
    right: 15px;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--bs-border);
    border-radius: 8px;
    background: #FFFFFF;
}

.side-info-btn{
    padding: 14px 16px;
    border-bottom: 1px solid var(--bs-border);
    color: var(--bs-gray-600);
}

.side-info-btn:last-child{
    border-bottom: none;
}

.side-info-btn-icon{
    width: 20px;
    height: 20px;
}

/* Provas */
.evidence-infos { 
    gap: 10px;
    color: var(--bs-gray-600);
}

.evidence-infos .infos-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%; 
    background: var(--bs-gray-300); 
    display: inline-block;
}

.evidence-card {
    border-radius: 8px;
    border: 1px solid var(--bs-border);
    background: #fff;
}

.evidence-card .evidence-head {
    padding: 20px 30px; 
    border-bottom: 1px solid var(--bs-border);
}

.evidence-card .evidence-head {
    color: var(--bs-gray-500);
}

.evidence-card .evidence-head h2{
    color: var(--bs-gray-800);
    font-weight: 600;
}

.evidence-card .evidence-body {
    padding: 24px 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.evidence-body-option {
    display: flex; 
    align-items: center; 
    gap: 12px;
}

.form-check-input[type="radio"] {
    width: 18px; 
    height: 18px; 
    margin-top: 0;
}

.evidence-actions {
    display: flex; 
    align-items: center; 
    justify-content: space-between;
}

.evidence-actions-navegation {
    display: flex; 
    gap: 10px;
}

.hide {
    display: none !important;
}

/* Concluir curso */
.conclude-box{
    border: 1px solid var(--bs-border);
    border-radius: 8px;
    padding: 30px 40px;
    background: #FFFFFF;
}

.conclude-box h2{
    margin-bottom: 15px;
    color: var(--bs-title);
}

.conclude-card-icon{
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-gray-100);
    margin-bottom: 15px;
}

.conclude-card-icon svg{
    width: 20px;
    height: 20px;
    color: var(--bs-gray-600);
}

.conclude-notes span{
    color: var(--bs-gray-700);
}

.conclude-evidence-list{
    border: 1px solid var(--bs-border);
    border-radius: 8px;
    overflow: hidden;
}

.conclude-evidence-list-row{
    border-bottom: 1px solid var(--bs-border);
    padding: 18px 20px;
}

.conclude-evidence-list-row:last-child{
    border-bottom: none;
}

.conclude-evidence-list-row .list-row-title span{
    color: var(--bs-gray-700);
    font-size: var(--bs-text-sm);
    font-weight: 600;
}

.conclude-evidence-list-row .list-row-title svg{
    width: 18px;
    height: 18px;
    color: var(--bs-gray-500);
}

.conclude-evidence-list-row .list-row-info{
    gap: 10px;
    color: var(--bs-gray-600);
}

.conclude-evidence-list-row .list-row-info-dot{
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--bs-gray-300);
    display: inline-block;
}

/* Ranking */
.ranking-box{
    background: #FFFFFF;
    border: 1px solid var(--bs-border);
    border-radius: 8px;
}

.ranking-box-head{
    border-bottom: 1px solid var(--bs-border);
    padding: 20px 30px;
}

.ranking-box-head h2{
    color: var(--bs-title);
}

.ranking-box-body{
    padding: 30px;
}

.ranking-awards-user-img{
    width: 120px;
    height: 130px;
    object-fit: cover;
    border-radius: 8px;
}

.ranking-awards-user-info{
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
}

.ranking-awards-user-info h6{
    margin-bottom: 5px;
}

.ranking-awards-user-info .user-info-tag{ 
    background: var(--bs-gray-200); 
    border-radius: 8px; 
    padding: 10px 14px;
    gap: 12px;
    margin-top: 20px;
}

.ranking-awards-medal{ 
    width: 100px;
    border-radius: 8px; 
    display: flex;
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    gap: 10px;
    padding: 10px 24px;
    color: #FFFFFF;
}

.ranking-awards-medal-icon{
    width: 40px;
    height: 40px;
}

.ranking-awards-medal.ouro{ 
    background: var(--bs-warning);
}

.ranking-awards-medal.ouro .ranking-awards-medal-icon{
    color: #fbe6ae;
}

.ranking-awards-medal.prata{ 
    background: var(--bs-gray-500);
}

.ranking-awards-medal.prata .ranking-awards-medal-icon{
    color: var(--bs-gray-200);
}

.ranking-awards-medal.bronze{ 
    background: #CD6024;
}

.ranking-awards-medal.bronze .ranking-awards-medal-icon{
    color: #FBC09F;
}

.ranking-table .ranking-box-body .table-responsive{
    border-radius: 8px;
    border: 1px solid var(--bs-border);
}

.ranking-table .ranking-box-body .table th, 
.ranking-table .ranking-box-body .table td{
    background: transparent;
}

.ranking-table .ranking-box-body .table td{
    color: var(--bs-title);
}

.ranking-table-medal.ouro{
    color: var(--bs-warning);
}

.ranking-table-medal.prata{
    color: var(--bs-gray-500);
}

.ranking-table-medal.bronze{
    color: #CD6024;
}

.ranking-table-medal-dot{
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--bs-gray-300);
    display: inline-block;
}

/* Login */
.auth-wrap{
    width: 100%;
    min-height: 100vh;
    display: flex;
    align-items: center;
    background: #FFFFFF;
}

.auth-wrap .row{
    width: 100%;
    margin: 0;
    height: 100vh;
}

.auth-wrap .row>*{
    padding: 0;
}

.auth-form{
    display: inline-grid;
    align-content: space-between;
    height: 100vh;
    padding: 40px 100px 20px 100px;
}

.auth-form .form-label{
    font-weight: 500;
    color: var(--bs-title);
}

.auth-form .form-control{
    height: 44px;
}

.auth-form .btn{
    justify-content: center;
}

.auth-form .btn-primary:focus{
    background: var(--bs-primary);
    border-color: var(--bs-primary);
}

.auth-form .show-pass{
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: var(--bs-gray-600);
}

.auth-right{
    height: 100%;
    padding: 10px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.auth-right-box{
    background: url("../images/bg-login.jpg") no-repeat center center;
    background-color: rgba(0, 0, 0, 0.8);
    background-size: cover;
    color: #fff;
    border-radius: 24px;
    height: 100%;
    padding: 56px;
    position: relative;
    overflow: hidden;
    display: inline-grid;
    flex-direction: column;
    align-content: space-between;

    /* Ensure content is above the overlay */
    position: relative;
    z-index: 2;
}

.auth-right-box h2{
    font-size: 48px;
    line-height: 60px;
}

.auth-right-box p{
    font-size: var(--bs-text-sm);
    opacity: 0.7;
}

.bloqueado{
    position: absolute;
    z-index: 1;
    justify-content: center;
    align-items: center;
    display: flex;
    height: 100% !important;
    background-color: rgba(51, 51, 51, .8);
    border-radius: 5px;
}

/****************************
************ FOOTER **********
*****************************/
.footer{
    text-align: center;
    padding: 20px 0;
    background: #fff;
}

.footer span{
    font-size: var(--bs-text-sm);
    color: var(--bs-title);
}

/****************************
************ MOBILE **********
*****************************/
/* 992 */
@media (max-width: 991.98px){
    /* Card */
    .card-body{
        padding: 20px;
    }

    /* Paddings */
    .p {
        padding: 20px;
    }

    /* Form control */
    .form-switch .form-check-input{
        margin-left: 0 !important;
    }

    /* Modal */
    .modal-header {
        padding: 16px 20px;
    }

    .modal-body {
        padding: 20px;
    }

    .header-nav .header-right .notif-menu{
        width: 300px;
        right: -30px;
    }

    /* Content */
    .page-content{
        padding: 30px 0;
        min-height: auto;
    }

    /* Header */
    .header-main .header-left-menu{
        position: fixed;
        top: 0; 
        left: 0;
        bottom: 0;
        width: 280px;
        background: #fff;
        padding: 16px;
        overflow-y: auto;
        transform: translateX(-100%);
        transition: transform .25s ease;
        z-index: 1050;
        justify-content: start;
    }

    .header-main .header-left-menu .nav-item{
        width: 100%;
    }

    .header-left .navbar-nav .nav-link:hover::before, .header-left .navbar-nav .nav-link.active::before{
        display: none;
    }

    .header-left .nav-item-close {
        display: block;
        color: var(--bs-primary);
        display: flex;
        justify-content: end;
        cursor: pointer;
    }

    .header-left .header-toggle{
        display: block;
    }

    .menu-open .header-left-menu{
        transform: translateX(0);
    }

    .header-left-menu.navbar-nav{
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .header-backdrop{
        display:none;
        position: fixed;
        inset: 0;
        background: rgba(0,0,0, 0.8);
        z-index: 1040;
    }

    .menu-open .header-backdrop{ 
        display: block;
    }

    .header-right .dropdown-menu{
        right: 0 !important;
        left: auto !important;
        max-width: min(92vw, 340px);
    }

    .header-right .notif-menu{
        width: 300px;
        right: -30px;
    }

    /* Jornada */
    .journey .card-body {
        padding: 20px;
        flex-direction: column;
    }

    /* Modulos */
    .course-module-header-info{
        flex-direction: column;
    }

    .course-module-header-info .header-info-text{
        width: 100%;
    }

    /* Aula */
    .lesson-layout {
        gap: 0;
    }

    .lesson-right{
        position: fixed;
        top: 0; 
        right: 0; 
        bottom: 0; 
        z-index: 1055;
        width: min(92vw, 300px); 
        max-width: 92vw;
        background: #fff; 
        display: block;
        transform: translateX(100%); 
        transition: transform .25s ease;
        overflow-y: auto;
        border-radius: 0;
    }

    .lesson-right-close{
        display: flex;
    }

    .lesson-layout.sidebar-open .lesson-right{ 
        transform: translateX(0);
    }

    .sidebar-backdrop {
        position: fixed;
        inset: 0; 
        background: rgba(0,0,0, 0.8); 
        z-index: 1050; 
        display: none;
    }

    .lesson-layout.sidebar-open + .sidebar-backdrop { 
        display: block; 
    }

    .lesson-layout.sidebar-open .lesson-left {
        flex-basis: 100%;
    }

    .lesson-tab .accordion-item{
        border: none;
        border-bottom: 1px solid var(--bs-border);
    }

    .lesson-tab .accordion-item:last-child{
        border-bottom: none;
    }

    .lesson-tab .accordion-icon {
        width: 20px;
        height: 20px;
        margin-right: 8px;
    }

    .lesson-tab .accordion-button{
        color: var(--bs-gray-500);
        font-size: var(--bs-text-sm);
    }

    .lesson-tab .accordion-button:not(.collapsed){
        color: var(--bs-title);
    }

    .lesson-tab .accordion-body p:last-child{
        margin-bottom: 0;
    }

    .lesson-title-buttons {
        gap: 10px;
    }

    .lesson-title-buttons-navegation,
    .lesson-title-buttons-info{
        width: 100%;
    }

    .lesson-title-buttons-navegation .btn,
    .lesson-title-buttons-info .btn{
        width: 100%;
        justify-content: center;
    }

    /* Provas */
    .evidence-actions{
        flex-direction: column;
        gap: 10px;
    }

    .evidence-actions-navegation{
        width: 100%;
    }

    .evidence-actions-navegation .btn,
    .evidence-actions .btn-success{
        width: 100%;
        justify-content: center;
    }

    /* Concluir */
    .conclude-box{
        padding: 20px;
    }

    .conclude-evidence-list-row{
        flex-direction: column;
        gap: 5px;
        align-items: start !important;
    }

    .conclude-actions{
        flex-direction: column;
    }

    .conclude-actions .alert{
        width: 100%;
    }

    .conclude-actions .btn{
        width: 100%;
        justify-content: center;
    }

    /* Ranking */
    .ranking-box-head,
    .ranking-box-body{
        padding: 20px;
    }

    .ranking-awards-medal{
        width: 100%;
    }

    /* Login */
    .auth-form{
        width: 100%;
        padding: 20px 50px;
    }

    .auth-right-col{
        display: none;
    }
}

/* 560px */
@media (max-width: 560px) {
    /* Login */
    .auth-form{
        padding: 20px;
    }
}