/* 23Soft Classic · tokens v1 · sin dependencia de un ERP concreto */
:root {
  --classic-primary: #6D42C7;
  --classic-primary-hover: #5430A7;
  --classic-primary-pressed: #402080;
  --classic-primary-soft: #EFE9FB;
  --classic-bg: #F2F0F6;
  --classic-surface: #FFFFFF;
  --classic-border: #BBA9D0;
  --classic-border-light: #DFD5E9;
  --classic-text: #32283D;
  --classic-muted: #766981;
  --classic-success: #237A53;
  --classic-warning: #9A6310;
  --classic-danger: #B53542;
  --classic-radius: 13px;
  --classic-shadow: 0 4px 12px rgba(50,33,75,.14), 0 1px 3px rgba(50,33,75,.07);
  --classic-transition: 180ms ease;

  /* Tokens semánticos de componentes comunes; derivados de la paleta maestra.
     Nunca requieren cambiar colores por pantalla ni por variante. */
  --classic-primary-gradient-start: color-mix(in srgb,var(--classic-primary-hover) 80%,var(--classic-primary-soft));
  --classic-button-primary-background: linear-gradient(135deg,var(--classic-primary-gradient-start),var(--classic-primary-hover));
  --classic-button-pressed-background: linear-gradient(135deg,var(--classic-primary-hover),var(--classic-primary-pressed));
  --classic-button-secondary-background: linear-gradient(180deg,var(--classic-surface),var(--classic-primary-soft));
  --classic-button-secondary-elevated-background: linear-gradient(180deg,color-mix(in srgb,var(--classic-primary-soft) 25%,var(--classic-surface)),var(--classic-primary-soft));
  --classic-button-radius: 10px;
  --classic-input-radius: 9px;
  --classic-table-radius: 11px;
  --classic-modal-radius: 15px;
  --classic-radius-small: 8px;
  --classic-radius-pill: 99px;
  --classic-button-shadow: 0 3px 8px color-mix(in srgb,var(--classic-primary-hover) 18%,transparent);
  --classic-button-hover-shadow: 0 5px 12px color-mix(in srgb,var(--classic-primary-hover) 28%,transparent);
  --classic-card-hover-shadow: 0 7px 16px color-mix(in srgb,var(--classic-text) 20%,transparent);
  --classic-modal-shadow: 0 16px 55px color-mix(in srgb,var(--classic-text) 32%,transparent);
  --classic-modal-backdrop: color-mix(in srgb,var(--classic-text) 48%,transparent);
  /* Tarjetas de navegación: apariencia controlada por el tema maestro. */
  /* Relieve permanente: perceptible también en tabletas y teléfonos. */
  --classic-nav-card-border: color-mix(in srgb,var(--classic-primary) 18%,var(--classic-border-light));
  --classic-nav-card-edge: color-mix(in srgb,var(--classic-primary) 26%,var(--classic-border));
  --classic-nav-card-background: linear-gradient(180deg,var(--classic-surface),color-mix(in srgb,var(--classic-primary-soft) 14%,var(--classic-surface)));
  --classic-nav-card-elevation: 0 2px 0 color-mix(in srgb,var(--classic-primary) 22%,var(--classic-border)),0 6px 13px color-mix(in srgb,var(--classic-text) 10%,transparent),inset 0 1px 0 rgba(255,255,255,.8);
  --classic-nav-card-pressed-shadow: 0 1px 0 var(--classic-nav-card-edge),inset 0 1px 4px color-mix(in srgb,var(--classic-text) 12%,transparent);
  --classic-nav-card-pressed-background: color-mix(in srgb,var(--classic-primary-soft) 23%,var(--classic-surface));
  --classic-nav-card-disabled-shadow: 0 1px 2px color-mix(in srgb,var(--classic-text) 6%,transparent);
  --classic-nav-card-radius: var(--classic-radius);
  --classic-nav-card-compact-padding: 14px;
  --classic-nav-card-grid-columns: repeat(2,minmax(0,1fr));
  --classic-nav-card-grid-mobile-columns: repeat(2,minmax(0,1fr));
  --classic-nav-card-min-height: 170px;
  --classic-nav-card-padding: 18px;
  --classic-nav-card-hover-background: color-mix(in srgb,var(--classic-primary-soft) 13%,var(--classic-surface));
  --classic-nav-card-hover-border: color-mix(in srgb,var(--classic-primary) 35%,var(--classic-border));
  --classic-nav-card-hover-shadow: 0 3px 0 color-mix(in srgb,var(--classic-primary) 26%,var(--classic-border)),0 9px 15px color-mix(in srgb,var(--classic-text) 13%,transparent),inset 0 1px 0 rgba(255,255,255,.8);
  --classic-nav-card-hover-lift: -1px;
  --classic-nav-card-pressed-lift: 1px;
  --classic-transition-fast: 150ms ease;
  /* Compatibilidad de dimensiones ya utilizadas en las PWA existentes.
     Una sola definición; sus aliases históricos se resuelven en Vue. */
  --classic-radius-medium: 14px;
  --classic-radius-large: 22px;
  --classic-shadow-legacy: 0 4px 12px rgba(0,0,0,.12);
  --classic-primary-light: color-mix(in srgb,var(--classic-primary-hover) 80%,var(--classic-primary-soft));
  --brand: var(--classic-primary);
  --brand-dark: var(--classic-primary-hover);
  --brand-soft: var(--classic-primary-soft);
  --line: var(--classic-border-light);
}

/* 23Soft Classic · temas alternativos seleccionables.
   El morado original permanece definido en :root, como predeterminado. */
:root[data-classic-theme="salvia"] {
  --classic-primary: #46765B;
  --classic-primary-hover: #345C47;
  --classic-primary-pressed: #274836;
  --classic-primary-soft: #EDF8F0;
  --classic-bg: #F4F8F5;
  --classic-border: #AECFB8;
  --classic-border-light: #DCEDE1;
  --classic-text: #294237;
  --classic-muted: #677D70;
  --classic-shadow: 0 4px 12px rgba(31,72,47,.14), 0 1px 3px rgba(31,72,47,.07);
}
:root[data-classic-theme="naranja"] {
  --classic-primary: #C45212;
  --classic-primary-hover: #9D3C0A;
  --classic-primary-pressed: #7C2D06;
  --classic-primary-soft: #FFF0E4;
  --classic-bg: #FFF8F2;
  --classic-border: #DBAA84;
  --classic-border-light: #F1D9C7;
  --classic-text: #55301D;
  --classic-muted: #836B59;
  --classic-shadow: 0 4px 12px rgba(77,33,12,.14), 0 1px 3px rgba(77,33,12,.07);
}
