Files
fusion/packages/dashboard/app/public/theme-data.css
gsxdsm a4049971e5 FN-7401: add Glass Silver dashboard theme
Adds a frosted silver/gray dashboard color theme across app, desktop, and release metadata.

- Register glass-silver in shared theme types, selector options, and startup validation hooks.
- Add Glass Silver CSS tokens, swatch styling, and dashboard/desktop stylesheet preload coverage.
- Cover theme registration, dropdown/selector rendering, theme persistence, and CSS token invariants with tests.
- Document the new dashboard theme and publish a minor changeset for @runfusion/fusion.

Files changed:
 .changeset/fn-7401-glass-silver-theme.md           |   7 +
 docs/dashboard-guide.md                            |   3 +-
 packages/core/src/types.ts                         |   2 +
 .../app/__tests__/glass-silver-theme.test.ts       | 155 ++++++++++++++++++++
 .../dashboard/app/components/ThemeSelector.css     |  14 ++
 .../components/__tests__/ThemeDropdown.test.tsx    |  13 ++
 .../components/__tests__/ThemeSelector.test.tsx    |  16 +++
 packages/dashboard/app/components/themeOptions.ts  |   1 +
 .../dashboard/app/hooks/__tests__/useTheme.test.ts |  15 ++
 packages/dashboard/app/index.html                  |   2 +-
 packages/dashboard/app/public/theme-data.css       | 156 +++++++++++++++++++++
 packages/desktop/src/renderer/index.html           |   1 +
 12 files changed, 383 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-7401

Fusion-Task-Lineage: e64f14cc-590e-458b-adf6-7c9baa488157

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 18:01:17 -07:00

7155 lines
205 KiB
CSS

