/*
 * ConnectaTicket — Design System v2.0
 * Material Design 3 Adaptation — Paleta "Cobalto Cultural"
 *
 * Camadas de tokens:
 *   1. --pc-ref-*        Escala tonal bruta (nunca usar direto em componentes)
 *   2. --pc-sys-color-*  Color roles M3 (papéis semânticos)
 *   3. --pc-state-*      Estado interativo  |  --pc-status-*  Feedback operacional
 *   4. --pc-comp-*       Tokens por componente
 *
 * Paleta: Cobalto Cultural
 *   Primary (Cobalto):   #2457C5  — confiança, tecnologia, ações principais
 *   Secondary (Violeta): #6D3FD1  — cultura, palco, descoberta, diferenciação
 *   Tertiary (Coral):    #C24B2A  — energia, evento, destaque editorial
 *   Success (Verde):     #0F7B5C  — pago, ativo, validado, confirmado
 *   Warning (Âmbar):     #A15C00  — pendente, atenção, revisão
 *   Error (Vermelho):    #B3261E  — falha real, inválido, crítico
 *
 * Regra: ❌ Hexadecimais diretos em componentes — use sempre tokens
 *
 * Branch: homologacao — caeloconsultoria/connectaticket
 */

:root {
  color-scheme: light;

  /* ─── 1. Reference Tokens — escala tonal bruta ─────────────────────────── */

  --pc-ref-primary-10: #071B42;
  --pc-ref-primary-20: #0F2D70;
  --pc-ref-primary-30: #173B8F;
  --pc-ref-primary-40: #2457C5;
  --pc-ref-primary-80: #B8CBFF;
  --pc-ref-primary-90: #DDE7FF;
  --pc-ref-primary-95: #EEF3FF;
  --pc-ref-primary-99: #FBFCFF;

  --pc-ref-secondary-10: #1B0B3A;
  --pc-ref-secondary-20: #27124F;
  --pc-ref-secondary-30: #4A2598;
  --pc-ref-secondary-40: #6D3FD1;
  --pc-ref-secondary-80: #D1B9FF;
  --pc-ref-secondary-90: #EEE5FF;
  --pc-ref-secondary-95: #F8F2FF;

  --pc-ref-tertiary-10: #341006;
  --pc-ref-tertiary-20: #4A180D;
  --pc-ref-tertiary-30: #7B2B15;
  --pc-ref-tertiary-40: #C24B2A;
  --pc-ref-tertiary-80: #FFB49D;
  --pc-ref-tertiary-90: #FFE1D6;
  --pc-ref-tertiary-95: #FFF0EA;

  --pc-ref-neutral-10:  #1D2433;
  --pc-ref-neutral-20:  #2E3443;
  --pc-ref-neutral-30:  #3D4758;
  --pc-ref-neutral-40:  #485466;
  --pc-ref-neutral-70:  #748094;
  --pc-ref-neutral-80:  #CBD3E1;
  --pc-ref-neutral-90:  #E8ECF5;
  --pc-ref-neutral-95:  #F1F4FB;
  --pc-ref-neutral-98:  #F8FAFF;
  --pc-ref-neutral-100: #FFFFFF;

  --pc-ref-success-20: #063D2E;
  --pc-ref-success-40: #0F7B5C;
  --pc-ref-success-90: #D8F5EA;

  --pc-ref-warning-20: #3D2600;
  --pc-ref-warning-40: #A15C00;
  --pc-ref-warning-90: #FFE8B6;

  --pc-ref-error-20: #410E0B;
  --pc-ref-error-40: #B3261E;
  --pc-ref-error-90: #FFDAD6;

  /* ─── 2. M3 System Color Roles ─────────────────────────────────────────── */

  --pc-sys-color-primary:              #2457C5;
  --pc-sys-color-on-primary:           #FFFFFF;
  --pc-sys-color-primary-container:    #DDE7FF;
  --pc-sys-color-on-primary-container: #173B8F;

  --pc-sys-color-secondary:              #6D3FD1;
  --pc-sys-color-on-secondary:           #FFFFFF;
  --pc-sys-color-secondary-container:    #EEE5FF;
  --pc-sys-color-on-secondary-container: #27124F;

  --pc-sys-color-tertiary:              #C24B2A;
  --pc-sys-color-on-tertiary:           #FFFFFF;
  --pc-sys-color-tertiary-container:    #FFE1D6;
  --pc-sys-color-on-tertiary-container: #4A180D;

  --pc-sys-color-background:    #F8FAFF;
  --pc-sys-color-on-background: #1D2433;

  --pc-sys-color-surface:                   #FFFFFF;
  --pc-sys-color-on-surface:                #1D2433;
  --pc-sys-color-surface-dim:               #E5EAF4;
  --pc-sys-color-surface-bright:            #FFFFFF;
  --pc-sys-color-surface-container-lowest:  #FFFFFF;
  --pc-sys-color-surface-container-low:     #F9FBFF;
  --pc-sys-color-surface-container:         #F1F4FB;
  --pc-sys-color-surface-container-high:    #ECEFF7;
  --pc-sys-color-surface-container-highest: #E5EAF4;
  --pc-sys-color-surface-variant:           #E8ECF5;
  --pc-sys-color-on-surface-variant:        #485466;

  --pc-sys-color-outline:         #748094;
  --pc-sys-color-outline-variant: #CBD3E1;

  /* Tokens semânticos dedicados — cores clássicas com significado real */
  --pc-sys-color-success:              #0F7B5C;
  --pc-sys-color-on-success:           #FFFFFF;
  --pc-sys-color-success-container:    #D8F5EA;
  --pc-sys-color-on-success-container: #063D2E;

  --pc-sys-color-warning:              #A15C00;
  --pc-sys-color-on-warning:           #FFFFFF;
  --pc-sys-color-warning-container:    #FFE8B6;
  --pc-sys-color-on-warning-container: #3D2600;

  --pc-sys-color-error:              #B3261E;
  --pc-sys-color-on-error:           #FFFFFF;
  --pc-sys-color-error-container:    #FFDAD6;
  --pc-sys-color-on-error-container: #410E0B;

  --pc-sys-color-inverse-surface:    #2E3443;
  --pc-sys-color-inverse-on-surface: #F3F6FF;
  --pc-sys-color-inverse-primary:    #B8CBFF;

  --pc-sys-color-scrim:  rgba(29, 36, 51, .48);
  --pc-sys-color-shadow: rgba(29, 36, 51, .16);

  /* Alias semântico para info */
  --pc-sys-color-info:    var(--pc-sys-color-primary);
  --pc-sys-color-on-info: var(--pc-sys-color-on-primary);

  /* ─── 3a. State Layers ──────────────────────────────────────────────────── */

  --pc-state-hover-opacity:    .08;
  --pc-state-focus-opacity:    .12;
  --pc-state-pressed-opacity:  .12;
  --pc-state-dragged-opacity:  .16;

  --pc-state-selected-container:  var(--pc-sys-color-primary-container);
  --pc-state-disabled-container:  rgba(29, 36, 51, .08);
  --pc-state-disabled-content:    rgba(29, 36, 51, .38);
  --pc-state-focus-ring:          var(--pc-sys-color-primary);

  --pc-state-primary-hover:      rgba(36, 87, 197, .08);
  --pc-state-primary-pressed:    rgba(36, 87, 197, .12);
  --pc-state-on-surface-hover:   rgba(29, 36, 51, .08);
  --pc-state-on-surface-pressed: rgba(29, 36, 51, .12);

  /* ─── 3b. Status Tokens — badges e feedback operacional ────────────────── */

  --pc-status-info-container:      var(--pc-sys-color-primary-container);
  --pc-status-info-content:        var(--pc-sys-color-on-primary-container);
  --pc-status-success-container:   var(--pc-sys-color-success-container);
  --pc-status-success-content:     var(--pc-sys-color-on-success-container);
  --pc-status-attention-container: var(--pc-sys-color-warning-container);
  --pc-status-attention-content:   var(--pc-sys-color-on-warning-container);
  --pc-status-critical-container:  var(--pc-sys-color-error-container);
  --pc-status-critical-content:    var(--pc-sys-color-on-error-container);
  --pc-status-featured-container:  var(--pc-sys-color-secondary-container);
  --pc-status-featured-content:    var(--pc-sys-color-on-secondary-container);
  --pc-status-promo-container:     var(--pc-sys-color-tertiary-container);
  --pc-status-promo-content:       var(--pc-sys-color-on-tertiary-container);
  --pc-status-neutral-container:   var(--pc-sys-color-surface-container-high);
  --pc-status-neutral-content:     var(--pc-sys-color-on-surface-variant);

  /* ─── 4. Component Tokens ──────────────────────────────────────────────── */

  /* Button */
  --pc-comp-button-filled-bg:       var(--pc-sys-color-primary);
  --pc-comp-button-filled-fg:       var(--pc-sys-color-on-primary);
  --pc-comp-button-tonal-bg:        var(--pc-sys-color-primary-container);
  --pc-comp-button-tonal-fg:        var(--pc-sys-color-on-primary-container);
  --pc-comp-button-accent-bg:       var(--pc-sys-color-tertiary);
  --pc-comp-button-accent-fg:       var(--pc-sys-color-on-tertiary);
  --pc-comp-button-outlined-border: var(--pc-sys-color-outline);
  --pc-comp-button-critical-bg:     var(--pc-sys-color-error);
  --pc-comp-button-critical-fg:     var(--pc-sys-color-on-error);
  --pc-comp-button-radius:          var(--pc-radius-full);
  --pc-comp-button-height:          44px;
  --pc-comp-button-height-sm:       36px;

  /* CTA de Conversão — botão de compra/checkout no portal público
   * Usa tertiary (Coral #C24B2A): "energia, evento, destaque editorial"
   * Contraste #C24B2A sobre branco: 4.8:1 (WCAG AA ✓)
   * Sombra baseada no rgb do tertiary-40 para coerência com a paleta */
  --pc-comp-cta-conversion-bg:       var(--pc-sys-color-tertiary);
  --pc-comp-cta-conversion-fg:       var(--pc-sys-color-on-tertiary);
  --pc-comp-cta-conversion-bg-hover: var(--pc-ref-tertiary-30);
  --pc-comp-cta-conversion-bg-press: var(--pc-ref-tertiary-20);
  --pc-comp-cta-conversion-shadow:       0 4px 16px rgba(194, 75, 42, .28);
  --pc-comp-cta-conversion-shadow-hover: 0 8px 24px rgba(194, 75, 42, .38);

  /* Card */
  --pc-comp-card-bg:     var(--pc-sys-color-surface);
  --pc-comp-card-fg:     var(--pc-sys-color-on-surface);
  --pc-comp-card-border: var(--pc-sys-color-outline-variant);
  --pc-comp-card-radius: var(--pc-radius-xl);
  --pc-comp-card-shadow: var(--pc-elevation-1);

  /* Field / Form */
  --pc-comp-field-bg:           var(--pc-sys-color-surface);
  --pc-comp-field-fg:           var(--pc-sys-color-on-surface);
  --pc-comp-field-border:       var(--pc-sys-color-outline);
  --pc-comp-field-focus-border: var(--pc-sys-color-primary);
  --pc-comp-field-error-border: var(--pc-sys-color-error);
  --pc-comp-field-radius:       var(--pc-radius-md);
  --pc-comp-field-height:       48px;

  /* Badge / Status */
  --pc-comp-badge-info-bg:      var(--pc-status-info-container);
  --pc-comp-badge-info-fg:      var(--pc-status-info-content);
  --pc-comp-badge-success-bg:   var(--pc-status-success-container);
  --pc-comp-badge-success-fg:   var(--pc-status-success-content);
  --pc-comp-badge-attention-bg: var(--pc-status-attention-container);
  --pc-comp-badge-attention-fg: var(--pc-status-attention-content);
  --pc-comp-badge-critical-bg:  var(--pc-status-critical-container);
  --pc-comp-badge-critical-fg:  var(--pc-status-critical-content);
  --pc-comp-badge-featured-bg:  var(--pc-status-featured-container);
  --pc-comp-badge-featured-fg:  var(--pc-status-featured-content);
  --pc-comp-badge-promo-bg:     var(--pc-status-promo-container);
  --pc-comp-badge-promo-fg:     var(--pc-status-promo-content);
  --pc-comp-badge-neutral-bg:   var(--pc-status-neutral-container);
  --pc-comp-badge-neutral-fg:   var(--pc-status-neutral-content);
  --pc-comp-badge-radius:       var(--pc-radius-full);
  --pc-comp-badge-height:       28px;

  /* Nav / Workspace */
  --pc-comp-nav-active-bg: var(--pc-sys-color-primary-container);
  --pc-comp-nav-active-fg: var(--pc-sys-color-on-primary-container);

  /* App Bar */
  --pc-comp-appbar-bg:               var(--pc-sys-color-surface);
  --pc-comp-appbar-fg:               var(--pc-sys-color-on-surface);
  --pc-comp-appbar-border:           var(--pc-sys-color-outline-variant);
  --pc-comp-appbar-height:           64px;
  --pc-comp-appbar-height-dashboard: 72px;

  /* Dialog */
  --pc-comp-dialog-bg:     var(--pc-sys-color-surface);
  --pc-comp-dialog-fg:     var(--pc-sys-color-on-surface);
  --pc-comp-dialog-shadow: var(--pc-elevation-3);
  --pc-comp-dialog-radius: var(--pc-radius-2xl);

  /* Toast / Snackbar */
  --pc-comp-toast-bg:     var(--pc-sys-color-inverse-surface);
  --pc-comp-toast-fg:     var(--pc-sys-color-inverse-on-surface);
  --pc-comp-toast-radius: var(--pc-radius-md);
  --pc-comp-toast-shadow: var(--pc-elevation-2);

  /* Table */
  --pc-comp-table-header-bg: var(--pc-sys-color-surface-variant);
  --pc-comp-table-header-fg: var(--pc-sys-color-on-surface-variant);

  /* Progress */
  --pc-comp-progress-track:  var(--pc-sys-color-surface-container-high);
  --pc-comp-progress-fill:   var(--pc-sys-color-primary);
  --pc-comp-progress-height: 4px;
  --pc-comp-progress-radius: var(--pc-radius-full);

  /* Chip / Tag — filtros e seleções */
  --pc-comp-chip-default-bg:     var(--pc-sys-color-surface-container);
  --pc-comp-chip-default-fg:     var(--pc-sys-color-on-surface-variant);
  --pc-comp-chip-default-border: var(--pc-sys-color-outline-variant);
  --pc-comp-chip-selected-bg:    var(--pc-sys-color-secondary-container);
  --pc-comp-chip-selected-fg:    var(--pc-sys-color-on-secondary-container);
  --pc-comp-chip-radius:         var(--pc-radius-full);
  --pc-comp-chip-height:         36px;

  /* ─── Typography ────────────────────────────────────────────────────────── */

  --pc-font-family-base: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --pc-type-display-lg-size:   57px;
  --pc-type-display-lg-line:   64px;
  --pc-type-headline-lg-size:  32px;
  --pc-type-headline-lg-line:  40px;
  --pc-type-headline-md-size:  28px;
  --pc-type-headline-md-line:  36px;
  --pc-type-title-lg-size:     22px;
  --pc-type-title-lg-line:     28px;
  --pc-type-title-md-size:     16px;
  --pc-type-title-md-line:     24px;
  --pc-type-body-lg-size:      16px;
  --pc-type-body-lg-line:      24px;
  --pc-type-body-md-size:      14px;
  --pc-type-body-md-line:      20px;
  --pc-type-label-lg-size:     14px;
  --pc-type-label-lg-line:     20px;
  --pc-type-label-md-size:     12px;
  --pc-type-label-md-line:     16px;

  /* ─── Spacing ────────────────────────────────────────────────────────────── */

  --pc-space-0: 0;
  --pc-space-1: 4px;
  --pc-space-2: 8px;
  --pc-space-3: 12px;
  --pc-space-4: 16px;
  --pc-space-5: 20px;
  --pc-space-6: 24px;
  --pc-space-7: 32px;
  --pc-space-8: 40px;
  --pc-space-9: 48px;

  /* ─── Shape / Radius ────────────────────────────────────────────────────── */

  --pc-radius-xs:   6px;
  --pc-radius-sm:   10px;
  --pc-radius-md:   14px;
  --pc-radius-lg:   18px;
  --pc-radius-xl:   24px;
  --pc-radius-2xl:  28px;
  --pc-radius-full: 999px;

  /* ─── Elevation ─────────────────────────────────────────────────────────── */

  --pc-elevation-0:     none;
  --pc-elevation-1:     0 1px 2px rgba(29, 36, 51, .06), 0 1px 3px rgba(29, 36, 51, .08);
  --pc-elevation-2:     0 8px 24px rgba(29, 36, 51, .10);
  --pc-elevation-3:     0 18px 48px rgba(29, 36, 51, .14);
  --pc-elevation-focus: 0 0 0 4px rgba(36, 87, 197, .18);

  /* ─── Borders ───────────────────────────────────────────────────────────── */

  --pc-border-width-sm:      1px;
  --pc-border-width-md:      2px;
  --pc-border-color-default: var(--pc-sys-color-outline-variant);
  --pc-border-color-strong:  var(--pc-sys-color-outline);
  --pc-border-color-focus:   var(--pc-sys-color-primary);
  --pc-border-color-error:   var(--pc-sys-color-error);

  /* ─── Motion ────────────────────────────────────────────────────────────── */

  --pc-motion-duration-short:  120ms;
  --pc-motion-duration-medium: 180ms;
  --pc-motion-duration-long:   240ms;
  --pc-motion-easing-standard: cubic-bezier(.2, 0, 0, 1);
  --pc-motion-easing-exit:     cubic-bezier(.4, 0, 1, 1);

  /* ─── Z-index ─────────────────────────────────────────────────────────── */

  --pc-z-base:     0;
  --pc-z-sticky:   100;
  --pc-z-dropdown: 300;
  --pc-z-overlay:  600;
  --pc-z-dialog:   700;
  --pc-z-toast:    900;

  /* ─── Charts ────────────────────────────────────────────────────────────── */

  --pc-chart-1:    #2457C5;
  --pc-chart-2:    #6D3FD1;
  --pc-chart-3:    #C24B2A;
  --pc-chart-4:    #0F7B5C;
  --pc-chart-5:    #A15C00;
  --pc-chart-6:    #748094;
  --pc-chart-grid: #CBD3E1;

  /* ─── Legacy Bridge — manter durante migração gradual ──────────────────── */

  --bg:          var(--pc-sys-color-background);
  --surface:     var(--pc-sys-color-surface);
  --surface-2:   var(--pc-sys-color-surface-container);
  --text:        var(--pc-sys-color-on-surface);
  --muted:       var(--pc-sys-color-on-surface-variant);
  --line:        var(--pc-sys-color-outline-variant);
  --primary:     var(--pc-sys-color-primary);
  --primary-2:   var(--pc-sys-color-on-primary-container);
  --accent:      var(--pc-sys-color-secondary);
  --success:     var(--pc-sys-color-success);
  --warning:     var(--pc-sys-color-warning);
  --danger:      var(--pc-sys-color-error);
  --info:        var(--pc-sys-color-primary);
  --shadow-soft: var(--pc-elevation-1);
  --shadow-card: var(--pc-elevation-2);
  --shadow:      var(--pc-elevation-2);
}
