/* ═══════════════════════════════════════════════════════════════════════════
   THEMMIS DS · Legacy Aliases Bridge v2.0
   ───────────────────────────────────────────────────────────────────────────
   Mapeia 100% dos tokens das eras anteriores (FdC v1.0 + THEMMIS Quiet Luxury
   v1) para tokens THEMMIS v2 (editorial dark + accent orange).

   ATIVAÇÃO: importado pelo topo de tokens.css via @import. Resolve var()
   lazy-at-use-time, então a ordem permite que aliases apontem para tokens
   declarados ainda neste mesmo arquivo (cascata CSS).

   POLÍTICA DE CONTRASTE
   ─────────────────────
   • --warning (#CA8A04) passa AA sobre --bg-dark (6.74:1), MAS falha AA
     sobre --bg-light (2.82:1). Para texto sobre fundos claros, --feedback-
     warning-text aponta para um âmbar mais escuro (#785E1F) — preserva
     o fix da Fase 2 v1 / decisão Q-a.
   • Demais feedbacks (--success, --danger) passam AA sobre ambos os
     fundos (validado em contrast-report.md §v2).

   CONVENÇÃO @deprecated
   ─────────────────────
   • @deprecated:perm   — uso ≥20 ou em fluxo crítico (checkout, carrinho,
                          header, footer, sidebar). Mantido permanente.
   • @deprecated:phase4 — substituir inline quando reescrever a tela
                          consumidora (storefront).
   • @deprecated:phase6 — substituir no ciclo de admin (out of scope agora).

   Última auditoria: 2026-05-14 · pós-pivot v1→v2.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {

  /* ═══════════════════════════════════════════════════════════════════════
     PARTE A · V1 SEMANTIC TOKENS → V2
     Componentes legados (style.css, components.css) consomem estes nomes.
     ═══════════════════════════════════════════════════════════════════════ */

  /* ─── A1 · Surfaces v1 → v2 ──────────────────────────────────────────── */
  --surface-canvas:    var(--bg-light);            /* era #F3F0E9 (beige) → #FAFAFA */
  --surface-raised:    var(--bg-light-elevated);   /* era #FFFFFF (idem) */
  --surface-sunken:    var(--bg-light-muted);      /* era #E5E1D6 → #F2F2F2 */
  --surface-inverse:   var(--bg-dark);             /* era #000000 → #0A0A0A */
  --surface-default:   var(--bg-light-elevated);   /* @deprecated:phase4 (FdC) */
  --surface-subtle:    var(--bg-light-muted);      /* @deprecated:phase4 (FdC) */
  --surface-brand:     var(--action-primary);      /* R4.7: era --accent v2 · agora preto/off-white per tema */
  --surface-brand-soft: var(--bg-light-muted);     /* M3 · neutro (accent não dilui) */

  /* ─── A2 · Text v1 → v2 ──────────────────────────────────────────────── */
  --text-primary:    var(--text-on-light);         /* era #000 → #0A0A0A */
  --text-muted:      var(--text-on-light-mut);     /* era #54503F → #525252 */
  --text-subtle:     var(--text-on-light-mut);     /* AMBÍGUO: v2 sem tier "subtle"; rebaixado para muted */
  --text-on-inverse: var(--text-on-dark);          /* era off-white sobre preto */
  --text-on-primary: var(--action-on-primary);     /* R4.7: era --on-accent · v1 inversao preto/off-white */
  --text-on-brand:   var(--action-on-primary);     /* @deprecated:phase4 (FdC) */
  --text-brand:      var(--text-on-light);         /* @deprecated:phase4 — FdC tinha cor de marca; v2 monocromático */
  --text-success:    var(--success);
  --text-danger:     var(--danger);
  --text-warning:    var(--warning-text-on-light); /* M4 · token formal (era literal #785E1F) */

  /* ─── A3 · Border v1 → v2 ────────────────────────────────────────────── */
  --border-subtle:  var(--border-light);                 /* era #E5E1D6 → rgba(0,0,0,0.08) */
  --border-default: var(--border-light);                 /* v2 sem granularidade; mesmo token */
  --border-strong:  rgba(0, 0, 0, 0.24);                 /* mais opaco para bordas de ênfase (btn-outline) */
  --border-brand:   var(--action-primary);         /* R4.7: era --accent · v1 preto/off-white */
  --border-focus:   var(--focus-ring-color);             /* @deprecated:phase4 */

  /* ─── A4 · Interactive v1 → v2 ───────────────────────────────────────── */
  --interactive-primary:         var(--action-primary);         /* R4.7: era --accent · v1 quiet luxury (preto/off-white) */
  --interactive-primary-hover:   var(--action-primary-hover);
  --interactive-primary-active:  var(--action-primary-active);
  --interactive-primary-default: var(--action-primary);
  --interactive-primary-disabled-bg:   var(--bg-light-muted);  /* @deprecated:phase4 */
  --interactive-primary-disabled-text: var(--text-on-light-mut); /* @deprecated:phase4 */

  /* ─── A5 · Pattern v1 → v2 ───────────────────────────────────────────── */
  --pattern-line: rgba(0, 0, 0, 0.04);                   /* mantém valor literal v1 */

  /* ─── A6 · Feedback v1 (Radix-style 5 papéis × 4 famílias) → v2 ──────── */

  /* Success */
  --feedback-success-solid:         var(--success);
  --feedback-success-accent:        var(--success);
  --feedback-success-soft:          rgba(21, 128, 61, 0.08);   /* fallback rgba (8% mix) */
  --feedback-success-soft:          color-mix(in srgb, var(--success) 8%, var(--bg-light));
  --feedback-success-text:          var(--success);            /* AA 4.84:1 sobre --bg-light */
  --feedback-success-text-on-solid: var(--bg-light-elevated);  /* texto branco sobre verde */

  /* Warning */
  --feedback-warning-solid:         var(--warning);
  --feedback-warning-accent:        var(--warning);
  --feedback-warning-soft:          rgba(202, 138, 4, 0.10);
  --feedback-warning-soft:          color-mix(in srgb, var(--warning) 10%, var(--bg-light));
  --feedback-warning-text:          var(--warning-text-on-light); /* M4 · token formal */
  --feedback-warning-text-on-solid: var(--action-on-primary);  /* R4.7: era --on-accent · preto sobre warning-solid */

  /* Danger */
  --feedback-danger-solid:          var(--danger);
  --feedback-danger-accent:         var(--danger);
  --feedback-danger-soft:           rgba(220, 38, 38, 0.08);
  --feedback-danger-soft:           color-mix(in srgb, var(--danger) 8%, var(--bg-light));
  --feedback-danger-text:           var(--danger);             /* AA 4.64:1 sobre --bg-light */
  --feedback-danger-text-on-solid:  var(--bg-light-elevated);

  /* Info — M1 · neutro semântico (v2 não tem cor de info; legibilidade via ícone+tipografia, não via cor).
     bg → --bg-*-muted | text → --text-on-*-mut | border → --border-* */
  --feedback-info-solid:            var(--bg-dark-muted);      /* solid neutro escuro */
  --feedback-info-accent:           var(--border-light);       /* border decorativa */
  --feedback-info-soft:             var(--bg-light-muted);     /* bg leve neutro */
  --feedback-info-text:             var(--text-on-light-mut);
  --feedback-info-text-on-solid:    var(--text-on-dark);

  /* ─── A7 · Focus rings v1 → v2 ───────────────────────────────────────── */
  --focus-ring-danger: var(--danger);
  --ring-focus:   0 0 0 var(--focus-ring-width) color-mix(in srgb, var(--action-primary) 35%, transparent);
  --ring-danger:  0 0 0 var(--focus-ring-width) color-mix(in srgb, var(--danger) 35%, transparent);
  --ring-success: 0 0 0 var(--focus-ring-width) color-mix(in srgb, var(--success) 35%, transparent);

  /* ─── A8 · Typography legacy names → v2 ──────────────────────────────── */
  --font-display: var(--font-family-display);
  --font-heading: var(--font-family-display);
  --font-body:    var(--font-family-body);
  --font-ui:      var(--font-family-body);
  --ff-display:   var(--font-family-display);
  --ff-heading:   var(--font-family-display);
  --ff-body:      var(--font-family-body);
  --ff-mono:      ui-monospace, 'SFMono-Regular', Consolas, monospace;  /* @deprecated:phase4 — sem mono no DS */

  --font-size-2xs:     var(--fs-micro);     /* 11px */
  --font-size-xs:      var(--fs-caption);   /* 13px */
  --font-size-sm:      var(--fs-caption);   /* aproximação */
  --font-size-base:    var(--fs-body);      /* 16px */
  --font-size-md:      var(--fs-body);
  --font-size-lg:      var(--fs-lead);      /* 18px */
  --font-size-xl:      var(--fs-lead);
  --font-size-2xl:     var(--fs-h3);        /* 24px */
  --font-size-3xl:     var(--fs-h3);
  --font-size-4xl:     var(--fs-h2);        /* 32px */
  --font-size-5xl:     var(--fs-h2);
  --font-size-6xl:     var(--fs-h1);        /* 48px */
  --font-size-7xl:     var(--fs-display);   /* 72px */
  --font-size-display: var(--fs-display);

  --line-height-none:    1;
  --line-height-tight:   1.05;
  --line-height-snug:    1.25;
  --line-height-base:    1.5;
  --line-height-relaxed: 1.6;

  --letter-spacing-tighter: -0.04em;
  --letter-spacing-tight:   -0.02em;
  --letter-spacing-normal:  0;
  --letter-spacing-wide:    0.025em;
  --letter-spacing-wider:   0.05em;
  --letter-spacing-widest:  0.1em;
  --letter-spacing-eyebrow: 0.2em;
  --letter-spacing-mono:    0.02em;

  /* Pesos legacy → v2 */
  --font-weight-regular:   400;  /* preservado em tokens.css; redundante aqui mas seguro */
  --font-weight-medium:    500;
  --font-weight-semibold:  600;
  --font-weight-bold:      700;
  --font-weight-extrabold: 800;

  /* ─── A9 · Spacing legacy (--s-N e --space-Nxx) → v2 ─────────────────── */
  --s-1:  var(--space-1);    --s-2:  var(--space-2);
  --s-3:  var(--space-3);    --s-4:  var(--space-4);
  --s-5:  1.25rem;           /* 20px — não mapeado direto; valor literal */
  --s-6:  var(--space-6);    --s-8:  var(--space-8);
  --s-10: 2.5rem;            /* 40px — não mapeado direto */
  --s-12: var(--space-12);   --s-16: var(--space-16);
  --s-20: 5rem;              /* 80px */
  --s-24: var(--space-24);   --s-32: var(--space-32);

  --space-2xs: var(--space-1);
  --space-xs:  var(--space-2);
  --space-sm:  var(--space-3);
  --space-md:  var(--space-4);
  --space-lg:  var(--space-6);
  --space-xl:  var(--space-8);
  --space-2xl: var(--space-12);
  --space-3xl: var(--space-16);
  --space-4xl: 5rem;
  --space-5xl: var(--space-24);

  /* Valores intermediários da v1 que não existem na escala 4-base v2 — literais */
  --space-px:  1px;
  --space-0-5: 0.125rem;
  --space-1-5: 0.375rem;
  --space-2-5: 0.625rem;
  --space-3-5: 0.875rem;
  --space-5:   1.25rem;
  --space-10:  2.5rem;
  --space-20:  5rem;

  /* ─── A10 · Radii legacy ─────────────────────────────────────────────── */
  --r-sm:   var(--radius-sm);
  --r-md:   var(--radius-md);
  --r-lg:   var(--radius-lg);
  --r-xl:   var(--radius-lg);   /* sem -xl no v2; reusa -lg */
  --r-2xl:  var(--radius-lg);
  --r-full: var(--radius-full);

  /* Nomes longos (--radius-*) que coincidem com v2: --radius-sm/md/lg/full
     já estão definidos em tokens.css. Só adicionamos os que faltam: */
  --radius-xs: 2px;             /* @deprecated:phase4 — usado por badges v1 */
  --radius-xl: var(--radius-lg); /* @deprecated:phase4 */

  /* ─── A11 · Sombras legacy ───────────────────────────────────────────── */
  --sh-sm:    var(--shadow-dropdown);   /* v1 tinha 5 níveis; v2 só 2 (dropdown/modal) */
  --sh-md:    var(--shadow-dropdown);
  --sh-lg:    var(--shadow-modal);
  --sh-xl:    var(--shadow-modal);
  --sh-blue:  var(--shadow-dropdown);
  --sh-green: var(--shadow-dropdown);

  --shadow-subtle:      0 1px 2px 0 rgb(0 0 0 / 0.04);
  --shadow-sm:          var(--shadow-dropdown);
  --shadow-md:          var(--shadow-dropdown);
  --shadow-lg:          var(--shadow-modal);
  --shadow-xl:          var(--shadow-modal);
  --shadow-gold:        var(--shadow-dropdown);
  --shadow-glow:        var(--shadow-dropdown);
  --shadow-glow-strong: var(--shadow-modal);

  /* ─── A12 · Motion legacy ────────────────────────────────────────────── */
  --motion-fast:  var(--duration-fast);
  --motion-base:  var(--duration-base);
  --motion-slow:  var(--duration-moderate);
  --motion-pulse: 2000ms;

  --ease-out:    var(--easing-out);
  --ease-in-out: var(--easing-standard);
  --ease-pulse:  ease-in-out;

  --duration-normal: var(--duration-base);
  --duration-slow:   var(--duration-moderate);   /* @deprecated:phase4 — v2 redefine */

  --ease-smooth:  var(--easing-standard);
  --ease-bounce:  var(--easing-out);
  --ease-elegant: var(--easing-out);
  --ease-spring:  var(--easing-out);

  /* ─── A13 · Z-index legacy ───────────────────────────────────────────── */
  /* v1 tinha --z-base/raised/sticky/overlay/modal/popover/toast/top
     — todos preservados em v2 tokens.css com mesmos valores. */

  /* ─── A14 · Opacity legacy ───────────────────────────────────────────── */
  /* v1 --opacity-disabled/muted/overlay/subtle preservados em v2.
     --opacity-subtle (v1) → v2 não tem; mapeamos: */
  --opacity-subtle: 0.5;

  /* ─── A15 · Breakpoint legacy ────────────────────────────────────────── */
  --breakpoint-sm:  var(--bp-sm);
  --breakpoint-md:  var(--bp-md);
  --breakpoint-lg:  var(--bp-lg);
  --breakpoint-xl:  var(--bp-xl);
  --breakpoint-2xl: var(--bp-2xl);


  /* ═══════════════════════════════════════════════════════════════════════
     PARTE B · FdC PRIMITIVES (--rr-*, --blue-*, --green-*, --stone-*,
     --brand-*) → V2. Mapeamento por INTENÇÃO de uso predominante na codebase.
     ═══════════════════════════════════════════════════════════════════════ */

  /* ─── B1 · Família --rr-* (genéricas / "premium") ────────────────────── */
  /* R4.7: FdC "gold" mapeado para --action-primary v1 · não há "gold" em
     quiet luxury · preto/off-white substitui. Hover/dark reusam tokens. */
  --rr-gold:       var(--action-primary);
  --rr-gold-light: var(--action-primary-hover);
  --rr-gold-dark:  var(--action-primary-active);
  --rr-gold-muted: var(--text-on-light-mut);       /* @deprecated:perm */
  --rr-black:      var(--bg-dark);                 /* @deprecated:phase4 */
  --rr-white:      var(--bg-light-elevated);       /* @deprecated:perm */

  /* Gray scale → text/border (era stone-* em v1) */
  --rr-gray-50:  var(--bg-light);
  --rr-gray-100: var(--bg-light);
  --rr-gray-200: var(--bg-light-muted);            /* @deprecated:perm */
  --rr-gray-300: var(--border-light);              /* @deprecated:perm — usado como border-color */
  --rr-gray-400: var(--text-on-dark-mut);          /* @deprecated:perm — A3A3A3 close to original neutral-400 */
  --rr-gray-500: var(--text-on-light-mut);         /* @deprecated:perm */
  --rr-gray-600: var(--text-on-light-mut);
  --rr-gray-700: var(--text-on-light);
  --rr-gray-800: var(--bg-dark-elevated);
  --rr-gray-900: var(--bg-dark);

  /* Feedbacks com prefixo --rr- */
  --rr-success: var(--success);                    /* @deprecated:perm */
  --rr-warning: var(--warning);
  --rr-error:   var(--danger);                     /* @deprecated:perm */
  --rr-info:    var(--text-on-light);              /* AMBÍGUO — sem cor de info no v2 */

  /* Cores de apoio "premium" — todas viram canvas v2 */
  --rr-champagne: var(--bg-light);                 /* @deprecated:phase4 */
  --rr-ivory:     var(--bg-light);                 /* @deprecated:phase4 */
  --rr-cream:     var(--bg-light);
  --rr-pearl:     var(--bg-light-muted);

  /* Gradientes legados → linear-gradients com tokens v2 */
  /* R4.7: gradient gold legacy · em quiet luxury vira monochrome gradient
     (variação tonal de action-primary). Consumidores legacy mantém ramp visual. */
  --rr-gradient-gold: linear-gradient(135deg, var(--action-primary) 0%, var(--action-primary-hover) 100%);
  --rr-gradient-dark: linear-gradient(180deg, var(--bg-dark) 0%, var(--bg-dark-elevated) 100%);
  --rr-gradient-warm: linear-gradient(135deg, var(--bg-light) 0%, var(--bg-light-muted) 100%);

  /* Glass effects (sem equivalente direto no DS v2; valores aproximados) */
  --glass-bg:     rgba(255, 255, 255, 0.92);       /* @deprecated:phase4 */
  --glass-border: rgba(0, 0, 0, 0.08);
  --glass-hover:  rgba(0, 0, 0, 0.04);
  --glass-blur:   20px;

  /* ─── B2 · Família --blue-* (FdC institucional → neutros v2) ─────────── */
  --blue-50:  var(--bg-light-muted);               /* @deprecated:phase4 */
  --blue-100: var(--bg-light-muted);
  --blue-200: var(--border-light);
  --blue-300: var(--text-on-dark-mut);
  --blue-400: var(--text-on-light-mut);
  --blue-500: var(--text-on-light-mut);
  --blue-600: var(--text-on-light);
  --blue-700: var(--text-on-light);                /* @deprecated:perm — crítico (checkout/header) */
  --blue-800: var(--bg-dark-elevated);
  --blue-900: var(--bg-dark);                      /* era "ink" do FdC */

  /* ─── B3 · Família --green-* (FdC verde marca + semântico) ───────────── */
  /* Quando usada como cor de marca FdC → neutro v2. Quando semântico success → success. */
  --green-50:  color-mix(in srgb, var(--success) 8%, var(--bg-light));   /* @deprecated:phase4 */
  --green-100: color-mix(in srgb, var(--success) 8%, var(--bg-light));
  --green-200: color-mix(in srgb, var(--success) 12%, var(--bg-light));
  --green-300: var(--border-light);
  --green-400: var(--text-on-light-mut);
  --green-500: var(--success);                     /* @deprecated:perm — pode ser marca FdC OU success */
  --green-600: var(--success);
  --green-700: var(--success);                     /* @deprecated:phase4 — era feedback-success-text v1 */
  --green-800: var(--bg-dark-elevated);
  --green-900: var(--bg-dark);

  /* ─── B4 · Família --stone-* (FdC neutrais) ──────────────────────────── */
  --stone-0:   var(--bg-light-elevated);           /* @deprecated:phase4 — era #fff */
  --stone-50:  var(--bg-light);
  --stone-100: var(--bg-light);
  --stone-200: var(--bg-light-muted);              /* @deprecated:perm */
  --stone-300: var(--border-light);
  --stone-400: var(--text-on-light-mut);           /* @deprecated:perm */
  --stone-500: var(--text-on-light-mut);           /* @deprecated:perm — crítico (checkout/header) */
  --stone-600: var(--text-on-light-mut);           /* @deprecated:perm */
  --stone-700: var(--text-on-light);
  --stone-800: var(--bg-dark-elevated);
  --stone-900: var(--bg-dark);

  /* ─── B5 · Família --brand-* (FdC marca verde + nomes específicos) ───── */
  --brand-100: var(--bg-light);
  --brand-200: var(--bg-light-muted);
  --brand-300: var(--border-light);
  --brand-400: var(--text-on-light-mut);           /* @deprecated:perm */
  --brand-500: var(--text-on-light-mut);           /* @deprecated:perm */
  --brand-600: var(--text-on-light);               /* @deprecated:perm */
  --brand-700: var(--text-on-light);

  --brand-emerald-300: var(--border-light);
  --brand-emerald-400: var(--text-on-light-mut);
  --brand-emerald-500: var(--success);
  --brand-emerald-600: var(--success);
  --brand-emerald-700: var(--success);

  /* --brand-dark-* — em v1 mapeava para stone- invertido; em v2 mapeia para dark surfaces/texts */
  --brand-dark-50:  var(--bg-dark);
  --brand-dark-100: var(--bg-dark-elevated);       /* @deprecated:perm */
  --brand-dark-200: var(--bg-dark-elevated);       /* @deprecated:perm */
  --brand-dark-300: var(--bg-dark-muted);          /* @deprecated:perm */
  --brand-dark-400: var(--text-on-dark-mut);       /* @deprecated:perm */
  --brand-dark-500: var(--text-on-dark-mut);
  --brand-dark-600: var(--text-on-dark-mut);       /* @deprecated:perm */
  --brand-dark-700: var(--text-on-dark);
  --brand-dark-800: var(--bg-light-elevated);      /* @deprecated:perm — era #fff em v1 */
  --brand-dark-850: var(--bg-light-muted);
  --brand-dark-900: var(--bg-light);
  --brand-dark-950: var(--bg-light-elevated);

  --brand-success: var(--success);
  --brand-warning: var(--warning);
  --brand-error:   var(--danger);                  /* @deprecated:perm */
  --brand-info:    var(--text-on-light);
}
