@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/*
Este arquivo contém alguns ajustes para que os componentes ZK fiquem com
a "cara" do Bootstrap, ou seja, este arquivo contém CSS que visa adaptar
o ZK para os estilos do Bootstrap.

Importante que os componentens "input" do ZK recebam a classe "form-control",
e os componentes "select" do ZK recebam a classe "select-control".

Caso algum compoenente não fique no mesmo padrão que os outros, ou tenha algum
problema com os estilos CSS, fale com o Alison para tentar resolver.
*/


/* UEM INSTITUTIONAL COLORS (from Manual de Identidade Visual) */
:root {
    --uem-red: #FF0F00;
    --uem-red-hover: #D90D00;
    --uem-red-rgb: 255, 15, 0;
    --uem-black: #000000;
    --uem-gray: #6d6e71;
}

/* BODY */
body {
    padding: 0px;
    background-color: transparent;
    font-family: 'Inter', var(--bs-font-sans-serif);
}

/* UEM THEME - Override Bootstrap primary with UEM red */
.btn-primary {
    --bs-btn-bg: var(--uem-red);
    --bs-btn-border-color: var(--uem-red);
    --bs-btn-hover-bg: var(--uem-red-hover);
    --bs-btn-hover-border-color: var(--uem-red-hover);
    --bs-btn-active-bg: var(--uem-red-hover);
    --bs-btn-active-border-color: var(--uem-red-hover);
    --bs-btn-focus-shadow-rgb: var(--uem-red-rgb);
    --bs-btn-disabled-bg: var(--uem-red);
    --bs-btn-disabled-border-color: var(--uem-red);
}
.btn-outline-primary {
    --bs-btn-color: var(--uem-red);
    --bs-btn-border-color: var(--uem-red);
    --bs-btn-hover-bg: var(--uem-red);
    --bs-btn-hover-border-color: var(--uem-red);
    --bs-btn-active-bg: var(--uem-red);
    --bs-btn-active-border-color: var(--uem-red);
    --bs-btn-focus-shadow-rgb: var(--uem-red-rgb);
}
.text-primary { color: var(--uem-red) !important; }

/* Tooltip wrapper for disabled buttons. Disabled buttons swallow mouse events,
   so wrap them in .btn-tip-wrap and use a ZK tooltip popup on the wrapper. */
.btn-tip-wrap { display: inline-block; cursor: not-allowed; }
.btn-tip-wrap > button:disabled,
.btn-tip-wrap > .z-button[disabled] { pointer-events: none; }

/* UEM THEME - Links */
a:not(.btn):not(.nav-link):not(.dropdown-item) { color: var(--uem-red); }
a:not(.btn):not(.nav-link):not(.dropdown-item):hover { color: var(--uem-red-hover); }

/* UEM THEME - Navbar active state */
.navbar .nav-link.active,
.navbar .nav-item.dropdown:has(.dropdown-item.active) > .nav-link {
    color: var(--uem-red) !important;
}
.navbar .dropdown-item.active,
.navbar .dropdown-item:active {
    background-color: var(--uem-red);
}

/* UEM THEME - Checkbox / radio checked */
input[type="checkbox"]:checked {
    background-color: var(--uem-red) !important;
    border-color: var(--uem-red) !important;
}

/* UEM THEME - Badge info uses UEM gray */
.badge.bg-info { background-color: var(--uem-gray) !important; }

/* UEM THEME - Red accent bar on header */
.uem-header-accent {
    height: 4px;
    background: var(--uem-red);
    margin: 0;
    padding: 0;
}

/* UEM THEME - Card with red left accent */
.card-accent-left {
    border-left: 4px solid var(--uem-red) !important;
}

/* UEM THEME - Grid column headers branded */
.z-column, .z-listheader {
    background-color: var(--uem-black) !important;
    border-bottom: 1px solid var(--uem-black);
}
.z-column-content, .z-listheader-content {
    color: #fff !important;
}
.z-column-sort .z-column-sorticon, .z-listheader-sort .z-listheader-sorticon {
    color: #fff !important;
}
.z-column-hover .z-column-content, .z-listheader-hover .z-listheader-content {
    color: rgba(255,255,255,0.8) !important;
}
.z-columns-bar, .z-listhead-bar {
    background: var(--uem-black) !important;
}

