.alert {
    position: relative;
    padding: 15px;
    border: 1px solid;
    /* margin: 0 0 15px 0; */
    text-align: left;
    background: var(--white);
    border-radius: var(--radius);
}

.alert > * {
    position: relative
}

.alert:before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    opacity: 0.2;
    pointer-events: none;
    border-radius: var(--radius);
}

:is(.alert, code) + :is(div,table) {
    margin-top: 15px;
}

.alert > b {
    /* margin-bottom: 5px; */
    /* display: block; */
}

.alert > p + p {
    margin-top: 5px;
}

.alert > p > .btn {
    margin-top: 5px;
}

.alert.alert-primary {color: var(--primary);}
.alert.alert-primary:before {background-color: var(--primary);}

.alert.alert-secondary {color: var(--secondary);}
.alert.alert-secondary:before {background-color: var(--secondary);}

.alert.alert-success {color: var(--success);}
.alert.alert-success:before {background-color: var(--success);}

.alert.alert-warning {color: var(--warning);}
.alert.alert-warning:before {background-color: var(--warning);}
.alert.alert-warning .btn {border-color: var(--warning);}

.alert.alert-danger {color: var(--danger);}
.alert.alert-danger:before {background-color: var(--danger);}
.alert.alert-danger .btn {border-color: var(--danger);}

.alert.alert-dark {color: var(--dark);}
.alert.alert-dark:before {background-color: var(--dark);}

.alert.alert-light {color: var(--dark); border-color: var(--border);}
.alert.alert-light:before {background-color: var(--light);opacity: 1;}

.alert.alert-info {color: var(--info);}
.alert.alert-info:before {background-color: var(--info);}
.alert.alert-info .btn {border-color: var(--info);}

/* ============================================================
   Icona automatica a sinistra, dedotta dalla variante dell'alert
   ------------------------------------------------------------
   FontAwesome forzato via ::after (il ::before ÃƒÂ¨ giÃƒÂ  usato per lo
   sfondo colorato della variante). L'icona eredita il colore della
   variante (.alert.alert-* { color }). Solo per gli alert che NON
   contengono giÃƒÂ  una propria <i> figlia diretta, cosÃƒÂ¬ non si duplica
   con gli alert che includono manualmente un'icona (es. i banner con
   fa-3x centrato o gli alert con icona inline).
   ============================================================ */
.alert.alert-info:not(:has(> i)),
.alert.alert-success:not(:has(> i)),
.alert.alert-warning:not(:has(> i)),
.alert.alert-danger:not(:has(> i)) {
    padding-left: 42px;
}

.alert.alert-info:not(:has(> i))::after,
.alert.alert-success:not(:has(> i))::after,
.alert.alert-warning:not(:has(> i))::after,
.alert.alert-danger:not(:has(> i))::after {
    position: absolute;
    left: 16px;
    top: 15px;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 15px;
    line-height: 1.5;
    z-index: 1;
    pointer-events: none;
}

.alert.alert-info:not(:has(> i))::after    { content: "\f05a"; } /* circle-info */
.alert.alert-success:not(:has(> i))::after { content: "\f058"; } /* circle-check */
.alert.alert-warning:not(:has(> i))::after { content: "\f071"; } /* triangle-exclamation */
.alert.alert-danger:not(:has(> i))::after  { content: "\f06a"; } /* circle-exclamation */

.alert > i {
    /* margin-bottom: 15px; */
}

/* BIG BANNER */
.big-banner {
    background: var(--light);
    padding: 30px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
}

.ibox-content .big-banner {
    background: var(--white);
}

.big-banner.spaced {
    padding: 90px;
}

.big-banner.bordered {
    background: var(--white);
    border: 1px solid var(--border);
}

.big-banner .big-banner-icon {
    display: block;
    height: 150px;
    line-height: 150px;
    text-align: center;
    aspect-ratio: 1;
    max-width: 30%;
    margin-left: 15px;
}

.big-banner.big-banner-footer {
    background: var(--light);
    margin-top: -6px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.big-banner.big-banner-footer.spaced {
    padding-top: 30px;
    padding-bottom: 30px;
}

.big-banner .big-banner-buttons {
    margin-top: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* EMPTY STATE Ã¢â‚¬â€ stato vuoto standard (nessun dato / nessun risultato).
   Markup standard:
   <div class="empty-state">
       <div class="empty-state-icon"><i class="fa fa-..."></i></div>
       <p class="empty-state-title">Titolo</p>
       <small class="empty-state-text">Descrizione opzionale</small>
       <div class="empty-state-actions"> ...bottoni opzionali... </div>
   </div>
*/
.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 50px 30px;
}

.empty-state .empty-state-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--light);
}

.empty-state .empty-state-icon i {
    font-size: 26px;
    line-height: 1;
    margin: 0;
    color: var(--muted);
}

.empty-state .empty-state-title {
    margin-top: 15px;
    margin: 0;
    font-size: 15px;
    font-weight: 600;
}


.empty-state .empty-state-icon + .empty-state-title {
    margin-top: 15px;
}

.empty-state .empty-state-text {
    display: block;
    margin-top: 6px;
    max-width: 380px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--muted);
}

.empty-state .empty-state-actions {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

/* Variante compatta (.empty-state-sm) Ã¢â‚¬â€ per celle/widget piccoli e notifiche inline */
.empty-state.empty-state-sm {
    padding: 15px;
}

.empty-state.empty-state-sm .empty-state-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 10px;
}

.empty-state.empty-state-sm .empty-state-icon i {
    font-size: 16px;
}

.empty-state.empty-state-sm .empty-state-title {
    font-size: 13px;
}

.empty-state.empty-state-sm .empty-state-text {
    margin-top: 4px;
    font-size: 12px;
}

.empty-state.empty-state-sm .empty-state-actions {
    margin-top: 12px;
}
