/* ============================================================
   GVenue — Design Tokens
   Master visual system. Dark-first. Mission Control aesthetic.
   ============================================================ */

:root {
  /* — Surfaces ————————————————————————————————————————— */
  --bg:           #08080A;   /* canvas */
  --bg-deep:      #050507;   /* hero blackouts */
  --surface:      #0F0F13;   /* primary card */
  --surface-2:    #16161D;   /* elevated card */
  --surface-3:    #1E1E28;   /* hover / nested */
  --line:         #23232E;   /* hairline borders */
  --line-soft:    #1A1A24;
  --line-strong:  #2F2F3D;

  /* — Ink ——————————————————————————————————————————————— */
  --ink:          #F4F4EF;   /* primary text — warm off-white */
  --ink-soft:     #C9C9C3;
  --ink-mute:     #7A7A82;   /* secondary / meta */
  --ink-fade:     #4D4D55;   /* tertiary / disabled */

  /* — Signal accent (primary) ———————————————————————————— */
  --signal:       #5CF2D9;   /* signal cyan — GO / live / access granted */
  --signal-soft:  #5CF2D922;
  --signal-line:  #5CF2D944;
  --signal-deep:  #0FBFA7;

  /* — Violet (capacity / occupancy) —————————————————————— */
  --violet:       #A78BFA;
  --violet-soft:  #A78BFA22;
  --violet-line:  #A78BFA44;
  --violet-deep:  #6E47E0;

  /* — Status ————————————————————————————————————————————— */
  --ok:           #34D399;
  --warn:         #FACC15;
  --danger:       #F43F5E;
  --info:         #60A5FA;

  /* — Module accents (badges) — one per module, never cyan/violet/status — */
  --mod-ticket:   #FD8072;   /* GV Ticket · venta de entradas */
  --mod-puerta:   #FE9652;   /* GV Puerta · control de acceso */
  --mod-barra:    #BED54E;   /* GV Barra · venta · stock · caja */
  --mod-cash:     #F5AE42;   /* GV Cash · créditos propios C$ */
  --mod-datos:    #82D67A;   /* GV Datos · CRM · base de clientes */
  --mod-suite:    #BA80EA;   /* GV Suite · todo-en-uno */
  --mod-studio:   #D97BDE;   /* GV Studio · fotos con IA */
  --mod-mesa:     #ED7EC7;   /* GV Mesa · concierge VIP */
  --mod-informes: #F17EAC;   /* GV Informes · reportes */

  /* — Servicios / modalidades sumados (jul 2026) — antes sueltos, ahora en el sistema — */
  --mod-ondemand:      #26A9F1;   /* GV On Demand · adaptaciones a medida (oklch .70 .15 240) */
  --mod-ondemand-deep: #0077C2;   /* sobre fondo claro */
  --mod-rental:        #02A671;   /* GV Rental · self-hosted alquilado — LIVE jul 2026 (oklch .64 .14 162) */
  --mod-rental-deep:   #007850;   /* sobre fondo claro */
  --mod-back:          #B36F00;   /* GV Back · backup + restore — RESERVADO, no a la venta (oklch .60 .13 68) */
  --mod-back-deep:     #7A4B00;   /* sobre fondo claro */

  /* — Familia de bots «Atención con IA» (Venu + WhatsApp) — acento propio: resuelve la colisión con On Demand — */
  --mod-bots:          #7C6CF5;   /* iris / índigo-periwinkle (oklch .62 .18 280) · LIVE en /armar */
  --mod-bots-deep:     #4B32C7;   /* sobre fondo claro */

  --mod-finanzas:      #4E7FB0;   /* GV Finanzas · gastos, ingresos, liquidaciones — LIVE USD 39/mes (oklch .58 .09 230) */
  --mod-finanzas-deep: #2F5C86;   /* sobre fondo claro */

  /* — Type ——————————————————————————————————————————————— */
  --font-sans:    "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:    "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --font-display: "Geist", ui-sans-serif, system-ui, sans-serif;

  /* — Radii ————————————————————————————————————————————— */
  --r-xs: 4px;
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-xl: 20px;
  --r-2xl: 28px;
  --r-full: 999px;

  /* — Spacing scale (4px base) ——————————————————————————— */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 20px; --s-6: 24px; --s-8: 32px; --s-10: 40px;
  --s-12: 48px; --s-16: 64px; --s-20: 80px; --s-24: 96px;
  --s-32: 128px;

  /* — Shadow / glow ——————————————————————————————————————— */
  --shadow-1: 0 1px 0 rgba(255,255,255,.03) inset, 0 1px 2px rgba(0,0,0,.4);
  --shadow-2: 0 1px 0 rgba(255,255,255,.04) inset, 0 8px 24px rgba(0,0,0,.55);
  --glow-signal: 0 0 0 1px var(--signal-line), 0 0 24px -4px var(--signal-soft);
  --glow-violet: 0 0 0 1px #A78BFA44, 0 0 24px -4px #A78BFA22;
}

/* ============================================================
   Reset + base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body {
  font-family: var(--font-sans);
  background: var(--bg);
  color: var(--ink);
  font-feature-settings: "ss01", "cv11";
  font-variant-ligatures: contextual;
  line-height: 1.45;
}
img, svg { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }

/* utility */
.mono { font-family: var(--font-mono); font-feature-settings: "ss02", "zero"; }
.uppercase { text-transform: uppercase; letter-spacing: .12em; }
.tabnum { font-variant-numeric: tabular-nums; }
