/**
 * 青藤制作台 · 界面主题（缓解审美疲劳）
 * 通过 html[data-igs-theme] 切换；令牌与 body 氛围背景。
 * v1.3 · 2026-08-11 · 筛选芯片 / 滚动定位 / 切换闪过渡 / 暗色面板 / 美夕儿角标
 * 面层见 ink-gag-studio-themes-surfaces.css
 */

:root {
  --igs-bg-a: #cfe8dc;
  --igs-bg-b: #f0dcc8;
  --igs-bg-mid: #ebe4d4;
  --igs-bg-end: #e6dfd0;
  --igs-elev: #ffffff;
  --igs-shell: #fffcf5;
  --igs-theme-glow: rgba(31, 107, 88, 0.14);
  --igs-theme-noise: 0.035;
  --igs-theme-radius: 0.85rem;
  --igs-theme-transit: background 0.5s ease, color 0.35s ease, border-color 0.35s ease,
    box-shadow 0.35s ease;
  --igs-happy-sun: #f5c842;
  --igs-happy-sky: #3ba7e0;
  --igs-happy-grass: #3cb86a;
  --igs-happy-coral: #ff6b8a;
  --igs-happy-orange: #ff8a3d;
  --igs-color-cta: var(--igs-happy-orange);
}

/* —— 晴空柠檬（快乐默认 · sunny） —— */
html[data-igs-theme='sunny'],
html:not([data-igs-theme]) {
  --igs-on-accent: #142028;
  --igs-ink: #1a2a38;
  --igs-paper: #fff8ef;
  --igs-mist: #e8dcc4;
  --igs-accent: #3ba7e0;
  --igs-accent-2: #f5c842;
  --igs-warn: #ff8a3d;
  --igs-line: #d8cbb0;
  --igs-card: #ffffff;
  --igs-ok: #3cb86a;
  --igs-muted: #6a7888;
  --igs-bg-a: #b8e4f8;
  --igs-bg-b: #ffe9a8;
  --igs-bg-mid: #fff4e0;
  --igs-bg-end: #e8f6ff;
  --igs-elev: #ffffff;
  --igs-shell: #fffdf8;
  --igs-theme-glow: rgba(59, 167, 224, 0.18);
  --igs-color-cta: #ff8a3d;
}

/* —— 草地野餐 —— */
html[data-igs-theme='picnic'] {
  --igs-on-accent: #142028;
  --igs-ink: #1a3020;
  --igs-paper: #f4fbf2;
  --igs-mist: #c8e0bc;
  --igs-accent: #3cb86a;
  --igs-accent-2: #ff8a3d;
  --igs-warn: #e07030;
  --igs-line: #b4d4a8;
  --igs-card: #fcfffa;
  --igs-ok: #2a9a58;
  --igs-muted: #5a7860;
  --igs-bg-a: #b8e8c0;
  --igs-bg-b: #ffe0b0;
  --igs-bg-mid: #f0fae8;
  --igs-bg-end: #e4f4dc;
  --igs-elev: #ffffff;
  --igs-shell: #fcfffa;
  --igs-theme-glow: rgba(60, 184, 106, 0.18);
  --igs-color-cta: #ff8a3d;
}

/* —— 汽水蓝柠 —— */
html[data-igs-theme='soda'] {
  --igs-on-accent: #142028;
  --igs-ink: #163048;
  --igs-paper: #f2faff;
  --igs-mist: #c0dcec;
  --igs-accent: #3ba7e0;
  --igs-accent-2: #f5c842;
  --igs-warn: #ff8a3d;
  --igs-line: #a8cce0;
  --igs-card: #f8fcff;
  --igs-ok: #3cb86a;
  --igs-muted: #5a7890;
  --igs-bg-a: #a8dcff;
  --igs-bg-b: #fff0a8;
  --igs-bg-mid: #eef8ff;
  --igs-bg-end: #e0f0fc;
  --igs-elev: #ffffff;
  --igs-shell: #f8fcff;
  --igs-theme-glow: rgba(59, 167, 224, 0.2);
  --igs-color-cta: #f5c842;
}

/* —— 嘉年华橙 —— */
html[data-igs-theme='carnival'] {
  --igs-on-accent: #142028;
  --igs-ink: #3a2418;
  --igs-paper: #fff6f0;
  --igs-mist: #f0d0bc;
  --igs-accent: #ff8a3d;
  --igs-accent-2: #ff6b8a;
  --igs-warn: #e05040;
  --igs-line: #e8c0a8;
  --igs-card: #fffaf6;
  --igs-ok: #3cb86a;
  --igs-muted: #8a6858;
  --igs-bg-a: #ffc898;
  --igs-bg-b: #ffd0d8;
  --igs-bg-mid: #fff0e4;
  --igs-bg-end: #ffe4d4;
  --igs-elev: #ffffff;
  --igs-shell: #fffaf6;
  --igs-theme-glow: rgba(255, 138, 61, 0.2);
  --igs-color-cta: #ff6b8a;
}

