/* =========================================================
   G VAULT — CENTRAL DESIGN TOKENS
   Edit named colour values here; components should reference tokens.
   Palette values are RGB triplets so alpha can be applied consistently.
========================================================= */
:root {
  /* Core backgrounds */
  --gv-bg-app: #08080c;
  --gv-bg-atmosphere: #05070c;
  --gv-bg-card-top-rgb: 20, 21, 31;
  --gv-bg-card-bottom-rgb: 11, 12, 19;
  --gv-bg-input-rgb: 3, 4, 9;
  --gv-bg-search-rgb: 16, 20, 34;
  --gv-bg-nav-rgb: 13, 16, 28;
  --gv-bg-elevated-rgb: 24, 28, 42;
  --gv-bg-plus-rgb: 0, 190, 255;

  /* Text colours */
  --gv-text-primary: #f4f4fa;
  --gv-text-bright: #f5f7fc;
  --gv-text-brighter: #f7f7fc;
  --gv-text-input: #f5f6fb;
  --gv-text-button: #f6fff9;
  --gv-text-secondary-rgb: 165, 173, 191;
  --gv-text-muted-rgb: 115, 125, 147;
  --gv-text-search-icon: #91a4c8;
  --gv-text-search-placeholder: #8996b0;
  --gv-text-nav: #7e8ba7;
  --gv-text-nav-hover: #dce5f8;
  --gv-text-placeholder-rgb: 225, 228, 241;
  --gv-text-login-subtle-rgb: 231, 233, 246;
  --gv-text-login-label-rgb: 242, 243, 250;
  --gv-text-login-note-rgb: 226, 230, 242;
  --gv-text-login-footer-rgb: 222, 225, 239;
  --gv-text-login-brand-muted-rgb: 244, 246, 255;
  --gv-text-placeholder-screen: #9294a8;
  --gv-text-placeholder-content: #a3a4b7;

  /* Neutral border and surface colours */
  --gv-neutral-border-rgb: 150, 165, 205;
  --gv-neutral-nav-border-rgb: 145, 160, 200;
  --gv-neutral-white-rgb: 255, 255, 255;
  --gv-neutral-white: #ffffff;
  --gv-neutral-black: #000000;

  /* Semantic colours */
  --gv-success-rgb: 80, 227, 164;
  --gv-warning-rgb: 255, 198, 109;
  --gv-danger-rgb: 255, 107, 129;
  --gv-danger-login: #ff9da9;
  --gv-info-rgb: 112, 167, 255;

  /* Named neon colours — central source of truth */
  --gv-neon-cyan-rgb: 0, 229, 255;
  --gv-neon-violet-rgb: 177, 92, 255;
  --gv-neon-pink-rgb: 255, 77, 166;
  --gv-neon-lime-rgb: 165, 255, 75;
  --gv-neon-mint-rgb: 0, 235, 190;
  --gv-neon-amber-rgb: 255, 177, 66;
  --gv-neon-coral-rgb: 255, 82, 125;
  --gv-neon-ice-rgb: 111, 232, 255;
  --gv-neon-ice-violet-rgb: 118, 102, 255;
  --gv-neon-arctic-rgb: 45, 230, 180;
  --gv-neon-mint-blue-rgb: 42, 170, 255;
  --gv-neon-emerald-rgb: 0, 255, 150;
  --gv-neon-gold-rgb: 255, 190, 45;
  --gv-neon-electric-blue-rgb: 55, 110, 255;
  --gv-neon-electric-red-rgb: 255, 55, 85;
  --gv-neon-cyan-secondary-rgb: 112, 82, 255;
  --gv-neon-violet-pink-rgb: 255, 74, 166;
  --gv-neon-lime-cyan-rgb: 0, 235, 190;
  --gv-neon-pink-violet-rgb: 177, 92, 255;

  /* Default page accent and background palette */
  --gv-preset-a: var(--gv-neon-cyan-rgb);
  --gv-preset-b: var(--gv-neon-cyan-secondary-rgb);
}

/* Named preset mapping. Geometry is handled by app.js; colours stay here. */
#app { --glow-a: var(--gv-preset-a); --glow-b: var(--gv-preset-b); --gv-accent-rgb: var(--gv-preset-a); --gv-accent-secondary-rgb: var(--gv-preset-b); }
#app[data-preset="cyan"] { --gv-preset-a: var(--gv-neon-cyan-rgb); --gv-preset-b: var(--gv-neon-cyan-secondary-rgb); }
#app[data-preset="violet"] { --gv-preset-a: var(--gv-neon-violet-rgb); --gv-preset-b: var(--gv-neon-violet-pink-rgb); }
#app[data-preset="lime"] { --gv-preset-a: var(--gv-neon-lime-rgb); --gv-preset-b: var(--gv-neon-lime-cyan-rgb); }
#app[data-preset="amber"] { --gv-preset-a: var(--gv-neon-amber-rgb); --gv-preset-b: var(--gv-neon-coral-rgb); }
#app[data-preset="pink"] { --gv-preset-a: var(--gv-neon-pink-rgb); --gv-preset-b: var(--gv-neon-pink-violet-rgb); }
#app[data-preset="ice"] { --gv-preset-a: var(--gv-neon-ice-rgb); --gv-preset-b: var(--gv-neon-ice-violet-rgb); }
#app[data-preset="mint"] { --gv-preset-a: var(--gv-neon-arctic-rgb); --gv-preset-b: var(--gv-neon-mint-blue-rgb); }
#app[data-preset="emerald"] { --gv-preset-a: var(--gv-neon-emerald-rgb); --gv-preset-b: var(--gv-neon-gold-rgb); }
#app[data-preset="electric"] { --gv-preset-a: var(--gv-neon-electric-blue-rgb); --gv-preset-b: var(--gv-neon-electric-red-rgb); }

/* Semantic and component aliases */
#app {
  --gv-accent: rgb(var(--gv-accent-rgb));
  --gv-accent-secondary: rgb(var(--gv-accent-secondary-rgb));
  --gv-input-bg: rgba(var(--gv-bg-input-rgb), .50);
  --gv-input-text: var(--gv-text-input);
  --gv-input-placeholder: rgba(var(--gv-text-placeholder-rgb), .32);
  --gv-input-border: rgba(var(--gv-neutral-white-rgb), .105);
  --gv-input-focus-border: rgba(var(--gv-accent-rgb), .68);
  --gv-card-bg: linear-gradient(145deg, rgba(var(--gv-bg-card-top-rgb), .88), rgba(var(--gv-bg-card-bottom-rgb), .84));
  --gv-card-border: rgba(var(--gv-neutral-white-rgb), .105);
  --gv-button-border: rgba(var(--gv-accent-rgb), .48);
  --gv-button-hover-border: rgba(var(--gv-accent-rgb), .78);
  --gv-focus-ring: rgba(var(--gv-accent-rgb), .70);
}
