/* ============================================================
   AI Governance: stili dedicati (prefisso .aig-)
   Sta sopra ../zls_zes/style.css e ../assets/content-page.css.
   Nessuna dipendenza esterna, nessun font aggiuntivo.
   ============================================================ */

.aig {
    /* Base ereditata dal sito */
    --aig-bg: #ffffff;
    --aig-bg-alt: #f8fafc;
    --aig-text: #0f172a;
    --aig-text-muted: #5A6270;
    --aig-accent: #1a3a5c;
    --aig-accent-light: #24506e;
    --aig-hairline: rgba(22, 64, 104, 0.12);

    /* Banda scura: solo hero e plancia */
    --aig-band: linear-gradient(160deg, #0f1e2e 0%, #1a3a5c 100%);
    --aig-band-grid: rgba(255, 255, 255, 0.04);
    --aig-on-band: #ffffff;
    --aig-on-band-line: #a8cde8;
    --aig-on-band-dim: #7fb3d5;

    /* Segnale */
    --aig-signal: #3d8fc4;
    --aig-signal-soft: rgba(61, 143, 196, 0.14);

    /* Soglie: mai decorative */
    --aig-ok: #1e7a4f;
    --aig-warn: #b0761a;
    --aig-alert: #a32f2f;

    /* Varianti per il testo piccolo: --aig-warn e --aig-signal su bianco stanno
       sotto il 4.5:1 richiesto dal livello AA e vanno usati solo per grafica,
       riempimenti e numeri grandi. Sotto i 24px si usano questi. */
    --aig-warn-testo: #8a5c12;
    --aig-signal-testo: #2b6b94;

    --aig-shadow: 0 2px 10px rgba(10, 40, 68, 0.04);
    --aig-shadow-hover: 0 14px 34px rgba(10, 40, 68, 0.10);

    --aig-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
    --aig-t-micro: 180ms;
    --aig-t-node: 320ms;
    --aig-t-edge: 520ms;

    --aig-r-card: 6px;
    --aig-r-chip: 4px;

    --aig-mono: ui-monospace, 'SF Mono', SFMono-Regular, Consolas, Menlo, monospace;
}

/* Tutti i valori numerici in cifre tabellari */
.aig-num,
.aig-kpi__valore,
.aig-heat__cella,
.aig-bar__valore,
.aig-radar-legenda td,
.aig-indice__valore {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum';
}

/* Circoscritto ai componenti di questa pagina: .aig sta sul body, quindi un
   ".aig :focus-visible" generico imporrebbe il proprio focus ring anche a navbar,
   footer e form del sito, che hanno il loro. */
.aig [class*="aig-"]:focus-visible {
    outline: 2px solid var(--aig-signal);
    outline-offset: 2px;
    border-radius: 2px;
}

.aig-band [class*="aig-"]:focus-visible {
    outline-color: var(--aig-on-band-line);
}

/* Micro etichetta monospace: la firma "strumento" */
.aig-tag {
    display: inline-block;
    font-family: var(--aig-mono);
    font-size: 0.68rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--aig-text-muted);
    margin: 0;
}

.aig-band .aig-tag {
    color: var(--aig-on-band-dim);
}

.aig-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ============================================================
   RAIL DI SCORRIMENTO
   ============================================================ */
.aig-rail {
    position: fixed;
    left: 22px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 60;
    display: none;
    flex-direction: column;
    gap: 2px;
    padding: 10px 0;
}

@media (min-width: 1400px) {
    .aig-rail { display: flex; }
}

.aig-rail a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
    color: var(--aig-text-muted);
    text-decoration: none;
}

.aig-rail__punto {
    width: 7px;
    height: 7px;
    flex-shrink: 0;
    /* Il bordo è l'unico indizio del pallino inattivo: serve almeno 3:1 sul fondo. */
    border: 1px solid #7d8794;
    background: transparent;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-rail__etichetta {
    font-family: var(--aig-mono);
    font-size: 0.62rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    opacity: 0;
    transform: translateX(-4px);
    transition: all var(--aig-t-micro) var(--aig-ease);
    white-space: nowrap;
    pointer-events: none;
}

.aig-rail a:hover .aig-rail__etichetta,
.aig-rail a:focus-visible .aig-rail__etichetta,
.aig-rail a.is-attivo .aig-rail__etichetta {
    opacity: 1;
    transform: translateX(0);
}

.aig-rail a.is-attivo .aig-rail__punto {
    background: var(--aig-accent);
    border-color: var(--aig-accent);
    transform: scale(1.25);
}

.aig-rail a.is-attivo {
    color: var(--aig-accent);
}

/* Sopra le bande navy (#torre e #cruscotto) il rail viene dipinto su fondo scuro:
   con i colori chiari il pallino attivo (--aig-accent) coinciderebbe con il fondo
   e sparirebbe. La classe la mette l'observer in app.js. */
.aig-rail.is-su-banda a {
    color: var(--aig-on-band-dim);
}

.aig-rail.is-su-banda .aig-rail__punto {
    border-color: rgba(168, 205, 232, 0.75);
}

.aig-rail.is-su-banda a.is-attivo {
    color: var(--aig-on-band-line);
}

.aig-rail.is-su-banda a.is-attivo .aig-rail__punto {
    background: var(--aig-on-band-line);
    border-color: var(--aig-on-band-line);
}

/* ============================================================
   BANDA SCURA (hero + plancia)
   ============================================================ */
.aig-band {
    position: relative;
    background: var(--aig-band);
    color: var(--aig-on-band);
    overflow: hidden;
}

.aig-band::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(0deg, var(--aig-band-grid) 0 1px, transparent 1px 24px),
        repeating-linear-gradient(90deg, var(--aig-band-grid) 0 1px, transparent 1px 24px);
    pointer-events: none;
}

.aig-band > .container {
    position: relative;
    z-index: 1;
}

/* ============================================================
   HERO / TORRE
   ============================================================ */
.aig-hero {
    padding: 148px 0 72px;
}

