/* #region GLOBAL */
html,
body,
table,
textarea,
input,
select,
button,
span:not(.fa, .fab, .fad, .fal, .far, .fas, .as) {
    font-family: var(--font);
    font-size: var(--font-size);
    font-weight: var(--font-weight);
}

html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

body {
    display: flex;
    flex-direction: column;
    color: var(--color-text);
    background-color: var(--color-bg);
}

table {
    border-spacing: 0;
}

.hide,
.hide-forced,
.hide-config-mask{
    display: none !important;
}

a {
    text-decoration: none;
}

.list-link.list-link-disabled {
    pointer-events: none;
    cursor: default;
    color: var(--color-ico-disabled-bg);
}
/* #endregion GLOBAL */

/* #region LAYOUT */
.as-install-banner {
    display: none;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    height: 22px;
    width: 100%;
    line-height: 22px;
    background-color: var(--env-bg);
    background-image: repeating-linear-gradient(-45deg, transparent 0 10px, rgb(0 0 0 / 6%) 10px 20px);
    color: var(--env-fg);
}

.as-install-banner::before {
    content: "";
    font-size: 11px;
    font-weight: bold;
    letter-spacing: .5em;
    text-align: center;
    text-transform: uppercase;
    user-select: none;
    opacity: .8;
}

#main-section-lateral {
    overflow: auto;
    position: absolute;
    right: 0;
    bottom: 0;
    min-width: 700px;
    z-index: 10;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background-color: var(--color-bg);
    border-top: 1px solid var(--color-form-grid-border);
    box-shadow: -5px 0px 5px -3px var(--color-menubar-dropdown-shadow);
}

#main-section-lateral .dl-tabgroup {
    flex: 1;
}

#main-section-lateral:not(:has(> .dl-tabgroup)) .current-select { 
    padding: var(--padding-inside-vert) var(--padding-inside-horiz);
    padding-left: calc(16px + var(--padding-inside-horiz));
}

#main-section-lateral .tabgroup-header {
    border-radius: 0;
    padding-top: 12px;
    padding-right: calc(16px + var(--padding-inside-horiz));
    padding-left: calc(16px + var(--padding-inside-horiz));
}

#main-section-lateral .dl-tab-body {
    height: 100%;
    border-radius: 0;
    background-color: unset;
    padding-left: calc(16px + var(--padding-inside-horiz));
}

#main-section-lateral[data-active-section="sql"] {
    max-width: 700px;
}

#main-section-lateral[data-active-section="docupload"] {
    background-color: var(--color-light-bg);
}

#main-home,
#main-section {
    height: 100%;
    overflow: auto;
}

.home-logo{
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.home-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.as-scroll-container{
    height: 100%;
    overflow: auto;
}
/* #endregion LAYOUT */

/* #region FORM */
.as-form-main-container {
    display: flex;
    height: 100%;
    background: var(--color-action-bar-bg);
}

.as-form-container:first-child {
    margin-left: var(--width-action-bar);
}

.as-form-container {
    display: inline-flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    overflow: auto;
    font-family: var(--font);
    font-size: var(--font-size);
    padding: var(--margin-blocks-vert-half) 0 0 var(--margin-blocks-horiz-half);
}

.as-form {
    background: var(--color-bg);
    border-left: var(--border-width-form) solid var(--color-form-grid-border);
    margin-left: var(--margin-blocks-horiz-half);
}

.as-form:has(> .grid-template-1) .grid-main > .as-col,
.as-form:has(> .grid-template-1) .grid-main > .as-row,
.as-form:has(> .as-col) > .as-col,
.as-form:has(> .as-row) > .as-row {
    /* max-width: 1560px;*/ /*TODO: confirm if we do this? User param*/
    margin: 0 auto;
}

.as-form:has(> .grid-template-1) {
    background: unset;
    border-left: unset;
    padding: 9px 0 0 var(--margin-blocks-horiz-half);
    margin-left: unset;
}

.as-form-bar ~ .as-form:not(.as-form-modal-iframe) {
    padding-top: var(--margin-blocks-vert);
    padding-left: var(--margin-blocks-horiz);
    padding-bottom: var(--margin-blocks-vert);
    padding-right: var(--margin-blocks-horiz-half);
}

.as-form-separator {
    width: 100%;
    border-top: 1px solid var(--color-panel-header-separation);
    border-radius: var(--border-radius);
    margin: 1em auto;
}

.as-form-separator-v {
    height: 72%;
    border-left: 1px solid var(--color-secondary);
    border-radius: var(--border-radius);
    margin: auto 1em;
}

.prop-edit-mode-container {
    background: var(--color-bg);
    border-left: var(--border-width-form) solid var(--color-form-grid-border);
    box-sizing: border-box;
    padding: var(--margin-blocks-vert) var(--margin-blocks-horiz);
    margin-left: var(--margin-blocks-horiz-half);
}

.right-bottom-buttons-floating-main-container{
    position: absolute;
    right: 22px;
    bottom: 22px;
    z-index: 10;
}

.as-legend-content {
    position: absolute;
    top: 0;
    left: var(--width-action-bar);
    bottom: calc(var(--size-button) * 0.85);
    height: fit-content;
    width: max-content;
    min-width: 150px;
    z-index: 201;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    background: var(--color-modal-bg);
    border: 1px solid var(--color-modal-info-bg);
    border-radius: var(--border-radius);
    padding: 10px;
    margin-top: auto;
    margin-bottom: .8em;
    margin-right: .25em;
    margin-left: .25em;
    box-shadow: 0px 8px 16px 0px var(--color-menubar-dropdown-shadow);
}

.as-legend-content .as-legend-header {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.as-legend-content .as-legend-header div:not(.as-ico) {
    width: fit-content;
    border-radius: 50%;
    padding-bottom: .25em;
    margin-top: -30px;
    background: var(--color-modal-bg);
}

.as-legend-content .as-legend-header .legend-icon:before {
    font-size: 36px;
    color: var(--color-modal-info-bg);
}

.as-legend-content .as-legend-header .as-ico.cancel {
    position: absolute;
    top: 0;
    right: 0;
    background: none;
    border: none;
    min-width: unset;
    min-height: unset;
    height: unset;
    width: unset;
    color: var(--color-modal-info-bg);
}

.as-legend-content .as-legend-header .as-ico.cancel:hover {
    color: var(--color-modal-info-bg-dark);
}

.as-legend-content .title {
    font-weight: bold;
    font-size: 12px;
    text-transform: uppercase;
    color: var(--color-modal-info-bg);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.as-legend-content .as-legend-body {
    max-height: 600px;
    overflow-y: auto;
}

.as-legend-line {
    max-width: 150px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 8px 0;
}

.as-legend-line.as-legend-line-custom .as-legend-code {
    color: var(--color-third);
}

.as-legend-btn-more span {
    font-size: 10px !important;
}

#info-dialog-legend .modal-body-content {
    overflow: auto;
}

#info-dialog-legend .modal-body-content .as-legend-line {
    flex-direction: row;
    justify-content: start;
    max-width: unset;
    margin: 8px;
}

#info-dialog-legend .modal-body-content .as-legend-code {
    text-align: start;
    min-width: 120px;
    margin-right: 3em;
}

#info-dialog-legend .modal-body-content .as-legend-description {
    text-align: start;
}

.as-legend-line-color {
    margin: 1px 0;
}

.as-legend-color-item {
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    border-radius: var(--border-radius);
    margin: 2px 0;
}

.as-legend-color-item-part {
    --size: 10px;
    width: var(--size);
    height: calc(var(--size) * 2);
}

.as-legend-color-item-part:first-child {
    border-top-left-radius: var(--border-radius);
    border-bottom-left-radius: var(--border-radius);
}

.as-legend-color-item-part:last-child {
    border-top-right-radius: var(--border-radius);
    border-bottom-right-radius: var(--border-radius);
}

.as-legend-icon,
.as-ico.as-legend-icon {
    cursor: default;
    border: none;
}

.as-legend-description {
    overflow-wrap: normal;
    text-align: center;
    color: var(--color-panel-header-text);
    font-size: var(--font-size) !important;
}

.as-legend-code {
    font-weight: bold;
    overflow-wrap: normal;
    text-align: center;
    color: var(--color-modal-info-bg);
    font-size: var(--font-size) !important;
}

.as-form-image {
    max-width: 8em; 
    max-height: 8em;
}
/* #endregion FORM */

/* #region AS TABLE */
.as-table {
    height: 0px; /* Let it be, needed for div inside td's being able to get 100% height... */
    border-collapse: separate;
    border-spacing: 0 var(--border-spacing-tr);
    width: fit-content;
}

.as-table-fixed {
    height: 0px; /* Let it be, needed for div inside td's being able to get 100% height... */
    border-collapse: separate;
    border-spacing: var(--border-spacing-tr-hori) var(--border-spacing-tr-vert);
    width: 100%;
    table-layout: fixed;
}

.as-col > .as-table-fixed {
    margin: 0; /* To prevent .as-col > :not(.as-row) margin to apply) */
}

/* No more per-field margins inside the table */
.as-table-fixed .material-td,
.as-table-fixed .material-td-checkbox,
.as-table-fixed .material-td-docupload,
.as-table-fixed .material-td-editor,
.as-table-fixed .material-td-html-parser,
.as-table-fixed .material-td-icon,
.as-table-fixed .material-td-varbin {
    margin-right: 0;
    margin-bottom: 0;
}

.as-table-fixed .material-div {
    margin: 0;
}

.as-table-style-single td:first-child, 
.as-table-style-single th:first-child {
    text-align: start;
}

.as-table-style-single tr:last-child td {
    border-bottom: none;
} 

.as-table-style-single td.table-old-value {
    color: var(--color-modal-warning-bg);
    text-align: center;
}

.as-table-style-single td.table-new-value {
    color: var(--color-modal-success-bg);
    text-align: center;
    font-weight: bold;
}
/* #endregion AS TABLE */

/* #region CONTEXT MENU */
.context-menu, 
.context-submenu {
    position: absolute;
    background-color: var(--color-bg);
    z-index: 300;
    padding: 0;
    list-style: none;
    border: var(--border-width) solid var(--color-panel-border);
}

.context-submenu{
    left: 100%;
    width: fit-content;
    top: 0;
    display: none;
}

.context-nested{
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
}

.context-nested:hover > .context-submenu{
    display: block;
}

.context-nested > .fas{
    flex-grow: 1;
    text-align: end;
}

.context-menu li.disabled{
    cursor: not-allowed!important;
    color: lightgray;
}

.context-menu li, .context-submenu li {
    padding: var(--padding-buttons-h) var(--margin-blocks-vert);
    background-color: var(--color-light-bg);
    border-left: var(--border-width) solid var(--color-ctx-menu-border);
    cursor: default;
}

.context-menu li.context-menu-separator, 
.context-submenu li.context-menu-separator {
    padding: 0;
    border-top: var(--border-width) solid var(--color-ctx-menu-border);
}

