/*-----------------------------------------------------------------------------------------------*/
/* Configuracoes gerais
/*-----------------------------------------------------------------------------------------------*/
body {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
/* debug de componentes! */
body.debug *, 
body.debug ::before,
body.debug ::after {
    outline: 1px solid red;
}
/* marcador para obter o breakpoint atual */
.breakpoint-reader {
    visibility: hidden;
    max-height: 0;
    max-width: 0;
}
.breakpoint-reader::before {
    content: 'xs';
    display: none;
    visibility: hidden;
}
@media screen and (min-width:576px) {
    .breakpoint-reader::before {
        content: 'sm';
    }
}
@media screen and (min-width:768px) {
    .breakpoint-reader::before {
        content: 'md';
    }
}
@media screen and (min-width:992px) {
    .breakpoint-reader::before {
        content: 'lg';
    }
}
@media screen and (min-width:1200px) {
    .breakpoint-reader::before {
        content: 'xl';
    }
}
@media screen and (min-width:1400px) {
    .breakpoint-reader::before {
        content: 'xxl';
    }
}
fieldset {
    padding: 12px;
    margin-bottom: 1rem;
    border: 1px solid #ececec;
    border-radius: 0.275rem;
    background-color: rgba(var(--bs-secondary-bg-rgb), 0.45);
}
.text-justify {
    text-align: justify !important;
}
.badge-chip {
    position: relative;
    bottom: 2px;
    font-weight: 700;
    font-size: 0.625em;
    white-space: nowrap;
    text-transform: uppercase;
    padding: .4em .7em;
    border-radius: .45rem;
    color: var(--bs-primary);
    background-color: var(--bs-primary-bg-subtle);
}
.buttons-separator {
    border-left: 1px solid #d8e2ef;
}
.buttons-separator:first-child,
.buttons-separator:last-child {
    display: none;
}
/* mobile */
@media screen and (max-width:575px) {
    .buttons-separator {
        visibility: hidden;
    }
}

/*-----------------------------------------------------------------------------------------------*/
/* Loading control
/*-----------------------------------------------------------------------------------------------*/
.wait-load {
    opacity: 0;
}
.wait-load.loaded {
    opacity: 1;
}

/*-----------------------------------------------------------------------------------------------*/
/* Attention dot
/*-----------------------------------------------------------------------------------------------*/
@keyframes ping {
    75%,to {
        content: '';
        transform: scale(var(--intensity));
        opacity: 0
    }
}
@keyframes ping-delay-3s {
    0% {
        visibility: hidden;
    }
    66% {
        visibility: visible;
    }
}
@keyframes ping-delay-5s {
    0% {
        visibility: hidden;
    }
    83.35% {
        visibility: visible;
    }
}
.attention-dot {
    --size: 8px;
    --color: red;
    --pulse: white;
    --intensity: 2;
    --top: 0;
    --right: 0;
    --left: unset;
    --bottom: unset;
}
.attention-dot.attention-dot-sm {
    --size: 6px;
    --intensity: 3;
}
.attention-dot.attention-dot-lg {
    --size: 12px;
}
.attention-dot::before,
.attention-dot::after {
    content: '';
    position: absolute;
    top: var(--top);
    right: var(--right);
    left: var(--left);
    bottom: var(--bottom);
    width: var(--size);
    height: var(--size);
    border-radius: 9999px;
}
.attention-dot::before {
    opacity: .5;
    background-color: var(--pulse);
    animation: ping 1s cubic-bezier(0,0,.2,1) infinite;
}
.attention-dot.delayed-3s::before {
    animation: ping 1s cubic-bezier(0,0,.2,1) infinite, ping-delay-3s 3s steps(1) infinite;
}
.attention-dot.delayed-5s::before {
    animation: ping 1s cubic-bezier(0,0,.2,1) infinite, ping-delay-5s 5s steps(1) infinite;
}
.attention-dot::after {
    background-color: var(--color);
}

/*-----------------------------------------------------------------------------------------------*/
/* Animacao de icone pulsante
/*-----------------------------------------------------------------------------------------------*/
@-webkit-keyframes animation-pulse {
    0% {
        -webkit-transform: scale(0.1, 0.1);
        opacity: 0;
    }
    60% {
        -webkit-transform: scale(0.1, 0.1);
        opacity: 0;
    }
    65% {
        opacity: 1;
    }
    100% {
        -webkit-transform: scale(1.2, 1.2);
        opacity: 0;
    }
}
@keyframes animation-pulse {
    0% {
        -webkit-transform: scale(0.1, 0.1);
        opacity: 0;
    }
    60% {
        -webkit-transform: scale(0.1, 0.1);
        opacity: 0;
    }
    65% {
        opacity: 1;
    }
    100% {
        -webkit-transform: scale(1.2, 1.2);
        opacity: 0;
    }
}

/*-----------------------------------------------------------------------------------------------*/
/* Animacao de destaque em hover (avatar)
/*-----------------------------------------------------------------------------------------------*/
.hover-ring {
    --ring-width: 0.125rem;
    --ring-offset: 0;
    --ring-color: transparent;

    --transition-duration: 0.35s;
    --transition-timing: ease;

    outline: var(--ring-width) solid;
    outline-color: var(--ring-color);
    outline-offset: var(--ring-offset);
    transition: outline var(--transition-duration) var(--transition-timing), outline-offset var(--transition-duration) var(--transition-timing), transform var(--transition-duration) var(--transition-timing);
}
.hover-ring:hover {
    --ring-offset: 0.2125rem;
    --ring-color: rgba(var(--bs-primary-rgb), 0.6);
}

/*-----------------------------------------------------------------------------------------------*/
/* Animacao de carregamento
/*-----------------------------------------------------------------------------------------------*/
.app-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--loader-bg, white);
}
.app-loader .spinner {
    height: 42px;
    width: 42px;
    border: 4px solid var(--spinner-color, black);
    border-top-color: var(--spinner-color2, gray);
    border-radius: 50%;
    animation: rotation .6s infinite linear;
}
.app-loader.loaded {
    display: none
}
.app-loader.loaded .spinner {
    animation: none
}
@keyframes rotation {
    from {
        transform: rotate(0)
    }
    to {
        transform: rotate(359deg)
    }
}