.aig-hero__badge {
    display: inline-block;
    font-family: var(--aig-mono);
    font-size: 0.68rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--aig-on-band-line);
    border: 1px solid rgba(168, 205, 232, 0.3);
    border-radius: var(--aig-r-chip);
    padding: 6px 12px;
    margin-bottom: 26px;
}

.aig-hero h1 {
    font-size: clamp(1.9rem, 4.2vw, 3rem);
    font-weight: 800;
    letter-spacing: -1.2px;
    line-height: 1.16;
    color: var(--aig-on-band);
    margin: 0 0 20px;
    max-width: 940px;
}

.aig-hero h1 .aig-accento {
    color: var(--aig-on-band-line);
    display: block;
}

.aig-hero__sub {
    font-size: 1.03rem;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.82);
    max-width: 780px;
    margin: 0 0 30px;
}

.aig-hero__sub strong { color: #ffffff; font-weight: 700; }
.aig-hero__sub em { color: var(--aig-on-band-line); font-style: italic; }

.aig-hero__azioni {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 40px;
}

.aig-btn {
    font: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    padding: 12px 22px;
    border-radius: var(--aig-r-card);
    border: 1px solid transparent;
    cursor: pointer;
    transition: all var(--aig-t-micro) var(--aig-ease);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
}

.aig-btn--primario {
    background: #ffffff;
    color: #0f1e2e;
    border-color: #ffffff;
}

.aig-btn--primario:hover { background: var(--aig-on-band-line); border-color: var(--aig-on-band-line); }

.aig-btn--fantasma {
    background: transparent;
    color: var(--aig-on-band);
    border-color: rgba(255, 255, 255, 0.28);
}

.aig-btn--fantasma:hover { border-color: var(--aig-on-band-line); color: var(--aig-on-band-line); }

.aig-btn--chiaro {
    background: var(--aig-accent);
    color: #ffffff;
    border-color: var(--aig-accent);
}

.aig-btn--chiaro:hover { background: var(--aig-accent-light); border-color: var(--aig-accent-light); }

.aig-btn--linea {
    background: transparent;
    color: var(--aig-accent);
    border-color: rgba(22, 64, 104, 0.28);
}

.aig-btn--linea:hover { background: rgba(22, 64, 104, 0.06); border-color: var(--aig-accent); }

.aig-btn[disabled] { opacity: 0.45; cursor: not-allowed; }

/* Chip "chi sei" */
.aig-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.aig-chip {
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.72);
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(168, 205, 232, 0.24);
    border-radius: var(--aig-r-chip);
    padding: 7px 14px;
    cursor: pointer;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-chip:hover {
    border-color: var(--aig-on-band-line);
    color: #ffffff;
}

.aig-chip.is-attivo {
    background: var(--aig-on-band-line);
    border-color: var(--aig-on-band-line);
    color: #0f1e2e;
}

.aig-chips__intro {
    font-size: 0.82rem;
    color: var(--aig-on-band-dim);
    margin: 0 0 4px;
}

/* Console KPI in hero */
.aig-console {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    margin-top: 44px;
    background: rgba(168, 205, 232, 0.16);
    border: 1px solid rgba(168, 205, 232, 0.16);
    border-radius: var(--aig-r-card);
    overflow: hidden;
}

.aig-kpi {
    background: rgba(15, 30, 46, 0.42);
    padding: 18px 20px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.aig-kpi__etichetta {
    font-family: var(--aig-mono);
    font-size: 0.62rem;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--aig-on-band-dim);
}

.aig-kpi__valore {
    font-size: 1.72rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--aig-on-band);
    transition: color var(--aig-t-node) var(--aig-ease);
}

/* Il segnaposto resta smorzato ma leggibile: a 0.3 di alpha stava a 2,6:1. */
.aig-kpi.is-spento .aig-kpi__valore { color: rgba(255, 255, 255, 0.5); }

.aig-kpi__nota {
    font-size: 0.72rem;
    color: var(--aig-on-band-dim);
    line-height: 1.4;
}

/* Barra segmentata a soglie */
.aig-seg {
    display: flex;
    gap: 2px;
    height: 4px;
    margin-top: 4px;
}

.aig-seg span {
    flex: 1;
    background: rgba(255, 255, 255, 0.12);
    transition: background var(--aig-t-node) var(--aig-ease);
}

