/* Semantic aliases — this is the layer product code and components consume. */
:root{
  color-scheme:light;

  /* Text */
  --text-primary:var(--ink-800);
  --text-secondary:var(--ink-500);
  --text-tertiary:var(--ink-400);
  --text-disabled:var(--ink-300);
  --text-inverse:var(--sand-25);
  --text-inverse-secondary:var(--ink-200);
  --text-link:var(--ember-700);
  --text-link-hover:var(--ember-800);
  --text-accent:var(--verdigris-600);
  --text-on-accent:var(--white);

  /* Surfaces */
  --surface-page:var(--sand-50);
  --surface-card:var(--white);
  --surface-raised:var(--white);
  --surface-sunken:var(--sand-100);
  --surface-quiet:var(--sand-25);
  --surface-hover:var(--sand-100);
  --surface-active:var(--sand-150);
  --surface-selected:var(--ember-50);
  --surface-inverse:var(--ink-900);
  --surface-inverse-hover:var(--ink-800);
  --surface-accent-soft:var(--verdigris-50);
  --surface-brand-soft:var(--ember-50);
  --surface-code:var(--ink-950);

  /* Borders */
  --border-subtle:var(--sand-150);
  --border-default:var(--sand-200);
  --border-strong:var(--sand-300);
  --border-inverse:rgba(255,255,255,.14);
  --border-focus:var(--ember-500);
  --focus-ring:0 0 0 var(--focus-ring-width) var(--ember-200);

  /* Primary action */
  --action-primary-bg:var(--ember-600);
  --action-primary-bg-hover:var(--ember-700);
  --action-primary-bg-active:var(--ember-800);
  --action-primary-fg:var(--white);
  /* Secondary action */
  --action-secondary-bg:var(--white);
  --action-secondary-bg-hover:var(--sand-50);
  --action-secondary-bg-active:var(--sand-150);
  --action-secondary-fg:var(--ink-700);
  --action-secondary-border:var(--sand-300);
  /* Ghost action */
  --action-ghost-fg:var(--ink-600);
  --action-ghost-bg-hover:var(--sand-100);
  --action-ghost-bg-active:var(--sand-150);
  /* Danger action */
  --action-danger-bg:var(--brick-500);
  --action-danger-bg-hover:var(--brick-600);
  --action-danger-fg:var(--white);
  /* Disabled */
  --action-disabled-bg:var(--sand-100);
  --action-disabled-fg:var(--ink-300);

  /* Status */
  --status-success-fg:var(--moss-600);
  --status-success-bg:var(--moss-50);
  --status-success-border:var(--moss-100);
  --status-warning-fg:var(--amber-600);
  --status-warning-bg:var(--amber-50);
  --status-warning-border:var(--amber-100);
  --status-danger-fg:var(--brick-600);
  --status-danger-bg:var(--brick-50);
  --status-danger-border:var(--brick-100);
  --status-info-fg:var(--lapis-600);
  --status-info-bg:var(--lapis-50);
  --status-info-border:var(--lapis-100);
  --status-brand-fg:var(--ember-700);
  --status-brand-bg:var(--ember-50);
  --status-brand-border:var(--ember-100);
  --status-accent-fg:var(--verdigris-700);
  --status-accent-bg:var(--verdigris-50);
  --status-accent-border:var(--verdigris-100);
  --status-neutral-fg:var(--ink-500);
  --status-neutral-bg:var(--sand-100);
  --status-neutral-border:var(--sand-200);

  /* Conversation roles: lead orange = human, verdigris = machine */
  --role-human-accent:var(--ember-400);
  --role-human-surface:var(--sand-100);
  --role-assistant-accent:var(--verdigris-500);
  --role-assistant-surface:transparent;
  --role-tool-accent:var(--ink-400);
  --role-tool-surface:var(--sand-25);

  /* Ledger texture — hairline rule motif used on empty states and headers */
  --pattern-ledger:repeating-linear-gradient(to bottom,transparent 0,transparent 23px,var(--sand-150) 23px,var(--sand-150) 24px);
  --pattern-graticule:repeating-linear-gradient(to right,transparent 0,transparent 31px,var(--sand-150) 31px,var(--sand-150) 32px),repeating-linear-gradient(to bottom,transparent 0,transparent 31px,var(--sand-150) 31px,var(--sand-150) 32px);
}