.context-menu .context-icon
, .context-submenu .context-icon {
    width: 2em;
    display: inline-block;
}

.context-menu li:hover,
.context-submenu li:hover {
    border-left-color: var(--color-ctx-menu-border-hover);
    background-color: var(--color-list-row-bg-hover);
}

#context-menu-layer {
    display: none !important;
    z-index: 0;
}
/* #endregion CONTEXT MENU */

/* #region Preview*/
.preview-div {
    background: var(--color-bg);
    box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
    z-index: 999;
    position: absolute;
    right: 0;
    min-width: 20%;
    height: 100%;
    overflow: auto;
    padding: var(--margin-blocks-vert) var(--margin-blocks-horiz);
}

.preview-div-loading {
    display: flex;
    justify-content: center;
    align-items: center;
}

.preview-div-anim {
    animation-duration: 1s;
    animation-name: preview-div-anim;
}

@keyframes preview-div-anim{
    0%   {right: -20%;}
    100% {right: 0;}
}

.as-preview-form-container {
    display: flex;
    flex-direction: column;
    margin: var(--margin-blocks-vert) 0;
}

/* #endregion Preview*/

/* #region DL TABS */
.no-bck {
    background: transparent !important;
    padding-top: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.dl-main.dl-main-editing .tabgroup-header .dl-row {
    min-height: 0;
}

.tabgroup-header {
    background: var(--color-light-bg);
    border-radius: var(--border-radius-panel) var(--border-radius-panel) 0 0;
    display: flex;
    justify-content: space-between;
}

.tabgroup-outer-header > .tabgroup-header {
    margin-bottom: var(--margin-blocks-vert);
}

.dl-tabgroup {
    display: flex;
    flex-direction: column;
    overflow: auto;
}

.dl-tabgroup > main{
    flex-grow: 1;
}

.dl-tab-header {
    display: flex;
    margin: 0;
    padding: 0;
    cursor: pointer;
    min-height: 2.3em;
    font-size: 11px;
    user-select: none;
    z-index: 7;
}

.tabgroup-outer-header > header > .dl-tab-header {
    border-radius: var(--border-radius-panel);
    overflow: hidden;
}

.dl-tab-header > li {
    position: relative;
    border-width: var(--border-width);
    border-color: var(--color-panel-border);
    border-left: none;
    border-bottom: none;
    list-style-type: none;
    text-align: center;
    height: 100%;
    display: flex;
    align-items: center;
    font-weight: var(--font-weight-semibold);
    box-sizing: border-box;
    padding: 0 1em;
}

.dl-tab-header > li .badge {
    top: -2px;
    right: -2px;
    font-size: 9px;
    height: 10px;
    min-width: 10px;
    background-color: color-mix(in srgb, var(--color-mat-input-label), var(--color-light-bg) 50%);
}

.dl-tab-header > li.tab-active .badge {
    background-color: var(--color-primary-light);
}

.dl-tab-header:not(.custom-tab-header) > li {
    padding: .8em 1.2em;
}

.dl-tab-header > li:only-of-type {
    border-left-color: var(--color-panel-border);
    border-left-width: var(--border-width);
}

.dl-tab-header > li > i {
    margin-right: .7em;
    font-size: 1.5em;
}

.dl-tab-body {
    padding: var(--padding-inside-vert) var(--padding-inside-horiz);
    background-color: var(--color-light-bg);
    border-radius: 0 0 var(--border-radius-panel) var(--border-radius-panel);
}

.dl-tab-body > :not(:only-child) {
    margin-bottom: var(--margin-blocks-vert);
}

.dl-tab-body > .objlist .panel-header {
    display: none;
}

.tabgroup-outer-header > header {
    border-radius: var(--border-radius-panel);
}

.tabgroup-outer-header > header > .dl-tab-header > li:first-of-type {
    border-radius: var(--border-radius-panel) 0 0 var(--border-radius-panel);
}

.tabgroup-outer-header > header > .dl-tab-header > li {
    border: 0;
    border-radius: 0;
    min-width: 80px;
    justify-content: center;
}

.tabgroup-outer-header > main,
.tabgroup-outer-header > main > .dl-tab-body {
    border-radius: var(--border-radius-panel);
}

.no-pad > .dl-tabgroup {
    padding-bottom: var(--margin-blocks-vert);
}

.dl-title {
    font-size: 14px;
    font-weight: bold;
    color: rgb(var(--pcolor-text));
}
/* #endregion DL TABS */

/* #region DL LAYER */
.dl-layer > main {
    border: var(--border-width) solid var(--color-panel-border);
    border-radius: 0 0 var(--border-radius-panel) var(--border-radius-panel);
    border-top: none;
}

.dl-main.dl-main-editing .layergroup-header .dl-row {
    min-height: 0;
}

.layergroup-header {
    background: var(--color-light-bg);
    border-radius: var(--border-radius-panel) var(--border-radius-panel) 0 0;
    display: flex;
    justify-content: space-between;
}

.dl-layer > header .dl-layer-header li {
    color: var(--color-layer-text);
    border-bottom: var(--border-width) solid var(--color-layer-text);
}

.dl-layer-header {
    display: flex !important;
    margin: 0;
    padding: 0;
    cursor: default;
    height: 3.3em;
    font-size: 1.2em;
}

.dl-layer-header > li {
    border-width: var(--border-width-between-layout);
    border-color: var(--color-panel-border);
    border-left: none;
    border-bottom: none;
    list-style-type: none;
    text-align: center;
    display: flex;
    align-items: center;
    padding: 0 1.7em;
    font-weight: bold;   
    /*margin: 0 3px;*/
    float: left;
    position: relative;
    background-color: var(--color-bg-header-layer);
    transition: background-color 0.2s ease;
}

.dl-layer-header > li:after,
.dl-layer-header > li:before{
    content: " ";
    position: absolute;
    top: 0;
    right: -17px;
    width: 0;
    height: 0;
    border-top: 19px solid transparent;
    border-bottom: 17px solid transparent;
    border-left: 17px solid var(--color-bg-header-layer); 
    z-index: 2;
    transition: border-color 0.2s ease;
}

.dl-layer-header > li:before{
    right: auto;
    left: 0;
    border-left: 17px solid #fff; 
    z-index: 0;
}

.dl-layer-header > li:first-child:before {
    border: none;
}

.dl-layer-header > li:first-child {
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.dl-layer-header > li:hover {
    border-top-color: var(--color-layer-border-top-hover);
}

.dl-layer-header > li > i {
    margin-right: .7em;
    font-size: 1.5em;
}

.dl-layer-header-buttons {
    display: inline-block;
    padding: 0;
    margin: 0;
    margin-right: var(--margin-blocks-horiz);
}

.dl-layer-header-buttons li {
    display: inline-block;
}

.dl-layer-header-buttons button {
    background-color: transparent;
    border: none;
    color: var(--color-ico-bg);
    font-size: 1.6em;
    padding-top: .6em;
}

.layergroup-outer-header .dl-layer-header-buttons {
    margin-right: var(--margin-blocks-horiz-half);
}

.layergroup-outer-header .dl-layer-header-buttons button {
    padding-top: 0;
}

.dl-layer .dl-layer-header .layer-active {
    color: var(--color-layer-border-top-active);
}

.dl-layer .dl-layer-header .layer-active {
    border-bottom: 3px solid var(--color-layer-border-top-active);
    font-weight: bold;
    padding-bottom: 0px;
}

.dl-layer-body {
    display: block;
    padding: var(--padding-inside-vert) var(--padding-inside-horiz);
    background-color: var(--color-light-bg);
    border-radius: 0 0 var(--border-radius-panel) var(--border-radius-panel);
}

.dl-layer-body > .objlist .panel-header {
    display: none;
}

.layergroup-outer-header > header {
    border-radius: var(--border-radius-panel);
    margin-bottom: var(--margin-blocks-vert);
}

.layergroup-outer-header > header > .dl-layer-header > li:first-of-type {
    border-radius: var(--border-radius-panel) 0 0 var(--border-radius-panel);
}

.layergroup-outer-header > header > .dl-layer-header > li {
    border: 0;
    border-radius: 0;
}

.layergroup-outer-header > header > .dl-layer-header > li.layer-active {
    color: var(--color-light-bg);
}

.layergroup-outer-header > main,
.layergroup-outer-header > main > .dl-layer-body {
    border-radius: var(--border-radius-panel);
}

.no-pad > .dl-layer {
    padding-bottom: var(--margin-blocks-vert);
}
/* #endregion DL LAYER */

/* #region FORM CONTROL */
.as-label {
    display: flex;
    align-items: center;
    text-align: left;
    text-transform: uppercase;
    padding-right: var(--margin-blocks-horiz);
    padding-left: var(--margin-blocks-horiz);
}

.ml-inline-div {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    height: 100%;
}

.ml-inline-div .ml-inline-label {
    display: flex;
    align-items: center;
    height: var(--height-input);
    border: var(--border-width) solid transparent;
}

.ml-inline-div .ml-inline-control {
    display: block;
}

.ml-inline-div .ml-inline-label,
.ml-inline-div .ml-inline-control {
    margin-bottom: .5em;
}

.form-control {
    line-height: 1.5;
    background-image: none;
}

.objsel textarea.form-control:disabled {
    padding-right: 1.1em;
}

.objsel textarea.form-control {
    width: calc(100% - 1.1em);
}

select.form-control,
input.form-control,
textarea.form-control,
.textarea-preview.form-control,
.dl-item-input-columns {
    height: var(--height-input);
    box-sizing: content-box;
    padding: var(--padding-inside-form-controls-v) var(--padding-inside-form-controls-h);
    font-size: var(--font-size);
    display: inline-block;
}

.as-tags,
select.form-control,
input.form-control,
textarea.form-control,
.textarea-preview.form-control,
.dl-item-input-columns {
    border-radius: var(--border-radius-form-control);
    border: var(--border-width) solid var(--color-input-border);
    color: var(--color-input-text);
    background-color: var(--color-input-bg);
}

select.form-control[multiple] {
    height: unset;
}

textarea.form-control,
.textarea-preview.form-control {
    height: unset;
}

*:focus {
    outline: none;
}

.form-control-changed:not([type=checkbox], .custom-brokers select, #ico-search-filter, .menu-search-input, .as-planning-resources-filter, .as-planning-bars-filter, [readonly]) {
    background-color: var(--color-input-changed-bg) !important;
}

.form-control-changed:not([type=checkbox], .custom-brokers select, #ico-search-filter, .menu-search-input, .as-planning-resources-filter, .as-planning-bars-filter, [readonly], :required) {
    border: solid var(--border-width) var(--color-input-changed-border) !important; 
}

.as-tags:focus:not([readonly]),
.ck-content:focus:not([readonly]),
select.form-control:focus:not([readonly]),
input.form-control:focus:not([readonly]),
textarea.form-control:focus:not([readonly]) {
    border-color: transparent !important;
    outline: calc(2 * var(--border-width)) solid var(--color-mat-input-outline) !important;
}

textarea.form-control[readonly],
select.form-control[readonly],
.as-tags[readonly],
input.form-control[type="text"][readonly],
input.form-control[type="select"][readonly],
input.form-control[type="password"][readonly] {
    background-color: var(--color-mat-input-disabled-bg);
    border-color: var(--color-mat-input-disabled);
}

input.form-control[readonly].readonly-with-pointer-events:hover,
textarea.form-control[readonly].readonly-with-pointer-events:hover {
    cursor: pointer;
    outline: calc(2 * var(--border-width)) solid rgba(var(--pcolor-buttons-text), 1) !important;
}

.as-tags[disabled],
textarea.form-control:disabled,
.textarea-preview.form-control,
select.form-control:disabled,
input.form-control[type="text"]:disabled,
input.form-control[type="select"]:disabled,
input.form-control[type="password"]:disabled,
input.form-control.color-picker-input:disabled {
    color: var(--color-input-disabled-text);
    background-color: var(--color-input-disabled-bg);
    border-color: var(--color-input-disabled-border);
    border-color: var(--color-mat-input-disabled);
}

.ico-before {
    padding-left: var(--input-after-ico-padding-right) !important;
}

.ico-after {
    padding-right: var(--input-after-ico-padding-right) !important;
}

.ico-before-div,
.ico-after-div {
    display: inline-flex;
    box-sizing: border-box;
    cursor: pointer;
}

.as-list-cell-span-row .ico-before-div,
.as-list-cell-span-row .ico-after-div {
    cursor: default;
}

.ico-before-div > span,
.ico-after-div > span,
.as-list-cell-span-row .ico-before-div:hover > span,
.as-list-cell-span-row .ico-after-div:hover > span {
    opacity: .8;
    color: var(--color-mat-input-label);
}

.ico-before-div:hover > span,
.ico-after-div:hover > span {
    opacity: 1;
    color: var(--color-primary);
}

.tag-input + .ico-after-div {
    z-index: 1;
    position: relative;
}

.field-with-ico{
    display: flex;
    align-items: center;
}

.as-obj-table-cell .field-with-ico {
    position: relative;
    justify-content: center;
}

.minus-ico > span {
    z-index: 1;
    margin-right: -1.5em;
}

.minus-ico > span:before {
    padding-left: .8em;
}

.fs-ico > span, 
.copy-ico > span, 
.flag-ico > img, 
.search-ico > span, 
.plus-ico > span, 
.color-picker-ico > span {
    margin-left: -1.5em;
}

.flag-ico > img {
    cursor: default;
    height: 10px;
    width: 10px;
    border-radius: 50%;
}

.as-list-cell-span .flag-ico > img {
    height: 12px;
    width: 12px;
    margin-left: .5em;
}

.browser-ico > span {
    margin-left: -1.8em;
}

.material-td:has(textarea) > .search-ico {
    vertical-align: top;
    margin-top: 0.5em;
}

textarea + .fs-ico {
    position: absolute;
    top: 0;
    right: 0;
    margin-top: 1em;
}

textarea {
    overflow: auto;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge legacy */
}

textarea::-webkit-scrollbar {
    display: none
}

.preview-ico > span,
.ml-ico > span,
.datepicker-ico > span {
    margin-left: -1.5em;
    font-size: 1.2em;
}

.calendar-selected > span{
    background: var(--color-primary) !important;
    color: var(--color-light-text) !important;
}

.ico-before.hide ~ .ico-before-div,
.ico-after.hide ~ .ico-after-div,
.form-control.hide ~ .input-rel-btn {
    display: none! important;
}

input:required,
textarea:required,
select:required,
.as-tags[required],
select[required-sel-multi] {
    border: var(--border-width) solid var(--color-input-border-required) !important;
    transition: box-shadow .2s ease-in;
}

input.search:required,
textarea.search:required,
select:required,
select[required-sel-multi] {
    border: var(--border-width) solid var(--color-input-border-required);
    transition: box-shadow .2s ease-in;
}

.bad-search{
    margin-left: var(--margin-blocks-horiz);
    float:right;
    margin-top:-6px;
    margin-right:-6px;
}

.input-highlight,
input.input-highlight,
select.input-highlight,
textarea.input-highlight {
    background-color: var(--color-input-bg-required-error) !important;
}

input.required-not-filled,
select.required-not-filled,
textarea.required-not-filled,
input.pattern-invalid,
select.pattern-invalid,
textarea.pattern-invalid,
input.invalidValueMask {
    background-color: var(--color-input-bg-required-error) !important;
}

input.invalid-temp-value,
select.invalid-temp-value,
textarea.invalid-temp-value
{
    background-color: var(--color-input-bg-invalid-temp) !important;
}


input.mask-error {
    color: var(--color-input-error);
}

input.form-error {
    border-width: var(--border-width-md);
    border-color: var(--color-input-border-error);
}

.input-rel-btn {
    margin-left: 3px;
    font-size: 1.5em;
    position: relative;
    cursor: pointer;
}

.as-list-cell-span-row .input-rel-btn {
    cursor: default;
}

.as-list-cell-span-row .input-rel-btn:hover {
    color: var(--color-mat-input-label) !important;
}

.input-rel-btn:not(.fa-trash):not(.fa-eraser):hover {
    color: var(--color-modal-confirm-bg-dark);
}

.input-rel-btn.fa-eraser:hover {
    color: var(--color-toolbar-list-ico-warning);
}

.ico-warning{
    color: var(--color-toolbar-list-ico-warning);
}

.ico-danger{
    color: var(--color-toolbar-list-ico-danger);
}

.input-rel-btn.fa-trash:hover {
    color: var(--color-input-border-required);
}

input.form-control:not([readonly]):not([disabled]) + .color-picker-ico .colorpicker-sample {
    border: var(--border-width) solid var(--color-input-border);
    border-top-right-radius: var(--border-radius);
    border-bottom-right-radius: var(--border-radius);
    min-height: 20px;
    max-width: 22px;
    margin-left: 4px;
}

input.form-control[readonly] + .color-picker-ico .colorpicker-sample,
input.form-control[disabled] + .color-picker-ico .colorpicker-sample {
    border: var(--border-width) solid var(--color-input-border);
    border-top-right-radius: var(--border-radius);
    border-bottom-right-radius: var(--border-radius);
    min-height: 20px;
    max-width: 22px;
    margin-left: -2px;
}

.form-field + .fa-info-circle {
    margin-left: var(--margin-blocks-horiz-half);
    margin-right: var(--margin-blocks-horiz-half);
}

input.tag-input{
    display: none;
}

.ico-warning{
    color: rgb(var(--scolor-warning-bg));
}

.lang-flag {
    width: 16px;
    padding-right: .5em;
}

.radio-lb {
    vertical-align: super;
}

.radio-option {
    display: flex;
    align-items: center;
}

/* Radio Img Btn */
.radio-img-btn {
    width: fit-content;
    height: fit-content;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: var(--color-print-btn-bg);
    padding-top: 1em !important;
    padding-bottom: 1em !important;
    padding-left: 1.5em !important;
    padding-right: 1.5em !important;
    margin-right: .5em;
    border: var(--border-width-md) solid;
    border-color: var(--color-print-border);
    border-radius: 10px;
    cursor: pointer;
    user-select: none;
}

.radio-img-btn-active {
    width: fit-content;
    height: fit-content;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: var(--color-print-btn-bg);
    padding-top: 1em !important;
    padding-bottom: 1em !important;
    padding-left: 1.5em !important;
    padding-right: 1.5em !important;
    margin-right: .5em;
    border: var(--border-width-md) solid;
    border-color: var(--color-print-border-active);
    border-radius: 10px;
    cursor: pointer;
    user-select: none
}

.radio-img-btn label, .radio-img-btn-active label {
    cursor: pointer;
    padding-top: .5em;
}

.radio-img-btn:not(.disabled-control):hover, .radio-img-btn-active:not(.disabled-control):hover {
    box-shadow: 4px 4px 8px var(--color-print-btn-hover);
}

.radio-img-btn.disabled-control  {
    cursor: default;
    pointer-events: none;
}

.radio-img-btn-active.disabled-control {
    cursor: default;
    pointer-events: none; 
    border-color: var(--color-print-title);
}
/* #endregion FORM CONTROL */

.main-section-lateral-grip {
    display: none;
}

#support-modal .left-border,
#main-section-lateral .main-section-lateral-grip {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 10;
    height: 100%;
    width: 14px;
    cursor: e-resize;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--color-input-border) !important;
    border-left: 1px solid var(--color-input-border) !important;
    background-color: var(--color-resize-border) !important;
    margin: 0;
}

