/* GENERATED FILE ,  DO NOT EDIT.
 * Source:  themes/themes.json
 * Rebuild: node scripts/build-themes.mjs
 *
 * To add, remove or change a theme, edit that file and run the build. Anything
 * hand-edited here is lost on the next run. */


/* 6 themes: (default), paper, midnight, contrast, comfy, cat */


:root{
color-scheme:dark;
  --t-bg:radial-gradient(circle at 18% 8%,#1b1a24 0%,#0c0c10 45%);
  --t-panel:#121216;
  --t-panel2:#1b1b20;
  --t-panel3:#232329;
  --t-surface:#15151a;
  --t-surface2:#1b1b20;
  --t-surface3:#222228;
  --t-ink:#f3f1ea;
  --t-soft:#8f8a80;
  --t-dim:#7d766a;
  --t-border:#26262c;
  --t-border-soft:rgba(255,255,255,.12);
  --t-border-strong:#3a3a42;
  --t-hairline:rgba(255,255,255,.04);
  --t-line:rgba(255,255,255,.09);
  --t-line2:rgba(255,255,255,.22);
  --t-accent:#ff5e3a;
  --t-accent-hover:#ff7a5c;
  --t-accent-deep:#7a2e12;
  --t-accent-soft:#ff9d7a;
  --t-accent-ink:#fff;
  --t-ok:#4dbb7d;
  --t-warn:#e0a93f;
  --t-err:#e0645a;
  --t-err-deep:#7c231d;
  --t-warn-deep:#7c5200;
  --t-focus:#ff7a5c;
  --t-viewer-bg:var(--t-bg);
  --t-shadow-base:rgba(0,0,0,.65);
  --t-shadow-accent:0 24px 74px -22px rgba(255,94,58,.16);
  --t-inset-hi:rgba(255,255,255,.04);
  --t-glass-alpha:55%;
  --t-glass-blur:saturate(180%) blur(20px);
  --t-scroll-thumb:rgba(255,255,255,.08);
  --t-scroll-thumb-hover:rgba(255,255,255,.2);
  --t-serif:'Fraunces',Georgia,serif;
  --t-sans:'Space Grotesk',sans-serif;
  --t-mono:'Spline Sans Mono',ui-monospace,monospace;
  --t-read:'Source Serif 4',Georgia,serif;
  /* ---- component tokens (derived unless overridden) ---- */
  --glass-bg:color-mix(in srgb,var(--surface) 82%,transparent);
  --glass-blur:saturate(180%) blur(20px);
  --glass-shadow:var(--shadow-lg);
  --glass-border:var(--border-s);
  --bar-bg:color-mix(in srgb,var(--surface) 55%,transparent);
  --bar-blur:saturate(160%) blur(14px);
  --bar-shadow:none;
  --bar-border:var(--border);
  --nav-bg:color-mix(in srgb,var(--surface) 72%,transparent);
  --nav-blur:saturate(180%) blur(20px);
  --nav-shadow:none;
  --nav-border:var(--border);
  --ctl-bg:var(--surface-2);
  --ctl-border:var(--border);
  --ctl-fg:var(--muted);
  --ctl-shadow:var(--shadow-xs);
  --ctl-inset:inset 0 1px 0 rgba(255,255,255,.05);
  --ctl-hover-bg:var(--surface-3);
  --ctl-hover-border:var(--border-strong);
  --ctl-hover-fg:var(--fg);
  --ctl-hover-shadow:var(--shadow-sm);
  --ctl-hover-inset:inset 0 1px 0 rgba(255,255,255,.07);
  --ctl-active-bg:linear-gradient(180deg,var(--accent-h),var(--accent));
  --ctl-active-border:var(--accent);
  --ctl-active-fg:var(--accent-ink);
  --ctl-active-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 6px 14px -4px var(--accent-glow);
  --ctl-active-inset:inset 0 1px 0 rgba(255,255,255,.28);
  --primary-bg:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,white 8%) 0%,var(--accent) 100%);
  --primary-border:color-mix(in srgb,var(--accent) 84%,black 16%);
  --primary-fg:var(--accent-ink);
  --primary-shadow:inset 0 1px 0 rgba(255,255,255,.32), inset 0 -1px 0 rgba(0,0,0,.16), 0 8px 20px -6px var(--accent-glow), var(--shadow-xs);
  --primary-inset:inset 0 1px 0 rgba(255,255,255,.32), inset 0 -1px 0 rgba(0,0,0,.16);
  --primary-hover-bg:linear-gradient(180deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 92%,black 8%) 100%);
  --primary-hover-border:color-mix(in srgb,var(--accent) 84%,black 16%);
  --primary-hover-shadow:inset 0 1px 0 rgba(255,255,255,.4), inset 0 -1px 0 rgba(0,0,0,.18), 0 12px 28px -6px var(--accent-glow), var(--shadow-sm);
  --primary-hover-inset:inset 0 1px 0 rgba(255,255,255,.4), inset 0 -1px 0 rgba(0,0,0,.18);
  --primary-active-bg:var(--accent);
  --primary-active-shadow:inset 0 1px 0 rgba(255,255,255,.22), inset 0 -1px 0 rgba(0,0,0,.22), 0 4px 12px -4px var(--accent-glow);
  --primary-active-inset:inset 0 1px 0 rgba(255,255,255,.22), inset 0 -1px 0 rgba(0,0,0,.22);
  --secondary-bg:var(--surface-2);
  --secondary-border:var(--border);
  --secondary-fg:var(--fg);
  --secondary-shadow:inset 0 1px 0 rgba(255,255,255,.05), var(--shadow-xs);
  --secondary-hover-bg:var(--surface-3);
  --secondary-hover-border:var(--border-strong);
  --secondary-hover-fg:var(--fg);
  --secondary-hover-shadow:inset 0 1px 0 rgba(255,255,255,.07), var(--shadow-sm);
  --danger-bg:transparent;
  --danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --danger-fg:var(--err);
  --danger-shadow:none;
  --danger-hover-bg:color-mix(in srgb,var(--err) 14%,var(--surface-2));
  --danger-hover-border:var(--err);
  --danger-hover-fg:var(--err);
  --input-bg:var(--surface);
  --input-border:var(--border);
  --input-fg:var(--fg);
  --input-shadow:var(--shadow-inset);
  --input-focus-border:var(--accent);
  --input-focus-shadow:var(--ring-soft), var(--shadow-inset);
  --card-bg:var(--surface);
  --card-border:var(--border);
  --chip-bg:var(--surface-2);
  --chip-border:var(--border);
  --chip-fg:var(--fg);
  --chip-shadow:inset 0 1px 0 rgba(255,255,255,.05), var(--shadow-xs);
  --chip-inset:inset 0 1px 0 rgba(255,255,255,.05);
  --chip-hover-bg:var(--surface-3);
  --chip-hover-border:var(--border-strong);
  --chip-hover-shadow:inset 0 1px 0 rgba(255,255,255,.07), var(--shadow-sm);
  --chip-hover-inset:inset 0 1px 0 rgba(255,255,255,.07);
  --badge-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --badge-border:color-mix(in srgb,var(--accent) 32%,transparent);
  --badge-fg:var(--accent);
  --bubble-user-bg:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 90%,transparent),var(--surface));
  --bubble-user-border:var(--border-s);
  --bubble-user-shadow:var(--shadow-inset), 0 4px 14px -10px rgba(0,0,0,.5);
  --bubble-ai-border:var(--accent);
  --scroll-thumb:var(--t-scroll-thumb, rgba(255,255,255,.08));
  --scroll-thumb-hover:var(--t-scroll-thumb-hover, rgba(255,255,255,.2));
  --seg-bg:transparent;
  --seg-fg:var(--soft);
  --seg-on-bg:var(--ink);
  --seg-on-fg:var(--paper);
  --ibtn-danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --ibtn-danger-fg:var(--err);
  --ibtn-disabled-opacity:.35;
  --tool-card-hover-bg:var(--surface-3);
  --tool-card-hover-border:color-mix(in srgb,var(--accent) 42%,var(--border));
  --tc-icon-bg:transparent;
  --tc-icon-border:var(--accent);
  --tc-icon-hover-bg:var(--accent);
  --tc-icon-hover-border:var(--accent);
  --tc-icon-hover-fg:var(--accent-ink);
  --tc-icon-hover-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 14px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-icon-active-bg:linear-gradient(180deg,var(--accent-h),var(--accent));
  --tc-icon-active-border:var(--accent);
  --tc-icon-active-fg:var(--accent-ink);
  --tc-icon-active-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 6px 14px -4px var(--accent-glow);
  --tc-new-shadow:0 2px 6px -2px color-mix(in srgb,var(--accent) 45%,transparent);
  --rail-btn-hover-bg:transparent;
  --rail-btn-hover-border:var(--border);
  --rail-btn-hover-fg:var(--ink);
  --rail-btn-on-bg:transparent;
  --rail-btn-on-fg:var(--accent);
  --home-search-bg:color-mix(in srgb,var(--surface) 82%,transparent);
  --home-search-border:var(--border);
  --home-search-shadow:none;
  --home-search-focus-border:var(--accent);
  --home-search-focus-shadow:var(--ring-soft);
  --chat-in-bg:color-mix(in srgb,var(--surface) 96%,transparent);
  --chat-in-border:var(--border);
  --chat-in-shadow:none;
  --chat-in-focus-border:var(--accent);
  --chat-in-focus-shadow:var(--ring-soft);
  --ai-model-select-bg:var(--surface-2);
  --ai-model-select-border:var(--border-s);
  --ai-model-btn-bg:var(--surface-2);
  --ai-model-btn-border:var(--border-s);
  --ai-model-menu-shadow:var(--shadow-xl);
  --net-badge-bg:none;
  --net-badge-border:transparent;
  --net-badge-fg:var(--muted);
  --net-badge-hover-border:var(--accent);
  --net-badge-hover-fg:var(--accent);
  --nb-banner-bg:color-mix(in srgb,var(--accent) 8%,var(--surface));
  --nb-banner-border:color-mix(in srgb,var(--accent) 30%,var(--border));
  --nb-banner-fg:var(--accent);
  --cal-cell-bg:var(--surface);
  --cal-dow-bg:var(--surface);
  --cal-cell-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --cev-bg:transparent;
  --cev-fg:var(--ink);
  --cev-task-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --cev-task-border:color-mix(in srgb,var(--accent) 65%,transparent);
  --cev-red-bg:color-mix(in srgb,var(--err) 12%,transparent);
  --cev-red-border:color-mix(in srgb,var(--err) 70%,transparent);
  --cev-amber-bg:color-mix(in srgb,var(--warn) 14%,transparent);
  --cev-amber-border:color-mix(in srgb,var(--warn) 70%,transparent);
  --cev-green-bg:color-mix(in srgb,var(--ok) 12%,transparent);
  --cev-green-border:color-mix(in srgb,var(--ok) 65%,transparent);
  --up-item-urgent-bg:var(--surface);
  --up-item-urgent-border:var(--border);
  --wb-tbl-editor-bg:var(--panel);
  --wb-tbl-editor-border:var(--accent);
  --wb-tbl-editor-shadow:0 12px 40px -6px rgba(20,15,5,.45);
  --wb-tbl-editor-th-bg:var(--surface-2);
  --wb-tbl-editor-th-fg:var(--soft);
  --wb-tbl-hdr-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-editing-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-rg-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --row-plus-hover-bg:rgba(0,0,0,.05);
  --tbl-cell-menu-bg:var(--panel);
  --tbl-cell-menu-border:var(--line2);
  --tbl-cell-menu-shadow:0 8px 24px rgba(10,10,14,.5);
  --tbl-cell-menu-btn-hover-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --tbl-cell-menu-btn-hover-fg:var(--accent);
  --dg-legend-bg:var(--panel);
  --dg-legend-shadow:0 10px 32px rgba(10,10,14,.55);
  --ts-timer-bg:var(--panel);
  --ts-timer-shadow:0 10px 32px rgba(10,10,14,.55);
  --saved-row-border:var(--line);
  --lset-bg:transparent;
  --cp-root-bg:color-mix(in srgb,var(--surface) 72%,transparent);
  --lumen-tip-shadow:0 12px 34px -14px color-mix(in srgb,var(--t-shadow-base, rgba(0,0,0,.65)) 69%);
  --date-picker-filter:none;
  --loader-invert:1;
}

