/* Modern ZK loading and busy indicators. Compatible with ZK 6.5.x. */
.z-loading,
.z-apply-loading,
.z-temp .z-loading {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 2147483000 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    min-height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(15, 23, 42, .08) !important;
    background-image: none !important;
    box-shadow: none !important;
    color: #0f172a !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 46px !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
    cursor: progress !important;
    pointer-events: auto !important;
    transform: none !important;
}

.z-temp,
.z-apply-mask {
    cursor: progress !important;
    pointer-events: auto !important;
}

.z-loading-indicator,
.z-apply-loading-indicator,
.z-loading .z-loading-indicator,
.z-apply-loading .z-apply-loading-indicator {
    position: fixed !important;
    display: block !important;
    top: 18px !important;
    left: 50% !important;
    width: auto !important;
    min-width: 178px !important;
    max-width: calc(100vw - 32px) !important;
    min-height: 46px !important;
    padding: 0 18px 0 50px !important;
    border: 1px solid rgba(37, 99, 235, .18) !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, .97) !important;
    background-image: none !important;
    box-shadow: 0 16px 34px rgba(15, 23, 42, .18), 0 3px 8px rgba(15, 23, 42, .08) !important;
    color: inherit !important;
    font: inherit !important;
    line-height: 46px !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
    transform: translateX(-50%) !important;
}

.z-loading-indicator:before,
.z-apply-loading-indicator:before,
.z-loading .z-loading-indicator:before,
.z-apply-loading .z-apply-loading-indicator:before {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 18px !important;
    width: 18px !important;
    height: 18px !important;
    margin-top: -11px !important;
    border: 2px solid #dbeafe !important;
    border-top-color: #2563eb !important;
    border-radius: 50% !important;
    animation: sc-loading-spin .72s linear infinite !important;
}

.z-loading:before,
.z-apply-loading:before,
.z-temp .z-loading:before {
    content: none !important;
}

.z-loading-icon,
.z-apply-loading-icon,
.z-loading img,
.z-apply-loading img,
.z-loading-indicator img,
.z-apply-loading-indicator img {
    display: none !important;
}

@keyframes sc-loading-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 640px) {
    .z-loading,
    .z-apply-loading,
    .z-temp .z-loading {
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        min-width: 100% !important;
    }

    .z-loading-indicator,
    .z-apply-loading-indicator,
    .z-loading .z-loading-indicator,
    .z-apply-loading .z-apply-loading-indicator {
        top: 12px !important;
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
        min-width: 0 !important;
        transform: none !important;
    }
}

