/*
  Convenciones CSS (Web Interface Guidelines / buenas prácticas):
  - Transiciones: listar propiedades (transform, opacity, box-shadow), no transition: all.
  - Foco: usar :focus-visible y reemplazo visible (outline/ring), no outline: none sin sustituto.
  - Animaciones: respetar prefers-reduced-motion (variante reducida o desactivar).
  - Colores y tamaños reutilizables en :root (variables).
*/

/* neo-sans-std latin + latin-ext subset */
@font-face {
  font-family: "Neo Sans Std";
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url("/assets/fonts/neo-sans-std/neo-sans-std-300.woff2") format("woff2");
}

@font-face {
  font-family: "Neo Sans Std";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("/assets/fonts/neo-sans-std/neo-sans-std-400.woff2") format("woff2");
}

@font-face {
  font-family: "Neo Sans Std";
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url("/assets/fonts/neo-sans-std/neo-sans-std-400-italic.woff2") format("woff2");
}

@font-face {
  font-family: "Neo Sans Std";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("/assets/fonts/neo-sans-std/neo-sans-std-500.woff2") format("woff2");
}

@font-face {
  font-family: "Neo Sans Std";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("/assets/fonts/neo-sans-std/neo-sans-std-700.woff2") format("woff2");
}

@font-face {
  font-family: "Neo Sans Std";
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url("/assets/fonts/neo-sans-std/neo-sans-std-800.woff2") format("woff2");
}