html[data-skin="paper"]{
color-scheme:only light;
  --t-bg:#f3eddd;
  --t-panel:#faf6ea;
  --t-panel2:#efe8d6;
  --t-panel3:#e4ddc8;
  --t-surface:var(--t-panel);
  --t-surface2:var(--t-panel2);
  --t-surface3:#e4ddc8;
  --t-ink:#26211a;
  --t-soft:#6b6250;
  --t-dim:#7d735d;
  --t-border:rgba(38,33,26,.16);
  --t-border-soft:rgba(38,33,26,.42);
  --t-border-strong:rgba(38,33,26,.5);
  --t-hairline:rgba(38,33,26,.06);
  --t-line:rgba(38,33,26,.16);
  --t-line2:rgba(38,33,26,.42);
  --t-accent:#b3402a;
  --t-accent-hover:#8f2f1d;
  --t-accent-deep:#8f2f1d;
  --t-accent-soft:#8f2f1d;
  --t-accent-ink:#fff6ec;
  --t-ok:#3c6e47;
  --t-warn:#8a5a00;
  --t-err:#a02f22;
  --t-err-deep:#a02f22;
  --t-warn-deep:#8a5a00;
  --t-focus:#8f2f1d;
  --t-viewer-bg:#fff;
  --t-shadow-base:rgba(35,28,15,.45);
  --t-shadow-accent:none;
  --t-inset-hi:rgba(255,255,255,.6);
  --t-glass-alpha:none;
  --t-glass-blur:none;
  --t-scroll-thumb:rgba(38,33,26,.2);
  --t-scroll-thumb-hover:rgba(38,33,26,.36);
  --t-serif:'Fraunces',Georgia,serif;
  --t-sans:'Space Grotesk',sans-serif;
  --t-mono:'Spline Sans Mono',ui-monospace,monospace;
  --t-read:'Source Serif 4',Georgia,serif;
  /* ---- component tokens (derived unless overridden) ---- */
  --glass-bg:var(--surface);
  --glass-blur:none;
  --glass-shadow:0 0 0 1px var(--border) inset, 0 12px 28px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --glass-border:var(--border);
  --bar-bg:var(--surface);
  --bar-blur:none;
  --bar-shadow:none;
  --bar-border:var(--border);
  --nav-bg:var(--surface);
  --nav-blur:none;
  --nav-shadow:none;
  --nav-border:var(--border);
  --ctl-bg:transparent;
  --ctl-border:color-mix(in srgb,var(--border) 140%,var(--fg));
  --ctl-fg:var(--soft);
  --ctl-shadow:none;
  --ctl-inset:none;
  --ctl-hover-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --ctl-hover-border:color-mix(in srgb,var(--accent) 55%,var(--border));
  --ctl-hover-fg:var(--accent);
  --ctl-hover-shadow:none;
  --ctl-hover-inset:none;
  --ctl-active-bg:var(--accent);
  --ctl-active-border:var(--accent);
  --ctl-active-fg:var(--accent-ink);
  --ctl-active-shadow:0 4px 12px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --ctl-active-inset:none;
  --primary-bg:var(--accent);
  --primary-border:color-mix(in srgb,var(--accent) 78%,black 22%);
  --primary-fg:var(--accent-ink);
  --primary-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 18px -6px color-mix(in srgb,var(--accent) 45%,transparent);
  --primary-inset:inset 0 1px 0 rgba(255,255,255,.24);
  --primary-hover-bg:var(--accent-h);
  --primary-hover-border:var(--accent-h);
  --primary-hover-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 10px 24px -8px color-mix(in srgb,var(--accent) 55%,transparent);
  --primary-hover-inset:inset 0 1px 0 rgba(255,255,255,.3);
  --primary-active-bg:var(--accent);
  --primary-active-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 3px 10px -3px color-mix(in srgb,var(--accent) 45%,transparent);
  --primary-active-inset:inset 0 1px 0 rgba(255,255,255,.16);
  --secondary-bg:var(--surface-2);
  --secondary-border:var(--border);
  --secondary-fg:var(--fg);
  --secondary-shadow:none;
  --secondary-hover-bg:var(--surface-3);
  --secondary-hover-border:color-mix(in srgb,var(--accent) 45%,var(--border));
  --secondary-hover-fg:var(--accent);
  --secondary-hover-shadow:none;
  --danger-bg:transparent;
  --danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --danger-fg:var(--err);
  --danger-shadow:none;
  --danger-hover-bg:color-mix(in srgb,var(--err) 12%,var(--surface-2));
  --danger-hover-border:var(--err);
  --danger-hover-fg:var(--err);
  --input-bg:var(--surface);
  --input-border:var(--border);
  --input-fg:var(--fg);
  --input-shadow:none;
  --input-focus-border:var(--accent);
  --input-focus-shadow:var(--ring-soft);
  --card-bg:var(--surface);
  --card-border:var(--border);
  --chip-bg:transparent;
  --chip-border:color-mix(in srgb,var(--border) 140%,var(--fg));
  --chip-fg:var(--fg);
  --chip-shadow:none;
  --chip-inset:none;
  --chip-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --chip-hover-border:color-mix(in srgb,var(--accent) 40%,var(--border));
  --chip-hover-shadow:none;
  --chip-hover-inset:none;
  --badge-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --badge-border:color-mix(in srgb,var(--accent) 32%,transparent);
  --badge-fg:var(--accent);
  --bubble-user-bg:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,var(--surface-2)) 0%,color-mix(in srgb,var(--accent) 8%,var(--surface)) 100%);
  --bubble-user-border:color-mix(in srgb,var(--accent) 24%,var(--border));
  --bubble-user-shadow:none;
  --bubble-ai-border:var(--accent);
  --scroll-thumb:var(--t-scroll-thumb, rgba(255,255,255,.08));
  --scroll-thumb-hover:var(--t-scroll-thumb-hover, rgba(255,255,255,.2));
  --seg-bg:var(--surface-2);
  --seg-fg:var(--soft);
  --seg-on-bg:var(--accent);
  --seg-on-fg:var(--accent-ink);
  --ibtn-danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --ibtn-danger-fg:var(--err);
  --ibtn-disabled-opacity:.35;
  --tool-card-hover-bg:var(--surface-3);
  --tool-card-hover-border:color-mix(in srgb,var(--accent) 42%,var(--border));
  --tc-icon-bg:transparent;
  --tc-icon-border:color-mix(in srgb,var(--accent) 45%,var(--border));
  --tc-icon-hover-bg:var(--accent);
  --tc-icon-hover-border:var(--accent);
  --tc-icon-hover-fg:var(--accent-ink);
  --tc-icon-hover-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 14px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-icon-active-bg:var(--accent);
  --tc-icon-active-border:var(--accent);
  --tc-icon-active-fg:var(--accent-ink);
  --tc-icon-active-shadow:0 4px 12px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-new-shadow:0 2px 6px -2px color-mix(in srgb,var(--accent) 45%,transparent);
  --rail-btn-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --rail-btn-hover-border:color-mix(in srgb,var(--accent) 40%,var(--border));
  --rail-btn-hover-fg:var(--accent);
  --rail-btn-on-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --rail-btn-on-fg:var(--accent);
  --home-search-bg:var(--surface);
  --home-search-border:var(--border);
  --home-search-shadow:0 1px 2px rgba(35,28,15,.06);
  --home-search-focus-border:var(--accent);
  --home-search-focus-shadow:var(--ring-soft);
  --chat-in-bg:var(--surface-2);
  --chat-in-border:var(--border);
  --chat-in-shadow:none;
  --chat-in-focus-border:color-mix(in srgb,var(--accent) 55%,var(--border));
  --chat-in-focus-shadow:var(--ring-soft);
  --ai-model-select-bg:var(--surface);
  --ai-model-select-border:var(--border);
  --ai-model-btn-bg:var(--surface-2);
  --ai-model-btn-border:var(--border);
  --ai-model-menu-shadow:0 0 0 1px var(--border) inset, 0 20px 50px -20px color-mix(in srgb,var(--t-shadow-base) 69%,transparent);
  --net-badge-bg:var(--surface-2);
  --net-badge-border:var(--border);
  --net-badge-fg:var(--soft);
  --net-badge-hover-border:var(--accent);
  --net-badge-hover-fg:var(--accent);
  --nb-banner-bg:color-mix(in srgb,var(--accent) 8%,var(--surface));
  --nb-banner-border:color-mix(in srgb,var(--accent) 30%,var(--border));
  --nb-banner-fg:var(--ink);
  --cal-cell-bg:var(--surface);
  --cal-dow-bg:var(--surface-2);
  --cal-cell-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --cev-bg:transparent;
  --cev-fg:var(--ink);
  --cev-task-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --cev-task-border:color-mix(in srgb,var(--accent) 65%,transparent);
  --cev-red-bg:color-mix(in srgb,var(--err) 12%,transparent);
  --cev-red-border:color-mix(in srgb,var(--err) 70%,transparent);
  --cev-amber-bg:color-mix(in srgb,var(--warn) 14%,transparent);
  --cev-amber-border:color-mix(in srgb,var(--warn) 70%,transparent);
  --cev-green-bg:color-mix(in srgb,var(--ok) 12%,transparent);
  --cev-green-border:color-mix(in srgb,var(--ok) 65%,transparent);
  --up-item-urgent-bg:color-mix(in srgb,var(--err) 8%,var(--surface));
  --up-item-urgent-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --wb-tbl-editor-bg:var(--surface);
  --wb-tbl-editor-border:var(--accent);
  --wb-tbl-editor-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -10px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --wb-tbl-editor-th-bg:color-mix(in srgb,var(--accent) 8%,var(--surface-2));
  --wb-tbl-editor-th-fg:var(--soft);
  --wb-tbl-hdr-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-editing-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-rg-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --row-plus-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --tbl-cell-menu-bg:var(--surface);
  --tbl-cell-menu-border:var(--border);
  --tbl-cell-menu-shadow:0 12px 30px -10px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --tbl-cell-menu-btn-hover-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --tbl-cell-menu-btn-hover-fg:var(--accent);
  --dg-legend-bg:var(--surface);
  --dg-legend-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --ts-timer-bg:var(--surface);
  --ts-timer-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --saved-row-border:var(--border);
  --lset-bg:var(--surface-2);
  --cp-root-bg:rgba(35,28,15,.4);
  --lumen-tip-shadow:0 6px 24px -8px color-mix(in srgb,var(--t-shadow-base) 45%,transparent), 0 2px 6px -2px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --date-picker-filter:invert(.7) sepia(.3) saturate(2) hue-rotate(-20deg);
  --rtabs-btn-on-fg:var(--accent);
  --loader-invert:0;
}

