/* Visual language packs (opt-in). Include after tokens.css.
   Swap with html[data-au-theme="<id>"] or .au-theme-<id>.
   Light/dark stays on data-theme. Packs set primitives; the shared
   layer below remaps semantics and catalog locals. */

/* —— Shared wiring — any non-base pack —— */
html[data-au-theme]:not([data-au-theme="base"]),
[class*="au-theme-"]:not(.au-theme-base) {
  --au-bg: var(--au-canvas);
  --au-surface: var(--au-surface-1);
  --au-surface-muted: var(--au-surface-2);
  --au-surface-hover: var(--au-surface-3);
  --au-fg: var(--au-ink);
  --au-fg-muted: var(--au-ink-muted);
  --au-fg-subtle: var(--au-ink-subtle);
  --au-border-color: var(--au-border);
  --au-border-emphasis: var(--au-border-strong);
  --au-action: var(--au-accent);
  --au-action-hover: var(--au-accent-hover);
  --au-action-soft: var(--au-accent-soft);
  --au-action-fg: var(--au-on-accent);
  --au-focus: var(--au-accent);
  --au-composer-bg: var(--au-surface);
  --au-btn-radius: var(--au-radius-md);
  --au-card-radius: var(--au-radius-lg);
  --au-input-radius: var(--au-radius-md);
  --au-dialog-radius: var(--au-radius-xl);
}

html[data-au-theme]:not([data-au-theme="base"])[data-theme="dark"],
:root[data-theme="dark"][data-au-theme]:not([data-au-theme="base"]),
html.dark[data-au-theme]:not([data-au-theme="base"]),
[data-theme="dark"][class*="au-theme-"]:not(.au-theme-base) {
  --au-bg: var(--au-dark-canvas);
  --au-surface: var(--au-dark-surface-1);
  --au-surface-muted: var(--au-dark-surface-2);
  --au-surface-hover: var(--au-dark-surface-3);
  --au-fg: var(--au-dark-ink);
  --au-fg-muted: var(--au-dark-ink-muted);
  --au-fg-subtle: var(--au-dark-ink-subtle);
  --au-border-color: var(--au-dark-border);
  --au-border-emphasis: var(--au-dark-border-strong);
  --au-action: var(--au-dark-accent);
  --au-action-hover: var(--au-dark-accent-hover);
  --au-action-soft: var(--au-dark-accent-soft);
  --au-action-fg: var(--au-on-accent);
  --au-focus: var(--au-dark-accent);
  --au-composer-bg: var(--au-dark-surface-2);
}

html[data-au-theme]:not([data-au-theme="base"]) .au-btn,
[class*="au-theme-"]:not(.au-theme-base) .au-btn {
  --au-btn-radius: var(--au-radius-md);
}

html[data-au-theme]:not([data-au-theme="base"]) .au-input,
[class*="au-theme-"]:not(.au-theme-base) .au-input {
  --au-input-radius: var(--au-radius-md);
}

html[data-au-theme]:not([data-au-theme="base"]) .au-dialog,
[class*="au-theme-"]:not(.au-theme-base) .au-dialog {
  --au-dialog-radius: var(--au-radius-xl);
}

html[data-au-theme]:not([data-au-theme="base"]) .au-card,
[class*="au-theme-"]:not(.au-theme-base) .au-card {
  --au-card-radius: var(--au-radius-lg);
}

html[data-au-theme]:not([data-au-theme="base"]) .au-chat-input,
[class*="au-theme-"]:not(.au-theme-base) .au-chat-input {
  border-radius: var(--au-radius-lg);
}

html[data-au-theme]:not([data-au-theme="base"]) :is(
  .au-card,
  .au-tool-call,
  .au-reasoning,
  .au-codeblock,
  .au-diff,
  .au-command-search,
  .au-cmd-search,
  .au-records,
  .au-filter-table,
  .au-diff-table,
  .au-fine-tune,
  .au-finetune,
  .au-task-rows,
  .au-tool-chips,
  .au-notepad
),
[class*="au-theme-"]:not(.au-theme-base) :is(
  .au-card,
  .au-tool-call,
  .au-reasoning,
  .au-codeblock,
  .au-diff,
  .au-command-search,
  .au-cmd-search,
  .au-records,
  .au-filter-table,
  .au-diff-table,
  .au-fine-tune,
  .au-finetune,
  .au-task-rows,
  .au-tool-chips,
  .au-notepad
) {
  --au-card-radius: var(--au-radius-lg);
  border-radius: var(--au-radius-lg);
}

