/* ── Verity colour system ───────────────────────────────────────────────
   Base ramps are raw pigment (never reference these directly in product UI).
   Semantic aliases below are the public API.
   AI-state colours are a first-class semantic family: generating / verified /
   uncertain / human-override each own a hue that never doubles for anything else. */
:root{
/* Warm neutral ramp — the "paper" spine of the brand */
--n-0:#FFFFFF;
--n-25:#FBFAF7;
--n-50:#F6F4EF;
--n-100:#EFECE5;
--n-200:#E2DED5;
--n-300:#CFCABE;
--n-400:#A9A396;
--n-500:#7E7869;
--n-600:#5C5749;
--n-700:#403C31;
--n-800:#262319;
--n-900:#14130E;
--n-950:#0B0A07;

/* Cobalt — primary brand / action */
--cobalt-50:#EDF1FE;
--cobalt-100:#DBE3FD;
--cobalt-200:#B7C6FB;
--cobalt-300:#8EA5F8;
--cobalt-400:#6684F3;
--cobalt-500:#3E62EC;
--cobalt-600:#2A48CC;
--cobalt-700:#1F369D;
--cobalt-800:#182873;
--cobalt-900:#121D4F;

/* Iris — reserved for "the machine is working" */
--iris-50:#F3F0FE;
--iris-100:#EBE5FE;
--iris-200:#D7CCFC;
--iris-400:#9B84FA;
--iris-500:#7A5AF8;
--iris-600:#6440E0;
--iris-700:#4E2FB4;

/* Jade — verified / grounded / success */
--jade-50:#ECF8F2;
--jade-100:#DCF2E9;
--jade-200:#B4E2CF;
--jade-500:#12855F;
--jade-600:#0C6A4C;
--jade-700:#08503A;

/* Amber — uncertainty, low confidence, needs review */
--amber-50:#FDF6E6;
--amber-100:#FBEED2;
--amber-200:#F4DDA4;
--amber-500:#B4720B;
--amber-600:#8F5A06;
--amber-700:#6B4304;

/* Clay — human override / escalation / handoff */
--clay-50:#FCF0EB;
--clay-100:#FAE7DF;
--clay-200:#F2C9B8;
--clay-500:#C2542F;
--clay-600:#9E4124;
--clay-700:#78311B;

/* Crimson — destructive & hard failure only */
--crimson-50:#FDEEEC;
--crimson-100:#FBE4E2;
--crimson-200:#F5C3BF;
--crimson-500:#C1332B;
--crimson-600:#9E2620;
--crimson-700:#771B17;

/* ── Semantic: surfaces ── */
--surface-page:var(--n-50);
--surface-card:var(--n-0);
--surface-sunken:var(--n-100);
--surface-raised:var(--n-0);
--surface-inverse:var(--n-900);
--surface-overlay:rgba(20,19,14,.45);
--surface-subtle:var(--n-25);
--surface-accent:var(--cobalt-50);

/* ── Semantic: text ── */
--text-primary:var(--n-900);
--text-secondary:var(--n-600);
--text-tertiary:var(--n-500);
--text-disabled:var(--n-400);
--text-inverse:var(--n-25);
--text-link:var(--cobalt-600);
--text-link-hover:var(--cobalt-700);
--text-on-accent:#FFFFFF;

/* ── Semantic: borders ── */
--border-subtle:var(--n-200);
--border-default:var(--n-300);
--border-strong:var(--n-400);
--border-inverse:rgba(255,255,255,.16);
--border-focus:var(--cobalt-500);

/* ── Semantic: interactive ── */
--action-primary-bg:var(--cobalt-500);
--action-primary-bg-hover:var(--cobalt-600);
--action-primary-bg-active:var(--cobalt-700);
--action-primary-fg:#FFFFFF;
--action-secondary-bg:var(--n-0);
--action-secondary-bg-hover:var(--n-50);
--action-secondary-bg-active:var(--n-100);
--action-secondary-fg:var(--n-900);
--action-ghost-bg-hover:var(--n-100);
--action-danger-bg:var(--crimson-500);
--action-danger-bg-hover:var(--crimson-600);
--action-disabled-bg:var(--n-100);
--action-disabled-fg:var(--n-400);

/* ── Semantic: AI states ── (the core of this system)
   thinking/generating = iris · verified = jade · uncertain = amber · human = clay */
--ai-thinking:var(--iris-500);
--ai-thinking-soft:var(--iris-100);
--ai-thinking-strong:var(--iris-600);
--color-border-ai-thinking:var(--iris-200);
--color-bg-ai-thinking:var(--iris-50);
--color-text-ai-thinking:var(--iris-700);

--ai-verified:var(--jade-500);
--ai-verified-soft:var(--jade-100);
--color-border-ai-verified:var(--jade-200);
--color-bg-ai-verified:var(--jade-50);
--color-text-ai-verified:var(--jade-700);

--ai-uncertain:var(--amber-500);
--ai-uncertain-soft:var(--amber-100);
--color-border-ai-uncertain:var(--amber-200);
--color-bg-ai-uncertain:var(--amber-50);
--color-text-ai-uncertain:var(--amber-700);

--ai-human:var(--clay-500);
--ai-human-soft:var(--clay-100);
--color-border-ai-human:var(--clay-200);
--color-bg-ai-human:var(--clay-50);
--color-text-ai-human:var(--clay-700);

--ai-error:var(--crimson-500);
--color-bg-ai-error:var(--crimson-50);
--color-border-ai-error:var(--crimson-200);
--color-text-ai-error:var(--crimson-700);

/* Message ownership */
--bubble-agent-bg:var(--n-0);
--bubble-agent-border:var(--n-200);
--bubble-user-bg:var(--cobalt-500);
--bubble-user-fg:#FFFFFF;
--bubble-system-bg:var(--n-100);

/* Data-viz / channel accents (charts, tags, category dots) */
--viz-1:var(--cobalt-500);
--viz-2:var(--jade-500);
--viz-3:var(--amber-500);
--viz-4:var(--clay-500);
--viz-5:var(--iris-500);
--viz-6:var(--n-500);
}