html[data-skin="midnight"]{
color-scheme:dark;
  --t-bg:#0e1117;
  --t-panel:#151a21;
  --t-panel2:#1d242d;
  --t-panel3:#28303a;
  --t-surface:var(--t-panel);
  --t-surface2:var(--t-panel2);
  --t-surface3:#28303a;
  --t-ink:#e7ecf3;
  --t-soft:#9aa8b8;
  --t-dim:#5f6d7d;
  --t-border:rgba(231,236,243,.13);
  --t-border-soft:rgba(231,236,243,.38);
  --t-border-strong:rgba(231,236,243,.22);
  --t-hairline:rgba(231,236,243,.05);
  --t-line:rgba(231,236,243,.13);
  --t-line2:rgba(231,236,243,.38);
  --t-accent:#e8a33d;
  --t-accent-hover:#c9852a;
  --t-accent-deep:#c9852a;
  --t-accent-soft:#f0c078;
  --t-accent-ink:#171208;
  --t-ok:#57b884;
  --t-warn:#d9a13f;
  --t-err:#e0645a;
  --t-err-deep:#7c231d;
  --t-warn-deep:#7c5200;
  --t-focus:#c9852a;
  --t-viewer-bg:#0e1117;
  --t-shadow-base:rgba(0,0,0,.65);
  --t-shadow-accent:none;
  --t-inset-hi:rgba(255,255,255,.06);
  --t-glass-alpha:55%;
  --t-glass-blur:saturate(180%) blur(20px);
  --t-scroll-thumb:rgba(231,236,243,.12);
  --t-scroll-thumb-hover:rgba(231,236,243,.28);
  --t-serif:'Space Grotesk',sans-serif;
  --t-sans:'Space Grotesk',sans-serif;
  --t-mono:'Space Mono',ui-monospace,monospace;
  --t-read:'Lora',Georgia,serif;
  /* ---- component tokens (derived unless overridden) ---- */
  --glass-bg:color-mix(in srgb,var(--surface) 82%,transparent);
  --glass-blur:saturate(180%) blur(20px);
  --glass-shadow:var(--shadow-lg);
  --glass-border:var(--border-s);
  --bar-bg:color-mix(in srgb,var(--surface) 55%,transparent);
  --bar-blur:saturate(160%) blur(14px);
  --bar-shadow:none;
  --bar-border:var(--border);
  --nav-bg:color-mix(in srgb,var(--surface) 72%,transparent);
  --nav-blur:saturate(180%) blur(20px);
  --nav-shadow:none;
  --nav-border:var(--border);
  --ctl-bg:var(--surface-2);
  --ctl-border:var(--border);
  --ctl-fg:var(--muted);
  --ctl-shadow:var(--shadow-xs);
  --ctl-inset:inset 0 1px 0 rgba(255,255,255,.05);
  --ctl-hover-bg:var(--surface-3);
  --ctl-hover-border:var(--border-strong);
  --ctl-hover-fg:var(--fg);
  --ctl-hover-shadow:var(--shadow-sm);
  --ctl-hover-inset:inset 0 1px 0 rgba(255,255,255,.07);
  --ctl-active-bg:linear-gradient(180deg,var(--accent-h),var(--accent));
  --ctl-active-border:var(--accent);
  --ctl-active-fg:var(--accent-ink);
  --ctl-active-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 6px 14px -4px var(--accent-glow);
  --ctl-active-inset:inset 0 1px 0 rgba(255,255,255,.28);
  --primary-bg:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,white 8%) 0%,var(--accent) 100%);
  --primary-border:color-mix(in srgb,var(--accent) 84%,black 16%);
  --primary-fg:var(--accent-ink);
  --primary-shadow:inset 0 1px 0 rgba(255,255,255,.32), inset 0 -1px 0 rgba(0,0,0,.16), 0 8px 20px -6px var(--accent-glow), var(--shadow-xs);
  --primary-inset:inset 0 1px 0 rgba(255,255,255,.32), inset 0 -1px 0 rgba(0,0,0,.16);
  --primary-hover-bg:linear-gradient(180deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 92%,black 8%) 100%);
  --primary-hover-border:color-mix(in srgb,var(--accent) 84%,black 16%);
  --primary-hover-shadow:inset 0 1px 0 rgba(255,255,255,.4), inset 0 -1px 0 rgba(0,0,0,.18), 0 12px 28px -6px var(--accent-glow), var(--shadow-sm);
  --primary-hover-inset:inset 0 1px 0 rgba(255,255,255,.4), inset 0 -1px 0 rgba(0,0,0,.18);
  --primary-active-bg:var(--accent);
  --primary-active-shadow:inset 0 1px 0 rgba(255,255,255,.22), inset 0 -1px 0 rgba(0,0,0,.22), 0 4px 12px -4px var(--accent-glow);
  --primary-active-inset:inset 0 1px 0 rgba(255,255,255,.22), inset 0 -1px 0 rgba(0,0,0,.22);
  --secondary-bg:var(--surface-2);
  --secondary-border:var(--border);
  --secondary-fg:var(--fg);
  --secondary-shadow:inset 0 1px 0 rgba(255,255,255,.05), var(--shadow-xs);
  --secondary-hover-bg:var(--surface-3);
  --secondary-hover-border:var(--border-strong);
  --secondary-hover-fg:var(--fg);
  --secondary-hover-shadow:inset 0 1px 0 rgba(255,255,255,.07), var(--shadow-sm);
  --danger-bg:transparent;
  --danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --danger-fg:var(--err);
  --danger-shadow:none;
  --danger-hover-bg:color-mix(in srgb,var(--err) 14%,var(--surface-2));
  --danger-hover-border:var(--err);
  --danger-hover-fg:var(--err);
  --input-bg:var(--surface);
  --input-border:var(--border);
  --input-fg:var(--fg);
  --input-shadow:var(--shadow-inset);
  --input-focus-border:var(--accent);
  --input-focus-shadow:var(--ring-soft), var(--shadow-inset);
  --card-bg:var(--surface);
  --card-border:var(--border);
  --chip-bg:var(--surface-2);
  --chip-border:var(--border);
  --chip-fg:var(--fg);
  --chip-shadow:inset 0 1px 0 rgba(255,255,255,.05), var(--shadow-xs);
  --chip-inset:inset 0 1px 0 rgba(255,255,255,.05);
  --chip-hover-bg:var(--surface-3);
  --chip-hover-border:var(--border-strong);
  --chip-hover-shadow:inset 0 1px 0 rgba(255,255,255,.07), var(--shadow-sm);
  --chip-hover-inset:inset 0 1px 0 rgba(255,255,255,.07);
  --badge-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --badge-border:color-mix(in srgb,var(--accent) 32%,transparent);
  --badge-fg:var(--accent);
  --bubble-user-bg:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 90%,transparent),var(--surface));
  --bubble-user-border:var(--border-s);
  --bubble-user-shadow:var(--shadow-inset), 0 4px 14px -10px rgba(0,0,0,.5);
  --bubble-ai-border:var(--accent);
  --scroll-thumb:var(--t-scroll-thumb, rgba(255,255,255,.08));
  --scroll-thumb-hover:var(--t-scroll-thumb-hover, rgba(255,255,255,.2));
  --seg-bg:transparent;
  --seg-fg:var(--soft);
  --seg-on-bg:var(--ink);
  --seg-on-fg:var(--paper);
  --ibtn-danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --ibtn-danger-fg:var(--err);
  --ibtn-disabled-opacity:.35;
  --tool-card-hover-bg:var(--surface-3);
  --tool-card-hover-border:color-mix(in srgb,var(--accent) 42%,var(--border));
  --tc-icon-bg:transparent;
  --tc-icon-border:var(--accent);
  --tc-icon-hover-bg:var(--accent);
  --tc-icon-hover-border:var(--accent);
  --tc-icon-hover-fg:var(--accent-ink);
  --tc-icon-hover-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 14px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-icon-active-bg:linear-gradient(180deg,var(--accent-h),var(--accent));
  --tc-icon-active-border:var(--accent);
  --tc-icon-active-fg:var(--accent-ink);
  --tc-icon-active-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 6px 14px -4px var(--accent-glow);
  --tc-new-shadow:0 2px 6px -2px color-mix(in srgb,var(--accent) 45%,transparent);
  --rail-btn-hover-bg:transparent;
  --rail-btn-hover-border:var(--border);
  --rail-btn-hover-fg:var(--ink);
  --rail-btn-on-bg:transparent;
  --rail-btn-on-fg:var(--accent);
  --home-search-bg:color-mix(in srgb,var(--surface) 82%,transparent);
  --home-search-border:var(--border);
  --home-search-shadow:none;
  --home-search-focus-border:var(--accent);
  --home-search-focus-shadow:var(--ring-soft);
  --chat-in-bg:color-mix(in srgb,var(--surface) 96%,transparent);
  --chat-in-border:var(--border);
  --chat-in-shadow:none;
  --chat-in-focus-border:var(--accent);
  --chat-in-focus-shadow:var(--ring-soft);
  --ai-model-select-bg:var(--surface-2);
  --ai-model-select-border:var(--border-s);
  --ai-model-btn-bg:var(--surface-2);
  --ai-model-btn-border:var(--border-s);
  --ai-model-menu-shadow:var(--shadow-xl);
  --net-badge-bg:none;
  --net-badge-border:transparent;
  --net-badge-fg:var(--muted);
  --net-badge-hover-border:var(--accent);
  --net-badge-hover-fg:var(--accent);
  --nb-banner-bg:color-mix(in srgb,var(--accent) 8%,var(--surface));
  --nb-banner-border:color-mix(in srgb,var(--accent) 30%,var(--border));
  --nb-banner-fg:var(--accent);
  --cal-cell-bg:var(--surface);
  --cal-dow-bg:var(--surface);
  --cal-cell-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --cev-bg:transparent;
  --cev-fg:var(--ink);
  --cev-task-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --cev-task-border:color-mix(in srgb,var(--accent) 65%,transparent);
  --cev-red-bg:color-mix(in srgb,var(--err) 12%,transparent);
  --cev-red-border:color-mix(in srgb,var(--err) 70%,transparent);
  --cev-amber-bg:color-mix(in srgb,var(--warn) 14%,transparent);
  --cev-amber-border:color-mix(in srgb,var(--warn) 70%,transparent);
  --cev-green-bg:color-mix(in srgb,var(--ok) 12%,transparent);
  --cev-green-border:color-mix(in srgb,var(--ok) 65%,transparent);
  --up-item-urgent-bg:var(--surface);
  --up-item-urgent-border:var(--border);
  --wb-tbl-editor-bg:var(--panel);
  --wb-tbl-editor-border:var(--accent);
  --wb-tbl-editor-shadow:0 12px 40px -6px rgba(20,15,5,.45);
  --wb-tbl-editor-th-bg:var(--surface-2);
  --wb-tbl-editor-th-fg:var(--soft);
  --wb-tbl-hdr-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-editing-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-rg-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --row-plus-hover-bg:rgba(0,0,0,.05);
  --tbl-cell-menu-bg:var(--panel);
  --tbl-cell-menu-border:var(--line2);
  --tbl-cell-menu-shadow:0 8px 24px rgba(10,10,14,.5);
  --tbl-cell-menu-btn-hover-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --tbl-cell-menu-btn-hover-fg:var(--accent);
  --dg-legend-bg:var(--panel);
  --dg-legend-shadow:0 10px 32px rgba(10,10,14,.55);
  --ts-timer-bg:var(--panel);
  --ts-timer-shadow:0 10px 32px rgba(10,10,14,.55);
  --saved-row-border:var(--line);
  --lset-bg:transparent;
  --cp-root-bg:color-mix(in srgb,var(--surface) 72%,transparent);
  --lumen-tip-shadow:0 12px 34px -14px color-mix(in srgb,var(--t-shadow-base, rgba(0,0,0,.65)) 69%);
  --date-picker-filter:none;
  --loader-invert:1;
}