/* UEM THEME - Site footer */
.uem-footer {
    border-top: 3px solid var(--uem-red);
    background: var(--uem-black);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.75rem 1.5rem;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.uem-footer-version {
    color: rgba(255,255,255,0.7) !important;
    font-size: 0.65rem;
    font-weight: 400;
}

/* PAGE TRANSITION - FADE-IN SUAVE AO TROCAR CONTEÚDO */
@keyframes pdi-fade-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}
.content-fade-in {
    animation: pdi-fade-in 0.2s ease-out;
}

/* ACESSIBILIDADE - ANEL DE FOCO CONSISTENTE PARA NAVEGAÇÃO POR TECLADO */
:focus-visible {
    outline: 2px solid rgba(var(--uem-red-rgb), 0.75);
    outline-offset: 2px;
    border-radius: var(--bs-border-radius-sm);
    box-shadow: 0 0 0 0.25rem rgba(var(--uem-red-rgb), 0.2);
}

/* Fonte padrão para todos os componentes ZK
Necessário pois o padrão usa Helvetica o qual tem comportamento diferente
entre Firefox e Chrome */
[class*="z-"]:not([class*="z-icon-"]):not([class*="fa-"]) {
    font-family: inherit;
}


/*
 * CSS para melhorar o ZK
 *
 * Alguns componentes do ZK tem um visual não muito legal, como sombra nos botões.
 * Aqui também está ensinando como você pode alterar o comportamento do visual do Grid.
 * Personalizamos também o loading do ZK, travando a tela com um fundo escuro.
 */

/* ZK - LABELS - REMOVE PADROES ZK PARA MANTER DO BOOTSTRAP */
/* Exclui elementos com classes FA para não sobrescrever a fonte dos ícones */
.z-label:not([class*="fa-"]), .z-radio-content, .z-checkbox-content, .z-loading, .z-caption {
    font-size: inherit!important;
    line-height: inherit;
    font-family: inherit;
    font-weight: inherit;
}

/* ZK - WINDOW - REMOVE PADDING E COR DO ZK */
.z-window-content{
    padding: 0px!important;
    color: inherit;
}

.z-window-modal {
    background-color: var(--bs-body-bg)!important; /*essa cor é para os Alerts Popup*/
}

.z-window-modal .z-window-content{
    background-color: var(--bs-body-bg)!important; /*essa cor é para os Alerts Popup*/
}

.z-window-modal{
    transition: opacity .15s linear;
    border-radius: var(--bs-border-radius-lg)!important;
    padding: 1rem!important;
}

/* ZK - BUTTON - TIRAR A SOMBRA DO BOTÃO DO TEMA ICEBLUE */
.z-button {
    -webkit-box-shadow: unset;
    box-shadow: unset;
}

/* ZK - BUTTON - CORRIGE ALINHAMENTO DO ÍCONE FONTAWOSOME NO BOTÃO */



/* ZK - LOADING - DEIXANDO EM TELA CHEIA */
.z-loading {
    display: -moz-box;
    -moz-box-pack: center;
    -moz-box-align: center;
    display: -webkit-box;
    -webkit-box-pack: center;
    -webkit-box-align: center;
    width: 100% !important;
    min-width: -moz-available !important;
    width: -webkit-fill-available !important;
    height: 100% !important;
    min-height: -moz-available !important;
    height: -webkit-fill-available !important;
    background-color: unset;
}
.z-loading-indicator {
    border: 1px solid var(--bs-border-color) !important;
}

/* ZK - LAYOUT - REMOVENDO ESPAÇO EXTRA*/
.z-north-body, .z-south-body, .z-west-body, .z-center-body, .z-east-body {
    padding: 0px !important;
}

/* ZK - WINDOW - MELHORANDO ALINHAMENTO DO TEXTO DO TÍTULO DA JANELA */
.z-window-header {
    padding-bottom: 1rem;
    text-transform: uppercase;
    font-size: var(--bs-body-font-size);
    font-weight: 400;
    line-height: 1.2;
    color: var(--bs-heading-color);
    opacity: 0.5 !important;
}