/* —— 青藤宣纸（经典） —— */
html[data-igs-theme='paper'] {
  --igs-on-accent: #f7f1e4;
  --igs-ink: #14201c;
  --igs-paper: #f2eee4;
  --igs-mist: #ddd5c6;
  --igs-accent: #1f6b58;
  --igs-accent-2: #c45c28;
  --igs-warn: #a65c2e;
  --igs-line: #c4b9a6;
  --igs-card: #fffcf5;
  --igs-ok: #1b6b45;
  --igs-muted: #6a645a;
  --igs-bg-a: #cfe8dc;
  --igs-bg-b: #f0dcc8;
  --igs-bg-mid: #ebe4d4;
  --igs-bg-end: #e6dfd0;
  --igs-elev: #ffffff;
  --igs-shell: #fffcf5;
  --igs-theme-glow: rgba(31, 107, 88, 0.14);
  --igs-color-cta: #c45c28;
}

/* —— 晨雾青瓷 —— */
html[data-igs-theme='celadon'] {
  --igs-on-accent: #f7f1e4;
  --igs-ink: #163038;
  --igs-paper: #e8f1ef;
  --igs-mist: #c5d8d4;
  --igs-accent: #2a7a72;
  --igs-accent-2: #b06b3a;
  --igs-warn: #9a5a32;
  --igs-line: #a9c2bc;
  --igs-card: #f4faf8;
  --igs-ok: #1f7a5c;
  --igs-muted: #5a6e6a;
  --igs-bg-a: #b9ddd6;
  --igs-bg-b: #dce8e4;
  --igs-bg-mid: #e4efec;
  --igs-bg-end: #d5e4e0;
  --igs-elev: #fbfffe;
  --igs-shell: #f4faf8;
  --igs-theme-glow: rgba(42, 122, 114, 0.16);
}

/* —— 竹影茶室 —— */
html[data-igs-theme='bamboo'] {
  --igs-on-accent: #f7f1e4;
  --igs-ink: #1a2618;
  --igs-paper: #e7e6d6;
  --igs-mist: #c9cbb0;
  --igs-accent: #3d6b3a;
  --igs-accent-2: #8f6b2e;
  --igs-warn: #8a5528;
  --igs-line: #b0b498;
  --igs-card: #f3f2e6;
  --igs-ok: #2f6b36;
  --igs-muted: #5e6450;
  --igs-bg-a: #c5d4a8;
  --igs-bg-b: #e2d6b0;
  --igs-bg-mid: #e4e2cf;
  --igs-bg-end: #d8d6c0;
  --igs-elev: #faf9f0;
  --igs-shell: #f3f2e6;
  --igs-theme-glow: rgba(61, 107, 58, 0.15);
}

/* —— 霜月银杏 —— */
html[data-igs-theme='frost'] {
  --igs-on-accent: #f7f1e4;
  --igs-ink: #1e242c;
  --igs-paper: #eceef2;
  --igs-mist: #c9ced8;
  --igs-accent: #3d5f7a;
  --igs-accent-2: #c49a3c;
  --igs-warn: #9a6a28;
  --igs-line: #b4bac6;
  --igs-card: #f7f8fb;
  --igs-ok: #2f6b58;
  --igs-muted: #5c6572;
  --igs-bg-a: #d5dde8;
  --igs-bg-b: #f0e4c4;
  --igs-bg-mid: #e8ebf0;
  --igs-bg-end: #dde2ea;
  --igs-elev: #ffffff;
  --igs-shell: #f7f8fb;
  --igs-theme-glow: rgba(61, 95, 122, 0.14);
}

/* —— 远山薄岚 —— */
html[data-igs-theme='dawn'] {
  --igs-on-accent: #f7f1e4;
  --igs-ink: #1a2834;
  --igs-paper: #e9eef4;
  --igs-mist: #c2cdd8;
  --igs-accent: #4a6f8a;
  --igs-accent-2: #7a8f6a;
  --igs-warn: #8a6540;
  --igs-line: #aebcca;
  --igs-card: #f5f8fb;
  --igs-ok: #3a7a68;
  --igs-muted: #5a6878;
  --igs-bg-a: #c8d8e8;
  --igs-bg-b: #d8e0d0;
  --igs-bg-mid: #e6ecf2;
  --igs-bg-end: #d5dee8;
  --igs-elev: #fcfdff;
  --igs-shell: #f5f8fb;
  --igs-theme-glow: rgba(74, 111, 138, 0.15);
}

/* —— 夜藤墨色 —— */
html[data-igs-theme='ink'] {
  --igs-on-accent: #142028;
  --igs-ink: #e7e2d6;
  --igs-paper: #161b18;
  --igs-mist: #2a332e;
  --igs-accent: #5cbc9a;
  --igs-accent-2: #e09a62;
  --igs-warn: #d4925a;
  --igs-line: #3a4640;
  --igs-card: #1e2622;
  --igs-ok: #6dbe8e;
  --igs-muted: #9aa59c;
  --igs-bg-a: #1f3a32;
  --igs-bg-b: #2a241c;
  --igs-bg-mid: #141916;
  --igs-bg-end: #0f1311;
  --igs-elev: #252e29;
  --igs-shell: #1e2622;
  --igs-theme-glow: rgba(92, 188, 154, 0.18);
}

/* —— 夏夜萤火 —— */
html[data-igs-theme='firefly'] {
  --igs-on-accent: #142028;
  --igs-ink: #e4e8ef;
  --igs-paper: #12161e;
  --igs-mist: #232a38;
  --igs-accent: #6ea8c9;
  --igs-accent-2: #e0b35a;
  --igs-warn: #d4a05a;
  --igs-line: #343c4e;
  --igs-card: #1a2030;
  --igs-ok: #6db89a;
  --igs-muted: #9aa6b8;
  --igs-bg-a: #1a2a40;
  --igs-bg-b: #2a2218;
  --igs-bg-mid: #10141c;
  --igs-bg-end: #0c1018;
  --igs-elev: #222a3a;
  --igs-shell: #1a2030;
  --igs-theme-glow: rgba(224, 179, 90, 0.16);
}