#support-modal .left-border span,
.main-section-lateral-grip span {
    color: var(--color-input-border) !important;
}

.historic-cont,
.message-cont {
    max-height: 500px;
    overflow: auto;
}

#main-section-lateral .historic-cont,
#main-section-lateral .message-cont,
#main-section-lateral .uploadDoc-cont  {
    height: inherit;
    max-height: none !important;
}

#main-section-lateral .uploadDoc-cont {
    max-height: 100% !important;
    overflow-y: auto;
}

.historic-cont > .dl-panel:last-child {
    margin-bottom: var(--margin-blocks-vert);
}

/* #region WIZARD */
.dl-layer-wizard,
.db-wizard-body,
.dl-layer-body {
    height: calc( 100% - 20px)
}

.dl-layer-body:not([style*="display: none"]) {
    display: flex!important;
    flex-direction: column;
}

.wizard-footer {
    width: 100%;
    display: flex;
    justify-content: space-between;
    z-index: 2;
    align-items: flex-end;
    padding: .2em 0;
    margin-top: auto;
}

.main-section-wizardmultisave{
    background: inherit;
}

.ico-status{
    margin-left: 7px;
}
/* #endregion WIZARD */

/* #region HOME */
.home-container {
    padding: var(--margin-blocks-vert) var(--margin-blocks-horiz);
}

.home-container .home-item {
    overflow-y: auto;
}

.home-container .home-item .as-list-main-container {
    max-height: 600px;
}
/* #endregion HOME */

/* #region SHORTCUTS*/
.lock-page {
    background-color: rgb(0, 0, 0, 200);
    position: fixed;
    height: 100%;
    width: 100%;
    z-index: 999;
    opacity: .35;
}

.lock-page > div:first-child {
    top: 50%;
    left: 50%;
    position: absolute;
    font-size: 2em;
    color: white;
}

.inline{
    display: inline-flex;
}
.invisible{
    visibility: hidden;
}
.col-justify-center {
    display: flex;
    justify-content: center;
}
.s-between {
    justify-content: space-between;
}
.unselectable {
    user-select: none;
}
.txt-lower {
    text-transform: lowercase;
}
.txt-upper {
    text-transform: uppercase;
}
.pointer {
    cursor: pointer;
}
.alignC { text-align: center; }
.alignR { text-align: right; }
.alignL { text-align: left; }

