/*
 * lime — palette-light.css
 * Two-layer model: tone scales (hex source of truth) → semantic aliases.
 * Identity: "paper + leaf". Warm-neutral greens on a near-white green-tinted
 * paper surface. The bright lime tone is reserved for the dark theme; in
 * light mode the accent is a deep leaf green so solid buttons and links
 * meet WCAG AA without tricks.
 *
 * Verified contrast (WCAG AA ≥ 4.5:1 text, ≥ 3:1 non-text):
 *   accent-9 on contrast 5.23 · hover 6.40 · active 7.55
 *   neutral-9 5.10 · danger-9 6.00 · success-9 5.32 · warning-9 5.93
 *   fg-primary 16.0 · fg-muted 6.14 · fg-subtle 4.99 · fg-link 6.34
 *   input border vs surface ≈ 3.2
 */

html[data-theme='light'] {
	color-scheme: light;

	/* ---- Tone scales -------------------------------------------------- */

	/* neutral (green-tinted grey — "moss") */
	--ld-neutral-1: #fbfdf9;
	--ld-neutral-2: #f4f7f1;
	--ld-neutral-3: #eaeee7;
	--ld-neutral-4: #dfe5dc;
	--ld-neutral-5: #d2dacf;
	--ld-neutral-6: #c3ccc1;
	--ld-neutral-7: #adb7ac;
	--ld-neutral-8: #849087;
	--ld-neutral-9: #657168;
	--ld-neutral-10: #57635b;
	--ld-neutral-11: #47524b;
	--ld-neutral-12: #1b211d;
	--ld-neutral-contrast: #ffffff;

	/* accent (leaf) */
	--ld-accent-3: #e9f6dc;
	--ld-accent-4: #d9efc4;
	--ld-accent-5: #c6e6a8;
	--ld-accent-6: #b0d989;
	--ld-accent-7: #93c765;
	--ld-accent-8: #74b046;
	--ld-accent-9: #3f7a1f;
	--ld-accent-10: #376b1b;
	--ld-accent-11: #2f6b14;
	--ld-accent-12: #1d4310;
	--ld-accent-contrast: #ffffff;

	/* danger */
	--ld-danger-3: #fdeae8;
	--ld-danger-4: #fbd8d4;
	--ld-danger-5: #f6c1bb;
	--ld-danger-6: #eda49c;
	--ld-danger-7: #e07f75;
	--ld-danger-8: #cf5a4f;
	--ld-danger-9: #b3372e;
	--ld-danger-10: #9e3028;
	--ld-danger-11: #96271f;
	--ld-danger-12: #55110c;
	--ld-danger-contrast: #ffffff;

	/* success */
	--ld-success-3: #e3f5ea;
	--ld-success-4: #ccedd9;
	--ld-success-5: #aee1c2;
	--ld-success-6: #8ad1a7;
	--ld-success-7: #5fbc87;
	--ld-success-8: #34a067;
	--ld-success-9: #1f7a4d;
	--ld-success-10: #1b6b44;
	--ld-success-11: #17643e;
	--ld-success-12: #0b3a23;
	--ld-success-contrast: #ffffff;

	/* warning */
	--ld-warning-3: #fdf1da;
	--ld-warning-4: #fae3b8;
	--ld-warning-5: #f4d190;
	--ld-warning-6: #eaba62;
	--ld-warning-7: #d99e33;
	--ld-warning-8: #bd7d10;
	--ld-warning-9: #8a5a00;
	--ld-warning-10: #7a5000;
	--ld-warning-11: #714a00;
	--ld-warning-12: #402a00;
	--ld-warning-contrast: #ffffff;

	/* ---- Solid interaction (light: darken dark fills) ----------------- */
	--ld-neutral-solid-hover: color-mix(in srgb, var(--ld-neutral-9) 88%, black);
	--ld-neutral-solid-active: color-mix(in srgb, var(--ld-neutral-9) 78%, black);
	--ld-accent-solid-hover: color-mix(in srgb, var(--ld-accent-9) 88%, black);
	--ld-accent-solid-active: color-mix(in srgb, var(--ld-accent-9) 78%, black);
	--ld-danger-solid-hover: color-mix(in srgb, var(--ld-danger-9) 88%, black);
	--ld-danger-solid-active: color-mix(in srgb, var(--ld-danger-9) 78%, black);
	--ld-success-solid-hover: color-mix(in srgb, var(--ld-success-9) 88%, black);
	--ld-success-solid-active: color-mix(in srgb, var(--ld-success-9) 78%, black);
	--ld-warning-solid-hover: color-mix(in srgb, var(--ld-warning-9) 88%, black);
	--ld-warning-solid-active: color-mix(in srgb, var(--ld-warning-9) 78%, black);

	/* ---- Surface & text ----------------------------------------------- */
	--ld-bg-surface: var(--ld-neutral-1);
	--ld-bg-subtle: var(--ld-neutral-2);
	--ld-bg-muted: var(--ld-neutral-3);
	--ld-fg-primary: var(--ld-neutral-12);
	--ld-fg-muted: var(--ld-neutral-10);
	--ld-fg-subtle: var(--ld-neutral-9);
	--ld-border-subtle: var(--ld-neutral-4);
	--ld-border-strong: var(--ld-neutral-7);
	/* Tree guide vs bg-subtle ≥ 3:1 (WCAG 1.4.11) */
	--ld-tree-guide: var(--ld-neutral-8);
	--ld-scrollbar-track: var(--ld-neutral-2);
	--ld-scrollbar-thumb: var(--ld-neutral-6);
	--ld-scrollbar-thumb-hover: var(--ld-neutral-8);

	/* ---- Status -------------------------------------------------------- */
	--ld-color-success: var(--ld-success-11);
	--ld-color-success-bg: var(--ld-success-3);
	--ld-color-warning: var(--ld-warning-11);
	--ld-color-warning-bg: var(--ld-warning-3);
	--ld-color-error: var(--ld-danger-11);
	--ld-color-error-bg: var(--ld-danger-3);
	--ld-color-info: var(--ld-accent-11);
	--ld-color-info-bg: var(--ld-accent-3);
	--ld-fg-link: var(--ld-accent-11);

	/* ---- Focus (composed into --ld-focus-ring in design.css) ----------- */
	--ld-focus-ring-color: var(--ld-accent-9);

	/* ---- Components ---------------------------------------------------- */
	--ld-modal-bg: var(--ld-neutral-1);
	--ld-modal-fg: var(--ld-neutral-12);
	--ld-modal-backdrop: color-mix(in srgb, var(--ld-neutral-12) 42%, transparent);

	--ld-toast-bg: var(--ld-bg-surface);
	--ld-toast-fg: var(--ld-fg-primary);
	--ld-toast-border: var(--ld-border-subtle);
	--ld-toast-shadow: rgba(0, 0, 0, 0.14);

	--ld-editor-cursor: var(--ld-fg-primary);
	--ld-editor-selection: color-mix(in srgb, var(--ld-accent-6) 45%, transparent);

	--ld-btn-bg: var(--ld-neutral-3);
	--ld-btn-fg: var(--ld-neutral-12);
	--ld-btn-primary-bg: var(--ld-accent-9);
	--ld-btn-primary-fg: var(--ld-accent-contrast);
	--ld-btn-secondary-bg: var(--ld-neutral-1);
	--ld-btn-secondary-fg: var(--ld-neutral-12);
	--ld-btn-secondary-border: var(--ld-neutral-7);
	--ld-btn-danger-bg: var(--ld-danger-9);
	--ld-btn-danger-fg: var(--ld-danger-contrast);
	--ld-btn-danger-border: var(--ld-danger-10);
	--ld-btn-ghost-bg: transparent;
	--ld-btn-ghost-fg: var(--ld-neutral-11);
	--ld-btn-ghost-border: transparent;
	--ld-btn-link-bg: transparent;
	--ld-btn-link-fg: var(--ld-accent-11);
	--ld-btn-link-border: transparent;
	--ld-input-border: var(--ld-neutral-8);

	/* ---- Document preview ----------------------------------------------- */
	--ld-doc-fg: var(--ld-neutral-12);
	--ld-doc-code-bg: var(--ld-neutral-2);

	/* ---- Plugin tokens --------------------------------------------------- */
	--ld-shiki-surface-bg: var(--ld-neutral-2);
	--ld-shiki-surface-border: var(--ld-neutral-4);
	--ld-shiki-surface-padding: 0.85rem 1rem;

	--ld-callout-note-bg: var(--ld-neutral-2);
	--ld-callout-note-border: var(--ld-neutral-7);
	--ld-callout-info-bg: var(--ld-accent-3);
	--ld-callout-info-border: var(--ld-accent-8);
	--ld-callout-tip-bg: var(--ld-success-3);
	--ld-callout-tip-border: var(--ld-success-8);
	--ld-callout-important-bg: var(--ld-accent-4);
	--ld-callout-important-border: var(--ld-accent-9);
	--ld-callout-warning-bg: var(--ld-warning-3);
	--ld-callout-warning-border: var(--ld-warning-8);
	--ld-callout-bug-bg: var(--ld-danger-3);
	--ld-callout-bug-border: var(--ld-danger-8);
	--ld-callout-never-bg: var(--ld-danger-4);
	--ld-callout-never-border: var(--ld-danger-9);
}