/* —— 砚台朱砂 —— */
html[data-igs-theme='cinnabar'] {
  --igs-on-accent: #142028;
  --igs-ink: #ece6dc;
  --igs-paper: #1a1614;
  --igs-mist: #302824;
  --igs-accent: #c45c48;
  --igs-accent-2: #d4a45a;
  --igs-warn: #d4925a;
  --igs-line: #443832;
  --igs-card: #241e1a;
  --igs-ok: #6da878;
  --igs-muted: #a89a8e;
  --igs-bg-a: #3a221c;
  --igs-bg-b: #1c2420;
  --igs-bg-mid: #141210;
  --igs-bg-end: #0e0c0a;
  --igs-elev: #2c241f;
  --igs-shell: #241e1a;
  --igs-theme-glow: rgba(196, 92, 72, 0.18);
}

/* —— 霁雪初晴（美夕儿 snow-clear） —— */
html[data-igs-theme='snow'] {
  --igs-on-accent: #142028;
  --igs-ink: #1a3040;
  --igs-paper: #f6faff;
  --igs-mist: #d4e2ec;
  --igs-accent: #3888a8;
  --igs-accent-2: #5088a8;
  --igs-warn: #a86840;
  --igs-line: #b8ccd8;
  --igs-card: #fcfeff;
  --igs-ok: #2f7a68;
  --igs-muted: #5a7888;
  --igs-bg-a: #c8dcec;
  --igs-bg-b: #e8f0f6;
  --igs-bg-mid: #eef4fa;
  --igs-bg-end: #e4ecf4;
  --igs-elev: #ffffff;
  --igs-shell: #fcfeff;
  --igs-theme-glow: rgba(56, 136, 168, 0.16);
}

/* —— 樱昼清露（美夕儿 sakura-day） —— */
html[data-igs-theme='sakura'] {
  --igs-on-accent: #142028;
  --igs-ink: #4a2830;
  --igs-paper: #fff8fa;
  --igs-mist: #f0d0dc;
  --igs-accent: #e87898;
  --igs-accent-2: #c87888;
  --igs-warn: #b86840;
  --igs-line: #e8c0cc;
  --igs-card: #fffbfc;
  --igs-ok: #5a9a78;
  --igs-muted: #8a6070;
  --igs-bg-a: #ffd0e0;
  --igs-bg-b: #ffe8f0;
  --igs-bg-mid: #fff0f4;
  --igs-bg-end: #ffe4ec;
  --igs-elev: #ffffff;
  --igs-shell: #fffbfc;
  --igs-theme-glow: rgba(232, 120, 152, 0.16);
}

/* —— 杏霞晴空（美夕儿 apricot-sky） —— */
html[data-igs-theme='apricot'] {
  --igs-on-accent: #142028;
  --igs-ink: #4a3020;
  --igs-paper: #fffaf4;
  --igs-mist: #f0d8c0;
  --igs-accent: #e87850;
  --igs-accent-2: #c87840;
  --igs-warn: #b06030;
  --igs-line: #e8c8a8;
  --igs-card: #fffdf8;
  --igs-ok: #5a8a58;
  --igs-muted: #8a6850;
  --igs-bg-a: #ffd8a8;
  --igs-bg-b: #ffe8d0;
  --igs-bg-mid: #fff4e8;
  --igs-bg-end: #ffe8d4;
  --igs-elev: #ffffff;
  --igs-shell: #fffdf8;
  --igs-theme-glow: rgba(232, 120, 80, 0.16);
}

/* —— 荷风晓色（美夕儿 lotus-pond） —— */
html[data-igs-theme='lotus'] {
  --igs-on-accent: #142028;
  --igs-ink: #2a4038;
  --igs-paper: #f8fffa;
  --igs-mist: #c8e4d4;
  --igs-accent: #68b8a0;
  --igs-accent-2: #e87898;
  --igs-warn: #b07040;
  --igs-line: #b0d4c4;
  --igs-card: #fefffc;
  --igs-ok: #3a9a78;
  --igs-muted: #5a8070;
  --igs-bg-a: #b8e8d0;
  --igs-bg-b: #f8d0dc;
  --igs-bg-mid: #f0faf4;
  --igs-bg-end: #e8f4ec;
  --igs-elev: #ffffff;
  --igs-shell: #fefffc;
  --igs-theme-glow: rgba(104, 184, 160, 0.16);
}

/* —— 丝绒玫瑰（美夕儿 velvet-rose） —— */
html[data-igs-theme='velvet'] {
  --igs-on-accent: #f7f1e4;
  --igs-ink: #f2e4e8;
  --igs-paper: #1a0a12;
  --igs-mist: #3a1828;
  --igs-accent: #c44a6a;
  --igs-accent-2: #f2ddb8;
  --igs-warn: #d4925a;
  --igs-line: #4a2434;
  --igs-card: #241018;
  --igs-ok: #6db89a;
  --igs-muted: #b898a0;
  --igs-bg-a: #401828;
  --igs-bg-b: #2a1810;
  --igs-bg-mid: #140810;
  --igs-bg-end: #0c0608;
  --igs-elev: #2e141e;
  --igs-shell: #241018;
  --igs-theme-glow: rgba(196, 74, 106, 0.2);
}