.icon-md{
    font-size: 12px;
}
/* #endregion SHORTCUTS*/

#region PAGINATION
.pagination-block input, 
.pagination-block select{
    font-size: 1em;
}

.toolbar-group.pagination-block {
    flex-wrap: nowrap;
}

.pagination-container:empty{
    min-width: 120px;
}

.pagination-total {
    display: flex;
    cursor: default;
    align-items: center;
    margin-left: .25em;
}

.pagination-total input:not(:disabled) {
    cursor: pointer;
}

.pagination-total .list-paginator-page-size,
.pagination-total .list-total-records {
    padding: 0;
    border: none;
    background: transparent;
    color: var(--color-toolbar-text);
    text-align: center;
    min-width: 3ch;
}

.pagination-block .pagination-total-separator {
    border: none;
    padding: 0;
    margin: 0 .25em;
    width: .5ch;
    background: transparent;
    color: var(--color-pagination-text)
}

.pagination-block .fa-hourglass-half{
    min-width: 2ch;
    text-align: center;
}

.pagination {
    margin: 0;
    padding: 0;
    display: flex;
    color: var(--color-pagination-text);
}

.pagination > li {
    cursor: pointer;
    font-weight: normal;
    display: inline-flex;
    height: var(--size-button);
    width: calc(var(--size-button) * 0.7);
    justify-content: center;
    align-items: center;
    background-color: var(--color-toolbar-ico-bg);
    color: var(--color-toolbar-ico-text);
}

.pagination > li > a,
.pagination > li > span {
    font-size: .9em;
}

.pagination > li.active > a {
    color: unset;
}

.pagination .list-paginator:not(.showPage) {
    width: unset;
    cursor: default !important;
    padding: 0 .5em;
}

.pagination .list-paginator-first,
.pagination .list-paginator-prev,
.pagination .list-paginator-next,
.pagination .list-paginator-last {
    font-size: 2em;
}

.pagination .disabled a {
    color: var(--color-pagination-text);
}

.pagination > li:not(.list-paginator,.disabled):hover {
    cursor: pointer;
    color: var(--color-primary);
}

.pagination > .active {
    background-color: var(--color-pagination-active-bg) !important;
    color: var(--color-pagination-active-text);
}

.pagination .disabled {
    cursor: not-allowed;
}

.pagination > li:first-of-type {
    border-top-left-radius: var(--border-radius);
    border-bottom-left-radius: var(--border-radius);
    padding-left: .25em;
}

.pagination > li:last-of-type {
    border-top-right-radius: var(--border-radius);
    border-bottom-right-radius: var(--border-radius);
    border-right-width: var(--border-width);
    padding-right: .25em;
}

.list-hourglass {
    cursor: pointer;
}

li.list-paginator .list-total-pages {
    border: none;
    background: none;
    padding: 0;
}

.list-paginator:hover select {
    background-color: transparent;
}

.pagination li.list-paginator.showPage {
    width: var(--size-button);
}

.list-page-separator {
    padding: 0;
    margin: 0.5em;
}

.list-page-selector {
    cursor: pointer;
    display: block;
    appearance: none;
    color: var(--color-input-text);
    background-color: var(--color-toolbar-ico-bg);
    border: none;
    height: var(--size-button) - 6px !important;
    text-align: center;
}

.custom-showPage {
    width: 2ch;
    padding: 0;
}
/* #endregion PAGINATION */

/* #region DROPDOWN MULTI*/

.div-select-multi {
    display: flex;
    flex-grow: 1;
    justify-content: space-between;
    overflow: auto;
    max-height: 50vh;
    padding-left: .75em;
    padding-right: .75em;
}

.div-select-multi .sel-mul-source,
.div-select-multi .sel-mul-dest {
    display: flex;
    align-items: flex-start;
    margin: 0.25em;
    background: var(--color-input-bg);
    border: var(--border-width) solid var(--color-panel-header-bg);
    border-radius: var(--border-radius);
    flex-grow: 1;
    overflow: auto;
    min-width: 150px;
}

.div-select-multi .modal-sel-multi-arrows,
.div-select-multi .modal-sel-dest-arrows {
    padding: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.div-select-multi .fal {
    cursor: pointer;
    text-align: center;
    font-size: 2em;
    color: var(--cond-color-form-border);
}

.div-select-multi .fal:hover {
    color: var(--color-primary);
}

.sel-mul-source[disabled] + .modal-sel-multi-arrows, 
.sel-mul-dest[disabled] + .modal-sel-dest-arrows {
    opacity: .2;
    pointer-events: none;
}

.custom-select-multi {
    cursor: pointer;
    min-height: 22px;
    border-radius: var(--border-radius);
    padding-top: .5em;
    padding-right: 2em;
    padding-bottom: .5em;
    padding-left: .5em;
    color: var(--color-ico-text);
    background-color: var(--color-ico-bg);
    height: 100% !important;
    width: 100%;
    flex-wrap: wrap;
}

.custom-select-multi.over {
    background-color: rgba(66, 133, 244, 0.2) !important;
}

.custom-select-multi.disabled {
    cursor: default;
    color: var(--color-input-disabled-text);
    background-color: var(--color-input-disabled-bg);
}

.custom-select-multi .select-multi-toggler {
    cursor: pointer;
    position: absolute;
    right: .5em;
    box-sizing: border-box;
    color: var(--color-text);
    width: 1em;
}

.custom-select-multi:not(.disabled) .select-multi-toggler:hover {
    color: var(--color-primary);
}

.custom-select-multi .custom-select-multi-opt {
    cursor: move !important;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    overflow: hidden;
    color: var(--color-light-text);
    background-color: var(--color-modal-info-bg);
    border-radius: 8px;
    box-shadow:
        0 2px 4px -1px hsl(220 3% 15% / 0.10),
        0 8px 16px -4px hsl(220 3% 15% / 0.10),
        0 24px 48px -12px hsl(220 3% 15% / 0.12);
    padding: 0;
    margin: .5em;
    z-index: 2;
}

.custom-select-multi .custom-select-multi-opt.dragging {
    z-index: 3;
}

.custom-select-multi .custom-select-multi-opt span:first-child {
    padding: .75em .5em .75em 1em;
}

.custom-select-multi .custom-select-multi-opt span:last-child {
    cursor: pointer !important;
    align-self: center;
    color: var(--color-modal-info-bg-dark);
    padding: .75em 1em .75em .5em;
}

.custom-select-multi:not(.disabled) .custom-select-multi-opt:hover {
    cursor: pointer;
    background-color: var(--color-modal-info-bg-dark);
}

.custom-select-multi:not(.disabled) .custom-select-multi-opt:hover .fa {
    color: var(--color-modal-info-bg-light);
}

.material-td:has(.select-multi-options-container:not(.hide)) .custom-select-multi  {
    border-color: transparent !important;
    outline: calc(2 * var(--border-width)) solid rgba(var(--pcolor-buttons-text), 1) !important;
}

.material-td:has(.select-multi-options-container:not(.hide)) .custom-select-multi ~ label {
    color: var(--color-primary) !important;
}

.select-multi-options-container {
    border-radius: var(--border-radius);
    background-color: var(--color-grid-main-bg);
    display: flex;
    flex-direction: column;
    max-height: 200px;
    overflow-y: auto;
    width: 100%;
    margin-top: -8px;
    margin-bottom: 8px;
    padding-top: 8px;
}

.select-multi-options-container .btn-group {
    margin: 8px;
}

.select-multi-options-container .btn-group button {
    width: 100%;
    border: none !important;
}

.select-multi-options-container .btn-group button .fal {
    color: var(--color-modal-info-bg);
    margin-right: .8em;
}

.select-multi-options-container .btn-group button:hover .fal {
    color: var(--color-light-text);
}

.select-multi-options-container .options-grid {
    margin: 8px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.select-multi-options-container .options-grid span {
    cursor: pointer;
}

.select-multi-options-container .options-grid .material-td-checkbox .as-label {
    text-wrap: nowrap !important;
}

/* #endregion DROPDOWN MULTI */

/* #region CUSTOM SELECT && DATALIST */
.custom-datalist,
.custom-select,
.custom-select-multi {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    border: 1px solid var(--color-input-border);
    border-radius: var(--border-radius);
    color: var(--color-ico-text);
    background-color: var(--color-ico-bg);
    position: relative;
    user-select: none;
    height: var(--size-button);
    box-sizing: border-box;
}

.custom-datalist select,
.custom-select select,
.custom-select-multi select {
    appearance: none;
    border: none;
    border-radius: var(--border-radius);
    padding-left: var(--margin-blocks-horiz-half);
    padding-right: 2em;
    color: var(--color-ico-text);
    background-color: var(--color-ico-bg);
    height: 100%;
    width: 100%;
}

.custom-datalist::after,
.custom-select::after {
    content: "\f078";
    font-family: var(--font-awesome);
    position: absolute;
    right: .5em;
    pointer-events: none;
    box-sizing: border-box;
    font-size: 10px;
    color: var(--color-toolbar-form-btn);
    width: 1em;
}

.toolbar-group .btn-group .custom-select {
    border: 0;
}

.custom-datalist {
    position: relative;
}

.custom-datalist > span {
    font-size: 12px;
    color: var(--color-primary);
}

.custom-datalist-input {
    font-size: 12px;
    border: none;
    border-radius: var(--border-radius);
    background: none;
    appearance: none;
    color: var(--color-text);
    width: 100%;
    height: 100%;
    padding: 0 var(--margin-blocks-horiz-half);
}

.custom-datalist-select {
    position: absolute;
    top: calc(var(--size-button));
    left: 0;
    height: auto !important;
    color: var(--color-toolbar-form-custom-item) !important;
    border: 1px solid var(--color-toolbar-form-custom-item-border) !important;
    background-color: var(--color-toolbar-form-custom-item-bg) !important;
    box-shadow: var(--box-shadow-panel-secondary);
    padding-right: var(--margin-blocks-horiz-half) !important;
    z-index: 3;
}

.custom-datalist-select option {
    cursor: pointer;
    color: var(--color-toolbar-datalist-opt-text);
    border-radius: var(--border-radius);
    padding: .5em;
}

.custom-datalist-select option:checked,
.custom-datalist-select option:focus,
.custom-datalist-select option:active,
.custom-datalist-select option:hover {
    color: var(--color-toolbar-datalist-opt-hover-text);
    background-color: var(--color-toolbar-datalist-opt-hover);
}

.custom-datalist-invisible {
    height: 0;
    visibility: hidden;
}
/* #endregion */

/* #region NOTIFICATIONS */
.notifications-div {
    justify-content: center;
    align-items: center;
}

.notifications-single {
    justify-content: center;
    align-items: start;
}
/* #endregion SIDE NOTIFICATIONS */

/* #region BOTTOM BANNER **/
.bottom-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    color: white;
    background-color: var(--color-bottom-banner);
    border-radius: var(--border-radius);
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: 22px;
    padding: .25em 0;
    z-index: 11;  
}

.bottom-banner > div {
    font-size:1.2em;
    display: flex;
}

.bottom-banner button {
    margin-left: 1em;
    color: var(--color-toolbar-ico-text);
    border-color: var(--color-toolbar-ico-border);
    background-color: var(--color-toolbar-ico-bg);
}

.bottom-banner-close {
    cursor: pointer;
    position: absolute;
    right: 5px;
    top: 5px;
    color: var(--color-toolbar-ico-text);
    font-size: 17px;
}

.bottom-banner #tracing-duration {
    display: inline;
}
/* #endregion BOTTOM BANNER */