html[data-skin="contrast"]{
color-scheme:dark;
  --t-bg:#000;
  --t-panel:#000;
  --t-panel2:#111;
  --t-panel3:#1e1e1e;
  --t-surface:#000;
  --t-surface2:#111;
  --t-surface3:#1e1e1e;
  --t-ink:#fff;
  --t-soft:#ddd;
  --t-dim:#aaa;
  --t-border:#fff;
  --t-border-soft:#fff;
  --t-border-strong:#fff;
  --t-hairline:#fff;
  --t-line:#fff;
  --t-line2:#fff;
  --t-accent:#ffd400;
  --t-accent-hover:#ffe14d;
  --t-accent-deep:#ffe14d;
  --t-accent-soft:#ffe14d;
  --t-accent-ink:#000;
  --t-ok:#00ff87;
  --t-warn:#ffd400;
  --t-err:#ff5555;
  --t-err-deep:#ff5555;
  --t-warn-deep:#ffd400;
  --t-focus:#ffe14d;
  --t-viewer-bg:#000;
  --t-shadow-base:rgba(255,255,255,.9);
  --t-shadow-accent:none;
  --t-inset-hi:rgba(255,255,255,.9);
  --t-glass-alpha:none;
  --t-glass-blur:none;
  --t-scroll-thumb:#fff;
  --t-scroll-thumb-hover:#fff;
  --t-serif:'Fraunces',Georgia,serif;
  --t-sans:'Space Grotesk',sans-serif;
  --t-mono:'Spline Sans Mono',ui-monospace,monospace;
  --t-read:'Source Serif 4',Georgia,serif;
  /* ---- component tokens (derived unless overridden) ---- */
  --glass-bg:var(--surface);
  --glass-blur:none;
  --glass-shadow:0 0 0 1px var(--border) inset, 0 12px 28px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --glass-border:var(--border);
  --bar-bg:var(--surface);
  --bar-blur:none;
  --bar-shadow:none;
  --bar-border:var(--border);
  --nav-bg:var(--surface);
  --nav-blur:none;
  --nav-shadow:none;
  --nav-border:var(--border);
  --ctl-bg:transparent;
  --ctl-border:color-mix(in srgb,var(--border) 140%,var(--fg));
  --ctl-fg:var(--soft);
  --ctl-shadow:none;
  --ctl-inset:none;
  --ctl-hover-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --ctl-hover-border:color-mix(in srgb,var(--accent) 55%,var(--border));
  --ctl-hover-fg:var(--accent);
  --ctl-hover-shadow:none;
  --ctl-hover-inset:none;
  --ctl-active-bg:var(--accent);
  --ctl-active-border:var(--accent);
  --ctl-active-fg:var(--accent-ink);
  --ctl-active-shadow:0 4px 12px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --ctl-active-inset:none;
  --primary-bg:var(--accent);
  --primary-border:color-mix(in srgb,var(--accent) 78%,black 22%);
  --primary-fg:var(--accent-ink);
  --primary-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 18px -6px color-mix(in srgb,var(--accent) 45%,transparent);
  --primary-inset:inset 0 1px 0 rgba(255,255,255,.24);
  --primary-hover-bg:var(--accent-h);
  --primary-hover-border:var(--accent-h);
  --primary-hover-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 10px 24px -8px color-mix(in srgb,var(--accent) 55%,transparent);
  --primary-hover-inset:inset 0 1px 0 rgba(255,255,255,.3);
  --primary-active-bg:var(--accent);
  --primary-active-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 3px 10px -3px color-mix(in srgb,var(--accent) 45%,transparent);
  --primary-active-inset:inset 0 1px 0 rgba(255,255,255,.16);
  --secondary-bg:var(--surface-2);
  --secondary-border:var(--border);
  --secondary-fg:var(--fg);
  --secondary-shadow:none;
  --secondary-hover-bg:var(--surface-3);
  --secondary-hover-border:color-mix(in srgb,var(--accent) 45%,var(--border));
  --secondary-hover-fg:var(--accent);
  --secondary-hover-shadow:none;
  --danger-bg:transparent;
  --danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --danger-fg:var(--err);
  --danger-shadow:none;
  --danger-hover-bg:color-mix(in srgb,var(--err) 12%,var(--surface-2));
  --danger-hover-border:var(--err);
  --danger-hover-fg:var(--err);
  --input-bg:var(--surface);
  --input-border:var(--border);
  --input-fg:var(--fg);
  --input-shadow:none;
  --input-focus-border:var(--accent);
  --input-focus-shadow:var(--ring-soft);
  --card-bg:var(--surface);
  --card-border:var(--border);
  --chip-bg:transparent;
  --chip-border:color-mix(in srgb,var(--border) 140%,var(--fg));
  --chip-fg:var(--fg);
  --chip-shadow:none;
  --chip-inset:none;
  --chip-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --chip-hover-border:color-mix(in srgb,var(--accent) 40%,var(--border));
  --chip-hover-shadow:none;
  --chip-hover-inset:none;
  --badge-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --badge-border:color-mix(in srgb,var(--accent) 32%,transparent);
  --badge-fg:var(--accent);
  --bubble-user-bg:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,var(--surface-2)) 0%,color-mix(in srgb,var(--accent) 8%,var(--surface)) 100%);
  --bubble-user-border:color-mix(in srgb,var(--accent) 24%,var(--border));
  --bubble-user-shadow:none;
  --bubble-ai-border:var(--accent);
  --scroll-thumb:var(--t-scroll-thumb, rgba(255,255,255,.08));
  --scroll-thumb-hover:var(--t-scroll-thumb-hover, rgba(255,255,255,.2));
  --seg-bg:var(--surface-2);
  --seg-fg:var(--soft);
  --seg-on-bg:var(--accent);
  --seg-on-fg:var(--accent-ink);
  --ibtn-danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --ibtn-danger-fg:var(--err);
  --ibtn-disabled-opacity:.35;
  --tool-card-hover-bg:var(--surface-3);
  --tool-card-hover-border:color-mix(in srgb,var(--accent) 42%,var(--border));
  --tc-icon-bg:transparent;
  --tc-icon-border:var(--accent);
  --tc-icon-hover-bg:var(--accent);
  --tc-icon-hover-border:var(--accent);
  --tc-icon-hover-fg:var(--accent-ink);
  --tc-icon-hover-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 14px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-icon-active-bg:var(--accent);
  --tc-icon-active-border:var(--accent);
  --tc-icon-active-fg:var(--accent-ink);
  --tc-icon-active-shadow:0 4px 12px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-new-shadow:0 2px 6px -2px color-mix(in srgb,var(--accent) 45%,transparent);
  --rail-btn-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --rail-btn-hover-border:color-mix(in srgb,var(--accent) 40%,var(--border));
  --rail-btn-hover-fg:var(--accent);
  --rail-btn-on-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --rail-btn-on-fg:var(--accent);
  --home-search-bg:var(--surface);
  --home-search-border:var(--border);
  --home-search-shadow:0 1px 2px rgba(35,28,15,.06);
  --home-search-focus-border:var(--accent);
  --home-search-focus-shadow:var(--ring-soft);
  --chat-in-bg:var(--surface-2);
  --chat-in-border:var(--border);
  --chat-in-shadow:none;
  --chat-in-focus-border:color-mix(in srgb,var(--accent) 55%,var(--border));
  --chat-in-focus-shadow:var(--ring-soft);
  --ai-model-select-bg:var(--surface);
  --ai-model-select-border:var(--border);
  --ai-model-btn-bg:var(--surface-2);
  --ai-model-btn-border:var(--border);
  --ai-model-menu-shadow:0 0 0 1px var(--border) inset, 0 20px 50px -20px color-mix(in srgb,var(--t-shadow-base) 69%,transparent);
  --net-badge-bg:var(--surface-2);
  --net-badge-border:var(--border);
  --net-badge-fg:var(--soft);
  --net-badge-hover-border:var(--accent);
  --net-badge-hover-fg:var(--accent);
  --nb-banner-bg:color-mix(in srgb,var(--accent) 8%,var(--surface));
  --nb-banner-border:color-mix(in srgb,var(--accent) 30%,var(--border));
  --nb-banner-fg:var(--ink);
  --cal-cell-bg:var(--surface);
  --cal-dow-bg:var(--surface-2);
  --cal-cell-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --cev-bg:transparent;
  --cev-fg:var(--ink);
  --cev-task-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --cev-task-border:color-mix(in srgb,var(--accent) 65%,transparent);
  --cev-red-bg:color-mix(in srgb,var(--err) 12%,transparent);
  --cev-red-border:color-mix(in srgb,var(--err) 70%,transparent);
  --cev-amber-bg:color-mix(in srgb,var(--warn) 14%,transparent);
  --cev-amber-border:color-mix(in srgb,var(--warn) 70%,transparent);
  --cev-green-bg:color-mix(in srgb,var(--ok) 12%,transparent);
  --cev-green-border:color-mix(in srgb,var(--ok) 65%,transparent);
  --up-item-urgent-bg:color-mix(in srgb,var(--err) 8%,var(--surface));
  --up-item-urgent-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --wb-tbl-editor-bg:var(--surface);
  --wb-tbl-editor-border:var(--accent);
  --wb-tbl-editor-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -10px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --wb-tbl-editor-th-bg:color-mix(in srgb,var(--accent) 8%,var(--surface-2));
  --wb-tbl-editor-th-fg:var(--soft);
  --wb-tbl-hdr-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-editing-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-rg-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --row-plus-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --tbl-cell-menu-bg:var(--surface);
  --tbl-cell-menu-border:var(--border);
  --tbl-cell-menu-shadow:0 12px 30px -10px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --tbl-cell-menu-btn-hover-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --tbl-cell-menu-btn-hover-fg:var(--accent);
  --dg-legend-bg:var(--surface);
  --dg-legend-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --ts-timer-bg:var(--surface);
  --ts-timer-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --saved-row-border:var(--border);
  --lset-bg:var(--surface-2);
  --cp-root-bg:rgba(35,28,15,.4);
  --lumen-tip-shadow:0 6px 24px -8px color-mix(in srgb,var(--t-shadow-base) 45%,transparent), 0 2px 6px -2px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --date-picker-filter:invert(.7) sepia(.3) saturate(2) hue-rotate(-20deg);
  --rtabs-btn-on-fg:var(--accent);
  --loader-invert:1;
}

