/* 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. */


/* 9 themes: (default), forest, noir, paper, midnight, contrast, comfy, cat, rain */


:root{
color-scheme:only light;
  --t-bg:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27760%27%20height%3D%27760%27%3E%3Cg%20transform%3D%27translate%28372%20330%29%20rotate%2826%29%20scale%280.98%29%27%3E%3Cpath%20d%3D%27M380%20118C546%20224%20548%20472%20380%20650C212%20472%20214%20224%20380%20118Z%27%20fill%3D%27%234c7a5e%27%20fill-opacity%3D%270.13%27%2F%3E%3Cpath%20d%3D%27M380%20650C379%20690%20371%20716%20353%20742%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.35200000000000004%27%20stroke-width%3D%276.5%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20650C380%20540%20380%20300%20380%20152%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.28600000000000003%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C428%20540%20462%20512%20484%20474%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C332%20540%20298%20512%20276%20474%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C430%20458%20466%20430%20488%20390%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C330%20458%20294%20430%20272%20390%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C428%20374%20460%20348%20480%20310%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C332%20374%20300%20348%20280%20310%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C424%20292%20452%20268%20470%20234%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C336%20292%20308%20268%20290%20234%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C418%20212%20442%20192%20458%20164%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C342%20212%20318%20192%20302%20164%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%27translate%28120%20132%29%20rotate%28-22%29%20scale%280.52%29%27%3E%3Cpath%20d%3D%27M380%20118C546%20224%20548%20472%20380%20650C212%20472%20214%20224%20380%20118Z%27%20fill%3D%27%234c7a5e%27%20fill-opacity%3D%270.11%27%2F%3E%3Cpath%20d%3D%27M380%20650C379%20690%20371%20716%20353%20742%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.288%27%20stroke-width%3D%276.5%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20650C380%20540%20380%20300%20380%20152%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.23399999999999999%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C428%20540%20462%20512%20484%20474%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C332%20540%20298%20512%20276%20474%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C430%20458%20466%20430%20488%20390%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C330%20458%20294%20430%20272%20390%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C428%20374%20460%20348%20480%20310%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C332%20374%20300%20348%20280%20310%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C424%20292%20452%20268%20470%20234%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C336%20292%20308%20268%20290%20234%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C418%20212%20442%20192%20458%20164%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C342%20212%20318%20192%20302%20164%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%27translate%28618%20596%29%20rotate%28-34%29%20scale%280.44%29%27%3E%3Cpath%20d%3D%27M380%20118C546%20224%20548%20472%20380%20650C212%20472%20214%20224%20380%20118Z%27%20fill%3D%27%234c7a5e%27%20fill-opacity%3D%270.1%27%2F%3E%3Cpath%20d%3D%27M380%20650C379%20690%20371%20716%20353%20742%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.272%27%20stroke-width%3D%276.5%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20650C380%20540%20380%20300%20380%20152%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.22100000000000003%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C428%20540%20462%20512%20484%20474%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C332%20540%20298%20512%20276%20474%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C430%20458%20466%20430%20488%20390%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C330%20458%20294%20430%20272%20390%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C428%20374%20460%20348%20480%20310%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C332%20374%20300%20348%20280%20310%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C424%20292%20452%20268%20470%20234%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C336%20292%20308%20268%20290%20234%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C418%20212%20442%20192%20458%20164%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C342%20212%20318%20192%20302%20164%27%20fill%3D%27none%27%20stroke%3D%27%234c7a5e%27%20stroke-opacity%3D%270.17%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3Ccircle%20cx%3D%27700%27%20cy%3D%27672%27%20r%3D%277%27%20fill%3D%27%23b75c3a%27%20fill-opacity%3D%27.15%27%2F%3E%3Ccircle%20cx%3D%27722%27%20cy%3D%27694%27%20r%3D%276%27%20fill%3D%27%23b75c3a%27%20fill-opacity%3D%27.13%27%2F%3E%3Ccircle%20cx%3D%27692%27%20cy%3D%27696%27%20r%3D%275%27%20fill%3D%27%23b75c3a%27%20fill-opacity%3D%27.12%27%2F%3E%3Ccircle%20cx%3D%2784%27%20cy%3D%27652%27%20r%3D%277%27%20fill%3D%27%23b75c3a%27%20fill-opacity%3D%27.14%27%2F%3E%3Ccircle%20cx%3D%27110%27%20cy%3D%27676%27%20r%3D%276%27%20fill%3D%27%23b75c3a%27%20fill-opacity%3D%27.12%27%2F%3E%3C%2Fsvg%3E"), radial-gradient(circle at 18% 0%, #fbf8f0 0%, #f3efe3 52%, #ebe6d5 100%);
  --t-panel:#fbf9f1;
  --t-panel2:#f2eee1;
  --t-panel3:#e9e4d3;
  --t-surface:#fdfcf6;
  --t-surface2:#f3efe3;
  --t-surface3:#eae5d5;
  --t-ink:#1c2a20;
  --t-soft:#4a5c4f;
  --t-dim:#6a7a6c;
  --t-border:#ddd7c4;
  --t-border-soft:rgba(28,42,32,.13);
  --t-border-strong:#c6bfa8;
  --t-hairline:rgba(28,42,32,.05);
  --t-line:rgba(28,42,32,.09);
  --t-line2:rgba(28,42,32,.22);
  --t-accent:#2e7d4f;
  --t-accent-hover:#378f5c;
  --t-accent-deep:#1e5434;
  --t-accent-soft:#74b891;
  --t-accent-ink:#ffffff;
  --t-ok:#2f8f5b;
  --t-warn:#a97e2c;
  --t-err:#bf5744;
  --t-err-deep:#6e2a1f;
  --t-warn-deep:#6e4d17;
  --t-focus:#378f5c;
  --t-viewer-bg:#f6f4ea;
  --t-shadow-base:rgba(66,56,34,.3);
  --t-shadow-accent:0 24px 74px -22px rgba(46,125,79,.16);
  --t-inset-hi:rgba(255,255,255,.6);
  --t-glass-alpha:70%;
  --t-glass-blur:saturate(150%) blur(16px);
  --t-scroll-thumb:rgba(28,42,32,.14);
  --t-scroll-thumb-hover:rgba(28,42,32,.3);
  --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="forest"]{
color-scheme:dark;
  --t-bg:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27520%27%20height%3D%27520%27%3E%3Cdefs%3E%3CradialGradient%20id%3D%27g%27%3E%3Cstop%20offset%3D%270%25%27%20stop-color%3D%27%23d9fce4%27%20stop-opacity%3D%27.95%27%2F%3E%3Cstop%20offset%3D%27100%25%27%20stop-color%3D%27%23d9fce4%27%20stop-opacity%3D%270%27%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Ccircle%20cx%3D%2774%27%20cy%3D%2796%27%20r%3D%276%27%20fill%3D%27url%28%23g%29%27%20opacity%3D%270.8%27%3E%3Canimate%20attributeName%3D%27opacity%27%20values%3D%270.8%3B0.24%3B0.8%27%20dur%3D%277s%27%20begin%3D%27-1s%27%20repeatCount%3D%27indefinite%27%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D%27196%27%20cy%3D%2744%27%20r%3D%274%27%20fill%3D%27url%28%23g%29%27%20opacity%3D%270.55%27%3E%3Canimate%20attributeName%3D%27opacity%27%20values%3D%270.55%3B0.165%3B0.55%27%20dur%3D%279s%27%20begin%3D%27-4s%27%20repeatCount%3D%27indefinite%27%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D%27338%27%20cy%3D%27128%27%20r%3D%277%27%20fill%3D%27url%28%23g%29%27%20opacity%3D%270.7%27%3E%3Canimate%20attributeName%3D%27opacity%27%20values%3D%270.7%3B0.21%3B0.7%27%20dur%3D%278s%27%20begin%3D%27-2s%27%20repeatCount%3D%27indefinite%27%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D%27452%27%20cy%3D%27306%27%20r%3D%275%27%20fill%3D%27url%28%23g%29%27%20opacity%3D%270.6%27%3E%3Canimate%20attributeName%3D%27opacity%27%20values%3D%270.6%3B0.18%3B0.6%27%20dur%3D%2710s%27%20begin%3D%27-6s%27%20repeatCount%3D%27indefinite%27%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D%27250%27%20cy%3D%27268%27%20r%3D%274%27%20fill%3D%27url%28%23g%29%27%20opacity%3D%270.5%27%3E%3Canimate%20attributeName%3D%27opacity%27%20values%3D%270.5%3B0.15%3B0.5%27%20dur%3D%277s%27%20begin%3D%27-3s%27%20repeatCount%3D%27indefinite%27%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D%2796%27%20cy%3D%27388%27%20r%3D%276%27%20fill%3D%27url%28%23g%29%27%20opacity%3D%270.75%27%3E%3Canimate%20attributeName%3D%27opacity%27%20values%3D%270.75%3B0.22499999999999998%3B0.75%27%20dur%3D%279s%27%20begin%3D%27-5s%27%20repeatCount%3D%27indefinite%27%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D%27398%27%20cy%3D%27444%27%20r%3D%275%27%20fill%3D%27url%28%23g%29%27%20opacity%3D%270.65%27%3E%3Canimate%20attributeName%3D%27opacity%27%20values%3D%270.65%3B0.195%3B0.65%27%20dur%3D%278s%27%20begin%3D%27-7s%27%20repeatCount%3D%27indefinite%27%2F%3E%3C%2Fcircle%3E%3C%2Fsvg%3E"), url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27820%27%20height%3D%27820%27%3E%3Cg%20transform%3D%27translate%28424%20336%29%20rotate%2820%29%20scale%281.02%29%27%3E%3Cpath%20d%3D%27M380%20118C546%20224%20548%20472%20380%20650C212%20472%20214%20224%20380%20118Z%27%20fill%3D%27%231a2f21%27%20fill-opacity%3D%270.7%27%2F%3E%3Cpath%20d%3D%27M380%20650C379%20690%20371%20716%20353%20742%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.384%27%20stroke-width%3D%276.5%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20650C380%20540%20380%20300%20380%20152%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.312%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C428%20540%20462%20512%20484%20474%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C332%20540%20298%20512%20276%20474%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C430%20458%20466%20430%20488%20390%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C330%20458%20294%20430%20272%20390%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C428%20374%20460%20348%20480%20310%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C332%20374%20300%20348%20280%20310%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C424%20292%20452%20268%20470%20234%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C336%20292%20308%20268%20290%20234%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C418%20212%20442%20192%20458%20164%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C342%20212%20318%20192%20302%20164%27%20fill%3D%27none%27%20stroke%3D%27%232c4a36%27%20stroke-opacity%3D%270.24%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%27translate%28148%20566%29%20rotate%28-30%29%20scale%280.5%29%27%3E%3Cpath%20d%3D%27M380%20118C546%20224%20548%20472%20380%20650C212%20472%20214%20224%20380%20118Z%27%20fill%3D%27%23152820%27%20fill-opacity%3D%270.62%27%2F%3E%3Cpath%20d%3D%27M380%20650C379%20690%20371%20716%20353%20742%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.32000000000000006%27%20stroke-width%3D%276.5%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20650C380%20540%20380%20300%20380%20152%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.26%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C428%20540%20462%20512%20484%20474%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C332%20540%20298%20512%20276%20474%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C430%20458%20466%20430%20488%20390%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C330%20458%20294%20430%20272%20390%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C428%20374%20460%20348%20480%20310%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C332%20374%20300%20348%20280%20310%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C424%20292%20452%20268%20470%20234%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C336%20292%20308%20268%20290%20234%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C418%20212%20442%20192%20458%20164%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C342%20212%20318%20192%20302%20164%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%27translate%28660%20130%29%20rotate%2836%29%20scale%280.42%29%27%3E%3Cpath%20d%3D%27M380%20118C546%20224%20548%20472%20380%20650C212%20472%20214%20224%20380%20118Z%27%20fill%3D%27%23152820%27%20fill-opacity%3D%270.55%27%2F%3E%3Cpath%20d%3D%27M380%20650C379%20690%20371%20716%20353%20742%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.288%27%20stroke-width%3D%276.5%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20650C380%20540%20380%20300%20380%20152%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.23399999999999999%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C428%20540%20462%20512%20484%20474%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20560C332%20540%20298%20512%20276%20474%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C430%20458%20466%20430%20488%20390%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20476C330%20458%20294%20430%20272%20390%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C428%20374%20460%20348%20480%20310%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20392C332%20374%20300%20348%20280%20310%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C424%20292%20452%20268%20470%20234%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20308C336%20292%20308%20268%20290%20234%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C418%20212%20442%20192%20458%20164%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20226C342%20212%20318%20192%20302%20164%27%20fill%3D%27none%27%20stroke%3D%27%23274231%27%20stroke-opacity%3D%270.18%27%20stroke-width%3D%272.8%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%27translate%28596%20168%29%20rotate%2844%29%20scale%280.72%29%27%3E%3Cpath%20d%3D%27M380%20118C546%20224%20548%20472%20380%20650C212%20472%20214%20224%20380%20118Z%27%20fill%3D%27none%27%20stroke%3D%27%234f9a6b%27%20stroke-opacity%3D%270.2%27%20stroke-width%3D%272.6%27%20stroke-linejoin%3D%27round%27%2F%3E%3Cpath%20d%3D%27M380%20650C380%20540%20380%20300%20380%20152%27%20fill%3D%27none%27%20stroke%3D%27%234f9a6b%27%20stroke-opacity%3D%270.12%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"), radial-gradient(circle at 50% -10%, rgba(127,199,148,.06), transparent 55%), linear-gradient(180deg, #0d1811 0%, #070d09 100%);
  --t-panel:#17251c;
  --t-panel2:#1e3025;
  --t-panel3:#263d2e;
  --t-surface:#18271e;
  --t-surface2:#1e3025;
  --t-surface3:#263d2e;
  --t-ink:#edf3ec;
  --t-soft:#a9bcab;
  --t-dim:#85998a;
  --t-border:#2b4233;
  --t-border-soft:rgba(237,243,236,.14);
  --t-border-strong:#3c5946;
  --t-hairline:rgba(237,243,236,.06);
  --t-line:rgba(237,243,236,.1);
  --t-line2:rgba(237,243,236,.26);
  --t-accent:#7fc794;
  --t-accent-hover:#9ad9aa;
  --t-accent-deep:#2f5e41;
  --t-accent-soft:#bce4c5;
  --t-accent-ink:#0a130d;
  --t-ok:#6fc492;
  --t-warn:#d9b25c;
  --t-err:#e07a6a;
  --t-err-deep:#7c3326;
  --t-warn-deep:#7c5a1e;
  --t-focus:#9ad9aa;
  --t-viewer-bg:#0c1610;
  --t-shadow-base:rgba(0,0,0,.6);
  --t-shadow-accent:0 24px 74px -22px rgba(127,199,148,.13);
  --t-inset-hi:rgba(255,255,255,.05);
  --t-glass-alpha:56%;
  --t-glass-blur:saturate(165%) blur(20px);
  --t-scroll-thumb:rgba(237,243,236,.11);
  --t-scroll-thumb-hover:rgba(237,243,236,.26);
  --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="noir"]{
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;
}