/* —— 碧玉镜湖（美夕儿 jade-lake） —— */
html[data-igs-theme='jade'] {
  --igs-on-accent: #142028;
  --igs-ink: #e8f4ec;
  --igs-paper: #061418;
  --igs-mist: #123028;
  --igs-accent: #3a9a88;
  --igs-accent-2: #d4e8c8;
  --igs-warn: #c89850;
  --igs-line: #1e4038;
  --igs-card: #0e2420;
  --igs-ok: #5ab8a0;
  --igs-muted: #98c0b0;
  --igs-bg-a: #123828;
  --igs-bg-b: #1a2820;
  --igs-bg-mid: #0a1c18;
  --igs-bg-end: #061210;
  --igs-elev: #143028;
  --igs-shell: #0e2420;
  --igs-theme-glow: rgba(58, 154, 136, 0.2);
}

/* —— 星河夜宴（美夕儿 starry-night） —— */
html[data-igs-theme='starry'] {
  --igs-on-accent: #142028;
  --igs-ink: #eef0ff;
  --igs-paper: #0a0818;
  --igs-mist: #1a1840;
  --igs-accent: #8b7cf0;
  --igs-accent-2: #c8d4f0;
  --igs-warn: #d4a05a;
  --igs-line: #2a2858;
  --igs-card: #14122c;
  --igs-ok: #6db89a;
  --igs-muted: #a8b0d8;
  --igs-bg-a: #1a1848;
  --igs-bg-b: #201830;
  --igs-bg-mid: #100e22;
  --igs-bg-end: #080614;
  --igs-elev: #1c1a38;
  --igs-shell: #14122c;
  --igs-theme-glow: rgba(139, 124, 240, 0.2);
}

/* —— 宫灯绛焰（美夕儿 lantern-red） —— */
html[data-igs-theme='lantern'] {
  --igs-on-accent: #142028;
  --igs-ink: #fff4ec;
  --igs-paper: #100505;
  --igs-mist: #280e0e;
  --igs-accent: #d84848;
  --igs-accent-2: #e8c878;
  --igs-warn: #e09040;
  --igs-line: #3a1810;
  --igs-card: #1c0a0a;
  --igs-ok: #6da878;
  --igs-muted: #c0a090;
  --igs-bg-a: #3a1010;
  --igs-bg-b: #2a1810;
  --igs-bg-mid: #140808;
  --igs-bg-end: #0a0404;
  --igs-elev: #281010;
  --igs-shell: #1c0a0a;
  --igs-theme-glow: rgba(216, 72, 72, 0.2);
}

/* —— 桃夭春色（美夕儿 peach-blossom · 夜） —— */
html[data-igs-theme='peach'] {
  --igs-on-accent: #142028;
  --igs-ink: #fff4f0;
  --igs-paper: #1a1014;
  --igs-mist: #382428;
  --igs-accent: #f0a0b0;
  --igs-accent-2: #ffe8e0;
  --igs-warn: #e09060;
  --igs-line: #4a3034;
  --igs-card: #241820;
  --igs-ok: #6db89a;
  --igs-muted: #c0a0a8;
  --igs-bg-a: #402028;
  --igs-bg-b: #302018;
  --igs-bg-mid: #181014;
  --igs-bg-end: #100c10;
  --igs-elev: #2e1e26;
  --igs-shell: #241820;
  --igs-theme-glow: rgba(240, 160, 176, 0.18);
}

/* —— 琥珀凝光（美夕儿 amber-honey） —— */
html[data-igs-theme='amber'] {
  --igs-on-accent: #142028;
  --igs-ink: #fff4e0;
  --igs-paper: #0c0804;
  --igs-mist: #2a1c10;
  --igs-accent: #e09040;
  --igs-accent-2: #f0c870;
  --igs-warn: #d07030;
  --igs-line: #3a2818;
  --igs-card: #181008;
  --igs-ok: #6da868;
  --igs-muted: #c0a878;
  --igs-bg-a: #3a2410;
  --igs-bg-b: #281810;
  --igs-bg-mid: #120c06;
  --igs-bg-end: #0a0602;
  --igs-elev: #22180c;
  --igs-shell: #181008;
  --igs-theme-glow: rgba(224, 144, 64, 0.2);
}

/* 氛围底：覆盖主 CSS 的固定色渐变 */
body.igs {
  background:
    radial-gradient(ellipse at 8% -10%, var(--igs-bg-a) 0%, transparent 42%),
    radial-gradient(ellipse at 92% 0%, var(--igs-bg-b) 0%, transparent 38%),
    linear-gradient(168deg, var(--igs-bg-mid) 0%, var(--igs-paper) 45%, var(--igs-bg-end) 100%);
  transition: var(--igs-theme-transit);
}

html.igs-theme-dark body.igs {
  background:
    radial-gradient(ellipse at 12% -8%, color-mix(in srgb, var(--igs-accent) 28%, transparent) 0%, transparent 46%),
    radial-gradient(ellipse at 88% 8%, color-mix(in srgb, var(--igs-accent-2) 18%, transparent) 0%, transparent 40%),
    linear-gradient(168deg, var(--igs-bg-mid) 0%, var(--igs-paper) 48%, var(--igs-bg-end) 100%);
}