/*-----------------------------------------------------------------------------------------------*/
/* Toastr
/*-----------------------------------------------------------------------------------------------*/
#toast-container>div {
    opacity: .85;
    padding: 15px;
    border: none !important;
    border-radius: 0.45rem;
    box-shadow: none !important;
    width: 350px;
}
#toast-container>.toast-error {
    background-color: #ed5f4b;
    background-image: none !important;
}
#toast-container>.toast-info {
    background-color: #0384e3;
    background-image: none !important;
}
#toast-container>.toast-warning {
    background-color: #ffbb00;
    background-image: none !important;
}
#toast-container>.toast-success {
    background-color: #56bb77;
    background-image: none !important;
}
.toast-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    margin-right: 10px;
    background-position: center;
    background-repeat: no-repeat;
}
.toast-error .toast-icon {
    background-image: url(data:image/svg+xml;base64,ICAgICAgPHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2sxIj4KICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0iMjAiIHI9IjE4IiBmaWxsPSJ3aGl0ZSIvPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTI2IDE0TDE0IDI2IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0IDE0TDI2IDI2IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgPC9kZWZzPgogICAgICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0iMjAiIHI9IjE4IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAuMjUiIG1hc2s9InVybCgjbWFzazEpIi8+CiAgICAgIDwvc3ZnPg==);
}
.toast-info .toast-icon {
    background-image: url(data:image/svg+xml;base64,ICAgICAgICA8c3ZnIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIj4KICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICA8bWFzayBpZD0ibWFzay1pbmZvIj4KICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjIwIiByPSIxOCIgZmlsbD0id2hpdGUiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPSJibGFjayIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTkuMjIgMTEuNTNjMC0wLjM0IDAuMDYtMC42NSAwLjE4LTAuOTQgMC4xMi0wLjI5IDAuMy0wLjU1IDAuNTQtMC43OCAwLjI0LTAuMjMgMC41LTAuNDEgMC43OC0wLjUzIDAuMjgtMC4xMiAwLjU5LTAuMTggMC45Mi0wLjE4IDAuMzMgMCAwLjYzIDAuMDYgMC45MiAwLjE4IDAuMjggMC4xMiAwLjU0IDAuMyAwLjc4IDAuNTMgMC4yNCAwLjIzIDAuNDEgMC41IDAuNTMgMC43OCAwLjEyIDAuMjkgMC4xOCAwLjYgMC4xOCAwLjk0IDAgMC4zMy0wLjA2IDAuNjMtMC4xOCAwLjkyLTAuMTIgMC4yOC0wLjI5IDAuNTQtMC41MyAwLjc4LTAuMjQgMC4yNC0wLjUgMC40MS0wLjc4IDAuNTMtMC4yOCAwLjEyLTAuNTkgMC4xOC0wLjkyIDAuMTgtMC4zMyAwLTAuNjQtMC4wNi0wLjkyLTAuMTgtMC4yOC0wLjEyLTAuNTQtMC4yOS0wLjc4LTAuNTMtMC4yNC0wLjI0LTAuNDItMC41LTAuNTQtMC43OC0wLjEyLTAuMjktMC4xOC0wLjU5LTAuMTgtMC45MnptMS4wNCAxNS43N2MtMC4wOSAwLjMyLTAuMjcgMC45NSAwLjI2IDAuOTUgMC4xMSAwIDAuMjktMC4wNyAwLjQ3LTAuMTkgMC4yLTAuMTQgMC40NC0wLjM1IDAuNy0wLjY0IDAuMjctMC4yOSAwLjU2LTAuNjQgMC44Ni0xLjA0IDAuMy0wLjQgMC42MS0wLjg2IDAuOTQtMS4zNyAwLjA2LTAuMDkgMC4xMy0wLjExIDAuMi0wLjA0bDEuMTEgMC44MmMwLjA1IDAuMDQgMC4wNyAwLjExIDAuMDMgMC4xNy0wLjUxIDAuODktMS4wMyAxLjY3LTEuNTUgMi4zNC0wLjUzIDAuNjctMS4wNiAxLjIzLTEuNiAxLjY3bC0wLjAxIDAuMDFjLTAuNTQgMC40NC0xLjEgMC43Ny0xLjY3IDEtMS41OSAwLjYyLTQuMSAwLjUyLTQuODItMS4zNC0wLjQ1LTEuMTctMC4wOC0yLjUgMC4yOC0zLjY2bDEuOC01LjQ5YzAuMTItMC40MiAwLjI2LTAuODcgMC4zMi0xLjMgMC4wOS0wLjcyLTAuMjMtMS4xOC0wLjgyLTEuMThoLTEuN2MtMC4wOCAwLTAuMTUtMC4wNy0wLjE1LTAuMTVsMC4wMS0wLjA1IDAuNDQtMS41MmMwLjAxLTAuMDUgMC4wNi0wLjA4IDAuMS0wLjA3bDguMTMtMC4yNmMwLjA2IDAgMC4xIDAuMDUgMC4wOSAwLjExbC0wLjAxIDAuMDQtMy40NCAxMS4zOHoiLz4KICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgPC9kZWZzPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjIwIiByPSIxOCIgZmlsbD0iI2ZmZiIgZmlsbC1vcGFjaXR5PSIwLjI1IiBtYXNrPSJ1cmwoI21hc2staW5mbykiLz4KICAgICAgICA8L3N2Zz4K);
}
.toast-warning .toast-icon {
    background-image: url(data:image/svg+xml;base64,ICAgICAgPHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2std2FybmluZyI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjIwIiByPSIxOCIgZmlsbD0id2hpdGUiLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCAxMlYyMiIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0iMjkiIHI9IjIuNzUiIGZpbGw9ImJsYWNrIi8+CiAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICA8L2RlZnM+CiAgICAgICAgPGNpcmNsZSBjeD0iMjAiIGN5PSIyMCIgcj0iMTgiIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iMC4yNSIgbWFzaz0idXJsKCNtYXNrLXdhcm5pbmcpIi8+CiAgICAgIDwvc3ZnPgo=);    
}
.toast-success .toast-icon {
    background-image: url(data:image/svg+xml;base64,ICAgICAgPHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stc3VjY2VzcyI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjIwIiByPSIxOCIgZmlsbD0id2hpdGUiLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMyAyMUwxOCAyNkwyNyAxNSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9tYXNrPgogICAgICAgIDwvZGVmcz4KICAgICAgICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjIwIiByPSIxOCIgZmlsbD0iI2ZmZiIgZmlsbC1vcGFjaXR5PSIwLjI1IiBtYXNrPSJ1cmwoI21hc2stc3VjY2VzcykiLz4KICAgICAgPC9zdmc+Cg==);
}
.toast-title {
    font-size: 15px;
    font-weight: 600;
}
.toast-message {
    font-size: 14px;
    line-height: 20px;
    width: 100%;
}
.toast-position {
    top: 12px;
    right: 12px;
}
.toast-close-button {
    font-weight: 500;
    text-shadow: none !important;
}
.toast-details {
    padding-block: 12px !important;
}
.toast-details-button {
    position: absolute;
    top: 7px;
    right: 28px;
    min-width: 0 !important;
    font-size: 10px;
    font-weight: 600;
    color: white !important;
    background-color: transparent!important;
    padding: 0.15rem 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    border-radius: .5rem;
    box-shadow: none;
    text-transform: lowercase;
    text-decoration: none;
}
.toast-details-button:hover {
    color: white !important;
    background-color: rgba(255, 255, 255, 0.4) !important;
    border-color: rgba(255, 255, 255, 0.5) !important;
}
.toast-details-message {
    font-size: 0.8rem;
    font-style: italic;
    padding: 0.25rem 0.5rem;
    margin-top: 0.5rem;
    border-radius: 0.25rem;
    border: 1px solid rgba(255, 255, 255, 0.35);
}
/* mobile */
@media screen and (max-width: 480px) {
    #toast-container > div {
        padding: 8px !important;
        width: 300px !important;
    }
}
@media screen and (max-width:575px) {
    .toast-position {
        top: 0.5rem;
        right: 0.5rem;
    }
}