:root {
  /* Core palette */
  --color-white: #ffffff;
  --color-black: #0f172a;
  --color-canvas: #009bc3;
  --color-surface-950: #0f172a;
  --color-surface-900: #1e293b;
  --color-surface-800: #334155;
  --color-panel: #2c3e50;
  --color-text-primary: #f1f5f9;
  --color-text-secondary: #cbd5e1;
  --color-text-muted: #94a3b8;
  --color-text-dark: #1a1a1a;
  --color-brand-cyan: #56b6be;
  --color-brand-violet: #7d01ba;
  --color-brand-magenta: #8e126d;
  --color-brand-teal: #004350;
  --color-brand-lime: #c8d200;
  --color-success: #22c55e;
  --color-warning: #f59e0b;
  --color-warning-hover: #fbbf24;
  --color-danger: #ef4444;
  --color-danger-strong: #dc2626;
  --color-danger-hover: #b91c1c;

  /* Accessible foreground pairs */
  --color-on-dark: #f8fafc;
  --color-on-primary: #0f172a;
  --color-on-accent: #ffffff;
  --color-on-highlight: #1a1a1a;
  --color-on-success: #0f172a;
  --color-on-error: #0f172a;
  --color-on-warning: #0f172a;

  /* Overlays / glass surfaces */
  --overlay-bg-soft: rgba(15, 23, 42, 0.38);
  --overlay-bg: rgba(15, 23, 42, 0.46);
  --overlay-bg-strong: rgba(15, 23, 42, 0.58);
  --overlay-bg-max: rgba(15, 23, 42, 0.72);
  --overlay-bg-ultra: rgba(15, 23, 42, 0.86);
  --overlay-border-subtle: rgba(255, 255, 255, 0.12);
  --overlay-border-soft: rgba(255, 255, 255, 0.14);
  --overlay-border-muted: rgba(255, 255, 255, 0.16);
  --overlay-border: rgba(255, 255, 255, 0.18);
  --overlay-border-strong: rgba(148, 163, 184, 0.25);
  --overlay-border-admin: rgba(148, 163, 184, 0.22);

  /* State surfaces */
  --state-info-bg: rgba(86, 182, 190, 0.15);
  --state-info-bg-strong: rgba(86, 182, 190, 0.2);
  --state-info-border: rgba(86, 182, 190, 0.45);
  --state-info-ring: rgba(86, 182, 190, 0.12);
  --state-error-bg: rgba(227, 12, 19, 0.15);
  --state-error-bg-strong: rgba(227, 12, 19, 0.2);
  --state-error-border: rgba(227, 12, 19, 0.55);
  --state-success-bg: rgba(34, 197, 94, 0.1);
  --state-success-bg-soft: rgba(34, 197, 94, 0.08);
  --state-danger-bg: rgba(239, 68, 68, 0.15);

  /* Legacy aliases (keep existing CSS stable while using unified tokens) */
  --primary-color: var(--color-brand-cyan);
  --secondary-color: var(--color-white);
  --accent-color: var(--color-brand-violet);
  --accent-primary-color: var(--color-brand-magenta);
  --background-color: var(--color-panel);
  --text-color: var(--color-text-primary);
  --tertiary-color: var(--color-brand-teal);
  --text-color-tertiary: var(--color-brand-lime);
  --text-color-dark: var(--color-text-dark);

  /* Neutrals */
  --neutral-50: #f1f5f9;
  --neutral-300: #cccccc;
  --neutral-600: #666666;
  --text-muted-strong: #6b7280;

  /* Semantic aliases */
  --success-color: var(--color-success);
  --error-color: var(--color-danger);
  --highlight-color: #ff00ff;
  --option-bg-color: #9c27b0;
  --brand-danger: var(--color-danger-strong);

  /* Font Sizes */
  --font-size-base: 16px;
  --font-size-xsmall: 0.75rem;
  --font-size-small: 0.875rem;
  --font-size-medium: 1rem;
  --font-size-large: 1.25rem;
  --font-size-xlarge: 1.5rem;

  /* Font Weights */
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;

  /* Spacing */
  --spacing-small: 0.5rem;
  --spacing-medium: 1rem;
  --spacing-large: 1.5rem;
  --spacing-xlarge: 2rem;

  /* Border Radius */
  --border-radius-small: 4px;
  --border-radius-medium: 8px;
  --border-radius-large: 16px;

  /* Shadows */
  --shadow-small: 0 1px 3px rgba(0, 0, 0, 0.12);
  --shadow-medium: 0 4px 6px rgba(0, 0, 0, 0.16);
  --shadow-large: 0 10px 20px rgba(0, 0, 0, 0.19);

  /* Backgrounds */
  --background-gradient: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
  --background-image: url("../assets/images/SYBRAVA_Fondo.jpg");
  --background-image-mobile: url("../assets/images/SYBRAVA_Fondo_Celular.jpg");

  --background-color-principal: var(--color-canvas);

  /* Buttons */
  --button-hover-bg: #0085a6;
  --button-disabled-bg: #bdc3c7;

  /* Fonts Family */
  --font-primary: "Neo Sans Std", "Segoe UI", sans-serif;
  --font-secondary: "Neo Sans Std", "Segoe UI", sans-serif;

  /* Admin aliases */
  --admin-bg: var(--color-surface-950);
  --admin-surface: var(--color-surface-900);
  --admin-surface-hover: var(--color-surface-800);
  --admin-border: var(--color-surface-800);
  --admin-text: var(--color-text-primary);
  --admin-text-muted: var(--color-text-muted);
  --admin-accent: var(--color-brand-cyan);
  --admin-accent-hover: #7dd3da;
  --admin-warning: var(--color-warning);
  --admin-warning-hover: var(--color-warning-hover);
  --admin-danger: var(--color-danger-strong);
  --admin-danger-hover: var(--color-danger-hover);
  --admin-success: var(--color-success);
  --admin-radius: 12px;
  --admin-radius-sm: 8px;
  --admin-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.2), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --admin-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.2), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

html,
body {
  font-size: var(--font-size-base);
  height: 100%;
  font-family: var(--font-primary);
}

button {
  padding: var(--spacing-small) var(--spacing-medium);
  border: none;
  border-radius: var(--border-radius-medium);
  background-color: var(--tertiary-color);
  color: var(--text-color);
  font-size: var(--font-size-medium);
  cursor: pointer;
  transition: background-color 0.3s;

  &:hover {
    background-color: var(--button-hover-bg);
  }

  &:disabled {
    background-color: var(--button-disabled-bg);
    cursor: not-allowed;
  }
}

input {
  padding: var(--spacing-small) var(--spacing-medium);
  border: none;
  border-radius: var(--border-radius-medium);
  font-size: var(--font-size-medium);
}
