:root, [data-bs-theme=light] {
    --falcon-body-font-size: 0.8rem;
}
.form-control, .form-select, .choices .choices__inner, .choices .choices__input--cloned, .choices .choices__list--dropdown .choices__item--selectable, .input-group-text {
    font-size: 0.8rem !important;
    font-weight: normal;
}
.form-label { margin-bottom: 0px; }
.choices .choices__list--dropdown .choices__item--selectable { overflow-x: hidden; white-space: nowrap; }
.choices__list--single .choices__item { width: 95%; overflow-x: clip; }
.choices__item::after { display: none !important; }
.choices__inner { overflow-x: hidden; text-overflow: ellipsis; white-space: nowrap; }
.form-text { font-size: 85%; }
  
@media (min-width: 1200px) {
    h4, .h4 {
        font-size: 1.14rem;
    }
}

.modal h1, .modal .h1 {
    font-size: 1.35rem;
}
.modal h2, .modal .h2 {
    font-size: 1.25rem;
}
.modal h3, .modal .h3 {
    font-size: 1.2rem;
}
.modal h4, .modal .h4 {
    font-size: 1.1rem;
}
.modal h5, .modal .h5 {
    font-size: 1.05rem;
}
.modal h6, .modal .h6 {
    font-size: 1rem;
}

.btn, .falcon-data-table .paging_full_numbers .page-link, .falcon-data-table .paging_first_last_numbers .page-link, .falcon-data-table .paging_full .page-link, .falcon-data-table .paging_numbers .page-link, .falcon-data-table .paging_simple_numbers .page-link, [data-list] .page, .table-list .page, .tox .tox-menu__footer .tox-button:last-child, .tox .tox-dialog__footer .tox-button:last-child, .tox .tox-menu__footer .tox-button--secondary, .tox .tox-dialog__footer .tox-button--secondary {
    --falcon-btn-font-size: 0.8rem;
}

:root {
    --bs-primary: #2979ff;
    --bs-primary-rgb: 41, 121, 255;
  
    /* Se quiser, ajuste também tons derivados: */
    --bs-primary-bg-subtle: #e3f2fd;
    --bs-primary-border-subtle: #90caf9;
    --bs-primary-text-emphasis: #0d47a1;
}
  
/* Sobrescreve botões e outros elementos com classe .btn-primary */
.btn-primary {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
}
  
.btn-primary:hover, .btn-primary:focus {
    background-color: #1565c0 !important;
    border-color: #0d47a1 !important;
}

.form-text { color: #8994A3; }

.flatpickr-calendar { font-size: 13px; }

/* Overlay de fundo (cobre a tela inteira e centraliza o spinner) */
#spinner-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5); /* Fundo escuro semi-transparente */
    display: flex;
    justify-content: center; /* 🔥 Centraliza horizontalmente */
    align-items: center; /* 🔥 Centraliza verticalmente */
    z-index: 9999;
    display: none; /* Oculto por padrão */
}

/* Estiliza o spinner (animação de carregamento) */
.spinner {
    width: 50px;
    height: 50px;
    border: 5px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

/* Animação do Spinner */
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Menu de filtros */
.offcanvas-filter .offcanvas-body { padding: 0; }
.offcanvas-filter .accordion-item, .offcanvas-filter .accordion-button, .offcanvas-filter .accordion-button:not(.collapsed) { background-color: inherit; box-shadow: none; color: #6C757D; font-size: 0.9rem; }
.offcanvas-filter .accordion-item:first-of-type, .offcanvas-filter .accordion-item:first-of-type .accordion-button { border-radius: 0; }
.offcanvas-filter .action { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1030; position: relative; padding: 20px; }

/* Notificações */
.notification-alert { top: 0; left: 0; width: 100%; z-index: 90000; cursor: pointer; display: none; position: fixed; }

/* Validação de formulários */
.is-invalid input, .is-invalid select, .is-invalid textarea {
    border-color: var(--falcon-form-invalid-border-color);
    padding-right: calc(1.5em + 0.625rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e63757'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e63757' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.15625rem) center;
    background-size: calc(0.75em + 0.3125rem) calc(0.75em + 0.3125rem);
}
.is-invalid .invalid-feedback { display: block !important; }

/* Paginação */
.page-item { min-width: 30px; text-align: center; }

/* Planos */
.active-plan { border: 2px solid #04A763; }
.active-legend {
    position: absolute;
    display: none;
    top: 0;
    left: 0;
    width: 100%;
    line-height: 24px;
    background-color: #04A763;
    color: #FFF;
}
.active-plan .btn-plan { display: none !important; }
.active-plan .active-legend { display: block; }

/* Passos */
.account-steps { position: relative; overflow: hidden; }
.account-steps .step-number { position: absolute; top: -15px; left: 5px; color: #3db1e2; opacity: 0.7; font-size: 50px; font-weight: bolder; }
.account-steps p { padding-left: 50px; line-height: 20px; }

.detail-steps { display: none; }

/* Central de ajuda */
.offcanvas-help { background-color: #F7FFB0; }
.offcanvas-help img { max-width: 100%; }
.offcanvas-help .offcanvas-header { border-bottom: 1px solid #E8F383; }
.offcanvas-help .offcanvas-body { font-size: 0.75rem; }
.offcanvas-help .action { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1030; position: relative; padding: 20px; border-top: 1px solid #E8F383; }

/* Video da ajuda */
.video-help { position: relative; width: 100%; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.video-help iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