html[data-skin="comfy"]{
color-scheme:only light;
  --t-bg:#ead5ae;
  --t-panel:#f6e7c8;
  --t-panel2:#e6cda2;
  --t-panel3:#dfbe8e;
  --t-surface:var(--t-panel);
  --t-surface2:var(--t-panel2);
  --t-surface3:#dfbe8e;
  --t-ink:#402a16;
  --t-soft:#6b4e2e;
  --t-dim:#84663f;
  --t-border:rgba(64,42,22,.20);
  --t-border-soft:rgba(64,42,22,.50);
  --t-border-strong:rgba(64,42,22,.52);
  --t-hairline:rgba(64,42,22,.06);
  --t-line:rgba(64,42,22,.20);
  --t-line2:rgba(64,42,22,.50);
  --t-accent:#b8501b;
  --t-accent-hover:#963e10;
  --t-accent-deep:#963e10;
  --t-accent-soft:#963e10;
  --t-accent-ink:#fff2e0;
  --t-ok:#556a31;
  --t-warn:#9a6f16;
  --t-err:#a2351c;
  --t-err-deep:#a2351c;
  --t-warn-deep:#9a6f16;
  --t-focus:#963e10;
  --t-viewer-bg:#f6e7c8;
  --t-shadow-base:rgba(112,60,22,.45);
  --t-shadow-accent:none;
  --t-inset-hi:rgba(255,255,255,.55);
  --t-glass-alpha:none;
  --t-glass-blur:none;
  --t-scroll-thumb:rgba(64,42,22,.2);
  --t-scroll-thumb-hover:rgba(64,42,22,.36);
  --t-serif:'Fraunces',Georgia,serif;
  --t-sans:'Space Grotesk',sans-serif;
  --t-mono:'Spline Sans Mono',ui-monospace,monospace;
  --t-read:'Source Serif 4',Georgia,serif;
  /* ---- component tokens (derived unless overridden) ---- */
  --glass-bg:var(--surface);
  --glass-blur:none;
  --glass-shadow:0 0 0 1px var(--border) inset, 0 12px 28px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --glass-border:var(--border);
  --bar-bg:var(--surface);
  --bar-blur:none;
  --bar-shadow:none;
  --bar-border:var(--border);
  --nav-bg:var(--surface);
  --nav-blur:none;
  --nav-shadow:none;
  --nav-border:var(--border);
  --ctl-bg:transparent;
  --ctl-border:color-mix(in srgb,var(--border) 140%,var(--fg));
  --ctl-fg:var(--soft);
  --ctl-shadow:none;
  --ctl-inset:none;
  --ctl-hover-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --ctl-hover-border:color-mix(in srgb,var(--accent) 55%,var(--border));
  --ctl-hover-fg:var(--accent);
  --ctl-hover-shadow:none;
  --ctl-hover-inset:none;
  --ctl-active-bg:var(--accent);
  --ctl-active-border:var(--accent);
  --ctl-active-fg:var(--accent-ink);
  --ctl-active-shadow:0 4px 12px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --ctl-active-inset:none;
  --primary-bg:var(--accent);
  --primary-border:color-mix(in srgb,var(--accent) 78%,black 22%);
  --primary-fg:var(--accent-ink);
  --primary-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 18px -6px color-mix(in srgb,var(--accent) 45%,transparent);
  --primary-inset:inset 0 1px 0 rgba(255,255,255,.24);
  --primary-hover-bg:var(--accent-h);
  --primary-hover-border:var(--accent-h);
  --primary-hover-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 10px 24px -8px color-mix(in srgb,var(--accent) 55%,transparent);
  --primary-hover-inset:inset 0 1px 0 rgba(255,255,255,.3);
  --primary-active-bg:var(--accent);
  --primary-active-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 3px 10px -3px color-mix(in srgb,var(--accent) 45%,transparent);
  --primary-active-inset:inset 0 1px 0 rgba(255,255,255,.16);
  --secondary-bg:var(--surface-2);
  --secondary-border:var(--border);
  --secondary-fg:var(--fg);
  --secondary-shadow:none;
  --secondary-hover-bg:var(--surface-3);
  --secondary-hover-border:color-mix(in srgb,var(--accent) 45%,var(--border));
  --secondary-hover-fg:var(--accent);
  --secondary-hover-shadow:none;
  --danger-bg:transparent;
  --danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --danger-fg:var(--err);
  --danger-shadow:none;
  --danger-hover-bg:color-mix(in srgb,var(--err) 12%,var(--surface-2));
  --danger-hover-border:var(--err);
  --danger-hover-fg:var(--err);
  --input-bg:var(--surface);
  --input-border:var(--border);
  --input-fg:var(--fg);
  --input-shadow:none;
  --input-focus-border:var(--accent);
  --input-focus-shadow:var(--ring-soft);
  --card-bg:var(--surface);
  --card-border:var(--border);
  --chip-bg:transparent;
  --chip-border:color-mix(in srgb,var(--border) 140%,var(--fg));
  --chip-fg:var(--fg);
  --chip-shadow:none;
  --chip-inset:none;
  --chip-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --chip-hover-border:color-mix(in srgb,var(--accent) 40%,var(--border));
  --chip-hover-shadow:none;
  --chip-hover-inset:none;
  --badge-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --badge-border:color-mix(in srgb,var(--accent) 32%,transparent);
  --badge-fg:var(--accent);
  --bubble-user-bg:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,var(--surface-2)) 0%,color-mix(in srgb,var(--accent) 8%,var(--surface)) 100%);
  --bubble-user-border:color-mix(in srgb,var(--accent) 24%,var(--border));
  --bubble-user-shadow:none;
  --bubble-ai-border:var(--accent);
  --scroll-thumb:var(--t-scroll-thumb, rgba(255,255,255,.08));
  --scroll-thumb-hover:var(--t-scroll-thumb-hover, rgba(255,255,255,.2));
  --seg-bg:var(--surface-2);
  --seg-fg:var(--soft);
  --seg-on-bg:var(--accent);
  --seg-on-fg:var(--accent-ink);
  --ibtn-danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --ibtn-danger-fg:var(--err);
  --ibtn-disabled-opacity:.35;
  --tool-card-hover-bg:var(--surface-3);
  --tool-card-hover-border:color-mix(in srgb,var(--accent) 42%,var(--border));
  --tc-icon-bg:transparent;
  --tc-icon-border:color-mix(in srgb,var(--accent) 45%,var(--border));
  --tc-icon-hover-bg:var(--accent);
  --tc-icon-hover-border:var(--accent);
  --tc-icon-hover-fg:var(--accent-ink);
  --tc-icon-hover-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 14px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-icon-active-bg:var(--accent);
  --tc-icon-active-border:var(--accent);
  --tc-icon-active-fg:var(--accent-ink);
  --tc-icon-active-shadow:0 4px 12px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-new-shadow:0 2px 6px -2px color-mix(in srgb,var(--accent) 45%,transparent);
  --rail-btn-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --rail-btn-hover-border:color-mix(in srgb,var(--accent) 40%,var(--border));
  --rail-btn-hover-fg:var(--accent);
  --rail-btn-on-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --rail-btn-on-fg:var(--accent);
  --home-search-bg:var(--surface);
  --home-search-border:var(--border);
  --home-search-shadow:0 1px 2px rgba(35,28,15,.06);
  --home-search-focus-border:var(--accent);
  --home-search-focus-shadow:var(--ring-soft);
  --chat-in-bg:var(--surface-2);
  --chat-in-border:var(--border);
  --chat-in-shadow:none;
  --chat-in-focus-border:color-mix(in srgb,var(--accent) 55%,var(--border));
  --chat-in-focus-shadow:var(--ring-soft);
  --ai-model-select-bg:var(--surface);
  --ai-model-select-border:var(--border);
  --ai-model-btn-bg:var(--surface-2);
  --ai-model-btn-border:var(--border);
  --ai-model-menu-shadow:0 0 0 1px var(--border) inset, 0 20px 50px -20px color-mix(in srgb,var(--t-shadow-base) 69%,transparent);
  --net-badge-bg:var(--surface-2);
  --net-badge-border:var(--border);
  --net-badge-fg:var(--soft);
  --net-badge-hover-border:var(--accent);
  --net-badge-hover-fg:var(--accent);
  --nb-banner-bg:color-mix(in srgb,var(--accent) 8%,var(--surface));
  --nb-banner-border:color-mix(in srgb,var(--accent) 30%,var(--border));
  --nb-banner-fg:var(--ink);
  --cal-cell-bg:var(--surface);
  --cal-dow-bg:var(--surface-2);
  --cal-cell-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --cev-bg:transparent;
  --cev-fg:var(--ink);
  --cev-task-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --cev-task-border:color-mix(in srgb,var(--accent) 65%,transparent);
  --cev-red-bg:color-mix(in srgb,var(--err) 12%,transparent);
  --cev-red-border:color-mix(in srgb,var(--err) 70%,transparent);
  --cev-amber-bg:color-mix(in srgb,var(--warn) 14%,transparent);
  --cev-amber-border:color-mix(in srgb,var(--warn) 70%,transparent);
  --cev-green-bg:color-mix(in srgb,var(--ok) 12%,transparent);
  --cev-green-border:color-mix(in srgb,var(--ok) 65%,transparent);
  --up-item-urgent-bg:color-mix(in srgb,var(--err) 8%,var(--surface));
  --up-item-urgent-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --wb-tbl-editor-bg:var(--surface);
  --wb-tbl-editor-border:var(--accent);
  --wb-tbl-editor-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -10px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --wb-tbl-editor-th-bg:color-mix(in srgb,var(--accent) 8%,var(--surface-2));
  --wb-tbl-editor-th-fg:var(--soft);
  --wb-tbl-hdr-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-editing-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-rg-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --row-plus-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --tbl-cell-menu-bg:var(--surface);
  --tbl-cell-menu-border:var(--border);
  --tbl-cell-menu-shadow:0 12px 30px -10px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --tbl-cell-menu-btn-hover-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --tbl-cell-menu-btn-hover-fg:var(--accent);
  --dg-legend-bg:var(--surface);
  --dg-legend-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --ts-timer-bg:var(--surface);
  --ts-timer-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --saved-row-border:var(--border);
  --lset-bg:var(--surface-2);
  --cp-root-bg:rgba(35,28,15,.4);
  --lumen-tip-shadow:0 6px 24px -8px color-mix(in srgb,var(--t-shadow-base) 45%,transparent), 0 2px 6px -2px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --date-picker-filter:invert(.7) sepia(.3) saturate(2) hue-rotate(-20deg);
  --rtabs-btn-on-fg:var(--accent);
  --loader-invert:0;
}