.z-messagebox-window {
    padding-bottom: 10px;
}

/* ZK - MENU - CORRIGINDO ALINHAMENTO DO ÍCONE */
.z-menu-content i, .z-menuitem-content i {
    vertical-align: unset !important;
}

/* ZK - BANDBOX */
.z-bandbox-popup{
    width: unset!important;
}
.z-bandpopup .z-listbox{
    width: 100%!important;
    border: 0px!important;
    padding: 0px!important;
}
.z-bandbox{
    position: relative;
    height: auto;
    display: flex;
}
.z-bandbox-input{
    height: auto;
    transition: all .2s;
    display: block;
    padding: .375rem .75rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    background-clip: padding-box;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    font-family: var(--bs-font-sans-serif);
    font-style: normal;
    overflow: visible;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    position: relative;
    flex: 1 1 auto;
    width: 1%;
    margin-bottom: 0;
    cursor: text;
}
.z-bandbox-button{
    border: 1px solid transparent;
    border-radius: var(--bs-border-radius);
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
    position: relative;
    z-index: 2;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    color: var(--bs-secondary);
    background-image: none;
    overflow: visible;
    border-color: var(--bs-border-color);
    margin: 0 0 0 -1px;
    font-family: inherit;
    box-sizing: border-box;
    height: unset;
    display: inline-block;
    font-weight: 400;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    user-select: none;
    padding: .375rem .75rem;
    font-size: 1rem;
    line-height: 1.5;
    background-color: var(--bs-tertiary-bg);
}
.z-bandbox-icon{
    vertical-align: middle;
}

/* ZK - TABBOX */
.z-tabbox{
    border: 0px;
}
.z-tabpanel{
    border: 0px;
    margin-left: 15px;
    margin-right: 15px;
}
.z-tab{
    padding: 15px;
    transition: all .2s;
    font-size: inherit!important;
}
.z-tab-selected .z-tab-text {
    color: var(--uem-red);
}
.z-tab-selected {
    border-bottom: 2px solid var(--uem-red);
}

/*
 * CSS para melhorar o Bootstrap
 *
 * Alguns elementos faltantes no bootstrap como alertas apenas com borda.
 * Temos também botões extra-small para o caso de ficar melhor com os elementos pequenos do ZK.
 */

/* BOOTSTRAP - CRIADO CSS PARA BOTÃO ESTILO CLOSE  QUE NÃO TEM NO BOOTSTRAP */
.btn-close {
    min-height: unset;
}

/* BOOTSTRAP - COR DOS BOTÕES QUANDO ESTÃO COM FOCO */
.z-button:focus {
    color:var(--bs-btn-hover-color);
    background-color:var(--bs-btn-hover-bg);
    border-color:var(--bs-btn-hover-border-color);
    outline:0;
    box-shadow:var(--bs-btn-focus-box-shadow)
}

/*
 * CSS para adaptar determinados elementos do ZK para aceitar o Bootstrap
 *
 * Alguns elementos do ZK não utilizam as tags padrões do HTML. Com estes ajustes
 * fazemos com que esses elementos personalizados do ZK fiquem com o mesmo estilo que o Bootstrap
 * aplica nos componentes correspondentes ao que tem HTML puro.
 */

.z-textbox, .z-decimalbox, .z-intbox, .z-longbox, .z-doublebox {
    /*min-height: 30px!important;*/
    height: unset;
}

/* BOOTSTRAPANDO O ZK - READONLY - CORRIGINGO COR DA FONTE PARA FICAR IGUAL AO BOOTSTRAP */
.z-textbox[readonly], .z-decimalbox[readonly], .z-intbox[readonly], .z-longbox[readonly], .z-doublebox[readonly] {
    color: var(--bs-body-color);
}

/* BOOTSTRAPANDO O ZK - CORREÇÃO DO RADIO */
input[type="radio"], input[type="checkbox"] {
    margin: 0 4px 2px 4px !important;
}