.aig-seg span.is-pieno { background: var(--aig-on-band-line); }
.aig-kpi.is-alert .aig-seg span.is-pieno { background: #d98080; }
.aig-kpi.is-warn .aig-seg span.is-pieno { background: #e0b070; }
.aig-kpi.is-ok .aig-seg span.is-pieno { background: #7fc9a0; }

/* ============================================================
   CRUSCOTTO / PLANCIA
   ============================================================ */
.aig-plancia {
    padding: 72px 0 78px;
}

.aig-plancia__testa {
    max-width: 780px;
    margin-bottom: 34px;
}

.aig-plancia__testa h2 {
    font-size: clamp(1.6rem, 3.2vw, 2.2rem);
    font-weight: 800;
    letter-spacing: -0.8px;
    line-height: 1.22;
    color: var(--aig-on-band);
    margin: 12px 0 14px;
}

.aig-plancia__testa h2 .aig-accento { color: var(--aig-on-band-line); }

.aig-plancia__testa p {
    font-size: 0.96rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.76);
    margin: 0;
}

.aig-plancia__griglia {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
    gap: 26px;
    align-items: start;
}

.aig-pannello {
    background: rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(168, 205, 232, 0.18);
    border-radius: var(--aig-r-card);
    padding: 24px 26px;
    min-width: 0;
}

.aig-pannello__testa {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding-bottom: 14px;
    margin-bottom: 18px;
    border-bottom: 1px solid rgba(168, 205, 232, 0.16);
}

/* Navigazione fra gli assi */
.aig-assi-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 20px;
}

.aig-assi-nav button {
    font: inherit;
    font-size: 0.76rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.6);
    background: transparent;
    border: 1px solid rgba(168, 205, 232, 0.18);
    border-radius: var(--aig-r-chip);
    padding: 6px 11px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-assi-nav button:hover { color: #ffffff; border-color: var(--aig-on-band-line); }

.aig-assi-nav button.is-attivo {
    background: rgba(168, 205, 232, 0.14);
    border-color: var(--aig-on-band-line);
    color: #ffffff;
}

.aig-assi-nav .aig-pallino {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.22);
    transition: background var(--aig-t-micro) var(--aig-ease);
}

.aig-assi-nav button.is-completo .aig-pallino { background: var(--aig-on-band-line); }

.aig-asse__desc {
    font-size: 0.86rem;
    line-height: 1.65;
    color: var(--aig-on-band-dim);
    margin: 0 0 22px;
}

/* Domande */
.aig-domanda { margin-bottom: 26px; }
.aig-domanda:last-of-type { margin-bottom: 0; }

.aig-domanda__testo {
    font-size: 0.94rem;
    font-weight: 600;
    line-height: 1.5;
    color: #ffffff;
    margin: 0 0 12px;
    display: flex;
    gap: 10px;
}

.aig-domanda__n {
    font-family: var(--aig-mono);
    font-size: 0.72rem;
    color: var(--aig-on-band-dim);
    padding-top: 3px;
    flex-shrink: 0;
}

.aig-opzioni {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-left: 30px;
}

.aig-opzione {
    font: inherit;
    text-align: left;
    font-size: 0.85rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.68);
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(168, 205, 232, 0.14);
    border-radius: var(--aig-r-chip);
    padding: 10px 13px;
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-opzione:hover {
    border-color: rgba(168, 205, 232, 0.45);
    color: #ffffff;
}

.aig-opzione__punti {
    font-family: var(--aig-mono);
    font-size: 0.7rem;
    color: var(--aig-on-band-dim);
    flex-shrink: 0;
    padding-top: 1px;
    width: 12px;
}

.aig-opzione.is-scelta {
    background: rgba(168, 205, 232, 0.14);
    border-color: var(--aig-on-band-line);
    color: #ffffff;
}

.aig-opzione.is-scelta .aig-opzione__punti { color: var(--aig-on-band-line); }

.aig-plancia__piede {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid rgba(168, 205, 232, 0.16);
}

.aig-garanzia {
    font-size: 0.76rem;
    color: var(--aig-on-band-dim);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 7px;
}

.aig-garanzia svg { width: 13px; height: 13px; flex-shrink: 0; }

/* Commento generato a fine asse */
.aig-commento {
    font-size: 0.85rem;
    line-height: 1.6;
    color: var(--aig-on-band-line);
    background: rgba(61, 143, 196, 0.1);
    border-left: 2px solid var(--aig-signal);
    padding: 11px 14px;
    margin: 0 0 20px;
    min-height: 1px;
}

.aig-commento:empty { display: none; }

.aig-caret {
    display: inline-block;
    width: 6px;
    height: 0.95em;
    background: var(--aig-on-band-line);
    vertical-align: text-bottom;
    margin-left: 2px;
    animation: aig-lampeggio 1s steps(2) infinite;
}

@keyframes aig-lampeggio { 50% { opacity: 0; } }

/* ============================================================
   RADAR
   ============================================================ */
.aig-radar-wrap {
    position: sticky;
    top: 92px;
}

.aig-radar {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.aig-radar__griglia {
    fill: none;
    stroke: rgba(168, 205, 232, 0.16);
    stroke-width: 1;
}

.aig-radar__asse {
    stroke: rgba(168, 205, 232, 0.22);
    stroke-width: 1;
    stroke-dasharray: 3 3;
}

.aig-radar__profilo {
    fill: url(#aigRadarFill);
    stroke: var(--aig-on-band-line);
    stroke-width: 1.8;
    stroke-linejoin: round;
}

.aig-radar__campione {
    fill: rgba(61, 143, 196, 0.08);
    stroke: var(--aig-signal);
    stroke-width: 1.2;
    stroke-dasharray: 4 3;
    stroke-linejoin: round;
}

.aig-radar__nodo {
    fill: #0f1e2e;
    stroke: rgba(168, 205, 232, 0.5);
    stroke-width: 1.5;
    transition: all var(--aig-t-node) var(--aig-ease);
}

.aig-radar__nodo.is-attivo {
    fill: var(--aig-on-band-line);
    stroke: var(--aig-on-band-line);
}

.aig-radar__etichetta {
    font-size: 8.5px;
    font-weight: 600;
    fill: var(--aig-on-band-dim);
    letter-spacing: 0.2px;
}

.aig-radar__etichetta.is-attivo { fill: var(--aig-on-band); }

.aig-radar__stato {
    font-family: var(--aig-mono);
    font-size: 0.68rem;
    color: var(--aig-on-band-dim);
    text-align: center;
    margin: 4px 0 16px;
    letter-spacing: 0.6px;
}

/* Indice di maturità */
.aig-indice {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding-bottom: 14px;
    margin-bottom: 14px;
    border-bottom: 1px solid rgba(168, 205, 232, 0.16);
}

.aig-indice__valore {
    font-size: 2.6rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: var(--aig-on-band);
}

.aig-indice__su {
    font-size: 0.9rem;
    color: var(--aig-on-band-dim);
    font-weight: 600;
}

.aig-indice__livello {
    margin-left: auto;
    font-family: var(--aig-mono);
    font-size: 0.68rem;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #0f1e2e;
    background: var(--aig-on-band-line);
    border-radius: var(--aig-r-chip);
    padding: 4px 9px;
}

.aig-indice__livello.is-spento {
    background: transparent;
    border: 1px solid rgba(168, 205, 232, 0.28);
    color: var(--aig-on-band-dim);
}

/* Legenda radar (fallback accessibile e mobile) */
.aig-radar-legenda {
    width: 100%;
    border-collapse: collapse;
    margin-top: 6px;
}

.aig-radar-legenda th {
    text-align: left;
    font-family: var(--aig-mono);
    font-size: 0.62rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--aig-on-band-dim);
    font-weight: 500;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(168, 205, 232, 0.16);
}

.aig-radar-legenda th:last-child,
.aig-radar-legenda td:last-child { text-align: right; }

.aig-radar-legenda td {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.75);
    padding: 7px 0;
    border-bottom: 1px solid rgba(168, 205, 232, 0.08);
}

.aig-radar-legenda td:last-child {
    font-weight: 700;
    color: #ffffff;
}

.aig-radar-legenda tr.is-debole td:last-child { color: #e0b070; }

.aig-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    color: var(--aig-on-band-dim);
    margin-top: 14px;
    cursor: pointer;
}

.aig-check input {
    appearance: none;
    -webkit-appearance: none;
    width: 15px;
    height: 15px;
    /* Il bordo è l'unico indizio della casella non spuntata: a 0.5 di alpha
       stava sotto il 3:1 richiesto per i controlli. */
    border: 1px solid rgba(168, 205, 232, 0.85);
    border-radius: 2px;
    background: transparent;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
}

.aig-check input:checked {
    background: var(--aig-signal);
    border-color: var(--aig-signal);
}

.aig-check input:checked::after {
    content: '';
    position: absolute;
    left: 4px;
    top: 1px;
    width: 4px;
    height: 8px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* ============================================================
   TRACCIA DEL RAGIONAMENTO
   ============================================================ */
.aig-trace {
    margin-top: 14px;
    border-top: 1px solid var(--aig-hairline);
    padding-top: 10px;
}

.aig-trace summary {
    font-family: var(--aig-mono);
    font-size: 0.68rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--aig-text-muted);
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 7px;
}

.aig-trace summary::-webkit-details-marker { display: none; }

.aig-trace summary::before {
    content: '+';
    font-size: 0.9rem;
    line-height: 1;
}

.aig-trace[open] summary::before { content: '\2212'; }

.aig-trace summary:hover { color: var(--aig-accent); }

.aig-trace__corpo {
    font-family: var(--aig-mono);
    font-size: 0.74rem;
    line-height: 1.7;
    color: var(--aig-text-muted);
    margin-top: 9px;
    padding-left: 15px;
    border-left: 1px solid var(--aig-hairline);
}

.aig-trace__corpo p { margin: 0 0 4px; }
.aig-trace__corpo p:last-child { margin-bottom: 0; }
.aig-trace__corpo b { color: var(--aig-text); font-weight: 700; }

/* Traccia sulla banda scura */
.aig-band .aig-trace { border-top-color: rgba(168, 205, 232, 0.16); }
.aig-band .aig-trace summary { color: var(--aig-on-band-dim); }
.aig-band .aig-trace summary:hover { color: var(--aig-on-band-line); }
.aig-band .aig-trace__corpo {
    color: var(--aig-on-band-dim);
    border-left-color: rgba(168, 205, 232, 0.16);
}
.aig-band .aig-trace__corpo b { color: #ffffff; }

/* ============================================================
   BENCHMARK
   ============================================================ */
.aig-barre {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.aig-bar__testa {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 9px;
}

.aig-bar__nome {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--aig-text);
}

.aig-bar__valore {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--aig-accent);
    letter-spacing: -0.02em;
}

.aig-bar__pista {
    position: relative;
    height: 26px;
    background: var(--aig-bg-alt);
    border: 1px solid var(--aig-hairline);
    border-radius: 3px;
}

.aig-bar__riempimento {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    background: rgba(26, 58, 92, 0.14);
    border-right: 2px solid var(--aig-accent);
    transition: width var(--aig-t-edge) var(--aig-ease);
}

.aig-bar__tu {
    position: absolute;
    top: -7px;
    bottom: -7px;
    width: 2px;
    background: var(--aig-signal);
    transition: left var(--aig-t-edge) var(--aig-ease);
}

.aig-bar__tu::after {
    content: attr(data-etichetta);
    position: absolute;
    top: -19px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--aig-mono);
    font-size: 0.6rem;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--aig-signal-testo);
    white-space: nowrap;
}

