body,
body *,
body *::before,
body *::after {
	transition:
		background-color var(--transition-theme-speed) var(--transition-theme-ease),
		color var(--transition-theme-speed) var(--transition-theme-ease),
		border-color var(--transition-theme-speed) var(--transition-theme-ease),
		box-shadow var(--transition-theme-speed) var(--transition-theme-ease),
		fill var(--transition-theme-speed) var(--transition-theme-ease),
		stroke var(--transition-theme-speed) var(--transition-theme-ease),
		opacity var(--transition-theme-speed) var(--transition-theme-ease);
}

.theme-mint-light {
	--color-brand: #5db88e;
	--color-brand-hover: #3f8f6a;
	--color-brand-soft: #f0f6f2;

	--color-logo: var(--color-brand);

	--color-surface: #f7fbf8;
	--color-surface-raised: #ffffff;
	--color-surface-muted: #f0f6f2;
	--color-surface-hover: #e9f3ee;

	--color-text: #17201b;
	--color-text-muted: #6b7a71;
	--color-text-inverse: #ffffff;

	--color-border: #d8e2dc;
	--color-border-strong: #aebfb5;

	--color-success: #2f7d55;
	--color-success-soft: #e5f6ee;
	--color-success-strong: #236b46;
	--color-success-text: #1f6040;
	--color-success-border: #a9dfc2;

	--color-caution: #d95d20;
	--color-caution-soft: #fde9df;
	--color-caution-strong: #b94712;
	--color-caution-text: #9c3d0e;
	--color-caution-border: #efb394;

	--color-warning: #b54708;
	--color-warning-soft: #fff3d6;
	--color-warning-strong: #9a3d06;
	--color-warning-text: #854000;
	--color-warning-border: #efcf88;

	--color-danger: #b42318;
	--color-danger-soft: #fde7e4;
	--color-danger-strong: #961c13;
	--color-danger-text: #8f1d14;
	--color-danger-border: #efb0aa;

	--color-info: #2563eb;
	--color-info-soft: #e8f0ff;
	--color-info-strong: #1d4ed8;
	--color-info-text: #1e4fc4;
	--color-info-border: #b7ccfa;

	--color-neutral: #65736b;
	--color-neutral-soft: #eef2ef;

	--color-input-background: #ffffff;
	--color-input-focus-background: #ffffff;
	--color-input-border: #cfded5;
	--color-input-focus-border: #5db88e;
	--color-input-focus-ring: rgba(93, 184, 142, 0.25);

	--color-button-background: #5db88e;
	--color-button-hover: #4ca77d;
	--color-button-text: #ffffff;

	--color-action-confirm: #4fae78;
	--color-action-cancel: var(--color-text-muted);
	--color-action-revert: #d39a45;

	--color-shadow: rgba(0, 0, 0, 0.14);
	--color-overlay: rgba(0, 0, 0, 0.45);

	--color-table-header: color-mix(in srgb, var(--color-brand) 10%, var(--color-surface));
	--color-table-row: var(--color-surface-raised);
	--color-table-row-alt: var(--color-surface);
	--color-table-row-hover: color-mix(in srgb, var(--color-brand) 10%, var(--color-surface));
}