.z-radio-content {
    margin-bottom: 0 !important;
}

/* BOOTSTRAPANDO O ZK - COMBOBOX - ADICIONANDO ESTILO */
.z-combobox {
    display: block;
}
.z-combobox-input {
    padding: 0.375rem 0.75rem;
    font-size: 1rem!important;
    border: 1px solid var(--bs-border-color) !important;
    margin: 0 !important;
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    background-clip: padding-box;
    border-radius: var(--bs-border-radius);
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.z-combobox-input:focus {
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    border-color: rgba(var(--uem-red-rgb), 0.5);
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(var(--uem-red-rgb), 0.25);
}

.z-combobox-input:disabled {
    color: var(--bs-secondary-color) !important;
    background: var(--bs-secondary-bg) !important;
    opacity: 1 !important;
    cursor: not-allowed !important;
}

.z-combobox-popup {
    max-height: 200px !important;
}

.z-comboitem-text {
    font-size: 1rem !important;
}

.z-combobox .z-combobox-button {
    border: transparent !important;
    background: transparent !important;
}

.z-combobox-input:focus+.z-combobox-button {
    border-left: 0px;
}

.z-combobox-button:hover {
    border-color: unset;
    background: unset;
}

/* BOOTSTRAPANDO O ZK EE - CHOSENBOX - ADICIONANDO ESTILO */
.z-chosenbox {
    height: auto!important;
}

.z-chosenbox-input {
    height: auto;
    line-height: 0;
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    background-clip: padding-box;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: 1px 4px 2px 0px;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.z-chosenbox-item{
    display: inline-flex;
    align-items: center;
    margin: 0px 4px 0px 0px !important;
    border: 1px solid var(--bs-border-color);
    background-color: var(--bs-tertiary-bg);
}

.z-chosenbox-item-content{
    color: var(--bs-body-color) !important;
    font-size: var(--bs-body-font-size);
    padding: 0 4px;
}

.z-chosenbox-button{
    display: inline-flex;
    align-items: center;
    margin: 2px 0px 0px 0px !important;
    color: var(--bs-body-color) !important;
}

.z-chosenbox-focus {
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    border-color: rgba(var(--uem-red-rgb), 0.5);
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(var(--uem-red-rgb), 0.25);
}

.z-chosenbox-disabled {
    color: var(--bs-secondary-color) !important;
    background: var(--bs-secondary-bg) !important;
    opacity: 1 !important;
    cursor: not-allowed !important;
}

.z-chosenbox-select {
    font-size: .88rem!important;
}

/* BOOTSTRAPANDO O ZK - SELECT - ADICIONANDO ESTILO */
.z-select:disabled, .z-selectbox:disabled {
    color: var(--bs-secondary-color) !important;
}

/* BOOTSTRAPANDO O ZK - CHECKBOX - ADICIONANDO ESTILO */
input[type="checkbox"]{
    border: 1px solid var(--bs-border-color)!important;
}
input[type="checkbox"]:checked {
    background-color: var(--bs-primary)!important;
}

/* BOOTSTRAPANDO O ZK - DATE - ADICIONANDO ESTILO */
.form-control.z-datebox, .form-control.z-timebox {
    padding: unset;
    border: unset;
}
.z-datebox-input:focus+.z-datebox-button, .z-timebox-input:focus+.z-timebox-button {
    border: var(--bs-border-width) solid var(--bs-border-color);
}
.z-datebox-input, .z-timebox-input {
    border: var(--bs-border-width) solid var(--bs-border-color) !important;
    border-radius: var(--bs-border-radius);
    margin: 0 !important;
    background: var(--bs-body-bg) !important;
}
.z-datebox-button {
    margin-left: -15px;
    width: 40px;
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
    border-top-right-radius: var(--bs-border-radius) !important;
    border-bottom-right-radius: var(--bs-border-radius) !important;
    border-top-left-radius: 0px !important;
    border-bottom-left-radius: 0px !important;
}
.z-datebox-input, .z-timebox-input  {
    color: var(--bs-body-color);
    padding: 0.375rem 0.75rem;
}
.z-datebox-icon {
    padding-top: 2px;
}
.z-datebox-input:focus, .z-timebox-input:focus {
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    border: var(--bs-border-width) solid var(--bs-border-color) !important;
    outline: 0 !important;
    box-shadow: 0 0 0 0.25rem rgba(var(--uem-red-rgb), 0.25);
}
.z-datebox-readonly>input, .z-timebox-readonly>input {
    color: var(--bs-body-color)!important;
    background: var(--bs-secondary-bg)!important;
}

.z-timebox-button {
    height: auto;
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    padding: unset;
    font-size: 18px!important;
}

.z-timebox-separator {
    margin-top: 2px;
}

.z-timebox-button>a {
    height: 18px;
    color: var(--bs-body-color);
}

[data-bs-theme=dark] {
    .z-calendar-header {
        filter: invert(1);
    }
    .z-calendar td, .z-calendar th {
        filter: invert(1);
    }
}
.z-calendar-wheel-left{
    position: relative;
    outline: none !important;
    display: inline-block;
    font-weight: 400;
    text-align: center;
    vertical-align: middle;
    user-select: none;
    background-color: transparent;
    border: 1px solid transparent;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: var(--bs-border-radius);
    transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s;
    color: #fff;
    background-color: var(--uem-red);
    border-color: var(--uem-red);
}

.z-calendar-wheel-right{
    position: relative;
    outline: none !important;
    display: inline-block;
    font-weight: 400;
    text-align: center;
    vertical-align: middle;
    user-select: none;
    background-color: transparent;
    border: 1px solid transparent;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: var(--bs-border-radius);
    transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s;
    color: #fff;
    background-color: var(--bs-secondary);
    border-color: var(--bs-secondary);
}

/* BOOTSTRAPANDO O ZK - CORRIGINDO INPUTS EM MOBILE */
@media(max-width:576px){
    .z-combobox-button, .z-bandbox-button, .z-datebox-button, .z-spinner-button, .z-doublespinner-button, .z-timepicker-button {
        padding-bottom: 28px;

    }
}

/* BOOTSTRAPANDO O ZK - GROUPBOX - ADICIONANDO ESTILO IGUAL O PANEL DO BOOTSTRAP */

.z-groupbox-header{
    border-color: var(--bs-border-color)!important;
    border-top-right-radius:  4px;
    border-top-left-radius: 4px;
}

.z-groupbox-content{
    border-color: var(--bs-border-color)!important;
    border-bottom-right-radius:  4px;
    border-bottom-left-radius: 4px;
}

/*
 * CSS personalizado os formulários do ZK para se comportar semelhante ao do Bootstrap
 *
 * Para criar formulários com Label e Input, utilize as classes abaixo. Com isso você
 * conseguirá deixar o formulário responsivo mais facilmente.
 */

/* FORMULÁRIO - CSS PARA FORMULARIO HTML */
.form-label{
    display: inline-block;
    font-weight: 700;
}
span.required:after {
    content: " ⃰";
    color: var(--bs-danger-text-emphasis);
}

/* ZK - GRID - FONTE DAS LINHAS DA TABELA */
.z-listcell-content, .z-listgroup-content, .z-listgroupfoot-content, .z-listfooter-content, .z-column-content, .z-listheader-content {
    /*font-size: .88rem;*/
    color: var(--bs-body-color);
}

/* ZK - GRID - CORES DA ORDENAÇÃO NO HEADER */
.z-column-sort .z-column-content:active, .z-listheader-sort .z-listheader-content:active {
    background: rgba(255,255,255,0.1) !important;
    color: #fff !important;
}

/* (sort icon and hover colors handled by UEM theme rules above) */

/* FORMULÁRIO - CSS PARA TABELAS / GRID - ESTILO SEMELHANTE AO BOOTSTRAP*/
.z-grid, .z-listbox {
    border: 0px;
    background: var(--bs-body-bg);
}
.z-column-visited .z-column-button {
    background: var(--bs-border-color);
}
.z-column-content, .z-listheader-content {
    font-weight: bold;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
.z-column-button {
    z-index: 0!important;
    color: var(--bs-body-color);
    -webkit-box-shadow: inset 0px 0 var(--bs-border-color);
    -moz-box-shadow: inset 0px 0 var(--bs-border-color);
    -o-box-shadow: inset 0px 0 var(--bs-border-color);
    -ms-box-shadow: inset 0px 0 var(--bs-border-color);
    box-shadow: inset 0px 0 var(--bs-border-color);
}
.z-column-button > .z-icon-caret-down, .z-listheader-button > .z-icon-caret-down {
    padding-top: 0.5rem;
}

.z-column-content, .z-row-content, .z-group-content, .z-groupfoot-content, .z-footer-content, .z-auxheader-content, .z-listheader-content {
    line-height: unset!important;
}

.z-column-content, .z-row-content, .z-group-content, .z-groupfoot-content, .z-footer-content, .z-listheader-content {
    font-size: 1rem;
    color: var(--bs-body-color);
}

.z-paging {
    background-color: var(--bs-body-bg)!important;
    color: var(--bs-body-color);
}

.z-paging-info{
    padding: 2px 0!important;
}

.z-grid .z-row-inner, .z-grid .z-cell {
    background: inherit;
}

[data-bs-theme="dark"] {
    .z-paging ul {
        filter: invert(1);
    }
    .z-paging-info{
        filter: invert(1);
    }
}

/* ZK - A COMPONENT - CORRIGE CONFLITO DE FONT-SIZE COM BOOTSTRAP DROPDOWN */
.z-a.dropdown-item {
    font-size: inherit !important;
}

/* NAVBAR - DESTACA O DROPDOWN PAI QUANDO UM ITEM FILHO ESTÁ ATIVO */
/* (handled by UEM theme rules above) */

/* MODAL AND BUSY OVERLAY */
.z-temp, .z-modal-mask {
    background: rgba(var(--bs-dark-rgb), 0.9);
    opacity: .32;
    z-index: 100!important;
}

/* ZK - GRID - ZEBRA STRIPING */
.z-row:nth-child(even) > .z-row-inner,
.z-row:nth-child(even) > .z-cell {
    background-color: rgba(0, 0, 0, 0.02);
}

/* ZK - GRID - ROW HOVER EFFECT */
.z-row:hover > .z-row-inner,
.z-row:hover > .z-cell,
.z-listitem:hover > .z-listcell {
    background-color: var(--bs-tertiary-bg) !important;
    transition: background-color 0.15s ease;
}

/* ZK - GRID - EMPTY STATE STYLING */
.z-grid-emptybody td {
    padding: 2.5rem 1rem !important;
    text-align: center;
    color: var(--bs-secondary-color);
    font-style: italic;
}

/* ZK - WINDOW - RESPONSIVE MODALS */
.z-window-modal {
    max-width: calc(100vw - 2rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* BREADCRUMB */
.page-breadcrumb {
    font-size: 0.8rem;
}
.page-breadcrumb a {
    color: var(--bs-secondary-color);
    text-decoration: none;
    cursor: pointer;
}
.page-breadcrumb a:hover {
    color: var(--bs-primary);
    text-decoration: underline;
}

/* DASHBOARD CARDS */
.stat-card {
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    cursor: pointer;
    text-decoration: none;
}
.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.1) !important;
}
.stat-card .stat-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--bs-border-radius-lg);
    font-size: 1.25rem;
}

/* ZK - GRID - CELL TEXT OVERFLOW */
.z-row-content .z-label,
.z-listcell-content .z-label {
    word-break: break-word;
}

/* ZK - GRID - RESPONSIVE HORIZONTAL SCROLL ON SMALL SCREENS */
@media (max-width: 768px) {
    .z-grid { overflow-x: auto; }
    .z-grid-body { min-width: auto; }
}

/* UTILITY CLASSES */
.page-title {
    letter-spacing: .05em;
}
.btn-new-item {
    cursor: pointer;
    color: white !important;
    text-decoration: none;
}
.search-group {
    max-width: 360px;
}
.no-resize {
    resize: none;
}