.aig-bar__testo {
    font-size: 0.86rem;
    line-height: 1.65;
    color: var(--aig-text-muted);
    margin: 10px 0 0;
}

/* ============================================================
   HEATMAP DEI RISCHI
   ============================================================ */
.aig-heat-wrap {
    overflow-x: auto;
    padding-bottom: 6px;
    margin-bottom: 22px;
}

.aig-heat {
    display: grid;
    grid-template-columns: minmax(190px, 1.4fr) repeat(5, minmax(74px, 1fr)) minmax(96px, 0.8fr);
    gap: 3px;
    min-width: 720px;
}

.aig-heat__intestazione {
    font-family: var(--aig-mono);
    font-size: 0.6rem;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--aig-text-muted);
    padding: 0 4px 9px;
    text-align: center;
    align-self: end;
    line-height: 1.3;
}

.aig-heat__intestazione:first-child { text-align: left; }

.aig-heat__riga {
    display: contents;
}

.aig-heat__nome {
    font: inherit;
    text-align: left;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--aig-text);
    background: var(--aig-bg-alt);
    border: 1px solid var(--aig-hairline);
    border-radius: 3px;
    padding: 10px 12px;
    cursor: pointer;
    transition: all var(--aig-t-micro) var(--aig-ease);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.aig-heat__nome:hover,
.aig-heat__nome.is-attivo {
    border-color: var(--aig-accent);
    background: rgba(26, 58, 92, 0.06);
}

.aig-heat__nome span {
    font-family: var(--aig-mono);
    font-size: 0.62rem;
    color: var(--aig-text-muted);
    flex-shrink: 0;
}

.aig-heat__cella {
    font: inherit;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--aig-text);
    border: 1px solid var(--aig-hairline);
    border-radius: 3px;
    padding: 10px 4px;
    cursor: pointer;
    text-align: center;
    background: var(--aig-bg-alt);
    opacity: 0;
    transform: translateY(4px);
    transition:
        opacity var(--aig-t-node) var(--aig-ease),
        transform var(--aig-t-node) var(--aig-ease),
        background-color var(--aig-t-node) var(--aig-ease),
        border-color var(--aig-t-micro) var(--aig-ease);
    transition-delay: calc(var(--i, 0) * 22ms);
}

.aig-heat.is-visibile .aig-heat__cella {
    opacity: 1;
    transform: translateY(0);
}

.aig-heat__cella:hover,
.aig-heat__cella.is-attivo {
    border-color: var(--aig-accent);
    box-shadow: inset 0 0 0 1px var(--aig-accent);
}