/*-----------------------------------------------------------------------------------------------*/
/* Swal2
/*-----------------------------------------------------------------------------------------------*/
div:where(.swal2-container).swal2-backdrop-show, 
div:where(.swal2-container).swal2-noanimation {
    background: rgba(0, 0, 0, 0.65);
}

/*-----------------------------------------------------------------------------------------------*/
/* Scrollbars
/*-----------------------------------------------------------------------------------------------*/
[data-scrollbars] {
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,0.2) transparent;
}
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
    background-color: transparent;
}
::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.2);
    border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover{
    background: rgba(85, 85, 85, 0.85);
}
::-webkit-scrollbar-corner {
    background-color: transparent;
    -webkit-box-shadow: none;
    box-shadow: none;
}
/* esconde scrollbars */
[data-no-scrollbars] {
    -ms-overflow-style: none;
    scrollbar-width: none;
}
[data-no-scrollbars]::-webkit-scrollbar {
    display: none;
}

/*-----------------------------------------------------------------------------------------------*/
/* Scroll to top
/*-----------------------------------------------------------------------------------------------*/
.app-scroll-top {
    position: fixed;
    right: 1.875rem;
    bottom: 1.875rem;
    width: 2.5rem;
    height: 2.5rem;
    visibility: hidden;
    transform: scale(0);
    transition: transform 195ms cubic-bezier(0.4, 0, 0.2, 1);
}
.app-scroll-top.visible {
    transition: transform 225ms cubic-bezier(0.4, 0, 0.2, 1);
    transform: none;
    visibility: unset;
}
.app-scroll-top > a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    color: var(--scroll-top-color, white);
    background: var(--scroll-top-bg, dimgray);
    opacity: 0.4;
    transition: all .15s ease-in-out;
}
.app-scroll-top > a:hover {
    opacity: 1;
}
/* mobile */
@media screen and (max-width:575px) {
    .app-scroll-top {
        bottom: 2.5rem;
        right: 2.5rem;
    }
}