@media (max-width: 980px) {
    div.z-listbox-header div.z-auxheader-cnt,
    div.z-grid-header div.z-auxheader-cnt,
    tr.z-auxhead div.z-auxheader-cnt {
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .z-auxheader .z-hbox,
    .z-auxheader .z-hlayout,
    .z-auxheader .z-hbox-sep {
        white-space: nowrap !important;
    }

    .z-auxheader .z-hbox {
        display: inline-flex !important;
        align-items: center !important;
        min-width: max-content !important;
    }
}

/* Global button refresh. Compatible with ZK 6.5.x classic button markup. */
a.z-button,
button.z-button,
span.z-button,
.z-button,
button.z-button-os,
.z-button-os {
    display: inline-block !important;
    position: relative !important;
    min-width: 0 !important;
    min-height: 31px !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    overflow: hidden !important;
    text-decoration: none !important;
    text-shadow: none !important;
    transition: transform .16s ease, filter .16s ease, box-shadow .18s ease !important;
}

a.z-button > table,
button.z-button > table,
span.z-button > table,
.z-button > table {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    background: transparent !important;
    background-image: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

a.z-button td,
button.z-button td,
span.z-button td,
.z-button td,
.z-button-tl,
.z-button-tm,
.z-button-tr,
.z-button-cl,
.z-button-cr,
.z-button-bl,
.z-button-bm,
.z-button-br,
.z-button-l,
.z-button-r {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.z-button-l,
.z-button-r,
.z-button-cl,
.z-button-cr,
.z-button-t1,
.z-button-tl,
.z-button-tm,
.z-button-tr,
.z-button-bl,
.z-button-bm,
.z-button-br {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    font-size: 0 !important;
    overflow: hidden !important;
}

.z-button-t1,
.z-button-tm,
.z-button-tr,
.z-button-bl,
.z-button-bm,
.z-button-br {
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    line-height: 0 !important;
}

a.z-button .z-button-cm,
button.z-button .z-button-cm,
span.z-button .z-button-cm,
.z-button .z-button-cm {
    background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%) !important;
    border: 1px solid #cbd8ea !important;
    border-radius: 9px !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 6px 14px rgba(148, 163, 184, .18) !important;
    color: #17324f !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
    padding: 6px 12px !important;
    height: 31px !important;
}

a.z-button .z-button-cm button,
button.z-button .z-button-cm button,
span.z-button .z-button-cm button,
.z-button .z-button-cm button {
    color: inherit !important;
    font: inherit !important;
}

.z-button .z-button-img,
.z-button img {
    vertical-align: middle !important;
}

.z-button .z-button-cm button,
.z-button .z-button-cm,
.z-button-os .z-button-cm button,
.z-button-os .z-button-cm {
    white-space: nowrap !important;
}

.z-button .z-button-t1 button,
.z-button .z-button-tl button {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    cursor: pointer !important;
    z-index: 1 !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.z-button .z-button-img,
.z-button img,
.z-button-os .z-button-img,
.z-button-os img {
    margin-right: 4px !important;
}

.icon-only-btn.z-button,
.icon-only-btn.z-button-os,
.icon-only-btn {
    min-width: 36px !important;
    width: 36px !important;
    min-height: 31px !important;
    height: 31px !important;
    border-radius: 9px !important;
    overflow: hidden !important;
}

.icon-only-btn .z-button-cm,
.icon-only-btn.z-button-os .z-button-cm {
    width: 36px !important;
    min-width: 36px !important;
    padding: 6px 8px !important;
}

.icon-only-btn .z-button-img,
.icon-only-btn img {
    margin-right: 0 !important;
}

.icon-only-btn .z-button-t1,
.icon-only-btn .z-button-tm,
.icon-only-btn .z-button-tr {
    height: 31px !important;
    min-height: 31px !important;
    max-height: 31px !important;
    line-height: 31px !important;
}

.icon-only-btn .z-button-bl,
.icon-only-btn .z-button-bm,
.icon-only-btn .z-button-br,
.icon-only-btn .z-button-cl,
.icon-only-btn .z-button-cr,
.icon-only-btn .z-button-cm {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.icon-only-btn .z-button-t1 button,
.icon-only-btn .z-button-tl button {
    position: static !important;
    width: 36px !important;
    height: 31px !important;
    opacity: 1 !important;
    display: block !important;
    z-index: auto !important;
    background-color: transparent !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    margin: 0 !important;
}

.icon-only-btn:hover,
.icon-only-btn.z-button-os:hover,
.icon-only-btn.z-button-over {
    background: linear-gradient(180deg, #ffffff 0%, #dbeafe 100%) !important;
    border-color: #93c5fd !important;
    box-shadow: 0 3px 10px rgba(59, 130, 246, .18), 0 0 0 3px rgba(191, 219, 254, .42) !important;
    transform: translateY(-1px) !important;
}

.icon-only-btn:active,
.icon-only-btn.z-button-os:active,
.icon-only-btn.z-button-clk {
    background: linear-gradient(180deg, #eaf2fb 0%, #d7e8fb 100%) !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, .08) !important;
    transform: translateY(0) !important;
}

.z-auxheader .z-toolbarbutton,
.z-auxheader a.z-toolbarbutton {
    display: inline-block !important;
    position: relative !important;
    z-index: 3 !important;
    min-height: 31px !important;
    border: 1px solid #cbd8ea !important;
    border-radius: 9px !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 6px 14px rgba(148, 163, 184, .18) !important;
    text-decoration: none !important;
    overflow: hidden !important;
    transition: transform .16s ease, box-shadow .18s ease, border-color .16s ease !important;
}

.z-auxheader .z-toolbarbutton-cnt,
.z-auxheader .z-toolbarbutton-body {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    position: relative !important;
    z-index: 4 !important;
    padding: 6px 10px !important;
    background: transparent !important;
    border: 0 !important;
    color: #17324f !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

.z-auxheader .z-toolbarbutton img {
    margin-right: 0 !important;
    vertical-align: middle !important;
}

.z-auxheader .z-toolbarbutton:hover,
.z-auxheader a.z-toolbarbutton:hover,
.z-auxheader .z-toolbarbutton-over {
    background: linear-gradient(180deg, #ffffff 0%, #dbeafe 100%) !important;
    border-color: #93c5fd !important;
    box-shadow: 0 3px 10px rgba(59, 130, 246, .18), 0 0 0 3px rgba(191, 219, 254, .42) !important;
    transform: translateY(-1px) !important;
    z-index: 5 !important;
}

div.z-listbox-header th.z-auxheader,
div.z-grid-header th.z-auxheader,
tr.z-auxhead th.z-auxheader {
    overflow: visible !important;
    position: relative !important;
    z-index: 2 !important;
}

div.z-listbox-header,
div.z-grid-header,
tr.z-auxhead {
    overflow: hidden !important;
    position: relative !important;
    z-index: 2 !important;
    height: auto !important;
}

/* Las consultas paginadas conservan el pie visible y permiten recorrer
   columnas que no caben en el ancho disponible. */
div.z-listbox,
div.z-grid {
    max-width: 100% !important;
}

div.z-listbox-body,
div.z-grid-body {
    overflow-x: auto !important;
    overflow-y: auto !important;
}

div.z-listbox-footer,
div.z-grid-footer {
    overflow: visible !important;
}

/* Regla común para resultados administrados por ResultadoPaginadoMacro. */
div.z-listbox.sc-resultados-paginados,
div.z-grid.sc-resultados-paginados {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

div.z-listbox.sc-resultados-paginados .z-listbox-body,
div.z-grid.sc-resultados-paginados .z-grid-body {
    overflow: auto !important;
}

div.z-listbox.sc-resultados-paginados .z-listbox-footer,
div.z-grid.sc-resultados-paginados .z-grid-footer {
    overflow: visible !important;
}

div.z-listbox-header,
div.z-grid-header {
    background: linear-gradient(180deg, #f9fcff 0%, #eef6ff 52%, #e4f0fc 100%) !important;
    border: 1px solid #d3e3f4 !important;
    border-bottom-color: #c3d7ec !important;
    border-radius: 12px 12px 0 0 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .92), inset 0 -1px 0 rgba(120, 164, 214, .10), 0 5px 12px rgba(59, 130, 246, .05) !important;
}

div.z-listbox-header table,
div.z-grid-header table {
    background: transparent !important;
}

div.z-listbox-header-bg,
div.z-grid-header-bg {
    background: linear-gradient(180deg, #f9fcff 0%, #eef6ff 52%, #e4f0fc 100%) !important;
}

div.z-listbox-header tbody,
div.z-grid-header tbody,
div.z-listbox-header tr,
div.z-grid-header tr {
    background: transparent !important;
}

div.z-listbox-header th.z-header,
div.z-listbox-header th.z-auxheader,
div.z-grid-header th.z-column,
div.z-grid-header th.z-header,
div.z-grid-header th.z-auxheader,
tr.z-auxhead th.z-auxheader {
    background: transparent !important;
    border-color: rgba(125, 166, 214, .28) !important;
}

div.z-listbox-header div.z-header-cnt,
div.z-listbox-header div.z-auxheader-cnt,
div.z-grid-header div.z-column-cnt,
div.z-grid-header div.z-header-cnt,
div.z-grid-header div.z-auxheader-cnt,
tr.z-auxhead div.z-auxheader-cnt {
    color: #2f5279 !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 12px !important;
}

.z-groupbox-3d-header,
.z-groupbox-header {
    background: linear-gradient(180deg, #f1f8ff 0%, #e3f0fd 100%) !important;
    border: 1px solid #c8dcf1 !important;
    border-bottom-color: #b8d0e8 !important;
    border-radius: 10px 10px 0 0 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9) !important;
}

.z-groupbox-3d-header .z-caption-l,
.z-groupbox-header .z-caption-l,
.z-groupbox-3d-header .z-caption-cnt,
.z-groupbox-header .z-caption-cnt,
.z-groupbox-3d-header .z-caption-readonly,
.z-groupbox-header .z-caption-readonly {
    background: transparent !important;
    color: #47709a !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-shadow: 0 1px 0 rgba(255, 255, 255, .45) !important;
}

div.z-listbox-header div.z-auxheader-cnt,
div.z-grid-header div.z-auxheader-cnt,
tr.z-auxhead div.z-auxheader-cnt {
    overflow: visible !important;
    height: auto !important;
    position: relative !important;
}

.z-auxhead .z-hbox,
.z-auxhead .z-hlayout {
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 4px !important;
}

.z-auxhead .z-label {
    color: #58779c !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 12px !important;
}

.z-auxheader .z-toolbarbutton:hover .z-toolbarbutton-cnt,
.z-auxheader .z-toolbarbutton-over .z-toolbarbutton-cnt {
    color: #0f3b68 !important;
}

.z-auxheader .z-toolbarbutton:active,
.z-auxheader a.z-toolbarbutton:active,
.z-auxheader .z-toolbarbutton-clk {
    background: linear-gradient(180deg, #eaf2fb 0%, #d7e8fb 100%) !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, .08) !important;
    transform: translateY(0) !important;
}

/* Controles de formulario globales.
 * Se definen en esta capa porque zk-loading.css ya gobierna botones y wrappers
 * del runtime ZK con mayor estabilidad que las hojas por modulo.
 */
.combobox,
.combobox select,
select,
textarea,
textarea.z-textbox,
input[type="text"],
input[type="password"],
input.z-textbox,
input.z-intbox,
input.z-longbox,
input.z-doublebox,
input.z-decimalbox,
input.z-datebox-inp,
.z-datebox input,
.z-bandbox input {
    border: 1px solid #9fb3c8 !important;
    border-radius: 4px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    font-size: 12px !important;
    box-shadow: none !important;
}

.combobox,
select,
textarea,
textarea.z-textbox,
input.z-textbox,
input.z-intbox,
input.z-longbox,
input.z-doublebox,
input.z-decimalbox,
input.z-datebox-inp,
input[type="text"],
input[type="password"],
.z-datebox input,
.z-bandbox input {
    min-height: 26px !important;
    height: 26px !important;
    line-height: 16px !important;
    box-sizing: border-box !important;
}

textarea,
textarea.z-textbox,
input.z-textbox,
input.z-intbox,
input.z-longbox,
input.z-doublebox,
input.z-decimalbox,
input.z-datebox-inp,
input[type="text"],
input[type="password"],
.z-datebox input,
.z-bandbox input {
    padding: 2px 8px !important;
}

textarea,
textarea.z-textbox {
    min-height: 52px !important;
    height: auto !important;
    line-height: 16px !important;
    resize: vertical !important;
}

.combobox:hover,
.combobox select:hover,
select:hover,
textarea:hover,
textarea.z-textbox:hover,
input[type="text"]:hover,
input[type="password"]:hover,
input.z-textbox:hover,
input.z-intbox:hover,
input.z-longbox:hover,
input.z-doublebox:hover,
input.z-decimalbox:hover,
input.z-datebox-inp:hover,
.z-datebox input:hover,
.z-bandbox input:hover {
    border-color: #7f9db9 !important;
}

.combobox:focus,
.combobox:focus-within,
.combobox select:focus,
select:focus,
textarea:focus,
textarea.z-textbox:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input.z-textbox:focus,
input.z-intbox:focus,
input.z-longbox:focus,
input.z-doublebox:focus,
input.z-decimalbox:focus,
input.z-datebox-inp:focus,
.z-datebox input:focus,
.z-bandbox input:focus {
    border-color: #2f7dbd !important;
    box-shadow: 0 0 0 2px rgba(47, 125, 189, 0.12) !important;
    outline: none !important;
}

.z-auxhead .combobox,
.z-auxhead .combobox select,
.z-auxhead select,
.z-auxhead input[type="text"],
.z-auxhead input[type="password"],
.z-auxhead input.z-textbox,
.z-auxhead input.z-intbox,
.z-auxhead input.z-longbox,
.z-auxhead input.z-doublebox,
.z-auxhead input.z-decimalbox,
.z-auxhead .z-datebox input,
.z-auxhead .z-bandbox input {
    min-height: 34px !important;
    height: 34px !important;
    padding: 4px 12px !important;
    border-radius: 9px !important;
    border-color: #bfd1e6 !important;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
    box-shadow: inset 0 1px 1px rgba(15, 23, 42, .03) !important;
}

.z-auxhead .combobox:hover,
.z-auxhead .combobox select:hover,
.z-auxhead select:hover,
.z-auxhead input[type="text"]:hover,
.z-auxhead input[type="password"]:hover,
.z-auxhead input.z-textbox:hover,
.z-auxhead input.z-intbox:hover,
.z-auxhead input.z-longbox:hover,
.z-auxhead input.z-doublebox:hover,
.z-auxhead input.z-decimalbox:hover,
.z-auxhead .z-datebox input:hover,
.z-auxhead .z-bandbox input:hover {
    border-color: #95b8dc !important;
}

.z-auxhead .combobox:focus,
.z-auxhead .combobox:focus-within,
.z-auxhead .combobox select:focus,
.z-auxhead select:focus,
.z-auxhead input[type="text"]:focus,
.z-auxhead input[type="password"]:focus,
.z-auxhead input.z-textbox:focus,
.z-auxhead input.z-intbox:focus,
.z-auxhead input.z-longbox:focus,
.z-auxhead input.z-doublebox:focus,
.z-auxhead input.z-decimalbox:focus,
.z-auxhead .z-datebox input:focus,
.z-auxhead .z-bandbox input:focus {
    border-color: #6ca6db !important;
    box-shadow: 0 0 0 3px rgba(147, 197, 253, .36) !important;
}

.mt-manual-select,
.mt-manual-select select {
    min-height: 30px !important;
    height: 30px !important;
    border-radius: 7px !important;
    border-color: #6c97bb !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef6ff 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 1px 2px rgba(15, 23, 42, .06) !important;
}

.mt-manual-select select {
    padding: 4px 30px 4px 10px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #184a75 !important;
}

.mt-manual-select:hover,
.mt-manual-select:hover select {
    border-color: #4f7ea6 !important;
    background: linear-gradient(180deg, #ffffff 0%, #e5f1ff 100%) !important;
}

.mt-manual-select:focus,
.mt-manual-select:focus-within,
.mt-manual-select select:focus {
    border-color: #2f7dbd !important;
    box-shadow: 0 0 0 2px rgba(47, 125, 189, 0.16) !important;
}

/* Refuerzo opcional para pantallas legacy que sigan perdiendo la cascada. */
.sc-force-controls select,
.sc-force-controls textarea,
.sc-force-controls textarea.z-textbox,
.sc-force-controls input[type="text"],
.sc-force-controls input[type="password"],
.sc-force-controls .z-datebox input,
.sc-force-controls .z-bandbox input,
.sc-force-controls .z-doublebox,
.sc-force-controls .z-decimalbox,
.sc-force-controls .z-intbox,
.sc-force-controls .z-longbox,
.sc-force-controls input.z-textbox {
    border: 1px solid #9fb3c8 !important;
    border-radius: 4px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    font-size: 12px !important;
    box-shadow: none !important;
    min-height: 26px !important;
    height: 26px !important;
    line-height: 16px !important;
    padding: 2px 8px !important;
    box-sizing: border-box !important;
}

.sc-force-controls textarea,
.sc-force-controls textarea.z-textbox {
    min-height: 52px !important;
    height: auto !important;
    line-height: 16px !important;
    resize: vertical !important;
}

.sc-force-controls select:hover,
.sc-force-controls textarea:hover,
.sc-force-controls textarea.z-textbox:hover,
.sc-force-controls input[type="text"]:hover,
.sc-force-controls input[type="password"]:hover,
.sc-force-controls .z-datebox input:hover,
.sc-force-controls .z-bandbox input:hover,
.sc-force-controls .z-doublebox:hover,
.sc-force-controls .z-decimalbox:hover,
.sc-force-controls .z-intbox:hover,
.sc-force-controls .z-longbox:hover,
.sc-force-controls input.z-textbox:hover {
    border-color: #7f9db9 !important;
}

.sc-force-controls select:focus,
.sc-force-controls textarea:focus,
.sc-force-controls textarea.z-textbox:focus,
.sc-force-controls input[type="text"]:focus,
.sc-force-controls input[type="password"]:focus,
.sc-force-controls .z-datebox input:focus,
.sc-force-controls .z-bandbox input:focus,
.sc-force-controls .z-doublebox:focus,
.sc-force-controls .z-decimalbox:focus,
.sc-force-controls .z-intbox:focus,
.sc-force-controls .z-longbox:focus,
.sc-force-controls input.z-textbox:focus {
    border-color: #2f7dbd !important;
    box-shadow: 0 0 0 2px rgba(47, 125, 189, 0.12) !important;
    outline: none !important;
}

/* Campos obligatorios sin diligenciar: los marca FormularioUtil. */
.z-textbox-text-invalid,
input.z-textbox-text-invalid,
textarea.z-textbox-text-invalid,
.z-textbox-text-invalid:hover,
input.z-textbox-text-invalid:hover,
textarea.z-textbox-text-invalid:hover,
.z-textbox-text-invalid:focus,
input.z-textbox-text-invalid:focus,
textarea.z-textbox-text-invalid:focus {
    border-color: #d32f2f !important;
    background-color: #fff5f5 !important;
    box-shadow: 0 0 0 2px rgba(211, 47, 47, 0.18) !important;
}

/* Debe prevalecer sobre el refuerzo visual de .sc-force-controls. */
.sc-force-controls select.z-textbox-text-invalid,
.sc-force-controls textarea.z-textbox-text-invalid,
.sc-force-controls input.z-textbox-text-invalid,
.sc-force-controls .sc-field-invalid,
.sc-force-controls .sc-field-invalid input,
.sc-force-controls .sc-field-invalid select,
.sc-force-controls .sc-field-invalid textarea,
.sc-force-controls .z-datebox.z-textbox-text-invalid input,
.sc-force-controls .z-bandbox.z-textbox-text-invalid input,
.sc-force-controls .z-textbox-text-invalid input,
.sc-force-controls .z-textbox-text-invalid select,
.sc-force-controls .z-textbox-text-invalid textarea,
.sc-force-controls .z-listbox.z-textbox-text-invalid {
    border-color: #d32f2f !important;
    background-color: #fff5f5 !important;
    box-shadow: 0 0 0 2px rgba(211, 47, 47, 0.18) !important;
}

a.z-button:hover,
button.z-button:hover,
span.z-button:hover,
.z-button:hover {
    transform: translateY(-1px) !important;
    filter: saturate(1.03) !important;
}

a.z-button:hover .z-button-cm,
button.z-button:hover .z-button-cm,
span.z-button:hover .z-button-cm,
.z-button:hover .z-button-cm {
    background: linear-gradient(180deg, #ffffff 0%, #dbeafe 100%) !important;
    border-color: #93c5fd !important;
    box-shadow: 0 3px 10px rgba(59, 130, 246, .18), 0 0 0 3px rgba(191, 219, 254, .42) !important;
    color: #0f3b68 !important;
}

a.z-button:active,
button.z-button:active,
span.z-button:active,
.z-button:active {
    transform: translateY(0) !important;
}

a.z-button:active .z-button-cm,
button.z-button:active .z-button-cm,
span.z-button:active .z-button-cm,
.z-button:active .z-button-cm {
    background: linear-gradient(180deg, #eaf2fb 0%, #d7e8fb 100%) !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, .08) !important;
}

.z-button[disabled],
.z-button-disd,
.z-button-disabled,
.z-button[disabled]:hover,
.z-button-disd:hover,
.z-button-disabled:hover {
    transform: none !important;
    filter: none !important;
    cursor: not-allowed !important;
}

.z-button[disabled] .z-button-cm,
.z-button-disd .z-button-cm,
.z-button-disabled .z-button-cm {
    background: linear-gradient(180deg, #f8fafc 0%, #edf2f7 100%) !important;
    border-color: #d7dee8 !important;
    color: #8a99ab !important;
    box-shadow: none !important;
    opacity: .82 !important;
}

button.z-button-os,
.z-button-os {
    min-width: 0 !important;
    padding: 6px 12px !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%) !important;
    border: 1px solid #cbd8ea !important;
    border-radius: 9px !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 6px 14px rgba(148, 163, 184, .18) !important;
    color: #17324f !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    white-space: nowrap !important;
    cursor: pointer !important;
}

button.z-button-os:hover,
.z-button-os:hover,
button.z-button-over,
.z-button-over {
    background: linear-gradient(180deg, #ffffff 0%, #dbeafe 100%) !important;
    border-color: #93c5fd !important;
    box-shadow: 0 3px 10px rgba(59, 130, 246, .18), 0 0 0 3px rgba(191, 219, 254, .42) !important;
    color: #0f3b68 !important;
    transform: translateY(-1px) !important;
}

button.z-button-os:active,
.z-button-os:active,
button.z-button-clk,
.z-button-clk {
    background: linear-gradient(180deg, #eaf2fb 0%, #d7e8fb 100%) !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, .08) !important;
    transform: translateY(0) !important;
}

button.z-button-os[disabled],
.z-button-os[disabled],
button.z-button-os-disd,
.z-button-os-disd {
    background: linear-gradient(180deg, #f8fafc 0%, #edf2f7 100%) !important;
    border-color: #d7dee8 !important;
    color: #8a99ab !important;
    box-shadow: none !important;
    opacity: .82 !important;
    cursor: not-allowed !important;
}

.z-window-highlighted,
.z-window-modal {
    border-radius: 12px !important;
    overflow: hidden !important;
    min-height: 132px !important;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .24) !important;
}

.z-window-highlighted .z-window-highlighted-header,
.z-window-modal .z-window-modal-header {
    background: linear-gradient(180deg, #f8fbff 0%, #edf4fb 100%) !important;
    border-bottom: 1px solid #d8e4f0 !important;
    color: #17324f !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 10px 14px !important;
}

.z-window-highlighted .z-window-highlighted-cnt,
.z-window-modal .z-window-modal-cnt {
    background: #ffffff !important;
    color: #23384d !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
}

.z-window-highlighted .z-messagebox,
.z-window-modal .z-messagebox {
    padding: 8px 6px 0 6px !important;
}

.z-window-highlighted .z-messagebox-button,
.z-window-modal .z-messagebox-button,
.z-messagebox-window .z-messagebox-button {
    display: inline-block !important;
    min-width: 96px !important;
    width: auto !important;
    text-align: center !important;
    padding: 6px 12px !important;
    margin: 10px 6px 14px 6px !important;
    float: none !important;
    clear: none !important;
}

.z-window-highlighted .z-messagebox-button .z-button-os,
.z-window-modal .z-messagebox-button .z-button-os,
.z-messagebox-window .z-messagebox-button .z-button-os {
    min-width: 96px !important;
    width: auto !important;
    margin: 0 auto !important;
}

.audit-detail-link {
    display: inline-block !important;
    min-width: 48px !important;
    width: 48px !important;
    height: 22px !important;
    line-height: 20px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    border: 1px solid #cbd8ea !important;
    border-radius: 7px !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%) !important;
    color: #17324f !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    text-align: center !important;
    text-decoration: none !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06) !important;
}

.audit-detail-link:hover {
    background: linear-gradient(180deg, #ffffff 0%, #dbeafe 100%) !important;
    border-color: #93c5fd !important;
    color: #0f3b68 !important;
}

.audit-detail-btn button.z-button,
.audit-detail-btn .z-button,
.audit-detail-btn .btn-z-button {
    width: 48px !important;
    min-width: 48px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    background-image: none !important;
    color: #17324f !important;
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    line-height: 20px !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: visible !important;
}

.audit-modal-close-btn.z-button-os,
.audit-modal-close-btn,
.audit-modal-close-btn .z-button-cm {
    min-width: 84px !important;
    width: auto !important;
}