.aig-heat__cella[data-vuota="1"] { color: var(--aig-text-muted); font-weight: 500; }

.aig-heat__totale {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid var(--aig-hairline);
    border-radius: 3px;
    background: #ffffff;
    padding: 10px 8px;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--aig-text);
}

.aig-heat__totale i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--aig-hairline);
    flex-shrink: 0;
}

.aig-heat__nota {
    font-size: 0.8rem;
    color: var(--aig-text-muted);
    margin: 0 0 18px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.aig-legenda-scala {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--aig-mono);
    font-size: 0.62rem;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--aig-text-muted);
}

.aig-legenda-scala i {
    width: 46px;
    height: 7px;
    border-radius: 2px;
    background: linear-gradient(90deg, #e8f2ea 0%, #f3ecd8 50%, #f2dede 100%);
    border: 1px solid var(--aig-hairline);
}

/* Pannello di dettaglio della famiglia */
.aig-dettaglio {
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-left: 3px solid var(--aig-accent);
    border-radius: var(--aig-r-card);
    padding: 26px 28px;
    box-shadow: var(--aig-shadow);
}

.aig-dettaglio__testa {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.aig-dettaglio h3 {
    font-size: 1.12rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 4px 0 0;
    line-height: 1.3;
}

.aig-dettaglio__esposizione {
    text-align: right;
    flex-shrink: 0;
}

.aig-dettaglio__esposizione b {
    display: block;
    font-size: 1.7rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.aig-dettaglio__desc {
    font-size: 0.92rem;
    line-height: 1.8;
    color: var(--aig-text-muted);
    margin: 0 0 20px;
    text-align: justify;
    hyphens: auto;
}

.aig-dettaglio__colonne {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
}

.aig-dettaglio h4 {
    font-family: var(--aig-mono);
    font-size: 0.64rem;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--aig-text-muted);
    font-weight: 500;
    margin: 0 0 11px;
    padding-bottom: 7px;
    border-bottom: 1px solid var(--aig-hairline);
}

.aig-lista {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.aig-lista li {
    font-size: 0.84rem;
    line-height: 1.6;
    color: var(--aig-text-muted);
    padding-left: 15px;
    position: relative;
}

.aig-lista li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.62em;
    width: 5px;
    height: 5px;
    background: var(--aig-accent);
    border-radius: 50%;
}

.aig-lista b {
    display: block;
    color: var(--aig-text);
    font-weight: 700;
    margin-bottom: 2px;
}

/* Famiglie statiche (fallback e SEO) */
.aig-famiglie {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 30px;
}

.aig-famiglia {
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-radius: var(--aig-r-card);
    padding: 20px 22px;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-famiglia:hover {
    border-color: rgba(22, 64, 104, 0.3);
    box-shadow: var(--aig-shadow-hover);
}

.aig-famiglia h3 {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 7px 0 8px;
    line-height: 1.3;
}

.aig-famiglia p {
    font-size: 0.84rem;
    line-height: 1.65;
    color: var(--aig-text-muted);
    margin: 0;
}

/* ============================================================
   CLASSIFICATORE AI ACT
   ============================================================ */
.aig-albero {
    max-width: 860px;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-radius: var(--aig-r-card);
    box-shadow: var(--aig-shadow);
    overflow: hidden;
}

.aig-briciole {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 12px 22px;
    background: var(--aig-bg-alt);
    border-bottom: 1px solid var(--aig-hairline);
    min-height: 44px;
}

.aig-briciola {
    font: inherit;
    font-family: var(--aig-mono);
    font-size: 0.64rem;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--aig-accent);
    background: rgba(26, 58, 92, 0.07);
    border: 1px solid transparent;
    border-radius: var(--aig-r-chip);
    padding: 4px 8px;
    cursor: pointer;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-briciola:hover { border-color: var(--aig-accent); }
.aig-briciola[disabled] { color: var(--aig-text-muted); cursor: default; background: transparent; }

.aig-briciole__sep { color: var(--aig-text-muted); font-size: 0.7rem; }

.aig-nodo { padding: 26px 28px 28px; }

.aig-nodo__domanda {
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--aig-text);
    line-height: 1.4;
    margin: 10px 0 10px;
}

.aig-nodo__aiuto {
    font-size: 0.85rem;
    line-height: 1.7;
    color: var(--aig-text-muted);
    margin: 0 0 20px;
    padding-left: 13px;
    border-left: 2px solid var(--aig-hairline);
}

.aig-nodo__opzioni {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.aig-scelta {
    font: inherit;
    text-align: left;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--aig-text);
    background: var(--aig-bg-alt);
    border: 1px solid var(--aig-hairline);
    border-radius: var(--aig-r-card);
    padding: 14px 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-scelta:hover {
    border-color: var(--aig-accent);
    background: rgba(26, 58, 92, 0.05);
    transform: translateX(3px);
}

.aig-scelta svg {
    width: 15px;
    height: 15px;
    color: var(--aig-text-muted);
    flex-shrink: 0;
}

.aig-scelta:hover svg { color: var(--aig-accent); }

/* Esito */
.aig-esito__classe {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--aig-mono);
    font-size: 0.66rem;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    font-weight: 700;
    border-radius: var(--aig-r-chip);
    padding: 5px 10px;
    margin-bottom: 12px;
}

.aig-esito__classe[data-livello="vietato"] { background: rgba(163, 47, 47, 0.1); color: var(--aig-alert); }
.aig-esito__classe[data-livello="alto"] { background: rgba(176, 118, 26, 0.12); color: var(--aig-warn-testo); }
.aig-esito__classe[data-livello="gpai"] { background: rgba(26, 58, 92, 0.09); color: var(--aig-accent); }
.aig-esito__classe[data-livello="trasparenza"] { background: rgba(61, 143, 196, 0.13); color: var(--aig-signal-testo); }
.aig-esito__classe[data-livello="minimo"] { background: rgba(30, 122, 79, 0.1); color: var(--aig-ok); }

.aig-esito h3 {
    font-size: 1.22rem;
    font-weight: 800;
    letter-spacing: -0.4px;
    color: var(--aig-text);
    line-height: 1.3;
    margin: 0 0 12px;
}

.aig-esito__desc {
    font-size: 0.92rem;
    line-height: 1.8;
    color: var(--aig-text-muted);
    margin: 0 0 22px;
    text-align: justify;
    hyphens: auto;
}

.aig-esito__nota {
    font-size: 0.84rem;
    line-height: 1.65;
    color: var(--aig-text-muted);
    background: var(--aig-bg-alt);
    border-left: 2px solid var(--aig-signal);
    padding: 12px 14px;
    margin: 20px 0 0;
}

.aig-esito__azioni {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 22px;
}

.aig-disclaimer {
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--aig-text-muted);
    background: var(--aig-bg-alt);
    border: 1px solid var(--aig-hairline);
    border-radius: var(--aig-r-card);
    padding: 12px 16px;
    margin: 22px auto 0;
    max-width: 860px;
    display: flex;
    gap: 10px;
}

.aig-disclaimer svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--aig-text-muted);
}