/* 暗色主题：抬起常见白底组件 */
html.igs-theme-dark .igs-top,
html.igs-theme-dark .igs-nav,
html.igs-theme-dark .igs-pipeline,
html.igs-theme-dark .igs-card,
html.igs-theme-dark .igs-modal-sheet,
html.igs-theme-dark .igs-modal-foot,
html.igs-theme-dark .igs-top-more-panel,
html.igs-theme-dark .igs-matrix-wrap,
html.igs-theme-dark .igs-flow-svg,
html.igs-theme-dark .igs-nv-chrome,
html.igs-theme-dark .igs-nv-ai-rail,
html.igs-theme-dark .igs-ws-bar,
html.igs-theme-dark .igs-dock,
html.igs-theme-dark .igs-mobile-dock {
  background: var(--igs-card) !important;
  color: var(--igs-ink);
  border-color: var(--igs-line);
}

html.igs-theme-dark input,
html.igs-theme-dark textarea,
html.igs-theme-dark select,
html.igs-theme-dark .igs-modal-ta,
html.igs-theme-dark .igs-select,
html.igs-theme-dark .igs-prompt,
html.igs-theme-dark pre.igs-ws-md,
html.igs-theme-dark .igs-nv-cand-pre,
html.igs-theme-dark .igs-std-md {
  background: var(--igs-elev) !important;
  color: var(--igs-ink) !important;
  border-color: var(--igs-line) !important;
}

html.igs-theme-dark .igs-btn-ghost,
html.igs-theme-dark .igs-chip,
html.igs-theme-dark .igs-ws-chip,
html.igs-theme-dark .igs-tab-refresh {
  color: var(--igs-ink);
  border-color: var(--igs-line);
  background: color-mix(in srgb, var(--igs-elev) 80%, transparent);
}

html.igs-theme-dark .igs-btn {
  background: var(--igs-accent);
  color: #0e1412;
}

html.igs-theme-dark .igs-mark,
html.igs-theme-dark .igs-brand .igs-mark {
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--igs-accent) 35%, transparent);
}

html.igs-theme-dark .igs-modal-md {
  background: var(--igs-elev) !important;
}

