@waterwx/dsh-novel-forge 1.1.8 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -83,6 +83,12 @@ window.__ModuleLoader__.load({
83
83
  storyboard: "/api/dsh-novel-forge/storyboard",
84
84
  /** 漫剧分集计划:读一卷 → 按故事弧线分集(高潮拆集/过渡并章)。 */
85
85
  storyboardPlan: "/api/dsh-novel-forge/storyboard/plan",
86
+ /** 生产单:启动批量生产(计划补足 + 逐章生成 + 被拒分级处理)。 */
87
+ runStart: "/api/dsh-novel-forge/run/start",
88
+ /** 生产单控制:pause / resume / stop。 */
89
+ runControl: "/api/dsh-novel-forge/run/control",
90
+ /** 生产单状态(含进度统计与日志)。 */
91
+ runStatus: "/api/dsh-novel-forge/run/status",
86
92
  config: "/api/dsh-novel-forge/config",
87
93
  openFolder: "/api/dsh-novel-forge/open-folder"
88
94
  };
@@ -319,6 +325,26 @@ window.__ModuleLoader__.load({
319
325
  async bookRemove(id) {
320
326
  return postJson("/api/dsh-novel-forge/bookshelf/remove", { id });
321
327
  }
328
+ /** 生产单:启动批量生产(区间或新增 N 章;计划不足自动补)。 */
329
+ async runStart(req) {
330
+ return postJson(NOVEL_API.runStart, req);
331
+ }
332
+ /** 生产单控制:pause / resume / stop。 */
333
+ async runControl(action) {
334
+ const response = await fetch(NOVEL_API.runControl, {
335
+ method: "POST",
336
+ headers: { "Content-Type": "application/json" },
337
+ body: JSON.stringify({ action })
338
+ });
339
+ if (response.status === 400) return null;
340
+ return readJson(response);
341
+ }
342
+ /** 生产单状态(无生产单返回 null)。 */
343
+ async runStatus() {
344
+ const response = await fetch(NOVEL_API.runStatus);
345
+ if (response.status === 404) return null;
346
+ return readJson(response);
347
+ }
322
348
  /** Get project writing assets + built-in libraries. */
323
349
  async assets() {
324
350
  return readJson(await fetch(NOVEL_API.assets));
@@ -865,8 +891,8 @@ window.__ModuleLoader__.load({
865
891
  return "var(--nf-accent)";
866
892
  }
867
893
  //#endregion
868
- //#region \0dsh-css:C:\Users\Ryan\Desktop\111\novel-forge\src\client\panel\panel.module.css.mjs
869
- const css = ".CUIYUW_entry{width:100%;color:var(--dsw-alias-label-primary,#1f1f23);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}body[data-ds-dark-theme] .CUIYUW_entry{color:var(--dsw-alias-label-primary,#ececf1)}.CUIYUW_entry:hover{background:var(--dsw-alias-interactive-bg-hover,#7f7f7f1f)}.CUIYUW_entry[data-active]{background:var(--dsw-alias-interactive-bg-active,#7f7f7f33)}.CUIYUW_entryIcon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.CUIYUW_entryLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[data-pane=conversation]{position:relative}.CUIYUW_view{z-index:60;color-scheme:light;--nf-font:-apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"SF Pro Text\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"Segoe UI\", Roboto, \"Helvetica Neue\", sans-serif;--nf-font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--nf-bg:#f2f2f7db;--nf-bg-raise:#ffffffb8;--nf-bg-inset:#7676801f;--nf-border:#3c3c4329;--nf-border-strong:#3c3c4352;--nf-text:#1c1c1e;--nf-text-2:#3c3c43;--nf-text-2-alpha:#3c3c43ad;--nf-text-3:#8e8e93;--nf-accent:#00b85c;--nf-accent-hover:#00a04e;--nf-accent-soft:#00b85c1f;--nf-accent-fg:#fff;--nf-hover:#0000000d;--nf-success:#34c759;--nf-error:#ff3b30;--nf-warn:#ff9500;--nf-info:#00b85c;--nf-shadow:0 1px 3px #0000000f, 0 12px 32px #00000014;--nf-shadow-lg:0 4px 12px #00000012, 0 20px 48px #0000001f;--nf-card-shadow:0 2px 6px #0000000f, 0 14px 38px #00000024;--nf-card-shadow-hover:0 4px 10px #00000014, 0 22px 52px #0003;--nf-glass-face:linear-gradient(180deg, #f6f7f9 0%, #f0f2f5 26%, #e9ebef 52%, #e0e3e8 78%, #d6d9df 100%);--nf-glass-core:radial-gradient(30% 24% at 36% 28%, #ffffff80 0%, #ffffff38 45%, #fff0 78%);--nf-glass-sheen:#ffffff8c;--nf-glass-border:#ffffffa6;--nf-glass-inset:#ffffff8c;--nf-glass-orb-a:#00b85c24;--nf-glass-orb-b:#78a0ff1a;--nf-glass-noise:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E\");background:var(--nf-bg);backdrop-filter:blur(32px)saturate(180%);color:var(--nf-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,Roboto,Helvetica Neue,sans-serif;display:none;position:absolute;inset:0;overflow:auto}body[data-ds-dark-theme] .CUIYUW_view{color-scheme:dark;--nf-bg:#0a0b0ddb;--nf-bg-raise:#1c1c1ec7;--nf-bg-inset:#7676802e;--nf-border:#ffffff1f;--nf-border-strong:#ffffff47;--nf-text:#f2f2f7;--nf-text-2:#d1d1d6;--nf-text-2-alpha:#d1d1d6b8;--nf-text-3:#8e8e93;--nf-accent:#35d07a;--nf-accent-hover:#5ce695;--nf-accent-soft:#35d07a33;--nf-accent-fg:#062b18;--nf-hover:#ffffff17;--nf-success:#30d158;--nf-error:#ff453a;--nf-warn:#ff9f0a;--nf-info:#35d07a;--nf-shadow:0 1px 2px #00000059, 0 10px 30px #0006;--nf-shadow-lg:0 4px 12px #0006, 0 20px 48px #0000008c;--nf-card-shadow:0 2px 6px #00000059, 0 14px 38px #00000073;--nf-card-shadow-hover:0 4px 10px #0006, 0 22px 52px #0000008c;--nf-glass-face:linear-gradient(180deg, #70747a6b 0%, #60646a6b 26%, #52555a6b 52%, #44474c6b 78%, #383a3f6b 100%);--nf-glass-core:radial-gradient(30% 24% at 36% 28%, #ffffff42 0%, #ffffff1a 45%, #fff0 78%);--nf-glass-sheen:#ffffff42;--nf-glass-border:#ffffff24;--nf-glass-inset:#ffffff12;--nf-glass-orb-a:#00ca5233;--nf-glass-orb-b:#bec8d712;--nf-glass-noise:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E\")}html[data-dsh-novelforge-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) .CUIYUW_view{display:block}.CUIYUW_panel[data-nf-theme=classic]{--nf-accent:#007aff;--nf-accent-hover:#0071e3;--nf-accent-soft:#007aff1f;--nf-accent-fg:#fff;--nf-info:#5856d6;--nf-glass-face:var(--nf-bg-raise);--nf-glass-core:transparent;--nf-glass-sheen:#fff0;--nf-glass-border:var(--nf-border);--nf-glass-inset:var(--nf-bg-inset);--nf-glass-orb-a:transparent;--nf-glass-orb-b:transparent;--nf-glass-noise:none}body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=classic]{--nf-accent:#0a84ff;--nf-accent-hover:#3a9bff;--nf-accent-soft:#0a84ff33;--nf-accent-fg:#fff;--nf-info:#bf5af2;--nf-glass-face:var(--nf-bg-raise);--nf-glass-core:transparent;--nf-glass-sheen:#fff0;--nf-glass-border:var(--nf-border);--nf-glass-inset:var(--nf-bg-inset);--nf-glass-orb-a:transparent;--nf-glass-orb-b:transparent;--nf-glass-noise:none}body:not([data-ds-dark-theme]) .CUIYUW_panel[data-nf-theme=neumorph]{--nf-bg:#e4e9f2;--nf-bg-raise:#e4e9f2;--nf-bg-inset:#d9dfe8;--nf-border:#8c9baf59;--nf-border-strong:#78879e80;--nf-text:#3a4250;--nf-text-2:#5b6472;--nf-text-2-alpha:#465060b3;--nf-text-3:#8b94a3;--nf-hover:#5a697d14;--nf-shadow:4px 4px 10px #a3b1c68c, -4px -4px 10px #ffffffd9;--nf-shadow-lg:6px 6px 14px #a3b1c699, -6px -6px 14px #ffffffe6;--nf-card-shadow:9px 9px 18px #a3b1c68c, -9px -9px 18px #ffffffd9;--nf-card-shadow-hover:12px 12px 24px #a3b1c6a6, -12px -12px 24px #fffffff2;--nf-glass-face:#e4e9f2;--nf-glass-core:transparent;--nf-glass-sheen:#fff0;--nf-glass-border:#a3b1c666;--nf-glass-inset:#d9dfe8;--nf-glass-orb-a:transparent;--nf-glass-orb-b:transparent;--nf-glass-noise:none}body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=neumorph]{--nf-bg:#2b2f36;--nf-bg-raise:#2b2f36;--nf-bg-inset:#25292f;--nf-border:#0a0c1080;--nf-border-strong:#080a0e99;--nf-text:#d6dae1;--nf-text-2:#a8aeb8;--nf-text-2-alpha:#a8aeb8b3;--nf-text-3:#757c88;--nf-hover:#ffffff0d;--nf-shadow:4px 4px 10px #00000080, -4px -4px 10px #6068763d;--nf-shadow-lg:6px 6px 14px #0000008c, -6px -6px 14px #60687642;--nf-card-shadow:9px 9px 18px #00000080, -9px -9px 18px #6068763d;--nf-card-shadow-hover:12px 12px 24px #0009, -12px -12px 24px #60687647;--nf-glass-face:#2b2f36;--nf-glass-core:transparent;--nf-glass-sheen:#fff0;--nf-glass-border:#0c0e1273;--nf-glass-inset:#25292f;--nf-glass-orb-a:transparent;--nf-glass-orb-b:transparent;--nf-glass-noise:none}body:not([data-ds-dark-theme]) .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_input,body:not([data-ds-dark-theme]) .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_textarea{background:var(--nf-bg-inset);border-color:#0000;box-shadow:inset 3px 3px 7px #a3b1c68c,inset -3px -3px 7px #ffffffe6}body:not([data-ds-dark-theme]) .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_input:focus,body:not([data-ds-dark-theme]) .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_textarea:focus{border-color:var(--nf-accent);box-shadow:inset 2px 2px 6px #a3b1c680, inset -2px -2px 6px #ffffffd9, 0 0 0 3px var(--nf-accent-soft)}body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_input,body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_textarea{background:var(--nf-bg-inset);border-color:#0000;box-shadow:inset 3px 3px 7px #0000008c,inset -3px -3px 7px #6068763d}body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_input:focus,body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_textarea:focus{border-color:var(--nf-accent);box-shadow:inset 2px 2px 6px #00000080, inset -2px -2px 6px #60687638, 0 0 0 3px var(--nf-accent-soft)}body:not([data-ds-dark-theme]) .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_button{background:var(--nf-bg-raise);border-color:#0000;box-shadow:5px 5px 10px #a3b1c68c,-5px -5px 10px #ffffffe6}body:not([data-ds-dark-theme]) .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_button:hover:not([disabled]){background:var(--nf-bg-raise);border-color:#0000;box-shadow:7px 7px 14px #a3b1c699,-7px -7px 14px #fffffff2}body:not([data-ds-dark-theme]) .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_button:active:not([disabled]){box-shadow:inset 3px 3px 7px #a3b1c68c,inset -3px -3px 7px #ffffffe6}body:not([data-ds-dark-theme]) .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_buttonPrimary{background:linear-gradient(#00c563,#00a952);box-shadow:5px 5px 10px #a3b1c699,-5px -5px 10px #ffffffd9}body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_button{background:var(--nf-bg-raise);border-color:#0000;box-shadow:5px 5px 10px #00000080,-5px -5px 10px #6068763d}body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_button:hover:not([disabled]){background:var(--nf-bg-raise);border-color:#0000;box-shadow:7px 7px 14px #0000008c,-7px -7px 14px #60687642}body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_button:active:not([disabled]){box-shadow:inset 3px 3px 7px #0000008c,inset -3px -3px 7px #6068763d}body[data-ds-dark-theme] .CUIYUW_panel[data-nf-theme=neumorph] .CUIYUW_buttonPrimary{background:linear-gradient(#3ddc86,#27b96a);box-shadow:5px 5px 10px #00000080,-5px -5px 10px #6068763d}.CUIYUW_panel{flex-direction:column;min-width:0;height:100%;font-size:14px;line-height:1.6;display:flex;position:relative;overflow:hidden}.CUIYUW_panel:before{content:\"\";z-index:0;pointer-events:none;background:radial-gradient(46% 36% at 18% 12%, var(--nf-glass-orb-a), transparent 70%), radial-gradient(52% 42% at 88% 22%, var(--nf-glass-orb-b), transparent 72%), radial-gradient(120% 95% at 50% 42%, transparent 55%, #0202031a 100%);position:absolute;inset:0}.CUIYUW_panelHeader{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);box-shadow:var(--nf-shadow), inset 0 1px 0 var(--nf-glass-sheen);backdrop-filter:blur(28px)saturate(175%);border-radius:18px;flex-shrink:0;justify-content:space-between;align-items:center;margin:10px 12px 0;padding:10px 16px;display:flex}.CUIYUW_panelTitle{letter-spacing:.2px;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:700;display:flex}.CUIYUW_panelTitle:before{content:\"\";background:linear-gradient(180deg, var(--nf-accent), var(--nf-info));border-radius:2px;width:4px;height:16px}.CUIYUW_iconButton{cursor:pointer;color:var(--nf-text-2);background:0 0;border:none;border-radius:8px;padding:4px 9px;font-size:16px;transition:background .15s,color .15s}.CUIYUW_iconButton:hover{background:var(--nf-hover);color:var(--nf-text)}.CUIYUW_tabBar{border-bottom:1px solid var(--nf-border);background:var(--nf-bg-raise);z-index:4;flex-shrink:0;gap:2px;padding:8px 14px 0;display:flex;position:sticky;top:45px}.CUIYUW_tab{cursor:pointer;color:var(--nf-text-2);background:0 0;border:none;border-radius:8px 8px 0 0;padding:7px 13px;font-size:13.5px;font-weight:500;transition:color .15s,background .15s;position:relative}.CUIYUW_tab:hover{color:var(--nf-text);background:var(--nf-hover)}.CUIYUW_tab[data-active]{color:var(--nf-accent);font-weight:600}.CUIYUW_tab[data-active]:after{content:\"\";background:var(--nf-accent);border-radius:2px 2px 0 0;height:2.5px;position:absolute;bottom:-1px;left:10px;right:10px}.CUIYUW_panelContent{z-index:1;flex-direction:column;flex:1;gap:14px;padding:16px 18px 20px;display:flex;position:relative;overflow:auto}.CUIYUW_panelBody{z-index:1;flex:1;min-height:0;display:flex;position:relative}.CUIYUW_panelNav{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);width:142px;box-shadow:var(--nf-shadow), inset 0 1px 0 var(--nf-glass-sheen);backdrop-filter:blur(28px)saturate(175%);border-radius:16px;flex-direction:column;flex:none;align-self:flex-start;gap:4px;margin:10px 0 10px 12px;padding:10px 8px;transition:width .18s;display:flex;overflow-y:auto}.CUIYUW_panelNavCollapsed{width:52px;padding:10px 6px}.CUIYUW_navGroup{flex-direction:column;gap:4px;display:flex}.CUIYUW_navGroupLabel{letter-spacing:.6px;text-transform:uppercase;color:var(--nf-text-3);user-select:none;padding:8px 10px 3px;font-size:10.5px;font-weight:600}.CUIYUW_navGroupSep{background:var(--nf-border);height:1px;margin:6px 8px 4px}.CUIYUW_navSpacer{flex:1;min-height:8px}.CUIYUW_navAbout{border-top:1px solid var(--nf-border);flex-direction:column;flex:none;gap:4px;margin-top:4px;padding:8px 6px 4px;display:flex}.CUIYUW_navAboutRow{cursor:pointer;color:var(--nf-text-3);text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:4px;padding:4px 6px;font-size:11px;transition:color .15s,background .15s;display:flex}.CUIYUW_navAboutRow:hover{color:var(--nf-text);background:var(--nf-hover)}.CUIYUW_navAboutUpdate{background:var(--nf-accent-soft);color:var(--nf-accent);cursor:pointer;text-align:left;white-space:nowrap;border:none;border-radius:8px;padding:4px 6px;font-size:10.5px;font-weight:600}.CUIYUW_navAboutUpdate:hover{color:var(--nf-accent-hover)}.CUIYUW_panelNavCollapsed .CUIYUW_navAbout{align-items:center;padding:6px 2px 2px}.CUIYUW_panelNavCollapsed .CUIYUW_navAboutRow{justify-content:center;width:100%;padding:4px 0}.CUIYUW_navTabBadge{background:var(--nf-accent);color:#fff;text-align:center;border-radius:999px;flex:none;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;line-height:18px;display:inline-block}.CUIYUW_panelNavCollapsed .CUIYUW_navTabBadge{min-width:14px;height:14px;padding:0 3px;font-size:9px;line-height:14px;position:absolute;top:2px;right:2px}.CUIYUW_navTabBadgeDanger{background:var(--nf-error)}.CUIYUW_navTabBadgeWarn{background:var(--nf-warn)}.CUIYUW_navTabBadgeDone{background:var(--nf-success)}.CUIYUW_navTabBadgeLive{background:var(--nf-success);animation:1.2s ease-in-out infinite CUIYUW_navBadgePulse}@keyframes CUIYUW_navBadgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.CUIYUW_navTab{cursor:pointer;width:100%;color:var(--nf-text-2-alpha,var(--nf-text-2));text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;transition:color .15s,background .15s;display:flex;position:relative}.CUIYUW_panelNavCollapsed .CUIYUW_navTab{justify-content:center;padding:8px 0}.CUIYUW_navTab:hover{color:var(--nf-text);background:var(--nf-hover)}.CUIYUW_navTab[data-active]{color:var(--nf-accent);background:var(--nf-accent-soft);font-weight:600}.CUIYUW_navTab[data-active]:before{content:\"\";background:var(--nf-accent);border-radius:999px;width:3px;position:absolute;top:20%;bottom:20%;left:-8px}.CUIYUW_panelNavCollapsed .CUIYUW_navTab[data-active]:before{left:-6px}.CUIYUW_navTabIcon{flex:none;font-size:15px;line-height:1}.CUIYUW_navTabLabel{text-overflow:ellipsis;overflow:hidden}.CUIYUW_panelSubtitle{color:var(--nf-text-2);white-space:nowrap;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:0 4px 2px;font-size:12px;display:flex}.CUIYUW_headerProgress{color:var(--nf-text-2);white-space:nowrap;align-items:center;gap:6px;margin-left:0;font-size:12px;font-weight:400;display:inline-flex}.CUIYUW_headerProgress b{color:var(--nf-accent);font-weight:700}.CUIYUW_headerProgressDot{background:var(--nf-border-strong,var(--nf-text-3));border-radius:50%;width:3px;height:3px;display:inline-block}.CUIYUW_card{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);box-shadow:var(--nf-card-shadow), inset 0 1.5px 0 var(--nf-glass-sheen), inset 0 -1px 0 #ffffff40;backdrop-filter:blur(30px)saturate(180%);border-radius:22px;flex-direction:column;gap:10px;padding:16px 18px;transition:transform .22s,box-shadow .22s;display:flex;position:relative}.CUIYUW_card:before{content:\"\";border-radius:inherit;pointer-events:none;background:var(--nf-glass-core), linear-gradient(90deg, transparent, var(--nf-glass-sheen), transparent) no-repeat 10% 0 / 80% 1px, linear-gradient(156deg, #ffffff42 0%, #fff0 55%);z-index:0;position:absolute;inset:0}.CUIYUW_card:after{content:\"\";border-radius:inherit;pointer-events:none;background:var(--nf-glass-noise);opacity:.06;z-index:0;position:absolute;inset:0}.CUIYUW_card:hover{box-shadow:var(--nf-card-shadow-hover), inset 0 1.5px 0 var(--nf-glass-sheen), inset 0 -1px 0 #ffffff40;transform:translateY(-3px)}.CUIYUW_card>*{z-index:1;position:relative}.CUIYUW_cardTitle{color:var(--nf-text);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:650;display:flex}.CUIYUW_button{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);cursor:pointer;white-space:nowrap;border-radius:12px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}.CUIYUW_button:hover:not([disabled]){background:var(--nf-hover);border-color:var(--nf-border-strong)}.CUIYUW_button:active:not([disabled]){transform:scale(.96)}.CUIYUW_button[disabled]{opacity:.45;cursor:not-allowed}.CUIYUW_buttonPrimary{background:linear-gradient(180deg, color-mix(in srgb, var(--nf-accent) 88%, #fff), var(--nf-accent));color:var(--nf-accent-fg);box-shadow:0 2px 10px color-mix(in srgb, var(--nf-accent) 45%, transparent), 0 0 0 .5px color-mix(in srgb, var(--nf-accent) 30%, transparent);border-color:#0000}.CUIYUW_buttonPrimary:hover:not([disabled]){background:linear-gradient(180deg, var(--nf-accent-hover), color-mix(in srgb, var(--nf-accent-hover) 85%, #000));border-color:#0000}.CUIYUW_buttonDanger{border-color:var(--nf-error);color:var(--nf-error)}.CUIYUW_buttonDanger:hover:not([disabled]){background:#ff3b301a}.CUIYUW_buttonSmall{border-radius:9px;padding:3px 10px;font-size:12px}.CUIYUW_field{flex-direction:column;gap:5px;display:flex}.CUIYUW_fieldLabel{color:var(--nf-text-2);font-size:12px;font-weight:500}.CUIYUW_input{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);box-sizing:border-box;border-radius:12px;width:100%;padding:7px 11px;font-size:13px;transition:border-color .15s,box-shadow .15s}.CUIYUW_input:focus,.CUIYUW_textarea:focus{border-color:var(--nf-accent);box-shadow:0 0 0 3px var(--nf-accent-soft);outline:none}.CUIYUW_input::placeholder,.CUIYUW_textarea::placeholder{color:var(--nf-text-3)}.CUIYUW_textarea{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);box-sizing:border-box;resize:vertical;border-radius:12px;width:100%;min-height:200px;padding:9px 11px;font-family:inherit;font-size:13px;line-height:1.7;transition:border-color .15s,box-shadow .15s}.CUIYUW_row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.CUIYUW_spaceBetween{justify-content:space-between}.CUIYUW_chapterList{flex-direction:column;gap:8px;display:flex}.CUIYUW_volumeGroup{flex-direction:column;gap:6px;display:flex}.CUIYUW_volumeGroupHeader{background:var(--nf-bg-inset);border:1px solid var(--nf-border);cursor:pointer;user-select:none;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;transition:border-color .15s;display:flex}.CUIYUW_volumeGroupHeader:hover{border-color:var(--nf-accent)}.CUIYUW_volumeGroupToggle{color:var(--nf-text-2);flex:none;font-size:11px}.CUIYUW_chapter{border:1px solid var(--nf-border);background:var(--nf-bg);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.CUIYUW_chapter:hover{border-color:var(--nf-border-strong);box-shadow:var(--nf-shadow)}.CUIYUW_chapterFocus{animation:.9s ease-in-out 3 CUIYUW_chapterFocusPulse;border-color:var(--nf-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb, var(--nf-accent) 35%, transparent)!important}@keyframes CUIYUW_chapterFocusPulse{0%,to{background:var(--nf-bg)}50%{background:color-mix(in srgb, var(--nf-accent) 18%, var(--nf-bg))}}.CUIYUW_chapterNum{background:var(--nf-bg-inset);border:1px solid var(--nf-border);min-width:28px;height:28px;color:var(--nf-text-2);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.CUIYUW_chapterMain{flex:1;min-width:0}.CUIYUW_chapterTitle{color:var(--nf-text);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.CUIYUW_chapterBeats{color:var(--nf-text-2);opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.CUIYUW_chapterActions{opacity:.85;flex-shrink:0;gap:4px;transition:opacity .15s;display:flex}.CUIYUW_chapter:hover .CUIYUW_chapterActions{opacity:1}.CUIYUW_badge{white-space:nowrap;letter-spacing:.2px;border:1px solid;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.CUIYUW_badgePending{color:var(--nf-info);border-color:var(--nf-info);background:color-mix(in srgb, var(--nf-info) 10%, transparent)}.CUIYUW_badgeGenerating{color:var(--nf-accent);border-color:var(--nf-accent);background:color-mix(in srgb, var(--nf-accent) 12%, transparent);animation:1.2s ease-in-out infinite CUIYUW_pulse}.CUIYUW_badgeWritten{color:var(--nf-warn);border-color:var(--nf-warn);background:color-mix(in srgb, var(--nf-warn) 10%, transparent)}.CUIYUW_badgeRejected{color:var(--nf-error);border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 10%, transparent)}.CUIYUW_badgeDone{color:var(--nf-success);border-color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 10%, transparent)}.CUIYUW_badgeError{color:var(--nf-error);border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 10%, transparent)}.CUIYUW_reviewBox{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;font-size:12.5px;display:flex}.CUIYUW_chapterPreview{white-space:pre-wrap;word-break:break-all;max-height:320px;color:var(--nf-text);background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:10px;margin:0;padding:10px 12px;font-family:inherit;font-size:12.5px;line-height:1.8;overflow:auto}.CUIYUW_chatScroll{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:12px;flex-direction:column;flex:1;gap:10px;min-height:240px;max-height:480px;padding:14px;display:flex;overflow-y:auto}.CUIYUW_chatBubbleUser{background:linear-gradient(180deg, var(--nf-accent), var(--nf-accent-hover));max-width:90%;color:var(--nf-accent-fg);border-radius:14px 14px 4px;align-self:flex-end;padding:9px 14px;font-size:13px;box-shadow:0 2px 6px #4d6bfe33}.CUIYUW_chatBubbleAssistant{background:var(--nf-bg-raise);max-width:92%;color:var(--nf-text);border:1px solid var(--nf-border);box-shadow:var(--nf-shadow);border-radius:14px 14px 14px 4px;align-self:flex-start;padding:9px 14px;font-size:13px}.CUIYUW_chatRole{color:var(--nf-text-3);margin-bottom:3px;font-size:11px;font-weight:600}.CUIYUW_toolLive{background:var(--nf-bg-inset);border:1px dashed var(--nf-border-strong);white-space:pre-wrap;word-break:break-all;color:var(--nf-text-2);border-radius:8px;max-height:180px;margin-top:6px;padding:8px 10px;font-size:12px;line-height:1.7;overflow-y:auto}.CUIYUW_assistantStatus{color:var(--nf-text-2);background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:999px;flex:none;align-items:center;gap:6px;margin-top:6px;padding:6px 12px;font-size:12px;display:flex}.CUIYUW_assistantStatusBusy{color:var(--nf-accent);border-color:var(--nf-accent);background:var(--nf-accent-soft);font-weight:600}.CUIYUW_toolSteps{flex-direction:column;gap:4px;margin-top:6px;display:flex}.CUIYUW_toolStep{background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:8px;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:flex}.CUIYUW_toolStepActive{border-color:var(--nf-accent);background:var(--nf-accent-soft)}.CUIYUW_toolStepError{border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 8%, transparent)}.CUIYUW_toolStepIcon{flex:none;font-size:13px}.CUIYUW_toolStepName{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.CUIYUW_toolStepStatus{color:var(--nf-text-2);flex:none;font-size:11px}.CUIYUW_toolStepActive .CUIYUW_toolStepStatus{color:var(--nf-accent)}.CUIYUW_toolStepError .CUIYUW_toolStepStatus{color:var(--nf-error)}.CUIYUW_toolStepDetail{width:100%;color:var(--nf-error);word-break:break-all;font-size:11px}.CUIYUW_progress{border:1px solid var(--nf-border);white-space:pre-wrap;word-break:break-all;min-height:60px;max-height:220px;color:var(--nf-text-2);font-size:12px;font-family:var(--nf-font-mono);background:var(--nf-bg-inset);border-radius:10px;padding:10px 14px;line-height:1.8;overflow:auto}.CUIYUW_progressLine{color:var(--nf-text-2);opacity:.9}.CUIYUW_progressLineLive{color:var(--nf-accent);align-items:center;gap:8px;font-weight:600;display:flex}.CUIYUW_progressBar{background:var(--nf-border);border-radius:999px;flex:none;width:110px;height:6px;display:inline-block;overflow:hidden}.CUIYUW_progressBarFill{background:var(--nf-accent);border-radius:3px;height:100%;transition:width .3s;display:block}.CUIYUW_busyRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.CUIYUW_liveText{font-variant-numeric:tabular-nums;color:var(--nf-text-2);font-size:12px}.CUIYUW_bigProgressBar{background:var(--nf-border);border-radius:999px;height:8px;margin-top:10px;overflow:hidden}.CUIYUW_bigProgressBarFill{background:linear-gradient(90deg, var(--nf-accent), var(--nf-accent-2,var(--nf-accent)));border-radius:999px;height:100%;transition:width .3s;display:block}.CUIYUW_diffLegend{flex-wrap:wrap;align-items:center;gap:14px;margin:6px 0 8px;font-size:12px;display:flex}.CUIYUW_legendOld{color:var(--nf-error);font-weight:700}.CUIYUW_legendNew{color:var(--nf-success);font-weight:700}.CUIYUW_onlyChanges{color:var(--nf-text-2);cursor:pointer;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.CUIYUW_diffList{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:8px;flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px 12px;font-size:13px;line-height:1.7;display:flex;overflow-y:auto}.CUIYUW_diffSame{border:1px dashed var(--nf-border);color:var(--nf-text-2);opacity:.85;border-radius:6px;padding:6px 10px}.CUIYUW_diffSame summary{cursor:pointer;user-select:none;font-size:12px}.CUIYUW_diffSameBody{white-space:pre-wrap;margin-top:6px}.CUIYUW_diffChange{border:1px solid var(--nf-border);border-radius:8px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.CUIYUW_diffColumn{flex-direction:column;gap:6px;min-width:0;padding:8px 10px;display:flex}.CUIYUW_diffColumn:first-child{border-right:1px solid var(--nf-border)}.CUIYUW_diffTagOld,.CUIYUW_diffTagNew{letter-spacing:.5px;border-radius:4px;flex:none;align-self:flex-start;padding:1px 7px;font-size:11px;font-weight:700}.CUIYUW_diffTagOld{color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 16%, transparent);border:1px solid color-mix(in srgb, var(--nf-error) 45%, transparent)}.CUIYUW_diffTagNew{color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 16%, transparent);border:1px solid color-mix(in srgb, var(--nf-success) 45%, transparent)}.CUIYUW_diffOld{color:var(--nf-error);white-space:pre-wrap;text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--nf-error) 55%, transparent)}.CUIYUW_diffNew{color:var(--nf-success);white-space:pre-wrap;font-weight:500}.CUIYUW_diffDel{border:1px solid color-mix(in srgb, var(--nf-error) 35%, transparent);background:color-mix(in srgb, var(--nf-error) 7%, transparent);border-radius:6px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}.CUIYUW_diffAdd{border:1px solid color-mix(in srgb, var(--nf-success) 35%, transparent);background:color-mix(in srgb, var(--nf-success) 7%, transparent);border-radius:6px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}.CUIYUW_diffText{white-space:pre-wrap}.CUIYUW_diffDel .CUIYUW_diffText{color:var(--nf-error);text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--nf-error) 50%, transparent)}.CUIYUW_diffAdd .CUIYUW_diffText{color:var(--nf-success)}.CUIYUW_wsPage{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.CUIYUW_wsPageHeader{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.CUIYUW_wsAppliedBanner{border:1px solid var(--nf-success);background:color-mix(in srgb, var(--nf-success) 8%, transparent);border-radius:10px;flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.CUIYUW_wsColumns{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;min-height:0;display:grid}.CUIYUW_wsColumn{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.CUIYUW_wsEditor{resize:vertical;min-height:0;font-family:var(--nf-font);white-space:pre-wrap;flex:1;font-size:13px;line-height:1.75}.CUIYUW_wsSelected{border:1px solid var(--nf-accent);background:color-mix(in srgb, var(--nf-accent) 8%, transparent);border-radius:6px;max-height:120px;padding:6px 10px;overflow:auto}.CUIYUW_wsSelectedText{color:var(--nf-text-2);white-space:pre-wrap;margin-top:4px;font-size:12px}.CUIYUW_wsPreview{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:8px;flex-direction:column;gap:8px;padding:8px 10px;display:flex}.CUIYUW_wsPreviewText{white-space:pre-wrap;min-height:0;color:var(--nf-text);flex:1;margin:0;font-size:13px;line-height:1.7;overflow:auto}.CUIYUW_assetGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.CUIYUW_assetStat{border:1px solid var(--nf-glass-border);background:var(--nf-glass-inset);box-shadow:inset 0 1px 0 var(--nf-glass-sheen);border-radius:14px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.CUIYUW_assetStatLabel{color:var(--nf-text-2);opacity:.9;font-size:11px}.CUIYUW_assetStatValue{color:var(--nf-text);font-size:15px;font-weight:700;line-height:1.2}.CUIYUW_assetStatDetail{color:var(--nf-text-2);opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.CUIYUW_dashHero{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);box-shadow:var(--nf-card-shadow), inset 0 1.5px 0 var(--nf-glass-sheen), inset 0 -1px 0 #ffffff40;backdrop-filter:blur(30px)saturate(180%);border-radius:22px;flex-direction:column;gap:14px;padding:18px 20px;transition:transform .22s,box-shadow .22s;display:flex;position:relative}.CUIYUW_dashHero:before{content:\"\";border-radius:inherit;pointer-events:none;background:radial-gradient(46% 40% at 92% -10%, color-mix(in srgb, var(--nf-accent) 13%, transparent), transparent 62%), var(--nf-glass-core), linear-gradient(90deg, transparent, var(--nf-glass-sheen), transparent) no-repeat 10% 0 / 80% 1px, linear-gradient(156deg, #ffffff42 0%, #fff0 55%);z-index:0;position:absolute;inset:0}.CUIYUW_dashHero:after{content:\"\";border-radius:inherit;pointer-events:none;background:var(--nf-glass-noise);opacity:.06;z-index:0;position:absolute;inset:0}.CUIYUW_dashHero:hover{box-shadow:var(--nf-card-shadow-hover), inset 0 1.5px 0 var(--nf-glass-sheen), inset 0 -1px 0 #ffffff40;transform:translateY(-3px)}.CUIYUW_dashHero>*{z-index:1;position:relative}.CUIYUW_dashHeroEyebrow{color:var(--nf-accent);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.CUIYUW_dashHeroSparkle{font-size:14px}.CUIYUW_dashHeroTitle{flex-direction:column;gap:2px;display:flex}.CUIYUW_dashHeroBook{letter-spacing:-.3px;margin:0;font-size:24px;font-weight:700;line-height:1.25}.CUIYUW_dashHeroAction{border:1px solid var(--nf-glass-border);background:var(--nf-glass-inset);box-shadow:inset 0 1px 0 var(--nf-glass-sheen);border-radius:14px;align-items:center;gap:12px;padding:10px 14px;display:flex}.CUIYUW_dashHeroArrow{background:var(--nf-accent);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex}.CUIYUW_dashHeroActionBody{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.CUIYUW_dashHeroActionTitle{font-size:14px;font-weight:600}.CUIYUW_dashJourney{flex-direction:column;gap:6px;display:flex}.CUIYUW_dashJourneyBar{background:var(--nf-border);border-radius:999px;height:6px;overflow:hidden}.CUIYUW_dashJourneyFill{background:linear-gradient(90deg, var(--nf-info), var(--nf-accent));border-radius:999px;height:100%;transition:width .4s;display:block}.CUIYUW_dashJourneyStages{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.CUIYUW_dashStage{color:var(--nf-text-3);text-align:center;white-space:nowrap;flex-direction:column;align-items:center;gap:3px;font-size:11px;display:flex}.CUIYUW_dashStageDot{border:1px solid var(--nf-border-strong,var(--nf-text-3));background:var(--nf-bg-base);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;display:inline-flex}.CUIYUW_dashStageDone{color:var(--nf-text-2)}.CUIYUW_dashStageDone .CUIYUW_dashStageDot{background:var(--nf-success);border-color:var(--nf-success);color:#fff}.CUIYUW_dashStageCurrent{color:var(--nf-accent);font-weight:600}.CUIYUW_dashStageCurrent .CUIYUW_dashStageDot{border-color:var(--nf-accent);color:var(--nf-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--nf-accent) 18%, transparent)}.CUIYUW_dashFacts{border-top:1px solid var(--nf-border);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding-top:12px;display:grid}.CUIYUW_dashFact{flex-direction:column;gap:2px;min-width:0;display:flex}.CUIYUW_dashFact b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.CUIYUW_dashGrid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:14px;display:grid}.CUIYUW_todoItem{border:1px solid var(--nf-border);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;display:flex}.CUIYUW_todoDanger{border-color:color-mix(in srgb, var(--nf-error) 40%, transparent);background:color-mix(in srgb, var(--nf-error) 8%, transparent)}.CUIYUW_todoWarning{border-color:color-mix(in srgb, var(--nf-warn) 40%, transparent);background:color-mix(in srgb, var(--nf-warn) 8%, transparent)}.CUIYUW_todoInfo{border-color:color-mix(in srgb, var(--nf-info) 40%, transparent);background:color-mix(in srgb, var(--nf-info) 7%, transparent)}.CUIYUW_todoText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.CUIYUW_outlineReadonly{border:1px solid var(--nf-border);background:var(--nf-bg-inset);white-space:pre-wrap;user-select:text;border-radius:12px;max-height:480px;margin:0;padding:12px 14px;font-size:12.5px;line-height:1.8;overflow:auto}.CUIYUW_bookCreateOutline{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.CUIYUW_assistantFloat{z-index:80;border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);box-shadow:var(--nf-shadow-lg);border-radius:16px;flex-direction:column;min-width:320px;min-height:220px;display:flex;position:absolute;overflow:hidden}.CUIYUW_assistantFloatHeader{cursor:grab;user-select:none;border-bottom:1px solid var(--nf-border);background:var(--nf-bg-inset);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 14px;font-size:13px;font-weight:600;display:flex}.CUIYUW_assistantFloatHeader:active{cursor:grabbing}.CUIYUW_assistantFloatBody{flex:1;min-height:0;padding:10px;display:flex;overflow:hidden}.CUIYUW_assistantFloatBody>*{flex:1;min-width:0}.CUIYUW_assistantResize{cursor:nwse-resize;background:linear-gradient(135deg, transparent 0 55%, var(--nf-border-strong) 55% 62%, transparent 62%) no-repeat 4px 4px / 12px 12px;width:20px;height:20px;position:absolute;bottom:0;right:0}.CUIYUW_coverPreview{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:12px;flex:none;justify-content:center;align-items:center;width:150px;height:200px;display:flex;overflow:hidden}.CUIYUW_coverPreview img{object-fit:contain;width:100%;height:100%;display:block}.CUIYUW_coverPlaceholder{color:var(--nf-text-3);font-size:12px}.CUIYUW_shelfView{flex-direction:column;flex:1;gap:16px;min-height:0;padding:18px;display:flex;overflow:auto}.CUIYUW_shelfHeader{flex-direction:column;gap:10px;display:flex}.CUIYUW_shelfTitleRow{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.CUIYUW_shelfToolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.CUIYUW_shelfSearch{flex:1;min-width:180px;max-width:320px}.CUIYUW_shelfFilters{flex-wrap:wrap;gap:6px;display:flex}.CUIYUW_shelfEmpty{border:1px dashed var(--nf-border-strong);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);text-align:center;border-radius:16px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px 20px;display:flex}.CUIYUW_shelfEmptyIcon{font-size:42px}.CUIYUW_shelfEmptyTitle{font-size:16px;font-weight:700}.CUIYUW_shelfGrid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:14px;display:grid}.CUIYUW_bookCard{border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);box-shadow:var(--nf-shadow);cursor:pointer;border-radius:16px;flex-direction:column;gap:8px;padding:12px;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex}.CUIYUW_bookCard:hover{border-color:var(--nf-accent);box-shadow:var(--nf-shadow-lg);transform:translateY(-2px)}.CUIYUW_bookCardActive{border-color:var(--nf-accent);box-shadow:0 0 0 3px var(--nf-accent-soft)}.CUIYUW_bookCardCover{aspect-ratio:3/4;background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex;overflow:hidden}.CUIYUW_bookCardCover img{object-fit:contain;width:100%;height:100%;display:block}.CUIYUW_bookCardCoverFallback{background:radial-gradient(400px 200px at 80% -20%, color-mix(in srgb, var(--nf-accent) 25%, transparent), transparent 70%), linear-gradient(155deg, var(--nf-bg-inset), color-mix(in srgb, var(--nf-accent) 10%, var(--nf-bg-inset)));flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;height:100%;display:flex}.CUIYUW_bookCardCoverTitle{color:var(--nf-accent);letter-spacing:2px;font-size:22px;font-weight:800}.CUIYUW_bookCardBody{flex-direction:column;gap:5px;min-width:0;display:flex}.CUIYUW_bookCardTitleRow{justify-content:space-between;align-items:center;gap:6px;display:flex}.CUIYUW_bookCardName{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.CUIYUW_bookCardBlurb{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:34px;display:-webkit-box;overflow:hidden}.CUIYUW_bookCardMetaRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.CUIYUW_bookCardProgressBar{background:var(--nf-border);border-radius:999px;height:5px;overflow:hidden}.CUIYUW_bookCardProgressFill{background:linear-gradient(90deg, var(--nf-info), var(--nf-accent));border-radius:999px;height:100%;transition:width .3s;display:block}.CUIYUW_bookAddCard{text-align:center;color:var(--nf-text-2);border-style:dashed;justify-content:center;align-items:center;gap:8px;min-height:260px}.CUIYUW_bookAddCard:hover{color:var(--nf-accent)}.CUIYUW_bookAddIcon{color:var(--nf-accent);font-size:34px;line-height:1}.CUIYUW_bookCreateCard{border-color:var(--nf-accent);min-height:260px}.CUIYUW_createBookView{flex-direction:column;flex:1;gap:14px;min-height:0;padding:14px 18px 24px;display:flex;overflow:auto}.CUIYUW_createBookTop{align-items:center;display:flex}.CUIYUW_createBookCard{border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);width:min(520px,100%);box-shadow:var(--nf-shadow-lg);border-radius:20px;flex-direction:column;align-self:center;gap:12px;padding:26px 28px;display:flex}.CUIYUW_createBookIcon{font-size:34px;line-height:1}.CUIYUW_createBookTitle{letter-spacing:-.3px;margin:0;font-size:22px;font-weight:800}.CUIYUW_ideaCard{border:1px dashed var(--nf-border-strong);background:color-mix(in srgb, var(--nf-accent) 3%, transparent);border-radius:14px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.CUIYUW_ideaToggle{color:var(--nf-accent);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:700;display:flex}.CUIYUW_ideaCandidate{border:1px solid var(--nf-border);background:var(--nf-bg);border-radius:12px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.CUIYUW_progressLineDone{color:var(--nf-success);font-weight:600}.CUIYUW_progressLineError{color:var(--nf-error);font-weight:600}.CUIYUW_meta{color:var(--nf-text-2);opacity:.9;font-size:12px}.CUIYUW_genreDesc{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:560px;display:-webkit-box;overflow:hidden}.CUIYUW_fileList{color:var(--nf-text-2);opacity:.9;word-break:break-all;flex-direction:column;gap:3px;font-size:12px;display:flex}.CUIYUW_panelContent::-webkit-scrollbar,.CUIYUW_chatScroll::-webkit-scrollbar,.CUIYUW_chapterPreview::-webkit-scrollbar,.CUIYUW_progress::-webkit-scrollbar,.CUIYUW_toolLive::-webkit-scrollbar{width:8px;height:8px}.CUIYUW_panelContent::-webkit-scrollbar-thumb,.CUIYUW_chatScroll::-webkit-scrollbar-thumb,.CUIYUW_chapterPreview::-webkit-scrollbar-thumb,.CUIYUW_progress::-webkit-scrollbar-thumb,.CUIYUW_toolLive::-webkit-scrollbar-thumb{background:var(--nf-border-strong);border-radius:4px}.CUIYUW_panelContent::-webkit-scrollbar-thumb:hover,.CUIYUW_chatScroll::-webkit-scrollbar-thumb:hover,.CUIYUW_chapterPreview::-webkit-scrollbar-thumb:hover,.CUIYUW_progress::-webkit-scrollbar-thumb:hover,.CUIYUW_toolLive::-webkit-scrollbar-thumb:hover{background:var(--nf-text-3)}.CUIYUW_workflowList{flex-direction:column;gap:0;display:flex}.CUIYUW_workflowRow{align-items:flex-start;gap:12px;padding:8px 4px;display:flex;position:relative}.CUIYUW_workflowRow:before{content:\"\";background:var(--nf-border);width:2px;position:absolute;top:34px;bottom:-8px;left:13px}.CUIYUW_workflowRow:last-child:before{display:none}.CUIYUW_workflowDot{border:2px solid var(--nf-border-strong);background:var(--nf-bg-raise);width:28px;height:28px;color:var(--nf-text-2);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.CUIYUW_workflowDotDone{border-color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 15%, var(--nf-bg-raise));color:var(--nf-success)}.CUIYUW_workflowDotActive{border-color:var(--nf-accent);background:var(--nf-accent);color:var(--nf-accent-fg);box-shadow:0 0 0 4px var(--nf-accent-soft)}.CUIYUW_workflowBody{flex-direction:column;flex:1;gap:4px;min-width:0;padding-top:2px;display:flex}.CUIYUW_workflowLabel{color:var(--nf-text);font-size:13px;font-weight:600}.CUIYUW_workflowHint{color:var(--nf-text-2);font-size:12px}@keyframes CUIYUW_pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes CUIYUW_fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.CUIYUW_card{animation:.2s CUIYUW_fadeIn}.CUIYUW_bookshelf{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);box-shadow:var(--nf-shadow), inset 0 1px 0 var(--nf-glass-sheen);backdrop-filter:blur(26px)saturate(175%);z-index:1;border-radius:16px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;margin:10px 12px 0;padding:8px 14px;display:flex;position:relative}.CUIYUW_bookshelfLabel{color:var(--nf-text-3);letter-spacing:1px;flex-shrink:0;font-size:12px;font-weight:700}.CUIYUW_bookshelfList{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.CUIYUW_bookChip{border:1px solid var(--nf-border);background:var(--nf-bg-inset);cursor:pointer;border-radius:999px;align-items:center;gap:6px;max-width:220px;padding:4px 8px 4px 10px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.CUIYUW_bookChip:hover{border-color:var(--nf-border-strong)}.CUIYUW_bookChipActive{border-color:var(--nf-accent);background:var(--nf-accent-soft);color:var(--nf-accent)}.CUIYUW_bookChipName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.CUIYUW_bookChipMeta{opacity:.7;white-space:nowrap;font-size:11px}.CUIYUW_bookChipRemove{color:var(--nf-text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 2px;font-size:13px;line-height:1}.CUIYUW_bookChipRemove:hover{color:var(--nf-error)}.CUIYUW_bookAdd{border:1px dashed var(--nf-border-strong);color:var(--nf-text-2);cursor:pointer;background:0 0;border-radius:999px;padding:4px 12px;font-size:12px;transition:border-color .15s,color .15s}.CUIYUW_bookAdd:hover{border-color:var(--nf-accent);color:var(--nf-accent)}.CUIYUW_bookCreateForm{align-items:center;gap:6px;display:flex}.CUIYUW_dropzone{border:2px dashed var(--nf-border-strong);text-align:center;color:var(--nf-text-2);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:18px 14px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.CUIYUW_dropzone:hover,.CUIYUW_dropzoneActive{border-color:var(--nf-accent);background:var(--nf-accent-soft);color:var(--nf-accent)}.CUIYUW_dropzoneIcon{font-size:22px;line-height:1}.CUIYUW_bookCardActions{align-items:center;gap:6px;margin-top:2px;display:flex}.CUIYUW_bookCardActions .CUIYUW_button{flex:1;justify-content:center}.CUIYUW_readerView{flex-direction:column;transition:background .2s,color .2s;display:flex;position:absolute;inset:0;overflow:hidden}.CUIYUW_readerHeader{border-bottom:1px solid;flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.CUIYUW_readerTitle{font-size:14px;font-weight:700}.CUIYUW_readerSeg{border-radius:8px;align-items:center;gap:2px;display:flex;overflow:hidden}.CUIYUW_readerSegBtn{cursor:pointer;opacity:.75;background:0 0;border:none;border-radius:6px;padding:3px 8px;font-size:12px}.CUIYUW_readerSegBtn:hover,.CUIYUW_readerSegActive{opacity:1}.CUIYUW_readerBody{flex:1;align-items:stretch;min-height:0;display:flex}.CUIYUW_readerSidebar{scrollbar-width:thin;border-right:1px solid;flex-direction:column;flex:none;gap:10px;width:220px;min-width:220px;padding:8px 6px 24px;display:flex;overflow-y:auto}.CUIYUW_readerGroup{flex-direction:column;gap:1px;display:flex}.CUIYUW_readerGroupTitle{opacity:.9;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;width:100%;padding:6px 8px 4px;font-size:12px;font-weight:700;display:flex}.CUIYUW_readerGroupTitle:hover{opacity:1;background:#8080801f}.CUIYUW_readerGroupArrow{text-align:center;flex:none;width:12px;font-size:10px}.CUIYUW_readerGroupCount{opacity:.6;flex:none;margin-left:auto;padding-right:2px;font-size:11px;font-weight:400}.CUIYUW_readerItem{text-align:left;cursor:pointer;opacity:.8;background:0 0;border:1px solid;border-radius:8px;align-items:center;gap:6px;min-width:0;padding:4px 8px;font-size:12px;transition:opacity .15s,background .15s;display:flex}.CUIYUW_readerItem:hover{opacity:1}.CUIYUW_readerItemActive{opacity:1;font-weight:700}.CUIYUW_readerItemNo{text-align:right;opacity:.75;flex:none;min-width:26px;font-weight:700}.CUIYUW_readerItemTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.CUIYUW_readerItemBadge{flex:none;font-size:11px}.CUIYUW_readerMain{scrollbar-width:thin;flex:1;justify-content:center;min-height:0;padding:20px 16px 48px;display:flex;overflow-y:auto}.CUIYUW_readerArticle{flex-direction:column;gap:12px;width:100%;display:flex}.CUIYUW_readerChapterTitle{letter-spacing:1px;margin:0;font-size:24px;font-weight:800}.CUIYUW_readerChapterMeta{align-items:center;gap:8px;font-size:12px;display:flex}.CUIYUW_readerText{text-align:justify;letter-spacing:.02em}.CUIYUW_readerPara{text-indent:2em;margin:0 0 .85em}.CUIYUW_readerFoot{border-top:1px dashed;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.CUIYUW_readerLoading,.CUIYUW_readerError{opacity:.7;align-self:center;padding:32px 0;font-size:13px}.CUIYUW_readerError{color:var(--nf-error)}";
894
+ //#region \0dsh-css:D:\ryan work\harness\plugins\novel-forge\src\client\panel\panel.module.css.mjs
895
+ const css = ".zE6uZW_entry{width:100%;color:var(--dsw-alias-label-primary,#1f1f23);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}body[data-ds-dark-theme] .zE6uZW_entry{color:var(--dsw-alias-label-primary,#ececf1)}.zE6uZW_entry:hover{background:var(--dsw-alias-interactive-bg-hover,#7f7f7f1f)}.zE6uZW_entry[data-active]{background:var(--dsw-alias-interactive-bg-active,#7f7f7f33)}.zE6uZW_entryIcon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.zE6uZW_entryLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[data-pane=conversation]{position:relative}.zE6uZW_view{z-index:60;color-scheme:light;--nf-font:-apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"SF Pro Text\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"Segoe UI\", Roboto, \"Helvetica Neue\", sans-serif;--nf-font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--nf-bg:#f2f2f7db;--nf-bg-raise:#ffffffb8;--nf-bg-inset:#7676801f;--nf-border:#3c3c4329;--nf-border-strong:#3c3c4352;--nf-text:#1c1c1e;--nf-text-2:#3c3c43;--nf-text-2-alpha:#3c3c43ad;--nf-text-3:#8e8e93;--nf-accent:#00b85c;--nf-accent-hover:#00a04e;--nf-accent-soft:#00b85c1f;--nf-accent-fg:#fff;--nf-hover:#0000000d;--nf-success:#34c759;--nf-error:#ff3b30;--nf-warn:#ff9500;--nf-info:#00b85c;--nf-shadow:0 1px 3px #0000000f, 0 12px 32px #00000014;--nf-shadow-lg:0 4px 12px #00000012, 0 20px 48px #0000001f;--nf-card-shadow:0 2px 6px #0000000f, 0 14px 38px #00000024;--nf-card-shadow-hover:0 4px 10px #00000014, 0 22px 52px #0003;--nf-glass-face:linear-gradient(180deg, #f6f7f9 0%, #f0f2f5 26%, #e9ebef 52%, #e0e3e8 78%, #d6d9df 100%);--nf-glass-core:radial-gradient(30% 24% at 36% 28%, #ffffff80 0%, #ffffff38 45%, #fff0 78%);--nf-glass-sheen:#ffffff8c;--nf-glass-border:#ffffffa6;--nf-glass-inset:#ffffff8c;--nf-glass-orb-a:#00b85c24;--nf-glass-orb-b:#78a0ff1a;--nf-glass-noise:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E\");background:var(--nf-bg);backdrop-filter:blur(32px)saturate(180%);color:var(--nf-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,Roboto,Helvetica Neue,sans-serif;display:none;position:absolute;inset:0;overflow:auto}body[data-ds-dark-theme] .zE6uZW_view{color-scheme:dark;--nf-bg:#0a0b0ddb;--nf-bg-raise:#1c1c1ec7;--nf-bg-inset:#7676802e;--nf-border:#ffffff1f;--nf-border-strong:#ffffff47;--nf-text:#f2f2f7;--nf-text-2:#d1d1d6;--nf-text-2-alpha:#d1d1d6b8;--nf-text-3:#8e8e93;--nf-accent:#35d07a;--nf-accent-hover:#5ce695;--nf-accent-soft:#35d07a33;--nf-accent-fg:#062b18;--nf-hover:#ffffff17;--nf-success:#30d158;--nf-error:#ff453a;--nf-warn:#ff9f0a;--nf-info:#35d07a;--nf-shadow:0 1px 2px #00000059, 0 10px 30px #0006;--nf-shadow-lg:0 4px 12px #0006, 0 20px 48px #0000008c;--nf-card-shadow:0 2px 6px #00000059, 0 14px 38px #00000073;--nf-card-shadow-hover:0 4px 10px #0006, 0 22px 52px #0000008c;--nf-glass-face:linear-gradient(180deg, #70747a6b 0%, #60646a6b 26%, #52555a6b 52%, #44474c6b 78%, #383a3f6b 100%);--nf-glass-core:radial-gradient(30% 24% at 36% 28%, #ffffff42 0%, #ffffff1a 45%, #fff0 78%);--nf-glass-sheen:#ffffff42;--nf-glass-border:#ffffff24;--nf-glass-inset:#ffffff12;--nf-glass-orb-a:#00ca5233;--nf-glass-orb-b:#bec8d712;--nf-glass-noise:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E\")}html[data-dsh-novelforge-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) .zE6uZW_view{display:block}.zE6uZW_panel[data-nf-theme=classic]{--nf-accent:#007aff;--nf-accent-hover:#0071e3;--nf-accent-soft:#007aff1f;--nf-accent-fg:#fff;--nf-info:#5856d6;--nf-glass-face:var(--nf-bg-raise);--nf-glass-core:transparent;--nf-glass-sheen:#fff0;--nf-glass-border:var(--nf-border);--nf-glass-inset:var(--nf-bg-inset);--nf-glass-orb-a:transparent;--nf-glass-orb-b:transparent;--nf-glass-noise:none}body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=classic]{--nf-accent:#0a84ff;--nf-accent-hover:#3a9bff;--nf-accent-soft:#0a84ff33;--nf-accent-fg:#fff;--nf-info:#bf5af2;--nf-glass-face:var(--nf-bg-raise);--nf-glass-core:transparent;--nf-glass-sheen:#fff0;--nf-glass-border:var(--nf-border);--nf-glass-inset:var(--nf-bg-inset);--nf-glass-orb-a:transparent;--nf-glass-orb-b:transparent;--nf-glass-noise:none}body:not([data-ds-dark-theme]) .zE6uZW_panel[data-nf-theme=neumorph]{--nf-bg:#e4e9f2;--nf-bg-raise:#e4e9f2;--nf-bg-inset:#d9dfe8;--nf-border:#8c9baf59;--nf-border-strong:#78879e80;--nf-text:#3a4250;--nf-text-2:#5b6472;--nf-text-2-alpha:#465060b3;--nf-text-3:#8b94a3;--nf-hover:#5a697d14;--nf-shadow:4px 4px 10px #a3b1c68c, -4px -4px 10px #ffffffd9;--nf-shadow-lg:6px 6px 14px #a3b1c699, -6px -6px 14px #ffffffe6;--nf-card-shadow:9px 9px 18px #a3b1c68c, -9px -9px 18px #ffffffd9;--nf-card-shadow-hover:12px 12px 24px #a3b1c6a6, -12px -12px 24px #fffffff2;--nf-glass-face:#e4e9f2;--nf-glass-core:transparent;--nf-glass-sheen:#fff0;--nf-glass-border:#a3b1c666;--nf-glass-inset:#d9dfe8;--nf-glass-orb-a:transparent;--nf-glass-orb-b:transparent;--nf-glass-noise:none}body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=neumorph]{--nf-bg:#2b2f36;--nf-bg-raise:#2b2f36;--nf-bg-inset:#25292f;--nf-border:#0a0c1080;--nf-border-strong:#080a0e99;--nf-text:#d6dae1;--nf-text-2:#a8aeb8;--nf-text-2-alpha:#a8aeb8b3;--nf-text-3:#757c88;--nf-hover:#ffffff0d;--nf-shadow:4px 4px 10px #00000080, -4px -4px 10px #6068763d;--nf-shadow-lg:6px 6px 14px #0000008c, -6px -6px 14px #60687642;--nf-card-shadow:9px 9px 18px #00000080, -9px -9px 18px #6068763d;--nf-card-shadow-hover:12px 12px 24px #0009, -12px -12px 24px #60687647;--nf-glass-face:#2b2f36;--nf-glass-core:transparent;--nf-glass-sheen:#fff0;--nf-glass-border:#0c0e1273;--nf-glass-inset:#25292f;--nf-glass-orb-a:transparent;--nf-glass-orb-b:transparent;--nf-glass-noise:none}body:not([data-ds-dark-theme]) .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_input,body:not([data-ds-dark-theme]) .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_textarea{background:var(--nf-bg-inset);border-color:#0000;box-shadow:inset 3px 3px 7px #a3b1c68c,inset -3px -3px 7px #ffffffe6}body:not([data-ds-dark-theme]) .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_input:focus,body:not([data-ds-dark-theme]) .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_textarea:focus{border-color:var(--nf-accent);box-shadow:inset 2px 2px 6px #a3b1c680, inset -2px -2px 6px #ffffffd9, 0 0 0 3px var(--nf-accent-soft)}body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_input,body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_textarea{background:var(--nf-bg-inset);border-color:#0000;box-shadow:inset 3px 3px 7px #0000008c,inset -3px -3px 7px #6068763d}body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_input:focus,body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_textarea:focus{border-color:var(--nf-accent);box-shadow:inset 2px 2px 6px #00000080, inset -2px -2px 6px #60687638, 0 0 0 3px var(--nf-accent-soft)}body:not([data-ds-dark-theme]) .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_button{background:var(--nf-bg-raise);border-color:#0000;box-shadow:5px 5px 10px #a3b1c68c,-5px -5px 10px #ffffffe6}body:not([data-ds-dark-theme]) .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_button:hover:not([disabled]){background:var(--nf-bg-raise);border-color:#0000;box-shadow:7px 7px 14px #a3b1c699,-7px -7px 14px #fffffff2}body:not([data-ds-dark-theme]) .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_button:active:not([disabled]){box-shadow:inset 3px 3px 7px #a3b1c68c,inset -3px -3px 7px #ffffffe6}body:not([data-ds-dark-theme]) .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_buttonPrimary{background:linear-gradient(#00c563,#00a952);box-shadow:5px 5px 10px #a3b1c699,-5px -5px 10px #ffffffd9}body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_button{background:var(--nf-bg-raise);border-color:#0000;box-shadow:5px 5px 10px #00000080,-5px -5px 10px #6068763d}body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_button:hover:not([disabled]){background:var(--nf-bg-raise);border-color:#0000;box-shadow:7px 7px 14px #0000008c,-7px -7px 14px #60687642}body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_button:active:not([disabled]){box-shadow:inset 3px 3px 7px #0000008c,inset -3px -3px 7px #6068763d}body[data-ds-dark-theme] .zE6uZW_panel[data-nf-theme=neumorph] .zE6uZW_buttonPrimary{background:linear-gradient(#3ddc86,#27b96a);box-shadow:5px 5px 10px #00000080,-5px -5px 10px #6068763d}.zE6uZW_panel{flex-direction:column;min-width:0;height:100%;font-size:14px;line-height:1.6;display:flex;position:relative;overflow:hidden}.zE6uZW_panel:before{content:\"\";z-index:0;pointer-events:none;background:radial-gradient(46% 36% at 18% 12%, var(--nf-glass-orb-a), transparent 70%), radial-gradient(52% 42% at 88% 22%, var(--nf-glass-orb-b), transparent 72%), radial-gradient(120% 95% at 50% 42%, transparent 55%, #0202031a 100%);position:absolute;inset:0}.zE6uZW_panelHeader{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);box-shadow:var(--nf-shadow), inset 0 1px 0 var(--nf-glass-sheen);backdrop-filter:blur(28px)saturate(175%);border-radius:18px;flex-shrink:0;justify-content:space-between;align-items:center;margin:10px 12px 0;padding:10px 16px;display:flex}.zE6uZW_panelTitle{letter-spacing:.2px;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:700;display:flex}.zE6uZW_panelTitle:before{content:\"\";background:linear-gradient(180deg, var(--nf-accent), var(--nf-info));border-radius:2px;width:4px;height:16px}.zE6uZW_iconButton{cursor:pointer;color:var(--nf-text-2);background:0 0;border:none;border-radius:8px;padding:4px 9px;font-size:16px;transition:background .15s,color .15s}.zE6uZW_iconButton:hover{background:var(--nf-hover);color:var(--nf-text)}.zE6uZW_tabBar{border-bottom:1px solid var(--nf-border);background:var(--nf-bg-raise);z-index:4;flex-shrink:0;gap:2px;padding:8px 14px 0;display:flex;position:sticky;top:45px}.zE6uZW_tab{cursor:pointer;color:var(--nf-text-2);background:0 0;border:none;border-radius:8px 8px 0 0;padding:7px 13px;font-size:13.5px;font-weight:500;transition:color .15s,background .15s;position:relative}.zE6uZW_tab:hover{color:var(--nf-text);background:var(--nf-hover)}.zE6uZW_tab[data-active]{color:var(--nf-accent);font-weight:600}.zE6uZW_tab[data-active]:after{content:\"\";background:var(--nf-accent);border-radius:2px 2px 0 0;height:2.5px;position:absolute;bottom:-1px;left:10px;right:10px}.zE6uZW_panelContent{z-index:1;flex-direction:column;flex:1;gap:14px;padding:16px 18px 20px;display:flex;position:relative;overflow:auto}.zE6uZW_panelBody{z-index:1;flex:1;min-height:0;display:flex;position:relative}.zE6uZW_panelNav{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);width:142px;box-shadow:var(--nf-shadow), inset 0 1px 0 var(--nf-glass-sheen);backdrop-filter:blur(28px)saturate(175%);border-radius:16px;flex-direction:column;flex:none;align-self:flex-start;gap:4px;margin:10px 0 10px 12px;padding:10px 8px;transition:width .18s;display:flex;overflow-y:auto}.zE6uZW_panelNavCollapsed{width:52px;padding:10px 6px}.zE6uZW_navGroup{flex-direction:column;gap:4px;display:flex}.zE6uZW_navGroupLabel{letter-spacing:.6px;text-transform:uppercase;color:var(--nf-text-3);user-select:none;padding:8px 10px 3px;font-size:10.5px;font-weight:600}.zE6uZW_navGroupSep{background:var(--nf-border);height:1px;margin:6px 8px 4px}.zE6uZW_navSpacer{flex:1;min-height:8px}.zE6uZW_navAbout{border-top:1px solid var(--nf-border);flex-direction:column;flex:none;gap:4px;margin-top:4px;padding:8px 6px 4px;display:flex}.zE6uZW_navAboutRow{cursor:pointer;color:var(--nf-text-3);text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:4px;padding:4px 6px;font-size:11px;transition:color .15s,background .15s;display:flex}.zE6uZW_navAboutRow:hover{color:var(--nf-text);background:var(--nf-hover)}.zE6uZW_navAboutUpdate{background:var(--nf-accent-soft);color:var(--nf-accent);cursor:pointer;text-align:left;white-space:nowrap;border:none;border-radius:8px;padding:4px 6px;font-size:10.5px;font-weight:600}.zE6uZW_navAboutUpdate:hover{color:var(--nf-accent-hover)}.zE6uZW_panelNavCollapsed .zE6uZW_navAbout{align-items:center;padding:6px 2px 2px}.zE6uZW_panelNavCollapsed .zE6uZW_navAboutRow{justify-content:center;width:100%;padding:4px 0}.zE6uZW_navTabBadge{background:var(--nf-accent);color:#fff;text-align:center;border-radius:999px;flex:none;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;line-height:18px;display:inline-block}.zE6uZW_panelNavCollapsed .zE6uZW_navTabBadge{min-width:14px;height:14px;padding:0 3px;font-size:9px;line-height:14px;position:absolute;top:2px;right:2px}.zE6uZW_navTabBadgeDanger{background:var(--nf-error)}.zE6uZW_navTabBadgeWarn{background:var(--nf-warn)}.zE6uZW_navTabBadgeDone{background:var(--nf-success)}.zE6uZW_navTabBadgeLive{background:var(--nf-success);animation:1.2s ease-in-out infinite zE6uZW_navBadgePulse}@keyframes zE6uZW_navBadgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.zE6uZW_navTab{cursor:pointer;width:100%;color:var(--nf-text-2-alpha,var(--nf-text-2));text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;transition:color .15s,background .15s;display:flex;position:relative}.zE6uZW_panelNavCollapsed .zE6uZW_navTab{justify-content:center;padding:8px 0}.zE6uZW_navTab:hover{color:var(--nf-text);background:var(--nf-hover)}.zE6uZW_navTab[data-active]{color:var(--nf-accent);background:var(--nf-accent-soft);font-weight:600}.zE6uZW_navTab[data-active]:before{content:\"\";background:var(--nf-accent);border-radius:999px;width:3px;position:absolute;top:20%;bottom:20%;left:-8px}.zE6uZW_panelNavCollapsed .zE6uZW_navTab[data-active]:before{left:-6px}.zE6uZW_navTabIcon{flex:none;font-size:15px;line-height:1}.zE6uZW_navTabLabel{text-overflow:ellipsis;overflow:hidden}.zE6uZW_panelSubtitle{color:var(--nf-text-2);white-space:nowrap;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:0 4px 2px;font-size:12px;display:flex}.zE6uZW_headerProgress{color:var(--nf-text-2);white-space:nowrap;align-items:center;gap:6px;margin-left:0;font-size:12px;font-weight:400;display:inline-flex}.zE6uZW_headerProgress b{color:var(--nf-accent);font-weight:700}.zE6uZW_headerProgressDot{background:var(--nf-border-strong,var(--nf-text-3));border-radius:50%;width:3px;height:3px;display:inline-block}.zE6uZW_card{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);box-shadow:var(--nf-card-shadow), inset 0 1.5px 0 var(--nf-glass-sheen), inset 0 -1px 0 #ffffff40;backdrop-filter:blur(30px)saturate(180%);border-radius:22px;flex-direction:column;gap:10px;padding:16px 18px;transition:transform .22s,box-shadow .22s;display:flex;position:relative}.zE6uZW_card:before{content:\"\";border-radius:inherit;pointer-events:none;background:var(--nf-glass-core), linear-gradient(90deg, transparent, var(--nf-glass-sheen), transparent) no-repeat 10% 0 / 80% 1px, linear-gradient(156deg, #ffffff42 0%, #fff0 55%);z-index:0;position:absolute;inset:0}.zE6uZW_card:after{content:\"\";border-radius:inherit;pointer-events:none;background:var(--nf-glass-noise);opacity:.06;z-index:0;position:absolute;inset:0}.zE6uZW_card:hover{box-shadow:var(--nf-card-shadow-hover), inset 0 1.5px 0 var(--nf-glass-sheen), inset 0 -1px 0 #ffffff40;transform:translateY(-3px)}.zE6uZW_card>*{z-index:1;position:relative}.zE6uZW_cardTitle{color:var(--nf-text);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:650;display:flex}.zE6uZW_button{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);cursor:pointer;white-space:nowrap;border-radius:12px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}.zE6uZW_button:hover:not([disabled]){background:var(--nf-hover);border-color:var(--nf-border-strong)}.zE6uZW_button:active:not([disabled]){transform:scale(.96)}.zE6uZW_button[disabled]{opacity:.45;cursor:not-allowed}.zE6uZW_buttonPrimary{background:linear-gradient(180deg, color-mix(in srgb, var(--nf-accent) 88%, #fff), var(--nf-accent));color:var(--nf-accent-fg);box-shadow:0 2px 10px color-mix(in srgb, var(--nf-accent) 45%, transparent), 0 0 0 .5px color-mix(in srgb, var(--nf-accent) 30%, transparent);border-color:#0000}.zE6uZW_buttonPrimary:hover:not([disabled]){background:linear-gradient(180deg, var(--nf-accent-hover), color-mix(in srgb, var(--nf-accent-hover) 85%, #000));border-color:#0000}.zE6uZW_buttonDanger{border-color:var(--nf-error);color:var(--nf-error)}.zE6uZW_buttonDanger:hover:not([disabled]){background:#ff3b301a}.zE6uZW_buttonSmall{border-radius:9px;padding:3px 10px;font-size:12px}.zE6uZW_field{flex-direction:column;gap:5px;display:flex}.zE6uZW_fieldLabel{color:var(--nf-text-2);font-size:12px;font-weight:500}.zE6uZW_input{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);box-sizing:border-box;border-radius:12px;width:100%;padding:7px 11px;font-size:13px;transition:border-color .15s,box-shadow .15s}.zE6uZW_input:focus,.zE6uZW_textarea:focus{border-color:var(--nf-accent);box-shadow:0 0 0 3px var(--nf-accent-soft);outline:none}.zE6uZW_input::placeholder,.zE6uZW_textarea::placeholder{color:var(--nf-text-3)}.zE6uZW_textarea{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);box-sizing:border-box;resize:vertical;border-radius:12px;width:100%;min-height:200px;padding:9px 11px;font-family:inherit;font-size:13px;line-height:1.7;transition:border-color .15s,box-shadow .15s}.zE6uZW_row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.zE6uZW_spaceBetween{justify-content:space-between}.zE6uZW_chapterList{flex-direction:column;gap:8px;display:flex}.zE6uZW_volumeGroup{flex-direction:column;gap:6px;display:flex}.zE6uZW_volumeGroupHeader{background:var(--nf-bg-inset);border:1px solid var(--nf-border);cursor:pointer;user-select:none;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;transition:border-color .15s;display:flex}.zE6uZW_volumeGroupHeader:hover{border-color:var(--nf-accent)}.zE6uZW_volumeGroupToggle{color:var(--nf-text-2);flex:none;font-size:11px}.zE6uZW_chapter{border:1px solid var(--nf-border);background:var(--nf-bg);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.zE6uZW_chapter:hover{border-color:var(--nf-border-strong);box-shadow:var(--nf-shadow)}.zE6uZW_chapterFocus{animation:.9s ease-in-out 3 zE6uZW_chapterFocusPulse;border-color:var(--nf-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb, var(--nf-accent) 35%, transparent)!important}@keyframes zE6uZW_chapterFocusPulse{0%,to{background:var(--nf-bg)}50%{background:color-mix(in srgb, var(--nf-accent) 18%, var(--nf-bg))}}.zE6uZW_chapterNum{background:var(--nf-bg-inset);border:1px solid var(--nf-border);min-width:28px;height:28px;color:var(--nf-text-2);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.zE6uZW_chapterMain{flex:1;min-width:0}.zE6uZW_chapterTitle{color:var(--nf-text);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.zE6uZW_chapterBeats{color:var(--nf-text-2);opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.zE6uZW_chapterActions{opacity:.85;flex-shrink:0;gap:4px;transition:opacity .15s;display:flex}.zE6uZW_chapter:hover .zE6uZW_chapterActions{opacity:1}.zE6uZW_badge{white-space:nowrap;letter-spacing:.2px;border:1px solid;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.zE6uZW_badgePending{color:var(--nf-info);border-color:var(--nf-info);background:color-mix(in srgb, var(--nf-info) 10%, transparent)}.zE6uZW_badgeGenerating{color:var(--nf-accent);border-color:var(--nf-accent);background:color-mix(in srgb, var(--nf-accent) 12%, transparent);animation:1.2s ease-in-out infinite zE6uZW_pulse}.zE6uZW_badgeWritten{color:var(--nf-warn);border-color:var(--nf-warn);background:color-mix(in srgb, var(--nf-warn) 10%, transparent)}.zE6uZW_badgeRejected{color:var(--nf-error);border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 10%, transparent)}.zE6uZW_badgeDone{color:var(--nf-success);border-color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 10%, transparent)}.zE6uZW_badgeError{color:var(--nf-error);border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 10%, transparent)}.zE6uZW_reviewBox{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;font-size:12.5px;display:flex}.zE6uZW_chapterPreview{white-space:pre-wrap;word-break:break-all;max-height:320px;color:var(--nf-text);background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:10px;margin:0;padding:10px 12px;font-family:inherit;font-size:12.5px;line-height:1.8;overflow:auto}.zE6uZW_chatScroll{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:12px;flex-direction:column;flex:1;gap:10px;min-height:240px;max-height:480px;padding:14px;display:flex;overflow-y:auto}.zE6uZW_chatBubbleUser{background:linear-gradient(180deg, var(--nf-accent), var(--nf-accent-hover));max-width:90%;color:var(--nf-accent-fg);border-radius:14px 14px 4px;align-self:flex-end;padding:9px 14px;font-size:13px;box-shadow:0 2px 6px #4d6bfe33}.zE6uZW_chatBubbleAssistant{background:var(--nf-bg-raise);max-width:92%;color:var(--nf-text);border:1px solid var(--nf-border);box-shadow:var(--nf-shadow);border-radius:14px 14px 14px 4px;align-self:flex-start;padding:9px 14px;font-size:13px}.zE6uZW_chatRole{color:var(--nf-text-3);margin-bottom:3px;font-size:11px;font-weight:600}.zE6uZW_toolLive{background:var(--nf-bg-inset);border:1px dashed var(--nf-border-strong);white-space:pre-wrap;word-break:break-all;color:var(--nf-text-2);border-radius:8px;max-height:180px;margin-top:6px;padding:8px 10px;font-size:12px;line-height:1.7;overflow-y:auto}.zE6uZW_assistantStatus{color:var(--nf-text-2);background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:999px;flex:none;align-items:center;gap:6px;margin-top:6px;padding:6px 12px;font-size:12px;display:flex}.zE6uZW_assistantStatusBusy{color:var(--nf-accent);border-color:var(--nf-accent);background:var(--nf-accent-soft);font-weight:600}.zE6uZW_toolSteps{flex-direction:column;gap:4px;margin-top:6px;display:flex}.zE6uZW_toolStep{background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:8px;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:flex}.zE6uZW_toolStepActive{border-color:var(--nf-accent);background:var(--nf-accent-soft)}.zE6uZW_toolStepError{border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 8%, transparent)}.zE6uZW_toolStepIcon{flex:none;font-size:13px}.zE6uZW_toolStepName{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.zE6uZW_toolStepStatus{color:var(--nf-text-2);flex:none;font-size:11px}.zE6uZW_toolStepActive .zE6uZW_toolStepStatus{color:var(--nf-accent)}.zE6uZW_toolStepError .zE6uZW_toolStepStatus{color:var(--nf-error)}.zE6uZW_toolStepDetail{width:100%;color:var(--nf-error);word-break:break-all;font-size:11px}.zE6uZW_progress{border:1px solid var(--nf-border);white-space:pre-wrap;word-break:break-all;min-height:60px;max-height:220px;color:var(--nf-text-2);font-size:12px;font-family:var(--nf-font-mono);background:var(--nf-bg-inset);border-radius:10px;padding:10px 14px;line-height:1.8;overflow:auto}.zE6uZW_progressLine{color:var(--nf-text-2);opacity:.9}.zE6uZW_progressLineLive{color:var(--nf-accent);align-items:center;gap:8px;font-weight:600;display:flex}.zE6uZW_progressBar{background:var(--nf-border);border-radius:999px;flex:none;width:110px;height:6px;display:inline-block;overflow:hidden}.zE6uZW_progressBarFill{background:var(--nf-accent);border-radius:3px;height:100%;transition:width .3s;display:block}.zE6uZW_busyRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.zE6uZW_liveText{font-variant-numeric:tabular-nums;color:var(--nf-text-2);font-size:12px}.zE6uZW_bigProgressBar{background:var(--nf-border);border-radius:999px;height:8px;margin-top:10px;overflow:hidden}.zE6uZW_bigProgressBarFill{background:linear-gradient(90deg, var(--nf-accent), var(--nf-accent-2,var(--nf-accent)));border-radius:999px;height:100%;transition:width .3s;display:block}.zE6uZW_diffLegend{flex-wrap:wrap;align-items:center;gap:14px;margin:6px 0 8px;font-size:12px;display:flex}.zE6uZW_legendOld{color:var(--nf-error);font-weight:700}.zE6uZW_legendNew{color:var(--nf-success);font-weight:700}.zE6uZW_onlyChanges{color:var(--nf-text-2);cursor:pointer;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.zE6uZW_diffList{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:8px;flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px 12px;font-size:13px;line-height:1.7;display:flex;overflow-y:auto}.zE6uZW_diffSame{border:1px dashed var(--nf-border);color:var(--nf-text-2);opacity:.85;border-radius:6px;padding:6px 10px}.zE6uZW_diffSame summary{cursor:pointer;user-select:none;font-size:12px}.zE6uZW_diffSameBody{white-space:pre-wrap;margin-top:6px}.zE6uZW_diffChange{border:1px solid var(--nf-border);border-radius:8px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.zE6uZW_diffColumn{flex-direction:column;gap:6px;min-width:0;padding:8px 10px;display:flex}.zE6uZW_diffColumn:first-child{border-right:1px solid var(--nf-border)}.zE6uZW_diffTagOld,.zE6uZW_diffTagNew{letter-spacing:.5px;border-radius:4px;flex:none;align-self:flex-start;padding:1px 7px;font-size:11px;font-weight:700}.zE6uZW_diffTagOld{color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 16%, transparent);border:1px solid color-mix(in srgb, var(--nf-error) 45%, transparent)}.zE6uZW_diffTagNew{color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 16%, transparent);border:1px solid color-mix(in srgb, var(--nf-success) 45%, transparent)}.zE6uZW_diffOld{color:var(--nf-error);white-space:pre-wrap;text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--nf-error) 55%, transparent)}.zE6uZW_diffNew{color:var(--nf-success);white-space:pre-wrap;font-weight:500}.zE6uZW_diffDel{border:1px solid color-mix(in srgb, var(--nf-error) 35%, transparent);background:color-mix(in srgb, var(--nf-error) 7%, transparent);border-radius:6px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}.zE6uZW_diffAdd{border:1px solid color-mix(in srgb, var(--nf-success) 35%, transparent);background:color-mix(in srgb, var(--nf-success) 7%, transparent);border-radius:6px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}.zE6uZW_diffText{white-space:pre-wrap}.zE6uZW_diffDel .zE6uZW_diffText{color:var(--nf-error);text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--nf-error) 50%, transparent)}.zE6uZW_diffAdd .zE6uZW_diffText{color:var(--nf-success)}.zE6uZW_wsPage{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.zE6uZW_wsPageHeader{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.zE6uZW_wsAppliedBanner{border:1px solid var(--nf-success);background:color-mix(in srgb, var(--nf-success) 8%, transparent);border-radius:10px;flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.zE6uZW_wsColumns{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;min-height:0;display:grid}.zE6uZW_wsColumn{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.zE6uZW_wsEditor{resize:vertical;min-height:0;font-family:var(--nf-font);white-space:pre-wrap;flex:1;font-size:13px;line-height:1.75}.zE6uZW_wsSelected{border:1px solid var(--nf-accent);background:color-mix(in srgb, var(--nf-accent) 8%, transparent);border-radius:6px;max-height:120px;padding:6px 10px;overflow:auto}.zE6uZW_wsSelectedText{color:var(--nf-text-2);white-space:pre-wrap;margin-top:4px;font-size:12px}.zE6uZW_wsPreview{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:8px;flex-direction:column;gap:8px;padding:8px 10px;display:flex}.zE6uZW_wsPreviewText{white-space:pre-wrap;min-height:0;color:var(--nf-text);flex:1;margin:0;font-size:13px;line-height:1.7;overflow:auto}.zE6uZW_assetGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.zE6uZW_assetStat{border:1px solid var(--nf-glass-border);background:var(--nf-glass-inset);box-shadow:inset 0 1px 0 var(--nf-glass-sheen);border-radius:14px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.zE6uZW_assetStatLabel{color:var(--nf-text-2);opacity:.9;font-size:11px}.zE6uZW_assetStatValue{color:var(--nf-text);font-size:15px;font-weight:700;line-height:1.2}.zE6uZW_assetStatDetail{color:var(--nf-text-2);opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.zE6uZW_dashHero{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);box-shadow:var(--nf-card-shadow), inset 0 1.5px 0 var(--nf-glass-sheen), inset 0 -1px 0 #ffffff40;backdrop-filter:blur(30px)saturate(180%);border-radius:22px;flex-direction:column;gap:14px;padding:18px 20px;transition:transform .22s,box-shadow .22s;display:flex;position:relative}.zE6uZW_dashHero:before{content:\"\";border-radius:inherit;pointer-events:none;background:radial-gradient(46% 40% at 92% -10%, color-mix(in srgb, var(--nf-accent) 13%, transparent), transparent 62%), var(--nf-glass-core), linear-gradient(90deg, transparent, var(--nf-glass-sheen), transparent) no-repeat 10% 0 / 80% 1px, linear-gradient(156deg, #ffffff42 0%, #fff0 55%);z-index:0;position:absolute;inset:0}.zE6uZW_dashHero:after{content:\"\";border-radius:inherit;pointer-events:none;background:var(--nf-glass-noise);opacity:.06;z-index:0;position:absolute;inset:0}.zE6uZW_dashHero:hover{box-shadow:var(--nf-card-shadow-hover), inset 0 1.5px 0 var(--nf-glass-sheen), inset 0 -1px 0 #ffffff40;transform:translateY(-3px)}.zE6uZW_dashHero>*{z-index:1;position:relative}.zE6uZW_dashHeroEyebrow{color:var(--nf-accent);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.zE6uZW_dashHeroSparkle{font-size:14px}.zE6uZW_dashHeroTitle{flex-direction:column;gap:2px;display:flex}.zE6uZW_dashHeroBook{letter-spacing:-.3px;margin:0;font-size:24px;font-weight:700;line-height:1.25}.zE6uZW_dashHeroAction{border:1px solid var(--nf-glass-border);background:var(--nf-glass-inset);box-shadow:inset 0 1px 0 var(--nf-glass-sheen);border-radius:14px;align-items:center;gap:12px;padding:10px 14px;display:flex}.zE6uZW_dashHeroArrow{background:var(--nf-accent);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex}.zE6uZW_dashHeroActionBody{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.zE6uZW_dashHeroActionTitle{font-size:14px;font-weight:600}.zE6uZW_dashJourney{flex-direction:column;gap:6px;display:flex}.zE6uZW_dashJourneyBar{background:var(--nf-border);border-radius:999px;height:6px;overflow:hidden}.zE6uZW_dashJourneyFill{background:linear-gradient(90deg, var(--nf-info), var(--nf-accent));border-radius:999px;height:100%;transition:width .4s;display:block}.zE6uZW_dashJourneyStages{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.zE6uZW_dashStage{color:var(--nf-text-3);text-align:center;white-space:nowrap;flex-direction:column;align-items:center;gap:3px;font-size:11px;display:flex}.zE6uZW_dashStageDot{border:1px solid var(--nf-border-strong,var(--nf-text-3));background:var(--nf-bg-base);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;display:inline-flex}.zE6uZW_dashStageDone{color:var(--nf-text-2)}.zE6uZW_dashStageDone .zE6uZW_dashStageDot{background:var(--nf-success);border-color:var(--nf-success);color:#fff}.zE6uZW_dashStageCurrent{color:var(--nf-accent);font-weight:600}.zE6uZW_dashStageCurrent .zE6uZW_dashStageDot{border-color:var(--nf-accent);color:var(--nf-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--nf-accent) 18%, transparent)}.zE6uZW_dashFacts{border-top:1px solid var(--nf-border);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding-top:12px;display:grid}.zE6uZW_dashFact{flex-direction:column;gap:2px;min-width:0;display:flex}.zE6uZW_dashFact b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.zE6uZW_dashGrid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:14px;display:grid}.zE6uZW_todoItem{border:1px solid var(--nf-border);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;display:flex}.zE6uZW_todoDanger{border-color:color-mix(in srgb, var(--nf-error) 40%, transparent);background:color-mix(in srgb, var(--nf-error) 8%, transparent)}.zE6uZW_todoWarning{border-color:color-mix(in srgb, var(--nf-warn) 40%, transparent);background:color-mix(in srgb, var(--nf-warn) 8%, transparent)}.zE6uZW_todoInfo{border-color:color-mix(in srgb, var(--nf-info) 40%, transparent);background:color-mix(in srgb, var(--nf-info) 7%, transparent)}.zE6uZW_todoText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.zE6uZW_outlineReadonly{border:1px solid var(--nf-border);background:var(--nf-bg-inset);white-space:pre-wrap;user-select:text;border-radius:12px;max-height:480px;margin:0;padding:12px 14px;font-size:12.5px;line-height:1.8;overflow:auto}.zE6uZW_bookCreateOutline{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.zE6uZW_assistantFloat{z-index:80;border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);box-shadow:var(--nf-shadow-lg);border-radius:16px;flex-direction:column;min-width:320px;min-height:220px;display:flex;position:absolute;overflow:hidden}.zE6uZW_assistantFloatHeader{cursor:grab;user-select:none;border-bottom:1px solid var(--nf-border);background:var(--nf-bg-inset);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 14px;font-size:13px;font-weight:600;display:flex}.zE6uZW_assistantFloatHeader:active{cursor:grabbing}.zE6uZW_assistantFloatBody{flex:1;min-height:0;padding:10px;display:flex;overflow:hidden}.zE6uZW_assistantFloatBody>*{flex:1;min-width:0}.zE6uZW_assistantResize{cursor:nwse-resize;background:linear-gradient(135deg, transparent 0 55%, var(--nf-border-strong) 55% 62%, transparent 62%) no-repeat 4px 4px / 12px 12px;width:20px;height:20px;position:absolute;bottom:0;right:0}.zE6uZW_coverPreview{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:12px;flex:none;justify-content:center;align-items:center;width:150px;height:200px;display:flex;overflow:hidden}.zE6uZW_coverPreview img{object-fit:contain;width:100%;height:100%;display:block}.zE6uZW_coverPlaceholder{color:var(--nf-text-3);font-size:12px}.zE6uZW_shelfView{flex-direction:column;flex:1;gap:16px;min-height:0;padding:18px;display:flex;overflow:auto}.zE6uZW_shelfHeader{flex-direction:column;gap:10px;display:flex}.zE6uZW_shelfTitleRow{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.zE6uZW_shelfToolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.zE6uZW_shelfSearch{flex:1;min-width:180px;max-width:320px}.zE6uZW_shelfFilters{flex-wrap:wrap;gap:6px;display:flex}.zE6uZW_shelfEmpty{border:1px dashed var(--nf-border-strong);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);text-align:center;border-radius:16px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px 20px;display:flex}.zE6uZW_shelfEmptyIcon{font-size:42px}.zE6uZW_shelfEmptyTitle{font-size:16px;font-weight:700}.zE6uZW_shelfGrid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:14px;display:grid}.zE6uZW_bookCard{border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);box-shadow:var(--nf-shadow);cursor:pointer;border-radius:16px;flex-direction:column;gap:8px;padding:12px;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex}.zE6uZW_bookCard:hover{border-color:var(--nf-accent);box-shadow:var(--nf-shadow-lg);transform:translateY(-2px)}.zE6uZW_bookCardActive{border-color:var(--nf-accent);box-shadow:0 0 0 3px var(--nf-accent-soft)}.zE6uZW_bookCardCover{aspect-ratio:3/4;background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex;overflow:hidden}.zE6uZW_bookCardCover img{object-fit:contain;width:100%;height:100%;display:block}.zE6uZW_bookCardCoverFallback{background:radial-gradient(400px 200px at 80% -20%, color-mix(in srgb, var(--nf-accent) 25%, transparent), transparent 70%), linear-gradient(155deg, var(--nf-bg-inset), color-mix(in srgb, var(--nf-accent) 10%, var(--nf-bg-inset)));flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;height:100%;display:flex}.zE6uZW_bookCardCoverTitle{color:var(--nf-accent);letter-spacing:2px;font-size:22px;font-weight:800}.zE6uZW_bookCardBody{flex-direction:column;gap:5px;min-width:0;display:flex}.zE6uZW_bookCardTitleRow{justify-content:space-between;align-items:center;gap:6px;display:flex}.zE6uZW_bookCardName{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.zE6uZW_bookCardBlurb{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:34px;display:-webkit-box;overflow:hidden}.zE6uZW_bookCardMetaRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.zE6uZW_bookCardProgressBar{background:var(--nf-border);border-radius:999px;height:5px;overflow:hidden}.zE6uZW_bookCardProgressFill{background:linear-gradient(90deg, var(--nf-info), var(--nf-accent));border-radius:999px;height:100%;transition:width .3s;display:block}.zE6uZW_bookAddCard{text-align:center;color:var(--nf-text-2);border-style:dashed;justify-content:center;align-items:center;gap:8px;min-height:260px}.zE6uZW_bookAddCard:hover{color:var(--nf-accent)}.zE6uZW_bookAddIcon{color:var(--nf-accent);font-size:34px;line-height:1}.zE6uZW_bookCreateCard{border-color:var(--nf-accent);min-height:260px}.zE6uZW_createBookView{flex-direction:column;flex:1;gap:14px;min-height:0;padding:14px 18px 24px;display:flex;overflow:auto}.zE6uZW_createBookTop{align-items:center;display:flex}.zE6uZW_createBookCard{border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);width:min(520px,100%);box-shadow:var(--nf-shadow-lg);border-radius:20px;flex-direction:column;align-self:center;gap:12px;padding:26px 28px;display:flex}.zE6uZW_createBookIcon{font-size:34px;line-height:1}.zE6uZW_createBookTitle{letter-spacing:-.3px;margin:0;font-size:22px;font-weight:800}.zE6uZW_ideaCard{border:1px dashed var(--nf-border-strong);background:color-mix(in srgb, var(--nf-accent) 3%, transparent);border-radius:14px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.zE6uZW_ideaToggle{color:var(--nf-accent);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:700;display:flex}.zE6uZW_ideaCandidate{border:1px solid var(--nf-border);background:var(--nf-bg);border-radius:12px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.zE6uZW_progressLineDone{color:var(--nf-success);font-weight:600}.zE6uZW_progressLineError{color:var(--nf-error);font-weight:600}.zE6uZW_meta{color:var(--nf-text-2);opacity:.9;font-size:12px}.zE6uZW_genreDesc{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:560px;display:-webkit-box;overflow:hidden}.zE6uZW_fileList{color:var(--nf-text-2);opacity:.9;word-break:break-all;flex-direction:column;gap:3px;font-size:12px;display:flex}.zE6uZW_panelContent::-webkit-scrollbar,.zE6uZW_chatScroll::-webkit-scrollbar,.zE6uZW_chapterPreview::-webkit-scrollbar,.zE6uZW_progress::-webkit-scrollbar,.zE6uZW_toolLive::-webkit-scrollbar{width:8px;height:8px}.zE6uZW_panelContent::-webkit-scrollbar-thumb,.zE6uZW_chatScroll::-webkit-scrollbar-thumb,.zE6uZW_chapterPreview::-webkit-scrollbar-thumb,.zE6uZW_progress::-webkit-scrollbar-thumb,.zE6uZW_toolLive::-webkit-scrollbar-thumb{background:var(--nf-border-strong);border-radius:4px}.zE6uZW_panelContent::-webkit-scrollbar-thumb:hover,.zE6uZW_chatScroll::-webkit-scrollbar-thumb:hover,.zE6uZW_chapterPreview::-webkit-scrollbar-thumb:hover,.zE6uZW_progress::-webkit-scrollbar-thumb:hover,.zE6uZW_toolLive::-webkit-scrollbar-thumb:hover{background:var(--nf-text-3)}.zE6uZW_workflowList{flex-direction:column;gap:0;display:flex}.zE6uZW_workflowRow{align-items:flex-start;gap:12px;padding:8px 4px;display:flex;position:relative}.zE6uZW_workflowRow:before{content:\"\";background:var(--nf-border);width:2px;position:absolute;top:34px;bottom:-8px;left:13px}.zE6uZW_workflowRow:last-child:before{display:none}.zE6uZW_workflowDot{border:2px solid var(--nf-border-strong);background:var(--nf-bg-raise);width:28px;height:28px;color:var(--nf-text-2);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.zE6uZW_workflowDotDone{border-color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 15%, var(--nf-bg-raise));color:var(--nf-success)}.zE6uZW_workflowDotActive{border-color:var(--nf-accent);background:var(--nf-accent);color:var(--nf-accent-fg);box-shadow:0 0 0 4px var(--nf-accent-soft)}.zE6uZW_workflowBody{flex-direction:column;flex:1;gap:4px;min-width:0;padding-top:2px;display:flex}.zE6uZW_workflowLabel{color:var(--nf-text);font-size:13px;font-weight:600}.zE6uZW_workflowHint{color:var(--nf-text-2);font-size:12px}@keyframes zE6uZW_pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes zE6uZW_fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.zE6uZW_card{animation:.2s zE6uZW_fadeIn}.zE6uZW_bookshelf{border:1px solid var(--nf-glass-border);background:var(--nf-glass-face);box-shadow:var(--nf-shadow), inset 0 1px 0 var(--nf-glass-sheen);backdrop-filter:blur(26px)saturate(175%);z-index:1;border-radius:16px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;margin:10px 12px 0;padding:8px 14px;display:flex;position:relative}.zE6uZW_bookshelfLabel{color:var(--nf-text-3);letter-spacing:1px;flex-shrink:0;font-size:12px;font-weight:700}.zE6uZW_bookshelfList{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.zE6uZW_bookChip{border:1px solid var(--nf-border);background:var(--nf-bg-inset);cursor:pointer;border-radius:999px;align-items:center;gap:6px;max-width:220px;padding:4px 8px 4px 10px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.zE6uZW_bookChip:hover{border-color:var(--nf-border-strong)}.zE6uZW_bookChipActive{border-color:var(--nf-accent);background:var(--nf-accent-soft);color:var(--nf-accent)}.zE6uZW_bookChipName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.zE6uZW_bookChipMeta{opacity:.7;white-space:nowrap;font-size:11px}.zE6uZW_bookChipRemove{color:var(--nf-text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 2px;font-size:13px;line-height:1}.zE6uZW_bookChipRemove:hover{color:var(--nf-error)}.zE6uZW_bookAdd{border:1px dashed var(--nf-border-strong);color:var(--nf-text-2);cursor:pointer;background:0 0;border-radius:999px;padding:4px 12px;font-size:12px;transition:border-color .15s,color .15s}.zE6uZW_bookAdd:hover{border-color:var(--nf-accent);color:var(--nf-accent)}.zE6uZW_bookCreateForm{align-items:center;gap:6px;display:flex}.zE6uZW_dropzone{border:2px dashed var(--nf-border-strong);text-align:center;color:var(--nf-text-2);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:18px 14px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.zE6uZW_dropzone:hover,.zE6uZW_dropzoneActive{border-color:var(--nf-accent);background:var(--nf-accent-soft);color:var(--nf-accent)}.zE6uZW_dropzoneIcon{font-size:22px;line-height:1}.zE6uZW_bookCardActions{align-items:center;gap:6px;margin-top:2px;display:flex}.zE6uZW_bookCardActions .zE6uZW_button{flex:1;justify-content:center}.zE6uZW_readerView{flex-direction:column;transition:background .2s,color .2s;display:flex;position:absolute;inset:0;overflow:hidden}.zE6uZW_readerHeader{border-bottom:1px solid;flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.zE6uZW_readerTitle{font-size:14px;font-weight:700}.zE6uZW_readerSeg{border-radius:8px;align-items:center;gap:2px;display:flex;overflow:hidden}.zE6uZW_readerSegBtn{cursor:pointer;opacity:.75;background:0 0;border:none;border-radius:6px;padding:3px 8px;font-size:12px}.zE6uZW_readerSegBtn:hover,.zE6uZW_readerSegActive{opacity:1}.zE6uZW_readerBody{flex:1;align-items:stretch;min-height:0;display:flex}.zE6uZW_readerSidebar{scrollbar-width:thin;border-right:1px solid;flex-direction:column;flex:none;gap:10px;width:220px;min-width:220px;padding:8px 6px 24px;display:flex;overflow-y:auto}.zE6uZW_readerGroup{flex-direction:column;gap:1px;display:flex}.zE6uZW_readerGroupTitle{opacity:.9;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;width:100%;padding:6px 8px 4px;font-size:12px;font-weight:700;display:flex}.zE6uZW_readerGroupTitle:hover{opacity:1;background:#8080801f}.zE6uZW_readerGroupArrow{text-align:center;flex:none;width:12px;font-size:10px}.zE6uZW_readerGroupCount{opacity:.6;flex:none;margin-left:auto;padding-right:2px;font-size:11px;font-weight:400}.zE6uZW_readerItem{text-align:left;cursor:pointer;opacity:.8;background:0 0;border:1px solid;border-radius:8px;align-items:center;gap:6px;min-width:0;padding:4px 8px;font-size:12px;transition:opacity .15s,background .15s;display:flex}.zE6uZW_readerItem:hover{opacity:1}.zE6uZW_readerItemActive{opacity:1;font-weight:700}.zE6uZW_readerItemNo{text-align:right;opacity:.75;flex:none;min-width:26px;font-weight:700}.zE6uZW_readerItemTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.zE6uZW_readerItemBadge{flex:none;font-size:11px}.zE6uZW_readerMain{scrollbar-width:thin;flex:1;justify-content:center;min-height:0;padding:20px 16px 48px;display:flex;overflow-y:auto}.zE6uZW_readerArticle{flex-direction:column;gap:12px;width:100%;display:flex}.zE6uZW_readerChapterTitle{letter-spacing:1px;margin:0;font-size:24px;font-weight:800}.zE6uZW_readerChapterMeta{align-items:center;gap:8px;font-size:12px;display:flex}.zE6uZW_readerText{text-align:justify;letter-spacing:.02em}.zE6uZW_readerPara{text-indent:2em;margin:0 0 .85em}.zE6uZW_readerFoot{border-top:1px dashed;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.zE6uZW_readerLoading,.zE6uZW_readerError{opacity:.7;align-self:center;padding:32px 0;font-size:13px}.zE6uZW_readerError{color:var(--nf-error)}";
870
896
  const tagId = "@waterwx/dsh-novel-forge/panel.module.css";
871
897
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
872
898
  const tag = document.createElement("style");
@@ -876,248 +902,248 @@ window.__ModuleLoader__.load({
876
902
  document.head.appendChild(tag);
877
903
  }
878
904
  var panel_module_css_default = {
879
- "iconButton": "CUIYUW_iconButton",
880
- "progressBar": "CUIYUW_progressBar",
881
- "dashHeroActionTitle": "CUIYUW_dashHeroActionTitle",
882
- "panelBody": "CUIYUW_panelBody",
883
- "navAbout": "CUIYUW_navAbout",
884
- "panelContent": "CUIYUW_panelContent",
885
- "chapterFocusPulse": "CUIYUW_chapterFocusPulse",
886
- "badgeWritten": "CUIYUW_badgeWritten",
887
- "dashFacts": "CUIYUW_dashFacts",
888
- "wsSelectedText": "CUIYUW_wsSelectedText",
889
- "dashHeroAction": "CUIYUW_dashHeroAction",
890
- "bookCardName": "CUIYUW_bookCardName",
891
- "chatRole": "CUIYUW_chatRole",
892
- "bookCardActive": "CUIYUW_bookCardActive",
893
- "bookCreateForm": "CUIYUW_bookCreateForm",
894
- "createBookView": "CUIYUW_createBookView",
895
- "readerItemActive": "CUIYUW_readerItemActive",
896
- "headerProgressDot": "CUIYUW_headerProgressDot",
897
- "assetGrid": "CUIYUW_assetGrid",
898
- "bookChipName": "CUIYUW_bookChipName",
899
- "badgeGenerating": "CUIYUW_badgeGenerating",
900
- "progressLineLive": "CUIYUW_progressLineLive",
901
- "volumeGroupHeader": "CUIYUW_volumeGroupHeader",
902
- "toolStepName": "CUIYUW_toolStepName",
903
- "buttonPrimary": "CUIYUW_buttonPrimary",
904
- "createBookTop": "CUIYUW_createBookTop",
905
- "workflowLabel": "CUIYUW_workflowLabel",
906
- "dashHero": "CUIYUW_dashHero",
907
- "navAboutRow": "CUIYUW_navAboutRow",
908
- "onlyChanges": "CUIYUW_onlyChanges",
909
- "workflowHint": "CUIYUW_workflowHint",
910
- "shelfEmptyTitle": "CUIYUW_shelfEmptyTitle",
911
- "workflowBody": "CUIYUW_workflowBody",
912
- "workflowDotDone": "CUIYUW_workflowDotDone",
913
- "chapterTitle": "CUIYUW_chapterTitle",
914
- "row": "CUIYUW_row",
915
- "diffSameBody": "CUIYUW_diffSameBody",
916
- "diffChange": "CUIYUW_diffChange",
917
- "bookCardTitleRow": "CUIYUW_bookCardTitleRow",
918
- "readerChapterMeta": "CUIYUW_readerChapterMeta",
919
- "navAboutUpdate": "CUIYUW_navAboutUpdate",
920
- "wsEditor": "CUIYUW_wsEditor",
921
- "workflowList": "CUIYUW_workflowList",
922
- "readerError": "CUIYUW_readerError",
923
- "diffSame": "CUIYUW_diffSame",
924
- "assistantFloatBody": "CUIYUW_assistantFloatBody",
925
- "bookCard": "CUIYUW_bookCard",
926
- "assistantResize": "CUIYUW_assistantResize",
927
- "navGroupLabel": "CUIYUW_navGroupLabel",
928
- "liveText": "CUIYUW_liveText",
929
- "dashJourneyBar": "CUIYUW_dashJourneyBar",
930
- "readerHeader": "CUIYUW_readerHeader",
931
- "reviewBox": "CUIYUW_reviewBox",
932
- "input": "CUIYUW_input",
933
- "dashHeroActionBody": "CUIYUW_dashHeroActionBody",
934
- "bookChipMeta": "CUIYUW_bookChipMeta",
935
- "dashStageCurrent": "CUIYUW_dashStageCurrent",
936
- "bigProgressBar": "CUIYUW_bigProgressBar",
937
- "diffList": "CUIYUW_diffList",
938
- "wsColumns": "CUIYUW_wsColumns",
939
- "navGroupSep": "CUIYUW_navGroupSep",
940
- "readerBody": "CUIYUW_readerBody",
941
- "dashFact": "CUIYUW_dashFact",
942
- "bookCardCoverTitle": "CUIYUW_bookCardCoverTitle",
943
- "field": "CUIYUW_field",
944
- "assistantStatusBusy": "CUIYUW_assistantStatusBusy",
945
- "toolStepStatus": "CUIYUW_toolStepStatus",
946
- "todoInfo": "CUIYUW_todoInfo",
947
- "badgeError": "CUIYUW_badgeError",
948
- "dashHeroSparkle": "CUIYUW_dashHeroSparkle",
949
- "bookCardActions": "CUIYUW_bookCardActions",
950
- "dashJourney": "CUIYUW_dashJourney",
951
- "diffOld": "CUIYUW_diffOld",
952
- "dropzone": "CUIYUW_dropzone",
953
- "navBadgePulse": "CUIYUW_navBadgePulse",
954
- "dashGrid": "CUIYUW_dashGrid",
955
- "entryIcon": "CUIYUW_entryIcon",
956
- "shelfEmptyIcon": "CUIYUW_shelfEmptyIcon",
957
- "readerGroupCount": "CUIYUW_readerGroupCount",
958
- "navTabIcon": "CUIYUW_navTabIcon",
959
- "meta": "CUIYUW_meta",
960
- "chapter": "CUIYUW_chapter",
961
- "dashHeroEyebrow": "CUIYUW_dashHeroEyebrow",
962
- "dashJourneyStages": "CUIYUW_dashJourneyStages",
963
- "readerItem": "CUIYUW_readerItem",
964
- "assistantStatus": "CUIYUW_assistantStatus",
965
- "chapterPreview": "CUIYUW_chapterPreview",
966
- "wsPageHeader": "CUIYUW_wsPageHeader",
967
- "todoText": "CUIYUW_todoText",
968
- "shelfTitleRow": "CUIYUW_shelfTitleRow",
969
- "coverPreview": "CUIYUW_coverPreview",
970
- "workflowDotActive": "CUIYUW_workflowDotActive",
971
- "toolSteps": "CUIYUW_toolSteps",
972
- "bookChipRemove": "CUIYUW_bookChipRemove",
973
- "panelNav": "CUIYUW_panelNav",
974
- "readerSegActive": "CUIYUW_readerSegActive",
975
- "readerText": "CUIYUW_readerText",
976
- "headerProgress": "CUIYUW_headerProgress",
977
- "dashJourneyFill": "CUIYUW_dashJourneyFill",
978
- "readerItemBadge": "CUIYUW_readerItemBadge",
979
- "readerGroup": "CUIYUW_readerGroup",
980
- "navGroup": "CUIYUW_navGroup",
981
- "readerSidebar": "CUIYUW_readerSidebar",
982
- "toolLive": "CUIYUW_toolLive",
983
- "workflowDot": "CUIYUW_workflowDot",
984
- "button": "CUIYUW_button",
985
- "bookCreateOutline": "CUIYUW_bookCreateOutline",
986
- "bookshelfList": "CUIYUW_bookshelfList",
987
- "navTabBadgeDanger": "CUIYUW_navTabBadgeDanger",
988
- "bookCardBlurb": "CUIYUW_bookCardBlurb",
989
- "readerItemTitle": "CUIYUW_readerItemTitle",
990
- "bookshelf": "CUIYUW_bookshelf",
991
- "wsAppliedBanner": "CUIYUW_wsAppliedBanner",
992
- "ideaCard": "CUIYUW_ideaCard",
993
- "pulse": "CUIYUW_pulse",
994
- "diffAdd": "CUIYUW_diffAdd",
995
- "navSpacer": "CUIYUW_navSpacer",
996
- "volumeGroupToggle": "CUIYUW_volumeGroupToggle",
997
- "navTabLabel": "CUIYUW_navTabLabel",
998
- "navTabBadgeDone": "CUIYUW_navTabBadgeDone",
999
- "cardTitle": "CUIYUW_cardTitle",
1000
- "assetStatDetail": "CUIYUW_assetStatDetail",
1001
- "card": "CUIYUW_card",
1002
- "dashHeroTitle": "CUIYUW_dashHeroTitle",
1003
- "navTabBadgeWarn": "CUIYUW_navTabBadgeWarn",
1004
- "coverPlaceholder": "CUIYUW_coverPlaceholder",
1005
- "createBookTitle": "CUIYUW_createBookTitle",
1006
- "tabBar": "CUIYUW_tabBar",
1007
- "progressLineError": "CUIYUW_progressLineError",
1008
- "panelNavCollapsed": "CUIYUW_panelNavCollapsed",
1009
- "panelSubtitle": "CUIYUW_panelSubtitle",
1010
- "buttonSmall": "CUIYUW_buttonSmall",
1011
- "panelTitle": "CUIYUW_panelTitle",
1012
- "readerItemNo": "CUIYUW_readerItemNo",
1013
- "readerTitle": "CUIYUW_readerTitle",
1014
- "navTab": "CUIYUW_navTab",
1015
- "shelfHeader": "CUIYUW_shelfHeader",
1016
- "shelfFilters": "CUIYUW_shelfFilters",
1017
- "shelfEmpty": "CUIYUW_shelfEmpty",
1018
- "badgeDone": "CUIYUW_badgeDone",
1019
- "diffLegend": "CUIYUW_diffLegend",
1020
- "readerSegBtn": "CUIYUW_readerSegBtn",
1021
- "spaceBetween": "CUIYUW_spaceBetween",
1022
- "todoDanger": "CUIYUW_todoDanger",
1023
- "createBookCard": "CUIYUW_createBookCard",
1024
- "entryLabel": "CUIYUW_entryLabel",
1025
- "bookChipActive": "CUIYUW_bookChipActive",
1026
- "chapterFocus": "CUIYUW_chapterFocus",
1027
- "badge": "CUIYUW_badge",
1028
- "toolStep": "CUIYUW_toolStep",
1029
- "busyRow": "CUIYUW_busyRow",
1030
- "diffTagOld": "CUIYUW_diffTagOld",
1031
- "textarea": "CUIYUW_textarea",
1032
- "dashHeroArrow": "CUIYUW_dashHeroArrow",
1033
- "shelfSearch": "CUIYUW_shelfSearch",
1034
- "bookCardCover": "CUIYUW_bookCardCover",
1035
- "bookCreateCard": "CUIYUW_bookCreateCard",
1036
- "fadeIn": "CUIYUW_fadeIn",
1037
- "view": "CUIYUW_view",
1038
- "assistantFloat": "CUIYUW_assistantFloat",
1039
- "readerGroupTitle": "CUIYUW_readerGroupTitle",
1040
- "tab": "CUIYUW_tab",
1041
- "diffTagNew": "CUIYUW_diffTagNew",
1042
- "todoWarning": "CUIYUW_todoWarning",
1043
- "toolStepIcon": "CUIYUW_toolStepIcon",
1044
- "assetStat": "CUIYUW_assetStat",
1045
- "readerSeg": "CUIYUW_readerSeg",
1046
- "ideaCandidate": "CUIYUW_ideaCandidate",
1047
- "assetStatValue": "CUIYUW_assetStatValue",
1048
- "legendNew": "CUIYUW_legendNew",
1049
- "bookshelfLabel": "CUIYUW_bookshelfLabel",
1050
- "wsPreviewText": "CUIYUW_wsPreviewText",
1051
- "panelHeader": "CUIYUW_panelHeader",
1052
- "wsSelected": "CUIYUW_wsSelected",
1053
- "assistantFloatHeader": "CUIYUW_assistantFloatHeader",
1054
- "readerFoot": "CUIYUW_readerFoot",
1055
- "navTabBadgeLive": "CUIYUW_navTabBadgeLive",
1056
- "panel": "CUIYUW_panel",
1057
- "readerMain": "CUIYUW_readerMain",
1058
- "chapterNum": "CUIYUW_chapterNum",
1059
- "bookCardProgressBar": "CUIYUW_bookCardProgressBar",
1060
- "bookCardBody": "CUIYUW_bookCardBody",
1061
- "ideaToggle": "CUIYUW_ideaToggle",
1062
- "progressLine": "CUIYUW_progressLine",
1063
- "diffNew": "CUIYUW_diffNew",
1064
- "bigProgressBarFill": "CUIYUW_bigProgressBarFill",
1065
- "workflowRow": "CUIYUW_workflowRow",
1066
- "dashHeroBook": "CUIYUW_dashHeroBook",
1067
- "shelfToolbar": "CUIYUW_shelfToolbar",
1068
- "readerLoading": "CUIYUW_readerLoading",
1069
- "readerPara": "CUIYUW_readerPara",
1070
- "shelfGrid": "CUIYUW_shelfGrid",
1071
- "chapterList": "CUIYUW_chapterList",
1072
- "dashStageDot": "CUIYUW_dashStageDot",
1073
- "createBookIcon": "CUIYUW_createBookIcon",
1074
- "chatBubbleUser": "CUIYUW_chatBubbleUser",
1075
- "outlineReadonly": "CUIYUW_outlineReadonly",
1076
- "genreDesc": "CUIYUW_genreDesc",
1077
- "progressBarFill": "CUIYUW_progressBarFill",
1078
- "readerView": "CUIYUW_readerView",
1079
- "entry": "CUIYUW_entry",
1080
- "progress": "CUIYUW_progress",
1081
- "toolStepActive": "CUIYUW_toolStepActive",
1082
- "chatScroll": "CUIYUW_chatScroll",
1083
- "legendOld": "CUIYUW_legendOld",
1084
- "volumeGroup": "CUIYUW_volumeGroup",
1085
- "navTabBadge": "CUIYUW_navTabBadge",
1086
- "diffText": "CUIYUW_diffText",
1087
- "dashStage": "CUIYUW_dashStage",
1088
- "readerArticle": "CUIYUW_readerArticle",
1089
- "shelfView": "CUIYUW_shelfView",
1090
- "fileList": "CUIYUW_fileList",
1091
- "buttonDanger": "CUIYUW_buttonDanger",
1092
- "wsPage": "CUIYUW_wsPage",
1093
- "todoItem": "CUIYUW_todoItem",
1094
- "fieldLabel": "CUIYUW_fieldLabel",
1095
- "chapterBeats": "CUIYUW_chapterBeats",
1096
- "badgeRejected": "CUIYUW_badgeRejected",
1097
- "diffColumn": "CUIYUW_diffColumn",
1098
- "assetStatLabel": "CUIYUW_assetStatLabel",
1099
- "bookChip": "CUIYUW_bookChip",
1100
- "chatBubbleAssistant": "CUIYUW_chatBubbleAssistant",
1101
- "toolStepDetail": "CUIYUW_toolStepDetail",
1102
- "toolStepError": "CUIYUW_toolStepError",
1103
- "wsPreview": "CUIYUW_wsPreview",
1104
- "diffDel": "CUIYUW_diffDel",
1105
- "readerGroupArrow": "CUIYUW_readerGroupArrow",
1106
- "bookCardCoverFallback": "CUIYUW_bookCardCoverFallback",
1107
- "bookAdd": "CUIYUW_bookAdd",
1108
- "dropzoneActive": "CUIYUW_dropzoneActive",
1109
- "dropzoneIcon": "CUIYUW_dropzoneIcon",
1110
- "readerChapterTitle": "CUIYUW_readerChapterTitle",
1111
- "bookCardMetaRow": "CUIYUW_bookCardMetaRow",
1112
- "bookAddIcon": "CUIYUW_bookAddIcon",
1113
- "badgePending": "CUIYUW_badgePending",
1114
- "dashStageDone": "CUIYUW_dashStageDone",
1115
- "progressLineDone": "CUIYUW_progressLineDone",
1116
- "bookAddCard": "CUIYUW_bookAddCard",
1117
- "chapterMain": "CUIYUW_chapterMain",
1118
- "wsColumn": "CUIYUW_wsColumn",
1119
- "chapterActions": "CUIYUW_chapterActions",
1120
- "bookCardProgressFill": "CUIYUW_bookCardProgressFill"
905
+ "dashHeroTitle": "zE6uZW_dashHeroTitle",
906
+ "panelNavCollapsed": "zE6uZW_panelNavCollapsed",
907
+ "textarea": "zE6uZW_textarea",
908
+ "diffOld": "zE6uZW_diffOld",
909
+ "readerArticle": "zE6uZW_readerArticle",
910
+ "diffTagOld": "zE6uZW_diffTagOld",
911
+ "toolStepActive": "zE6uZW_toolStepActive",
912
+ "buttonSmall": "zE6uZW_buttonSmall",
913
+ "workflowDotDone": "zE6uZW_workflowDotDone",
914
+ "chapterMain": "zE6uZW_chapterMain",
915
+ "createBookIcon": "zE6uZW_createBookIcon",
916
+ "bookCard": "zE6uZW_bookCard",
917
+ "readerItem": "zE6uZW_readerItem",
918
+ "ideaCard": "zE6uZW_ideaCard",
919
+ "wsPageHeader": "zE6uZW_wsPageHeader",
920
+ "workflowBody": "zE6uZW_workflowBody",
921
+ "view": "zE6uZW_view",
922
+ "bookAddIcon": "zE6uZW_bookAddIcon",
923
+ "readerChapterTitle": "zE6uZW_readerChapterTitle",
924
+ "assistantResize": "zE6uZW_assistantResize",
925
+ "bookChipName": "zE6uZW_bookChipName",
926
+ "bookCardCoverTitle": "zE6uZW_bookCardCoverTitle",
927
+ "bookCreateCard": "zE6uZW_bookCreateCard",
928
+ "outlineReadonly": "zE6uZW_outlineReadonly",
929
+ "navTabLabel": "zE6uZW_navTabLabel",
930
+ "chatBubbleAssistant": "zE6uZW_chatBubbleAssistant",
931
+ "wsPreview": "zE6uZW_wsPreview",
932
+ "readerGroupCount": "zE6uZW_readerGroupCount",
933
+ "chapterFocusPulse": "zE6uZW_chapterFocusPulse",
934
+ "dashHeroActionTitle": "zE6uZW_dashHeroActionTitle",
935
+ "bookCreateOutline": "zE6uZW_bookCreateOutline",
936
+ "diffList": "zE6uZW_diffList",
937
+ "createBookCard": "zE6uZW_createBookCard",
938
+ "workflowList": "zE6uZW_workflowList",
939
+ "shelfGrid": "zE6uZW_shelfGrid",
940
+ "todoItem": "zE6uZW_todoItem",
941
+ "readerSeg": "zE6uZW_readerSeg",
942
+ "dashFacts": "zE6uZW_dashFacts",
943
+ "readerBody": "zE6uZW_readerBody",
944
+ "panelSubtitle": "zE6uZW_panelSubtitle",
945
+ "dashHeroEyebrow": "zE6uZW_dashHeroEyebrow",
946
+ "genreDesc": "zE6uZW_genreDesc",
947
+ "readerItemTitle": "zE6uZW_readerItemTitle",
948
+ "assistantFloat": "zE6uZW_assistantFloat",
949
+ "coverPlaceholder": "zE6uZW_coverPlaceholder",
950
+ "progressBar": "zE6uZW_progressBar",
951
+ "panelHeader": "zE6uZW_panelHeader",
952
+ "assetStatValue": "zE6uZW_assetStatValue",
953
+ "navGroupLabel": "zE6uZW_navGroupLabel",
954
+ "assetStat": "zE6uZW_assetStat",
955
+ "dashStageDot": "zE6uZW_dashStageDot",
956
+ "progress": "zE6uZW_progress",
957
+ "bookChip": "zE6uZW_bookChip",
958
+ "todoText": "zE6uZW_todoText",
959
+ "dropzoneActive": "zE6uZW_dropzoneActive",
960
+ "iconButton": "zE6uZW_iconButton",
961
+ "wsSelectedText": "zE6uZW_wsSelectedText",
962
+ "navSpacer": "zE6uZW_navSpacer",
963
+ "toolStep": "zE6uZW_toolStep",
964
+ "wsAppliedBanner": "zE6uZW_wsAppliedBanner",
965
+ "readerView": "zE6uZW_readerView",
966
+ "fadeIn": "zE6uZW_fadeIn",
967
+ "createBookTop": "zE6uZW_createBookTop",
968
+ "dashFact": "zE6uZW_dashFact",
969
+ "volumeGroup": "zE6uZW_volumeGroup",
970
+ "bookChipMeta": "zE6uZW_bookChipMeta",
971
+ "dashHeroSparkle": "zE6uZW_dashHeroSparkle",
972
+ "assistantStatus": "zE6uZW_assistantStatus",
973
+ "panelContent": "zE6uZW_panelContent",
974
+ "bookCreateForm": "zE6uZW_bookCreateForm",
975
+ "shelfToolbar": "zE6uZW_shelfToolbar",
976
+ "readerFoot": "zE6uZW_readerFoot",
977
+ "readerError": "zE6uZW_readerError",
978
+ "assistantFloatBody": "zE6uZW_assistantFloatBody",
979
+ "bookAddCard": "zE6uZW_bookAddCard",
980
+ "bigProgressBar": "zE6uZW_bigProgressBar",
981
+ "bookCardActive": "zE6uZW_bookCardActive",
982
+ "cardTitle": "zE6uZW_cardTitle",
983
+ "dashJourneyBar": "zE6uZW_dashJourneyBar",
984
+ "workflowDot": "zE6uZW_workflowDot",
985
+ "shelfEmpty": "zE6uZW_shelfEmpty",
986
+ "ideaCandidate": "zE6uZW_ideaCandidate",
987
+ "dashJourneyStages": "zE6uZW_dashJourneyStages",
988
+ "assistantFloatHeader": "zE6uZW_assistantFloatHeader",
989
+ "shelfHeader": "zE6uZW_shelfHeader",
990
+ "headerProgress": "zE6uZW_headerProgress",
991
+ "onlyChanges": "zE6uZW_onlyChanges",
992
+ "readerItemNo": "zE6uZW_readerItemNo",
993
+ "dashJourneyFill": "zE6uZW_dashJourneyFill",
994
+ "chatBubbleUser": "zE6uZW_chatBubbleUser",
995
+ "progressLineDone": "zE6uZW_progressLineDone",
996
+ "card": "zE6uZW_card",
997
+ "diffLegend": "zE6uZW_diffLegend",
998
+ "legendOld": "zE6uZW_legendOld",
999
+ "diffSameBody": "zE6uZW_diffSameBody",
1000
+ "diffColumn": "zE6uZW_diffColumn",
1001
+ "diffDel": "zE6uZW_diffDel",
1002
+ "workflowDotActive": "zE6uZW_workflowDotActive",
1003
+ "bookChipRemove": "zE6uZW_bookChipRemove",
1004
+ "wsEditor": "zE6uZW_wsEditor",
1005
+ "panelTitle": "zE6uZW_panelTitle",
1006
+ "bookCardTitleRow": "zE6uZW_bookCardTitleRow",
1007
+ "workflowLabel": "zE6uZW_workflowLabel",
1008
+ "navGroup": "zE6uZW_navGroup",
1009
+ "entry": "zE6uZW_entry",
1010
+ "navTabBadgeWarn": "zE6uZW_navTabBadgeWarn",
1011
+ "diffAdd": "zE6uZW_diffAdd",
1012
+ "progressLineLive": "zE6uZW_progressLineLive",
1013
+ "assetStatLabel": "zE6uZW_assetStatLabel",
1014
+ "reviewBox": "zE6uZW_reviewBox",
1015
+ "badgeWritten": "zE6uZW_badgeWritten",
1016
+ "readerChapterMeta": "zE6uZW_readerChapterMeta",
1017
+ "badgeError": "zE6uZW_badgeError",
1018
+ "volumeGroupToggle": "zE6uZW_volumeGroupToggle",
1019
+ "badgeGenerating": "zE6uZW_badgeGenerating",
1020
+ "shelfEmptyIcon": "zE6uZW_shelfEmptyIcon",
1021
+ "todoWarning": "zE6uZW_todoWarning",
1022
+ "readerItemActive": "zE6uZW_readerItemActive",
1023
+ "wsColumns": "zE6uZW_wsColumns",
1024
+ "navTabBadgeDone": "zE6uZW_navTabBadgeDone",
1025
+ "dashJourney": "zE6uZW_dashJourney",
1026
+ "workflowHint": "zE6uZW_workflowHint",
1027
+ "todoInfo": "zE6uZW_todoInfo",
1028
+ "ideaToggle": "zE6uZW_ideaToggle",
1029
+ "navTabBadgeDanger": "zE6uZW_navTabBadgeDanger",
1030
+ "tab": "zE6uZW_tab",
1031
+ "wsPage": "zE6uZW_wsPage",
1032
+ "badgeRejected": "zE6uZW_badgeRejected",
1033
+ "progressLine": "zE6uZW_progressLine",
1034
+ "bookCardActions": "zE6uZW_bookCardActions",
1035
+ "navTabBadgeLive": "zE6uZW_navTabBadgeLive",
1036
+ "row": "zE6uZW_row",
1037
+ "entryIcon": "zE6uZW_entryIcon",
1038
+ "readerLoading": "zE6uZW_readerLoading",
1039
+ "entryLabel": "zE6uZW_entryLabel",
1040
+ "readerSegBtn": "zE6uZW_readerSegBtn",
1041
+ "navBadgePulse": "zE6uZW_navBadgePulse",
1042
+ "progressLineError": "zE6uZW_progressLineError",
1043
+ "wsColumn": "zE6uZW_wsColumn",
1044
+ "workflowRow": "zE6uZW_workflowRow",
1045
+ "bookshelfList": "zE6uZW_bookshelfList",
1046
+ "chapterList": "zE6uZW_chapterList",
1047
+ "progressBarFill": "zE6uZW_progressBarFill",
1048
+ "chapterBeats": "zE6uZW_chapterBeats",
1049
+ "buttonPrimary": "zE6uZW_buttonPrimary",
1050
+ "bookAdd": "zE6uZW_bookAdd",
1051
+ "bookCardName": "zE6uZW_bookCardName",
1052
+ "bookCardProgressBar": "zE6uZW_bookCardProgressBar",
1053
+ "dropzoneIcon": "zE6uZW_dropzoneIcon",
1054
+ "readerMain": "zE6uZW_readerMain",
1055
+ "badge": "zE6uZW_badge",
1056
+ "chapterNum": "zE6uZW_chapterNum",
1057
+ "spaceBetween": "zE6uZW_spaceBetween",
1058
+ "bookCardBlurb": "zE6uZW_bookCardBlurb",
1059
+ "buttonDanger": "zE6uZW_buttonDanger",
1060
+ "bookCardBody": "zE6uZW_bookCardBody",
1061
+ "readerGroup": "zE6uZW_readerGroup",
1062
+ "navTabIcon": "zE6uZW_navTabIcon",
1063
+ "chapterPreview": "zE6uZW_chapterPreview",
1064
+ "dashStageDone": "zE6uZW_dashStageDone",
1065
+ "bookshelfLabel": "zE6uZW_bookshelfLabel",
1066
+ "readerSidebar": "zE6uZW_readerSidebar",
1067
+ "wsPreviewText": "zE6uZW_wsPreviewText",
1068
+ "diffNew": "zE6uZW_diffNew",
1069
+ "bookCardProgressFill": "zE6uZW_bookCardProgressFill",
1070
+ "readerGroupArrow": "zE6uZW_readerGroupArrow",
1071
+ "createBookView": "zE6uZW_createBookView",
1072
+ "readerTitle": "zE6uZW_readerTitle",
1073
+ "chapter": "zE6uZW_chapter",
1074
+ "panel": "zE6uZW_panel",
1075
+ "wsSelected": "zE6uZW_wsSelected",
1076
+ "dashGrid": "zE6uZW_dashGrid",
1077
+ "dashHeroBook": "zE6uZW_dashHeroBook",
1078
+ "readerPara": "zE6uZW_readerPara",
1079
+ "navTab": "zE6uZW_navTab",
1080
+ "chatScroll": "zE6uZW_chatScroll",
1081
+ "toolSteps": "zE6uZW_toolSteps",
1082
+ "liveText": "zE6uZW_liveText",
1083
+ "assetStatDetail": "zE6uZW_assetStatDetail",
1084
+ "navAboutRow": "zE6uZW_navAboutRow",
1085
+ "coverPreview": "zE6uZW_coverPreview",
1086
+ "bookChipActive": "zE6uZW_bookChipActive",
1087
+ "badgeDone": "zE6uZW_badgeDone",
1088
+ "shelfTitleRow": "zE6uZW_shelfTitleRow",
1089
+ "bookCardCoverFallback": "zE6uZW_bookCardCoverFallback",
1090
+ "bookCardMetaRow": "zE6uZW_bookCardMetaRow",
1091
+ "navAbout": "zE6uZW_navAbout",
1092
+ "tabBar": "zE6uZW_tabBar",
1093
+ "dropzone": "zE6uZW_dropzone",
1094
+ "meta": "zE6uZW_meta",
1095
+ "navGroupSep": "zE6uZW_navGroupSep",
1096
+ "shelfSearch": "zE6uZW_shelfSearch",
1097
+ "toolStepName": "zE6uZW_toolStepName",
1098
+ "toolStepDetail": "zE6uZW_toolStepDetail",
1099
+ "chatRole": "zE6uZW_chatRole",
1100
+ "fieldLabel": "zE6uZW_fieldLabel",
1101
+ "readerText": "zE6uZW_readerText",
1102
+ "button": "zE6uZW_button",
1103
+ "chapterFocus": "zE6uZW_chapterFocus",
1104
+ "navTabBadge": "zE6uZW_navTabBadge",
1105
+ "assetGrid": "zE6uZW_assetGrid",
1106
+ "todoDanger": "zE6uZW_todoDanger",
1107
+ "toolLive": "zE6uZW_toolLive",
1108
+ "dashStageCurrent": "zE6uZW_dashStageCurrent",
1109
+ "pulse": "zE6uZW_pulse",
1110
+ "badgePending": "zE6uZW_badgePending",
1111
+ "readerItemBadge": "zE6uZW_readerItemBadge",
1112
+ "chapterActions": "zE6uZW_chapterActions",
1113
+ "volumeGroupHeader": "zE6uZW_volumeGroupHeader",
1114
+ "dashHero": "zE6uZW_dashHero",
1115
+ "assistantStatusBusy": "zE6uZW_assistantStatusBusy",
1116
+ "toolStepStatus": "zE6uZW_toolStepStatus",
1117
+ "busyRow": "zE6uZW_busyRow",
1118
+ "headerProgressDot": "zE6uZW_headerProgressDot",
1119
+ "dashHeroAction": "zE6uZW_dashHeroAction",
1120
+ "legendNew": "zE6uZW_legendNew",
1121
+ "diffChange": "zE6uZW_diffChange",
1122
+ "dashHeroArrow": "zE6uZW_dashHeroArrow",
1123
+ "shelfFilters": "zE6uZW_shelfFilters",
1124
+ "bookCardCover": "zE6uZW_bookCardCover",
1125
+ "diffTagNew": "zE6uZW_diffTagNew",
1126
+ "panelNav": "zE6uZW_panelNav",
1127
+ "dashStage": "zE6uZW_dashStage",
1128
+ "bookshelf": "zE6uZW_bookshelf",
1129
+ "toolStepIcon": "zE6uZW_toolStepIcon",
1130
+ "bigProgressBarFill": "zE6uZW_bigProgressBarFill",
1131
+ "readerSegActive": "zE6uZW_readerSegActive",
1132
+ "readerHeader": "zE6uZW_readerHeader",
1133
+ "diffSame": "zE6uZW_diffSame",
1134
+ "input": "zE6uZW_input",
1135
+ "diffText": "zE6uZW_diffText",
1136
+ "fileList": "zE6uZW_fileList",
1137
+ "navAboutUpdate": "zE6uZW_navAboutUpdate",
1138
+ "dashHeroActionBody": "zE6uZW_dashHeroActionBody",
1139
+ "readerGroupTitle": "zE6uZW_readerGroupTitle",
1140
+ "shelfView": "zE6uZW_shelfView",
1141
+ "chapterTitle": "zE6uZW_chapterTitle",
1142
+ "toolStepError": "zE6uZW_toolStepError",
1143
+ "createBookTitle": "zE6uZW_createBookTitle",
1144
+ "panelBody": "zE6uZW_panelBody",
1145
+ "field": "zE6uZW_field",
1146
+ "shelfEmptyTitle": "zE6uZW_shelfEmptyTitle"
1121
1147
  };
1122
1148
  //#endregion
1123
1149
  //#region src/client/panel/AssistantTab.tsx
@@ -3088,6 +3114,384 @@ window.__ModuleLoader__.load({
3088
3114
  });
3089
3115
  }
3090
3116
  //#endregion
3117
+ //#region src/client/panel/RunPanel.tsx
3118
+ /**
3119
+ * 生产单面板:区间批量生产(计划补足 → 逐章生成 → 被拒分级处理 → 断点续跑)。
3120
+ * 与「工作进度」悬浮窗不同:这是标准流水线设备,一键下单、实时进度、日志可查。
3121
+ */
3122
+ function RunPanel({ api, totalChapters }) {
3123
+ const [run, setRun] = (0, react.useState)(null);
3124
+ const [startNo, setStartNo] = (0, react.useState)(1);
3125
+ const [endNo, setEndNo] = (0, react.useState)(0);
3126
+ const [count, setCount] = (0, react.useState)(30);
3127
+ const [mode, setMode] = (0, react.useState)("count");
3128
+ const [busy, setBusy] = (0, react.useState)(false);
3129
+ const [err, setErr] = (0, react.useState)("");
3130
+ const logRef = (0, react.useRef)(null);
3131
+ (0, react.useEffect)(() => {
3132
+ setStartNo(totalChapters + 1);
3133
+ setEndNo(totalChapters + 30);
3134
+ }, [totalChapters]);
3135
+ const poll = (0, react.useCallback)(async () => {
3136
+ try {
3137
+ const s = await api.runStatus();
3138
+ setRun(s);
3139
+ } catch {}
3140
+ }, [api]);
3141
+ (0, react.useEffect)(() => {
3142
+ poll();
3143
+ const timer = window.setInterval(() => {
3144
+ poll();
3145
+ }, 5e3);
3146
+ return () => window.clearInterval(timer);
3147
+ }, [poll]);
3148
+ (0, react.useEffect)(() => {
3149
+ logRef.current?.scrollTo({ top: logRef.current.scrollHeight });
3150
+ }, [run?.log.length]);
3151
+ mode === "count" && startNo + count - 1;
3152
+ const handleStart = async () => {
3153
+ setBusy(true);
3154
+ setErr("");
3155
+ try {
3156
+ const req = mode === "count" ? {
3157
+ startNo,
3158
+ count
3159
+ } : {
3160
+ startNo,
3161
+ endNo
3162
+ };
3163
+ const s = await api.runStart(req);
3164
+ setRun(s);
3165
+ } catch (e) {
3166
+ setErr(e.message);
3167
+ } finally {
3168
+ setBusy(false);
3169
+ }
3170
+ };
3171
+ const handleControl = async (action) => {
3172
+ setBusy(true);
3173
+ setErr("");
3174
+ try {
3175
+ const s = await api.runControl(action);
3176
+ if (s !== null) setRun(s);
3177
+ } catch (e) {
3178
+ setErr(e.message);
3179
+ } finally {
3180
+ setBusy(false);
3181
+ }
3182
+ };
3183
+ const statusLabel = (0, react.useMemo)(() => {
3184
+ if (run === null) return "未启动";
3185
+ return {
3186
+ running: "🏭 生产中",
3187
+ paused: "⏸ 已暂停",
3188
+ done: "✅ 已完成",
3189
+ stopped: "⏹ 已停止",
3190
+ error: "❌ 异常"
3191
+ }[run.status] ?? run.status;
3192
+ }, [run]);
3193
+ const ratio = run !== null && run.endNo > run.startNo ? Math.min(Math.max((run.currentNo - run.startNo) / (run.endNo - run.startNo), 0), 1) : 0;
3194
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3195
+ className: panel_module_css_default.card,
3196
+ style: {
3197
+ flex: 1,
3198
+ minHeight: 0,
3199
+ display: "flex",
3200
+ flexDirection: "column",
3201
+ gap: 10
3202
+ },
3203
+ children: [
3204
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3205
+ className: panel_module_css_default.row,
3206
+ style: {
3207
+ justifyContent: "space-between",
3208
+ flexWrap: "wrap"
3209
+ },
3210
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
3211
+ className: panel_module_css_default.cardTitle,
3212
+ children: "🏭 生产单(标准流水线:计划 → 生成 → 审稿 → 分级处理)"
3213
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
3214
+ className: `${panel_module_css_default.badge} ${run?.status === "running" ? panel_module_css_default.badgeWritten : run?.status === "done" ? panel_module_css_default.badgeDone : panel_module_css_default.badgePending}`,
3215
+ children: statusLabel
3216
+ })]
3217
+ }),
3218
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3219
+ className: panel_module_css_default.meta,
3220
+ children: "一键下生产单:自动补计划 → 逐章生成(完整质量门:生成→摘要+事实→审稿→作者复盘)→ 被拒章分级处理(无 high 豁免 / 有 high 按意见修订+验证 / 两轮不过转待人工)。中断后可从断点继续。"
3221
+ }),
3222
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3223
+ className: panel_module_css_default.row,
3224
+ style: {
3225
+ flexWrap: "wrap",
3226
+ gap: 8,
3227
+ alignItems: "flex-end"
3228
+ },
3229
+ children: [
3230
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3231
+ style: {
3232
+ display: "flex",
3233
+ gap: 4,
3234
+ alignItems: "center"
3235
+ },
3236
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3237
+ type: "button",
3238
+ className: `${panel_module_css_default.button} ${panel_module_css_default.buttonSmall} ${mode === "count" ? panel_module_css_default.buttonPrimary : ""}`,
3239
+ onClick: () => {
3240
+ setMode("count");
3241
+ },
3242
+ title: "从当前末章 +1 起,新增 N 章",
3243
+ children: "新增 N 章"
3244
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3245
+ type: "button",
3246
+ className: `${panel_module_css_default.button} ${panel_module_css_default.buttonSmall} ${mode === "range" ? panel_module_css_default.buttonPrimary : ""}`,
3247
+ onClick: () => {
3248
+ setMode("range");
3249
+ },
3250
+ title: "指定起止章号区间",
3251
+ children: "指定区间"
3252
+ })]
3253
+ }),
3254
+ mode === "count" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3255
+ className: panel_module_css_default.field,
3256
+ style: {
3257
+ flex: "none",
3258
+ minWidth: 90
3259
+ },
3260
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
3261
+ className: panel_module_css_default.fieldLabel,
3262
+ children: "起始章"
3263
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
3264
+ className: panel_module_css_default.input,
3265
+ type: "number",
3266
+ min: 1,
3267
+ value: startNo,
3268
+ onChange: (e) => {
3269
+ setStartNo(Math.max(1, Number(e.target.value) || 1));
3270
+ }
3271
+ })]
3272
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3273
+ className: panel_module_css_default.field,
3274
+ style: {
3275
+ flex: "none",
3276
+ minWidth: 90
3277
+ },
3278
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
3279
+ className: panel_module_css_default.fieldLabel,
3280
+ children: "新增章数"
3281
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
3282
+ className: panel_module_css_default.input,
3283
+ type: "number",
3284
+ min: 1,
3285
+ max: 200,
3286
+ value: count,
3287
+ onChange: (e) => {
3288
+ setCount(Math.max(1, Math.min(200, Number(e.target.value) || 1)));
3289
+ }
3290
+ })]
3291
+ })] }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3292
+ className: panel_module_css_default.field,
3293
+ style: {
3294
+ flex: "none",
3295
+ minWidth: 90
3296
+ },
3297
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
3298
+ className: panel_module_css_default.fieldLabel,
3299
+ children: "起始章"
3300
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
3301
+ className: panel_module_css_default.input,
3302
+ type: "number",
3303
+ min: 1,
3304
+ value: startNo,
3305
+ onChange: (e) => {
3306
+ setStartNo(Math.max(1, Number(e.target.value) || 1));
3307
+ }
3308
+ })]
3309
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3310
+ className: panel_module_css_default.field,
3311
+ style: {
3312
+ flex: "none",
3313
+ minWidth: 90
3314
+ },
3315
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
3316
+ className: panel_module_css_default.fieldLabel,
3317
+ children: "结束章"
3318
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
3319
+ className: panel_module_css_default.input,
3320
+ type: "number",
3321
+ min: 1,
3322
+ value: endNo,
3323
+ onChange: (e) => {
3324
+ setEndNo(Math.max(1, Number(e.target.value) || 1));
3325
+ }
3326
+ })]
3327
+ })] }),
3328
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3329
+ type: "button",
3330
+ className: `${panel_module_css_default.button} ${panel_module_css_default.buttonPrimary}`,
3331
+ disabled: busy || run?.status === "running",
3332
+ onClick: () => {
3333
+ handleStart();
3334
+ },
3335
+ title: "启动生产单",
3336
+ children: run?.status === "running" ? "生产中…" : run?.status === "paused" ? "▶ 继续" : "▶ 下单生产"
3337
+ }),
3338
+ run !== null && run.status !== "done" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3339
+ type: "button",
3340
+ className: `${panel_module_css_default.button} ${panel_module_css_default.buttonSmall}`,
3341
+ disabled: busy || run.status !== "running",
3342
+ onClick: () => {
3343
+ handleControl("pause");
3344
+ },
3345
+ children: "⏸ 暂停"
3346
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3347
+ type: "button",
3348
+ className: `${panel_module_css_default.button} ${panel_module_css_default.buttonSmall}`,
3349
+ disabled: busy || run.status === "stopped",
3350
+ onClick: () => {
3351
+ handleControl("stop");
3352
+ },
3353
+ children: "⏹ 停止"
3354
+ })] }),
3355
+ run !== null && run.status === "paused" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3356
+ type: "button",
3357
+ className: `${panel_module_css_default.button} ${panel_module_css_default.buttonSmall} ${panel_module_css_default.buttonPrimary}`,
3358
+ disabled: busy,
3359
+ onClick: () => {
3360
+ handleControl("resume");
3361
+ },
3362
+ children: "▶ 继续"
3363
+ })
3364
+ ]
3365
+ }),
3366
+ err !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3367
+ style: {
3368
+ color: "var(--nf-error)",
3369
+ fontSize: 12
3370
+ },
3371
+ children: err
3372
+ }),
3373
+ run !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3374
+ style: {
3375
+ display: "flex",
3376
+ flexDirection: "column",
3377
+ gap: 6
3378
+ },
3379
+ children: [
3380
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3381
+ className: panel_module_css_default.row,
3382
+ style: {
3383
+ flexWrap: "wrap",
3384
+ gap: 8
3385
+ },
3386
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
3387
+ className: panel_module_css_default.meta,
3388
+ children: [
3389
+ "范围:第 ",
3390
+ run.startNo,
3391
+ " - ",
3392
+ run.endNo,
3393
+ " 章 · 当前:第 ",
3394
+ run.currentNo,
3395
+ " 章"
3396
+ ]
3397
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
3398
+ className: panel_module_css_default.meta,
3399
+ children: [
3400
+ "新生成 ",
3401
+ run.stats.generated,
3402
+ " · 修订通过 ",
3403
+ run.stats.revised,
3404
+ " · 豁免 ",
3405
+ run.stats.exempted,
3406
+ " · 重生成 ",
3407
+ run.stats.regenerated,
3408
+ " · 失败 ",
3409
+ run.stats.error
3410
+ ]
3411
+ })]
3412
+ }),
3413
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3414
+ className: panel_module_css_default.bigProgressBar,
3415
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3416
+ className: panel_module_css_default.bigProgressBarFill,
3417
+ style: { width: `${Math.round(ratio * 100)}%` }
3418
+ })
3419
+ }),
3420
+ run.pendingManual.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3421
+ className: panel_module_css_default.meta,
3422
+ style: { color: "var(--nf-warn)" },
3423
+ children: [
3424
+ "⚠️ 待人工:第 ",
3425
+ run.pendingManual.join("、"),
3426
+ " 章(两轮修订仍不过,保留草稿,可在章节列表处理)"
3427
+ ]
3428
+ }),
3429
+ run.status === "done" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3430
+ className: panel_module_css_default.meta,
3431
+ style: { color: "var(--nf-success)" },
3432
+ children: [
3433
+ "✅ 生产单完成:",
3434
+ run.startNo,
3435
+ "-",
3436
+ run.endNo,
3437
+ " 章处理完毕,待人工 ",
3438
+ run.pendingManual.length,
3439
+ " 章。"
3440
+ ]
3441
+ }),
3442
+ run.error !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3443
+ className: panel_module_css_default.meta,
3444
+ style: { color: "var(--nf-error)" },
3445
+ children: ["异常:", run.error]
3446
+ })
3447
+ ]
3448
+ }),
3449
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3450
+ className: panel_module_css_default.meta,
3451
+ style: { fontWeight: 600 },
3452
+ children: [
3453
+ "运行日志(",
3454
+ run?.log.length ?? 0,
3455
+ ")"
3456
+ ]
3457
+ }),
3458
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3459
+ ref: logRef,
3460
+ style: {
3461
+ flex: 1,
3462
+ minHeight: 120,
3463
+ overflowY: "auto",
3464
+ border: "1px solid var(--nf-border)",
3465
+ borderRadius: 10,
3466
+ background: "var(--nf-bg-inset)",
3467
+ padding: 8,
3468
+ display: "flex",
3469
+ flexDirection: "column",
3470
+ gap: 2,
3471
+ fontSize: 12
3472
+ },
3473
+ children: run === null || run.log.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
3474
+ className: panel_module_css_default.meta,
3475
+ children: "尚无日志——下单后这里会实时显示每章进度。"
3476
+ }) : run.log.map((l, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3477
+ style: {
3478
+ display: "flex",
3479
+ gap: 6,
3480
+ opacity: .85
3481
+ },
3482
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
3483
+ style: {
3484
+ color: "var(--nf-text-3)",
3485
+ flex: "none"
3486
+ },
3487
+ children: new Date(l.at).toLocaleTimeString("zh-CN", { hour12: false })
3488
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: l.text })]
3489
+ }, i))
3490
+ })
3491
+ ]
3492
+ });
3493
+ }
3494
+ //#endregion
3091
3495
  //#region node_modules/.pnpm/fflate@0.8.3/node_modules/fflate/esm/browser.js
