/* ============================================================
 * Amaki — bridge transitorio (repo-owned, NON fa parte del pacchetto DS)
 * ----------------------------------------------------------------
 * Mappa i vecchi token --amaki-* del proto sui token del DS nuovo,
 * così le superfici /proto adottano subito il design system reale
 * senza riscrivere ogni componente in un colpo solo.
 *
 * È TRANSITORIO: si riduce man mano che i componenti migrano ai token
 * nativi (--text-*, --surface-*, --accent-*). Da cancellare quando
 * questo comando non trova più nulla:
 *   grep -rohE 'var\(--amaki-[a-z0-9-]+' app components
 *
 * NB sui temi: gli alias vanno dichiarati SIA su :root SIA su
 * [data-theme="dark"], altrimenti un alias dichiarato solo su :root
 * risolve var(--surface-page) nel contesto light e si "congela"
 * (le custom property ereditano il valore già sostituito).
 *
 * Scelte di mapping:
 *   - success → pilastro Soldi (verde);  warning → pilastro Energia (ambra)
 *   - "action" → contrasto massimo del tema (ink su chiaro / chiaro su ink),
 *     coerente con l'UI monocroma + un accento-pilastro per schermata.
 * ============================================================ */

:root,
[data-theme="dark"] {
  /* Font (indipendenti dal tema, ripetuti per semplicità) */
  --amaki-font-sans:        var(--font-body);    /* Onest */
  --amaki-font-serif:       var(--font-display); /* National Park (display) */

  /* Text */
  --amaki-text-heading:     var(--text-primary);
  --amaki-text-body:        var(--text-body);
  --amaki-text-subtle:      var(--text-subtle);

  /* Surface */
  --amaki-surface-page:     var(--surface-page);
  --amaki-surface-default:  var(--surface-raised);
  --amaki-surface-elevated: var(--surface-raised);
  --amaki-surface-disabled: var(--surface-sunken);
  --amaki-surface-action:   var(--text-primary);
  --amaki-on-action:        var(--text-inverse);

  /* Border */
  --amaki-border-subtle:    var(--border-subtle);
  --amaki-border-default:   var(--border-default);

  /* DS v4 · righe lista dentro lastra vetro */
  --amaki-hairline:         var(--hairline);

  /* Success → Soldi (verde) · Warning → Energia (ambra).
     Le superfici usano color-mix per adattarsi al tema. */
  --amaki-border-success:   var(--amk-soldi-500);
  --amaki-surface-success:  color-mix(in srgb, var(--amk-soldi-500) 14%, var(--surface-raised));
  --amaki-warning-60:       var(--amk-energia-500);

  /* Alias prodotto: l'asse "identità" usa il token 'energia'
     (decisione 2026-06-23: alias ora, rename a 'identita' come cleanup) */
  --accent-identita:        var(--amk-energia-500);
  --on-identita:            var(--amk-on-energia);
}

/* "success" come testo: contrasto diverso per tema */
:root               { --amaki-text-success: var(--amk-soldi-700); } /* verde scuro su chiaro */
[data-theme="dark"] { --amaki-text-success: var(--amk-soldi-500); } /* mint su ink       */

/* ————— DS v3 overrides (decisioni 2026-07-06, spec ds-v3-adozione) ————— */
:root,
[data-theme="dark"] {
  /* Focus ring: viola Tempo (readme) — NON il magenta "opzione A" di spacing.css */
  --focus-ring-color: var(--accent-tempo);
}