html[data-skin="rain"]{
color-scheme:dark;
  --t-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='560'%3E%3Cg stroke='%23cfe4f2' stroke-linecap='round'%3E%3Cline x1='26' y1='-84' x2='18' y2='-40' stroke-width='1.1' opacity='.13'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='.95s' begin='-.20s' repeatCount='indefinite'/%3E%3C/line%3E%3Cline x1='62' y1='-84' x2='54' y2='-40' stroke-width='1' opacity='.10'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='.78s' begin='-.55s' repeatCount='indefinite'/%3E%3C/line%3E%3Cline x1='95' y1='-90' x2='87' y2='-42' stroke-width='1.3' opacity='.15'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='1.08s' begin='-.05s' repeatCount='indefinite'/%3E%3C/line%3E%3Cline x1='128' y1='-84' x2='120' y2='-40' stroke-width='1' opacity='.11'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='.86s' begin='-.70s' repeatCount='indefinite'/%3E%3C/line%3E%3Cline x1='156' y1='-90' x2='148' y2='-44' stroke-width='.9' opacity='.09'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='.99s' begin='-.35s' repeatCount='indefinite'/%3E%3C/line%3E%3Cline x1='186' y1='-84' x2='178' y2='-40' stroke-width='1.2' opacity='.14'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='.82s' begin='-.12s' repeatCount='indefinite'/%3E%3C/line%3E%3Cline x1='214' y1='-90' x2='206' y2='-44' stroke-width='1' opacity='.10'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='1.12s' begin='-.48s' repeatCount='indefinite'/%3E%3C/line%3E%3Cline x1='244' y1='-84' x2='236' y2='-40' stroke-width='1.1' opacity='.12'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='.9s' begin='-.66s' repeatCount='indefinite'/%3E%3C/line%3E%3Cline x1='70' y1='-60' x2='63' y2='-28' stroke-width='1.4' opacity='.18'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='.72s' begin='-.30s' repeatCount='indefinite'/%3E%3C/line%3E%3Cline x1='200' y1='-64' x2='193' y2='-30' stroke-width='1.4' opacity='.17'%3E%3CanimateTransform attributeName='transform' type='translate' values='0 0; -14 660' dur='.74s' begin='-.90s' repeatCount='indefinite'/%3E%3C/line%3E%3C/g%3E%3C/svg%3E"), radial-gradient(1100px 500px at 30% -12%, rgba(148,196,226,.08), transparent 62%), linear-gradient(180deg,#16202e 0%,#0d141f 58%);
  --t-panel:#131c28;
  --t-panel2:#192534;
  --t-panel3:#20303f;
  --t-surface:#151f2b;
  --t-surface2:#192534;
  --t-surface3:#20303f;
  --t-ink:#e7eef5;
  --t-soft:#96a8ba;
  --t-dim:#76889a;
  --t-border:#243444;
  --t-border-soft:rgba(231,238,245,.13);
  --t-border-strong:#364d63;
  --t-hairline:rgba(231,238,245,.05);
  --t-line:rgba(231,238,245,.1);
  --t-line2:rgba(231,238,245,.24);
  --t-accent:#6cc4e8;
  --t-accent-hover:#90d7f2;
  --t-accent-deep:#1e5c7c;
  --t-accent-soft:#a9e3f8;
  --t-accent-ink:#08141d;
  --t-ok:#5fc98d;
  --t-warn:#d9b25c;
  --t-err:#e07a6a;
  --t-err-deep:#7c3326;
  --t-warn-deep:#7c5a1e;
  --t-focus:#90d7f2;
  --t-viewer-bg:#111a25;
  --t-shadow-base:rgba(0,0,0,.6);
  --t-shadow-accent:0 24px 74px -22px rgba(108,196,232,.13);
  --t-inset-hi:rgba(255,255,255,.06);
  --t-glass-alpha:48%;
  --t-glass-blur:saturate(150%) blur(26px);
  --t-scroll-thumb:rgba(231,238,245,.11);
  --t-scroll-thumb-hover:rgba(231,238,245,.26);
  --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;
}

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

html[data-skin="forest"] #space-canvas{

  display:none;
}

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);
}

html[data-skin="rain"] #space-canvas{

  display:none;
}

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

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

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

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

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

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

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

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

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

.skin-card[data-skin="noir"] .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}

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

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

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