/*-----------------------------------------------------------------------------------------------*/
/* Crispy forms
/*-----------------------------------------------------------------------------------------------*/
/* hide field errors box */
div.alert.alert-block.alert-danger {
    display: none;
}
.requiredField .asteriskField {
    margin-left: 2px;
    color: indianred;
}

/*-----------------------------------------------------------------------------------------------*/
/* Date/time picker (tempus dominus)
/*-----------------------------------------------------------------------------------------------*/
.tempus-dominus-widget,
.tempus-dominus-widget.light {
    /* --border-radius: .475rem; */
    --tdw-border-radius: .32rem;
    --tdw-color: var(--bs-primary);
    --tdw-day-old-color: rgba(0, 0, 0, 0.5);
    --tdw-day-new-color: rgba(0, 0, 0, 0.5);
    --tdw-day-disabled-color: rgba(0, 0, 0, 0.18);
    --tdw-hover-bg: rgba(var(--bs-primary-rgb), 0.1);
    --tdw-today-bg: rgba(var(--bs-primary-rgb), 0.1);
    --tdw-today-maker: var(--bs-primary);
    --tdw-weekend-color:  rgba(255, 0, 0, 0.85);
    --tdw-toolbar-top-border-color: rgba(0, 0, 0, 0.095);
    --tdw-button-bg: var(--bs-primary);
    --tdw-button-color: rgba(255, 255, 255, 1.0);
    --tdw-button-border-color: var(--tdw-button-bg);

    padding: 1rem .5rem 4px .5rem;
    width: 280px !important;
    box-shadow: var(--bs-box-shadow) !important;
    border-radius: var(--tdw-border-radius);
}
/* dark mode */
.tempus-dominus-widget.dark {
    --tdw-color: var(--td-dark-font-color);
    --tdw-day-old-color: var(--td-dark-alternate-color);
    --tdw-day-new-color: var(--td-dark-alternate-color);
    --tdw-hover-bg: rgba(255, 255, 255, 0.1);
    --tdw-today-bg: rgba(255, 255, 255, 0.1);
    --tdw-today-maker: rgba(255, 255, 255, 0.9);
    --tdw-toolbar-top-border-color: rgba(255, 255, 255, 0.2);
    --tdw-button-bg: rgba(255, 255, 255, 0.4);
    --tdw-button-color: rgba(255, 255, 255, 1.0);
}