/*
 * lime — palette-dark.css
 * Identity: "night + lime". Deep green-tinted neutrals (not pure black),
 * with the bright lime tone carrying the accent. Dark-theme solids are
 * light fills with dark contrast text, per the skin spec.
 *
 * Verified contrast (WCAG AA):
 *   accent-9 on contrast 11.08 · hover 12.43 · active 10.54
 *   neutral-9 6.26 · danger-9 7.63 · success-9 8.83 · warning-9 9.03
 *   fg-primary 15.3 · fg-muted ≈ 7.6 · fg-subtle 6.26 · fg-link 13.5
 *   input border vs surface ≈ 3.1
 */

html[data-theme='dark'] {
	color-scheme: dark;

	/* ---- Tone scales -------------------------------------------------- */

	/* neutral (deep moss) */
	--ld-neutral-1: #131714;
	--ld-neutral-2: #191e1a;
	--ld-neutral-3: #202721;
	--ld-neutral-4: #272f28;
	--ld-neutral-5: #2f3830;
	--ld-neutral-6: #3a453b;
	--ld-neutral-7: #475348;
	--ld-neutral-8: #5b675c;
	--ld-neutral-9: #8f9b91;
	--ld-neutral-10: #9ea9a0;
	--ld-neutral-11: #b0bbb2;
	--ld-neutral-12: #e8ede9;
	--ld-neutral-contrast: #131714;

	/* accent (lime) */
	--ld-accent-3: #17240d;
	--ld-accent-4: #1c2e0f;
	--ld-accent-5: #233a12;
	--ld-accent-6: #2c4917;
	--ld-accent-7: #3a5f1e;
	--ld-accent-8: #7fca35;
	--ld-accent-9: #9ee649;
	--ld-accent-10: #aef162;
	--ld-accent-11: #b9ef77;
	--ld-accent-12: #dcf9bd;
	--ld-accent-contrast: #14210a;

	/* danger */
	--ld-danger-3: #2b100c;
	--ld-danger-4: #3a140f;
	--ld-danger-5: #4b1a13;
	--ld-danger-6: #63241b;
	--ld-danger-7: #833226;
	--ld-danger-8: #a84d42;
	--ld-danger-9: #ff8578;
	--ld-danger-10: #ff968b;
	--ld-danger-11: #ffa79d;
	--ld-danger-12: #ffd9d3;
	--ld-danger-contrast: #2b0d09;

	/* success */
	--ld-success-3: #0e2418;
	--ld-success-4: #112d1e;
	--ld-success-5: #153926;
	--ld-success-6: #1b4a31;
	--ld-success-7: #256342;
	--ld-success-8: #3f9c6e;
	--ld-success-9: #5fd39a;
	--ld-success-10: #74dca8;
	--ld-success-11: #8ce4b7;
	--ld-success-12: #c5f4dc;
	--ld-success-contrast: #0a2416;

	/* warning */
	--ld-warning-3: #271a04;
	--ld-warning-4: #302005;
	--ld-warning-5: #3d2906;
	--ld-warning-6: #4f3608;
	--ld-warning-7: #6b490b;
	--ld-warning-8: #c78a2a;
	--ld-warning-9: #f0b243;
	--ld-warning-10: #f5bf5f;
	--ld-warning-11: #f8cb7c;
	--ld-warning-12: #fce7c2;
	--ld-warning-contrast: #271a04;

	/* ---- Solid interaction (dark: light fills — never black-mix) ------- */
	--ld-neutral-solid-hover: var(--ld-neutral-10);
	--ld-neutral-solid-active: color-mix(in srgb, var(--ld-neutral-9) 82%, var(--ld-neutral-8));
	--ld-accent-solid-hover: var(--ld-accent-10);
	--ld-accent-solid-active: color-mix(in srgb, var(--ld-accent-9) 82%, var(--ld-accent-8));
	--ld-danger-solid-hover: var(--ld-danger-10);
	--ld-danger-solid-active: color-mix(in srgb, var(--ld-danger-9) 82%, var(--ld-danger-8));
	--ld-success-solid-hover: var(--ld-success-10);
	--ld-success-solid-active: color-mix(in srgb, var(--ld-success-9) 82%, var(--ld-success-8));
	--ld-warning-solid-hover: var(--ld-warning-10);
	--ld-warning-solid-active: color-mix(in srgb, var(--ld-warning-9) 82%, var(--ld-warning-8));

	/* ---- Surface & text ----------------------------------------------- */
	--ld-bg-surface: var(--ld-neutral-1);
	--ld-bg-subtle: var(--ld-neutral-2);
	--ld-bg-muted: var(--ld-neutral-3);
	--ld-fg-primary: var(--ld-neutral-12);
	--ld-fg-muted: var(--ld-neutral-11);
	--ld-fg-subtle: var(--ld-neutral-9);
	--ld-border-subtle: var(--ld-neutral-4);
	--ld-border-strong: var(--ld-neutral-7);
	/* Tree guide vs bg-subtle ≥ 3:1 (WCAG 1.4.11); n8 is below 3:1 here */
	--ld-tree-guide: var(--ld-neutral-9);
	--ld-scrollbar-track: var(--ld-neutral-2);
	--ld-scrollbar-thumb: var(--ld-neutral-6);
	--ld-scrollbar-thumb-hover: var(--ld-neutral-8);

	/* ---- Status -------------------------------------------------------- */
	--ld-color-success: var(--ld-success-11);
	--ld-color-success-bg: var(--ld-success-3);
	--ld-color-warning: var(--ld-warning-11);
	--ld-color-warning-bg: var(--ld-warning-3);
	--ld-color-error: var(--ld-danger-11);
	--ld-color-error-bg: var(--ld-danger-3);
	--ld-color-info: var(--ld-accent-11);
	--ld-color-info-bg: var(--ld-accent-3);
	--ld-fg-link: var(--ld-accent-11);

	/* ---- Focus (composed into --ld-focus-ring in design.css) ----------- */
	--ld-focus-ring-color: var(--ld-accent-8);

	/* ---- Components ---------------------------------------------------- */
	--ld-modal-bg: var(--ld-neutral-2);
	--ld-modal-fg: var(--ld-neutral-12);
	--ld-modal-backdrop: color-mix(in srgb, #000000 62%, transparent);

	--ld-toast-bg: var(--ld-bg-surface);
	--ld-toast-fg: var(--ld-fg-primary);
	--ld-toast-border: var(--ld-border-strong);
	--ld-toast-shadow: rgba(0, 0, 0, 0.35);

	--ld-editor-cursor: var(--ld-fg-primary);
	--ld-editor-selection: color-mix(in srgb, var(--ld-accent-7) 55%, transparent);

	--ld-btn-bg: var(--ld-neutral-4);
	--ld-btn-fg: var(--ld-neutral-12);
	--ld-btn-primary-bg: var(--ld-accent-9);
	--ld-btn-primary-fg: var(--ld-accent-contrast);
	--ld-btn-secondary-bg: var(--ld-neutral-2);
	--ld-btn-secondary-fg: var(--ld-neutral-12);
	--ld-btn-secondary-border: var(--ld-neutral-7);
	--ld-btn-danger-bg: var(--ld-danger-9);
	--ld-btn-danger-fg: var(--ld-danger-contrast);
	--ld-btn-danger-border: var(--ld-danger-10);
	--ld-btn-ghost-bg: transparent;
	--ld-btn-ghost-fg: var(--ld-neutral-11);
	--ld-btn-ghost-border: transparent;
	--ld-btn-link-bg: transparent;
	--ld-btn-link-fg: var(--ld-accent-11);
	--ld-btn-link-border: transparent;
	--ld-input-border: var(--ld-neutral-8);

	/* ---- Document preview ----------------------------------------------- */
	--ld-doc-fg: var(--ld-neutral-12);
	--ld-doc-code-bg: var(--ld-neutral-2);

	/* ---- Plugin tokens --------------------------------------------------- */
	--ld-shiki-surface-bg: var(--ld-neutral-2);
	--ld-shiki-surface-border: var(--ld-neutral-5);
	--ld-shiki-surface-padding: 0.85rem 1rem;

	--ld-callout-note-bg: var(--ld-neutral-2);
	--ld-callout-note-border: var(--ld-neutral-7);
	--ld-callout-info-bg: var(--ld-accent-3);
	--ld-callout-info-border: var(--ld-accent-7);
	--ld-callout-tip-bg: var(--ld-success-3);
	--ld-callout-tip-border: var(--ld-success-8);
	--ld-callout-important-bg: var(--ld-accent-4);
	--ld-callout-important-border: var(--ld-accent-8);
	--ld-callout-warning-bg: var(--ld-warning-3);
	--ld-callout-warning-border: var(--ld-warning-8);
	--ld-callout-bug-bg: var(--ld-danger-3);
	--ld-callout-bug-border: var(--ld-danger-8);
	--ld-callout-never-bg: var(--ld-danger-4);
	--ld-callout-never-border: var(--ld-danger-9);
}