/* #region DOCUPLOAD */
.varbin-field-div,
.docupload-field-div,
.icon-field-div {
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: center;
    position: relative;
    box-sizing: border-box;
    overflow: hidden;
    min-height: 22px;
    max-width: 22em;
}

.icon-field-div .field-placeholder > span:not(.fa-xs):not(.fa-sm):not(.fa-lg):not(.fa-xs):not(.fa-3x) {
    font-size: 2em;
}

.docupload-file {
    display: none;
}

.doc-empty-file,
.btn-remove-docupload {
    width: 100% !important;
    border-right: none !important;
    border-bottom: none !important;
    border-left: none !important;
    border-radius: 0 !important;
}

.varbin-download-button {
    color: var(--color-toolbar-form-btn) !important;
    border-top: 1px solid var(--color-input-border) !important;
    border-right: 0 !important;
    border-left: 0 !important;
    border-bottom: 0 !important;
    border-radius: 0 !important;
}

.varbin-download-button:not(:disabled):hover {
    border-color: var(--color-ico-new);
    background-color: var(--color-ico-new);
}

.varbin-download-button.as-btn:not(:disabled):hover,
.varbin-download-button.as-btn:not(:disabled):hover > span:first-child {
    color: var(--color-light-text) !important;
}

.material-td-docupload .btn-remove-docupload,
.material-td-icon .btn-remove-docupload,
.material-td-varbin .btn-remove-docupload,
.material-td-varbin .doc-empty-file {
    margin-left: 0 !important;
}

.docupload-img-preview {
    cursor: pointer;
    flex: 1;
    width: 100%;
    min-height: 8em;
    object-fit: cover;
}

.field-placeholder {
    cursor: pointer;
    flex: 1;
    width: 100%;
    min-height: 8em;
    color: var(--color-mat-input-label);
    display: flex;
    align-items: center;
    justify-content: center;
}

.field-placeholder:hover {
    background-color: var(--color-list-row-bg-hover) !important;
}

.field-placeholder-disabled {
    flex: 1;
    width: 100%;
    min-height: 8em;
    color: var(--color-mat-input-label);
    background-color: var(--color-input-disabled-bg);
    border-radius: var(--border-radius);
    display: flex;
    align-items: center;
    justify-content: center;
}

.docupload-dropzone {
    display: flex;
    align-items: center;
    justify-content: center;
    border: dashed 1px var(--color-mat-input-label);
    border-radius: var(--border-radius);
    width: 100%;
    min-height: 250px;
    min-width: 500px;
    overflow-y: auto;
    background-color: var(--color-grid-main-bg);
    cursor: pointer;
    box-sizing: border-box;
}

.docupload-dropzone span {
    opacity: 0.8;
    color: var(--color-mat-input-label);
}

.docupload-dropzone:hover,
.docupload-dropzone.inDragging {
    border: dashed 1px var(--color-modal-confirm-bg);
    background-color: var(--color-list-row-bg-hover) !important;
}

.docupload-dropzone:hover span,
.docupload-dropzone.inDragging span {
    color: rgb(var(--pcolor-buttons-text));
}

.docupload-dropzone:focus {
    outline: none !important;
}

.docupload-preview {
    background: rgba(255,255,255,0.8);
    position: relative;
    display: inline-block;
    margin: 17px;
    vertical-align: top;
    border: 1px solid #acacac;
    border-radius: var(--border-radius);
    padding: 6px 6px 6px 6px;
    z-index: 3;
}

.docupload-image-preview {
    position: absolute;
    top: 0;
    left: 0;
    width: 100px;
    height: 100px;    
    object-fit: cover;
}

.docupload-details {
    width: 100px;
    height: 100px;
    position: relative;
    background: #ebebeb;
    margin-bottom: 22px;
}

.docupload-filename {
    overflow: hidden;
    height: 100%;
}

.docupload-size {
    position: absolute;
    bottom: -28px;
    left: 3px;
    height: 28px;
    line-height: 28px;
}

.docupload-info {
    margin-left: 0;
}

.doc-file-loaded {
    opacity: 0.9;
}
/* #endregion DOCUPLOAD */

/* #region GAUGE*/
.gauge, 
.gauge-legend, 
.gauge-body{
    display: flex;
}
.gauge{
    flex-direction: column;
}
.gauge span{    
    white-space: nowrap;
}
.gauge-legend div{
    margin-right: 4em;
}
.gauge-legend div:last-child{
    margin-right: auto;
}
.gauge-body div{
    font-weight: bold;
    text-align: center;
    padding: 0.5em 2em;
}

.gauge-body div:first-child{
    border-top-left-radius: var(--border-radius-panel);
    border-bottom-left-radius: var(--border-radius-panel);
}

.gauge-body div:last-child{
    border-top-right-radius: var(--border-radius-panel);
    border-bottom-right-radius: var(--border-radius-panel);
}

.gauge-empty{
    font-size: 18px;
}
/*#endregion End GAUGE*/

/* #region IFRAME */
.iframeOverride{
    width: 100%;
    height: 100%;
    border: none;
    overflow: hidden;
    position: absolute;
}

.modal-iframe{
    width: 100%;
    height: 100%;
    border: none;
    overflow: hidden;
}
/* #endregion IFRAME */

/* #region Listval modal */
.modal-listval {
    max-height: 500px; 
    overflow: auto;
    padding: .5em;
}

.modal-table-listval {
    max-height: 5%;
}
/* #endregion Listval modal */

/* #region LABEL +  CHECKBOX */
.label-plus-check {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: var(--border-radius);
    background-color: #d3e5f1;
    padding-top: var(--margin-blocks-vert-half);
    padding-bottom: var(--margin-blocks-vert-half);
}

.label-plus-check label {
    color: black;
    margin-bottom: var(--margin-blocks-vert-half);
}
/* #endregion*/

/* #region Scrollbars (won't work in firefox :( )*/
::-webkit-scrollbar {
    width: var(--size-scrollbar);
    height: var(--size-scrollbar);
    background-color: #F5F5F5;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background-color: rgb(85, 85, 85, .55);
}

::-webkit-scrollbar-track {
    border-radius: 10px;
    background-color: #F5F5F5;
}

::-webkit-scrollbar-thumb:hover {
    background: #444;
}
/* #endregion Scrollbars*/

/* #region Iframe */
.as-iframe{
    width: 100%;
    height: 100%;
    border: none;
}
/* #endregion Iframe */

/* #region Thousands separtor*/
.thousands-sep{
    display: inline-block;
    width: 3px;
    user-select: none;
}
/* #endregion Thousands separtor*/

/* #region Map*/
.map-container{
    height: 100%;
}
/* #endregion Map*/

/* #region Dl Block */
.as-block-highlighted,
.as-col > .as-block-highlighted{
    background: var(--color-panel-header-bg);
    color: var(--color-panel-header-text);
    text-align: center;
    padding: 13px;
    border-radius: var(--border-radius);
    margin: 5px 1px 5px 1px;
}

.as-block-highlighted > *{
    display: inline-block;
}
/* #endregion */

/* #region Material */
.material-div {
    display: inline-block;
}

.material-td,
.material-td-docupload,
.material-td-editor,
.material-td-html-parser,
.material-td-icon,
.material-td-varbin {
    position: relative;
    margin-top: 0;
    margin-right: var(--material-td-margin-right);
    margin-bottom: var(--material-td-margin-bottom);
    margin-left: 0;
}

.material-td-margin {
    margin-top: .5em;
}

.dl-input {
    padding-top: 0;
    padding-right: var(--material-td-padding-right);
    padding-bottom: var(--material-td-padding-bottom);
    padding-left: 0;
}

td.dl-input:empty {
    width: 0;
}

.material-td .custom-select-multi ~ label,
.material-td .form-control ~ label,
.material-td-docupload .docupload-field-div ~ label,
.material-td-editor .as-rich-editor ~ label,
.material-td-icon .icon-field-div ~ label,
.material-td-varbin .varbin-field-div ~ label,
.material-td-html-parser .form-control ~ label {
    color: var(--color-mat-input-label);
	text-transform: uppercase;
    position: absolute;
    width: auto;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    display: flex;
    align-items: center;
    padding: 0 0.5rem;
    transform: translate(0);
    transition: transform 0.15s ease-out, font-size 0.15s ease-out, background-color 0.2s ease-out, color 0.15s ease-out;
}

.material-td label > span,
.material-td-docupload label > span,
.material-td-editor label > span,
.material-td-html-parser label > span {
    display: inline-block;
    font-size: 9px;
    background-color: transparent;
    border-radius: var(--border-radius-form-control);
    line-height: normal;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding-left: .35rem;
    padding-right: .35rem;
}

.material-td label .lang-flag {
    width: 9px;
    padding-right: .5em;
}

.form-control,
.material-td .form-control {
    margin-top: .25em;
	margin-bottom: .25em;
    font-size: 11px;
}

.form-control:not([type="checkbox"]):not([type="radio"]),
.material-td .form-control:not([type="checkbox"]):not([type="radio"]) {
    min-height: 22px;
}

/* Important: add [value] for textareas to work */
.material-td .form-control:focus:not([readonly]) ~ label, 
.material-td .form-control[value]:not([value=""]) ~ label,
.material-td:has(.minus-ico) .form-control[mask-type="numeric"] ~ label {
    transform: translate(0, -48%);
}

/* Important: add [value] for textareas to work */
.material-td .form-control:focus:not([readonly]) ~ label span, 
.material-td .form-control[value]:not([value=""]) ~ label span,
.material-td:has(.minus-ico) .form-control[mask-type="numeric"] ~ label span {
    background-color: var(--color-mat-input-bg);
}

/**
 * FOCUS
 */
.material-td .form-control:focus:not([readonly]) {
	outline-color: var(--color-mat-input-outline);
}

.material-td:focus-within input.search:required ~ label,
.material-td:focus-within .form-control:not([readonly]) ~ label {
	color: var(--color-mat-input-outline) !important; 
}

/**
 * READ ONLY
 */