/* Dark scope — apply data-theme="dark" to any subtree (console night mode, hero panels). */
[data-theme="dark"]{
--surface-page:var(--n-950);
--surface-card:#15140F;
--surface-sunken:#100F0B;
--surface-raised:#1D1B14;
--surface-subtle:#100F0B;
--surface-inverse:var(--n-25);
--surface-accent:rgba(62,98,236,.14);
--text-primary:var(--n-25);
--text-secondary:#B5AF9F;
--text-tertiary:#8B8474;
--text-disabled:#5C5749;
--text-inverse:var(--n-900);
--text-link:var(--cobalt-300);
--border-subtle:rgba(255,255,255,.10);
--border-default:rgba(255,255,255,.16);
--border-strong:rgba(255,255,255,.26);
--action-secondary-bg:#1D1B14;
--action-secondary-bg-hover:#262319;
--action-secondary-fg:var(--n-25);
--action-ghost-bg-hover:rgba(255,255,255,.08);
--action-disabled-bg:rgba(255,255,255,.06);
--action-disabled-fg:#5C5749;
--color-bg-ai-thinking:rgba(122,90,248,.14);
--color-border-ai-thinking:rgba(122,90,248,.38);
--color-text-ai-thinking:#C6B6FD;
--color-bg-ai-verified:rgba(18,133,95,.14);
--color-border-ai-verified:rgba(18,133,95,.4);
--color-text-ai-verified:#7CD6B2;
--color-bg-ai-uncertain:rgba(180,114,11,.16);
--color-border-ai-uncertain:rgba(180,114,11,.42);
--color-text-ai-uncertain:#E9BE6B;
--color-bg-ai-human:rgba(194,84,47,.16);
--color-border-ai-human:rgba(194,84,47,.42);
--color-text-ai-human:#EDA184;
--bubble-agent-bg:#1D1B14;
--bubble-agent-border:rgba(255,255,255,.10);
--bubble-system-bg:rgba(255,255,255,.06);
}
