html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    
}
.login-overlay {
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,0.8);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.page-transition {
    animation: pageFade 1.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; 
}


@keyframes pageFade {
    from {
        opacity: 0;
        transform: translateY(15px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.page-slide {
    animation: slideIn 0.9s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateX(60px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.page-slide-left {
    animation: slideLeftIn 0.9s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes slideLeftIn {
    from {
        opacity: 0;
        transform: translateX(-60px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

 
.page-fade-blur {
    animation: fadeBlur 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes fadeBlur {
    from {
        opacity: 0;
        filter: blur(10px);
    }

    to {
        opacity: 1;
        filter: blur(0);
    }
}

.page-rotate {
    animation: rotateIn 0.9s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes rotateIn {
    from {
        opacity: 0;
        transform: rotate(-8deg) translateY(10px);
    }

    to {
        opacity: 1;
        transform: rotate(0) translateY(0);
    }
}
/* Transizione combinata fade + slide */
.page-smooth {
    animation: smoothIn 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes smoothIn {
    from {
        opacity: 0;
        transform: translateX(40px) translateY(15px) scale(0.95);
    }

    50% {
        opacity: 0.6;
        transform: translateX(20px) translateY(8px) scale(0.975);
    }

    to {
        opacity: 1;
        transform: translateX(0) translateY(0) scale(1);
    }
}

/* Variante slide + fade da sinistra */
.page-smooth-left {
    animation: smoothLeftIn 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes smoothLeftIn {
    from {
        opacity: 0;
        transform: translateX(-40px) translateY(15px) scale(0.95);
    }

    50% {
        opacity: 0.6;
        transform: translateX(-20px) translateY(8px) scale(0.975);
    }

    to {
        opacity: 1;
        transform: translateX(0) translateY(0) scale(1);
    }
}

/* Variante con leggero blur */
.page-smooth-blur {
    animation: smoothBlurIn 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes smoothBlurIn {
    from {
        opacity: 0;
        filter: blur(8px);
        transform: translateY(15px) scale(0.95);
    }

    50% {
        opacity: 0.6;
        filter: blur(4px);
        transform: translateY(8px) scale(0.975);
    }

    to {
        opacity: 1;
        filter: blur(0);
        transform: translateY(0) scale(1);
    }
}
.page-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 5000;
    opacity: 1;
    pointer-events: all;
    transition: opacity 0.6s cubic-bezier(0.4,0,0.2,1);
}

    .page-overlay.hidden {
        opacity: 0;
        pointer-events: none;
    }

.page-zoom {
    animation: zoomIn 0.9s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale(0.85);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}
 


body {
    background-image: url('img/background/background-wawe.webp');
    background-size: cover; /* Adatta l'immagine alla finestra */
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed; /* Mantiene l'immagine fissa allo scrolling */
}

.mud-snackbar {
    z-index: 9500 !important;
}

.mud-dialog {
    z-index: 3500 !important; /* Default � circa 2000 */
}

.mic-pulse {
    animation: mic-blink 1.2s infinite;
    color: #ff5252; /* puoi cambiarlo per adattarlo al tuo tema */
}

.col-piccola {
    width: 90px;
    min-width: 80px;
    max-width: 180px;
    white-space: normal;
   /* word-break: break-word;*/
    text-align: left;
}

@keyframes mic-blink {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: 0.5;
        transform: scale(1.2);
    }
}

.my-dialog-background {
    background-color: rgba(0,0,0,0.7); /* sfondo scuro semi-trasparente */
}

.my-dialog-content {
    border-radius: 16px;
    padding: 24px;
    background-color: #fff;
    min-height: 90vh; /* come volevi tu */
    display: flex;
    flex-direction: column;
}


.wave-container {
    display: flex;
    justify-content: center; /* centra orizzontalmente */
    align-items: center; /* centra verticalmente */
    height: 86px;
    width: 100%;
    background-color: #263238;
    border-radius: 6px;
    padding: 10px;
    gap: 6px;
    color: #ECEFF1;
    box-sizing: border-box;
}


.wave {
    width: 6px;
    height: 40%;
    background: #ECEFF1;
    animation: wave-animation 1s infinite ease-in-out;
    border-radius: 3px;
}

    .wave:nth-child(1) {
        animation-delay: 0s;
    }

    .wave:nth-child(2) {
        animation-delay: 0.2s;
    }

    .wave:nth-child(3) {
        animation-delay: 0.4s;
    }

    .wave:nth-child(4) {
        animation-delay: 0.6s;
    }

    .wave:nth-child(5) {
        animation-delay: 0.8s;
    }

@keyframes wave-animation {
    0%, 100% {
        height: 20%;
    }

    50% {
        height: 100%;
    }
}
 

.mud-chip > .mud-chip-content {
    align-items: normal !important;
    /*display: inline-flex !important;*/
    /*height: 100% !important;*/
    max-width: 100% !important;
    white-space: normal !important;
    word-break: break-word;
    text-align: left;
}

/* Questo funziona davvero su MudBlazor */
.mud-calendar-hour {
    height: 30px !important;
    min-height: 30px !important;
}


.blinking-icon {
    animation: blinker 1s linear infinite;
}

@keyframes blinker {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }
}