html.igs-theme-dark .igs-login-gate__card {
  background: color-mix(in srgb, var(--igs-card) 92%, #000);
  border-color: var(--igs-line);
  color: var(--igs-ink);
}

html.igs-theme-dark .igs-pipeline {
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--igs-accent) 12%, transparent) 0%, transparent 22%, transparent 78%, color-mix(in srgb, var(--igs-accent) 10%, transparent) 100%),
    var(--igs-card) !important;
  border-bottom-color: var(--igs-line);
  color: var(--igs-ink);
}
html.igs-theme-dark .igs-pipe-project {
  background: linear-gradient(145deg, var(--igs-elev) 0%, var(--igs-card) 100%);
  border-color: var(--igs-line);
  box-shadow: none;
}
html.igs-theme-dark .igs-pipe-project-lab,
html.igs-theme-dark .igs-pipeline-lab {
  color: #f2efe6;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.45);
}
html.igs-theme-dark .igs-pipe-project-ico {
  color: var(--igs-accent);
  background: color-mix(in srgb, var(--igs-accent) 18%, transparent);
}
html.igs-theme-dark .igs-pipeline-step {
  background: var(--igs-elev);
  color: #f2efe6;
  border-color: var(--igs-line);
}
html.igs-theme-dark .igs-pipeline-step:hover {
  background: color-mix(in srgb, var(--igs-accent) 16%, var(--igs-elev));
  color: #fff;
}
html.igs-theme-dark .igs-pipeline-step.on {
  background: #f2efe6;
  border-color: #f2efe6;
  color: #121816;
}
html.igs-theme-dark .igs-pipeline-step.on i {
  background: #121816;
}
html.igs-theme-dark .igs-pipeline-step.warn {
  background: #3a2e18;
  border-color: #d97706;
  color: #ffe8b8;
}
html.igs-theme-dark .igs-pipeline-step.warn.on {
  background: #f59e0b;
  border-color: #f59e0b;
  color: #1a1206;
}
html.igs-theme-dark .igs-pipeline-step.warn.on i {
  background: #1a1206;
}
html.igs-theme-dark .igs-pipeline-pack {
  background: color-mix(in srgb, var(--igs-elev) 80%, transparent);
  color: var(--igs-accent);
  border-color: color-mix(in srgb, var(--igs-accent) 45%, var(--igs-line));
}
html.igs-theme-dark .igs-pipeline-arrow {
  color: color-mix(in srgb, var(--igs-muted) 70%, #fff);
}

/* —— 主题切换器 UI —— */
.igs-theme-pick {
  position: relative;
}
.igs-theme-pick > summary {
  list-style: none;
  cursor: pointer;
  border: 1px solid var(--igs-line);
  border-radius: 0.45rem;
  padding: 0.28rem 0.55rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--igs-ink);
  background: color-mix(in srgb, var(--igs-card) 88%, transparent);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  user-select: none;
}
.igs-theme-pick > summary::-webkit-details-marker {
  display: none;
}
.igs-theme-pick > summary:hover {
  border-color: var(--igs-accent);
  color: var(--igs-accent);
}
.igs-theme-pick__dot {
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--igs-accent), var(--igs-accent-2));
  box-shadow: 0 0 0 1px var(--igs-line);
  flex-shrink: 0;
}
.igs-theme-pick__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.35rem);
  z-index: 80;
  width: min(26rem, 94vw);
  max-height: min(70vh, 36rem);
  display: flex;
  flex-direction: column;
  padding: 0.75rem;
  border-radius: var(--igs-theme-radius);
  border: 1px solid var(--igs-line);
  background: var(--igs-card);
  box-shadow: 0 16px 40px rgba(12, 18, 16, 0.18);
  color: var(--igs-ink);
}
html.igs-theme-dark .igs-theme-pick__panel {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--igs-accent) 22%, transparent),
    0 18px 48px rgba(0, 0, 0, 0.55);
  background: color-mix(in srgb, var(--igs-card) 92%, var(--igs-elev));
}
.igs-theme-pick__hd {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
  flex-shrink: 0;
}
.igs-theme-pick__hd strong {
  font-family: var(--igs-serif);
  font-size: 0.95rem;
}
.igs-theme-pick__hd span {
  font-size: 0.72rem;
  color: var(--igs-muted);
}
.igs-theme-filters {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0 0 0.45rem;
  padding: 0.1rem 0 0.35rem;
  background: linear-gradient(
    to bottom,
    var(--igs-card) 70%,
    color-mix(in srgb, var(--igs-card) 0%, transparent)
  );
}
.igs-theme-filter {
  appearance: none;
  border: 1px solid var(--igs-line);
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.7rem;
  font-weight: 650;
  cursor: pointer;
  color: var(--igs-muted);
  background: color-mix(in srgb, var(--igs-elev) 88%, transparent);
}
.igs-theme-filter:hover {
  border-color: color-mix(in srgb, var(--igs-accent) 50%, var(--igs-line));
  color: var(--igs-ink);
}
.igs-theme-filter.is-on {
  border-color: var(--igs-accent);
  color: var(--igs-accent);
  background: color-mix(in srgb, var(--igs-accent) 12%, var(--igs-elev));
}
.igs-theme-grid {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  overflow: auto;
  min-height: 0;
  flex: 1;
  padding-right: 0.15rem;
  scrollbar-gutter: stable;
}
.igs-theme-group {
  margin: 0.4rem 0 0.1rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--igs-muted);
}
.igs-theme-grid > .igs-theme-group:first-of-type {
  margin-top: 0;
}
.igs-theme-empty {
  margin: 0.35rem 0 0;
}
.igs-theme-grid__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
}
.igs-theme-card {
  position: relative;
  appearance: none;
  border: 1px solid var(--igs-line);
  border-radius: 0.65rem;
  padding: 0.45rem 0.5rem 0.5rem;
  text-align: left;
  cursor: pointer;
  background: var(--igs-elev);
  color: var(--igs-ink);
  transition: transform 0.15s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.igs-theme-card:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--igs-accent) 55%, var(--igs-line));
}
.igs-theme-card.is-on {
  border-color: var(--igs-accent);
  box-shadow: 0 0 0 2px var(--igs-theme-glow);
}
.igs-theme-card__badge--happy {
  color: #3a2a08;
  background: linear-gradient(135deg, #f5c842, #ff8a3d);
  border-color: rgba(255, 138, 61, 0.55);
}
.igs-theme-card.is-happy.is-on {
  box-shadow: 0 0 0 2px rgba(59, 167, 224, 0.28), 0 8px 24px rgba(245, 200, 66, 0.18);
}
.igs-theme-card__swatch {
  display: grid;
  grid-template-columns: 1.4fr 0.7fr 0.55fr;
  height: 1.55rem;
  border-radius: 0.4rem;
  overflow: hidden;
  margin-bottom: 0.35rem;
  border: 1px solid color-mix(in srgb, var(--igs-line) 70%, transparent);
}
.igs-theme-card__swatch i {
  display: block;
  height: 100%;
}
.igs-theme-card b {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.25;
  padding-right: 1.1rem;
}
.igs-theme-card small {
  display: block;
  margin-top: 0.12rem;
  font-size: 0.68rem;
  color: var(--igs-muted);
  line-height: 1.3;
}
.igs-theme-pick__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.55rem;
  align-items: center;
  flex-shrink: 0;
  border-top: 1px solid color-mix(in srgb, var(--igs-line) 70%, transparent);
  padding-top: 0.5rem;
}
.igs-theme-pick__foot .igs-muted-sm {
  flex: 1;
  min-width: 8rem;
}

/* 切换主题瞬时闪过渡 */
html.igs-theme-flash body.igs::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background: color-mix(in srgb, var(--igs-paper) 55%, transparent);
  animation: igs-theme-flash-out 0.4s ease forwards;
}
@keyframes igs-theme-flash-out {
  from {
    opacity: 0.55;
  }
  to {
    opacity: 0;
  }
}

/* 设置面板内嵌主题区 */
.igs-theme-settings {
  margin: 0.15rem 0 0.35rem;
}
.igs-theme-settings__lab {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--igs-ink);
}
.igs-theme-settings .igs-theme-grid {
  max-height: min(42vh, 22rem);
  overflow: auto;
}
.igs-theme-settings .igs-theme-grid__row {
  grid-template-columns: 1fr 1fr;
}

