Fix glass theme: repair broken Default impl that blocked all builds

Commit a01f258 removed Theme::System but missed Settings::default(),
so the crate failed to compile and every desktop launch kept spawning
a stale backend binary that rejected 'glass'. Also untangles the
glass palette CSS that was duplicated as nested blocks inside the
neon rule, and re-applies the theme reactively when settings change.
This commit is contained in:
Avi 2026-08-24 19:39:32 -05:00
commit bfe14f0d97
4 changed files with 9 additions and 627 deletions

View file

@ -239,7 +239,11 @@ export function AppProvider({ children }: { children: ReactNode }) {
const copyText = useCallback((text: string) => api.copyText(text), []);
useThemeSync(state?.settings.theme);
useEffect(() => {
if (state?.settings.theme) {
applyTheme(state.settings.theme);
}
}, [state?.settings.theme]);
const value = useMemo<AppContextValue>(
() => ({

View file

@ -62,655 +62,33 @@
Obsidian theme (MIT): black panels, deep-pink primary (#ff1493), purple
secondary (#8b00ff family), yellow highlights (#ffd700). */
:root[data-theme='neon'] {
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--bg: #000000;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--surface: #0b0b0e;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--surface-2: #131318;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--surface-hover: #191921;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--border: #2b1224;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--border-strong: #4d1c3d;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--text: #f5f2f7;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--text-muted: #a89bb0;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--primary: #ff1493;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--primary-hover: #ff4fb0;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--primary-soft: #2b0a1e;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--on-primary: #ffffff;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--danger: #ff3355;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--danger-soft: #330810;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--warning: #ffd700;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--warning-soft: #332b03;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--success: #00e68a;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--success-soft: #04301f;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--info: #b388ff;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--info-soft: #1c1035;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--focus: #ff1493;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--shadow: 0 1px 2px rgba(0, 0, 0, 0.6), 0 8px 24px rgba(255, 20, 147, 0.07);
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.85), 0 0 32px rgba(255, 20, 147, 0.12);
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
}
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme
(MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;