/* Ruoli e timeline */
.aig-ruoli {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 44px;
}

.aig-ruolo {
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-radius: var(--aig-r-card);
    padding: 24px 22px;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-ruolo:hover { border-color: rgba(22, 64, 104, 0.3); box-shadow: var(--aig-shadow-hover); }

.aig-ruolo h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 8px 0 10px;
}

.aig-ruolo > p {
    font-size: 0.86rem;
    line-height: 1.7;
    color: var(--aig-text-muted);
    margin: 0 0 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--aig-hairline);
}

.aig-timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-top: 44px;
    border-top: 2px solid var(--aig-hairline);
}

.aig-tappa {
    padding: 22px 20px 0;
    border-right: 1px solid var(--aig-hairline);
    position: relative;
}

.aig-tappa:last-child { border-right: none; }

.aig-tappa::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 20px;
    width: 9px;
    height: 9px;
    background: var(--aig-accent);
    border-radius: 50%;
}

.aig-tappa__data {
    font-family: var(--aig-mono);
    font-size: 0.68rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--aig-accent);
    font-weight: 700;
    margin: 0 0 7px;
}

.aig-tappa h3 {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 0 0 8px;
    line-height: 1.35;
}

.aig-tappa p {
    font-size: 0.83rem;
    line-height: 1.65;
    color: var(--aig-text-muted);
    margin: 0;
}

/* ============================================================
   HUB AND SPOKE
   ============================================================ */
.aig-hub {
    position: relative;
    max-width: 780px;
    margin: 0 auto;
}

.aig-hub__svg {
    display: block;
    width: 100%;
    height: auto;
}

.aig-hub__arco {
    stroke: var(--aig-edge, rgba(26, 58, 92, 0.2));
    stroke-width: 1.4;
    fill: none;
    transition: stroke var(--aig-t-node) var(--aig-ease);
}

.aig-hub__arco.is-priority { stroke: var(--aig-signal); stroke-width: 2; }

.aig-hub__cerchio {
    fill: #ffffff;
    stroke: rgba(26, 58, 92, 0.28);
    stroke-width: 1.4;
    transition: all var(--aig-t-node) var(--aig-ease);
}

.aig-hub__cerchio.is-centro { fill: var(--aig-accent); stroke: var(--aig-accent); }
.aig-hub__cerchio.is-attivo { fill: var(--aig-accent); stroke: var(--aig-accent); }
.aig-hub__cerchio.is-priority { stroke: var(--aig-signal); stroke-width: 2.2; }

.aig-hub__punto {
    position: absolute;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    width: 132px;
}

.aig-hub__btn {
    font: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--aig-text);
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-radius: var(--aig-r-chip);
    padding: 7px 9px;
    cursor: pointer;
    text-align: center;
    width: 100%;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-hub__btn:hover { border-color: var(--aig-accent); }

.aig-hub__btn.is-attivo {
    background: var(--aig-accent);
    border-color: var(--aig-accent);
    color: #ffffff;
}

.aig-hub__btn.is-centro {
    font-weight: 700;
    background: var(--aig-accent);
    border-color: var(--aig-accent);
    color: #ffffff;
}

.aig-hub__btn.is-centro.is-attivo { background: #0f1e2e; border-color: #0f1e2e; }

.aig-hub__chip {
    font-family: var(--aig-mono);
    font-size: 0.56rem;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #ffffff;
    background: var(--aig-signal);
    border-radius: 2px;
    padding: 2px 5px;
    white-space: nowrap;
}

.aig-hub__pannello {
    max-width: 780px;
    margin: 26px auto 0;
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-left: 3px solid var(--aig-accent);
    border-radius: var(--aig-r-card);
    padding: 22px 24px;
    box-shadow: var(--aig-shadow);
}

.aig-hub__pannello h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 7px 0 10px;
}

.aig-hub__pannello > p {
    font-size: 0.88rem;
    line-height: 1.75;
    color: var(--aig-text-muted);
    margin: 0 0 16px;
}

/* ============================================================
   PIANO / NOTA PER IL CONSIGLIO
   ============================================================ */
.aig-piano {
    max-width: 900px;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-radius: var(--aig-r-card);
    box-shadow: var(--aig-shadow);
    overflow: hidden;
}

.aig-piano__testa {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 16px 26px;
    background: var(--aig-bg-alt);
    border-bottom: 1px solid var(--aig-hairline);
}

.aig-piano__azioni { display: flex; gap: 8px; flex-wrap: wrap; }

.aig-piano__corpo { padding: 28px 30px 30px; }

.aig-piano__testo {
    font-size: 0.94rem;
    line-height: 1.85;
    color: var(--aig-text-muted);
    margin: 0 0 20px;
    white-space: pre-wrap;
}

.aig-piano__testo b { color: var(--aig-text); font-weight: 700; }

.aig-piano__sezione {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--aig-hairline);
}

.aig-piano__sezione h3 {
    font-family: var(--aig-mono);
    font-size: 0.66rem;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--aig-text-muted);
    font-weight: 500;
    margin: 0 0 14px;
}