.material-td textarea.form-control[readonly] ~ label span,
.material-td .textarea-preview.form-control ~ label span,
.material-td select.form-control[readonly] ~ label span,
.material-td .as-tags[readonly] ~ label span,
.material-td input.form-control[type="text"][readonly] ~ label span,
.material-td input.form-control[type="select"][readonly] ~ label span,
.material-td input.form-control[type="password"][readonly] ~ label span {
    color: var(--color-mat-input-disabled-txt);
}

/**
 * FORM CONTROL CHANGED
 */
.material-td .form-control-changed:not(.custom-brokers select, :required, .as-planning-resources-filter, .as-planning-bars-filter) ~ label {
    color: var(--color-input-changed-txt) !important; 
}

/**
 * FORM CONTROL REQUIRED
 */
.material-td .form-control:required ~ label {
    color: var(--color-input-border-required) !important; 
}

/**
 * CHECKBOXES / SWITCHS
 */
.material-td-checkbox {
    width: fit-content;
    min-height: 30px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: start;
    margin-right: var(--material-td-margin-right);
    margin-bottom: var(--material-td-margin-bottom);
}

.material-td-checkbox label.as-label {
    cursor: pointer;
}

.material-td-checkbox .list-link {
    order: 2; /* To add link right */
}

/**
 * SELECTS
 */
.material-td select.form-control:focus:not([readonly]) ~ label, 
.material-td select.form-control:has(option:checked) ~ label {
    transform: translate(0, -48%);
}

.material-td select.form-control:focus:not([readonly]) ~ label span, 
.material-td select.form-control:has(option:checked) ~ label span {
    background-color: var(--color-mat-input-bg);
}

/**
 * SELECT MULTI
 */
.material-td:has(.custom-select-multi) {
    flex-direction: column;
}

.material-td:has(.select-multi-options-container:not(.hide)) .custom-select-multi ~ label {
    transform: translate(0, -51%);
}

.material-td .custom-select-multi:has(.custom-select-multi-opt) ~ label {
    transform: translate(0, -52%);
}

.material-td .custom-select-multi ~ label span {
    background-color: var(--color-mat-input-bg);
}

/**
 * TEXTAREAS
 */
/* Important: add [value] for textareas to work */
.material-td textarea.form-control:focus:not([readonly]) ~ label, 
.material-td textarea.form-control[value]:not([value=""]) ~ label, 
.material-td textarea.form-control:not(:empty) ~ label,
.material-td .textarea-preview.form-control:focus:not([readonly]) ~ label, 
.material-td .textarea-preview.form-control[value]:not([value=""]) ~ label, 
.material-td .textarea-preview.form-control:not(:empty) ~ label {
    transform: translate(0, -50%);
}

/* Important: add [value] for textareas to work */
.material-td textarea.form-control:focus:not([readonly]) ~ label span, 
.material-td textarea.form-control[value]:not([value=""]) ~ label span, 
.material-td textarea.form-control:not(:empty) ~ label span,
.material-td .textarea-preview.form-control:focus:not([readonly]) ~ label span, 
.material-td .textarea-preview.form-control[value]:not([value=""]) ~ label span, 
.material-td .textarea-preview.form-control:not(:empty) ~ label span {
    background-color: var(--color-mat-input-bg);
}

/**
 * HTML PARSER
 */
.material-td-html-parser textarea.form-control {
    padding-top: 8px;
    padding-bottom: 4px;
    margin-top: 0px;
    border-top-left-radius: 0px;
}

.material-td-html-parser textarea.form-control:focus:not([readonly]) ~ label, 
.material-td-html-parser textarea.form-control[value]:not([value=""]) ~ label, 
.material-td-html-parser textarea.form-control:not(:empty) ~ label {
    transform: translate(0, -50%);
}

.material-td-html-parser textarea.form-control:focus:not([readonly]) ~ label span, 
.material-td-html-parser textarea.form-control[value]:not([value=""]) ~ label span, 
.material-td-html-parser textarea.form-control:not(:empty) ~ label span {
    background-color: var(--color-mat-input-bg);
}

/**
 * ML INPUTS
 */
.material-ml {
    padding-top: 1px;
    padding-bottom: 1px;
    margin-top: .75em;
}

.material-ml:first-of-type {
    margin-top: 0px;
}

.material-td .ml-fields {
    position: absolute;
    top: calc(22px + .75em);
    z-index: 99;
    width: 100%;
    background-color: var(--color-panel-bg);
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow-panel);
    padding: var(--material-td-margin-bottom) var(--material-td-margin-right);
}

.material-td .ml-fields .material-td {
    margin-top: .5em;
    margin-bottom: .5em;
}

.ml-fields-grid {
    display: grid; 
    grid-template-columns: 1fr 1fr;
}

.ml-fields-grid .material-td:nth-child(3) {
    margin-top: 0;
}

/**
 * IMAGE
 */
.material-td > img:not(.hide) {
    max-height: 60px;
    object-fit: cover;
    margin: auto;
}

/**
 * DOCUPLOAD
 */
.material-td-docupload .docupload-field-div {
    border-radius: var(--border-radius-form-control);
    border: var(--border-width) solid var(--color-input-border);
    color: var(--color-input-text);
    background-color: var(--color-input-bg);
}

.material-td-docupload .docupload-field-div ~ label {
    transform: translate(0, -49%);
}

.material-td-docupload .docupload-field-div ~ label span {
    background-color: var(--color-mat-input-bg);
}

/**
 * RICH EDITOR
 */
.material-td-editor .as-rich-editor {
    display: flex;
    flex-direction: column;
    color: var(--color-input-text);
    background-color: var(--color-input-bg);
    margin-top: .25em;
	margin-bottom: .25em;
    font-size: 11px;
}

.material-td-editor .as-rich-editor ~ label {
    z-index: 2;
    transform: translate(0, -50%);
}

.material-td-editor .ql-container,
.material-td-editor .ql-container .ql-editor {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.material-td-editor .as-rich-editor:not(:has(.ql-toolbar)):has(.ql-container.ql-disabled):has(.ql-editor.ql-blank) ~ label {
    transform: translate(0);
}

.material-td-editor .as-rich-editor ~ label span {
    background-color: var(--color-mat-input-bg);
}

.material-td-editor .as-rich-editor:not(:has(.ql-toolbar)) .ql-container {
    border-top-left-radius: var(--border-radius-form-control);
    border-top-right-radius: var(--border-radius-form-control);
}

.material-td-editor .as-rich-editor .ql-toolbar.ql-snow {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--color-panel-bg);
    font-family: var(--font);
    font-size: 11px;
    border-top-left-radius: var(--border-radius-form-control);
    border-top-right-radius: var(--border-radius-form-control);
    border: var(--border-width) solid var(--color-input-border);
}

.grid-main:has(.material-td-editor .as-rich-editor .ql-toolbar) .material-td-editor .as-rich-editor .ql-toolbar.ql-snow {
    top: -11px !important;
}

.material-td-editor .as-rich-editor .ql-container.ql-snow {
    font-family: var(--font);
    font-size: 11px;
    border-bottom-left-radius: var(--border-radius-form-control);
    border-bottom-right-radius: var(--border-radius-form-control);
    border: var(--border-width) solid var(--color-input-border);
}

.material-td-editor:focus-within .as-rich-editor:not([readonly]) {
    border-radius: var(--border-radius-form-control);
    outline: calc(2 * var(--border-width)) solid rgba(var(--pcolor-buttons-text), 1) !important;
}

.material-td-editor:focus-within .as-rich-editor:not([readonly]) .ql-toolbar {
    border-left: var(--border-width) solid transparent;
    border-top: var(--border-width) solid transparent;
    border-right: var(--border-width) solid transparent;
}

.material-td-editor:focus-within .as-rich-editor:not([readonly]) .ql-container {
    border-left: var(--border-width) solid transparent;
    border-right: var(--border-width) solid transparent;
    border-bottom: var(--border-width) solid transparent;
}

.material-td-editor:focus-within .as-rich-editor:not([readonly]) ~ label {
	color: var(--color-mat-input-outline) !important; 
}

.material-td-editor .as-rich-editor[readonly] .ql-toolbar.ql-snow,
.material-td-editor .as-rich-editor .ql-container.ql-disabled {
    color: var(--color-input-disabled-text);
    background-color: var(--color-input-disabled-bg);
    border-color: var(--color-input-disabled-border);
}

/**
 * ICON & VARBIN
 */
.material-td-icon .icon-field-div,
.material-td-varbin .varbin-field-div {
    border-radius: var(--border-radius-form-control);
    border: var(--border-width) solid var(--color-input-border);
    color: var(--color-input-text);
    background-color: var(--color-input-bg);
}

.material-td-icon .icon-field-div ~ label,
.material-td-varbin .varbin-field-div ~ label {
    transform: translate(0, -49%);
}

.material-td-icon .icon-field-div ~ label span,
.material-td-varbin .varbin-field-div ~ label span {
    background-color: var(--color-mat-input-bg);
}

/**
 * ERASE BTN
 */
.material-td .eraser-ico {
    position: absolute;
    top: 0;
    right: 0;
    color: var(--color-pagination-text);
    padding: .75em;
}

.material-td .eraser-ico .fa-eraser:hover {
    color: var(--color-input-border-required);
}

/**
 * MATERIAL FLEX DIV/TD
 */
td:not(.flex-td) .material-td,
td.flex-td .material-td {
    display: flex;
    align-items: center;
}

td.flex-td .material-td-html-parser {
    display: flex;
    flex-direction: column;
    align-items: start;
}

td.flex-td .as-row > :not(.as-col) {
    padding: 0;
}

td.flex-td .as-row .material-div {
    flex: 1;
}

td.flex-td:has(input.hide) {
    padding: 0;
}

td.flex-td .material-td:has(>input.hide) {
    margin: 0;
}

td.flex-td > .as-btn,
td.flex-td.force-margin .material-td {
    margin-top: 0 !important;
    margin-right: var(--material-td-margin-right) !important;
    margin-bottom: var(--material-td-margin-bottom) !important;
    margin-left: 0 !important;
}

.material-div.flex-div,
.material-div.flex-div .material-td,
.material-div.flex-div .material-td-docupload {
    display: flex;
    flex: 1;
}

td.flex-td .as-btn,
td.flex-td .material-td .form-control,
.material-div.flex-div .material-td .form-control {
    width: 100% !important;
}

td.flex-td .material-td-html-parser .form-control {
    width: 98% !important; /* To avoid flex-direction: column bug */
}

td.flex-td .material-td-docupload .docupload-field-div,
.material-div.flex-div .material-td-docupload .docupload-field-div,
td.flex-td .material-td-icon .icon-field-div,
.material-div.flex-div .material-td-icon .icon-field-div,
td.flex-td .material-td-varbin .varbin-field-div,
.material-div.flex-div .material-td-varbin .varbin-field-div {
    width: 100% !important;
    max-width: none;
} 