@media (max-width: 720px) {
  .igs-theme-pick__panel {
    right: -0.5rem;
    width: min(22rem, 94vw);
    max-height: min(68vh, 32rem);
  }
  .igs-theme-grid__row {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   主题面层 · 全主题（含浅色）：输入 / 预览 / 工坊壳 一律走令牌
   ============================================================ */
html[data-igs-theme],
html:not([data-igs-theme]) {
  --igs-field-bg: color-mix(in srgb, var(--igs-elev) 90%, var(--igs-mist));
  --igs-field-bg-focus: var(--igs-elev);
  --igs-field-border: color-mix(in srgb, var(--igs-line) 88%, var(--igs-accent));
  --igs-field-placeholder: color-mix(in srgb, var(--igs-muted) 82%, var(--igs-ink));
  --igs-preview-bg: color-mix(in srgb, var(--igs-card) 42%, var(--igs-elev));
  --igs-preview-code: color-mix(in srgb, var(--igs-elev) 88%, var(--igs-mist));
  --igs-preview-ink: var(--igs-ink);
  --igs-surface-soft: color-mix(in srgb, var(--igs-card) 70%, var(--igs-paper));
  --igs-ws-ink: var(--igs-ink);
  --igs-ws-moss: var(--igs-accent);
  --igs-ws-moss-soft: color-mix(in srgb, var(--igs-accent) 16%, var(--igs-card));
  --igs-ws-clay: var(--igs-accent-2);
  --igs-ws-paper: var(--igs-paper);
  --igs-ws-card: var(--igs-card);
  --igs-ws-line: color-mix(in srgb, var(--igs-line) 75%, transparent);
  --igs-ws-shadow: 0 10px 28px color-mix(in srgb, var(--igs-ink) 12%, transparent);
}

/* —— 全局表单控件 —— */
body.igs input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']):not([type='color']):not([type='hidden']),
body.igs textarea,
body.igs select,
body.igs .igs-select,
body.igs .igs-project-select,
body.igs .igs-modal-ta,
body.igs .igs-ai-ed__mode select,
body.igs .igs-nv-cand-gen input[type='text'],
body.igs .igs-nv-cand-dlg__form textarea,
body.igs .igs-nv-cand-meta input,
body.igs .igs-ws-thread-lab select,
body.igs .igs-ws-twin-sel,
body.igs .igs-ws-model select,
body.igs .igs-ws-canon input,
body.igs .igs-ws-canon textarea,
body.igs .igs-ws-wiz-pane input,
body.igs .igs-ws-wiz-pane textarea,
body.igs .igs-ws-ctx-snip input,
body.igs .igs-ws-ctx-snip textarea,
body.igs #igsWsChatInput {
  background: var(--igs-field-bg) !important;
  color: var(--igs-ink) !important;
  border-color: var(--igs-field-border) !important;
  caret-color: var(--igs-accent);
  transition: background 0.25s ease, border-color 0.25s ease, color 0.2s ease, box-shadow 0.2s ease;
}
body.igs input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']):not([type='color']):not([type='hidden']):focus,
body.igs textarea:focus,
body.igs select:focus,
body.igs .igs-select:focus,
body.igs .igs-project-select:focus,
body.igs .igs-modal-ta:focus,
body.igs #igsWsChatInput:focus {
  background: var(--igs-field-bg-focus) !important;
  border-color: color-mix(in srgb, var(--igs-accent) 55%, var(--igs-line)) !important;
  outline: none;
  box-shadow: 0 0 0 3px var(--igs-theme-glow);
}
body.igs input::placeholder,
body.igs textarea::placeholder,
body.igs #igsWsChatInput::placeholder {
  color: var(--igs-field-placeholder) !important;
  opacity: 1;
}
body.igs option,
body.igs optgroup {
  background: var(--igs-elev);
  color: var(--igs-ink);
}

/* —— 预览 / 大窗 / Markdown —— */
body.igs .igs-modal-sheet,
body.igs .igs-modal-sheet--wide,
body.igs .igs-modal-sheet--ai,
body.igs .igs-nv-cand-dlg {
  background: var(--igs-card) !important;
  color: var(--igs-ink) !important;
  border-color: var(--igs-line) !important;
  box-shadow: 0 24px 60px color-mix(in srgb, var(--igs-ink) 22%, transparent) !important;
}
body.igs .igs-modal-head,
body.igs .igs-modal-foot {
  background: var(--igs-surface-soft) !important;
  border-color: var(--igs-line) !important;
  color: var(--igs-ink);
}
body.igs .igs-modal-md,
body.igs .igs-modal-sheet--ai .igs-modal-md,
body.igs .igs-std-md,
body.igs pre.igs-ws-md,
body.igs .igs-ws-analysis__body,
body.igs .igs-ws-report-preview,
body.igs .igs-prompt,
body.igs .igs-nv-cand-pre,
body.igs .igs-nv-cand-focus,
body.igs .igs-nv-cand-compare,
body.igs .igs-pl-script-view,
body.igs .igs-pl-md,
body.igs .igs-dx-preview,
body.igs .igs-code,
body.igs pre.igs-code {
  background: var(--igs-preview-bg) !important;
  color: var(--igs-preview-ink) !important;
  border-color: color-mix(in srgb, var(--igs-line) 80%, var(--igs-accent)) !important;
}
body.igs .igs-modal-ta,
body.igs .igs-modal-sheet--ai .igs-modal-ta {
  background: var(--igs-preview-code) !important;
  color: var(--igs-ink) !important;
}
body.igs .igs-modal-md code,
body.igs .igs-modal-md pre,
body.igs .igs-std-md code,
body.igs .igs-std-md pre,
body.igs .igs-ws-analysis__body code,
body.igs .igs-ws-analysis__body pre {
  background: var(--igs-preview-code) !important;
  color: var(--igs-ink) !important;
  border-color: var(--igs-line);
}