html[data-skin="cat"]{
color-scheme:only light;
  --t-bg:#faf5ef;
  --t-panel:#f5ede4;
  --t-panel2:#ede4d8;
  --t-panel3:#e2d5c5;
  --t-surface:#fffdf9;
  --t-surface2:#f5ede4;
  --t-surface3:#ede4d8;
  --t-ink:#3d2b1f;
  --t-soft:#6f5a41;
  --t-dim:#9c8469;
  --t-border:#d4c5b5;
  --t-border-soft:#e8ddd0;
  --t-border-strong:#b8a898;
  --t-hairline:#f0e8e0;
  --t-line:#d4c5b5;
  --t-line2:#b8a898;
  --t-accent:#c96d31;
  --t-accent-hover:#b85e2a;
  --t-accent-deep:#a55224;
  --t-accent-soft:#e29a5e;
  --t-accent-ink:#fff8f0;
  --t-ok:#5f8d40;
  --t-warn:#96701f;
  --t-err:#b0402f;
  --t-err-deep:#8a2a1c;
  --t-warn-deep:#7a5a16;
  --t-focus:#c96d31;
  --t-viewer-bg:#fffdf9;
  --t-shadow-base:rgba(80,50,20,.45);
  --t-shadow-accent:none;
  --t-inset-hi:rgba(255,255,255,.6);
  --t-glass-blur:none;
  --t-scroll-thumb:rgba(139,115,85,.2);
  --t-scroll-thumb-hover:rgba(139,115,85,.36);
  --t-serif:'Fraunces',Georgia,serif;
  --t-sans:'Nunito',sans-serif;
  --t-mono:'JetBrains Mono',ui-monospace,monospace;
  --t-read:'Source Serif 4',Georgia,serif;
  /* ---- component tokens (derived unless overridden) ---- */
  --glass-bg:var(--surface);
  --glass-blur:none;
  --glass-shadow:0 0 0 1px var(--border) inset, 0 12px 28px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --glass-border:var(--border);
  --bar-bg:var(--surface);
  --bar-blur:none;
  --bar-shadow:none;
  --bar-border:var(--border);
  --nav-bg:var(--surface);
  --nav-blur:none;
  --nav-shadow:none;
  --nav-border:var(--border);
  --ctl-bg:transparent;
  --ctl-border:color-mix(in srgb,var(--border) 140%,var(--fg));
  --ctl-fg:var(--soft);
  --ctl-shadow:none;
  --ctl-inset:none;
  --ctl-hover-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --ctl-hover-border:color-mix(in srgb,var(--accent) 55%,var(--border));
  --ctl-hover-fg:var(--accent);
  --ctl-hover-shadow:none;
  --ctl-hover-inset:none;
  --ctl-active-bg:var(--accent);
  --ctl-active-border:var(--accent);
  --ctl-active-fg:var(--accent-ink);
  --ctl-active-shadow:0 4px 12px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --ctl-active-inset:none;
  --primary-bg:var(--accent);
  --primary-border:color-mix(in srgb,var(--accent) 78%,black 22%);
  --primary-fg:var(--accent-ink);
  --primary-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 18px -6px color-mix(in srgb,var(--accent) 45%,transparent);
  --primary-inset:inset 0 1px 0 rgba(255,255,255,.24);
  --primary-hover-bg:var(--accent-h);
  --primary-hover-border:var(--accent-h);
  --primary-hover-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 10px 24px -8px color-mix(in srgb,var(--accent) 55%,transparent);
  --primary-hover-inset:inset 0 1px 0 rgba(255,255,255,.3);
  --primary-active-bg:var(--accent);
  --primary-active-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 3px 10px -3px color-mix(in srgb,var(--accent) 45%,transparent);
  --primary-active-inset:inset 0 1px 0 rgba(255,255,255,.16);
  --secondary-bg:var(--surface-2);
  --secondary-border:var(--border);
  --secondary-fg:var(--fg);
  --secondary-shadow:none;
  --secondary-hover-bg:var(--surface-3);
  --secondary-hover-border:color-mix(in srgb,var(--accent) 45%,var(--border));
  --secondary-hover-fg:var(--accent);
  --secondary-hover-shadow:none;
  --danger-bg:transparent;
  --danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --danger-fg:var(--err);
  --danger-shadow:none;
  --danger-hover-bg:color-mix(in srgb,var(--err) 12%,var(--surface-2));
  --danger-hover-border:var(--err);
  --danger-hover-fg:var(--err);
  --input-bg:var(--surface);
  --input-border:var(--border);
  --input-fg:var(--fg);
  --input-shadow:none;
  --input-focus-border:var(--accent);
  --input-focus-shadow:var(--ring-soft);
  --card-bg:var(--surface);
  --card-border:var(--border);
  --chip-bg:transparent;
  --chip-border:color-mix(in srgb,var(--border) 140%,var(--fg));
  --chip-fg:var(--fg);
  --chip-shadow:none;
  --chip-inset:none;
  --chip-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --chip-hover-border:color-mix(in srgb,var(--accent) 40%,var(--border));
  --chip-hover-shadow:none;
  --chip-hover-inset:none;
  --badge-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --badge-border:color-mix(in srgb,var(--accent) 32%,transparent);
  --badge-fg:var(--accent);
  --bubble-user-bg:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,var(--surface-2)) 0%,color-mix(in srgb,var(--accent) 8%,var(--surface)) 100%);
  --bubble-user-border:color-mix(in srgb,var(--accent) 24%,var(--border));
  --bubble-user-shadow:none;
  --bubble-ai-border:var(--accent);
  --scroll-thumb:var(--t-scroll-thumb, rgba(255,255,255,.08));
  --scroll-thumb-hover:var(--t-scroll-thumb-hover, rgba(255,255,255,.2));
  --seg-bg:var(--surface-2);
  --seg-fg:var(--soft);
  --seg-on-bg:var(--accent);
  --seg-on-fg:var(--accent-ink);
  --ibtn-danger-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --ibtn-danger-fg:var(--err);
  --ibtn-disabled-opacity:.35;
  --tool-card-hover-bg:var(--surface-3);
  --tool-card-hover-border:color-mix(in srgb,var(--accent) 42%,var(--border));
  --tc-icon-bg:transparent;
  --tc-icon-border:color-mix(in srgb,var(--accent) 45%,var(--border));
  --tc-icon-hover-bg:var(--accent);
  --tc-icon-hover-border:var(--accent);
  --tc-icon-hover-fg:var(--accent-ink);
  --tc-icon-hover-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 6px 14px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-icon-active-bg:var(--accent);
  --tc-icon-active-border:var(--accent);
  --tc-icon-active-fg:var(--accent-ink);
  --tc-icon-active-shadow:0 4px 12px -4px color-mix(in srgb,var(--accent) 45%,transparent);
  --tc-new-shadow:0 2px 6px -2px color-mix(in srgb,var(--accent) 45%,transparent);
  --rail-btn-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --rail-btn-hover-border:color-mix(in srgb,var(--accent) 40%,var(--border));
  --rail-btn-hover-fg:var(--accent);
  --rail-btn-on-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --rail-btn-on-fg:var(--accent);
  --home-search-bg:var(--surface);
  --home-search-border:var(--border);
  --home-search-shadow:0 1px 2px rgba(35,28,15,.06);
  --home-search-focus-border:var(--accent);
  --home-search-focus-shadow:var(--ring-soft);
  --chat-in-bg:var(--surface-2);
  --chat-in-border:var(--border);
  --chat-in-shadow:none;
  --chat-in-focus-border:color-mix(in srgb,var(--accent) 55%,var(--border));
  --chat-in-focus-shadow:var(--ring-soft);
  --ai-model-select-bg:var(--surface);
  --ai-model-select-border:var(--border);
  --ai-model-btn-bg:var(--surface-2);
  --ai-model-btn-border:var(--border);
  --ai-model-menu-shadow:0 0 0 1px var(--border) inset, 0 20px 50px -20px color-mix(in srgb,var(--t-shadow-base) 69%,transparent);
  --net-badge-bg:var(--surface-2);
  --net-badge-border:var(--border);
  --net-badge-fg:var(--soft);
  --net-badge-hover-border:var(--accent);
  --net-badge-hover-fg:var(--accent);
  --nb-banner-bg:color-mix(in srgb,var(--accent) 8%,var(--surface));
  --nb-banner-border:color-mix(in srgb,var(--accent) 30%,var(--border));
  --nb-banner-fg:var(--ink);
  --cal-cell-bg:var(--surface);
  --cal-dow-bg:var(--surface-2);
  --cal-cell-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --cev-bg:transparent;
  --cev-fg:var(--ink);
  --cev-task-bg:color-mix(in srgb,var(--accent) 10%,transparent);
  --cev-task-border:color-mix(in srgb,var(--accent) 65%,transparent);
  --cev-red-bg:color-mix(in srgb,var(--err) 12%,transparent);
  --cev-red-border:color-mix(in srgb,var(--err) 70%,transparent);
  --cev-amber-bg:color-mix(in srgb,var(--warn) 14%,transparent);
  --cev-amber-border:color-mix(in srgb,var(--warn) 70%,transparent);
  --cev-green-bg:color-mix(in srgb,var(--ok) 12%,transparent);
  --cev-green-border:color-mix(in srgb,var(--ok) 65%,transparent);
  --up-item-urgent-bg:color-mix(in srgb,var(--err) 8%,var(--surface));
  --up-item-urgent-border:color-mix(in srgb,var(--err) 55%,var(--border));
  --wb-tbl-editor-bg:var(--surface);
  --wb-tbl-editor-border:var(--accent);
  --wb-tbl-editor-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -10px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --wb-tbl-editor-th-bg:color-mix(in srgb,var(--accent) 8%,var(--surface-2));
  --wb-tbl-editor-th-fg:var(--soft);
  --wb-tbl-hdr-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-editing-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --wb-tbl-rg-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --row-plus-hover-bg:color-mix(in srgb,var(--accent) 8%,transparent);
  --tbl-cell-menu-bg:var(--surface);
  --tbl-cell-menu-border:var(--border);
  --tbl-cell-menu-shadow:0 12px 30px -10px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --tbl-cell-menu-btn-hover-bg:color-mix(in srgb,var(--accent) 12%,transparent);
  --tbl-cell-menu-btn-hover-fg:var(--accent);
  --dg-legend-bg:var(--surface);
  --dg-legend-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --ts-timer-bg:var(--surface);
  --ts-timer-shadow:0 0 0 1px var(--border) inset, 0 12px 30px -12px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --saved-row-border:var(--border);
  --lset-bg:var(--surface-2);
  --cp-root-bg:rgba(35,28,15,.4);
  --lumen-tip-shadow:0 6px 24px -8px color-mix(in srgb,var(--t-shadow-base) 45%,transparent), 0 2px 6px -2px color-mix(in srgb,var(--t-shadow-base) 45%,transparent);
  --date-picker-filter:invert(.7) sepia(.3) saturate(2) hue-rotate(-20deg);
  --rtabs-btn-on-fg:var(--accent);
  --loader-invert:0;
}

