/* Opteris — OPERATIONAL AI palette (LOCKED)
   The canonical product/brand language for Opteris operational-AI consulting.

   Roles:
     Primary   — warm gray  #6E665E  (structure: sidebar, primary buttons, bars)
     Secondary — green       #5D9B72  (positive/brand accent + the logo hexagon)
     Accent    — safety orange #FF5600 (emphasis, CTAs, "needs attention"; from the logo arrow)

   Opt into the locked theme by setting [data-brand="ai-os"] on a wrapper.
   Base ramp tokens (--wg*, --gr*, --or*, warm neutrals, --ink*) are always
   available by name. */

:root {
  /* ---- Primary · warm gray ---- */
  --wg-deepest: #34302C; /* sidebar */
  --wg-900:     #4A443E;
  --wg-800:     #564F48;
  --wg-600:     #6E665E; /* primary base */
  --wg-400:     #8C857D;
  --wg-300:     #A8A29B;
  --wg-200:     #C7C2BB;
  --wg-wash:    #EFEDEA;

  /* ---- Secondary · green ---- */
  --gr-ink:  #2F5A40;
  --gr-700:  #3F7A55;
  --gr-500:  #5D9B72; /* secondary base / logo hex */
  --gr-300:  #9BC4AA;
  --gr-wash: #E5F0E9;

  /* ---- Accent · safety orange ---- */
  --or-ink:  #C24A12;
  --or-600:  #FF5600; /* hi-vis safety, arrow bottom */
  --or-400:  #FF963C; /* lighter fluor, arrow top */
  --or-200:  #FFC79B;
  --or-wash: #FCE8DA;

  /* ---- Warm neutrals ---- */
  --warm-white: #FAF9F6;
  --linen:      #F3F1EC;
  --linen-dark: #ECE9E1;

  /* ---- Ink (text) ---- */
  --ink:           #1D2826;
  --ink-secondary: #3A4744;
  --ink-tertiary:  #6B7572;
  --ink-lightest:  #9AA19E;

  /* ---- Hairlines ---- */
  --rule:  rgba(29, 40, 38, 0.09);
  --rule2: rgba(29, 40, 38, 0.16);

  /* Logo face tile (logo always stays in its blue/green hexagon, never recolored to brand UI) */
  --logo-face: #E8EEF3;
}

/* ---- Locked theme: remap semantic aliases to the operational palette ---- */
[data-brand="ai-os"] {
  --bg-page:        var(--warm-white);
  --surface-card:   #FFFFFF;
  --surface-raised: #FFFFFF;
  --surface-sunken: var(--linen);
  --surface-inset:  var(--warm-white);

  --border-subtle:  var(--rule);
  --border-default: var(--rule2);
  --border-strong:  var(--ink-lightest);

  --text-strong:  var(--ink);
  --text-body:    var(--ink-secondary);
  --text-muted:   var(--ink-tertiary);
  --text-faint:   var(--ink-lightest);
  --text-inverse: #FFFFFF;
  --text-link:    var(--gr-700);

  /* Primary action = warm gray */
  --accent:          var(--wg-600);
  --accent-hover:    var(--wg-800);
  --accent-active:   var(--wg-deepest);
  --accent-soft:     var(--wg-wash);
  --accent-contrast: #FFFFFF;

  /* Secondary = green (brand/positive) */
  --secondary:       var(--gr-500);
  --secondary-hover: var(--gr-700);
  --secondary-fg:    var(--gr-ink);
  --secondary-soft:  var(--gr-wash);

  /* Tertiary accent = safety orange (emphasis / attention) */
  --accent2:       var(--or-600);
  --accent2-hover: var(--or-ink);
  --accent2-fg:    var(--or-ink);
  --accent2-soft:  var(--or-wash);

  --focus-ring: var(--wg-600);

  /* Brand-tone badges/links resolve to green under this theme */
  --tone-brand-bg: var(--gr-wash);
  --tone-brand-fg: var(--gr-ink);

  /* Gradients */
  --gradient-secondary: linear-gradient(90deg, var(--wg-800), var(--wg-600));
  --gradient-cta: linear-gradient(135deg, var(--gr-700), var(--gr-500));

  /* Type — locked operational system */
  --font-display: 'Instrument Sans', system-ui, -apple-system, sans-serif;
  --font-body:    'Figtree', system-ui, -apple-system, sans-serif;
  --font-mono:    'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --heading-family: var(--font-display);
  --display-family: var(--font-display);
  --body-family:    var(--font-body);
}