.theme-mint-dark {
	--color-brand: #5db88e;
	--color-brand-hover: #75d6aa;
	--color-brand-soft: #263f33;

	--color-logo: var(--color-brand-hover);

	--color-surface: #2c322f;
	--color-surface-raised: #333b36;
	--color-surface-muted: #3a443e;
	--color-surface-hover: #46524a;

	--color-text: #eaf4ee;
	--color-text-muted: #b4c4ba;
	--color-text-inverse: #17201b;

	--color-border: #46524a;
	--color-border-strong: #5a6a60;

	--color-success: #7fd6a4;
	--color-success-soft: #254437;
	--color-success-strong: #4fad79;
	--color-success-text: #9be3b9;
	--color-success-border: #3e7258;

	--color-caution: #f28a4b;
	--color-caution-soft: #4a2f22;
	--color-caution-strong: #cf6c33;
	--color-caution-text: #ffb685;
	--color-caution-border: #7d4d34;

	--color-warning: #f7c56b;
	--color-warning-soft: #46381e;
	--color-warning-strong: #d69b32;
	--color-warning-text: #f8d68d;
	--color-warning-border: #725b2d;

	--color-danger: #ff9b8f;
	--color-danger-soft: #4a2926;
	--color-danger-strong: #d9574c;
	--color-danger-text: #ffb0a7;
	--color-danger-border: #77413c;

	--color-info: #8fb6ff;
	--color-info-soft: #27364f;
	--color-info-strong: #5e8ee8;
	--color-info-text: #adc8ff;
	--color-info-border: #405c8c;

	--color-neutral: #b4c4ba;
	--color-neutral-soft: #3a443e;

	--color-input-background: #2c322f;
	--color-input-focus-background: #303a34;
	--color-input-border: #4a584f;
	--color-input-focus-border: #75d6aa;
	--color-input-focus-ring: rgba(117, 214, 170, 0.25);

	--color-button-background: #5db88e;
	--color-button-hover: #75d6aa;
	--color-button-text: #17201b;

	--color-action-confirm: #4fae78;
	--color-action-cancel: var(--color-text-muted);
	--color-action-revert: #d39a45;

	--color-shadow: rgba(0, 0, 0, 0.28);
	--color-overlay: rgba(0, 0, 0, 0.55);

	--color-table-header: color-mix(in srgb, var(--color-brand) 10%, var(--color-surface));
	--color-table-row: var(--color-surface-muted);
	--color-table-row-alt: color-mix(in srgb, var(--color-surface) 20%, var(--color-surface-muted));
	--color-table-row-hover: color-mix(in srgb, var(--color-brand) 10%, var(--color-surface));
}

.theme-mint-obsidian {
	--color-brand: #5db88e;
	--color-brand-hover: #75d6aa;
	--color-brand-soft: #1d3a2d;

	--color-logo: var(--color-brand-hover);

	--color-surface: #0f1512;
	--color-surface-raised: #151f19;
	--color-surface-muted: #1b2821;
	--color-surface-hover: #24362c;

	--color-text: #eaf4ee;
	--color-text-muted: #9aaba1;
	--color-text-inverse: #0f1512;

	--color-border: #2a3830;
	--color-border-strong: #405247;

	--color-success: #7fd6a4;
	--color-success-soft: #193528;
	--color-success-strong: #479d70;
	--color-success-text: #98dfb6;
	--color-success-border: #315c46;

	--color-caution: #ee7d41;
	--color-caution-soft: #3b261d;
	--color-caution-strong: #c85f2d;
	--color-caution-text: #ffad79;
	--color-caution-border: #68412d;

	--color-warning: #f7c56b;
	--color-warning-soft: #3a2d16;
	--color-warning-strong: #c58a2b;
	--color-warning-text: #f5ce7c;
	--color-warning-border: #5e4924;

	--color-danger: #ff9b8f;
	--color-danger-soft: #3a1f1d;
	--color-danger-strong: #cc4e43;
	--color-danger-text: #ffaaa0;
	--color-danger-border: #663631;

	--color-info: #8fb6ff;
	--color-info-soft: #1b2942;
	--color-info-strong: #527fd4;
	--color-info-text: #a7c4ff;
	--color-info-border: #354e78;

	--color-neutral: #9aaba1;
	--color-neutral-soft: #1c2621;

	--color-input-background: #101714;
	--color-input-focus-background: #16231c;
	--color-input-border: #35473d;
	--color-input-focus-border: #75d6aa;
	--color-input-focus-ring: rgba(117, 214, 170, 0.25);

	--color-button-background: #5db88e;
	--color-button-hover: #75d6aa;
	--color-button-text: #0f1512;

	--color-shadow: rgba(0, 0, 0, 0.45);
	--color-overlay: rgba(0, 0, 0, 0.65);
}