html[data-au-theme]:not([data-au-theme="base"]) :is(
  .au-dialog,
  .au-approval-gate,
  .au-ask-user-question,
  .au-weather
),
[class*="au-theme-"]:not(.au-theme-base) :is(
  .au-dialog,
  .au-approval-gate,
  .au-ask-user-question,
  .au-weather
) {
  --au-dialog-radius: var(--au-radius-xl);
  --au-card-radius: var(--au-radius-xl);
  border-radius: var(--au-radius-xl);
}

html[data-au-theme]:not([data-au-theme="base"]) :is(
  .au-chat-thread,
  .au-chat-message,
  .au-loading,
  .au-loading-state,
  .au-thinking-indicator
),
[class*="au-theme-"]:not(.au-theme-base) :is(
  .au-chat-thread,
  .au-chat-message,
  .au-loading,
  .au-loading-state,
  .au-thinking-indicator
) {
  --au-thread-bg: var(--au-bg);
}

/* —— Base — values live in tokens.css —— */
html[data-au-theme="base"],
.au-theme-base {
  --au-bg: var(--au-canvas);
  --au-surface: var(--au-surface-1);
  --au-surface-muted: var(--au-surface-2);
  --au-surface-hover: var(--au-surface-3);
  --au-fg: var(--au-ink);
  --au-fg-muted: var(--au-ink-muted);
  --au-fg-subtle: var(--au-ink-subtle);
  --au-border-color: var(--au-border);
  --au-border-emphasis: var(--au-border-strong);
  --au-action: var(--au-accent);
  --au-action-hover: var(--au-accent-hover);
  --au-action-soft: var(--au-accent-soft);
  --au-action-fg: var(--au-on-accent);
  --au-focus: var(--au-accent);
  --au-composer-bg: var(--au-surface);
}

html[data-au-theme="base"][data-theme="dark"],
:root[data-theme="dark"][data-au-theme="base"],
html.dark[data-au-theme="base"],
[data-theme="dark"].au-theme-base {
  --au-bg: var(--au-dark-canvas);
  --au-surface: var(--au-dark-surface-1);
  --au-surface-muted: var(--au-dark-surface-2);
  --au-surface-hover: var(--au-dark-surface-3);
  --au-fg: var(--au-dark-ink);
  --au-fg-muted: var(--au-dark-ink-muted);
  --au-fg-subtle: var(--au-dark-ink-subtle);
  --au-border-color: var(--au-dark-border);
  --au-border-emphasis: var(--au-dark-border-strong);
  --au-action: var(--au-dark-accent);
  --au-action-hover: var(--au-dark-accent-hover);
  --au-action-soft: var(--au-dark-accent-soft);
  --au-action-fg: var(--au-dark-canvas);
  --au-focus: var(--au-dark-accent);
  --au-composer-bg: var(--au-dark-surface-2);
}