/* ============================================================
COLOR THEMES (data-color-theme="...")
Contract: every dark/light theme block defines --surface-hover
so component hover states can use var(--surface-hover) without
per-selector fallbacks or mode-specific overrides.
FNXC:DashboardTheming 2026-06-15-00:00:
Theme token translucency uses color-mix(in srgb, var(--token) N%, transparent) or exact literal color-mix values for glass surfaces. Raw RGB alpha color functions are banned outside var() fallbacks by FN-6489.
============================================================ */
/* OCEAN - Deep blues and cyans */
[data-color-theme="ocean"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #00b8d4;
--in-progress: #00e5ff;
--in-progress-rgb: 0, 229, 255;
--in-review: #00c853;
--triage: #ffab00;
--done: #607d8b;
--color-success: #00c853;
--color-error: #ff5252;
--cta-bg: #00897b;
--cta-border: #00a08a;
--cta-text: #fff;
--cta-bg-hover: #00a08a;
--cta-border-hover: #00c853;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #0288d1;
--accent: #00b8d4;
--accent-text: #fff;
}
[data-color-theme="ocean"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #0097a7;
--in-progress: #00bcd4;
--in-progress-rgb: 0, 188, 212;
--in-review: #4caf50;
--triage: #f57c00;
--done: #546e7a;
--color-success: #4caf50;
--color-error: #f44336;
--cta-bg: #00796b;
--cta-border: #00897b;
--cta-text: #fff;
--cta-bg-hover: #00897b;
--cta-border-hover: #4caf50;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #0277bd;
--accent: #0097a7;
--accent-text: #fff;
}
/* FOREST - Deep greens and emeralds */
[data-color-theme="forest"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #34d399;
--in-progress: #10b981;
--in-progress-rgb: 16, 185, 129;
--in-review: #22c55e;
--triage: #fbbf24;
--done: #6b7280;
--color-success: #22c55e;
--color-error: #ef4444;
--cta-bg: #16a34a;
--cta-border: #22c55e;
--cta-text: #fff;
--cta-bg-hover: #22c55e;
--cta-border-hover: #34d399;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #29b6f6;
--accent: #16a34a;
--accent-text: #fff;
}
[data-color-theme="forest"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #059669;
--in-progress: #047857;
--in-progress-rgb: 4, 120, 87;
--in-review: #16a34a;
--triage: #d97706;
--done: #4b5563;
--color-success: #16a34a;
--color-error: #dc2626;
--cta-bg: #15803d;
--cta-border: #16a34a;
--cta-text: #fff;
--cta-bg-hover: #16a34a;
--cta-border-hover: #22c55e;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #0288d1;
--accent: #15803d;
--accent-text: #fff;
}
/* SUNSET - Warm oranges and reds */
[data-color-theme="sunset"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #ffab00;
--in-progress: #ff6d00;
--in-progress-rgb: 255, 109, 0;
--in-review: #ff9100;
--triage: #ff3d00;
--done: #8d6e63;
--color-success: #ff9100;
--color-error: #ff1744;
--cta-bg: #e65100;
--cta-border: #ff6d00;
--cta-text: #fff;
--cta-bg-hover: #ff6d00;
--cta-border-hover: #ff9100;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2196f3;
--accent: #ff6d00;
--accent-text: #fff;
}
[data-color-theme="sunset"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #e65100;
--in-progress: #ef6c00;
--in-progress-rgb: 239, 108, 0;
--in-review: #f57c00;
--triage: #d84315;
--done: #5d4037;
--color-success: #f57c00;
--color-error: #c62828;
--cta-bg: #bf360c;
--cta-border: #e65100;
--cta-text: #fff;
--cta-bg-hover: #e65100;
--cta-border-hover: #ff6d00;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #1565c0;
--accent: #e65100;
--accent-text: #fff;
}
/* BERRY - Purple/pink tones */
[data-color-theme="berry"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #e040fb;
--in-progress: #00e5ff;
--in-progress-rgb: 0, 229, 255;
--in-review: #b388ff;
--triage: #ff4081;
--done: #9575cd;
--color-success: #b388ff;
--color-error: #ff5252;
--cta-bg: #9c27b0;
--cta-border: #ab47bc;
--cta-text: #fff;
--cta-bg-hover: #ab47bc;
--cta-border-hover: #ce93d8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #7c4dff;
--accent: #9c27b0;
--accent-text: #fff;
}
[data-color-theme="berry"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #7b1fa2;
--in-progress: #00bcd4;
--in-progress-rgb: 0, 188, 212;
--in-review: #9c27b0;
--triage: #c2185b;
--done: #673ab7;
--color-success: #9c27b0;
--color-error: #d32f2f;
--cta-bg: #7b1fa2;
--cta-border: #9c27b0;
--cta-text: #fff;
--cta-bg-hover: #9c27b0;
--cta-border-hover: #ab47bc;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #6200ea;
--accent: #7b1fa2;
--accent-text: #fff;
}
/* MONOCHROME - Pure grays */
[data-color-theme="monochrome"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #9e9e9e;
--in-progress: #bdbdbd;
--in-progress-rgb: 189, 189, 189;
--in-review: #e0e0e0;
--triage: #757575;
--done: #616161;
--color-success: #e0e0e0;
--color-error: #ff5252;
--cta-bg: #757575;
--cta-border: #9e9e9e;
--cta-text: #fff;
--cta-bg-hover: #9e9e9e;
--cta-border-hover: #bdbdbd;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #64b5f6;
--accent: #b0b0b0;
--accent-text: #fff;
}
[data-color-theme="monochrome"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #616161;
--in-progress: #757575;
--in-progress-rgb: 117, 117, 117;
--in-review: #9e9e9e;
--triage: #424242;
--done: #424242;
--color-success: #616161;
--color-error: #d32f2f;
--cta-bg: #616161;
--cta-border: #757575;
--cta-text: #fff;
--cta-bg-hover: #757575;
--cta-border-hover: #9e9e9e;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #1976d2;
--accent: #616161;
--accent-text: #fff;
}
/* SLATE - Cool blue-gray tones */
[data-color-theme="slate"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #7c8fa4;
--in-progress: #94a3b8;
--in-progress-rgb: 148, 163, 184;
--in-review: #cbd5e1;
--triage: #64748b;
--done: #64748b;
--color-success: #cbd5e1;
--color-error: #f87171;
--cta-bg: #64748b;
--cta-border: #7c8fa4;
--cta-text: #fff;
--cta-bg-hover: #7c8fa4;
--cta-border-hover: #94a3b8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border-hover) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #60a5fa;
--accent: #64748b;
--accent-text: #fff;
}
[data-color-theme="slate"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #475569;
--in-progress: #64748b;
--in-progress-rgb: 100, 116, 139;
--in-review: #64748b;
--triage: #334155;
--done: #64748b;
--color-success: #475569;
--color-error: #dc2626;
--cta-bg: #475569;
--cta-border: #64748b;
--cta-text: #fff;
--cta-bg-hover: #64748b;
--cta-border-hover: #94a3b8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #3b82f6;
--accent: #475569;
--accent-text: #fff;
}
/* ASH - Warm medium grays */
[data-color-theme="ash"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #9ca3af;
--in-progress: #a8a29e;
--in-progress-rgb: 168, 162, 158;
--in-review: #d4d4d8;
--triage: #78716c;
--done: #71717a;
--color-success: #d4d4d8;
--color-error: #fca5a5;
--cta-bg: #78716c;
--cta-border: #9ca3af;
--cta-text: #fff;
--cta-bg-hover: #9ca3af;
--cta-border-hover: #a8a29e;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border-hover) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #93c5fd;
--accent: #a1887f;
--accent-text: #fff;
}
[data-color-theme="ash"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #57534e;
--in-progress: #78716c;
--in-progress-rgb: 120, 113, 108;
--in-review: #78716c;
--triage: #44403c;
--done: #78716c;
--color-success: #57534e;
--color-error: #ef4444;
--cta-bg: #57534e;
--cta-border: #78716c;
--cta-text: #fff;
--cta-bg-hover: #78716c;
--cta-border-hover: #a8a29e;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #3b82f6;
--accent: #6d5d53;
--accent-text: #fff;
}
/*
FNXC:DashboardTheming 2026-06-19-15:39:
Air must be the calmest, flattest theme: near-monochrome tokens, a restrained blue-gray accent, a clean system sans stack, and faint color-mix borders.
The "remove unnecessary UI" requirement is intentionally CSS-only and scoped to [data-color-theme="air"] so shared DOM affordances remain present while borders, shadows, and decorative chrome flatten visually.
FNXC:DashboardTheming 2026-06-22-14:24:
Air should hide horizontal divider lines across headers, modal title bars, footers, and tab rails while preserving vertical pane dividers and component outlines. Keep this as theme CSS so the DOM and hit targets remain shared across themes.
*/
[data-color-theme="air"] {
--bg: #0f1115;
--surface: #151820;
--card: #171a22;
--card-hover: color-mix(in srgb, var(--card) 92%, var(--text) 8%);
--text: #eef1f4;
--text-muted: #9aa3ad;
--border: color-mix(in srgb, var(--text) 8%, transparent);
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--font-primary: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
--todo: #a5adba;
--in-progress: #b8c0cc;
--in-progress-rgb: 184, 192, 204;
--in-review: #c7ced8;
--triage: #8d96a3;
--done: #737d8a;
--color-success: #c7ced8;
--color-error: #d8a7a7;
--color-warning: #b7ad9a;
--color-info: #a8bfd8;
--cta-bg: #dbe5ef;
--cta-border: color-mix(in srgb, var(--cta-bg) 72%, transparent);
--cta-text: #111318;
--cta-bg-hover: #eef3f8;
--cta-border-hover: color-mix(in srgb, var(--cta-bg-hover) 82%, transparent);
--cta-glow: 0 0 0 transparent;
--logo-accent: var(--accent);
--accent: #a8bfd8;
--accent-text: #111318;
}
[data-color-theme="air"][data-theme="light"] {
--bg: #fbfbfa;
--surface: #ffffff;
--card: #ffffff;
--card-hover: color-mix(in srgb, var(--card) 96%, var(--text) 4%);
--text: #1f242b;
--text-muted: #69717c;
--border: color-mix(in srgb, var(--text) 8%, transparent);
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--font-primary: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
--todo: #667085;
--in-progress: #4f5f73;
--in-progress-rgb: 79, 95, 115;
--in-review: #5f6f83;
--triage: #7a7368;
--done: #8a929f;
--color-success: #526273;
--color-error: #b45f5f;
--color-warning: #8a7760;
--color-info: #536b86;
--cta-bg: #26313d;
--cta-border: color-mix(in srgb, var(--cta-bg) 76%, transparent);
--cta-text: #ffffff;
--cta-bg-hover: #354253;
--cta-border-hover: color-mix(in srgb, var(--cta-bg-hover) 84%, transparent);
--cta-glow: 0 0 0 transparent;
--logo-accent: var(--accent);
--accent: #536b86;
--accent-text: #ffffff;
}
[data-color-theme="air"] .card,
[data-color-theme="air"] .column,
[data-color-theme="air"] .panel,
[data-color-theme="air"] .modal,
[data-color-theme="air"] .task-card {
border-color: var(--border);
box-shadow: 0 0 0 transparent;
background-image: none;
}
[data-color-theme="air"] .btn,
[data-color-theme="air"] .btn-icon,
[data-color-theme="air"] .input,
[data-color-theme="air"] input,
[data-color-theme="air"] textarea,
[data-color-theme="air"] select {
border-color: var(--border);
box-shadow: 0 0 0 transparent;
}
[data-color-theme="air"] .btn:hover,
[data-color-theme="air"] .btn-icon:hover,
[data-color-theme="air"] .card:hover,
[data-color-theme="air"] .task-card:hover {
box-shadow: 0 0 0 transparent;
}
[data-color-theme="air"] .badge,
[data-color-theme="air"] .pill,
[data-color-theme="air"] .tag {
border-color: var(--border);
box-shadow: 0 0 0 transparent;
}
[data-color-theme="air"] .view-header,
[data-color-theme="air"] .header,
[data-color-theme="air"] .modal-header,
[data-color-theme="air"] .modal-actions,
[data-color-theme="air"] .modal-footer,
[data-color-theme="air"] .floating-window-header,
[data-color-theme="air"] .settings-section-heading,
[data-color-theme="air"] .settings-section-divider,
[data-color-theme="air"] .runtime-card__tabs,
[data-color-theme="air"] .runtime-card__footer,
[data-color-theme="air"] .mailbox-thread-detail-header,
[data-color-theme="air"] .chat-sidebar-footer,
[data-color-theme="air"] .task-detail-tabs,
[data-color-theme="air"] .task-detail-section,
[data-color-theme="air"] .workflow-output-modal-header,
[data-color-theme="air"] .file-browser-modal-header,
[data-color-theme="air"] .activity-log-header {
border-top-color: transparent;
border-bottom-color: transparent;
}
/*
FNXC:DashboardTheming 2026-06-22-14:24:
Shadcn-family themes should read as seamless app shells: header and modal-title separators disappear, but vertical pane borders and local control outlines stay intact.
*/
[data-color-theme^="shadcn"] .view-header,
[data-color-theme^="shadcn"] .header,
[data-color-theme^="shadcn"] .modal-header,
[data-color-theme^="shadcn"] .modal-actions,
[data-color-theme^="shadcn"] .modal-footer,
[data-color-theme^="shadcn"] .floating-window-header,
[data-color-theme^="shadcn"] .settings-section-heading,
[data-color-theme^="shadcn"] .settings-section-divider,
[data-color-theme^="shadcn"] .workflow-output-modal-header,
[data-color-theme^="shadcn"] .file-browser-modal-header,
[data-color-theme^="shadcn"] .activity-log-header {
border-top-color: transparent;
border-bottom-color: transparent;
}
/*
FNXC:DashboardTheming 2026-06-23-00:07:
All shadcn-family themes should use one UI font family across app chrome, forms, popovers, and buttons. Native controls do not reliably inherit the document font in every browser, so pin shadcn UI controls to --font-primary while preserving --font-mono for code-oriented text.
*/
[data-color-theme^="shadcn"],
[data-color-theme^="shadcn"] body,
[data-color-theme^="shadcn"] button,
[data-color-theme^="shadcn"] input,
[data-color-theme^="shadcn"] select,
[data-color-theme^="shadcn"] textarea,
[data-color-theme^="shadcn"] optgroup,
[data-color-theme^="shadcn"] .btn,
[data-color-theme^="shadcn"] .input,
[data-color-theme^="shadcn"] .select,
[data-color-theme^="shadcn"] .modal,
[data-color-theme^="shadcn"] .card {
font-family: var(--font-primary);
}
[data-color-theme^="shadcn"] code,
[data-color-theme^="shadcn"] pre,
[data-color-theme^="shadcn"] kbd,
[data-color-theme^="shadcn"] samp,
[data-color-theme^="shadcn"] .font-mono {
font-family: var(--font-mono);
}
/* GRAPHITE - Dark graphite blacks */
[data-color-theme="graphite"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #a0a0a0;
--in-progress: #b8b8b8;
--in-progress-rgb: 184, 184, 184;
--in-review: #d0d0d0;
--triage: #808080;
--done: #686868;
--color-success: #d0d0d0;
--color-error: #ff6b6b;
--cta-bg: #808080;
--cta-border: #a0a0a0;
--cta-text: #fff;
--cta-bg-hover: #a0a0a0;
--cta-border-hover: #b8b8b8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border-hover) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #7ab8ff;
--accent: #a0a0a0;
--accent-text: #fff;
}
[data-color-theme="graphite"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #404040;
--in-progress: #606060;
--in-progress-rgb: 96, 96, 96;
--in-review: #606060;
--triage: #2a2a2a;
--done: #606060;
--color-success: #404040;
--color-error: #dc2626;
--cta-bg: #404040;
--cta-border: #606060;
--cta-text: #fff;
--cta-bg-hover: #606060;
--cta-border-hover: #808080;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2563eb;
--accent: #606060;
--accent-text: #fff;
}
/* EMBER - Dark graphite with orange accent */
[data-color-theme="ember"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #a0a0a0;
--in-progress: #b8b8b8;
--in-progress-rgb: 184, 184, 184;
--in-review: #d0d0d0;
--triage: #808080;
--done: #686868;
--color-success: #d0d0d0;
--color-error: #ff6b6b;
--cta-bg: #d4622a;
--cta-border: #e8773a;
--cta-text: #fff;
--cta-bg-hover: #e8773a;
--cta-border-hover: #f09050;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: #e8773a;
--color-info: #e8773a;
--accent: #e8773a;
--accent-text: #fff;
}
[data-color-theme="ember"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #404040;
--in-progress: #606060;
--in-progress-rgb: 96, 96, 96;
--in-review: #606060;
--triage: #2a2a2a;
--done: #606060;
--color-success: #404040;
--color-error: #dc2626;
--cta-bg: #c05820;
--cta-border: #d4622a;
--cta-text: #fff;
--cta-bg-hover: #d4622a;
--cta-border-hover: #e07030;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-bg) 30%, transparent);
--logo-accent: #d4622a;
--color-info: #c05820;
--accent: #d4622a;
--accent-text: #fff;
}
/* SILVER - Light silvery grays */
[data-color-theme="silver"] {
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--todo: #b0b0b0;
--in-progress: #c0c0c0;
--in-progress-rgb: 192, 192, 192;
--in-review: #e8e8e8;
--triage: #909090;
--done: #a0a0a0;
--color-success: #e8e8e8;
--color-error: #ff8080;
--cta-bg: #909090;
--cta-border: #b0b0b0;
--cta-text: #fff;
--cta-bg-hover: #b0b0b0;
--cta-border-hover: #c0c0c0;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border-hover) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #90c0ff;
--accent: #b8b8b8;
--accent-text: #fff;
}
[data-color-theme="silver"][data-theme="light"] {
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--todo: #525252;
--in-progress: #737373;
--in-progress-rgb: 115, 115, 115;
--in-review: #737373;
--triage: #404040;
--done: #737373;
--color-success: #525252;
--color-error: #dc2626;
--cta-bg: #525252;
--cta-border: #737373;
--cta-text: #fff;
--cta-bg-hover: #737373;
--cta-border-hover: #909090;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2563eb;
--accent: #707070;
--accent-text: #fff;
}
/* ZEN - Minimal, clean monochrome with subtle accents */
[data-color-theme="zen"] {
--bg: #0c0c0c;
--surface: #111111;
--card: #1a1a1a;
--card-hover: #222222;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #2a2a2a;
--text: #e0e0e0;
--text-muted: #808080;
--text-dim: #555555;
--todo: #6b7b8c;
--in-progress: #7a8590;
--in-progress-rgb: 122, 133, 144;
--in-review: #6b8c7a;
--triage: #8c7b6b;
--done: #666666;
--color-success: #6b8c7a;
--color-error: #8c6b6b;
/* CTA tokens — muted green to match zen restraint */
--cta-bg: #5a7a6a;
--cta-border: #6b8c7a;
--cta-text: #fff;
--cta-bg-hover: #6b8c7a;
--cta-border-hover: #7a9a8a;
--cta-glow: none;
--logo-accent: var(--todo);
--color-info: #5c7c8a;
/* Minimal glow effects */
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 1px var(--border);
--accent: #7da88e;
--accent-text: #fff;
}
[data-color-theme="zen"][data-theme="light"] {
--bg: #f5f5f5;
--surface: #fafafa;
--card: #ffffff;
--card-hover: #f0f0f0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e0e0e0;
--text: #333333;
--text-muted: #777777;
--text-dim: #999999;
--todo: #5a6a7a;
--in-progress: #6a757f;
--in-progress-rgb: 106, 117, 127;
--in-review: #5a7a6a;
--triage: #7a6a5a;
--done: #555555;
--color-success: #5a7a6a;
--color-error: #7a5a5a;
/* CTA tokens — muted green to match zen restraint */
--cta-bg: #4a6a5a;
--cta-border: #5a7a6a;
--cta-text: #fff;
--cta-bg-hover: #5a7a6a;
--cta-border-hover: #6b8c7a;
--cta-glow: none;
--logo-accent: var(--todo);
--color-info: #4a6a7a;
/* Minimal glow effects */
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 1px var(--border);
--accent: #4a6b56;
--accent-text: #fff;
}
/* HIGH CONTRAST - Extreme contrast for accessibility */
[data-color-theme="high-contrast"] {
--bg: #000000;
--surface: #0a0a0a;
--card: #141414;
--card-hover: #1f1f1f;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #ffffff;
--text: #ffffff;
--text-muted: #cccccc;
--text-dim: #999999;
--todo: #00ffff;
--in-progress: #ffff00;
--in-progress-rgb: 255, 255, 0;
--in-review: #00ff00;
--triage: #ffff00;
--done: #ffffff;
--color-success: #00ff00;
--color-error: #ff0000;
--cta-bg: #00cc00;
--cta-border: #00ff00;
--cta-text: #000000;
--cta-bg-hover: #00ff00;
--cta-border-hover: #33ff33;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 40%, transparent);
--logo-accent: var(--todo);
--color-info: #00ccff;
--accent: #00ff00;
--accent-text: #000000;
}
[data-color-theme="high-contrast"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f0f0f0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #000000;
--text: #000000;
--text-muted: #333333;
--text-dim: #666666;
--todo: #0066ff;
--in-progress: #0066cc;
--in-progress-rgb: 0, 102, 204;
--in-review: #009900;
--triage: #cc6600;
--done: #000000;
--color-success: #009900;
--color-error: #cc0000;
--cta-bg: #006600;
--cta-border: #009900;
--cta-text: #ffffff;
--cta-bg-hover: #009900;
--cta-border-hover: #00cc00;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #0055cc;
--accent: #00cc00;
--accent-text: #ffffff;
}
/* INDUSTRIAL - Technical engineering spec sheet aesthetic */
[data-color-theme="industrial"] {
--bg: #0c0c0c;
--surface: #141414;
--card: #1a1a1a;
--card-hover: #222222;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #333333;
--text: #e8e8e8;
--text-muted: #888888;
--text-dim: #555555;
--todo: #ff6b00;
--in-progress: #ff8c00;
--in-progress-rgb: 255, 140, 0;
--in-review: #00bcd4;
--triage: #ff5722;
--done: #666666;
--color-success: #00bcd4;
--color-error: #ff3d00;
--cta-bg: #e65100;
--cta-border: #ff6b00;
--cta-text: #fff;
--cta-bg-hover: #ff6b00;
--cta-border-hover: #ff8c00;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #42a5f5;
--accent: #ff6d00;
--accent-text: #fff;
}
[data-color-theme="industrial"][data-theme="light"] {
--bg: #f0f0f0;
--surface: #fafafa;
--card: #ffffff;
--card-hover: #f5f5f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d0d0d0;
--text: #1a1a1a;
--text-muted: #666666;
--text-dim: #999999;
--todo: #e65100;
--in-progress: #ef6c00;
--in-progress-rgb: 239, 108, 0;
--in-review: #0097a7;
--triage: #d84315;
--done: #555555;
--color-success: #0097a7;
--color-error: #d84315;
--cta-bg: #bf360c;
--cta-border: #e65100;
--cta-text: #fff;
--cta-bg-hover: #e65100;
--cta-border-hover: #ff6b00;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #1565c0;
--accent: #bf360c;
--accent-text: #fff;
}
/* SOLARIZED - Classic solarized palette */
[data-color-theme="solarized"] {
--bg: #002b36;
--surface: #073642;
--card: #083c4a;
--card-hover: #094c5e;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #586e75;
--text: #839496;
--text-muted: #657b83;
--text-dim: #586e75;
--todo: #268bd2;
--in-progress: #2aa198;
--in-progress-rgb: 42, 161, 152;
--in-review: #859900;
--triage: #b58900;
--done: #93a1a1;
--color-success: #859900;
--color-error: #dc322f;
--cta-bg: #719e00;
--cta-border: #859900;
--cta-text: #002b36;
--cta-bg-hover: #859900;
--cta-border-hover: #a4b800;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2aa198;
--accent: #859900;
--accent-text: #002b36;
}
[data-color-theme="solarized"][data-theme="light"] {
--bg: #fdf6e3;
--surface: #eee8d5;
--card: #f5efdc;
--card-hover: #e8e2d0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #93a1a1;
--text: #586e75;
--text-muted: #657b83;
--text-dim: #839496;
--todo: #268bd2;
--in-progress: #2aa198;
--in-progress-rgb: 42, 161, 152;
--in-review: #859900;
--triage: #b58900;
--done: #93a1a1;
--color-success: #859900;
--color-error: #dc322f;
--cta-bg: #6a8800;
--cta-border: #719e00;
--cta-text: #fdf6e3;
--cta-bg-hover: #719e00;
--cta-border-hover: #859900;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2aa198;
--accent: #637b00;
--accent-text: #fdf6e3;
}
/* FACTORY - Industrial Mission Control Theme
A comprehensive design theme that overrides fonts, spacing, and
component styling for an industrial sci-fi aesthetic.
*/
[data-color-theme="factory"] {
--bg: #0a0a0a;
--surface: #111111;
--card: #1a1a1a;
--card-hover: #222222;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #333333;
--text: #e5e5e5;
--text-muted: #888888;
--text-dim: #555555;
--todo: #f59e0b;
--in-progress: #06b6d4;
--in-progress-rgb: 6, 182, 212;
--in-review: #22c55e;
--triage: #ef4444;
--done: #6b7280;
--color-success: #22c55e;
--color-error: #ef4444;
--color-muted: #6b7280;
--font-primary: "SF Mono", "JetBrains Mono", "Fira Code", Monaco, Consolas, monospace;
--font-mono: "SF Mono", "JetBrains Mono", "Fira Code", Monaco, Consolas, monospace;
--space-xs: 2px;
--space-sm: 4px;
--space-md: 8px;
--space-lg: 12px;
--space-xl: 16px;
--space-2xl: 24px;
--radius-sm: 2px;
--radius-md: 4px;
--radius-lg: 6px;
--radius-xl: 8px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 2px;
--card-padding: 8px 10px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-sm);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 1px color-mix(in srgb, #000000 50%, transparent);
--shadow-md: 0 2px 4px color-mix(in srgb, #000000 50%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 60%, transparent);
--shadow-glow: 0 0 6px color-mix(in srgb, var(--todo) 40%, transparent);
--glow-success: 0 0 8px color-mix(in srgb, var(--color-success) 35%, transparent);
--glow-warning: 0 0 8px color-mix(in srgb, var(--todo) 40%, transparent);
--glow-danger: 0 0 8px color-mix(in srgb, var(--color-error) 35%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--todo) 18%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--todo) 30%, transparent);
--shadow: var(--shadow-lg);
--transition-instant: 0.05s ease;
--transition-fast: 0.1s ease;
--transition-normal: 0.15s ease;
--transition-slow: 0.2s ease;
--cta-bg: #d97706;
--cta-border: #f59e0b;
--cta-text: #0a0a0a;
--cta-bg-hover: #f59e0b;
--cta-border-hover: #fbbf24;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 40%, transparent);
--logo-accent: var(--todo);
--color-info: #2563eb;
--accent: #d97706;
--accent-text: #0a0a0a;
}
[data-color-theme="factory"][data-theme="light"] {
--bg: #f5f5f5;
--surface: #ffffff;
--card: #fafafa;
--card-hover: #f0f0f0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d4d4d4;
--text: #1a1a1a;
--text-muted: #666666;
--text-dim: #999999;
--todo: #d97706;
--in-progress: #0891b2;
--in-progress-rgb: 8, 145, 178;
--in-review: #16a34a;
--triage: #dc2626;
--done: #4b5563;
--color-success: #16a34a;
--color-error: #dc2626;
--color-muted: #6b7280;
--shadow-sm: 0 1px 1px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-md: 0 2px 4px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 15%, transparent);
--shadow-glow: 0 0 6px color-mix(in srgb, var(--todo) 30%, transparent);
--glow-success: 0 0 8px color-mix(in srgb, var(--color-success) 25%, transparent);
--glow-warning: 0 0 8px color-mix(in srgb, var(--todo) 30%, transparent);
--glow-danger: 0 0 8px color-mix(in srgb, var(--color-error) 22%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--todo) 14%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--todo) 24%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #b45309;
--cta-border: #d97706;
--cta-text: #fff;
--cta-bg-hover: #d97706;
--cta-border-hover: #f59e0b;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #1d4ed8;
--accent: #b45309;
--accent-text: #fff;
}
[data-color-theme="factory"] .card.agent-active {
border-color: var(--todo);
box-shadow:
0 0 6px color-mix(in srgb, #f59e0b 50%, transparent),
0 0 12px color-mix(in srgb, #f59e0b 20%, transparent);
animation: agent-glow-factory 2s ease-in-out infinite;
}
@keyframes agent-glow-factory {
0%,
100% {
box-shadow:
0 0 6px color-mix(in srgb, #f59e0b 50%, transparent),
0 0 12px color-mix(in srgb, #f59e0b 20%, transparent);
}
50% {
box-shadow:
0 0 10px color-mix(in srgb, #f59e0b 70%, transparent),
0 0 20px color-mix(in srgb, #f59e0b 40%, transparent);
}
}
[data-color-theme="factory"][data-theme="light"] .card.agent-active {
box-shadow:
0 0 6px color-mix(in srgb, #d97706 40%, transparent),
0 0 12px color-mix(in srgb, #d97706 15%, transparent);
animation: agent-glow-factory-light 2s ease-in-out infinite;
}
@keyframes agent-glow-factory-light {
0%,
100% {
box-shadow:
0 0 6px color-mix(in srgb, #d97706 40%, transparent),
0 0 12px color-mix(in srgb, #d97706 15%, transparent);
}
50% {
box-shadow:
0 0 10px color-mix(in srgb, #d97706 60%, transparent),
0 0 20px color-mix(in srgb, #d97706 30%, transparent);
}
}
[data-color-theme="factory"] .btn {
text-transform: uppercase;
letter-spacing: 0.05em;
font-weight: 600;
}
[data-color-theme="factory"] .btn-primary,
[data-color-theme="factory"] .btn-task-create {
background: transparent;
border-color: var(--todo);
color: var(--todo);
box-shadow: none;
}
[data-color-theme="factory"] .btn-primary:hover,
[data-color-theme="factory"] .btn-task-create:hover {
background: var(--todo);
color: var(--bg);
box-shadow: var(--shadow-glow);
}
[data-color-theme="factory"] .card,
[data-color-theme="factory"] .column {
border-width: 2px;
}
[data-color-theme="factory"] .column-header h2 {
text-transform: uppercase;
letter-spacing: 0.1em;
font-size: 0.75rem;
}
[data-color-theme="factory"] .column-count,
[data-color-theme="factory"] .card-id {
font-family: var(--font-mono);
font-weight: 700;
}
/*
FNXC:Theming 2026-06-19-00:00:
Factory Mono is a monochrome Factory variant for FN-6724: keep the industrial monospace density, uppercase controls, and 2px border system while limiting color to red accents and removing pulsing glow effects.
*/
[data-color-theme="factory-mono"] {
--bg: #0a0a0a;
--surface: #111111;
--card: #1a1a1a;
--card-hover: #222222;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #333333;
--text: #f5f5f5;
--text-muted: #a3a3a3;
--text-dim: #737373;
--todo: #d4d4d4;
--in-progress: #a3a3a3;
--in-progress-rgb: 163, 163, 163;
--in-review: #e5e5e5;
--triage: #737373;
--done: #525252;
--color-success: #e5e5e5;
--color-warning: #d4d4d4;
--color-error: #ef4444;
--color-muted: #737373;
--font-primary: "SF Mono", "JetBrains Mono", "Fira Code", Monaco, Consolas, monospace;
--font-mono: "SF Mono", "JetBrains Mono", "Fira Code", Monaco, Consolas, monospace;
--space-xs: 2px;
--space-sm: 4px;
--space-md: 8px;
--space-lg: 12px;
--space-xl: 16px;
--space-2xl: 24px;
--radius-sm: 2px;
--radius-md: 4px;
--radius-lg: 6px;
--radius-xl: 8px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 2px;
--card-padding: 8px 10px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-sm);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: none;
--shadow-md: 0 1px 0 color-mix(in srgb, #000000 60%, transparent);
--shadow-lg: 0 1px 0 color-mix(in srgb, #000000 70%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 var(--btn-border-width) color-mix(in srgb, var(--accent) 30%, transparent);
--focus-ring-strong: 0 0 0 var(--btn-border-width) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--transition-instant: 0.05s ease;
--transition-fast: 0.1s ease;
--transition-normal: 0.15s ease;
--transition-slow: 0.2s ease;
--cta-bg: transparent;
--cta-border: #ef4444;
--cta-text: #ef4444;
--cta-bg-hover: #ef4444;
--cta-border-hover: #f87171;
--cta-glow: none;
--logo-accent: #ef4444;
--color-info: #d4d4d4;
--accent: #ef4444;
--accent-text: #0a0a0a;
}
[data-color-theme="factory-mono"][data-theme="light"] {
--bg: #f5f5f5;
--surface: #ffffff;
--card: #fafafa;
--card-hover: #f0f0f0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d4d4d4;
--text: #1a1a1a;
--text-muted: #525252;
--text-dim: #737373;
--todo: #525252;
--in-progress: #737373;
--in-progress-rgb: 115, 115, 115;
--in-review: #404040;
--triage: #a3a3a3;
--done: #8a8a8a;
--color-success: #404040;
--color-warning: #525252;
--color-error: #dc2626;
--color-muted: #737373;
--shadow-sm: none;
--shadow-md: 0 1px 0 color-mix(in srgb, var(--text) 12%, transparent);
--shadow-lg: 0 1px 0 color-mix(in srgb, var(--text) 18%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 var(--btn-border-width) color-mix(in srgb, var(--accent) 25%, transparent);
--focus-ring-strong: 0 0 0 var(--btn-border-width) color-mix(in srgb, var(--accent) 38%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: transparent;
--cta-border: #dc2626;
--cta-text: #dc2626;
--cta-bg-hover: #dc2626;
--cta-border-hover: #ef4444;
--cta-glow: none;
--logo-accent: #dc2626;
--color-info: #525252;
--accent: #dc2626;
--accent-text: #ffffff;
}
[data-color-theme="factory-mono"] .card.agent-active {
border-color: var(--accent);
box-shadow: none;
animation: none;
}
[data-color-theme="factory-mono"][data-theme="light"] .card.agent-active {
border-color: var(--accent);
box-shadow: none;
animation: none;
}
[data-color-theme="factory-mono"] .btn {
text-transform: uppercase;
letter-spacing: 0.05em;
font-weight: 600;
}
[data-color-theme="factory-mono"] .btn-primary,
[data-color-theme="factory-mono"] .btn-task-create {
background: transparent;
border-color: var(--accent);
color: var(--accent);
box-shadow: none;
}
[data-color-theme="factory-mono"] .btn-primary:hover,
[data-color-theme="factory-mono"] .btn-task-create:hover {
background: var(--accent);
color: var(--accent-text);
box-shadow: none;
}
[data-color-theme="factory-mono"] .card,
[data-color-theme="factory-mono"] .column {
border-width: var(--btn-border-width);
}
[data-color-theme="factory-mono"] .column-header h2 {
text-transform: uppercase;
letter-spacing: 0.1em;
font-size: 0.75rem;
}
[data-color-theme="factory-mono"] .column-count,
[data-color-theme="factory-mono"] .card-id {
font-family: var(--font-mono);
font-weight: 700;
}
/*
FNXC:Theming 2026-06-19-15:35:
The shadcn theme for FN-6747 approximates the shadcn/ui new-york zinc aesthetic with sans-serif typography, tokenized comfortable spacing, 1px borders, subtle flat shadows, neutralized glow tokens, and a solid primary button instead of Factory-style outlined uppercase controls.
FNXC:Theming 2026-06-20-00:00:
FN-6758 makes the default shadcn highlight/accent orange for focus rings, active borders, links, and selection affordances while preserving the zinc-neutral surfaces, neutralized glows, and solid neutral primary button.
*/
[data-color-theme="shadcn"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #71717a;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--transition-instant: 0.05s ease;
--transition-fast: 0.1s ease;
--transition-normal: 0.15s ease;
--transition-slow: 0.2s ease;
--cta-bg: #fafafa;
--cta-border: #fafafa;
--cta-text: #18181b;
--cta-bg-hover: #e4e4e7;
--cta-border-hover: #e4e4e7;
--cta-glow: none;
--logo-accent: var(--text);
--color-info: #38bdf8;
--accent: #f97316;
--accent-text: #ffffff;
}
[data-color-theme="shadcn"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #a1a1aa;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #18181b;
--cta-border: #18181b;
--cta-text: #fafafa;
--cta-bg-hover: #27272a;
--cta-border-hover: #27272a;
--cta-glow: none;
--logo-accent: var(--text);
--color-info: #0284c7;
--accent: #ea580c;
--accent-text: #ffffff;
}
/*
FNXC:DashboardTheming 2026-06-30-00:00:
Shadcn Ember combines shadcn/ui zinc structure with Ember's warm orange/graphite CTA, status, accent, and info colors. It is the default for unset installs while explicit legacy theme ids stay valid.
FNXC:DashboardTheming 2026-06-30-21:41:
Shadcn Ember must keep shadcn structure but match every Ember-owned color token byte-for-byte against Ember in dark and light mode so the default theme cannot drift from Ember's palette.
*/
[data-color-theme="shadcn-ember"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #a0a0a0;
--in-progress: #b8b8b8;
--in-progress-rgb: 184, 184, 184;
--in-review: #d0d0d0;
--triage: #808080;
--done: #686868;
--color-success: #d0d0d0;
--color-warning: #f59e0b;
--color-error: #ff6b6b;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--transition-instant: 0.05s ease;
--transition-fast: 0.1s ease;
--transition-normal: 0.15s ease;
--transition-slow: 0.2s ease;
--cta-bg: #d4622a;
--cta-border: #e8773a;
--cta-text: #fff;
--cta-bg-hover: #e8773a;
--cta-border-hover: #f09050;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: #e8773a;
--color-info: #e8773a;
--accent: #e8773a;
--accent-text: #fff;
}
[data-color-theme="shadcn-ember"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #404040;
--in-progress: #606060;
--in-progress-rgb: 96, 96, 96;
--in-review: #606060;
--triage: #2a2a2a;
--done: #606060;
--color-success: #404040;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #c05820;
--cta-border: #d4622a;
--cta-text: #fff;
--cta-bg-hover: #d4622a;
--cta-border-hover: #e07030;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-bg) 30%, transparent);
--logo-accent: #d4622a;
--color-info: #c05820;
--accent: #d4622a;
--accent-text: #fff;
}
/*
FNXC:Theming 2026-06-20-18:30:
FN-6816 keeps shadcn-custom visually identical to the base shadcn theme until sanitized user token overrides are applied inline by the dashboard theme hook.
*/
[data-color-theme="shadcn-custom"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #71717a;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--transition-instant: 0.05s ease;
--transition-fast: 0.1s ease;
--transition-normal: 0.15s ease;
--transition-slow: 0.2s ease;
--cta-bg: #fafafa;
--cta-border: #fafafa;
--cta-text: #18181b;
--cta-bg-hover: #e4e4e7;
--cta-border-hover: #e4e4e7;
--cta-glow: none;
--logo-accent: var(--text);
--color-info: #38bdf8;
--accent: #f97316;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-custom"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #a1a1aa;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #18181b;
--cta-border: #18181b;
--cta-text: #fafafa;
--cta-bg-hover: #27272a;
--cta-border-hover: #27272a;
--cta-glow: none;
--logo-accent: var(--text);
--color-info: #0284c7;
--accent: #ea580c;
--accent-text: #ffffff;
}
[data-color-theme="shadcn"] .card.agent-active,
[data-color-theme="shadcn-ember"] .card.agent-active,
[data-color-theme="shadcn-custom"] .card.agent-active {
border-color: var(--accent);
box-shadow: none;
animation: none;
}
[data-color-theme="shadcn"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-ember"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-custom"][data-theme="light"] .card.agent-active {
border-color: var(--accent);
box-shadow: none;
animation: none;
}
[data-color-theme="shadcn"] .btn,
[data-color-theme="shadcn-ember"] .btn,
[data-color-theme="shadcn-custom"] .btn {
text-transform: none;
letter-spacing: normal;
font-weight: 500;
}
[data-color-theme="shadcn"] .btn-primary,
[data-color-theme="shadcn"] .btn-task-create,
[data-color-theme="shadcn-ember"] .btn-primary,
[data-color-theme="shadcn-ember"] .btn-task-create,
[data-color-theme="shadcn-custom"] .btn-primary,
[data-color-theme="shadcn-custom"] .btn-task-create {
background: var(--cta-bg);
border-color: var(--cta-border);
color: var(--cta-text);
box-shadow: none;
}
[data-color-theme="shadcn"] .btn-primary:hover,
[data-color-theme="shadcn"] .btn-task-create:hover,
[data-color-theme="shadcn-ember"] .btn-primary:hover,
[data-color-theme="shadcn-ember"] .btn-task-create:hover,
[data-color-theme="shadcn-custom"] .btn-primary:hover,
[data-color-theme="shadcn-custom"] .btn-task-create:hover {
background: var(--cta-bg-hover);
border-color: var(--cta-border-hover);
color: var(--cta-text);
box-shadow: none;
}
[data-color-theme="shadcn"] .card,
[data-color-theme="shadcn"] .column,
[data-color-theme="shadcn-ember"] .card,
[data-color-theme="shadcn-ember"] .column,
[data-color-theme="shadcn-custom"] .card,
[data-color-theme="shadcn-custom"] .column {
border-width: var(--btn-border-width);
}
/*
FNXC:Theming 2026-06-19-16:12:
FN-6756 adds shadcn color-family themes as exact zinc-neutral shadcn variants with only primary/accent/CTA/info tokens changed for the named color. Shadcn Mono keeps red as the single accent while desaturating workflow statuses toward zinc gray, and Shadcn Black removes chroma from all status tokens for a pure black-and-white option.
*/
[data-color-theme="shadcn-blue"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #71717a;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #3b82f6;
--cta-border: #3b82f6;
--cta-text: #ffffff;
--cta-bg-hover: #2563eb;
--cta-border-hover: #2563eb;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #3b82f6;
--accent: #3b82f6;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-blue"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #a1a1aa;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #2563eb;
--cta-border: #2563eb;
--cta-text: #ffffff;
--cta-bg-hover: #1d4ed8;
--cta-border-hover: #1d4ed8;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #2563eb;
--accent: #2563eb;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-green"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #71717a;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #22c55e;
--cta-border: #22c55e;
--cta-text: #ffffff;
--cta-bg-hover: #16a34a;
--cta-border-hover: #16a34a;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #22c55e;
--accent: #22c55e;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-green"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #a1a1aa;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #16a34a;
--cta-border: #16a34a;
--cta-text: #ffffff;
--cta-bg-hover: #15803d;
--cta-border-hover: #15803d;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #16a34a;
--accent: #16a34a;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-red"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #71717a;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #ef4444;
--cta-border: #ef4444;
--cta-text: #ffffff;
--cta-bg-hover: #dc2626;
--cta-border-hover: #dc2626;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #ef4444;
--accent: #ef4444;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-red"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #a1a1aa;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #dc2626;
--cta-border: #dc2626;
--cta-text: #ffffff;
--cta-bg-hover: #b91c1c;
--cta-border-hover: #b91c1c;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #dc2626;
--accent: #dc2626;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-purple"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #71717a;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #8b5cf6;
--cta-border: #8b5cf6;
--cta-text: #ffffff;
--cta-bg-hover: #7c3aed;
--cta-border-hover: #7c3aed;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #8b5cf6;
--accent: #8b5cf6;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-purple"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #a1a1aa;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #7c3aed;
--cta-border: #7c3aed;
--cta-text: #ffffff;
--cta-bg-hover: #6d28d9;
--cta-border-hover: #6d28d9;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #7c3aed;
--accent: #7c3aed;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-pink"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #71717a;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #ec4899;
--cta-border: #ec4899;
--cta-text: #ffffff;
--cta-bg-hover: #db2777;
--cta-border-hover: #db2777;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #ec4899;
--accent: #ec4899;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-pink"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #a1a1aa;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #db2777;
--cta-border: #db2777;
--cta-text: #ffffff;
--cta-bg-hover: #be185d;
--cta-border-hover: #be185d;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #db2777;
--accent: #db2777;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-orange"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #71717a;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #f97316;
--cta-border: #f97316;
--cta-text: #ffffff;
--cta-bg-hover: #ea580c;
--cta-border-hover: #ea580c;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #f97316;
--accent: #f97316;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-orange"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #a1a1aa;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #ea580c;
--cta-border: #ea580c;
--cta-text: #ffffff;
--cta-bg-hover: #c2410c;
--cta-border-hover: #c2410c;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #ea580c;
--accent: #ea580c;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-yellow"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #71717a;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #eab308;
--cta-border: #eab308;
--cta-text: #18181b;
--cta-bg-hover: #ca8a04;
--cta-border-hover: #ca8a04;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #eab308;
--accent: #eab308;
--accent-text: #18181b;
}
[data-color-theme="shadcn-yellow"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #a1a1aa;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #ca8a04;
--cta-border: #ca8a04;
--cta-text: #18181b;
--cta-bg-hover: #a16207;
--cta-border-hover: #a16207;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #ca8a04;
--accent: #ca8a04;
--accent-text: #18181b;
}
/*
FNXC:DashboardTheming 2026-06-20-00:00:
FN-6813 makes the shadcn mono theme a color family: shadcn-mono-red preserves the renamed legacy red accent while the other mono variants reuse the same zinc-neutral tokens and swap only accent/CTA values. Legacy stored shadcn-mono selections remap in bootstrap/theme hooks so users keep the red mono theme instead of falling back to default.
*/
[data-color-theme="shadcn-mono-red"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #a1a1aa;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #71717a;
--triage: #a1a1aa;
--done: #52525b;
--color-success: #71717a;
--color-warning: #a1a1aa;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #ef4444;
--cta-border: #ef4444;
--cta-text: #ffffff;
--cta-bg-hover: #dc2626;
--cta-border-hover: #dc2626;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #a1a1aa;
--accent: #ef4444;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-red"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #71717a;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #52525b;
--triage: #71717a;
--done: #a1a1aa;
--color-success: #71717a;
--color-warning: #71717a;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #dc2626;
--cta-border: #dc2626;
--cta-text: #ffffff;
--cta-bg-hover: #b91c1c;
--cta-border-hover: #b91c1c;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #71717a;
--accent: #dc2626;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-blue"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #a1a1aa;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #71717a;
--triage: #a1a1aa;
--done: #52525b;
--color-success: #71717a;
--color-warning: #a1a1aa;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #3b82f6;
--cta-border: #3b82f6;
--cta-text: #ffffff;
--cta-bg-hover: #2563eb;
--cta-border-hover: #2563eb;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #a1a1aa;
--accent: #3b82f6;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-blue"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #71717a;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #52525b;
--triage: #71717a;
--done: #a1a1aa;
--color-success: #71717a;
--color-warning: #71717a;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #2563eb;
--cta-border: #2563eb;
--cta-text: #ffffff;
--cta-bg-hover: #1d4ed8;
--cta-border-hover: #1d4ed8;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #71717a;
--accent: #2563eb;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-green"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #a1a1aa;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #71717a;
--triage: #a1a1aa;
--done: #52525b;
--color-success: #71717a;
--color-warning: #a1a1aa;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #22c55e;
--cta-border: #22c55e;
--cta-text: #ffffff;
--cta-bg-hover: #16a34a;
--cta-border-hover: #16a34a;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #a1a1aa;
--accent: #22c55e;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-green"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #71717a;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #52525b;
--triage: #71717a;
--done: #a1a1aa;
--color-success: #71717a;
--color-warning: #71717a;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #16a34a;
--cta-border: #16a34a;
--cta-text: #ffffff;
--cta-bg-hover: #15803d;
--cta-border-hover: #15803d;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #71717a;
--accent: #16a34a;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-purple"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #a1a1aa;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #71717a;
--triage: #a1a1aa;
--done: #52525b;
--color-success: #71717a;
--color-warning: #a1a1aa;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #8b5cf6;
--cta-border: #8b5cf6;
--cta-text: #ffffff;
--cta-bg-hover: #7c3aed;
--cta-border-hover: #7c3aed;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #a1a1aa;
--accent: #8b5cf6;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-purple"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #71717a;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #52525b;
--triage: #71717a;
--done: #a1a1aa;
--color-success: #71717a;
--color-warning: #71717a;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #7c3aed;
--cta-border: #7c3aed;
--cta-text: #ffffff;
--cta-bg-hover: #6d28d9;
--cta-border-hover: #6d28d9;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #71717a;
--accent: #7c3aed;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-pink"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #a1a1aa;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #71717a;
--triage: #a1a1aa;
--done: #52525b;
--color-success: #71717a;
--color-warning: #a1a1aa;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #ec4899;
--cta-border: #ec4899;
--cta-text: #ffffff;
--cta-bg-hover: #db2777;
--cta-border-hover: #db2777;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #a1a1aa;
--accent: #ec4899;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-pink"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #71717a;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #52525b;
--triage: #71717a;
--done: #a1a1aa;
--color-success: #71717a;
--color-warning: #71717a;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #db2777;
--cta-border: #db2777;
--cta-text: #ffffff;
--cta-bg-hover: #be185d;
--cta-border-hover: #be185d;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #71717a;
--accent: #db2777;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-orange"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #a1a1aa;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #71717a;
--triage: #a1a1aa;
--done: #52525b;
--color-success: #71717a;
--color-warning: #a1a1aa;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #f97316;
--cta-border: #f97316;
--cta-text: #ffffff;
--cta-bg-hover: #ea580c;
--cta-border-hover: #ea580c;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #a1a1aa;
--accent: #f97316;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-orange"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #71717a;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #52525b;
--triage: #71717a;
--done: #a1a1aa;
--color-success: #71717a;
--color-warning: #71717a;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #ea580c;
--cta-border: #ea580c;
--cta-text: #ffffff;
--cta-bg-hover: #c2410c;
--cta-border-hover: #c2410c;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #71717a;
--accent: #ea580c;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-mono-yellow"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #a1a1aa;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #71717a;
--triage: #a1a1aa;
--done: #52525b;
--color-success: #71717a;
--color-warning: #a1a1aa;
--color-error: #ef4444;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #eab308;
--cta-border: #eab308;
--cta-text: #18181b;
--cta-bg-hover: #ca8a04;
--cta-border-hover: #ca8a04;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #a1a1aa;
--accent: #eab308;
--accent-text: #18181b;
}
[data-color-theme="shadcn-mono-yellow"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #71717a;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #52525b;
--triage: #71717a;
--done: #a1a1aa;
--color-success: #71717a;
--color-warning: #71717a;
--color-error: #dc2626;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #ca8a04;
--cta-border: #ca8a04;
--cta-text: #18181b;
--cta-bg-hover: #a16207;
--cta-border-hover: #a16207;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #71717a;
--accent: #ca8a04;
--accent-text: #18181b;
}
[data-color-theme="shadcn-black"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #d4d4d8;
--in-progress: #a1a1aa;
--in-progress-rgb: 161, 161, 170;
--in-review: #a1a1aa;
--triage: #71717a;
--done: #52525b;
--color-success: #a1a1aa;
--color-warning: #71717a;
--color-error: #d4d4d8;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #fafafa;
--cta-border: #fafafa;
--cta-text: #18181b;
--cta-bg-hover: #e4e4e7;
--cta-border-hover: #e4e4e7;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #fafafa;
--accent: #fafafa;
--accent-text: #18181b;
}
[data-color-theme="shadcn-black"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #18181b;
--in-progress: #3f3f46;
--in-progress-rgb: 63, 63, 70;
--in-review: #52525b;
--triage: #71717a;
--done: #a1a1aa;
--color-success: #3f3f46;
--color-warning: #71717a;
--color-error: #18181b;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #09090b;
--cta-border: #09090b;
--cta-text: #fafafa;
--cta-bg-hover: #27272a;
--cta-border-hover: #27272a;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #09090b;
--accent: #09090b;
--accent-text: #fafafa;
}
/*
FNXC:DashboardTheming 2026-06-20-00:00:
Shadcn Gray is the fully-neutral zinc variant: it keeps the shadcn surfaces and button treatment while using only zinc/gray accent, CTA, and info tokens instead of red, blue, or other chroma.
*/
[data-color-theme="shadcn-gray"] {
--bg: #09090b;
--surface: #0c0c0e;
--card: #18181b;
--card-hover: #1f1f23;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #27272a;
--text: #fafafa;
--text-muted: #a1a1aa;
--text-dim: #52525b;
--todo: #a1a1aa;
--in-progress: #71717a;
--in-progress-rgb: 113, 113, 122;
--in-review: #71717a;
--triage: #a1a1aa;
--done: #52525b;
--color-success: #71717a;
--color-warning: #a1a1aa;
--color-error: #d4d4d8;
--color-muted: #71717a;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #71717a;
--cta-border: #71717a;
--cta-text: #ffffff;
--cta-bg-hover: #52525b;
--cta-border-hover: #52525b;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #a1a1aa;
--accent: #a1a1aa;
--accent-text: #18181b;
}
[data-color-theme="shadcn-gray"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f4f4f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e4e4e7;
--text: #09090b;
--text-muted: #71717a;
--text-dim: #a1a1aa;
--todo: #71717a;
--in-progress: #52525b;
--in-progress-rgb: 82, 82, 91;
--in-review: #52525b;
--triage: #71717a;
--done: #a1a1aa;
--color-success: #52525b;
--color-warning: #71717a;
--color-error: #3f3f46;
--color-muted: #71717a;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #52525b;
--cta-border: #52525b;
--cta-text: #ffffff;
--cta-bg-hover: #3f3f46;
--cta-border-hover: #3f3f46;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #52525b;
--accent: #52525b;
--accent-text: #ffffff;
}
/*
FNXC:Theming 2026-06-21-00:00:
FN-6815 adds Shadcn Gray Blue as the slate-neutral shadcn variant: the whole surface ramp moves from zinc to blue-gray slate while CTA/accent tokens use muted slate-blue and the shadcn flat-shadow/no-glow treatment stays intact.
*/
[data-color-theme="shadcn-gray-blue"] {
--bg: #020617;
--surface: #0b1220;
--card: #0f172a;
--card-hover: #1e293b;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #1e293b;
--text: #f8fafc;
--text-muted: #94a3b8;
--text-dim: #475569;
--todo: #60a5fa;
--in-progress: #38bdf8;
--in-progress-rgb: 56, 189, 248;
--in-review: #34d399;
--triage: #f59e0b;
--done: #64748b;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-muted: #64748b;
--font-primary: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
--space-xs: 4px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 16px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius: var(--radius-md);
--btn-padding: 6px 12px;
--btn-border-width: 1px;
--card-padding: 10px 12px;
--modal-padding: var(--space-md) var(--space-lg);
--header-padding: var(--space-sm) var(--space-lg);
--column-gap: var(--space-md);
--board-padding: var(--space-md) var(--space-lg);
--shadow-sm: 0 1px 2px color-mix(in srgb, #000000 18%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, #000000 22%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, #000000 24%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 35%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 45%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #64748b;
--cta-border: #64748b;
--cta-text: #ffffff;
--cta-bg-hover: #475569;
--cta-border-hover: #475569;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #64748b;
--accent: #64748b;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-gray-blue"][data-theme="light"] {
--bg: #ffffff;
--surface: #ffffff;
--card: #ffffff;
--card-hover: #f1f5f9;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e2e8f0;
--text: #0f172a;
--text-muted: #64748b;
--text-dim: #94a3b8;
--todo: #2563eb;
--in-progress: #0284c7;
--in-progress-rgb: 2, 132, 199;
--in-review: #16a34a;
--triage: #d97706;
--done: #94a3b8;
--color-success: #16a34a;
--color-warning: #d97706;
--color-error: #dc2626;
--color-muted: #64748b;
--shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
--shadow-md: 0 1px 3px color-mix(in srgb, var(--text) 10%, transparent);
--shadow-lg: 0 4px 12px color-mix(in srgb, var(--text) 12%, transparent);
--shadow-glow: none;
--glow-success: none;
--glow-warning: none;
--glow-danger: none;
--focus-ring: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 18%, transparent);
--focus-ring-strong: 0 0 0 calc(var(--btn-border-width) * 3) color-mix(in srgb, var(--accent) 28%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #475569;
--cta-border: #475569;
--cta-text: #ffffff;
--cta-bg-hover: #334155;
--cta-border-hover: #334155;
--cta-glow: none;
--logo-accent: var(--accent);
--color-info: #475569;
--accent: #475569;
--accent-text: #ffffff;
}
[data-color-theme="shadcn-blue"] .card.agent-active,
[data-color-theme="shadcn-green"] .card.agent-active,
[data-color-theme="shadcn-red"] .card.agent-active,
[data-color-theme="shadcn-purple"] .card.agent-active,
[data-color-theme="shadcn-pink"] .card.agent-active,
[data-color-theme="shadcn-orange"] .card.agent-active,
[data-color-theme="shadcn-yellow"] .card.agent-active,
[data-color-theme="shadcn-mono-red"] .card.agent-active,
[data-color-theme="shadcn-mono-blue"] .card.agent-active,
[data-color-theme="shadcn-mono-green"] .card.agent-active,
[data-color-theme="shadcn-mono-purple"] .card.agent-active,
[data-color-theme="shadcn-mono-pink"] .card.agent-active,
[data-color-theme="shadcn-mono-orange"] .card.agent-active,
[data-color-theme="shadcn-mono-yellow"] .card.agent-active,
[data-color-theme="shadcn-black"] .card.agent-active,
[data-color-theme="shadcn-gray"] .card.agent-active,
[data-color-theme="shadcn-gray-blue"] .card.agent-active {
border-color: var(--accent);
box-shadow: none;
animation: none;
}
[data-color-theme="shadcn-blue"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-green"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-red"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-purple"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-pink"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-orange"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-yellow"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-mono-red"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-mono-blue"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-mono-green"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-mono-purple"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-mono-pink"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-mono-orange"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-mono-yellow"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-black"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-gray"][data-theme="light"] .card.agent-active,
[data-color-theme="shadcn-gray-blue"][data-theme="light"] .card.agent-active {
border-color: var(--accent);
box-shadow: none;
animation: none;
}
[data-color-theme="shadcn-blue"] .btn,
[data-color-theme="shadcn-green"] .btn,
[data-color-theme="shadcn-red"] .btn,
[data-color-theme="shadcn-purple"] .btn,
[data-color-theme="shadcn-pink"] .btn,
[data-color-theme="shadcn-orange"] .btn,
[data-color-theme="shadcn-yellow"] .btn,
[data-color-theme="shadcn-mono-red"] .btn,
[data-color-theme="shadcn-mono-blue"] .btn,
[data-color-theme="shadcn-mono-green"] .btn,
[data-color-theme="shadcn-mono-purple"] .btn,
[data-color-theme="shadcn-mono-pink"] .btn,
[data-color-theme="shadcn-mono-orange"] .btn,
[data-color-theme="shadcn-mono-yellow"] .btn,
[data-color-theme="shadcn-black"] .btn,
[data-color-theme="shadcn-gray"] .btn,
[data-color-theme="shadcn-gray-blue"] .btn {
text-transform: none;
letter-spacing: normal;
font-weight: 500;
}
[data-color-theme="shadcn-blue"] .btn-primary,
[data-color-theme="shadcn-blue"] .btn-task-create,
[data-color-theme="shadcn-green"] .btn-primary,
[data-color-theme="shadcn-green"] .btn-task-create,
[data-color-theme="shadcn-red"] .btn-primary,
[data-color-theme="shadcn-red"] .btn-task-create,
[data-color-theme="shadcn-purple"] .btn-primary,
[data-color-theme="shadcn-purple"] .btn-task-create,
[data-color-theme="shadcn-pink"] .btn-primary,
[data-color-theme="shadcn-pink"] .btn-task-create,
[data-color-theme="shadcn-orange"] .btn-primary,
[data-color-theme="shadcn-orange"] .btn-task-create,
[data-color-theme="shadcn-yellow"] .btn-primary,
[data-color-theme="shadcn-yellow"] .btn-task-create,
[data-color-theme="shadcn-mono-red"] .btn-primary,
[data-color-theme="shadcn-mono-red"] .btn-task-create,
[data-color-theme="shadcn-mono-blue"] .btn-primary,
[data-color-theme="shadcn-mono-blue"] .btn-task-create,
[data-color-theme="shadcn-mono-green"] .btn-primary,
[data-color-theme="shadcn-mono-green"] .btn-task-create,
[data-color-theme="shadcn-mono-purple"] .btn-primary,
[data-color-theme="shadcn-mono-purple"] .btn-task-create,
[data-color-theme="shadcn-mono-pink"] .btn-primary,
[data-color-theme="shadcn-mono-pink"] .btn-task-create,
[data-color-theme="shadcn-mono-orange"] .btn-primary,
[data-color-theme="shadcn-mono-orange"] .btn-task-create,
[data-color-theme="shadcn-mono-yellow"] .btn-primary,
[data-color-theme="shadcn-mono-yellow"] .btn-task-create,
[data-color-theme="shadcn-black"] .btn-primary,
[data-color-theme="shadcn-black"] .btn-task-create,
[data-color-theme="shadcn-gray"] .btn-primary,
[data-color-theme="shadcn-gray"] .btn-task-create,
[data-color-theme="shadcn-gray-blue"] .btn-primary,
[data-color-theme="shadcn-gray-blue"] .btn-task-create {
background: var(--cta-bg);
border-color: var(--cta-border);
color: var(--cta-text);
box-shadow: none;
}
[data-color-theme="shadcn-blue"] .btn-primary:hover,
[data-color-theme="shadcn-blue"] .btn-task-create:hover,
[data-color-theme="shadcn-green"] .btn-primary:hover,
[data-color-theme="shadcn-green"] .btn-task-create:hover,
[data-color-theme="shadcn-red"] .btn-primary:hover,
[data-color-theme="shadcn-red"] .btn-task-create:hover,
[data-color-theme="shadcn-purple"] .btn-primary:hover,
[data-color-theme="shadcn-purple"] .btn-task-create:hover,
[data-color-theme="shadcn-pink"] .btn-primary:hover,
[data-color-theme="shadcn-pink"] .btn-task-create:hover,
[data-color-theme="shadcn-orange"] .btn-primary:hover,
[data-color-theme="shadcn-orange"] .btn-task-create:hover,
[data-color-theme="shadcn-yellow"] .btn-primary:hover,
[data-color-theme="shadcn-yellow"] .btn-task-create:hover,
[data-color-theme="shadcn-mono-red"] .btn-primary:hover,
[data-color-theme="shadcn-mono-red"] .btn-task-create:hover,
[data-color-theme="shadcn-mono-blue"] .btn-primary:hover,
[data-color-theme="shadcn-mono-blue"] .btn-task-create:hover,
[data-color-theme="shadcn-mono-green"] .btn-primary:hover,
[data-color-theme="shadcn-mono-green"] .btn-task-create:hover,
[data-color-theme="shadcn-mono-purple"] .btn-primary:hover,
[data-color-theme="shadcn-mono-purple"] .btn-task-create:hover,
[data-color-theme="shadcn-mono-pink"] .btn-primary:hover,
[data-color-theme="shadcn-mono-pink"] .btn-task-create:hover,
[data-color-theme="shadcn-mono-orange"] .btn-primary:hover,
[data-color-theme="shadcn-mono-orange"] .btn-task-create:hover,
[data-color-theme="shadcn-mono-yellow"] .btn-primary:hover,
[data-color-theme="shadcn-mono-yellow"] .btn-task-create:hover,
[data-color-theme="shadcn-black"] .btn-primary:hover,
[data-color-theme="shadcn-black"] .btn-task-create:hover,
[data-color-theme="shadcn-gray"] .btn-primary:hover,
[data-color-theme="shadcn-gray"] .btn-task-create:hover,
[data-color-theme="shadcn-gray-blue"] .btn-primary:hover,
[data-color-theme="shadcn-gray-blue"] .btn-task-create:hover {
background: var(--cta-bg-hover);
border-color: var(--cta-border-hover);
color: var(--cta-text);
box-shadow: none;
}
[data-color-theme="shadcn-blue"] .card,
[data-color-theme="shadcn-blue"] .column,
[data-color-theme="shadcn-green"] .card,
[data-color-theme="shadcn-green"] .column,
[data-color-theme="shadcn-red"] .card,
[data-color-theme="shadcn-red"] .column,
[data-color-theme="shadcn-purple"] .card,
[data-color-theme="shadcn-purple"] .column,
[data-color-theme="shadcn-pink"] .card,
[data-color-theme="shadcn-pink"] .column,
[data-color-theme="shadcn-orange"] .card,
[data-color-theme="shadcn-orange"] .column,
[data-color-theme="shadcn-yellow"] .card,
[data-color-theme="shadcn-yellow"] .column,
[data-color-theme="shadcn-mono-red"] .card,
[data-color-theme="shadcn-mono-red"] .column,
[data-color-theme="shadcn-mono-blue"] .card,
[data-color-theme="shadcn-mono-blue"] .column,
[data-color-theme="shadcn-mono-green"] .card,
[data-color-theme="shadcn-mono-green"] .column,
[data-color-theme="shadcn-mono-purple"] .card,
[data-color-theme="shadcn-mono-purple"] .column,
[data-color-theme="shadcn-mono-pink"] .card,
[data-color-theme="shadcn-mono-pink"] .column,
[data-color-theme="shadcn-mono-orange"] .card,
[data-color-theme="shadcn-mono-orange"] .column,
[data-color-theme="shadcn-mono-yellow"] .card,
[data-color-theme="shadcn-mono-yellow"] .column,
[data-color-theme="shadcn-black"] .card,
[data-color-theme="shadcn-black"] .column,
[data-color-theme="shadcn-gray"] .card,
[data-color-theme="shadcn-gray"] .column,
[data-color-theme="shadcn-gray-blue"] .card,
[data-color-theme="shadcn-gray-blue"] .column {
border-width: var(--btn-border-width);
}
/* AYU - Popular code editor theme with dark and light variants */
[data-color-theme="ayu"] {
--bg: #0f1419;
--surface: #131d27;
--card: #1a2634;
--card-hover: #232d3b;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #304357;
--text: #bfbdb6;
--text-muted: #565b66;
--text-dim: #4d5666;
--todo: #39bae6;
--in-progress: #ffb454;
--in-progress-rgb: 255, 180, 84;
--in-review: #7ee787;
--triage: #f2966b;
--done: #6c7986;
--color-success: #7ee787;
--color-error: #f07178;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #5cb85c;
--cta-border: #7ee787;
--cta-text: #0f1419;
--cta-bg-hover: #7ee787;
--cta-border-hover: #9af09a;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #39bae6;
--accent: #5cb85c;
--accent-text: #0f1419;
}
[data-color-theme="ayu"][data-theme="light"] {
--bg: #fafafa;
--surface: #f3f3f3;
--card: #ffffff;
--card-hover: #f0f0f0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e0e0e0;
--text: #5c6166;
--text-muted: #8a9199;
--text-dim: #a0a0a0;
--todo: #007acc;
--in-progress: #ff8f40;
--in-progress-rgb: 255, 143, 64;
--in-review: #86b300;
--triage: #fa8d3e;
--done: #8a9199;
--color-success: #86b300;
--color-error: #f07178;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 15%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #6d9a00;
--cta-border: #86b300;
--cta-text: #fff;
--cta-bg-hover: #86b300;
--cta-border-hover: #9cc800;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #007acc;
--accent: #3a8a3a;
--accent-text: #fff;
}
/* ONE DARK - Atom's iconic dark theme */
[data-color-theme="one-dark"] {
--bg: #282c34;
--surface: #21252b;
--card: #2c313a;
--card-hover: #353b45;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #3e4451;
--text: #abb2bf;
--text-muted: #636d83;
--text-dim: #5c6370;
--todo: #61afef;
--in-progress: #00e5ff;
--in-progress-rgb: 0, 229, 255;
--in-review: #98c379;
--triage: #e5c07b;
--done: #828997;
--color-success: #98c379;
--color-error: #e06c75;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #7ec77a;
--cta-border: #98c379;
--cta-text: #282c34;
--cta-bg-hover: #98c379;
--cta-border-hover: #b5d4a8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #61afef;
--accent: #7ec77a;
--accent-text: #282c34;
}
/* ONE DARK - Light variant */
[data-color-theme="one-dark"][data-theme="light"] {
--bg: #fafafa;
--surface: #f0f0f0;
--card: #ffffff;
--card-hover: #f5f5f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d4d4d4;
--text: #383a42;
--text-muted: #636d83;
--text-dim: #9da5b4;
--todo: #4078f2;
--in-progress: #0184bc;
--in-progress-rgb: 1, 132, 188;
--in-review: #50a14f;
--triage: #c18401;
--done: #9da5b4;
--color-success: #50a14f;
--color-error: #e45649;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #3d8c3b;
--cta-border: #50a14f;
--cta-text: #fff;
--cta-bg-hover: #50a14f;
--cta-border-hover: #66b865;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #4078f2;
--accent: #4a9e46;
--accent-text: #ffffff;
}
/* NORD - Arctic blue palette inspired by the Nord color scheme */
[data-color-theme="nord"] {
--bg: #2e3440;
--surface: #3b4252;
--card: #434c5e;
--card-hover: #4c566a;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #4c566a;
--text: #eceff4;
--text-muted: #d8dee9;
--text-dim: #81a1c1;
--todo: #88c0d0;
--in-progress: #81a1c1;
--in-progress-rgb: 129, 161, 193;
--in-review: #a3be8c;
--triage: #ebcb8b;
--done: #7b88a1;
--color-success: #a3be8c;
--color-error: #bf616a;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 40%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #8fa879;
--cta-border: #a3be8c;
--cta-text: #2e3440;
--cta-bg-hover: #a3be8c;
--cta-border-hover: #b8cfab;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #81a1c1;
--accent: #88c0d0;
--accent-text: #2e3440;
}
[data-color-theme="nord"][data-theme="light"] {
--bg: #eceff4;
--surface: #e5e9f0;
--card: #d8dee9;
--card-hover: #cdd3e0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #b0b8c9;
--text: #2e3440;
--text-muted: #4c566a;
--text-dim: #7b88a1;
--todo: #5e81ac;
--in-progress: #5e81ac;
--in-progress-rgb: 94, 129, 172;
--in-review: #7ca373;
--triage: #c98530;
--done: #4c566a;
--color-success: #7ca373;
--color-error: #b54a52;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #6a8f63;
--cta-border: #7ca373;
--cta-text: #fff;
--cta-bg-hover: #7ca373;
--cta-border-hover: #8fb588;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #5e81ac;
--accent: #5e81ac;
--accent-text: #fff;
}
/* DRACULA - Popular dark theme with deep purples and vivid accents */
[data-color-theme="dracula"] {
--bg: #282a36;
--surface: #21222c;
--card: #2c2e3a;
--card-hover: #363848;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #44475a;
--text: #f8f8f2;
--text-muted: #bd93f9;
--text-dim: #6272a4;
--todo: #8be9fd;
--in-progress: #00e5ff;
--in-progress-rgb: 0, 229, 255;
--in-review: #50fa7b;
--triage: #f1fa8c;
--done: #6272a4;
--color-success: #50fa7b;
--color-error: #ff5555;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #40d870;
--cta-border: #50fa7b;
--cta-text: #282a36;
--cta-bg-hover: #50fa7b;
--cta-border-hover: #70ff95;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #8be9fd;
--accent: #bd93f9;
--accent-text: #282a36;
}
[data-color-theme="dracula"][data-theme="light"] {
--bg: #f8f8f2;
--surface: #efeefa;
--card: #e8e8f4;
--card-hover: #dddde8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #b0b0c0;
--text: #282a36;
--text-muted: #5a5a72;
--text-dim: #8888a0;
--todo: #0097a7;
--in-progress: #00bcd4;
--in-progress-rgb: 0, 188, 212;
--in-review: #2e8b57;
--triage: #c98600;
--done: #5a5a72;
--color-success: #2e8b57;
--color-error: #cc3333;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #267a4d;
--cta-border: #2e8b57;
--cta-text: #fff;
--cta-bg-hover: #2e8b57;
--cta-border-hover: #3aa870;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #00838f;
--accent: #8662c7;
--accent-text: #fff;
}
/* GRUVBOX - Warm, retro earth-tone palette */
[data-color-theme="gruvbox"] {
--bg: #282828;
--surface: #1d2021;
--card: #32302f;
--card-hover: #3c3836;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #504945;
--text: #ebdbb2;
--text-muted: #bdae93;
--text-dim: #665c54;
--todo: #83a598;
--in-progress: #d3869b;
--in-progress-rgb: 211, 134, 155;
--in-review: #b8bb26;
--triage: #fabd2f;
--done: #928374;
--color-success: #b8bb26;
--color-error: #fb4934;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #a0a325;
--cta-border: #b8bb26;
--cta-text: #282828;
--cta-bg-hover: #b8bb26;
--cta-border-hover: #d0d340;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #83a598;
--accent: #d4a017;
--accent-text: #282828;
}
[data-color-theme="gruvbox"][data-theme="light"] {
--bg: #fbf1c7;
--surface: #f2e5bc;
--card: #ebdbb2;
--card-hover: #e0d0a0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #bdae93;
--text: #3c3836;
--text-muted: #504945;
--text-dim: #7c7066;
--todo: #076678;
--in-progress: #8f3f71;
--in-progress-rgb: 143, 63, 113;
--in-review: #427b58;
--triage: #b57614;
--done: #504945;
--color-success: #427b58;
--color-error: #9d0006;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #3a6a4e;
--cta-border: #427b58;
--cta-text: #fbf1c7;
--cta-bg-hover: #427b58;
--cta-border-hover: #528c68;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #076678;
--accent: #a08010;
--accent-text: #fbf1c7;
}
/* TOKYO NIGHT - Deep blues and soft purples inspired by the VS Code theme */
[data-color-theme="tokyo-night"] {
--bg: #1a1b26;
--surface: #16161e;
--card: #24283b;
--card-hover: #2e324e;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #3b4261;
--text: #c0caf5;
--text-muted: #a9b1d6;
--text-dim: #565f89;
--todo: #7aa2f7;
--in-progress: #00e5ff;
--in-progress-rgb: 0, 229, 255;
--in-review: #9ece6a;
--triage: #e0af68;
--done: #565f89;
--color-success: #9ece6a;
--color-error: #f7768e;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #8ab855;
--cta-border: #9ece6a;
--cta-text: #1a1b26;
--cta-bg-hover: #9ece6a;
--cta-border-hover: #b8e080;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #7aa2f7;
--accent: #7aa2f7;
--accent-text: #1a1b26;
}
[data-color-theme="tokyo-night"][data-theme="light"] {
--bg: #e1e2e7;
--surface: #d5d6db;
--card: #e1e2e7;
--card-hover: #d0d1d8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #b4b5bc;
--text: #1a1b26;
--text-muted: #414868;
--text-dim: #68709a;
--todo: #3b5ea5;
--in-progress: #00bcd4;
--in-progress-rgb: 0, 188, 212;
--in-review: #48703e;
--triage: #9a6b20;
--done: #414868;
--color-success: #48703e;
--color-error: #c53b53;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #3d6035;
--cta-border: #48703e;
--cta-text: #fff;
--cta-bg-hover: #48703e;
--cta-border-hover: #5a8550;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #3b5ea5;
--accent: #5b7ec7;
--accent-text: #fff;
}
/* CATPPUCCIN MOCHA - Popular pastel dark theme */
[data-color-theme="catppuccin-mocha"] {
--bg: #1e1e2e;
--surface: #181825;
--card: #1e1e2e;
--card-hover: #262637;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #313244;
--text: #cdd6f4;
--text-muted: #a6adc8;
--text-dim: #6c7086;
--todo: #89b4fa;
--in-progress: #89dceb;
--in-progress-rgb: 137, 220, 235;
--in-review: #a6e3a1;
--triage: #f9e2af;
--done: #6c7086;
--color-success: #a6e3a1;
--color-error: #f38ba8;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #8ad985;
--cta-border: #a6e3a1;
--cta-text: #1e1e2e;
--cta-bg-hover: #a6e3a1;
--cta-border-hover: #b8edb4;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #89b4fa;
--accent: #cba6f7;
--accent-text: #1e1e2e;
}
[data-color-theme="catppuccin-mocha"][data-theme="light"] {
--bg: #eff1f5;
--surface: #e6e9ef;
--card: #eff1f5;
--card-hover: #dce0e8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #bcc0cc;
--text: #4c4f69;
--text-muted: #5c5f77;
--text-dim: #7c7f93;
--todo: #1e66f5;
--in-progress: #04a5e5;
--in-progress-rgb: 4, 165, 229;
--in-review: #40a02b;
--triage: #df8e1d;
--done: #7c7f93;
--color-success: #40a02b;
--color-error: #d20f39;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #36891f;
--cta-border: #40a02b;
--cta-text: #fff;
--cta-bg-hover: #40a02b;
--cta-border-hover: #52b93d;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #1e66f5;
--accent: #9a6fd9;
--accent-text: #fff;
}
/* GITHUB DARK - GitHub's dark theme */
[data-color-theme="github-dark"] {
--bg: #0d1117;
--surface: #010409;
--card: #0d1117;
--card-hover: #161b22;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #30363d;
--text: #e6edf3;
--text-muted: #8b949e;
--text-dim: #484f58;
--todo: #58a6ff;
--in-progress: #79c0ff;
--in-progress-rgb: 121, 192, 255;
--in-review: #3fb950;
--triage: #d29922;
--done: #484f58;
--color-success: #3fb950;
--color-error: #f85149;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #2ea043;
--cta-border: #3fb950;
--cta-text: #fff;
--cta-bg-hover: #3fb950;
--cta-border-hover: #56d364;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #58a6ff;
--accent: #58a6ff;
--accent-text: #fff;
}
[data-color-theme="github-dark"][data-theme="light"] {
--bg: #ffffff;
--surface: #f6f8fa;
--card: #ffffff;
--card-hover: #f3f4f6;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d0d7de;
--text: #1f2328;
--text-muted: #656d76;
--text-dim: #8c959f;
--todo: #0969da;
--in-progress: #0969da;
--in-progress-rgb: 9, 105, 218;
--in-review: #1a7f37;
--triage: #9a6700;
--done: #656d76;
--color-success: #1a7f37;
--color-error: #cf222e;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #1a7f37;
--cta-border: #1a7f37;
--cta-text: #fff;
--cta-bg-hover: #1a7f37;
--cta-border-hover: #2da44e;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #0969da;
--accent: #0969da;
--accent-text: #fff;
}
/* EVERFOREST - Green-focused dark theme */
[data-color-theme="everforest"] {
--bg: #2d353b;
--surface: #272e33;
--card: #2d353b;
--card-hover: #343f44;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #414b50;
--text: #d3c6aa;
--text-muted: #a7c080;
--text-dim: #859289;
--todo: #7fbbb3;
--in-progress: #e0c8a8;
--in-progress-rgb: 224, 200, 168;
--in-review: #a7c080;
--triage: #dbbc7f;
--done: #859289;
--color-success: #a7c080;
--color-error: #e67e80;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #8aad75;
--cta-border: #a7c080;
--cta-text: #2d353b;
--cta-bg-hover: #a7c080;
--cta-border-hover: #bcd09a;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #7fbbb3;
--accent: #a7c080;
--accent-text: #2d353b;
}
[data-color-theme="everforest"][data-theme="light"] {
--bg: #fdf6e3;
--surface: #f4f0d9;
--card: #fdf6e3;
--card-hover: #eee8c9;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c9ccae;
--text: #5c6a72;
--text-muted: #657b69;
--text-dim: #8da489;
--todo: #3a94a5;
--in-progress: #83a08a;
--in-progress-rgb: 131, 160, 138;
--in-review: #6d9b3a;
--triage: #b58905;
--done: #8da489;
--color-success: #6d9b3a;
--color-error: #c44040;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #5a8a2e;
--cta-border: #6d9b3a;
--cta-text: #fff;
--cta-bg-hover: #6d9b3a;
--cta-border-hover: #80b34c;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #3a94a5;
--accent: #6b8f55;
--accent-text: #fff;
}
/* ROSÉ PINE - Soft purple/pink tones */
[data-color-theme="rose-pine"] {
--bg: #191724;
--surface: #1f1d2e;
--card: #191724;
--card-hover: #26233a;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #26233a;
--text: #e0def4;
--text-muted: #908caa;
--text-dim: #6e6a86;
--todo: #c4a7e7;
--in-progress: #ebbcba;
--in-progress-rgb: 235, 188, 186;
--in-review: #9ccfd8;
--triage: #f6c177;
--done: #6e6a86;
--color-success: #9ccfd8;
--color-error: #eb6f92;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #7dbbc4;
--cta-border: #9ccfd8;
--cta-text: #191724;
--cta-bg-hover: #9ccfd8;
--cta-border-hover: #b3dfe6;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #c4a7e7;
--accent: #c4a7e7;
--accent-text: #191724;
}
[data-color-theme="rose-pine"][data-theme="light"] {
--bg: #faf4ed;
--surface: #fffaf3;
--card: #faf4ed;
--card-hover: #f2e9de;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #dfdad0;
--text: #575279;
--text-muted: #797593;
--text-dim: #9893a5;
--todo: #907aa9;
--in-progress: #b4637a;
--in-progress-rgb: 180, 99, 122;
--in-review: #56949f;
--triage: #ea9d34;
--done: #9893a5;
--color-success: #56949f;
--color-error: #b4637a;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #428089;
--cta-border: #56949f;
--cta-text: #fff;
--cta-bg-hover: #56949f;
--cta-border-hover: #6daab4;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #907aa9;
--accent: #907aac;
--accent-text: #fff;
}
/* KANAGAWA - Japanese-inspired wave theme */
[data-color-theme="kanagawa"] {
--bg: #1f1f28;
--surface: #16161d;
--card: #1f1f28;
--card-hover: #2a2a37;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #363646;
--text: #dcd7ba;
--text-muted: #c8c093;
--text-dim: #727169;
--todo: #7e9cd8;
--in-progress: #7e9cd8;
--in-progress-rgb: 126, 156, 216;
--in-review: #98bb6c;
--triage: #e6c384;
--done: #727169;
--color-success: #98bb6c;
--color-error: #c34043;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #7da55a;
--cta-border: #98bb6c;
--cta-text: #1f1f28;
--cta-bg-hover: #98bb6c;
--cta-border-hover: #aed085;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #7e9cd8;
--accent: #957fb8;
--accent-text: #1f1f28;
}
[data-color-theme="kanagawa"][data-theme="light"] {
--bg: #edeadd;
--surface: #e1ddd4;
--card: #edeadd;
--card-hover: #ddd8cc;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c5c1b6;
--text: #434350;
--text-muted: #5e5e6a;
--text-dim: #81818c;
--todo: #4e76b5;
--in-progress: #4e76b5;
--in-progress-rgb: 78, 118, 181;
--in-review: #5a8249;
--triage: #a57c30;
--done: #81818c;
--color-success: #5a8249;
--color-error: #b03438;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #49703f;
--cta-border: #5a8249;
--cta-text: #fff;
--cta-bg-hover: #5a8249;
--cta-border-hover: #6b9a5c;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #4e76b5;
--accent: #7560a0;
--accent-text: #fff;
}
/* NIGHT OWL - Blue/cyan with warm yellow accents (Sarah Drasner) */
[data-color-theme="night-owl"] {
--bg: #011627;
--surface: #01111d;
--card: #0a192f;
--card-hover: #112240;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #1d3557;
--text: #d6deeb;
--text-muted: #8da6c2;
--text-dim: #5c7a99;
--todo: #82aaff;
--in-progress: #addb67;
--in-progress-rgb: 173, 219, 103;
--in-review: #4ec9b0;
--triage: #ecc48d;
--done: #5c7a99;
--color-success: #4ec9b0;
--color-error: #ef5350;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 60%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #3da890;
--cta-border: #4ec9b0;
--cta-text: #011627;
--cta-bg-hover: #4ec9b0;
--cta-border-hover: #70dbc9;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #82aaff;
--accent: #82aaff;
--accent-text: #011627;
}
[data-color-theme="night-owl"][data-theme="light"] {
--bg: #f6f7f9;
--surface: #eef0f4;
--card: #ffffff;
--card-hover: #f0f2f5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c8cdd5;
--text: #2d3549;
--text-muted: #5c6a7e;
--text-dim: #8a95a5;
--todo: #2563eb;
--in-progress: #5a9e2f;
--in-progress-rgb: 90, 158, 47;
--in-review: #2b8a73;
--triage: #b07d2e;
--done: #8a95a5;
--color-success: #2b8a73;
--color-error: #c0392b;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #257a68;
--cta-border: #2b8a73;
--cta-text: #fff;
--cta-bg-hover: #2b8a73;
--cta-border-hover: #3a9f8a;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2563eb;
--accent: #5a7fd4;
--accent-text: #fff;
}
/* PALENIGHT - Warm purple-free dark blue palette */
[data-color-theme="palenight"] {
--bg: #292d3e;
--surface: #1e2235;
--card: #2c3044;
--card-hover: #353a50;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #3e445e;
--text: #bfc7d5;
--text-muted: #8394a5;
--text-dim: #676e95;
--todo: #82aaff;
--in-progress: #ffcb6b;
--in-progress-rgb: 255, 203, 107;
--in-review: #c3e88d;
--triage: #f78c6c;
--done: #676e95;
--color-success: #c3e88d;
--color-error: #ff5370;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #a3c570;
--cta-border: #c3e88d;
--cta-text: #292d3e;
--cta-bg-hover: #c3e88d;
--cta-border-hover: #d4f0a5;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #82aaff;
--accent: #c792ea;
--accent-text: #292d3e;
}
[data-color-theme="palenight"][data-theme="light"] {
--bg: #f5f7fa;
--surface: #ebeef5;
--card: #ffffff;
--card-hover: #f0f2f6;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c5cae0;
--text: #2c3044;
--text-muted: #5c6370;
--text-dim: #8a8fa0;
--todo: #3b6fcf;
--in-progress: #c49020;
--in-progress-rgb: 196, 144, 32;
--in-review: #5a9e2f;
--triage: #c06030;
--done: #8a8fa0;
--color-success: #5a9e2f;
--color-error: #c0392b;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #4a8c28;
--cta-border: #5a9e2f;
--cta-text: #fff;
--cta-bg-hover: #5a9e2f;
--cta-border-hover: #6db23c;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #3b6fcf;
--accent: #9a60c0;
--accent-text: #fff;
}
/* MONOKAI PRO - Warm oranges and greens */
[data-color-theme="monokai-pro"] {
--bg: #2d2a2e;
--surface: #252229;
--card: #353036;
--card-hover: #3f3a40;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #4a434a;
--text: #fcfcfa;
--text-muted: #939293;
--text-dim: #727072;
--todo: #78dce8;
--in-progress: #ff6188;
--in-progress-rgb: 255, 97, 136;
--in-review: #a9dc76;
--triage: #ffd866;
--done: #727072;
--color-success: #a9dc76;
--color-error: #ff6188;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #88c060;
--cta-border: #a9dc76;
--cta-text: #2d2a2e;
--cta-bg-hover: #a9dc76;
--cta-border-hover: #c2ec92;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #78dce8;
--accent: #ffd866;
--accent-text: #2d2a2e;
}
[data-color-theme="monokai-pro"][data-theme="light"] {
--bg: #faf8f5;
--surface: #f0ece5;
--card: #ffffff;
--card-hover: #f5f2ed;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c9c3b8;
--text: #3a3632;
--text-muted: #6b6460;
--text-dim: #9a9490;
--todo: #2d8fa0;
--in-progress: #c4405e;
--in-progress-rgb: 196, 64, 94;
--in-review: #5a9030;
--triage: #b8860b;
--done: #9a9490;
--color-success: #5a9030;
--color-error: #c4405e;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #4a7a28;
--cta-border: #5a9030;
--cta-text: #fff;
--cta-bg-hover: #5a9030;
--cta-border-hover: #6da63c;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2d8fa0;
--accent: #d4a830;
--accent-text: #fff;
}
/* SLIME - Retro lime green theme */
[data-color-theme="slime"] {
--bg: #0a0e09;
--surface: #0f150d;
--card: #141c12;
--card-hover: #1a2418;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #2a3a24;
--text: #c8e6a0;
--text-muted: #8ab860;
--text-dim: #5a7a40;
--todo: #8aff40;
--in-progress: #40e8a0;
--in-progress-rgb: 64, 232, 160;
--in-review: #a0ff60;
--triage: #e0ff40;
--done: #5a7a40;
--color-success: #a0ff60;
--color-error: #ff4040;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 70%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #78d840;
--cta-border: #a0ff60;
--cta-text: #0a0e09;
--cta-bg-hover: #a0ff60;
--cta-border-hover: #b8ff80;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #60d8a0;
--accent: #78d840;
--accent-text: #0a0e09;
}
[data-color-theme="slime"][data-theme="light"] {
--bg: #f2f7ea;
--surface: #e6efda;
--card: #ffffff;
--card-hover: #f0f5e6;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #b8ccaa;
--text: #2a3a20;
--text-muted: #4a6040;
--text-dim: #7a8a70;
--todo: #3d8f10;
--in-progress: #1a8a6a;
--in-progress-rgb: 26, 138, 106;
--in-review: #4a8a20;
--triage: #8a8a10;
--done: #7a8a70;
--color-success: #4a8a20;
--color-error: #b03030;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #3a7a18;
--cta-border: #4a8a20;
--cta-text: #fff;
--cta-bg-hover: #4a8a20;
--cta-border-hover: #5a9a2c;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #1a7a5a;
--accent: #5ab030;
--accent-text: #fff;
}
/* BRUTALIST - Concrete and signage inspired harsh UI */
[data-color-theme="brutalist"] {
--bg: #101010;
--surface: #171717;
--card: #1d1d1d;
--card-hover: #232323;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #f5f5f5;
--text: #f7f7f7;
--text-muted: #b8b8b8;
--text-dim: #6f6f6f;
--todo: #ff6a00;
--in-progress: #ffd100;
--in-progress-rgb: 255, 209, 0;
--in-review: #8de000;
--triage: #ff3d00;
--done: #7f7f7f;
--color-success: #8de000;
--color-error: #ff3d00;
--font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
--font-mono: "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;
--space-xs: 3px;
--space-sm: 6px;
--space-md: 9px;
--space-lg: 12px;
--space-xl: 18px;
--space-2xl: 24px;
--radius-sm: 0px;
--radius-md: 0px;
--radius-lg: 0px;
--radius-xl: 0px;
--radius-pill: 0px;
--radius: 0px;
--btn-padding: 8px 12px;
--btn-border-width: 3px;
--card-padding: 9px 11px;
--modal-padding: var(--space-lg) var(--space-xl);
--header-padding: var(--space-md) var(--space-xl);
--column-gap: var(--space-sm);
--board-padding: var(--space-lg) var(--space-xl);
--shadow-sm: none;
--shadow-md: none;
--shadow-lg: none;
--shadow-glow: none;
--focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);
--focus-ring-strong: 0 0 0 3px color-mix(in srgb, var(--accent) 44%, transparent);
--shadow: none;
--transition-instant: 0.04s linear;
--transition-fast: 0.08s linear;
--transition-normal: 0.12s linear;
--transition-slow: 0.16s linear;
--cta-bg: #ff6a00;
--cta-border: #ffd100;
--cta-text: #0f0f0f;
--cta-bg-hover: #ff7f23;
--cta-border-hover: #ffe266;
--cta-glow: none;
--logo-accent: var(--todo);
--color-info: #ffd100;
--accent: #ff6a00;
--accent-text: #0f0f0f;
}
[data-color-theme="brutalist"][data-theme="light"] {
--bg: #ece9e4;
--surface: #f7f4ef;
--card: #ffffff;
--card-hover: #f0ece6;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #161616;
--text: #121212;
--text-muted: #424242;
--text-dim: #717171;
--todo: #d9480f;
--in-progress: #b8860b;
--in-progress-rgb: 184, 134, 11;
--in-review: #4f8f00;
--triage: #b32000;
--done: #666666;
--color-success: #4f8f00;
--color-error: #b32000;
--focus-ring: 0 0 0 3px color-mix(in srgb, var(--todo) 22%, transparent);
--focus-ring-strong: 0 0 0 3px color-mix(in srgb, var(--todo) 35%, transparent);
--cta-bg: #c2410c;
--cta-border: #d9480f;
--cta-text: #ffffff;
--cta-bg-hover: #d9480f;
--cta-border-hover: #ea580c;
--logo-accent: var(--todo);
--color-info: #b8860b;
--accent: #c2410c;
--accent-text: #ffffff;
}
[data-color-theme="brutalist"] .btn {
text-transform: uppercase;
letter-spacing: 0.08em;
font-weight: 800;
border-width: 3px;
}
[data-color-theme="brutalist"] .btn-primary,
[data-color-theme="brutalist"] .btn-task-create {
background: transparent;
border-color: var(--todo);
color: var(--todo);
}
[data-color-theme="brutalist"] .btn-primary:hover,
[data-color-theme="brutalist"] .btn-task-create:hover {
background: var(--todo);
color: var(--bg);
}
[data-color-theme="brutalist"] .card,
[data-color-theme="brutalist"] .column {
border-width: 3px;
border-style: solid;
border-radius: 0;
box-shadow: none;
}
[data-color-theme="brutalist"] .column-header h2,
[data-color-theme="brutalist"] .theme-section-title,
[data-color-theme="brutalist"] .modal-header h3 {
font-family: Impact, "Arial Black", "Franklin Gothic Heavy", sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
}
[data-color-theme="brutalist"] .theme-option-swatch {
border-radius: 0;
}
/* NEON CITY - Cyberpunk neon-on-black */
[data-color-theme="neon-city"] {
--bg: #0d0d15;
--surface: #121326;
--card: #171933;
--card-hover: #1d2040;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #3d2466;
--text: #f2edff;
--text-muted: #a89dc9;
--text-dim: #6c6490;
--todo: #ff2d95;
--in-progress: #00f0ff;
--in-progress-rgb: 0, 240, 255;
--in-review: #78ff4d;
--triage: #ffab00;
--done: #7f739f;
--color-success: #78ff4d;
--color-error: #ff568f;
--font-primary: "Rajdhani", "Orbitron", "Share Tech Mono", "Segoe UI", sans-serif;
--font-mono: "Share Tech Mono", "Fira Code", "JetBrains Mono", monospace;
--space-xs: 3px;
--space-sm: 7px;
--space-md: 10px;
--space-lg: 14px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 10px;
--radius-md: 16px;
--radius-lg: 24px;
--radius-xl: 28px;
--radius-pill: 999px;
--radius: var(--radius-md);
--btn-padding: 8px 16px;
--btn-border-width: 2px;
--card-padding: 10px 12px;
--shadow-sm: 0 2px 6px color-mix(in srgb, #000000 35%, transparent);
--shadow-md: 0 0 10px color-mix(in srgb, var(--accent) 25%, transparent);
--shadow-lg: 0 0 26px color-mix(in srgb, var(--color-info) 20%, transparent);
--shadow-glow: 0 0 10px color-mix(in srgb, var(--todo) 45%, transparent);
--glow-success: 0 0 10px color-mix(in srgb, var(--color-success) 45%, transparent);
--glow-warning: 0 0 10px color-mix(in srgb, var(--triage) 45%, transparent);
--glow-danger: 0 0 10px color-mix(in srgb, var(--color-error) 42%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--color-info) 20%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--accent) 34%, transparent);
--shadow: var(--shadow-lg);
--transition-instant: 0.08s ease;
--transition-fast: 0.13s ease;
--transition-normal: 0.2s ease;
--transition-slow: 0.28s ease;
--cta-bg: #ff2d95;
--cta-border: #00f0ff;
--cta-text: #0d0d15;
--cta-bg-hover: #ff4aa4;
--cta-border-hover: #7ff7ff;
--cta-glow: 0 0 12px color-mix(in srgb, var(--cta-bg) 45%, transparent);
--logo-accent: var(--todo);
--color-info: #00f0ff;
--accent: #ff2d95;
--accent-text: #0d0d15;
}
[data-color-theme="neon-city"][data-theme="light"] {
--bg: #f7f5ff;
--surface: #f1edff;
--card: #ffffff;
--card-hover: #f8f3ff;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #cbbee8;
--text: #22163c;
--text-muted: #6b5f85;
--text-dim: #8a82a8;
--todo: #cc166e;
--in-progress: #008e9b;
--in-progress-rgb: 0, 142, 155;
--in-review: #3a8a2e;
--triage: #b57200;
--done: #8a82a8;
--color-success: #3a8a2e;
--color-error: #b11f5b;
--shadow-md: 0 0 10px color-mix(in srgb, var(--todo) 14%, transparent);
--shadow-lg: 0 0 22px color-mix(in srgb, var(--color-info) 12%, transparent);
--shadow-glow: 0 0 10px color-mix(in srgb, var(--todo) 24%, transparent);
--glow-success: 0 0 10px color-mix(in srgb, var(--color-success) 24%, transparent);
--glow-warning: 0 0 10px color-mix(in srgb, var(--triage) 24%, transparent);
--glow-danger: 0 0 10px color-mix(in srgb, var(--color-error) 20%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--color-info) 17%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--todo) 24%, transparent);
--cta-bg: #b1145f;
--cta-border: #008e9b;
--cta-text: #ffffff;
--cta-bg-hover: #cc166e;
--cta-border-hover: #00a8b8;
--cta-glow: 0 0 10px color-mix(in srgb, var(--cta-bg) 26%, transparent);
--logo-accent: var(--todo);
--color-info: #008e9b;
--accent: #d63384;
--accent-text: #ffffff;
}
[data-color-theme="neon-city"] .btn {
border-width: 2px;
font-weight: 700;
letter-spacing: 0.04em;
}
[data-color-theme="neon-city"] .btn-primary,
[data-color-theme="neon-city"] .btn-task-create {
border-color: color-mix(in srgb, var(--todo) 70%, var(--in-progress) 30%);
color: var(--todo);
box-shadow: 0 0 10px color-mix(in srgb, #ff2d95 25%, transparent);
}
[data-color-theme="neon-city"] .btn-primary:hover,
[data-color-theme="neon-city"] .btn-task-create:hover {
color: var(--text);
border-color: var(--in-progress);
box-shadow:
0 0 8px color-mix(in srgb, #ff2d95 60%, transparent),
0 0 14px color-mix(in srgb, #00f0ff 45%, transparent);
}
[data-color-theme="neon-city"] .card,
[data-color-theme="neon-city"] .column {
border-color: color-mix(in srgb, var(--todo) 40%, var(--border) 60%);
box-shadow:
inset 0 0 0 1px color-mix(in srgb, var(--in-progress) 25%, transparent),
var(--shadow-md);
}
[data-color-theme="neon-city"] .column-header h2 {
text-transform: uppercase;
letter-spacing: 0.14em;
font-family: var(--font-mono);
}
[data-color-theme="neon-city"] .card.agent-active {
border-color: var(--in-progress);
animation: neon-agent-pulse 2.2s ease-in-out infinite;
}
@keyframes neon-agent-pulse {
0%,
100% {
box-shadow:
0 0 8px color-mix(in srgb, #ff2d95 35%, transparent),
0 0 16px color-mix(in srgb, #00f0ff 25%, transparent);
}
50% {
box-shadow:
0 0 14px color-mix(in srgb, #ff2d95 65%, transparent),
0 0 24px color-mix(in srgb, #00f0ff 45%, transparent);
}
}
[data-color-theme="neon-city"][data-theme="light"] .card.agent-active {
animation: neon-agent-pulse-light 2.2s ease-in-out infinite;
}
@keyframes neon-agent-pulse-light {
0%,
100% {
box-shadow:
0 0 8px color-mix(in srgb, #b1145f 22%, transparent),
0 0 16px color-mix(in srgb, #008e9b 18%, transparent);
}
50% {
box-shadow:
0 0 12px color-mix(in srgb, #b1145f 32%, transparent),
0 0 20px color-mix(in srgb, #008e9b 26%, transparent);
}
}
/* PARCHMENT - Warm manuscript aesthetic */
[data-color-theme="parchment"] {
--bg: #1b1712;
--surface: #252019;
--card: #2f281f;
--card-hover: #392f24;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #5a4632;
--text: #efe0c8;
--text-muted: #b89f7e;
--text-dim: #8a7258;
--todo: #d08a4b;
--in-progress: #be6e3c;
--in-progress-rgb: 190, 110, 60;
--in-review: #8ca65f;
--triage: #e4ac54;
--done: #8a7258;
--color-success: #8ca65f;
--color-error: #d36d45;
--font-primary: Georgia, "Times New Roman", Times, serif;
--font-mono: "Courier New", Courier, monospace;
--space-xs: 5px;
--space-sm: 10px;
--space-md: 14px;
--space-lg: 19px;
--space-xl: 29px;
--space-2xl: 38px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 10px;
--radius-xl: 14px;
--radius-pill: 999px;
--radius: var(--radius-md);
--btn-padding: 9px 18px;
--btn-border-width: 1px;
--card-padding: 12px 14px;
--modal-padding: var(--space-lg) calc(var(--space-xl) + 2px);
--header-padding: var(--space-md) var(--space-xl);
--shadow-sm: 0 1px 2px color-mix(in srgb, #0a0805 45%, transparent);
--shadow-md: 0 4px 12px color-mix(in srgb, #0a0805 35%, transparent);
--shadow-lg: 0 12px 28px color-mix(in srgb, #0a0805 40%, transparent);
--shadow-glow: 0 0 8px color-mix(in srgb, var(--todo) 25%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--color-info) 22%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--color-info) 34%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #be6e3c;
--cta-border: #d08a4b;
--cta-text: #f8eedf;
--cta-bg-hover: #d08a4b;
--cta-border-hover: #dda165;
--cta-glow: 0 0 10px color-mix(in srgb, var(--cta-border) 25%, transparent);
--logo-accent: var(--todo);
--color-info: #d08a4b;
--accent: #d08a4b;
--accent-text: #f8eedf;
}
[data-color-theme="parchment"][data-theme="light"] {
--bg: #f5f0e8;
--surface: #efe7dc;
--card: #fffaf2;
--card-hover: #f6eee2;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d1bda6;
--text: #3a2f23;
--text-muted: #6a5844;
--text-dim: #9a8774;
--todo: #a8562f;
--in-progress: #8f4e2a;
--in-progress-rgb: 143, 78, 42;
--in-review: #5f7d3f;
--triage: #b07a2a;
--done: #9a8774;
--color-success: #5f7d3f;
--color-error: #b24f2f;
--shadow-sm: 0 1px 2px color-mix(in srgb, #4a3723 12%, transparent);
--shadow-md: 0 5px 14px color-mix(in srgb, #4a3723 14%, transparent);
--shadow-lg: 0 14px 30px color-mix(in srgb, #4a3723 16%, transparent);
--shadow-glow: 0 0 8px color-mix(in srgb, var(--todo) 20%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--todo) 15%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--todo) 24%, transparent);
--cta-bg: #99502d;
--cta-border: #a8562f;
--cta-text: #fff9f2;
--cta-bg-hover: #a8562f;
--cta-border-hover: #bf6a3f;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 20%, transparent);
--logo-accent: var(--todo);
--color-info: #8f4e2a;
--accent: #a66b35;
--accent-text: #fff9f2;
}
[data-color-theme="parchment"] .btn {
font-family: var(--font-primary);
border-color: color-mix(in srgb, var(--todo) 40%, var(--border) 60%);
box-shadow: inset 0 -1px 0 color-mix(in srgb, #000000 18%, transparent);
}
[data-color-theme="parchment"] .btn-primary,
[data-color-theme="parchment"] .btn-task-create {
background: color-mix(in srgb, var(--todo) 18%, var(--surface) 82%);
color: var(--text);
}
[data-color-theme="parchment"] .card,
[data-color-theme="parchment"] .column {
border-color: color-mix(in srgb, var(--border) 76%, var(--todo) 24%);
background-image:
linear-gradient(180deg, color-mix(in srgb, #ffffff 2%, transparent), color-mix(in srgb, #000000 6%, transparent)),
linear-gradient(0deg, color-mix(in srgb, #c9a070 8%, transparent), color-mix(in srgb, #c9a070 8%, transparent));
box-shadow:
inset 0 1px 0 color-mix(in srgb, #ffffff 8%, transparent),
0 2px 10px color-mix(in srgb, #1a140e 20%, transparent);
}
[data-color-theme="parchment"][data-theme="light"] .card,
[data-color-theme="parchment"][data-theme="light"] .column {
box-shadow:
inset 0 1px 0 color-mix(in srgb, #ffffff 45%, transparent),
0 3px 12px color-mix(in srgb, #795a3a 15%, transparent);
}
[data-color-theme="parchment"] .column-header h2 {
font-style: italic;
font-weight: 600;
letter-spacing: 0.02em;
}
/* TERMINAL - Retro CRT monospace */
[data-color-theme="terminal"] {
--bg: #0a0a0a;
--surface: #0f120d;
--card: #121712;
--card-hover: #171e16;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #2e5c1f;
--text: #8dff6f;
--text-muted: #61b74b;
--text-dim: #3f6c32;
--todo: #33ff00;
--in-progress: #8fff38;
--in-progress-rgb: 143, 255, 56;
--in-review: #a8ff5a;
--triage: #ffb000;
--done: #3f6c32;
--color-success: #a8ff5a;
--color-error: #ff8a00;
--font-primary: "IBM Plex Mono", "Source Code Pro", "Courier New", monospace;
--font-mono: "IBM Plex Mono", "Source Code Pro", "Courier New", monospace;
--space-xs: 2px;
--space-sm: 6px;
--space-md: 10px;
--space-lg: 14px;
--space-xl: 20px;
--space-2xl: 28px;
--radius-sm: 0px;
--radius-md: 2px;
--radius-lg: 2px;
--radius-xl: 2px;
--radius-pill: 2px;
--radius: var(--radius-md);
--btn-padding: 7px 12px;
--btn-border-width: 2px;
--card-padding: 9px 10px;
--shadow-sm: 0 0 4px color-mix(in srgb, var(--accent) 15%, transparent);
--shadow-md: 0 0 10px color-mix(in srgb, var(--accent) 18%, transparent);
--shadow-lg: 0 0 22px color-mix(in srgb, var(--accent) 22%, transparent);
--shadow-glow: 0 0 10px color-mix(in srgb, var(--todo) 35%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--accent) 26%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--accent) 42%, transparent);
--shadow: var(--shadow-lg);
--transition-instant: 0.02s steps(2, end);
--transition-fast: 0.06s steps(3, end);
--transition-normal: 0.1s steps(4, end);
--transition-slow: 0.16s steps(5, end);
--cta-bg: #33ff00;
--cta-border: #8fff38;
--cta-text: #061004;
--cta-bg-hover: #6dff2f;
--cta-border-hover: #b2ff67;
--cta-glow: 0 0 10px color-mix(in srgb, var(--cta-bg) 35%, transparent);
--logo-accent: var(--todo);
--color-info: #8fff38;
--accent: #33ff00;
--accent-text: #061004;
}
[data-color-theme="terminal"][data-theme="light"] {
--bg: #e7f5dd;
--surface: #deefd2;
--card: #f4fbef;
--card-hover: #e8f4e0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #6a8e59;
--text: #19420f;
--text-muted: #2f6a21;
--text-dim: #5a7d50;
--todo: #2d6b14;
--in-progress: #4c8f25;
--in-progress-rgb: 76, 143, 37;
--in-review: #5e9c2d;
--triage: #8f5f00;
--done: #5a7d50;
--color-success: #5e9c2d;
--color-error: #8f5f00;
--shadow-sm: 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent);
--shadow-md: 0 0 8px color-mix(in srgb, var(--accent) 12%, transparent);
--shadow-lg: 0 0 14px color-mix(in srgb, var(--accent) 15%, transparent);
--shadow-glow: 0 0 8px color-mix(in srgb, var(--todo) 20%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent);
--cta-bg: #2d6b14;
--cta-border: #4c8f25;
--cta-text: #f4fbef;
--cta-bg-hover: #3d7d1c;
--cta-border-hover: #5ea82f;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-bg) 20%, transparent);
--logo-accent: var(--todo);
--color-info: #4c8f25;
--accent: #2d6b14;
--accent-text: #f4fbef;
}
[data-color-theme="terminal"] .btn,
[data-color-theme="terminal"] input,
[data-color-theme="terminal"] textarea,
[data-color-theme="terminal"] select {
font-family: var(--font-mono);
}
[data-color-theme="terminal"] .btn {
text-transform: uppercase;
letter-spacing: 0.12em;
border-style: solid;
border-width: 2px;
}
[data-color-theme="terminal"] .btn-primary,
[data-color-theme="terminal"] .btn-task-create {
border-color: var(--todo);
color: var(--todo);
background: color-mix(in srgb, var(--todo) 8%, transparent);
box-shadow: 0 0 0 1px color-mix(in srgb, var(--todo) 55%, transparent);
}
[data-color-theme="terminal"] .card,
[data-color-theme="terminal"] .column {
border-style: dashed;
border-width: 2px;
box-shadow:
inset 0 0 0 1px color-mix(in srgb, var(--todo) 28%, transparent),
var(--shadow-sm);
}
[data-color-theme="terminal"] .column-header h2 {
text-transform: uppercase;
letter-spacing: 0.15em;
text-shadow: 0 0 6px color-mix(in srgb, var(--todo) 35%, transparent);
}
:root[data-color-theme="terminal"] body::before,
body[data-color-theme="terminal"]::before {
content: "";
position: fixed;
inset: 0;
background: repeating-linear-gradient(
to bottom,
color-mix(in srgb, #33ff00 8%, transparent) 0px,
color-mix(in srgb, #33ff00 8%, transparent) 1px,
transparent 1px,
transparent 3px
);
mix-blend-mode: screen;
opacity: 0.16;
pointer-events: none;
z-index: 2147483647;
}
:root[data-color-theme="terminal"][data-theme="light"] body::before,
body[data-color-theme="terminal"][data-theme="light"]::before {
background: repeating-linear-gradient(
to bottom,
color-mix(in srgb, #11340c 7%, transparent) 0px,
color-mix(in srgb, #11340c 7%, transparent) 1px,
transparent 1px,
transparent 3px
);
mix-blend-mode: multiply;
opacity: 0.12;
}
/* GLASS - Frosted translucent surfaces */
[data-color-theme="glass"] {
--bg: #13111f;
--surface: color-mix(in srgb, #221b34 78%, transparent);
--card: color-mix(in srgb, #362c52 55%, transparent);
--card-hover: color-mix(in srgb, #423863 65%, transparent);
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: color-mix(in srgb, #ffffff 22%, transparent);
--text: #f2effa;
--text-muted: #b8b0d2;
--text-dim: #827aa1;
--todo: #c86bff;
--in-progress: #ff7aa8;
--in-progress-rgb: 255, 122, 168;
--in-review: #89d7b0;
--triage: #f2ba5b;
--done: #827aa1;
--color-success: #89d7b0;
--color-error: #ff7a9c;
--font-primary: "Inter", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
--font-mono: "SF Mono", "JetBrains Mono", "Menlo", monospace;
--space-xs: 5px;
--space-sm: 10px;
--space-md: 14px;
--space-lg: 20px;
--space-xl: 28px;
--space-2xl: 38px;
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 20px;
--radius-xl: 26px;
--radius-pill: 999px;
--radius: var(--radius-md);
--btn-padding: 9px 16px;
--btn-border-width: 1px;
--card-padding: 12px 14px;
--modal-padding: var(--space-lg) var(--space-xl);
--shadow-sm: 0 8px 16px color-mix(in srgb, #050212 24%, transparent);
--shadow-md: 0 14px 30px color-mix(in srgb, #060318 30%, transparent);
--shadow-lg: 0 22px 42px color-mix(in srgb, #08041e 35%, transparent);
--shadow-glow: 0 0 12px color-mix(in srgb, var(--todo) 26%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent);
--shadow: var(--shadow-lg);
--transition-instant: 0.08s ease;
--transition-fast: 0.14s ease;
--transition-normal: 0.22s ease;
--transition-slow: 0.34s ease;
--cta-bg: color-mix(in srgb, var(--accent) 32%, transparent);
--cta-border: color-mix(in srgb, #ffffff 38%, transparent);
--cta-text: #f8f5ff;
--cta-bg-hover: color-mix(in srgb, var(--accent) 46%, transparent);
--cta-border-hover: color-mix(in srgb, #ffffff 50%, transparent);
--cta-glow: 0 0 12px color-mix(in srgb, var(--accent) 24%, transparent);
--logo-accent: var(--todo);
--color-info: #ff7aa8;
--accent: #c86bff;
--accent-text: #f8f5ff;
}
[data-color-theme="glass"][data-theme="light"] {
--bg: #eceaf5;
--surface: color-mix(in srgb, #ffffff 75%, transparent);
--card: color-mix(in srgb, #ffffff 60%, transparent);
--card-hover: color-mix(in srgb, #ffffff 75%, transparent);
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: color-mix(in srgb, #725b9c 22%, transparent);
--text: #2f2448;
--text-muted: #66597f;
--text-dim: #948aa8;
--todo: #9d40cf;
--in-progress: #c74b7a;
--in-progress-rgb: 199, 75, 122;
--in-review: #3e8f6b;
--triage: #b67a1f;
--done: #948aa8;
--color-success: #3e8f6b;
--color-error: #c74b7a;
--shadow-sm: 0 8px 16px color-mix(in srgb, #3f2c66 8%, transparent);
--shadow-md: 0 14px 30px color-mix(in srgb, #3f2c66 10%, transparent);
--shadow-lg: 0 22px 42px color-mix(in srgb, #3f2c66 14%, transparent);
--shadow-glow: 0 0 10px color-mix(in srgb, var(--todo) 20%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent);
--cta-bg: color-mix(in srgb, var(--accent) 24%, transparent);
--cta-border: color-mix(in srgb, var(--accent) 38%, transparent);
--cta-text: #2f2448;
--cta-bg-hover: color-mix(in srgb, var(--accent) 34%, transparent);
--cta-border-hover: color-mix(in srgb, var(--accent) 48%, transparent);
--cta-glow: 0 0 10px color-mix(in srgb, var(--accent) 22%, transparent);
--logo-accent: var(--todo);
--color-info: #c74b7a;
--accent: #9d40cf;
--accent-text: #2f2448;
}
[data-color-theme="glass"] .card,
[data-color-theme="glass"] .column {
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
background: color-mix(in srgb, #ffffff 8%, transparent);
border-color: color-mix(in srgb, #ffffff 24%, transparent);
}
[data-color-theme="glass"][data-theme="light"] .card,
[data-color-theme="glass"][data-theme="light"] .column {
background: color-mix(in srgb, #ffffff 60%, transparent);
border-color: color-mix(in srgb, #725b9c 24%, transparent);
}
[data-color-theme="glass"] .btn {
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border-color: color-mix(in srgb, #ffffff 34%, transparent);
background: color-mix(in srgb, #ffffff 10%, transparent);
}
[data-color-theme="glass"] .btn-primary,
[data-color-theme="glass"] .btn-task-create {
background: linear-gradient(135deg, color-mix(in srgb, #c86bff 35%, transparent), color-mix(in srgb, #ff7aa8 30%, transparent));
border-color: color-mix(in srgb, #ffffff 42%, transparent);
}
[data-color-theme="glass"] .btn-primary:hover,
[data-color-theme="glass"] .btn-task-create:hover {
background: linear-gradient(135deg, color-mix(in srgb, #c86bff 50%, transparent), color-mix(in srgb, #ff7aa8 42%, transparent));
box-shadow: 0 12px 24px color-mix(in srgb, #180e2c 28%, transparent);
}
[data-color-theme="glass"][data-theme="light"] .btn {
background: color-mix(in srgb, #ffffff 52%, transparent);
border-color: color-mix(in srgb, #725b9c 28%, transparent);
}
[data-color-theme="glass"] .modal-overlay {
/*
FNXC:ModalChrome 2026-06-23-21:36:
Even glass-style themes should keep modal overlays non-dimming/non-blurring; modal panels provide depth with shadows and their own translucent surfaces.
*/
background: transparent;
backdrop-filter: none;
-webkit-backdrop-filter: none;
}
/* GLASS SILVER - Frosted translucent silver/gray surfaces */
[data-color-theme="glass-silver"] {
/*
FNXC:DashboardTheming 2026-07-01-00:00:
Glass Silver must preserve the same frosted, translucent surface contract as Glass while replacing the purple/pink accents with silver and graphite tones across dark and light modes.
*/
--bg: #101216;
--surface: color-mix(in srgb, #252a32 78%, transparent);
--card: color-mix(in srgb, #3a414c 55%, transparent);
--card-hover: color-mix(in srgb, #49515d 65%, transparent);
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: color-mix(in srgb, #f5f7fa 22%, transparent);
--text: #f3f4f6;
--text-muted: #c5cad3;
--text-dim: #8f97a3;
--todo: #d7dde6;
--in-progress: #b9c2cf;
--in-progress-rgb: 185, 194, 207;
--in-review: #a7b4c2;
--triage: #c7b88f;
--done: #8f97a3;
--color-success: #a7b4c2;
--color-error: #ef8f8f;
--font-primary: "Inter", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
--font-mono: "SF Mono", "JetBrains Mono", "Menlo", monospace;
--space-xs: 5px;
--space-sm: 10px;
--space-md: 14px;
--space-lg: 20px;
--space-xl: 28px;
--space-2xl: 38px;
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 20px;
--radius-xl: 26px;
--radius-pill: 999px;
--radius: var(--radius-md);
--btn-padding: 9px 16px;
--btn-border-width: 1px;
--card-padding: 12px 14px;
--modal-padding: var(--space-lg) var(--space-xl);
--shadow-sm: 0 8px 16px color-mix(in srgb, #020305 24%, transparent);
--shadow-md: 0 14px 30px color-mix(in srgb, #030407 30%, transparent);
--shadow-lg: 0 22px 42px color-mix(in srgb, #04060a 35%, transparent);
--shadow-glow: 0 0 12px color-mix(in srgb, var(--todo) 22%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent);
--shadow: var(--shadow-lg);
--transition-instant: 0.08s ease;
--transition-fast: 0.14s ease;
--transition-normal: 0.22s ease;
--transition-slow: 0.34s ease;
--cta-bg: color-mix(in srgb, var(--accent) 32%, transparent);
--cta-border: color-mix(in srgb, #f5f7fa 38%, transparent);
--cta-text: #f7f8fa;
--cta-bg-hover: color-mix(in srgb, var(--accent) 46%, transparent);
--cta-border-hover: color-mix(in srgb, #f5f7fa 50%, transparent);
--cta-glow: 0 0 12px color-mix(in srgb, var(--accent) 24%, transparent);
--logo-accent: var(--todo);
--color-info: #b9c2cf;
--accent: #d7dde6;
--accent-text: #111318;
}
[data-color-theme="glass-silver"][data-theme="light"] {
--bg: #eef0f3;
--surface: color-mix(in srgb, #ffffff 75%, transparent);
--card: color-mix(in srgb, #ffffff 60%, transparent);
--card-hover: color-mix(in srgb, #ffffff 75%, transparent);
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: color-mix(in srgb, #5d6673 22%, transparent);
--text: #252a31;
--text-muted: #58616d;
--text-dim: #8a929d;
--todo: #5f6875;
--in-progress: #747f8c;
--in-progress-rgb: 116, 127, 140;
--in-review: #667383;
--triage: #907d53;
--done: #8a929d;
--color-success: #667383;
--color-error: #b24f4f;
--shadow-sm: 0 8px 16px color-mix(in srgb, #1f2933 8%, transparent);
--shadow-md: 0 14px 30px color-mix(in srgb, #1f2933 10%, transparent);
--shadow-lg: 0 22px 42px color-mix(in srgb, #1f2933 14%, transparent);
--shadow-glow: 0 0 10px color-mix(in srgb, var(--todo) 20%, transparent);
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent);
--focus-ring-strong: 0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent);
--cta-bg: color-mix(in srgb, var(--accent) 24%, transparent);
--cta-border: color-mix(in srgb, var(--accent) 38%, transparent);
--cta-text: #252a31;
--cta-bg-hover: color-mix(in srgb, var(--accent) 34%, transparent);
--cta-border-hover: color-mix(in srgb, var(--accent) 48%, transparent);
--cta-glow: 0 0 10px color-mix(in srgb, var(--accent) 22%, transparent);
--logo-accent: var(--todo);
--color-info: #747f8c;
--accent: #5f6875;
--accent-text: #ffffff;
}
[data-color-theme="glass-silver"] .card,
[data-color-theme="glass-silver"] .column {
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
background: color-mix(in srgb, #f5f7fa 8%, transparent);
border-color: color-mix(in srgb, #f5f7fa 24%, transparent);
}
[data-color-theme="glass-silver"][data-theme="light"] .card,
[data-color-theme="glass-silver"][data-theme="light"] .column {
background: color-mix(in srgb, #ffffff 60%, transparent);
border-color: color-mix(in srgb, #5d6673 24%, transparent);
}
[data-color-theme="glass-silver"] .btn {
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border-color: color-mix(in srgb, #f5f7fa 34%, transparent);
background: color-mix(in srgb, #f5f7fa 10%, transparent);
}
[data-color-theme="glass-silver"] .btn-primary,
[data-color-theme="glass-silver"] .btn-task-create {
background: linear-gradient(135deg, color-mix(in srgb, #d7dde6 35%, transparent), color-mix(in srgb, #9ca6b4 30%, transparent));
border-color: color-mix(in srgb, #f5f7fa 42%, transparent);
}
[data-color-theme="glass-silver"] .btn-primary:hover,
[data-color-theme="glass-silver"] .btn-task-create:hover {
background: linear-gradient(135deg, color-mix(in srgb, #d7dde6 50%, transparent), color-mix(in srgb, #9ca6b4 42%, transparent));
box-shadow: 0 12px 24px color-mix(in srgb, #030407 28%, transparent);
}
[data-color-theme="glass-silver"][data-theme="light"] .btn {
background: color-mix(in srgb, #ffffff 52%, transparent);
border-color: color-mix(in srgb, #5d6673 28%, transparent);
}
[data-color-theme="glass-silver"] .modal-overlay {
background: transparent;
backdrop-filter: none;
-webkit-backdrop-filter: none;
}
/* HORIZON - Warm sunset-inspired palette */
[data-color-theme="horizon"] {
--bg: #1c1e26;
--surface: #16161c;
--card: #1c1e26;
--card-hover: #252731;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #3b3d4f;
--text: #faf0ef;
--text-muted: #c9cbd1;
--text-dim: #8a8ca1;
--todo: #e59371;
--in-progress: #f08c42;
--in-progress-rgb: 240, 140, 66;
--in-review: #29d398;
--triage: #ee64ac;
--done: #7a7d91;
--color-success: #29d398;
--color-error: #e8646a;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #e8646a;
--cta-border: #f08c42;
--cta-text: #1c1e26;
--cta-bg-hover: #f08c42;
--cta-border-hover: #f8c967;
--cta-glow: 0 0 8px color-mix(in srgb, #e96370 30%, transparent);
--logo-accent: var(--todo);
--color-info: #f8c967;
--accent: #e59371;
--accent-text: #1c1e26;
}
[data-color-theme="horizon"][data-theme="light"] {
--bg: #fdf0ed;
--surface: #f9cec0;
--card: #fceee7;
--card-hover: #f5e2d8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #e8c8b8;
--text: #3a2a26;
--text-muted: #6a5a52;
--text-dim: #9a8a82;
--todo: #e8646a;
--in-progress: #f08c42;
--in-progress-rgb: 240, 140, 66;
--in-review: #29a87c;
--triage: #e8646a;
--done: #8a7d78;
--color-success: #29a87c;
--color-error: #d84050;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #e8646a;
--cta-border: #f08c42;
--cta-text: #fff;
--cta-bg-hover: #f08c42;
--cta-border-hover: #f8c967;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-bg) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #d88030;
--accent: #e8646a;
--accent-text: #fff;
}
/* VITEsse - Warm natural tones with teal accents */
[data-color-theme="vitesse"] {
--bg: #121817;
--surface: #0d1210;
--card: #1b2321;
--card-hover: #232e2a;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #2a3832;
--text: #d9d4cc;
--text-muted: #8a857a;
--text-dim: #5a5850;
--todo: #4c9a91;
--in-progress: #dca561;
--in-progress-rgb: 220, 165, 97;
--in-review: #7cb586;
--triage: #c0692d;
--done: #5a5850;
--color-success: #7cb586;
--color-error: #cb4b16;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #4c9a91;
--cta-border: #7cb586;
--cta-text: #0d1210;
--cta-bg-hover: #7cb586;
--cta-border-hover: #9cd4a6;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-bg) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #dca561;
--accent: #4c9a91;
--accent-text: #0d1210;
}
[data-color-theme="vitesse"][data-theme="light"] {
--bg: #f8f5f0;
--surface: #efe9e0;
--card: #faf7f2;
--card-hover: #f0ebe2;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d9d0c0;
--text: #2a2820;
--text-muted: #6a6860;
--text-dim: #9a9890;
--todo: #3a8578;
--in-progress: #c08040;
--in-progress-rgb: 192, 128, 64;
--in-review: #5a9a68;
--triage: #b06028;
--done: #8a8880;
--color-success: #5a9a68;
--color-error: #b04820;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #3a8578;
--cta-border: #5a9a68;
--cta-text: #fff;
--cta-bg-hover: #5a9a68;
--cta-border-hover: #7aba88;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #c08040;
--accent: #3a8578;
--accent-text: #fff;
}
/* OUTRUN - Retrowave/synthwave aesthetic */
[data-color-theme="outrun"] {
--bg: #0a0a14;
--surface: #0d0d1a;
--card: #14142b;
--card-hover: #1e1e3f;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #2a2a5a;
--text: #f0e8ff;
--text-muted: #a090c8;
--text-dim: #6a60a0;
--todo: #ff2d95;
--in-progress: #b537f2;
--in-progress-rgb: 181, 55, 242;
--in-review: #00e5ff;
--triage: #ffab00;
--done: #6a60a0;
--color-success: #00e5ff;
--color-error: #ff2d95;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--accent) 40%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #b537f2;
--cta-border: #ff2d95;
--cta-text: #fff;
--cta-bg-hover: #ff2d95;
--cta-border-hover: #ff6bbf;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #00e5ff;
--accent: #b537f2;
--accent-text: #fff;
}
[data-color-theme="outrun"][data-theme="light"] {
--bg: #f0f0f5;
--surface: #e8e8ef;
--card: #f5f5fa;
--card-hover: #ececf0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c8c8d8;
--text: #2a2a40;
--text-muted: #606080;
--text-dim: #9090a8;
--todo: #d02080;
--in-progress: #9030c8;
--in-progress-rgb: 144, 48, 200;
--in-review: #00a8b8;
--triage: #c08000;
--done: #8080a0;
--color-success: #00a8b8;
--color-error: #d02080;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--accent) 15%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #9030c8;
--cta-border: #d02080;
--cta-text: #fff;
--cta-bg-hover: #d02080;
--cta-border-hover: #e04090;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #00a8b8;
--accent: #9030c8;
--accent-text: #fff;
}
/* SNazzy - Bright playful colors */
[data-color-theme="snazzy"] {
--bg: #282a36;
--surface: #1e1f29;
--card: #343746;
--card-hover: #404455;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #44475a;
--text: #f8f8f2;
--text-muted: #a8a8b8;
--text-dim: #707080;
--todo: #ff5c57;
--in-progress: #5af78e;
--in-progress-rgb: 90, 247, 142;
--in-review: #f3f99d;
--triage: #ff6f91;
--done: #707080;
--color-success: #5af78e;
--color-error: #ff5c57;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #50fa7b;
--cta-border: #5af78e;
--cta-text: #282a36;
--cta-bg-hover: #5af78e;
--cta-border-hover: #8afaaa;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #f3f99d;
--accent: #ff6f91;
--accent-text: #282a36;
}
[data-color-theme="snazzy"][data-theme="light"] {
--bg: #fafafa;
--surface: #f0f0f2;
--card: #ffffff;
--card-hover: #f5f5f8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #dcdce0;
--text: #2a2a32;
--text-muted: #606070;
--text-dim: #909098;
--todo: #d04040;
--in-progress: #30a050;
--in-progress-rgb: 48, 160, 80;
--in-review: #a0a030;
--triage: #d06070;
--done: #808088;
--color-success: #30a050;
--color-error: #d04040;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #28a048;
--cta-border: #30a050;
--cta-text: #fff;
--cta-bg-hover: #30a050;
--cta-border-hover: #50c070;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #a0a030;
--accent: #d06070;
--accent-text: #fff;
}
/* PORPLE - Rich purple with gold accents */
[data-color-theme="porple"] {
--bg: #292d3e;
--surface: #1e2030;
--card: #333751;
--card-hover: #3e4265;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #4a4e6a;
--text: #d0d4e8;
--text-muted: #9094b0;
--text-dim: #7074880;
--todo: #c792ea;
--in-progress: #82aaff;
--in-progress-rgb: 130, 170, 255;
--in-review: #c3e88d;
--triage: #f78c6c;
--done: #707488;
--color-success: #c3e88d;
--color-error: #f07178;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 40%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #9a7ee8;
--cta-border: #c792ea;
--cta-text: #1e2030;
--cta-bg-hover: #c792ea;
--cta-border-hover: #d8b0ff;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #ffcb6b;
--accent: #c792ea;
--accent-text: #1e2030;
}
[data-color-theme="porple"][data-theme="light"] {
--bg: #f5f3f7;
--surface: #eae7ef;
--card: #ffffff;
--card-hover: #f0eef5;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c8c4d0;
--text: #2a2840;
--text-muted: #606080;
--text-dim: #9090a8;
--todo: #9060d8;
--in-progress: #4080c8;
--in-progress-rgb: 64, 128, 200;
--in-review: #60a050;
--triage: #d07050;
--done: #8080a0;
--color-success: #60a050;
--color-error: #c04050;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #8058c8;
--cta-border: #9060d8;
--cta-text: #fff;
--cta-bg-hover: #9060d8;
--cta-border-hover: #a080e8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #d0a030;
--accent: #9060d8;
--accent-text: #fff;
}
/* ESPRESSO - Deep coffee browns */
[data-color-theme="espresso"] {
--bg: #2c1f1a;
--surface: #231813;
--card: #3d2b22;
--card-hover: #4a352c;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #5a453a;
--text: #e8ddd5;
--text-muted: #a09080;
--text-dim: #706050;
--todo: #d4a574;
--in-progress: #c17d56;
--in-progress-rgb: 193, 125, 86;
--in-review: #8f6552;
--triage: #d47a6a;
--done: #706050;
--color-success: #8f6552;
--color-error: #d47a6a;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #c17d56;
--cta-border: #d4a574;
--cta-text: #231813;
--cta-bg-hover: #d4a574;
--cta-border-hover: #e4b884;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #8f6552;
--accent: #d4a574;
--accent-text: #231813;
}
[data-color-theme="espresso"][data-theme="light"] {
--bg: #f5ece4;
--surface: #ebe1d6;
--card: #fff8f0;
--card-hover: #f0e8e0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d0c0b0;
--text: #2a2018;
--text-muted: #6a5a4a;
--text-dim: #9a8a78;
--todo: #a07050;
--in-progress: #906040;
--in-progress-rgb: 144, 96, 64;
--in-review: #706050;
--triage: #b06050;
--done: #8a7a68;
--color-success: #706050;
--color-error: #b06050;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #906040;
--cta-border: #a07050;
--cta-text: #fff;
--cta-bg-hover: #a07050;
--cta-border-hover: #b08060;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #806040;
--accent: #a07050;
--accent-text: #fff;
}
/* MARS - Red planet inspired */
[data-color-theme="mars"] {
--bg: #1a1210;
--surface: #140e0c;
--card: #2a1e18;
--card-hover: #352820;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #4a3828;
--text: #e8ddd0;
--text-muted: #a09080;
--text-dim: #706050;
--todo: #c1440e;
--in-progress: #e77d3d;
--in-progress-rgb: 231, 125, 61;
--in-review: #d4874d;
--triage: #c44030;
--done: #706050;
--color-success: #d4874d;
--color-error: #c44030;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 50%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #c1440e;
--cta-border: #e77d3d;
--cta-text: #fff;
--cta-bg-hover: #e77d3d;
--cta-border-hover: #f7a060;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-bg) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #d4874d;
--accent: #c1440e;
--accent-text: #fff;
}
[data-color-theme="mars"][data-theme="light"] {
--bg: #f5ece6;
--surface: #ebe0d4;
--card: #fff5ee;
--card-hover: #f0e8e0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d0c0b0;
--text: #2a2018;
--text-muted: #6a5a4a;
--text-dim: #9a8a78;
--todo: #a03010;
--in-progress: #c06030;
--in-progress-rgb: 192, 96, 48;
--in-review: #b07040;
--triage: #a03020;
--done: #8a7a68;
--color-success: #b07040;
--color-error: #a03020;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #a03010;
--cta-border: #c06030;
--cta-text: #fff;
--cta-bg-hover: #c06030;
--cta-border-hover: #d08050;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-bg) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #b07040;
--accent: #a03010;
--accent-text: #fff;
}
/* POIMANDRES - Pastel blue/purple with teal accents */
[data-color-theme="poimandres"] {
--bg: #1a1b26;
--surface: #14151f;
--card: #252736;
--card-hover: #303245;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #3d3e50;
--text: #d4d7e5;
--text-muted: #8b8fa8;
--text-dim: #5d5f78;
--todo: #89ddff;
--in-progress: #5de4c7;
--in-progress-rgb: 93, 228, 199;
--in-review: #b4bcff;
--triage: #f0c674;
--done: #5d5f78;
--color-success: #5de4c7;
--color-error: #d0679d;
--shadow-lg: 0 4px 24px color-mix(in srgb, #000000 40%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #5de4c7;
--cta-border: #89ddff;
--cta-text: #14151f;
--cta-bg-hover: #89ddff;
--cta-border-hover: #aae8ff;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #b4bcff;
--accent: #89ddff;
--accent-text: #14151f;
}
[data-color-theme="poimandres"][data-theme="light"] {
--bg: #f0f0f5;
--surface: #e6e6ee;
--card: #f5f5fa;
--card-hover: #ececf0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c8c8d8;
--text: #2a2b40;
--text-muted: #606080;
--text-dim: #9090a8;
--todo: #4090c0;
--in-progress: #30a090;
--in-progress-rgb: 48, 160, 144;
--in-review: #8070c0;
--triage: #b08030;
--done: #8080a0;
--color-success: #30a090;
--color-error: #c04080;
--shadow-lg: 0 4px 24px color-mix(in srgb, var(--text) 10%, transparent);
--shadow: var(--shadow-lg);
--cta-bg: #30a090;
--cta-border: #4090c0;
--cta-text: #fff;
--cta-bg-hover: #4090c0;
--cta-border-hover: #60a8d8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--color-success) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #8070c0;
--accent: #4090c0;
--accent-text: #fff;
}
/* RUST - Deep oxidized red-brown with warm rust accents */
[data-color-theme="rust"] {
--bg: #0f0b09;
--surface: #1a1410;
--card: #231b14;
--card-hover: #2e241c;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #4a3528;
--text: #f0e8e0;
--text-muted: #a09080;
--text-dim: #605040;
--todo: #e06830;
--in-progress: #e88040;
--in-progress-rgb: 232, 128, 64;
--in-review: #40b8b0;
--triage: #e05030;
--done: #a08870;
--color-success: #40b8b0;
--color-error: #e04030;
--cta-bg: #a04020;
--cta-border: #c05828;
--cta-text: #fff;
--cta-bg-hover: #c05828;
--cta-border-hover: #d87038;
--cta-glow: 0 0 8px color-mix(in srgb, var(--accent) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #58a8d0;
--accent: #c75b2a;
--accent-text: #fff;
}
[data-color-theme="rust"][data-theme="light"] {
--bg: #f5efe8;
--surface: #ebe3d8;
--card: #fdfaf6;
--card-hover: #f5efe8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d8d0c0;
--text: #1a1510;
--text-muted: #685a48;
--text-dim: #8a7a66;
--todo: #a04020;
--in-progress: #b85828;
--in-progress-rgb: 184, 88, 40;
--in-review: #209090;
--triage: #c03820;
--done: #887868;
--color-success: #209090;
--color-error: #c03020;
--cta-bg: #803818;
--cta-border: #a04820;
--cta-text: #fff;
--cta-bg-hover: #a04820;
--cta-border-hover: #b85a28;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2878a0;
--accent: #a04520;
--accent-text: #fff;
}
/* COPPER - Warm metallic copper tones */
[data-color-theme="copper"] {
--bg: #0e0c0a;
--surface: #181410;
--card: #211c16;
--card-hover: #2c251c;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #4d3d2e;
--text: #f0e8e0;
--text-muted: #a09080;
--text-dim: #605040;
--todo: #e89545;
--in-progress: #f0a858;
--in-progress-rgb: 240, 168, 88;
--in-review: #40c0a8;
--triage: #e06838;
--done: #a09078;
--color-success: #40c0a8;
--color-error: #e05830;
--cta-bg: #b06830;
--cta-border: #c87840;
--cta-text: #fff;
--cta-bg-hover: #c87840;
--cta-border-hover: #d88a50;
--cta-glow: 0 0 8px color-mix(in srgb, var(--accent) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #60a8d8;
--accent: #d4854a;
--accent-text: #fff;
}
[data-color-theme="copper"][data-theme="light"] {
--bg: #f3ede6;
--surface: #e8e0d6;
--card: #fdfaf7;
--card-hover: #f5efe8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d8d0c0;
--text: #1a1512;
--text-muted: #665a50;
--text-dim: #8a7a68;
--todo: #905820;
--in-progress: #a87030;
--in-progress-rgb: 168, 112, 48;
--in-review: #30a090;
--triage: #b04820;
--done: #887868;
--color-success: #30a090;
--color-error: #b03020;
--cta-bg: #785020;
--cta-border: #906828;
--cta-text: #fff;
--cta-bg-hover: #906828;
--cta-border-hover: #a87830;
--cta-glow: 0 0 8px color-mix(in srgb, #905420 30%, transparent);
--logo-accent: var(--todo);
--color-info: #306090;
--accent: #b06830;
--accent-text: #fff;
}
/* FOUNDRY - Molten metal with orange-yellow glows */
[data-color-theme="foundry"] {
--bg: #0c0806;
--surface: #15100c;
--card: #1e1610;
--card-hover: #28201a;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #40301e;
--text: #f0e8e0;
--text-muted: #a09080;
--text-dim: #605040;
--todo: #ffab20;
--in-progress: #ffc040;
--in-progress-rgb: 255, 192, 64;
--in-review: #40c0c0;
--triage: #ff6020;
--done: #a08060;
--color-success: #40c0c0;
--color-error: #ff4020;
--cta-bg: #c07808;
--cta-border: #e08a10;
--cta-text: #1a1008;
--cta-bg-hover: #e08a10;
--cta-border-hover: #f09a18;
--cta-glow: 0 0 12px color-mix(in srgb, var(--cta-border-hover) 40%, transparent);
--logo-accent: var(--todo);
--color-info: #60b0e0;
--accent: #f0960a;
--accent-text: #1a1008;
}
[data-color-theme="foundry"][data-theme="light"] {
--bg: #f5f0e6;
--surface: #ebe4d6;
--card: #fdfaf5;
--card-hover: #f5f0e8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d0c4b0;
--text: #1a1510;
--text-muted: #685a48;
--text-dim: #8a7a66;
--todo: #c07808;
--in-progress: #d08a10;
--in-progress-rgb: 208, 138, 16;
--in-review: #208080;
--triage: #a04818;
--done: #787068;
--color-success: #208080;
--color-error: #a03020;
--cta-bg: #906008;
--cta-border: #b07810;
--cta-text: #fff;
--cta-bg-hover: #b07810;
--cta-border-hover: #c08818;
--cta-glow: 0 0 8px color-mix(in srgb, #c07810 30%, transparent);
--logo-accent: var(--todo);
--color-info: #3070a0;
--accent: #c07808;
--accent-text: #fff;
}
/* CARBON - Graphite-like carbon fiber aesthetic */
[data-color-theme="carbon"] {
--bg: #0a0b0d;
--surface: #111318;
--card: #181b22;
--card-hover: #222630;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #2a3040;
--text: #e8ecf0;
--text-muted: #8090a0;
--text-dim: #505860;
--todo: #6a9acf;
--in-progress: #7ab0e0;
--in-progress-rgb: 122, 176, 224;
--in-review: #80c0c0;
--triage: #c08080;
--done: #687080;
--color-success: #80c0c0;
--color-error: #c06060;
--cta-bg: #406080;
--cta-border: #5a7898;
--cta-text: #fff;
--cta-bg-hover: #5a7898;
--cta-border-hover: #6a8aac;
--cta-glow: 0 0 8px color-mix(in srgb, #5a7aa0 30%, transparent);
--logo-accent: var(--todo);
--color-info: #6090c0;
--accent: #5a8abf;
--accent-text: #fff;
}
[data-color-theme="carbon"][data-theme="light"] {
--bg: #eef0f4;
--surface: #e2e6ec;
--card: #f5f7fa;
--card-hover: #eef2f6;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c0c8d0;
--text: #1a2028;
--text-muted: #586070;
--text-dim: #78808a;
--todo: #3a6090;
--in-progress: #4878a0;
--in-progress-rgb: 72, 120, 160;
--in-review: #4090a0;
--triage: #a05050;
--done: #687080;
--color-success: #4090a0;
--color-error: #a03030;
--cta-bg: #305878;
--cta-border: #4070a0;
--cta-text: #fff;
--cta-bg-hover: #4070a0;
--cta-border-hover: #5080b0;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #306090;
--accent: #3a6a9f;
--accent-text: #fff;
}
/* SANDSTONE - Warm desert sandstone */
[data-color-theme="sandstone"] {
--bg: #1a1712;
--surface: #241f18;
--card: #2e2820;
--card-hover: #38322a;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #4a4035;
--text: #f0e8dc;
--text-muted: #a09080;
--text-dim: #706858;
--todo: #d4a06a;
--in-progress: #e0b080;
--in-progress-rgb: 224, 176, 128;
--in-review: #c09060;
--triage: #b08070;
--done: #a09080;
--color-success: #80a070;
--color-error: #b06060;
--cta-bg: #a07840;
--cta-border: #c09060;
--cta-text: #fff;
--cta-bg-hover: #b08850;
--cta-border-hover: #d0a070;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #90a8c0;
--accent: #c4905a;
--accent-text: #fff;
}
[data-color-theme="sandstone"][data-theme="light"] {
--bg: #f5f0e8;
--surface: #ebe4d8;
--card: #faf6ee;
--card-hover: #f0e8e0;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d0c8b8;
--text: #2a2418;
--text-muted: #605848;
--text-dim: #888070;
--todo: #a07040;
--in-progress: #b08050;
--in-progress-rgb: 176, 128, 80;
--in-review: #907060;
--triage: #c09080;
--done: #807060;
--color-success: #607840;
--color-error: #a04040;
--cta-bg: #8a6830;
--cta-border: #a08050;
--cta-text: #fff;
--cta-bg-hover: #9a7840;
--cta-border-hover: #b09060;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #5888a8;
--accent: #a07040;
--accent-text: #fff;
}
/* LAGOON - Deep tropical lagoon */
[data-color-theme="lagoon"] {
--bg: #0a1214;
--surface: #101c1f;
--card: #162628;
--card-hover: #1c3034;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #2a4045;
--text: #e0f0f0;
--text-muted: #80a0a8;
--text-dim: #507880;
--todo: #50d8c0;
--in-progress: #60e8d0;
--in-progress-rgb: 96, 232, 208;
--in-review: #48c0b0;
--triage: #c08080;
--done: #70a8a0;
--color-success: #50c8b0;
--color-error: #b05060;
--cta-bg: #308880;
--cta-border: #40a8a0;
--cta-text: #fff;
--cta-bg-hover: #409898;
--cta-border-hover: #50b8b0;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #50a8c0;
--accent: #40c8b0;
--accent-text: #fff;
}
[data-color-theme="lagoon"][data-theme="light"] {
--bg: #eef5f3;
--surface: #e0ebe8;
--card: #f0f8f5;
--card-hover: #e4f0ec;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #b0c8c0;
--text: #102420;
--text-muted: #486058;
--text-dim: #688078;
--todo: #208070;
--in-progress: #289080;
--in-progress-rgb: 40, 144, 128;
--in-review: #308078;
--triage: #a06060;
--done: #587878;
--color-success: #308070;
--color-error: #983030;
--cta-bg: #287060;
--cta-border: #389080;
--cta-text: #fff;
--cta-bg-hover: #308070;
--cta-border-hover: #40a090;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2880a0;
--accent: #2a9080;
--accent-text: #fff;
}
/* FROST - Cool icy blue-white */
[data-color-theme="frost"] {
--bg: #0c0e14;
--surface: #121520;
--card: #1a1e2c;
--card-hover: #222638;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #2a3048;
--text: #e8f0f8;
--text-muted: #8098b0;
--text-dim: #506878;
--todo: #8ac8f8;
--in-progress: #9ad8ff;
--in-progress-rgb: 154, 216, 255;
--in-review: #78b8e8;
--triage: #c08080;
--done: #6878a0;
--color-success: #70b8d0;
--color-error: #b06070;
--cta-bg: #4070a8;
--cta-border: #5888c0;
--cta-text: #fff;
--cta-bg-hover: #5080b8;
--cta-border-hover: #6898d0;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #60a0c8;
--accent: #7ab8e8;
--accent-text: #fff;
}
[data-color-theme="frost"][data-theme="light"] {
--bg: #f0f4f8;
--surface: #e4eaf0;
--card: #f8fafc;
--card-hover: #ecf2f8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #b0c0d0;
--text: #101828;
--text-muted: #485868;
--text-dim: #687888;
--todo: #3078a8;
--in-progress: #4088b8;
--in-progress-rgb: 64, 136, 184;
--in-review: #407898;
--triage: #a06060;
--done: #586878;
--color-success: #3088a0;
--color-error: #982830;
--cta-bg: #2870a0;
--cta-border: #3888b8;
--cta-text: #fff;
--cta-bg-hover: #3080b0;
--cta-border-hover: #4898c8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #2080a8;
--accent: #4a90c0;
--accent-text: #fff;
}
/* LAVENDER - Soft purple-lavender tones */
[data-color-theme="lavender"] {
--bg: #14101a;
--surface: #1c1624;
--card: #241e30;
--card-hover: #2c2838;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #3a3050;
--text: #f0e8f8;
--text-muted: #a090b8;
--text-dim: #706880;
--todo: #c8a0e8;
--in-progress: #d8b0f0;
--in-progress-rgb: 216, 176, 240;
--in-review: #b890d8;
--triage: #c080a0;
--done: #9880a8;
--color-success: #a090c0;
--color-error: #b06878;
--cta-bg: #8060a0;
--cta-border: #9878b8;
--cta-text: #fff;
--cta-bg-hover: #9070b0;
--cta-border-hover: #a888c8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #9090c0;
--accent: #b890d8;
--accent-text: #fff;
}
[data-color-theme="lavender"][data-theme="light"] {
--bg: #f4f0f8;
--surface: #e8e2f0;
--card: #faf8fc;
--card-hover: #f2eef8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #c8c0d8;
--text: #18101c;
--text-muted: #504858;
--text-dim: #706878;
--todo: #8060a0;
--in-progress: #9070b0;
--in-progress-rgb: 144, 112, 176;
--in-review: #7870a0;
--triage: #a08090;
--done: #786878;
--color-success: #607898;
--color-error: #983048;
--cta-bg: #685090;
--cta-border: #8068a8;
--cta-text: #fff;
--cta-bg-hover: #7860a0;
--cta-border-hover: #9078b8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #6868a0;
--accent: #8060a8;
--accent-text: #fff;
}
/* NEON-BLOOM - Vibrant neon pastels */
[data-color-theme="neon-bloom"] {
--bg: #120a18;
--surface: #1a1024;
--card: #241630;
--card-hover: #2c1e3c;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #3a2850;
--text: #f8e8f8;
--text-muted: #b090b8;
--text-dim: #806880;
--todo: #f080d0;
--in-progress: #ff90e0;
--in-progress-rgb: 255, 144, 224;
--in-review: #e870c0;
--triage: #c0a0a8;
--done: #b090c0;
--color-success: #c0d0a0;
--color-error: #c06878;
--cta-bg: #a04898;
--cta-border: #c060b8;
--cta-text: #fff;
--cta-bg-hover: #b058a8;
--cta-border-hover: #d070c8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #b090d0;
--accent: #e870c0;
--accent-text: #fff;
}
[data-color-theme="neon-bloom"][data-theme="light"] {
--bg: #f8f0f8;
--surface: #f0e4f0;
--card: #fcf8fc;
--card-hover: #f8f0f8;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d8d0e0;
--text: #18081c;
--text-muted: #584868;
--text-dim: #786888;
--todo: #a03090;
--in-progress: #b040a0;
--in-progress-rgb: 176, 64, 160;
--in-review: #9838a0;
--triage: #a08090;
--done: #786878;
--color-success: #587898;
--color-error: #982848;
--cta-bg: #8030a0;
--cta-border: #9848b8;
--cta-text: #fff;
--cta-bg-hover: #9040b0;
--cta-border-hover: #a858c8;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #7878c0;
--accent: #c040a0;
--accent-text: #fff;
}
/* SEPIA - Warm vintage sepia photography aesthetic */
[data-color-theme="sepia"] {
--bg: #161210;
--surface: #201a16;
--card: #2a2420;
--card-hover: #342e28;
--surface-hover: color-mix(in srgb, var(--surface) 90%, var(--text) 10%);
--border: #4a4038;
--text: #f0e8d8;
--text-muted: #a09078;
--text-dim: #706858;
--todo: #d8b878;
--in-progress: #e8c888;
--in-progress-rgb: 232, 200, 136;
--in-review: #c8a868;
--triage: #b8a088;
--done: #908070;
--color-success: #a0b080;
--color-error: #b87068;
--cta-bg: #907850;
--cta-border: #a89068;
--cta-text: #fff;
--cta-bg-hover: #a08858;
--cta-border-hover: #b8a078;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #a8a0b0;
--accent: #c8a868;
--accent-text: #fff;
}
[data-color-theme="sepia"][data-theme="light"] {
--bg: #f5f0e4;
--surface: #ece4d4;
--card: #faf8f0;
--card-hover: #f4eedc;
--surface-hover: color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
--border: #d0c8b8;
--text: #201810;
--text-muted: #584838;
--text-dim: #786858;
--todo: #907040;
--in-progress: #a08050;
--in-progress-rgb: 160, 128, 80;
--in-review: #886838;
--triage: #a08878;
--done: #786858;
--color-success: #607038;
--color-error: #983020;
--cta-bg: #786030;
--cta-border: #907840;
--cta-text: #fff;
--cta-bg-hover: #887038;
--cta-border-hover: #a08848;
--cta-glow: 0 0 8px color-mix(in srgb, var(--cta-border) 30%, transparent);
--logo-accent: var(--todo);
--color-info: #888098;
--accent: #9a8050;
--accent-text: #fff;
}