.tempus-dominus-widget .calendar-header .previous,
.tempus-dominus-widget .calendar-header .next,
.tempus-dominus-widget .time-container .time-container-clock div[data-action='incrementHours'],
.tempus-dominus-widget .time-container .time-container-clock div[data-action='incrementMinutes'],
.tempus-dominus-widget .time-container .time-container-clock div[data-action='incrementSeconds'],
.tempus-dominus-widget .time-container .time-container-clock div[data-action='decrementHours'],
.tempus-dominus-widget .time-container .time-container-clock div[data-action='decrementMinutes'],
.tempus-dominus-widget .time-container .time-container-clock div[data-action='decrementSeconds'] {
    font-size: 0.85rem;
    opacity: 0.5;
    color: var(--tdw-color) !important;
}
.tempus-dominus-widget .calendar-header .previous:hover,
.tempus-dominus-widget .calendar-header .next:hover,
.tempus-dominus-widget .time-container .time-container-clock div[data-action='incrementHours']:hover,
.tempus-dominus-widget .time-container .time-container-clock div[data-action='incrementMinutes']:hover,
.tempus-dominus-widget .time-container .time-container-clock div[data-action='incrementSeconds']:hover,
.tempus-dominus-widget .time-container .time-container-clock div[data-action='decrementHours']:hover,
.tempus-dominus-widget .time-container .time-container-clock div[data-action='decrementMinutes']:hover,
.tempus-dominus-widget .time-container .time-container-clock div[data-action='decrementSeconds']:hover {
    opacity: 1.0;
}
.tempus-dominus-widget .calendar-header .picker-switch:hover {
    color: var(--tdw-color);
}
.tempus-dominus-widget .toolbar {
    padding-top: 4px;
    color: var(--tdw-color);
    border-top: 1px solid var(--tdw-toolbar-top-border-color);
    grid-auto-rows: 32px;
}
.tempus-dominus-widget .toolbar:empty {
    display: none;
}
.tempus-dominus-widget .date-container-days .day.old {
    --td-alternate-color: var(--tdw-day-old-color);
}
.tempus-dominus-widget .date-container-days .day.new {
    --td-alternate-color: var(--tdw-day-new-color);
}
.tempus-dominus-widget .date-container-days .day.disabled {
    --td-disabled-color: var(--tdw-day-disabled-color);
}
.tempus-dominus-widget .date-container-days,
.tempus-dominus-widget .date-container-months,
.tempus-dominus-widget .date-container-years {
    grid-auto-rows: 36px;
}
.tempus-dominus-widget .toolbar div,
.tempus-dominus-widget .time-container .time-container-clock div,
.tempus-dominus-widget .time-container .time-container-hour div,
.tempus-dominus-widget .time-container .time-container-minute div,
.tempus-dominus-widget .time-container .time-container-second div,
.tempus-dominus-widget .date-container-days .day,
.tempus-dominus-widget .date-container-months .month,
.tempus-dominus-widget .date-container-years .year {
    border-radius: var(--tdw-border-radius) !important;
}
.tempus-dominus-widget button {
    color: var(--tdw-button-color) !important;
    background-color: var(--tdw-button-bg) !important;
    border-color: var(--tdw-button-border-color) !important;
}
.tempus-dominus-widget .time-container .separator {
    border: 0 !important;
}
.tempus-dominus-widget .toolbar div:hover,
.tempus-dominus-widget .date-container-days div:not(.no-highlight):hover,
.tempus-dominus-widget .date-container-decades div:not(.no-highlight):hover,
.tempus-dominus-widget .date-container-months div:not(.no-highlight):hover,
.tempus-dominus-widget .date-container-years div:not(.no-highlight):hover,
.tempus-dominus-widget .time-container-clock div:not(.no-highlight):hover,
.tempus-dominus-widget .time-container-hour div:not(.no-highlight):hover,
.tempus-dominus-widget .time-container-minute div:not(.no-highlight):hover,
.tempus-dominus-widget .time-container-second div:not(.no-highlight):hover {
    background-color: var(--tdw-hover-bg) !important;
}
.tempus-dominus-widget .date-container-days div:not(.no-highlight).today,
.tempus-dominus-widget .date-container-decades div:not(.no-highlight).today,
.tempus-dominus-widget .date-container-months div:not(.no-highlight).today,
.tempus-dominus-widget .date-container-years div:not(.no-highlight).today,
.tempus-dominus-widget .time-container-clock div:not(.no-highlight).today,
.tempus-dominus-widget .time-container-hour div:not(.no-highlight).today,
.tempus-dominus-widget .time-container-minute div:not(.no-highlight).today, 
.tempus-dominus-widget .time-container-second div:not(.no-highlight).today {
    background-color: var(--tdw-today-bg) !important;
}
.tempus-dominus-widget .date-container-days div:not(.no-highlight).today:before,
.tempus-dominus-widget .date-container-decades div:not(.no-highlight).today:before,
.tempus-dominus-widget .date-container-months div:not(.no-highlight).today:before,
.tempus-dominus-widget .date-container-years div:not(.no-highlight).today:before,
.tempus-dominus-widget .time-container-clock div:not(.no-highlight).today:before,
.tempus-dominus-widget .time-container-hour div:not(.no-highlight).today:before,
.tempus-dominus-widget .time-container-minute div:not(.no-highlight).today:before,
.tempus-dominus-widget .time-container-second div:not(.no-highlight).today:before {
    bottom: 4px;
    right: 4px;
    border-bottom-color: var(--tdw-today-maker) !important;
}
.tempus-dominus-widget .date-container-days div:not(.no-highlight).active,
.tempus-dominus-widget .date-container-decades div:not(.no-highlight).active,
.tempus-dominus-widget .date-container-months div:not(.no-highlight).active,
.tempus-dominus-widget .date-container-years div:not(.no-highlight).active,
.tempus-dominus-widget .time-container-clock div:not(.no-highlight).active,
.tempus-dominus-widget .time-container-hour div:not(.no-highlight).active,
.tempus-dominus-widget .time-container-minute div:not(.no-highlight).active,
.tempus-dominus-widget .time-container-second div:not(.no-highlight).active {
    /* background-color: var(--bs-primary); */
    color: var(--tdw-button-color) !important;
    background-color: var(--tdw-button-bg) !important;
    border-color: var(--tdw-button-border-color) !important;
    font-weight: 600;
}
/* weekend */
.tempus-dominus-widget .date-container-days .dow:nth-child(1),
.tempus-dominus-widget .date-container-days .dow:nth-child(7) {
    color: var(--tdw-weekend-color);
}