/* —— Gleap — linen + graphite pills —— */
html[data-au-theme="gleap"],
.au-theme-gleap {
  --au-canvas: #edede8;
  --au-surface-1: #ffffff;
  --au-surface-2: #dbdbd2;
  --au-surface-3: #d0d0c8;
  --au-ink: #292929;
  --au-ink-muted: #6f6f6e;
  --au-ink-subtle: #8f8f8e;
  --au-border: color-mix(in srgb, #000 12%, transparent);
  --au-border-strong: color-mix(in srgb, #000 22%, transparent);
  --au-accent: #141414;
  --au-accent-hover: #292929;
  --au-accent-soft: #dbdbd2;
  --au-on-accent: #ffffff;
  --au-success: #4cc02b;
  --au-focus: #141414;
  --au-dark-canvas: #141414;
  --au-dark-surface-1: #1f1f1d;
  --au-dark-surface-2: #292929;
  --au-dark-surface-3: #353535;
  --au-dark-ink: #edede8;
  --au-dark-ink-muted: #c0c0c0;
  --au-dark-ink-subtle: #8f8f8e;
  --au-dark-border: color-mix(in srgb, #edede8 16%, transparent);
  --au-dark-border-strong: color-mix(in srgb, #edede8 28%, transparent);
  --au-dark-accent: #edede8;
  --au-dark-accent-hover: #ffffff;
  --au-dark-accent-soft: #292929;
  --au-brand-blue: #353535;
  --au-brand-blue-fg: #141414;
  --au-brand-blue-soft: #dbdbd2;
  --au-brand-blue-soft-hover: #d0d0c8;
  --au-brand-violet: #6f6f6e;
  --au-brand-pink: #8f8f8e;
  --au-brand-cyan: #c0c0c0;
  --au-font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --au-radius-xs: 6px;
  --au-radius-sm: 6px;
  --au-radius-md: 12px;
  --au-radius-lg: 12px;
  --au-radius-xl: 12px;
  --au-radius-pill: 200px;
  --au-text-title: 400 16px/1.3 var(--au-font-sans);
  --au-text-body: 400 16px/1.5 var(--au-font-sans);
  --au-elevation-composer: none;
  --au-elevation-composer-focus: none;
  --au-elevation-menu: 0 18px 55px rgba(16, 24, 40, 0.12);
}

html[data-au-theme="gleap"][data-theme="dark"],
:root[data-theme="dark"][data-au-theme="gleap"],
html.dark[data-au-theme="gleap"],
[data-theme="dark"].au-theme-gleap {
  --au-on-accent: #141414;
  --au-brand-blue: #c0c0c0;
  --au-brand-blue-fg: #edede8;
  --au-brand-blue-soft: #292929;
  --au-brand-blue-soft-hover: #353535;
  --au-brand-violet: #8f8f8e;
  --au-brand-pink: #c0c0c0;
  --au-brand-cyan: #dbdbd2;
}

html[data-au-theme="gleap"] .au-btn,
.au-theme-gleap .au-btn {
  --au-btn-radius: var(--au-radius-pill);
}

html[data-au-theme="gleap"] .au-chat-input,
.au-theme-gleap .au-chat-input {
  border-radius: var(--au-radius-pill);
}

/* —— Plain — parchment + one green CTA —— */
html[data-au-theme="plain"],
.au-theme-plain {
  --au-canvas: #f3fbe9;
  --au-surface-1: #f9f6f1;
  --au-surface-2: #ffffff;
  --au-surface-3: color-mix(in srgb, #0a2414 6%, #f3fbe9);
  --au-ink: #0a2414;
  --au-ink-muted: #607166;
  --au-ink-subtle: color-mix(in srgb, #607166 72%, #f3fbe9);
  --au-border: color-mix(in srgb, #0a2414 10%, transparent);
  --au-border-strong: color-mix(in srgb, #0a2414 16%, transparent);
  --au-accent: #1ad379;
  --au-accent-hover: #17b267;
  --au-accent-soft: color-mix(in srgb, #1ad379 14%, #f3fbe9);
  --au-on-accent: #0a2414;
  --au-success: #17b267;
  --au-warning: #360003;
  --au-danger: #360003;
  --au-focus: #17b267;
  --au-dark-canvas: #283a2e;
  --au-dark-surface-1: #31463a;
  --au-dark-surface-2: #22342a;
  --au-dark-surface-3: #3a5244;
  --au-dark-ink: #f3fbe9;
  --au-dark-ink-muted: color-mix(in srgb, #f3fbe9 62%, #283a2e);
  --au-dark-ink-subtle: color-mix(in srgb, #f3fbe9 42%, #283a2e);
  --au-dark-border: color-mix(in srgb, #f3fbe9 12%, transparent);
  --au-dark-border-strong: color-mix(in srgb, #f3fbe9 20%, transparent);
  --au-dark-accent: #1ad379;
  --au-dark-accent-hover: #17b267;
  --au-dark-accent-soft: color-mix(in srgb, #1ad379 16%, #283a2e);
  --au-brand-blue: #17b267;
  --au-brand-blue-fg: #0a2414;
  --au-brand-blue-soft: color-mix(in srgb, #1ad379 16%, #f3fbe9);
  --au-brand-blue-soft-hover: color-mix(in srgb, #1ad379 22%, #f3fbe9);
  --au-brand-violet: #607166;
  --au-brand-pink: #ffbac3;
  --au-brand-cyan: #1ad379;
  --au-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --au-radius-xs: 6px;
  --au-radius-sm: 6px;
  --au-radius-md: 6px;
  --au-radius-lg: 9px;
  --au-radius-xl: 9px;
  --au-radius-pill: 6px;
  --au-text-title: 500 16px/1.17 var(--au-font-sans);
  --au-text-body: 400 15px/1.33 var(--au-font-sans);
  --au-text-meta: 500 13px/1.46 var(--au-font-mono);
  --au-elevation-composer: none;
  --au-elevation-composer-focus: none;
  --au-elevation-menu: 0 20px 40px -10px rgba(10, 36, 20, 0.12);
  letter-spacing: -0.01em;
}

html[data-au-theme="plain"][data-theme="dark"],
:root[data-theme="dark"][data-au-theme="plain"],
html.dark[data-au-theme="plain"],
[data-theme="dark"].au-theme-plain {
  --au-on-accent: #0a2414;
  --au-brand-blue: #1ad379;
  --au-brand-blue-fg: #0a2414;
  --au-brand-blue-soft: color-mix(in srgb, #1ad379 18%, #283a2e);
  --au-brand-blue-soft-hover: color-mix(in srgb, #1ad379 26%, #283a2e);
  --au-brand-violet: #a8b5ac;
  --au-brand-pink: #ffbac3;
  --au-brand-cyan: #f3fbe9;
}

html[data-au-theme="plain"] .au-btn,
.au-theme-plain .au-btn {
  box-shadow: none;
}

html[data-au-theme="plain"] .au-btn--secondary,
.au-theme-plain .au-btn--secondary {
  --au-btn-bg: transparent;
  --au-btn-bg-hover: color-mix(in srgb, #1ad379 12%, transparent);
  --au-btn-border: #17b267;
  --au-btn-fg: var(--au-fg);
}

html[data-au-theme="plain"] .au-chat-input,
.au-theme-plain .au-chat-input {
  box-shadow: 0 1px 0 0 rgba(10, 36, 20, 0.06);
}

/* —— Micro — paper + azure —— */
html[data-au-theme="micro"],
.au-theme-micro {
  --au-canvas: #f5f5f5;
  --au-surface-1: #ffffff;
  --au-surface-2: #f5f5f5;
  --au-surface-3: #cff2ef;
  --au-ink: #221f1c;
  --au-ink-muted: #797267;
  --au-ink-subtle: #8c8a88;
  --au-border: color-mix(in srgb, #27272a 12%, transparent);
  --au-border-strong: color-mix(in srgb, #27272a 22%, transparent);
  --au-accent: #518bdb;
  --au-accent-hover: #3d78c9;
  --au-accent-soft: #cbfbf1;
  --au-on-accent: #ffffff;
  --au-success: #36bab8;
  --au-warning: #e5a057;
  --au-danger: #ed6d68;
  --au-focus: #518bdb;
  --au-dark-canvas: #221f1c;
  --au-dark-surface-1: #2c2926;
  --au-dark-surface-2: #383430;
  --au-dark-surface-3: #44403b;
  --au-dark-ink: #f5f5f5;
  --au-dark-ink-muted: #b4ada4;
  --au-dark-ink-subtle: #8c8a88;
  --au-dark-border: color-mix(in srgb, #f5f5f5 14%, transparent);
  --au-dark-border-strong: color-mix(in srgb, #f5f5f5 24%, transparent);
  --au-dark-accent: #518bdb;
  --au-dark-accent-hover: #6ea0e4;
  --au-dark-accent-soft: color-mix(in srgb, #518bdb 22%, #221f1c);
  --au-brand-blue: #518bdb;
  --au-brand-blue-fg: #3d78c9;
  --au-brand-blue-soft: color-mix(in srgb, #518bdb 16%, #ffffff);
  --au-brand-blue-soft-hover: color-mix(in srgb, #518bdb 22%, #ffffff);
  --au-brand-violet: #bf89cd;
  --au-brand-pink: #ed6d68;
  --au-brand-cyan: #36bab8;
  --au-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --au-radius-xs: 8px;
  --au-radius-sm: 8px;
  --au-radius-md: 8px;
  --au-radius-lg: 14px;
  --au-radius-xl: 18px;
  --au-radius-pill: 9999px;
  --au-text-title: 600 16px/1.25 var(--au-font-sans);
  --au-text-body: 400 16px/1.5 var(--au-font-sans);
  --au-text-meta: 400 12px/1.4 var(--au-font-mono);
  --au-elevation-composer: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  --au-elevation-composer-focus: 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 0 2px #518bdb;
  --au-elevation-menu: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}

html[data-au-theme="micro"][data-theme="dark"],
:root[data-theme="dark"][data-au-theme="micro"],
html.dark[data-au-theme="micro"],
[data-theme="dark"].au-theme-micro {
  --au-on-accent: #ffffff;
  --au-brand-blue: #6ea0e4;
  --au-brand-blue-fg: #cfe0f6;
  --au-brand-blue-soft: color-mix(in srgb, #518bdb 22%, #221f1c);
  --au-brand-blue-soft-hover: color-mix(in srgb, #518bdb 30%, #221f1c);
}

html[data-au-theme="micro"] .au-btn--primary,
.au-theme-micro .au-btn--primary {
  box-shadow: inset 0 -2px 0 0 rgba(0, 0, 0, 0.2);
}

html[data-au-theme="micro"] .au-btn--secondary,
.au-theme-micro .au-btn--secondary {
  --au-btn-bg: #221f1c;
  --au-btn-bg-hover: #2c2926;
  --au-btn-fg: #ffffff;
  --au-btn-border: transparent;
}

html[data-au-theme="micro"][data-theme="dark"] .au-btn--secondary,
:root[data-theme="dark"][data-au-theme="micro"] .au-btn--secondary,
html.dark[data-au-theme="micro"] .au-btn--secondary,
[data-theme="dark"].au-theme-micro .au-btn--secondary {
  --au-btn-bg: #f5f5f5;
  --au-btn-bg-hover: #ffffff;
  --au-btn-fg: #221f1c;
}

html[data-au-theme="micro"] .au-chat-input,
.au-theme-micro .au-chat-input {
  box-shadow: var(--au-elevation-composer);
}

html[data-au-theme="micro"] :is(
  .au-card,
  .au-tool-call,
  .au-reasoning,
  .au-codeblock,
  .au-diff,
  .au-command-search,
  .au-cmd-search,
  .au-records,
  .au-filter-table,
  .au-diff-table,
  .au-fine-tune,
  .au-finetune,
  .au-task-rows,
  .au-tool-chips,
  .au-notepad
),
.au-theme-micro :is(
  .au-card,
  .au-tool-call,
  .au-reasoning,
  .au-codeblock,
  .au-diff,
  .au-command-search,
  .au-cmd-search,
  .au-records,
  .au-filter-table,
  .au-diff-table,
  .au-fine-tune,
  .au-finetune,
  .au-task-rows,
  .au-tool-chips,
  .au-notepad
) {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
}

html[data-au-theme="micro"] :is(
  .au-dialog,
  .au-approval-gate,
  .au-ask-user-question,
  .au-weather
),
.au-theme-micro :is(
  .au-dialog,
  .au-approval-gate,
  .au-ask-user-question,
  .au-weather
) {
  box-shadow: var(--au-elevation-menu);
}

/* Next pack: primitives + optional exceptions. Register in scripts/theme-packs.js. */
