# SVG Color Palette Workflow

Workflow per applicare o sostituire palette colore su SVG esistenti, mantenendo struttura e leggibilita'.

## Input attesi

Accetta uno dei seguenti input:

- path a file `.svg`;
- blocco SVG inline completo;
- palette target in uno dei formati seguenti:
  - elenco colori (`[#112233, #445566, ...]`),
  - mappa semantica (`primary`, `secondary`, `accent`, `neutral`),
  - regole di sostituzione esplicite (`from -> to`).

Se manca la palette target, fermati e richiedi il formato minimo necessario.

## Passi operativi

1. **Inventario colori sorgente**
   - estrai colori usati in `fill`, `stroke`, gradient stop e style inline;
   - deduplica e conta frequenza d'uso per priorita'.

2. **Classificazione non distruttiva**
   - separa colori funzionali (icone/shape) da colori tecnici (`none`, `currentColor`, trasparenze);
   - non forzare sostituzioni su `currentColor` salvo richiesta esplicita.

3. **Mapping palette**
   - applica mapping diretto `from -> to` quando fornito;
   - in assenza di mapping diretto, usa mapping per prossimita' percettiva e ruolo visivo (sfondo, foreground, accento);
   - mantieni contrasto minimo ragionevole tra elementi principali.

4. **Applicazione sostituzioni**
   - aggiorna attributi colore in modo coerente tra elementi equivalenti;
   - evita modifiche geometriche o strutturali fuori scope.

5. **Verifica finale**
   - conferma assenza di riferimenti rotti (es. gradient id/url);
   - segnala colori rimasti invariati con motivazione (vincolo tecnico o mancanza mapping).

## Output atteso

Restituisci sempre:

1. SVG aggiornato completo.
2. Report sintetico con:
   - palette iniziale (deduplicata),
   - palette finale applicata,
   - sostituzioni effettuate/evitate,
   - eventuali warning su contrasto o coerenza.

## Fallback

- Se il mapping non e' determinabile in modo affidabile, applica solo le sostituzioni esplicitamente richieste.
- Se l'SVG usa variabili CSS esterne non disponibili, dichiaralo e limita l'intervento agli attributi inline.