/*-----------------------------------------------------------------------------------------------*/
/* Select2
/*-----------------------------------------------------------------------------------------------*/
.select2-container {
    --font-size: var(--bs-export-input-font-size);
    --padding-y: var(--bs-export-padding-y);
    --padding-x: var(--bs-export-padding-x);
    --border-radius: var(--bs-export-input-border-radius);
}
.form-select-sm ~ .select2-container {
    --font-size: var(--bs-export-input-font-size-sm);
    --padding-y: var(--bs-export-padding-y-sm);
    --padding-x: var(--bs-export-padding-x-sm);
    --border-radius: var(--bs-export-input-border-radius-sm);
}
.form-select-lg ~ .select2-container {
    --font-size: var(--bs-export-input-font-size-lg);
    --padding-y: var(--bs-export-padding-y-lg);
    --padding-x: var(--bs-export-padding-x-lg);
    --border-radius: var(--bs-export-input-border-radius-lg);
}
.select2-container .select2-selection {
    min-height: 0 !important;
    height: unset !important;
    font-size: var(--font-size) !important;
    padding: var(--padding-y) var(--bs-export-form-select-indicator-padding) var(--padding-y) var(--padding-x) !important;
    background-color: var(--bs-export-input-bg);
    box-shadow: var(--bs-export-input-box-shadown);
    border: var(--bs-border-width) solid var(--bs-export-input-border-color) !important;
    border-radius: var(--border-radius) !important;
    transition: var(--bs-export-input-transition);
}
.select2-container.select2-container--open .select2-selection,
.select2-container.select2-container--focus .select2-selection {
    outline: 0;
    box-shadow: none;
}
.select2-container .select2-dropdown {
    color: var(--bs-export-input-color);
    background-color: var(--bs-export-input-bg);
    border-color: var(--bs-export-input-border-color);
    border-radius: var(--border-radius);
}
.select2-container .select2-selection .select2-selection__rendered,
.select2-container .select2-selection .select2-selection__rendered .select2-selection__placeholder,
.select2-container .select2-dropdown .select2-results__options .select2-results__option,
.select2-container .select2-dropdown .select2-search .select2-search__field {
    color: var(--bs-export-input-color);
    font-size: var(--font-size);
    font-weight: var(--bs-export-input-font-weight);
    line-height: var(--bs-export-input-line-height);
}
.select2-container .select2-dropdown .select2-search .select2-search__field {
    box-shadow: none;
    background-color: var(--bs-export-input-bg);
    border-color: var(--bs-export-input-border-color);
}
.select2-container .select2-dropdown .select2-search .select2-search__field:focus {
    border-color: var(--bs-export-input-focus-border-color);
    box-shadow: var(--bs-export-input-focus-box-shadow);
}
select+.select2-container--bootstrap-5 {
    z-index: unset !important;
}
.select2-container.select2-container--disabled .select2-selection,
.select2-container.select2-container--disabled.select2-container--focus .select2-selection {
    cursor: default;
    color: var(--bs-export-input-disabled-color);
    background-color: var(--bs-export-input-disabled-bg);
    border-color: var(--bs-export-input-disabled-border-color);
}
.select2-container.select2-container--disabled .select2-selection button.select2-selection__clear {
    display: none;
}
.select2-container .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected, 
.select2-container .select2-dropdown .select2-results__options .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted) {
    background-color: rgba(var(--bs-primary-rgb), 0.6);
}