.aig-azioni-lista {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: aig-az;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.aig-azioni-lista li {
    counter-increment: aig-az;
    display: flex;
    gap: 13px;
    font-size: 0.9rem;
    line-height: 1.65;
    color: var(--aig-text-muted);
}

.aig-azioni-lista li::before {
    content: counter(aig-az, decimal-leading-zero);
    font-family: var(--aig-mono);
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--aig-accent);
    background: rgba(26, 58, 92, 0.07);
    border-radius: 2px;
    padding: 2px 6px;
    height: fit-content;
    flex-shrink: 0;
    margin-top: 2px;
}

.aig-azioni-lista b { color: var(--aig-text); }

.aig-piano__vuoto {
    font-size: 0.9rem;
    line-height: 1.75;
    color: var(--aig-text-muted);
    margin: 0;
}

.aig-piano__disclaimer {
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--aig-text-muted);
    margin: 24px 0 0;
    padding-top: 16px;
    border-top: 1px solid var(--aig-hairline);
}

/* Quadro di sintesi: due tabelle compatte */
.aig-quadro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
}

.aig-tab {
    width: 100%;
    border-collapse: collapse;
}

.aig-tab caption {
    text-align: left;
    font-size: 0.76rem;
    color: var(--aig-text-muted);
    padding-bottom: 9px;
    line-height: 1.4;
}

.aig-tab th {
    text-align: left;
    font-family: var(--aig-mono);
    font-size: 0.6rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--aig-text-muted);
    font-weight: 500;
    padding: 0 0 7px;
    border-bottom: 1px solid var(--aig-hairline);
}

.aig-tab th:last-child,
.aig-tab td:last-child { text-align: right; }

.aig-tab td {
    font-size: 0.84rem;
    color: var(--aig-text-muted);
    padding: 8px 0;
    border-bottom: 1px solid var(--aig-hairline);
}

.aig-tab td:last-child {
    font-weight: 700;
    color: var(--aig-text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.aig-tab tr.is-debole td:last-child { color: var(--aig-warn-testo); }

/* ============================================================
   METODO
   ============================================================ */
.aig-metodo {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 42px;
}

.aig-metodo__card {
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-radius: var(--aig-r-card);
    padding: 22px 22px 20px;
}

.aig-metodo__card h3 {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 8px 0 9px;
}

.aig-metodo__card p {
    font-size: 0.84rem;
    line-height: 1.7;
    color: var(--aig-text-muted);
    margin: 0;
}

.aig-metodo__card p + p { margin-top: 9px; }

/* ============================================================
   CICLO DI VITA
   ============================================================ */
.aig-fasi {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
    margin-top: 46px;
}

.aig-fase {
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-top: 2px solid var(--aig-accent);
    border-radius: var(--aig-r-card);
    padding: 20px 18px;
    display: flex;
    flex-direction: column;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-fase:hover { box-shadow: var(--aig-shadow-hover); transform: translateY(-2px); }

.aig-fase h3 {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 8px 0 9px;
    line-height: 1.3;
}

.aig-fase > p {
    font-size: 0.8rem;
    line-height: 1.6;
    color: var(--aig-text-muted);
    margin: 0 0 14px;
    padding-bottom: 13px;
    border-bottom: 1px solid var(--aig-hairline);
}

.aig-fase ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.aig-fase li {
    font-size: 0.76rem;
    line-height: 1.45;
    color: var(--aig-text-muted);
    padding-left: 12px;
    position: relative;
}

.aig-fase li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 4px;
    height: 4px;
    background: var(--aig-accent);
    border-radius: 50%;
}

/* Step della FRIA */
.aig-step {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    margin-top: 46px;
}

.aig-step__item {
    padding: 0 18px;
    border-left: 2px solid var(--aig-hairline);
    position: relative;
}

.aig-step__item:first-child { padding-left: 0; border-left: none; }

.aig-step__n {
    font-family: var(--aig-mono);
    font-size: 0.66rem;
    letter-spacing: 1.2px;
    color: var(--aig-accent);
    font-weight: 700;
    margin: 0 0 9px;
}

.aig-step__item h3 {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 0 0 9px;
    line-height: 1.3;
}

.aig-step__item p {
    font-size: 0.81rem;
    line-height: 1.65;
    color: var(--aig-text-muted);
    margin: 0;
}

/* Citazione */
.aig-quote {
    max-width: 820px;
    margin: 46px auto 0;
    padding: 26px 30px;
    background: var(--aig-bg-alt);
    border-left: 3px solid var(--aig-accent);
    border-radius: 0 var(--aig-r-card) var(--aig-r-card) 0;
}

.aig-quote p {
    font-size: 1.08rem;
    line-height: 1.7;
    font-weight: 600;
    color: var(--aig-text);
    margin: 0;
    letter-spacing: -0.2px;
}

/* Blocchi narrativi affiancati */
.aig-due-colonne {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 34px;
    max-width: 1040px;
    margin: 46px auto 0;
}

.aig-due-colonne h3 {
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 0 0 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--aig-hairline);
}

.aig-due-colonne p {
    font-size: 0.92rem;
    line-height: 1.85;
    color: var(--aig-text-muted);
    margin: 0 0 14px;
    text-align: justify;
    hyphens: auto;
}

.aig-due-colonne p:last-child { margin-bottom: 0; }
.aig-due-colonne strong { color: var(--aig-text); font-weight: 700; }

/* ============================================================
   TRE LINEE DI DIFESA
   ============================================================ */
.aig-linee {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 30px;
}

.aig-linea {
    background: #ffffff;
    border: 1px solid var(--aig-hairline);
    border-radius: var(--aig-r-card);
    padding: 24px 22px;
    transition: all var(--aig-t-micro) var(--aig-ease);
}

.aig-linea:hover {
    border-color: var(--aig-accent);
    box-shadow: var(--aig-shadow-hover);
}

.aig-linea__n {
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: -1px;
    /* Era rgba(26,58,92,0.22): 1,5:1 su bianco, illeggibile. */
    color: #7b8ea3;
    line-height: 1;
    margin-bottom: 12px;
}

.aig-linea h3 {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--aig-text);
    margin: 0 0 4px;
}