td.flex-td .material-td-docupload .docupload-field-div .docupload-img-preview,
.material-div.flex-div .material-td-docupload .docupload-field-div .docupload-img-preview,
td.flex-td .material-td-icon .icon-field-div .icon-preview,
.material-div.flex-div .material-td-icon .icon-field-div .icon-preview,
td.flex-td .material-td-varbin .varbin-field-div .icon-preview,
.material-div.flex-div .material-td-varbin .varbin-field-div .icon-preview {
    margin: 0 auto;
}

.color-picker-ico.ico-after-div span,
td.flex-td .material-td .ico-after-div span,
td.flex-td .material-td .list-link,
.material-div.flex-div .material-td .ico-after-div span,
.material-div.flex-div .material-td .list-link {
    align-content: center;
}

.material-td .ico-preview {
    display: flex;
    margin: 0;
}

.material-td .ico-preview:before {
    font-size: 1.3em;
    margin: auto;
}
/* #endregion */

/* #region Batch */
.batch-pointer {
    cursor: pointer;
}

.batch-general {
    cursor: pointer; 
    margin-right: .5em;
}

.batch-left {
    margin-left: .5em;
}

.batch-table {
    min-width: 200px; 
    margin: 1em; 
    font-size: var(--font-size-menu);
}
/* #endregion */

/* #region others */
.delete-override{
    display: flex; 
    align-items:center; 
    justify-content: center;
}

.dbs-message-del{
    max-height: 400px; 
    overflow-y: auto;
}

.scripts-line, 
.validate-tools-div{
    display: flex; 
    flex-direction: column; 
    align-items: center;
}

.validate-tools-btn{
    margin-bottom:var(--margin-blocks-vert); 
    width: fit-content;
}

.docs-view-files{
    text-align: center; 
    margin:auto;
}

.dl-obj-subdiv {
    display:flex; 
    width: 100%;
}

.textarea-preview {
    white-space: pre-wrap
}

.textarea-preview a {
    color: var(--color-primary);
    text-decoration: underline;
    cursor: pointer;
}

.textarea-preview a:hover {
    color: var(--color-list-link-text);
}

.textarea-preview b {
    text-transform: uppercase;
    color: var(--color-third);
}
/* #endregion */

/* #region Expandable col */
@media only screen and (min-width: 1199px) { /* For LG cols */
    .expandable-col {
        cursor: pointer;
    }

    .expandable-col .panel-header {
        padding: 0;
        border: 0;
    }

    .expandable-col .panel-header::after {
        content: unset;
        position: unset;
        left: unset;
        right: unset;
        bottom: unset;
        height: unset;
        background: unset;
    }

    .expandable-col:hover .panel-header {
        background-color: var(--color-panel-header-bg-hover);
    }

    .expandable-col .objsel-main-container,
    .expandable-col .dl-panel,
    .expandable-col .panel-header {
        height: 100%;
        border-radius: var(--border-radius);
    }

    .expandable-col .toolbar.toolbar-objsel {
        background-color: transparent;
    }

    .expandable-col .toolbar-objsel .toolbar-group .as-title,
    .expandable-col .panel-title {
        padding: 0; 
        justify-content: center; 
    }

    .expandable-col .toolbar-group:has(div.as-title),
    .expandable-col .toolbar-group .as-title {
        width: 100% !important;
    }

    .expandable-col .as-title,
    .expandable-col .dl-panel-text {
        writing-mode: vertical-rl;
        text-orientation: upright;
        width: auto !important;
    }

    .expandable-col .toolbar-objsel .toolbar-group {
        margin: 0 !important;
    }

    .expandable-col .toolbar-objsel .toolbar-group > *:not(.as-title),
    .expandable-col .toolbar-objsel .toolbar-group.toolbar-group-toggleable-sm,
    .expandable-col .dl-panel main {
        display: none !important;
    }
}
/* #endregion */

/* #region Snapshots*/
.snapshot{
    overflow: auto; 
    max-height: 500px; 
    text-align: left;
    white-space: break-spaces; 
}
.snapshot span{
    font-size: 12px;
}
.snapshot-prop{ 
    display: inline-block; 
    margin: 0; 
    padding: 0; 
}
.snapshot-prop-value{
    white-space: normal;
}
.snapshot-prop.added, 
.snapshot-prop-value.added{ 
    color: limegreen; 
}
.snapshot-prop.changed, 
.snapshot-prop-value.changed{
    color: orange; 
}
.snapshot-prop.deleted, 
.snapshot-prop-value.deleted{
    color: red; 
}
/* #endregion Snapshots*/

/* #region Progress bar */

.as-progress-bar.ui-progressbar {
    height: 10px;
    border-radius: 999px;
    border: 0.5px solid rgba(0, 0, 0, 0.08);
    background-color: var(--color-bg);
    overflow: hidden;
}

/* Determinate */
.as-progress-bar.ui-progressbar .ui-progressbar-value {
    height: 100% !important;
    background: var(--color-third);
    border: none !important;
    margin: 0 !important;
    transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Error */
.as-progress-bar.ui-progressbar.progress-bar-error .ui-progressbar-value {
    background: var(--color-modal-error-bg-dark) !important;
}

.as-progress-bar.ui-progressbar.progress-bar-complete .ui-progressbar-value {
    background: var(--color-modal-success-bg) !important;
}

/* Indeterminate */
.as-progress-bar.ui-progressbar .ui-progressbar-overlay {
    background: none !important;
    border: none !important;
    animation: indeterminate-slide 1.6s ease-in-out infinite;
}

@keyframes indeterminate-slide {
    0%   { left: -40%; width: 40%; }
    60%  { left: 100%; width: 40%; }
    100% { left: 100%; width: 40%; }
}

.as-progress-wrapper {
    width: inherit;
}

.as-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.as-progress-label {
    font-size: 11px !important;
    color: var(--color-mat-input-label);
}

.as-progress-pct {
    font-size: 11px !important;
    font-weight: var(--font-weight-semibold) !important;
    color: var(--color-text);
}

/* #endregion Progress bar */

/* #region Formula builder*/
.formula-builder{
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
}

td.flex-td .formula-builder .formula-builder-preview {
    width: unset!important;
}
/* #endregion Formula builder*/

/**
 * SEARCH NO RESULTS (main search, menu chooser and fields "i" palette)
 */
.search-no-results:not(.hide) {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .4em;
    padding: 1.75em 1em 1.5em;
    text-align: center;
    font-size: var(--font-size-menu);
    color: var(--color-tab-vert-btn);
}

.search-no-results-ico {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin-bottom: .5em;
    font-size: 24px !important;
    border-radius: 50%;
    color: var(--color-primary);
    background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.search-no-results-title {
    font-size: 15px !important;
    font-weight: var(--font-weight-semibold) !important;
    color: var(--color-text);
}

.search-no-results-query {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 2px 10px;
    border-radius: 999px;
    color: var(--color-text);
    background-color: color-mix(in srgb, var(--color-text) 7%, transparent);
}

.search-no-results-query:empty {
    display: none;
}

.search-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
    height: 32px;
    margin-top: .75em;
    padding: 0 1.25em;
    border: none;
    border-radius: var(--border-radius);
    font-size: 12px;
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
    cursor: pointer;
    color: var(--color-primary);
    background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.search-btn:hover {
    background-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
}

/**
 * SEARCH FOOTER: main search, menu chooser and fields "i" palette
 */
.search-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5em 1em;
    padding: .5em .75em;
    font-size: 11px;
    color: var(--color-tab-vert-btn);
    border-top: 1px solid var(--color-mat-input-disabled);
}

.search-hints {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    align-items: center;
    min-width: 0;
    gap: .5em 1em;
}

.search-hint {
    display: flex;
    align-items: center;
    gap: .3em;
    white-space: nowrap;
}

.search-hint kbd {
    font-family: inherit;
    font-size: 10px;
    line-height: 1;
    padding: 2px 5px;
    color: var(--color-text);
    background-color: color-mix(in srgb, var(--color-text) 7%, transparent);
    border: 1px solid var(--color-mat-input-disabled);
    border-radius: 3px;
}

.search-count {
    flex-shrink: 0;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

@media (hover: none) {
    .search-hints {
        display: none;
    }
}

/* #region TOKENS */

:root {
    /* The "hover" tones of the toolbar palette are dark in the default skin and light in the dark skin, so tones need no dark rule */
    --color-tone-primary: var(--color-toolbar-list-ico-primary-hover);
    --color-tone-success: var(--color-toolbar-list-ico-info-hover);
    --color-tone-warning: var(--color-toolbar-list-ico-warning-hover);
    --color-tone-danger: var(--color-toolbar-list-ico-danger-hover);
    --color-tone-purple: var(--color-toolbar-list-ico-secondary-hover);

    --color-text-muted: color-mix(in srgb, var(--color-text) 70%, transparent);
    --color-text-faint: var(--color-tab-vert-btn);

    /* Dark navy in the default skin, light blue in the dark skin: the primary color mixed with the text color */
    --color-page-title: color-mix(in srgb, var(--color-primary) 45%, var(--color-text));
}

/* #endregion TOKENS */

/* #region TONES */

/* Explicit neutral tone: cancels a tone inherited from a container, the components fall back to their neutral look */
.as-tone-default {
    --as-tone: var(--color-text-muted);
    --as-tone-bg: initial;
}

.as-tone-primary {
    --as-tone: var(--color-tone-primary);
}

.as-tone-success {
    --as-tone: var(--color-tone-success);
}

.as-tone-warning {
    --as-tone: var(--color-tone-warning);
}

.as-tone-danger {
    --as-tone: var(--color-tone-danger);
}

.as-tone-purple {
    --as-tone: var(--color-tone-purple);
}

/* Neutral grey tone: pills and boxes with a visible, soft grey frame (as-tone-default has none) */
.as-tone-muted {
    --as-tone: var(--color-text-muted);
}

/* #endregion TONES */

/* #region TEXT */

.as-text-tone {
    color: var(--as-tone, inherit);
}

.as-text-muted {
    color: var(--color-text-muted);
}

.as-text-faint {
    color: var(--color-text-faint);
}

/* Pushes the element to the far right of its flex container */
.as-push-end {
    margin-left: auto;
    white-space: nowrap;
}

/* Label around a checkbox: <label class="as-check"><input type="checkbox"> Text</label> */
.as-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

/* Small round state dot. Colored by the tone, grey without tone (an unread / read marker, for instance) */
.as-dot {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--as-tone, var(--color-text-faint));
}

/* Click to copy. The JS decides what is copied */
.as-copyable {
    cursor: pointer;
}

.as-copyable:hover {
    color: var(--color-primary);
    text-decoration: underline dotted;
}

/* Small uppercase label followed by a hairline that fills the remaining width */
.as-section-title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    font-family: var(--font-secondary);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--color-text-faint);
}

.as-section-title::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: var(--color-input-border);
}

.as-empty {
    padding: 28px;
    text-align: center;
    font-family: var(--font-secondary);
    font-size: 12px;
    color: var(--color-text-faint);
}

