html, body {
    height: 100%;
}

body {
    margin: 0;
    letter-spacing: var(--dxds-letter-spacing-base-md);
    background-color: var(--dxds-color-surface-neutral-subdued-rest);
}

*, ::after, ::before {
    box-sizing: border-box
}

.icon {
    opacity: 0.7;
    background-size: contain;
    mask-repeat: no-repeat;
    mask-position: center center;
    mask-size: 100% 100%;
    background-color: currentColor;
}

.small-size .medium-icon {
    width: 1rem;
    height: 1rem;
}

.medium-size .medium-icon {
    width: 1.25rem;
    height: 1.25rem;
}

.large-size .medium-icon {
    width: 1.5rem;
    height: 1.5rem;
}

.small-size .avatar {
    width: 1.5rem;
    height: 1.5rem;
    margin-left: 0.5rem;
}

.medium-size .avatar {
    width: 2rem;
    height: 2rem;
    margin-left: 0.75rem;
}

.large-size .avatar {
    width: 2.5rem;
    height: 2.5rem;
    margin-left: 1rem;
}

.icon.small-icon {
    width: 0.75rem;
    height: 0.75rem;
}

.sun-icon {
    mask-image: url("images/icons/weather-sunny.svg");
}

.moon-icon {
    mask-image: url("images/icons/weather-moon.svg");
}

.bell-icon {
    mask-image: url("images/icons/bell.svg");
}

.back-icon {
    mask-image: url("images/icons/arrow-left.svg");
}

.copy-icon {
    mask-image: url("images/icons/copy.svg");
}

.refresh-icon {
    mask-image: url("images/icons/arrow-sync.svg");
}

.person-add-icon {
    mask-image: url("images/icons/person-add.svg");
}

.sign-out-icon {
    mask-image: url("images/icons/sign-out.svg");
}

.call-icon {
    mask-image: url("images/icons/call.svg");
}

.mail-icon {
    mask-image: url("images/icons/mail.svg");
}

.more-icon {
    mask-image: url("images/icons/more-horizontal.svg");
}

.add-icon {
    mask-image: url("images/icons/add.svg");
}

.save-icon {
    mask-image: url("images/icons/save.svg");
}

.cancel-icon {
    mask-image: url("images/icons/cancel.svg");
}

.edit-icon {
    mask-image: url("images/icons/edit.svg");
}

.delete-icon {
    mask-image: url("images/icons/delete.svg");
}

.print-icon {
    mask-image: url("images/icons/print.svg");
}

.abschliessen-icon {
    mask-image: url("images/icons/abschliessen.svg");
}

.grid-icon {
    mask-image: url("images/icons/grid.svg");
}

.download-icon {
    mask-image: url("images/icons/download.svg");
}

.upload-icon {
    mask-image: url("images/icons/upload.svg");
}

.filetype-xlsx-icon {
    mask-image: url("images/icons/filetype-xlsx.svg");
}

.filetype-csv-icon {
    mask-image: url("images/icons/filetype-csv.svg");
}

.filetype-pdf-icon {
    mask-image: url("images/icons/filetype-pdf.svg");
}

.layout-reset-icon {
    mask-image: url("images/icons/layout-reset.svg");
}

.column-chooser-icon {
    mask-image: url("images/icons/column-chooser.svg");
}

.import-icon {
    mask-image: url("images/icons/import.svg");
}

.notification {
    position: relative;
}

.notification::after {
    content: attr(notification-count) / "";
    color: white;
    display: flex;
    position: absolute;
    top: 0;
    left: 5%;
    font-size: 0.8em;
    width: 1.2em;
    height: 1.2em;
    border-radius: 50%;
    background-color: red;
    align-items: center;
    justify-content: center;
}

.dropdown-no-padding {
    --dxbl-dropdown-body-padding-x: 0;
    --dxbl-dropdown-body-padding-y: 0;
}

@media (min-width: 899.98px) {
    .pw-800 {
        max-width: 800px !important;
        width: 800px !important;
    }
}

.loading-panel {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.loading-panel > .loader {
    display: flex;
    align-items: center;
}

.loading-panel > .loader > .spinner {
    width: 2rem;
    height: 2rem;
    border: 0.25rem solid color-mix(in sRGB, var(--dxds-color-surface-primary-default-rest) 30%, transparent);
    border-bottom-color: var(--dxds-color-surface-primary-default-rest);
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation 0.75s linear infinite;
}

.loading-panel > .loader > .label {
    color: var(--dxds-color-content-neutral-default-rest);
    font-size: var(--dxds-font-size-base-lg);
    font-weight: var(--dxds-font-weight-base-strong);
    margin-left: 0.75rem;
}

.editor-button-icon, .dxbl-btn .editor-button-icon {
    width: 1rem;
    height: 1rem;
    background-size: contain;
    mask-repeat: no-repeat;
    webkit-mask-repeat: no-repeat;
    background-position: center center;
    background-color: currentColor;
    opacity: 0.7;
}

@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}