.aig-linea__label {
    font-family: var(--aig-mono);
    font-size: 0.62rem;
    letter-spacing: 1.4px;
    color: var(--aig-text-muted);
    margin: 0 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--aig-hairline);
}

/* ============================================================
   NOSCRIPT
   ============================================================ */
.aig-noscript {
    background: rgba(176, 118, 26, 0.08);
    border: 1px solid rgba(176, 118, 26, 0.3);
    border-radius: var(--aig-r-card);
    padding: 14px 18px;
    font-size: 0.86rem;
    color: var(--aig-text);
    margin: 0 auto 24px;
    max-width: 860px;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1100px) {
    .aig-plancia__griglia { grid-template-columns: 1fr; }
    .aig-radar-wrap { position: static; max-width: 460px; margin: 0 auto; }
    .aig-fasi { grid-template-columns: repeat(2, 1fr); }
    .aig-step { grid-template-columns: repeat(2, 1fr); gap: 26px 0; }
    .aig-timeline { grid-template-columns: repeat(2, 1fr); }
    .aig-tappa:nth-child(2) { border-right: none; }
    .aig-tappa:nth-child(n+3) { margin-top: 22px; border-top: 1px solid var(--aig-hairline); padding-top: 22px; }
}

/* Sotto i 700px la raggiera non ha spazio: i nodi si accavallerebbero e
   uscirebbero dal contenitore. Diventa un elenco, che resta leggibile e
   mantiene gli stessi bottoni, gli stessi stati e lo stesso ordine di tabulazione. */
@media (max-width: 700px) {
    .aig-hub__svg { display: none; }

    #aigHubPunti {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .aig-hub__punto {
        position: static;
        transform: none;
        width: 100%;
        flex-direction: row;
        align-items: center;
        gap: 8px;
    }

    .aig-hub__btn { text-align: left; }
    .aig-hub__btn.is-centro { text-align: center; }
    .aig-hub__chip { flex-shrink: 0; }
}

@media (max-width: 900px) {
    .aig-quadro { grid-template-columns: 1fr; gap: 22px; }
    .aig-console { grid-template-columns: repeat(2, 1fr); }
    .aig-ruoli { grid-template-columns: 1fr; }
    .aig-linee { grid-template-columns: 1fr; }
    .aig-metodo { grid-template-columns: 1fr; }
    .aig-famiglie { grid-template-columns: 1fr; }
    .aig-dettaglio__colonne { grid-template-columns: 1fr; gap: 22px; }
    .aig-due-colonne { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 620px) {
    .aig-hero { padding: 124px 0 56px; }
    .aig-plancia { padding: 56px 0 60px; }
    .aig-pannello { padding: 20px 18px; }
    .aig-opzioni { padding-left: 0; }
    .aig-fasi { grid-template-columns: 1fr; }
    .aig-step { grid-template-columns: 1fr; gap: 22px; }
    .aig-step__item { padding: 0 0 0 16px; border-left: 2px solid var(--aig-hairline); }
    .aig-step__item:first-child { padding-left: 16px; border-left: 2px solid var(--aig-hairline); }
    .aig-timeline { grid-template-columns: 1fr; }
    .aig-tappa { border-right: none; padding: 22px 0 0 20px; }
    .aig-tappa::before { left: 0; top: 26px; }
    .aig-tappa:nth-child(n+2) { margin-top: 4px; border-top: none; }
    .aig-nodo { padding: 22px 20px 24px; }
    .aig-dettaglio { padding: 22px 20px; }
    .aig-piano__corpo { padding: 22px 20px; }
    .aig-piano__testa { padding: 14px 20px; }
    .aig-quote { padding: 22px 20px; }
    .aig-quote p { font-size: 0.98rem; }
    .aig-indice__valore { font-size: 2.2rem; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
    /* zls_zes/style.css imposta scroll-behavior: smooth su html, e html non è
       discendente di .aig: senza questa regola le ancore restano animate anche
       per chi ha chiesto di ridurre il movimento. */
    html:has(.aig) {
        scroll-behavior: auto !important;
    }

    .aig *,
    .aig *::before,
    .aig *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        transition-delay: 0ms !important;
        scroll-behavior: auto !important;
    }

    .aig-heat__cella { opacity: 1; transform: none; }
    .aig-caret { animation: none; }
    .aig-scelta:hover { transform: none; }
    .aig-fase:hover { transform: none; }
}

/* ============================================================
   STAMPA
   ============================================================ */
/* La stampa serve a un solo scopo: portare la nota in consiglio.
   Resta l'intestazione, resta la nota con il quadro di sintesi e il disclaimer.
   Tutto il resto, comprese le sezioni narrative e gli strumenti interattivi,
   non ha ragione di finire su carta. */
@media print {
    .navbar,
    .aig-rail,
    .aig-hero__azioni,
    .aig-chips,
    .aig-chips__intro,
    .aig-console,
    .aig-plancia,
    .aig-piano__azioni,
    .section-cta,
    .footer,
    .aig-trace,
    #contesto,
    #benchmark,
    #rischi,
    #aiact,
    #modello,
    #fria,
    #metodo,
    #perche {
        display: none !important;
    }

    /* Le tabelle non devono spezzarsi a metà fra due pagine */
    .aig-tab,
    .aig-azioni-lista li { break-inside: avoid; }

    .aig-quadro { grid-template-columns: 1fr 1fr; gap: 20px; }

    .aig-hero {
        padding: 0 0 18px;
        background: none;
        color: #000000;
    }

    .aig-hero h1 { color: #000000; font-size: 1.4rem; }
    .aig-hero h1 .aig-accento { color: #000000; }
    .aig-hero__sub { display: none; }
    .aig-band::before { display: none; }
    .aig-hero__badge { color: #000000; border-color: #999999; }

    .aig-piano {
        border: none;
        box-shadow: none;
        max-width: none;
    }

    .aig-piano__corpo { padding: 0; }
    .aig-piano__testa { background: none; border-bottom: 1px solid #999999; padding: 0 0 10px; }

    .section { padding: 0 !important; }

    body { background: #ffffff; }

    a[href]::after { content: ''; }
}