/* #endregion TEXT */

/* #region PAGE */

/* Content of a dashboard-like page: blocks stacked with a gap, inside .as-scroll-container */
.as-page {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 28px 32px;
}

/* Master / detail: a list on the left and a detail panel on the right (sticky while the list scrolls).
   Stacked below 1200px, where two columns get too narrow. minmax(0, ...) stops long texts from widening a column.
   .as-row / .as-col are not used here because they stretch the panels, and the detail must stay as high as its content. */
.as-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

@media (min-width: 1200px) {
    .as-split {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    }

    .as-split-side {
        position: sticky;
        top: 0;
    }
}

/* #endregion PAGE */

/* A pill in the actions has the same height as the buttons next to it */
.as-page-actions .as-pill {
    box-sizing: border-box;
    height: var(--size-button);
    font-size: 12px;
}

/* #region PAGE HEADER */

/**
 * Page title bar without panel: title (and subtitle) on the left, actions on the right, underlined with the primary color.
 * <header class="as-page-header">
 *     <div class="as-page-heading">
 *         <h1 class="as-page-title">Broker <span class="as-page-title-accent">latency</span></h1>
 *         <p class="as-page-subtitle">Wait and execution time per broker</p>
 *     </div>
 *     <div class="as-page-actions">...pill, buttons...</div>
 * </header>
 * The spacing with the next block is left to the container (gap, margin).
 */
.as-page-header {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 20px;
    border-bottom: var(--border-width-md) solid var(--color-primary);
}

/* Takes the free space, so the actions are pushed to the right */
.as-page-heading {
    margin-right: auto;
}

.as-page-title {
    margin: 0;
    font-family: var(--font-secondary);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.3px;
    line-height: 1;
    color: var(--color-page-title);
}

/* Second word of the title, lighter. The font is inherited because of the span rule of site.css */
.as-page-title-accent,
span.as-page-title-accent {
    font-family: var(--font-secondary);
    font-size: inherit;
    font-weight: 400;
    color: var(--color-primary);
}

.as-page-subtitle {
    font-family: var(--font-secondary);
    font-size: 11px;
    color: var(--color-text-faint);
    margin: 5px 0 0 0;
}

.as-page-actions {
    display: flex;
    align-items: center;
    gap: 9px;
}

/* #endregion PAGE HEADER */

/* #region PANEL */

/* Colored top border for a panel (or any box). Uses the tone, or the primary color without tone */
.as-panel-top-border {
    border-top: 3px solid var(--as-tone, var(--color-primary));
}

/* Tinted background of the tone (--as-tone-bg when set, otherwise 8% of the tone) */
.as-tone-tint {
    background-color: var(--as-tone-bg, color-mix(in srgb, var(--as-tone, transparent) 8%, transparent));
}

/* Colored left border, to highlight a message or a panel. Uses the tone, or the primary color without tone */
.as-panel-left-border {
    border-left: 5px solid var(--as-tone, var(--color-primary));
}

/* Clips the content to the rounded corners: rows that go edge to edge, hover backgrounds... */
.as-panel-clip {
    overflow: hidden;
}

/* Grey strip at the top or bottom of a panel: color key, pagination... Add as-strip-footer when it closes the panel */
.as-strip {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 8px 16px;
    font-family: var(--font-secondary);
    font-size: 10px;
    color: var(--color-text-muted);
    background-color: var(--color-list-header-bg);
    border-bottom: var(--border-width) solid var(--color-panel-header-separation);
}

.as-strip-footer {
    border-top: var(--border-width) solid var(--color-panel-header-separation);
    border-bottom: none;
}

/* Color key inside a strip: <span class="as-key as-tone-primary"><i class="as-key-dot"></i>p50</span> */
.as-key,
span.as-key {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-secondary);
    font-size: 10px;
}

.as-key-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 2px;
    background-color: var(--as-tone, var(--color-text-faint));
}

/* #endregion PANEL */

/* #region STAT */

/**
 * Figure with a label and a sub text, to put inside a panel main. The value takes the tone.
 * <main>
 *     <div class="as-stat-label">Total jobs</div>
 *     <div class="as-stat-value">1204</div>
 *     <div class="as-stat-sub">across 6 brokers</div>
 * </main>
 */
.as-stat-label {
    margin-bottom: 8px;
    font-family: var(--font-secondary);
    font-size: 9px;
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--color-text-faint);
}

.as-stat-value {
    margin-bottom: 4px;
    font-family: var(--font-secondary);
    font-size: 26px;
    font-weight: var(--font-weight-semibold);
    line-height: 1;
    letter-spacing: -.5px;
    color: var(--as-tone, var(--color-primary));
}

.as-stat-value-sm {
    font-size: 16px;
}

.as-stat-value-md {
    font-size: 20px;
    line-height: 1.2;
}

.as-stat-sub {
    font-family: var(--font-secondary);
    font-size: 11px;
    color: var(--color-text-faint);
}

/* #endregion STAT */

/* #region BOXES */

/* Box tinted with the tone: a highlighted figure, a callout... (.as-tone-box as-tone-primary) */
.as-tone-box {
    padding: 8px 12px;
    background-color: var(--as-tone-bg, color-mix(in srgb, var(--as-tone, transparent) 8%, transparent));
    border: var(--border-width) solid color-mix(in srgb, var(--as-tone, var(--color-input-border)) 20%, transparent);
    border-radius: var(--border-radius);
}

/* Bordered inset block inside a panel main: a list of occurrences, a stack trace... Its rows can use .as-select-row */
.as-inset {
    margin: 4px 0 16px;
    overflow: hidden;
    background-color: var(--color-list-header-bg);
    border: var(--border-width) solid var(--color-input-border);
    border-radius: var(--border-radius);
}

/* Pretty-printed text (JSON params...): <pre class="as-code-block"> */
.as-code-block {
    max-height: 240px;
    margin: 4px 0 16px;
    padding: 8px 10px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--color-text);
    background-color: var(--color-list-header-bg);
    border: var(--border-width) solid var(--color-input-border);
    border-radius: var(--border-radius);
}

/**
 * Key / value pairs in an auto-fit grid (details of a record).
 * <div class="as-kv-grid"><div><div class="as-kv-label">User</div><div class="as-kv-value">john</div></div>...</div>
 */
.as-kv-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 12px;
    align-items: start;
    margin: 16px 0;
}

.as-kv-label {
    margin-bottom: 3px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--color-text-faint);
}

.as-kv-value {
    font-size: 12px;
    word-break: break-all;
}

.as-kv-value a {
    color: var(--color-primary);
    text-decoration: none;
}

.as-kv-value a:hover {
    text-decoration: underline;
}

/* Small outline button, for an action inside a row or a panel header ("Count all", "Copy") */
.as-btn-mini {
    padding: 3px 9px;
    white-space: nowrap;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 500;
    color: var(--color-text-muted);
    background-color: var(--color-input-bg);
    border: var(--border-width) solid var(--color-input-border);
    border-radius: 4px;
    cursor: pointer;
    transition: background-color .15s, color .15s, border-color .15s;
}

.as-btn-mini:hover:not(:disabled) {
    color: var(--color-primary);
    background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
    border-color: var(--color-primary);
}

.as-btn-mini:disabled {
    opacity: .5;
    cursor: default;
}

/* #endregion BOXES */

/* #region FILTER BAR */

.as-filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.as-filter-label,
span.as-filter-label {
    font-family: var(--font-secondary);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--color-text-faint);
}

/* Controls that belong together (a label, two dates and a button...) */
.as-filter-group {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Pushes the element to the far right of the bar */
.as-filter-end {
    margin-left: auto;
    white-space: nowrap;
}

.as-filter-bar .as-form-separator-v {
    height: 20px;
    margin: 0 2px;
}

/* Same total height as the platform buttons (--size-button): content height + borders */
.as-filter-bar .form-control {
    height: calc(var(--size-button) - 2 * var(--border-width));
}

/**
 * Segmented buttons, one of them active. 25px high like the platform buttons.
 * <div class="as-segmented"><button class="as-segmented-btn is-active">1D</button><button class="as-segmented-btn">7D</button></div>
 */
.as-segmented {
    display: flex;
    gap: 2px;
    padding: 2px;
    background-color: var(--color-input-bg);
    border: var(--border-width) solid var(--color-input-border-on-body);
    border-radius: var(--border-radius-form-control);
}

.as-segmented-btn {
    height: 26px;
    font-family: var(--font-secondary);
    font-size: 11px;
    font-weight: 500;
    color: var(--color-text-muted);
    background-color: transparent;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color .15s, color .15s;
    padding: 0 12px;
}

.as-segmented-btn:not(.is-active):hover {
    color: var(--color-text);
    background-color: var(--color-list-row-bg-hover);
}

.as-segmented-btn.is-active {
    color: var(--color-light-text);
    background-color: var(--color-primary);
}

/* #endregion FILTER BAR */

/* #region SELECTABLE ROW */

/**
 * Clickable row inside a panel, with a selected state (is-active). Rows are separated by a hairline.
 * <div class="as-select-row is-active">...</div>
 */
.as-select-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 10px 16px;
    border-bottom: var(--border-width) solid var(--color-panel-header-separation);
    cursor: pointer;
    transition: background-color .1s;
}

.as-select-row:last-child {
    border-bottom: none;
}

.as-select-row:hover {
    background-color: var(--color-list-row-bg-hover);
}

/* Declared after :hover so it wins when both apply */
.as-select-row.is-active {
    background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
    outline: var(--border-width) solid color-mix(in srgb, var(--color-primary) 25%, transparent);
    outline-offset: -1px;
}

/* #endregion SELECTABLE ROW */

/* #region PAGER */

/**
 * Pagination bar for lists rendered by JS (the .pagination of site.css is made for <ul><li>)
 * <div class="as-strip as-strip-footer as-pager"><button class="as-pager-btn is-active">1</button><span class="as-pager-info">1-15 of 40</span></div>
 */
.as-pager {
    gap: 6px;
    padding: 10px 16px;
}

.as-pager-btn {
    font-family: var(--font-secondary);
    font-size: 11px;
    font-weight: 500;
    color: var(--color-text-muted);
    background-color: var(--color-input-bg);
    border: var(--border-width) solid var(--color-input-border-on-body);
    border-radius: 4px;
    cursor: pointer;
    transition: background-color .15s, color .15s, border-color .15s;
    padding: 4px 10px;
}

.as-pager-btn:hover:not(:disabled, .is-active) {
    color: var(--color-primary);
    background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
    border-color: var(--color-primary);
}

.as-pager-btn.is-active {
    color: var(--color-light-text);
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.as-pager-btn:disabled {
    opacity: .35;
    cursor: default;
}

.as-pager-info,
span.as-pager-info {
    font-family: var(--font-secondary);
    font-size: 11px;
    color: var(--color-text-faint);
    margin: 0 4px;
}

/* #endregion PAGER */