@import "theme-sizes-and-colors.css";
@import "sidenav.css";
@import "mfa.css";
@import "help-icons.css";
@import "scrivania.css";

@import 'component-styles/vaadin-button.css';
@import 'component-styles/vaadin-checkbox.css';
@import 'component-styles/vaadin-date-picker.css';
@import 'component-styles/vaadin-combo-box.css';
/*
@import 'component-styles/vaadin-date-time-picker.css';
*/
@import 'component-styles/vaadin-grid-pro.css';
@import 'component-styles/vaadin-grid-cell-content.css';
@import 'component-styles/vaadin-grid-sorter.css';
@import 'component-styles/vaadin-password-field.css';
@import 'component-styles/vaadin-text-area.css';
@import 'component-styles/vaadin-text-field.css';

@import 'component-styles/vaadin-app-layout.css';
@import 'component-styles/vaadin-details.css';
@import 'component-styles/vaadin-confirm-dialog-overlay.css';

html {
    --lumo-disabled-text-color: var(--lumo-body-text-color);
    /* Definisci l'indicatore required nativo */
    --lumo-required-field-indicator: '* ';
    --lumo-required-field-indicator-color: var(--lumo-error-color);
}

.v-loading-indicator {
    position: fixed; /* Occupy whole screen even if scrolled */
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    /* Eat mouse events when visible, doesn't prevent scrolling */
    pointer-events: auto;
    /* Animated with delay to prevent flashing */
    animation: fadein 0.3s ease-out 0.2s normal 1 both;
    z-index: 2147483647;
}

.v-status-message {
    position: absolute;
    bottom: 0;
    left: 1rem;
    color: var(--lumo-warning-color-10pct);
    z-index: 2147483646;
}

body:has(.v-loading-indicator[style*="display: block"]) {
	cursor: wait !important;
}

@keyframes fadein {
    0% {
        background: rgba(0, 0, 0, 0);
    }
    100% {
        background: rgba(0, 0, 0, .5); /* Darkens the UI */
    }
}

.exa-menu-icon {
    color: var(--lumo-primary-color);
}

.exa-menu-submenu-title {
    color: var(--lumo-primary-color);
}

.exa-menu-submenu-leaf {
    padding-left: 2rem;
}

.exa-vertical-menu-divider {
    background-color: var(--lumo-contrast-20pct);
    flex: 0 0 1px;
    align-self: center;
    height: 95%;
}

.exa-grid-status-header {
    width: 100%;
    background-color: var(--lumo-contrast-5pct);
    font-size: var(--lumo-font-size-s);
    align-items: center;
}

.exa-division-border {
    border: 1px outset;
    border-radius: var(--lumo-space-s);
    padding: var(--lumo-space-s) var(--lumo-space-m);
    margin-top: var(--lumo-space-m);
    margin-bottom: var(--lumo-space-m);
}

vaadin-dialog-overlay::part(overlay) {
    border: 2px outset;
}

.exa-exabatsessionuuid {
    margin-left: auto;
    font-size: var(--lumo-font-size-xs);
    padding-right: 5rem;
    color: color-mix(in srgb, var(--lumo-disabled-text-color) 30%, transparent)
}

.exa-notification h1 {
    color: var(--lumo-primary-color);
    margin-top: var(--lumo-space-s);
}

.exa-banner h2 {
    margin-top: var(--lumo-space-s);
}

/* FIXME legacy colors */
.exa-color-baseColor {
    color: var(--lumo-base-color);
}

.exa-color-contrast20 {
    color: var(--lumo-contrast-20pct);
}

.exa-color-green {
    color: var(--lumo-success-color);
}

.exa-color-red {
    color: var(--lumo-error-color);
}

.exa-color-yellow {
    color: var(--lumo-warning-color);
}

/* FIXME legacy text style */
.exa-h1 {
    display: block;
    font-size: var(--lumo-font-size-xxl);
    margin-top: calc(var(--lumo-space-m) * 0.6);
    margin-bottom: calc(var(--lumo-space-m) * 0.6);
    font-weight: bold;
}

.exa-h2 {
    display: block;
    font-size: var(--lumo-font-size-xl);
    margin-top: calc(var(--lumo-space-m) * 0.8);
    margin-bottom: calc(var(--lumo-space-m) * 0.8);
    font-weight: bold;
}

.exa-h3 {
    display: block;
    font-size: var(--lumo-font-size-l);
    margin-top: var(--lumo-space-m);
    margin-bottom: var(--lumo-space-m);
    font-weight: bold;
}

.exa-bold {
    font-weight: bold;
}

.exa-light {
    font-weight: lighter;
}

.exa-small {
    font-size: var(--lumo-font-size-xs);
}

.exa-tiny {
    font-size: var(--lumo-font-size-xxs);
}

/* Login */
vaadin-login-overlay-wrapper::part(brand) {
    background-color: var(--lumo-contrast-5pct);
}

/* Spostare in component CSS e trasformare in "theme" */
vaadin-combo-box-overlay.big vaadin-combo-box-item {
    font-size: calc(var(--lumo-font-size-xl) * 1.2);
    font-weight: bold;
}

vaadin-combo-box.big::part(input-field) {
    font-size: calc(var(--lumo-font-size-xl) * 1.2);
}

vaadin-button.big {
    font-size: calc(var(--lumo-font-size-xl) * 1.2);
    --lumo-button-size: var(--lumo-size-xl);
    margin-top: var(--lumo-size-m);
}

.wrap-span {
    white-space: normal;
    word-break: break-word;
}

.floating-icon {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    height: 2rem;
    width: 2rem;
    opacity: 0.3;
    z-index: 2147483646;
    cursor: pointer;
}

/* Personalizzazione dell'indicatore required nativo di Vaadin */
vaadin-text-field::part(required-indicator),
vaadin-password-field::part(required-indicator),
vaadin-text-area::part(required-indicator),
vaadin-date-picker::part(required-indicator),
vaadin-combo-box::part(required-indicator),
vaadin-date-time-picker::part(required-indicator),
vaadin-checkbox::part(required-indicator) {
    color: var(--lumo-required-field-indicator-color);
    font-weight: bold;
}