/* ============================================================
 * Dora → Amaki semantic bridge (repo-owned, transitorio)
 * ------------------------------------------------------------
 * Il pacchetto DS (colors.css) ri-punta solo i nomi di token che
 * condivide (--surface-page, --text-body, --border-focus, …). I
 * componenti Angular Dora però consumano ALTRI nomi (--surface-action,
 * --text-action, --surface-primary, --border-primary, --gradient-*,
 * --font-family-*) che restavano sui vecchi valori Dora (viola #500dcf,
 * crema #fcf9f5, gradiente verde→viola, figtree/DM Sans).
 * Qui li ri-puntiamo sulla palette Amaki, così l'intera shell +
 * chat + wishlist + alert adottano il brand senza riscrivere i
 * componenti. Caricato dopo il bundle Angular (vince su tokens.scss).
 * Il layer .dark del vecchio tema tocca solo i --amk-* (vestigiali),
 * NON questi token semantici.
 *
 * !important OBBLIGATORIO: Angular emette blocchi component-scoped
 * `[_ngcontent-xxx]:root { ...tokens.scss... }` con specificità (0,2,0),
 * che batte il nostro `:root` (0,1,0) a prescindere dall'ordine di caricamento
 * (verificato: senza !important --text-action/--surface-action/--font-family-*
 * restavano ai valori Dora vecchi su /chat). !important sui custom-property
 * vince su qualsiasi specificità. I token che colors.css già ri-punta
 * (--surface-page,--text-body,…) NON sono in quei blocchi, quindi vincono da soli.
 * TRANSITORIO: si assottiglia man mano che le superfici migrano.
 * ============================================================ */
:root,
[data-theme="dark"] {
  /* Tipografia dell'intera app → Amaki. ENTRAMBI i token Dora erano font
     da corpo (figtree / DM Sans), usati in ~180 punti di UI (bottoni, input,
     chip, card, liste): vanno su Onest. National Park (display) si applica
     SOLO su heading specifici referenziando --font-display direttamente,
     non via questo token, altrimenti tutta la UI passa al font decorativo. */
  --font-family-primary:   var(--font-body) !important;   /* Onest */
  --font-family-secondary: var(--font-body) !important;   /* Onest (era DM Sans, da corpo) */

  /* Famiglia "action"/primary → Tempo (viola). I primitivi --amk-tempo-*
     sono indipendenti dal tema, quindi niente "freeze" tra light/dark. */
  --text-action:                           var(--amk-tempo-500) !important;
  --text-action-hover:                     var(--amk-tempo-700) !important;
  --text-on-low-visibility-action:         var(--amk-tempo-500) !important;
  --surface-action:                        var(--amk-tempo-500) !important;
  --surface-action-hover:                  var(--amk-tempo-700) !important;
  --surface-low-visibility-action:         var(--amk-tempo-050) !important;
  --surface-low-visibility-action-hover:   var(--amk-tempo-500) !important;
  --border-secondary:                      var(--amk-tempo-500) !important;
  --border-action:                         var(--amk-tempo-500) !important;
  --border-action-hover:                   var(--amk-tempo-700) !important;
  --border-low-visibility-action:          var(--amk-tempo-050) !important;
  --icon-on-low-visibility-action-surface: var(--amk-tempo-500) !important;

  /* Neutri (superfici bianche crema, headings, bordi) → semantici DS
     già theme-aware (bianco/ink in light, navy/chiaro in dark). */
  --text-headings:          var(--text-primary) !important;
  --surface-primary:        var(--surface-raised) !important;
  --surface-primary-hover:  var(--surface-raised) !important;
  --surface-on-primary:     var(--surface-raised) !important;
  --surface-primary-backup: var(--surface-raised) !important;
  --surface-page-backup:    var(--surface-raised) !important;
  --border-primary:         var(--border-subtle) !important;

  /* Gradiente brand (era verde→viola) → menta→viola: stesso movimento,
     pilastri Amaki (Soldi → Tempo → Tempo scuro). */
  --gradient-primary: linear-gradient(116deg, var(--amk-soldi-500) -5%, var(--amk-tempo-500) 45%, var(--amk-tempo-700) 95%) !important;
  --gradient-light-blue: var(--amk-soldi-500) !important;
  --gradient-purple:     var(--amk-tempo-500) !important;
  --gradient-blue:       var(--amk-tempo-700) !important;
}