3092
3496
  var u8 = Uint8Array;
3093
3497
  var u16 = Uint16Array;
@@ -3668,8 +4072,8 @@ window.__ModuleLoader__.load({
3668
4072
  };
3669
4073
  /** 生成/换批:只补未暂留的空槽;exclude 传已暂留方案的卖点方向。 */
3670
4074
  const handleSuggest = async () => {
3671
- if (idea.trim().length < 50) {
3672
- setError("想法太短(<50 字):多写一两句——主角是谁、什么世界、想要什么爽点");
4075
+ if (idea.trim().length < 10) {
4076
+ setError("想法太短(<10 字):至少写一句完整想法,如「男主穿越修仙界靠做菜无敌」");
3673
4077
  return;
3674
4078
  }
3675
4079
  setSuggesting(true);
@@ -3911,7 +4315,7 @@ window.__ModuleLoader__.load({
3911
4315
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3912
4316
  type: "button",
3913
4317
  className: `${panel_module_css_default.button} ${panel_module_css_default.buttonSmall} ${panel_module_css_default.buttonPrimary}`,
3914
- disabled: suggesting || idea.trim().length < 50,
4318
+ disabled: suggesting || idea.trim().length < 10,
3915
4319
  onClick: () => {
3916
4320
  handleSuggest();
3917
4321
  },
@@ -5022,6 +5426,11 @@ window.__ModuleLoader__.load({
5022
5426
  id: "plotlines",
5023
5427
  label: tt("tab.plotlines"),
5024
5428
  icon: "🧵"
5429
+ },
5430
+ {
5431
+ id: "run",
5432
+ label: "生产单",
5433
+ icon: "🏭"
5025
5434
  }
5026
5435
  ]
5027
5436
  },
@@ -5119,7 +5528,7 @@ window.__ModuleLoader__.load({
5119
5528
  label: tt("tab.settings"),
5120
5529
  icon: "⚙️"
5121
5530
  };
5122
- const PLUGIN_VERSION = "1.1.8";
5531
+ const PLUGIN_VERSION = "1.1.9";
5123
5532
  /** GitHub 仓库地址(关于区块点击跳转)。 */
5124
5533
  const REPO_URL = "https://github.com/watersxya/dsh-novel-forge";
5125
5534
  /** Whether any chapter is being generated right now. */
@@ -10822,6 +11231,10 @@ window.__ModuleLoader__.load({
10822
11231
  })
10823
11232
  ]
10824
11233
  }),
11234
+ activeTab === "run" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RunPanel, {
11235
+ api,
11236
+ totalChapters: chapters.length
11237
+ }),
10825
11238
  activeTab === "breakdown" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10826
11239
  className: panel_module_css_default.card,
10827
11240
  children: [