/* —— 会话输入壳 / 气泡 / 日志 —— */
body.igs .igs-ws-bar__compose {
  background: var(--igs-field-bg) !important;
  border-color: var(--igs-ws-line) !important;
  box-shadow: 0 2px 12px color-mix(in srgb, var(--igs-ink) 8%, transparent) !important;
}
body.igs .igs-ws-bar__compose textarea,
body.igs .igs-ws-bar__compose #igsWsChatInput {
  background: transparent !important;
  color: var(--igs-ws-ink) !important;
  box-shadow: none !important;
}
body.igs .igs-ws-send {
  background: linear-gradient(
    135deg,
    var(--igs-accent),
    color-mix(in srgb, var(--igs-accent) 70%, var(--igs-accent-2))
  ) !important;
  color: var(--igs-on-accent, #142028) !important;
  box-shadow: 0 4px 14px color-mix(in srgb, var(--igs-accent) 35%, transparent) !important;
}
body.igs .igs-ws-bar__log,
body.igs .igs-ws-msg {
  border-color: var(--igs-ws-line);
}
body.igs .igs-ws-msg.is-user {
  background: color-mix(in srgb, var(--igs-accent) 12%, var(--igs-card)) !important;
  color: var(--igs-ink) !important;
}
body.igs .igs-ws-msg.is-assistant {
  background: var(--igs-preview-bg) !important;
  color: var(--igs-ink) !important;
}
body.igs .igs-ws-bar,
body.igs .igs-nv-ai-rail,
body.igs .igs-pl-ai-rail {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--igs-card) 92%, var(--igs-accent)) 0%,
    var(--igs-card) 28%,
    color-mix(in srgb, var(--igs-paper) 55%, var(--igs-card)) 100%
  ) !important;
  color: var(--igs-ink);
  border-color: var(--igs-ws-line) !important;
}
body.igs .igs-nv-studio,
body.igs .igs-pl-studio {
  background:
    radial-gradient(ellipse 70% 50% at 0% 0%, color-mix(in srgb, var(--igs-accent) 12%, transparent), transparent 55%),
    radial-gradient(ellipse 50% 40% at 100% 0%, color-mix(in srgb, var(--igs-accent-2) 10%, transparent), transparent 50%),
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--igs-paper) 88%, var(--igs-mist)) 0%,
      var(--igs-ws-paper) 42%,
      color-mix(in srgb, var(--igs-paper) 90%, var(--igs-bg-end)) 100%
    ) !important;
  border: none !important;
  border-radius: 0 !important;
  color: var(--igs-ink);
}
body.igs .igs-nv-chrome,
body.igs .igs-pl-chrome {
  background: color-mix(in srgb, var(--igs-card) 88%, var(--igs-paper)) !important;
  border-color: var(--igs-ws-line) !important;
  color: var(--igs-ink);
}
body.igs .igs-nv-reader,
body.igs .igs-nv-reader-wrap,
body.igs .igs-nv-chapter-body,
body.igs .igs-nv-article,
body.igs .igs-nv-read {
  background: var(--igs-preview-bg) !important;
  color: var(--igs-preview-ink) !important;
  border-color: var(--igs-ws-line);
}
body.igs .igs-nv-cand-gen,
body.igs .igs-nv-cand-item,
body.igs .igs-nv-cands,
body.igs .igs-card,
body.igs .igs-ws-memory,
body.igs .igs-ws-locus,
body.igs .igs-ws-mention {
  background: var(--igs-card) !important;
  color: var(--igs-ink) !important;
  border-color: var(--igs-line) !important;
}
body.igs .igs-nv-cand-item.is-on {
  border-color: color-mix(in srgb, var(--igs-accent) 55%, var(--igs-line)) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--igs-accent) 18%, transparent);
}
body.igs .igs-btn-ghost,
body.igs .igs-ws-chip,
body.igs .igs-nv-cand-filter,
body.igs .igs-nv-sort__btn,
body.igs .igs-ws-prompt {
  background: color-mix(in srgb, var(--igs-elev) 86%, transparent) !important;
  color: var(--igs-ink) !important;
  border-color: var(--igs-line) !important;
}
body.igs .igs-ws-prompt.is-accent,
body.igs .igs-nv-cand-filter.is-on,
body.igs .igs-btn:not(.igs-btn-ghost) {
  background: var(--igs-accent) !important;
  color: #fff !important;
  border-color: transparent !important;
}
html.igs-theme-dark body.igs .igs-ws-prompt.is-accent,
html.igs-theme-dark body.igs .igs-nv-cand-filter.is-on,
html.igs-theme-dark body.igs .igs-btn:not(.igs-btn-ghost) {
  color: #0e1412 !important;
}
body.igs .igs-muted-sm,
body.igs .igs-muted {
  color: var(--igs-muted) !important;
}