/* ============ per-theme component overrides ============ */

body::after{

  background:radial-gradient(900px 380px at 50% -10%, rgba(179,64,42,.05), transparent 60%);
}

html{

  color-scheme:only light;

  forced-color-adjust:none;

  -webkit-filter:none;

  filter:none;

  background:var(--t-bg);
}

html *{

  forced-color-adjust:none;
}

html{

  color-scheme:only light;

  background:var(--t-bg);
}

html body{

  background:var(--bg);

  color:var(--fg);
}

html{

  background:var(--t-bg);
}

html[data-skin="paper"] #space-canvas,
html[data-skin="midnight"] #space-canvas,
html[data-skin="contrast"] #space-canvas,
html[data-skin="comfy"] #space-canvas{

  display:none;
}

html[data-skin="paper"] .ls-hl,
html[data-skin="comfy"] .ls-hl{

  mix-blend-mode:multiply;

  opacity:.5;
}

body::after{

  background:radial-gradient(900px 380px at 50% -10%, rgba(184,80,27,.07), transparent 60%);
}

html[data-skin="midnight"] .ibtn{

  background:transparent;

  border-color:color-mix(in srgb,var(--border) 160%,var(--fg));
}

html[data-skin="midnight"] .ibtn:hover{

  background:color-mix(in srgb,var(--accent) 10%,transparent);

  border-color:color-mix(in srgb,var(--accent) 55%,var(--border));

  color:var(--accent);
}