/*-----------------------------------------------------------------------------------------------*/
/* Bootstrap-select
/*-----------------------------------------------------------------------------------------------*/
.bootstrap-select.form-control {
    --padding-y: var(--bs-export-padding-y);
    --padding-x: var(--bs-export-padding-x);
    --font-size: var(--bs-export-input-font-size);
    --border-color: var(--bs-border-color);
    --border-radius: var(--bs-export-input-border-radius);
}
.bootstrap-select.form-control.form-control-sm {
    --padding-y: var(--bs-export-padding-y-sm);
    --padding-x: var(--bs-export-padding-x-sm);
    --font-size: var(--bs-export-input-font-size-sm);
    --border-radius: var(--bs-export-input-border-radius-sm);
}
.bootstrap-select.form-control.form-control-lg {
    --padding-y: var(--bs-export-padding-y-lg);
    --padding-x: var(--bs-export-padding-x-lg);
    --font-size: var(--bs-export-input-font-size-lg);
    --border-radius: var(--bs-export-input-border-radius-lg);
}
.bootstrap-select.form-control.is-invalid {
    --border-color: var(--bs-form-invalid-border-color);
}
.bootstrap-select.form-control.is-valid {
    --border-color: var(--bs-form-valid-border-color);
}
.bootstrap-select.form-control button.dropdown-toggle {
    color: unset;
    cursor: default;
    background-color: unset;
    padding: var(--padding-y) var(--padding-x);
    
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px 12px;

    border: var(--bs-border-width) solid var(--border-color);
    border-radius: var(--border-radius);
}
.bootstrap-select.form-control.is-invalid button.dropdown-toggle,
.bootstrap-select.form-control.is-valid button.dropdown-toggle {
    background-position: right 30px center;
}
.bootstrap-select > .dropdown-toggle:after {
    content: none;
}
.bootstrap-select > .dropdown-toggle.show {
    box-shadow: var(--bs-export-input-focus-box-shadow);
    border-color: var(--bs-export-input-focus-border-color) !important;
}
.bootstrap-select.live-search > .dropdown-toggle.show {
    box-shadow: none !important;
    border: var(--bs-border-width) solid var(--bs-border-color) !important;
}
.bootstrap-select > .dropdown-toggle:hover,
.bootstrap-select > .dropdown-toggle:focus,
.bootstrap-select > .dropdown-toggle:active {
    color: unset !important;
    background-color: unset !important;
}
.bootstrap-select > .dropdown-toggle.btn-light:hover {
    border-width: var(--bs-border-width) !important;
    border-color: var(--bs-border-color) !important;
    background-color: rgba(0,0,0,0.1) !important;
}
.bootstrap-select > .dropdown-toggle:not(.show):active {
    box-shadow: none;
}
.bootstrap-select .dropdown-toggle:focus,
.bootstrap-select > select.mobile-device:focus+.dropdown-toggle {
    outline: none !important;
}
.bootstrap-select .dropdown-toggle .filter-option {
    padding-right: calc(var(--bs-export-form-select-indicator-padding) - var(--padding-x));
}
.bootstrap-select .dropdown-toggle .filter-option-inner-inner {
    text-overflow: ellipsis;
}
.bootstrap-select > select {
    display: none !important;
}
.bootstrap-select > .dropdown-menu {
    max-width: 100%;
}
.bootstrap-select .dropdown-menu.inner {
    font-size: var(--font-size);
}
.bootstrap-select .dropdown-menu.inner li a span.text {
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.bootstrap-select .dropdown-menu.inner li.selected a.dropdown-item.selected {
    color: var(--bs-dropdown-link-active-color);
    background-color: var(--bs-dropdown-link-active-bg);
}
.bootstrap-select .bs-ok-default:after {
    border-width: 0 .2em .2em 0;
}
.bootstrap-select .bs-searchbox > input[type="search"] {
    margin-bottom: 4px;
}
.bootstrap-select .dropdown-toggle .bs-select-clear-selected {
    margin-right: 22px;
    transform: scale(1.25) translateY(1px);
}
.bootstrap-select.form-control.is-invalid .dropdown-toggle .bs-select-clear-selected,
.bootstrap-select.form-control.is-valid .dropdown-toggle .bs-select-clear-selected {
    margin-right: 40px;
}
.bootstrap-select .dropdown-toggle .bs-select-clear-selected span {
    cursor: pointer;
    pointer-events: all;
}
.bootstrap-select.disabled, 
.bootstrap-select>.disabled {
    cursor: default;
}
.bootstrap-select.form-control.disabled button.dropdown-toggle {
    opacity: 1;
    background-color: var(--bs-export-input-disabled-bg);
}
.bootstrap-select.form-control.disabled button.dropdown-toggle .bs-select-clear-selected {
    display: none;
}

/*-----------------------------------------------------------------------------------------------*/
/* Bootstrap-duallistbox
/*-----------------------------------------------------------------------------------------------*/
.bootstrap-duallistbox-container label {
    font-size: 0.7rem;
    font-style: italic;
    margin-bottom: 0.25rem;
}
.bootstrap-duallistbox-container label::before {
    content: '-';
    margin-right: 0.15rem;
}
.bootstrap-duallistbox-container input.filter {
    height: unset;
}
.bootstrap-duallistbox-container input.filter::-webkit-search-cancel-button {
    -webkit-appearance: none;
    height: 1.1em;
    width: 1.1em;
    /* background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"/></svg>') no-repeat 50% 50%; */
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"/></svg>') no-repeat 50% 50%;
    background-size: contain;
    opacity: 0;
    pointer-events: none;
    margin-right: 3px;
}
.bootstrap-duallistbox-container input.filter:focus::-webkit-search-cancel-button {
    opacity: .3;
    pointer-events: all;
    cursor: pointer;
}
.bootstrap-duallistbox-container select:focus {
    box-shadow: none;
}
.bootstrap-duallistbox-container select > option {
    cursor: pointer;
    padding-inline: 0.5rem;
}
.bootstrap-duallistbox-container select > option:first-of-type {
    margin-top: 0.25rem;
}

/*-----------------------------------------------------------------------------------------------*/
/* Bootstrap
/*-----------------------------------------------------------------------------------------------*/
.form-control:not(:focus),
.form-select:not(:focus) {
    box-shadow: none;
}
.nav-link:focus-visible,
.dropdown-toggle:focus-visible {
    outline: 0;
    box-shadow: none;
}
.was-validated :invalid~.invalid-feedback,
.is-invalid~.invalid-feedback,
.was-validated :valid~.valid-feedback,
.is-valid~.valid-feedback {
    display: inline;
}
.btn:not(.rounded-circle) {
    min-width: 6rem;
}
.tooltip-custom {
    --bs-tooltip-bg: rgba(0, 0, 0, 0.88);
}
.bs-tooltip-start.tooltip-custom,
.bs-tooltip-auto.tooltip-custom[data-popper-placement^=left] {
    margin-right: 2px !important;
}
.bs-tooltip-start.tooltip-custom .tooltip-arrow::before, 
.bs-tooltip-auto.tooltip-custom[data-popper-placement^=left] .tooltip-arrow::before {
    left: 0;
}
.bs-tooltip-end.tooltip-custom, 
.bs-tooltip-auto.tooltip-custom[data-popper-placement^=right] {
    margin-left: 2px !important;
}
.bs-tooltip-end.tooltip-custom .tooltip-arrow::before, 
.bs-tooltip-auto.tooltip-custom[data-popper-placement^=right] .tooltip-arrow::before {
    right: 0;
}
.bs-tooltip-top.tooltip-custom, 
.bs-tooltip-auto.tooltip-custom[data-popper-placement^=top] {
    margin-bottom: 2px !important;
}
.bs-tooltip-top.tooltip-custom .tooltip-arrow::before, 
.bs-tooltip-auto.tooltip-custom[data-popper-placement^=top] .tooltip-arrow::before {
    top: 0;
}
.bs-tooltip-bottom.tooltip-custom,
.bs-tooltip-auto.tooltip-custom[data-popper-placement^=bottom] {
    margin-top: 2px !important;
}
.bs-tooltip-bottom.tooltip-custom .tooltip-arrow::before, 
.bs-tooltip-auto.tooltip-custom[data-popper-placement^=bottom] .tooltip-arrow::before {
    bottom: 0;
}
/* mobile */
@media screen and (max-width:575px) {
    .tooltip {
        display: none;
    }
}
/* hover not supported */
@media (hover: none) {
   .tooltip {
        display: none;
    }
}

/*-----------------------------------------------------------------------------------------------*/
/* Crispy Forms - Bootstrap 5 theme
/*-----------------------------------------------------------------------------------------------*/
.crispy-bs5-input-file-initial {
    margin-top: 0.375rem;
    margin-left: 0.25rem;
    font-size: 13px;
}

/*-----------------------------------------------------------------------------------------------*/
/* Speed Dial | Floating Action Button
/*-----------------------------------------------------------------------------------------------*/
.speed-dial {
    --btn-gap: 6px;

    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--btn-gap);
}
.speed-dial > .speed-dial-launcher {
    z-index: 2;
    cursor: pointer;
}
/* launcher with icon transitions */
.speed-dial > .speed-dial-launcher > .icon-transition {
    --transition-duration: 0.4s;
    --transition-timing: ease-in-out;

    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.speed-dial > .speed-dial-launcher > .icon-transition :first-child {
    opacity: 1;
    transition: opacity var(--transition-duration) var(--transition-timing);
}
.speed-dial > .speed-dial-launcher > .icon-transition :last-child {
    opacity: 0;
    position: absolute;
    transition: opacity var(--transition-duration) var(--transition-timing);
}
.speed-dial.active > .speed-dial-launcher > .icon-transition :first-child {
    opacity: 0;
}
.speed-dial.active > .speed-dial-launcher > .icon-transition :last-child {
    opacity: 1;
}
/* launcher with icon rotation */
.speed-dial > .speed-dial-launcher > .icon-rotate {
    --rotation: 45deg;
    --transition-duration: 0.25s;
}
.speed-dial > .speed-dial-launcher > .icon-rotate :first-child {
    transition: transform var(--transition-duration) cubic-bezier(0.4, 0, 0.2, 1) 0ms;
}
.speed-dial.active > .speed-dial-launcher > .icon-rotate :first-child {
    transform: rotate(var(--rotation, 45deg));
}
.speed-dial > .speed-dial-menu {
    /* ajustados via JS */
    --offset-w: 0;
    --offset-h: 0;
    --transition-duration: 0.65s;

    z-index: 1;
    display: inline-flex;
    position: absolute;
    gap: var(--btn-gap);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--transition-duration) ease, visibility 0s linear var(--transition-duration);
}
.speed-dial.active > .speed-dial-menu,
.speed-dial-menu.active {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
    transition: opacity var(--transition-duration) ease, visibility 0s linear 0s;
}
/* direction: to top */
.speed-dial.speed-dial-up {
    flex-direction: column-reverse;
}
.speed-dial.speed-dial-up > .speed-dial-menu {
    flex-direction: column-reverse;
    bottom: 0;
    padding-bottom: calc(var(--offset-h) + var(--btn-gap));
}
/* direction: to bottom */
.speed-dial.speed-dial-down {
    flex-direction: column;
}
.speed-dial.speed-dial-down > .speed-dial-menu {
    flex-direction: column;
    top: 0;
    padding-top: calc(var(--offset-h) + var(--btn-gap));
}
/* direction: to left */
.speed-dial.speed-dial-left {
    flex-direction: row-reverse;
}
.speed-dial.speed-dial-left > .speed-dial-menu {
    flex-direction: row-reverse;
    right: 0;
    padding-right: calc(var(--offset-w) + var(--btn-gap));
}
/* direction: to right */
.speed-dial.speed-dial-right {
    flex-direction: row;
}
.speed-dial.speed-dial-right > .speed-dial-menu {
    flex-direction: row;
    left: 0;
    padding-left: calc(var(--offset-w) + var(--btn-gap));
}