/*
 * ==========================================================
 * PROGETTO:    Kerno Framework
 * FILE:        badge.css
 * Path:        public/css/badge.css
 * ==========================================================
 * DESCRIZIONE GENERALE:
 * Definisce la struttura base dei badge e le varianti cromatiche riutilizzabili.
 *
 * FUNZIONE DEL FILE:
 * Questo foglio di stile raccoglie regole CSS specifiche per: badge e marcatori visuali.
 * Le regole definiscono solo la presentazione grafica degli elementi HTML e
 * non introducono logica applicativa. Eventuali comportamenti dinamici sono
 * gestiti dai file JavaScript o dal markup prodotto dalle view PHP.
 *
 * NOTE OPERATIVE:
 * - mantenere i selettori coerenti con il markup generato dalle view;
 * - modificare colori, spaziature e transizioni solo verificando le pagine
 *   che riutilizzano gli stessi componenti;
 * - evitare rinominazioni dei selettori senza aggiornare anche HTML e JS.
 * ==========================================================
 */

/* ==========================================================
 * SEZIONE: badge generici
 * ========================================================== */

/* Struttura base dei badge. */
.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    padding: 2px 7px;
    margin-top: -2px;
    border-radius: var(--radius-badge);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), inset 0 1px rgba(255, 255, 255, 0.08);
    color: var(--color-on-primary);
    font-weight: 600;
    font-size: 12px;
    text-align: center;
    line-height: 1.3;
    text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3);
    text-transform: uppercase;
    vertical-align: middle;
}

/* ==========================================================
 * SEZIONE: varianti cromatiche
 * ========================================================== */

/* Variante rossa per stati di errore, blocco o pericolo. */
.badge-red {
    border: 1px solid var(--color-danger-dark);
    background-color: var(--color-danger);
    background-image: linear-gradient(to bottom, var(--color-danger-badge-light), var(--color-danger-badge-dark));
}

/* Variante arancione per stati intermedi o richiami operativi. */
.badge-orange {
    border: 1px solid var(--color-warning-border);
    background-color: var(--color-warning);
    background-image: linear-gradient(to bottom, var(--color-warning-light), var(--color-warning-dark));
}

/* Variante gialla per avvisi e stati di attenzione. */
.badge-yellow {
    border: 1px solid var(--color-badge-yellow-border);
    background-color: var(--color-badge-yellow);
    background-image: linear-gradient(to bottom, var(--color-badge-yellow-light), var(--color-badge-yellow-dark));
}

/* Variante verde per stati positivi, attivi o confermati. */
.badge-green {
    border: 1px solid var(--color-success-badge-border);
    background-color: var(--color-success-badge-bg);
    background-image: linear-gradient(to bottom, var(--color-success-badge-light), var(--color-success));
}

/* Variante blu per stati informativi o azioni neutrali. */
.badge-blue {
    border: 1px solid var(--color-info-border);
    background-color: var(--color-info);
    background-image: linear-gradient(to bottom, var(--color-info-light), var(--color-info-dark));
}

/* Variante indaco per categorie evidenziate ma non critiche. */
.badge-indigo {
    border: 1px solid var(--color-badge-indigo-border);
    background-color: var(--color-badge-indigo);
    background-image: linear-gradient(to bottom, var(--color-badge-indigo-light), var(--color-badge-indigo-dark));
}

/* Variante viola per categorie secondarie o raggruppamenti speciali. */
.badge-violet {
    border: 1px solid var(--color-badge-violet-border);
    background-color: var(--color-badge-violet);
    background-image: linear-gradient(to bottom, var(--color-badge-violet-light), var(--color-badge-violet-dark));
}

/* Variante rosa per categorie distintive o stati personalizzati. */
.badge-pink {
    border: 1px solid var(--color-badge-pink-border);
    background-color: var(--color-badge-pink);
    background-image: linear-gradient(to bottom, var(--color-badge-pink-light), var(--color-badge-pink-dark));
}

/* Variante grigia per stati neutri, disabilitati o non classificati. */
.badge-gray {
    border: 1px solid var(--color-badge-gray-border);
    background-color: var(--color-badge-gray);
    background-image: linear-gradient(to bottom, var(--color-badge-gray-light), var(--color-badge-gray-dark));
}