html[data-skin="midnight"] .chip{

  background:transparent;

  border-color:color-mix(in srgb,var(--border) 140%,var(--fg));
}

html[data-skin="midnight"] .chip:hover{

  background:color-mix(in srgb,var(--accent) 8%,transparent);

  border-color:color-mix(in srgb,var(--accent) 40%,var(--border));
}

body::after{

  background:radial-gradient(900px 380px at 50% -10%, rgba(232,148,74,.06), transparent 60%);
}

html{

  color-scheme:only light;

  forced-color-adjust:none;

  -webkit-filter:none;

  filter:none;

  background:var(--t-bg);
}

html *{

  forced-color-adjust:none;
}

html{

  color-scheme:only light;

  background:var(--t-bg);
}

html body{

  background:var(--bg);

  color:var(--fg);
}

html[data-skin="paper"] #space-canvas,
html[data-skin="midnight"] #space-canvas,
html[data-skin="contrast"] #space-canvas,
html[data-skin="comfy"] #space-canvas,
html[data-skin="cat"] #space-canvas{

  display:none;
}

html[data-skin="paper"] .ls-hl,
html[data-skin="comfy"] .ls-hl,
html[data-skin="cat"] .ls-hl{

  mix-blend-mode:multiply;

  opacity:.5;
}

html[data-skin="cat"] .ibtn{

  border-radius:12px;
}

html[data-skin="cat"] .ibtn:hover{

  border-radius:12px;
}

html[data-skin="cat"] .ibtn.active{

  border-radius:12px;
}

html[data-skin="cat"] .btn{

  border-radius:10px;
}

html[data-skin="cat"] .btn:hover{

  border-radius:10px;
}

html[data-skin="cat"] .btn.primary{

  border-radius:10px;
}

html[data-skin="cat"] .btn.primary:hover{

  border-radius:10px;
}

html[data-skin="cat"] .chip{

  border-radius:999px;
}

html[data-skin="cat"] .chip:hover{

  border-radius:999px;
}

html[data-skin="cat"] .tool-card{

  border-radius:16px;
}

html[data-skin="cat"] .tool-card:hover{

  border-radius:16px;
}

html[data-skin="cat"] .home-search{

  border-radius:12px;
}

html[data-skin="cat"] #chatIn{

  border-radius:12px;
}

html[data-skin="cat"] .ai-model-select{

  border-radius:12px;
}

html[data-skin="cat"] .ai-model-btn{

  border-radius:12px;
}

html[data-skin="cat"] ::selection{

  background:rgba(232,148,74,.25);

  color:var(--fg);
}

html[data-skin="cat"] ::-webkit-scrollbar-thumb{

  background:rgba(139,115,85,.25);
}

html[data-skin="cat"] ::-webkit-scrollbar-thumb:hover{

  background:rgba(139,115,85,.4);
}

/* ============ settings cards ============ */

.skin-card[data-skin=""] .skin-sw i:nth-child(1){background:#0b0b0f}

.skin-card[data-skin=""] .skin-sw i:nth-child(2){background:#17171d}

.skin-card[data-skin=""] .skin-sw i:nth-child(3){background:#e8e6e1}

.skin-card[data-skin="paper"] .skin-sw i:nth-child(1){background:#faf7f1}

.skin-card[data-skin="paper"] .skin-sw i:nth-child(2){background:#eae4d8}

.skin-card[data-skin="paper"] .skin-sw i:nth-child(3){background:#3a3630}

.skin-card[data-skin="midnight"] .skin-sw i:nth-child(1){background:#05070f}

.skin-card[data-skin="midnight"] .skin-sw i:nth-child(2){background:#101a33}

.skin-card[data-skin="midnight"] .skin-sw i:nth-child(3){background:#7aa2f7}

.skin-card[data-skin="contrast"] .skin-sw i:nth-child(1){background:#000}

.skin-card[data-skin="contrast"] .skin-sw i:nth-child(2){background:#1a1a1a}

.skin-card[data-skin="contrast"] .skin-sw i:nth-child(3){background:#ffe500}

.skin-card[data-skin="comfy"] .skin-sw i:nth-child(1){background:#f2efe9}

.skin-card[data-skin="comfy"] .skin-sw i:nth-child(2){background:#dcd6ca}

.skin-card[data-skin="comfy"] .skin-sw i:nth-child(3){background:#4a5b52}

.skin-card[data-skin="cat"] .skin-sw i:nth-child(1){background:#faf5ef}

.skin-card[data-skin="cat"] .skin-sw i:nth-child(2){background:#f5ede4}

.skin-card[data-skin="cat"] .skin-sw i:nth-child(3){background:#c96d31}
