@musnows/scriverse 0.3.11 → 0.4.1

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.
Files changed (564) hide show
  1. package/README.en.md +3 -1
  2. package/README.md +5 -1
  3. package/dist/ai.js +292 -19
  4. package/dist/ai.js.map +1 -1
  5. package/dist/app.js +46 -4
  6. package/dist/app.js.map +1 -1
  7. package/dist/database.js +64 -0
  8. package/dist/database.js.map +1 -1
  9. package/dist/public/app.js +1088 -274
  10. package/dist/public/character-markdown.js +12 -0
  11. package/dist/public/character-version.js +3 -1
  12. package/dist/public/index.html +76 -29
  13. package/dist/public/keyboard-shortcuts.d.ts +9 -0
  14. package/dist/public/keyboard-shortcuts.js +4 -0
  15. package/dist/public/model-config.d.ts +1 -0
  16. package/dist/public/model-config.js +12 -3
  17. package/dist/public/module-layout.d.ts +17 -0
  18. package/dist/public/module-layout.js +28 -0
  19. package/dist/public/page-route.js +1 -1
  20. package/dist/public/relationship-graph.js +62 -2
  21. package/dist/public/styles.css +330 -98
  22. package/dist/public/vendor/vditor/dist/css/content-theme/ant-design.css +210 -0
  23. package/dist/public/vendor/vditor/dist/css/content-theme/dark.css +123 -0
  24. package/dist/public/vendor/vditor/dist/css/content-theme/light.css +101 -0
  25. package/dist/public/vendor/vditor/dist/css/content-theme/wechat.css +94 -0
  26. package/dist/public/vendor/vditor/dist/images/emoji/b3log.png +0 -0
  27. package/dist/public/vendor/vditor/dist/images/emoji/chainbook.png +0 -0
  28. package/dist/public/vendor/vditor/dist/images/emoji/doge.png +0 -0
  29. package/dist/public/vendor/vditor/dist/images/emoji/hacpai.png +0 -0
  30. package/dist/public/vendor/vditor/dist/images/emoji/huaji.gif +0 -0
  31. package/dist/public/vendor/vditor/dist/images/emoji/latke.png +0 -0
  32. package/dist/public/vendor/vditor/dist/images/emoji/liandi.png +0 -0
  33. package/dist/public/vendor/vditor/dist/images/emoji/lute.png +0 -0
  34. package/dist/public/vendor/vditor/dist/images/emoji/octocat.png +0 -0
  35. package/dist/public/vendor/vditor/dist/images/emoji/pipe.png +0 -0
  36. package/dist/public/vendor/vditor/dist/images/emoji/siyuan.png +0 -0
  37. package/dist/public/vendor/vditor/dist/images/emoji/solo.png +0 -0
  38. package/dist/public/vendor/vditor/dist/images/emoji/sym.png +0 -0
  39. package/dist/public/vendor/vditor/dist/images/emoji/trollface.png +0 -0
  40. package/dist/public/vendor/vditor/dist/images/emoji/vditor.png +0 -0
  41. package/dist/public/vendor/vditor/dist/images/emoji/wide.png +0 -0
  42. package/dist/public/vendor/vditor/dist/images/emoji/wulian.png +0 -0
  43. package/dist/public/vendor/vditor/dist/images/img-loading.svg +1 -0
  44. package/dist/public/vendor/vditor/dist/images/logo.png +0 -0
  45. package/dist/public/vendor/vditor/dist/index.css +1823 -0
  46. package/dist/public/vendor/vditor/dist/index.d.ts +82 -0
  47. package/dist/public/vendor/vditor/dist/index.js +15995 -0
  48. package/dist/public/vendor/vditor/dist/index.min.js +1 -0
  49. package/dist/public/vendor/vditor/dist/js/abcjs/abcjs_basic.min.js +3 -0
  50. package/dist/public/vendor/vditor/dist/js/echarts/echarts.min.js +45 -0
  51. package/dist/public/vendor/vditor/dist/js/flowchart.js/flowchart.min.js +8 -0
  52. package/dist/public/vendor/vditor/dist/js/graphviz/full.render.js +90 -0
  53. package/dist/public/vendor/vditor/dist/js/graphviz/viz.js +333 -0
  54. package/dist/public/vendor/vditor/dist/js/highlight.js/LICENSE +29 -0
  55. package/dist/public/vendor/vditor/dist/js/highlight.js/highlight.min.js +3835 -0
  56. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/a11y-dark.min.css +7 -0
  57. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/a11y-light.min.css +7 -0
  58. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/agate.min.css +20 -0
  59. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/an-old-hope.min.css +9 -0
  60. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/androidstudio.min.css +1 -0
  61. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/ant-design.min.css +84 -0
  62. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/arduino-light.min.css +1 -0
  63. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/arta.min.css +1 -0
  64. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/ascetic.min.css +1 -0
  65. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/atom-one-dark-reasonable.min.css +1 -0
  66. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/atom-one-dark.min.css +1 -0
  67. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/atom-one-light.min.css +1 -0
  68. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/3024.min.css +7 -0
  69. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/apathy.min.css +7 -0
  70. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/apprentice.min.css +7 -0
  71. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ashes.min.css +7 -0
  72. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-cave-light.min.css +7 -0
  73. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-cave.min.css +7 -0
  74. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-dune-light.min.css +7 -0
  75. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-dune.min.css +7 -0
  76. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-estuary-light.min.css +7 -0
  77. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-estuary.min.css +7 -0
  78. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-forest-light.min.css +7 -0
  79. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-forest.min.css +7 -0
  80. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-heath-light.min.css +7 -0
  81. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-heath.min.css +7 -0
  82. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-lakeside-light.min.css +7 -0
  83. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-lakeside.min.css +7 -0
  84. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-plateau-light.min.css +7 -0
  85. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-plateau.min.css +7 -0
  86. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-savanna-light.min.css +7 -0
  87. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-savanna.min.css +7 -0
  88. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-seaside-light.min.css +7 -0
  89. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-seaside.min.css +7 -0
  90. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-sulphurpool-light.min.css +7 -0
  91. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-sulphurpool.min.css +7 -0
  92. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atlas.min.css +7 -0
  93. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/bespin.min.css +7 -0
  94. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-bathory.min.css +7 -0
  95. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-burzum.min.css +7 -0
  96. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-dark-funeral.min.css +7 -0
  97. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-gorgoroth.min.css +7 -0
  98. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-immortal.min.css +7 -0
  99. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-khold.min.css +7 -0
  100. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-marduk.min.css +7 -0
  101. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-mayhem.min.css +7 -0
  102. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-nile.min.css +7 -0
  103. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-venom.min.css +7 -0
  104. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal.min.css +7 -0
  105. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/brewer.min.css +7 -0
  106. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/bright.min.css +7 -0
  107. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/brogrammer.min.css +7 -0
  108. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/brush-trees-dark.min.css +7 -0
  109. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/brush-trees.min.css +7 -0
  110. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/chalk.min.css +7 -0
  111. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/circus.min.css +7 -0
  112. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/classic-dark.min.css +7 -0
  113. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/classic-light.min.css +7 -0
  114. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/codeschool.min.css +7 -0
  115. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/colors.min.css +7 -0
  116. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/cupcake.min.css +7 -0
  117. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/cupertino.min.css +7 -0
  118. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/danqing.min.css +7 -0
  119. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/darcula.min.css +7 -0
  120. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/dark-violet.min.css +7 -0
  121. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/darkmoss.min.css +7 -0
  122. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/darktooth.min.css +7 -0
  123. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/decaf.min.css +7 -0
  124. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/default-dark.min.css +7 -0
  125. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/default-light.min.css +7 -0
  126. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/dirtysea.min.css +7 -0
  127. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/dracula.min.css +7 -0
  128. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/edge-dark.min.css +7 -0
  129. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/edge-light.min.css +7 -0
  130. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/eighties.min.css +7 -0
  131. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/embers.min.css +7 -0
  132. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/equilibrium-dark.min.css +7 -0
  133. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/equilibrium-gray-dark.min.css +7 -0
  134. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/equilibrium-gray-light.min.css +7 -0
  135. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/equilibrium-light.min.css +7 -0
  136. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/espresso.min.css +7 -0
  137. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/eva-dim.min.css +7 -0
  138. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/eva.min.css +7 -0
  139. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/flat.min.css +7 -0
  140. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/framer.min.css +7 -0
  141. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/fruit-soda.min.css +7 -0
  142. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gigavolt.min.css +7 -0
  143. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/github.min.css +7 -0
  144. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/google-dark.min.css +7 -0
  145. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/google-light.min.css +7 -0
  146. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/grayscale-dark.min.css +7 -0
  147. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/grayscale-light.min.css +7 -0
  148. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/green-screen.min.css +7 -0
  149. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-dark-hard.min.css +7 -0
  150. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-dark-medium.min.css +7 -0
  151. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-dark-pale.min.css +7 -0
  152. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-dark-soft.min.css +7 -0
  153. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-light-hard.min.css +7 -0
  154. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-light-medium.min.css +7 -0
  155. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-light-soft.min.css +7 -0
  156. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/hardcore.min.css +7 -0
  157. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/harmonic16-dark.min.css +7 -0
  158. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/harmonic16-light.min.css +7 -0
  159. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/heetch-dark.min.css +7 -0
  160. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/heetch-light.min.css +7 -0
  161. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/helios.min.css +7 -0
  162. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/hopscotch.min.css +7 -0
  163. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/horizon-dark.min.css +7 -0
  164. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/horizon-light.min.css +7 -0
  165. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/humanoid-dark.min.css +7 -0
  166. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/humanoid-light.min.css +7 -0
  167. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ia-dark.min.css +7 -0
  168. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ia-light.min.css +7 -0
  169. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/icy-dark.min.css +7 -0
  170. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ir-black.min.css +7 -0
  171. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/isotope.min.css +7 -0
  172. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/kimber.min.css +7 -0
  173. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/london-tube.min.css +7 -0
  174. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/macintosh.min.css +7 -0
  175. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/marrakesh.min.css +7 -0
  176. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/materia.min.css +7 -0
  177. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material-darker.min.css +7 -0
  178. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material-lighter.min.css +7 -0
  179. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material-palenight.min.css +7 -0
  180. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material-vivid.min.css +7 -0
  181. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material.min.css +7 -0
  182. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/mellow-purple.min.css +7 -0
  183. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/mexico-light.min.css +7 -0
  184. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/mocha.min.css +7 -0
  185. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/monokai.min.css +7 -0
  186. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/nebula.min.css +7 -0
  187. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/nord.min.css +7 -0
  188. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/nova.min.css +7 -0
  189. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ocean.min.css +7 -0
  190. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/oceanicnext.min.css +7 -0
  191. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/one-light.min.css +7 -0
  192. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/onedark.min.css +7 -0
  193. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/outrun-dark.min.css +7 -0
  194. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/papercolor-dark.min.css +7 -0
  195. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/papercolor-light.min.css +7 -0
  196. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/paraiso.min.css +7 -0
  197. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/pasque.min.css +7 -0
  198. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/phd.min.css +7 -0
  199. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/pico.min.css +7 -0
  200. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/pop.min.css +7 -0
  201. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/porple.min.css +7 -0
  202. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/qualia.min.css +7 -0
  203. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/railscasts.min.css +7 -0
  204. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/rebecca.min.css +7 -0
  205. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ros-pine-dawn.min.css +7 -0
  206. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ros-pine-moon.min.css +7 -0
  207. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ros-pine.min.css +7 -0
  208. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/sagelight.min.css +7 -0
  209. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/sandcastle.min.css +7 -0
  210. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/seti-ui.min.css +7 -0
  211. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/shapeshifter.min.css +7 -0
  212. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/silk-dark.min.css +7 -0
  213. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/silk-light.min.css +7 -0
  214. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/snazzy.min.css +7 -0
  215. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/solar-flare-light.min.css +7 -0
  216. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/solar-flare.min.css +7 -0
  217. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/solarized-dark.min.css +7 -0
  218. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/solarized-light.min.css +7 -0
  219. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/spacemacs.min.css +7 -0
  220. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/summercamp.min.css +7 -0
  221. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/summerfruit-dark.min.css +7 -0
  222. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/summerfruit-light.min.css +7 -0
  223. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/synth-midnight-terminal-dark.min.css +7 -0
  224. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/synth-midnight-terminal-light.min.css +7 -0
  225. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/tango.min.css +7 -0
  226. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/tender.min.css +7 -0
  227. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/tomorrow-night.min.css +7 -0
  228. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/tomorrow.min.css +7 -0
  229. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/twilight.min.css +7 -0
  230. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/unikitty-dark.min.css +7 -0
  231. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/unikitty-light.min.css +7 -0
  232. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/vulcan.min.css +7 -0
  233. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-10-light.min.css +7 -0
  234. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-10.min.css +7 -0
  235. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-95-light.min.css +7 -0
  236. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-95.min.css +7 -0
  237. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-high-contrast-light.min.css +7 -0
  238. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-high-contrast.min.css +7 -0
  239. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-nt-light.min.css +7 -0
  240. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-nt.min.css +7 -0
  241. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/woodland.min.css +7 -0
  242. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/xcode-dusk.min.css +7 -0
  243. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/zenburn.min.css +7 -0
  244. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/brown-paper.min.css +1 -0
  245. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/brown-papersq.png +0 -0
  246. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/codepen-embed.min.css +1 -0
  247. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/color-brewer.min.css +1 -0
  248. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/dark.min.css +1 -0
  249. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/default.min.css +9 -0
  250. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/devibeans.min.css +7 -0
  251. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/docco.min.css +1 -0
  252. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/far.min.css +1 -0
  253. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/felipec.min.css +7 -0
  254. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/foundation.min.css +1 -0
  255. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/github-dark-dimmed.min.css +9 -0
  256. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/github-dark.min.css +10 -0
  257. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/github.min.css +10 -0
  258. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/gml.min.css +1 -0
  259. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/googlecode.min.css +1 -0
  260. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/gradient-dark.min.css +1 -0
  261. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/gradient-light.min.css +1 -0
  262. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/grayscale.min.css +1 -0
  263. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/hybrid.min.css +1 -0
  264. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/idea.min.css +1 -0
  265. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/intellij-light.min.css +1 -0
  266. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/ir-black.min.css +1 -0
  267. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/isbl-editor-dark.min.css +1 -0
  268. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/isbl-editor-light.min.css +1 -0
  269. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/kimbie-dark.min.css +1 -0
  270. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/kimbie-light.min.css +1 -0
  271. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/lightfair.min.css +1 -0
  272. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/lioshi.min.css +1 -0
  273. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/magula.min.css +1 -0
  274. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/mono-blue.min.css +1 -0
  275. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/monokai-sublime.min.css +1 -0
  276. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/monokai.min.css +1 -0
  277. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/night-owl.min.css +1 -0
  278. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/nnfx-dark.min.css +10 -0
  279. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/nnfx-light.min.css +10 -0
  280. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/nord.min.css +1 -0
  281. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/obsidian.min.css +1 -0
  282. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/panda-syntax-dark.min.css +1 -0
  283. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/panda-syntax-light.min.css +1 -0
  284. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/paraiso-dark.min.css +1 -0
  285. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/paraiso-light.min.css +1 -0
  286. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/pojoaque.jpg +0 -0
  287. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/pojoaque.min.css +1 -0
  288. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/purebasic.min.css +1 -0
  289. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/qtcreator-dark.min.css +1 -0
  290. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/qtcreator-light.min.css +1 -0
  291. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/rainbow.min.css +1 -0
  292. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/routeros.min.css +1 -0
  293. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/school-book.min.css +1 -0
  294. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/shades-of-purple.min.css +1 -0
  295. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/srcery.min.css +1 -0
  296. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/stackoverflow-dark.min.css +13 -0
  297. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/stackoverflow-light.min.css +13 -0
  298. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/sunburst.min.css +1 -0
  299. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/tokyo-night-dark.min.css +8 -0
  300. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/tokyo-night-light.min.css +8 -0
  301. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/tomorrow-night-blue.min.css +1 -0
  302. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/tomorrow-night-bright.min.css +1 -0
  303. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/vs.min.css +1 -0
  304. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/vs2015.min.css +1 -0
  305. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/xcode.min.css +1 -0
  306. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/xt256.min.css +1 -0
  307. package/dist/public/vendor/vditor/dist/js/highlight.js/third-languages.js +135 -0
  308. package/dist/public/vendor/vditor/dist/js/i18n/de_DE.js +86 -0
  309. package/dist/public/vendor/vditor/dist/js/i18n/en_US.js +86 -0
  310. package/dist/public/vendor/vditor/dist/js/i18n/es_ES.js +86 -0
  311. package/dist/public/vendor/vditor/dist/js/i18n/fr_FR.js +86 -0
  312. package/dist/public/vendor/vditor/dist/js/i18n/ja_JP.js +86 -0
  313. package/dist/public/vendor/vditor/dist/js/i18n/ko_KR.js +86 -0
  314. package/dist/public/vendor/vditor/dist/js/i18n/pt_BR.js +86 -0
  315. package/dist/public/vendor/vditor/dist/js/i18n/ru_RU.js +86 -0
  316. package/dist/public/vendor/vditor/dist/js/i18n/sv_SE.js +86 -0
  317. package/dist/public/vendor/vditor/dist/js/i18n/vi_VN.js +86 -0
  318. package/dist/public/vendor/vditor/dist/js/i18n/zh_CN.js +86 -0
  319. package/dist/public/vendor/vditor/dist/js/i18n/zh_TW.js +86 -0
  320. package/dist/public/vendor/vditor/dist/js/icons/ant.js +174 -0
  321. package/dist/public/vendor/vditor/dist/js/icons/material.js +195 -0
  322. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
  323. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
  324. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  325. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  326. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  327. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  328. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  329. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  330. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  331. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  332. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  333. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  334. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  335. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  336. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  337. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
  338. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Bold.woff +0 -0
  339. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  340. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  341. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  342. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  343. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
  344. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Italic.woff +0 -0
  345. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  346. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
  347. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Regular.woff +0 -0
  348. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  349. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  350. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  351. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  352. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
  353. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-Italic.woff +0 -0
  354. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  355. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  356. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  357. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  358. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  359. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  360. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  361. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  362. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  363. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  364. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
  365. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Script-Regular.woff +0 -0
  366. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  367. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
  368. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
  369. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  370. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
  371. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
  372. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  373. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
  374. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
  375. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  376. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
  377. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
  378. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  379. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  380. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  381. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  382. package/dist/public/vendor/vditor/dist/js/katex/katex.min.css +1 -0
  383. package/dist/public/vendor/vditor/dist/js/katex/katex.min.js +1 -0
  384. package/dist/public/vendor/vditor/dist/js/katex/mhchem.min.js +1 -0
  385. package/dist/public/vendor/vditor/dist/js/lute/lute.min.js +72 -0
  386. package/dist/public/vendor/vditor/dist/js/markmap/katex.min.css +1 -0
  387. package/dist/public/vendor/vditor/dist/js/markmap/markmap.min.js +8251 -0
  388. package/dist/public/vendor/vditor/dist/js/markmap/prism.css +140 -0
  389. package/dist/public/vendor/vditor/dist/js/mathjax/LICENSE +202 -0
  390. package/dist/public/vendor/vditor/dist/js/mathjax/a11y/assistive-mml.js +1 -0
  391. package/dist/public/vendor/vditor/dist/js/mathjax/a11y/complexity.js +1 -0
  392. package/dist/public/vendor/vditor/dist/js/mathjax/a11y/explorer.js +1 -0
  393. package/dist/public/vendor/vditor/dist/js/mathjax/a11y/semantic-enrich.js +1 -0
  394. package/dist/public/vendor/vditor/dist/js/mathjax/input/asciimath.js +1 -0
  395. package/dist/public/vendor/vditor/dist/js/mathjax/input/mml/entities.js +1 -0
  396. package/dist/public/vendor/vditor/dist/js/mathjax/input/mml.js +1 -0
  397. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/action.js +1 -0
  398. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/all-packages.js +1 -0
  399. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/ams.js +1 -0
  400. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/amscd.js +1 -0
  401. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/autoload.js +1 -0
  402. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/bbox.js +1 -0
  403. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/boldsymbol.js +1 -0
  404. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/braket.js +1 -0
  405. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/bussproofs.js +1 -0
  406. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/cancel.js +1 -0
  407. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/color.js +1 -0
  408. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/colorV2.js +1 -0
  409. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/configMacros.js +1 -0
  410. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/enclose.js +1 -0
  411. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/extpfeil.js +1 -0
  412. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/html.js +1 -0
  413. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/mhchem.js +1 -0
  414. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/newcommand.js +1 -0
  415. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/noerrors.js +1 -0
  416. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/noundefined.js +1 -0
  417. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/physics.js +1 -0
  418. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/require.js +1 -0
  419. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/tagFormat.js +1 -0
  420. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/textmacros.js +1 -0
  421. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/unicode.js +1 -0
  422. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/verb.js +1 -0
  423. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex-base.js +1 -0
  424. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex-full.js +1 -0
  425. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex.js +1 -0
  426. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/de.js +104 -0
  427. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/en.js +110 -0
  428. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/es.js +104 -0
  429. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/fr.js +104 -0
  430. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/mathmaps_ie.js +518 -0
  431. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/nemeth.js +104 -0
  432. package/dist/public/vendor/vditor/dist/js/mathjax/sre/sre-node.js +11 -0
  433. package/dist/public/vendor/vditor/dist/js/mathjax/sre/sre_browser.js +1633 -0
  434. package/dist/public/vendor/vditor/dist/js/mathjax/tex-svg-full.js +1 -0
  435. package/dist/public/vendor/vditor/dist/js/mermaid/mermaid.min.js +2607 -0
  436. package/dist/public/vendor/vditor/dist/js/plantuml/plantuml-encoder.min.js +1 -0
  437. package/dist/public/vendor/vditor/dist/js/smiles-drawer/smiles-drawer.min.js +71 -0
  438. package/dist/public/vendor/vditor/dist/method.d.ts +51 -0
  439. package/dist/public/vendor/vditor/dist/method.js +2673 -0
  440. package/dist/public/vendor/vditor/dist/method.min.js +1 -0
  441. package/dist/public/vendor/vditor/dist/ts/constants.d.ts +45 -0
  442. package/dist/public/vendor/vditor/dist/ts/devtools/index.d.ts +7 -0
  443. package/dist/public/vendor/vditor/dist/ts/export/index.d.ts +4 -0
  444. package/dist/public/vendor/vditor/dist/ts/hint/index.d.ts +14 -0
  445. package/dist/public/vendor/vditor/dist/ts/ir/expandMarker.d.ts +1 -0
  446. package/dist/public/vendor/vditor/dist/ts/ir/highlightToolbarIR.d.ts +1 -0
  447. package/dist/public/vendor/vditor/dist/ts/ir/index.d.ts +13 -0
  448. package/dist/public/vendor/vditor/dist/ts/ir/input.d.ts +1 -0
  449. package/dist/public/vendor/vditor/dist/ts/ir/process.d.ts +8 -0
  450. package/dist/public/vendor/vditor/dist/ts/ir/processKeydown.d.ts +1 -0
  451. package/dist/public/vendor/vditor/dist/ts/markdown/SMILESRender.d.ts +1 -0
  452. package/dist/public/vendor/vditor/dist/ts/markdown/abcRender.d.ts +1 -0
  453. package/dist/public/vendor/vditor/dist/ts/markdown/adapterRender.d.ts +41 -0
  454. package/dist/public/vendor/vditor/dist/ts/markdown/anchorRender.d.ts +1 -0
  455. package/dist/public/vendor/vditor/dist/ts/markdown/chartRender.d.ts +1 -0
  456. package/dist/public/vendor/vditor/dist/ts/markdown/codeRender.d.ts +1 -0
  457. package/dist/public/vendor/vditor/dist/ts/markdown/flowchartRender.d.ts +1 -0
  458. package/dist/public/vendor/vditor/dist/ts/markdown/getHTML.d.ts +1 -0
  459. package/dist/public/vendor/vditor/dist/ts/markdown/getMarkdown.d.ts +1 -0
  460. package/dist/public/vendor/vditor/dist/ts/markdown/graphvizRender.d.ts +1 -0
  461. package/dist/public/vendor/vditor/dist/ts/markdown/highlightRender.d.ts +1 -0
  462. package/dist/public/vendor/vditor/dist/ts/markdown/lazyLoadImageRender.d.ts +6 -0
  463. package/dist/public/vendor/vditor/dist/ts/markdown/markmapRender.d.ts +1 -0
  464. package/dist/public/vendor/vditor/dist/ts/markdown/mathRender.d.ts +9 -0
  465. package/dist/public/vendor/vditor/dist/ts/markdown/mediaRender.d.ts +1 -0
  466. package/dist/public/vendor/vditor/dist/ts/markdown/mermaidRender.d.ts +1 -0
  467. package/dist/public/vendor/vditor/dist/ts/markdown/mindmapRender.d.ts +1 -0
  468. package/dist/public/vendor/vditor/dist/ts/markdown/outlineRender.d.ts +1 -0
  469. package/dist/public/vendor/vditor/dist/ts/markdown/plantumlRender.d.ts +1 -0
  470. package/dist/public/vendor/vditor/dist/ts/markdown/previewRender.d.ts +2 -0
  471. package/dist/public/vendor/vditor/dist/ts/markdown/setLute.d.ts +1 -0
  472. package/dist/public/vendor/vditor/dist/ts/markdown/speechRender.d.ts +6 -0
  473. package/dist/public/vendor/vditor/dist/ts/outline/index.d.ts +7 -0
  474. package/dist/public/vendor/vditor/dist/ts/preview/image.d.ts +1 -0
  475. package/dist/public/vendor/vditor/dist/ts/preview/index.d.ts +10 -0
  476. package/dist/public/vendor/vditor/dist/ts/resize/index.d.ts +6 -0
  477. package/dist/public/vendor/vditor/dist/ts/sv/combineFootnote.d.ts +6 -0
  478. package/dist/public/vendor/vditor/dist/ts/sv/index.d.ts +13 -0
  479. package/dist/public/vendor/vditor/dist/ts/sv/inputEvent.d.ts +1 -0
  480. package/dist/public/vendor/vditor/dist/ts/sv/process.d.ts +11 -0
  481. package/dist/public/vendor/vditor/dist/ts/sv/processKeydown.d.ts +1 -0
  482. package/dist/public/vendor/vditor/dist/ts/tip/index.d.ts +6 -0
  483. package/dist/public/vendor/vditor/dist/ts/toolbar/Both.d.ts +5 -0
  484. package/dist/public/vendor/vditor/dist/ts/toolbar/Br.d.ts +4 -0
  485. package/dist/public/vendor/vditor/dist/ts/toolbar/CodeTheme.d.ts +6 -0
  486. package/dist/public/vendor/vditor/dist/ts/toolbar/ContentTheme.d.ts +6 -0
  487. package/dist/public/vendor/vditor/dist/ts/toolbar/Counter.d.ts +6 -0
  488. package/dist/public/vendor/vditor/dist/ts/toolbar/Custom.d.ts +5 -0
  489. package/dist/public/vendor/vditor/dist/ts/toolbar/Devtools.d.ts +5 -0
  490. package/dist/public/vendor/vditor/dist/ts/toolbar/Divider.d.ts +4 -0
  491. package/dist/public/vendor/vditor/dist/ts/toolbar/EditMode.d.ts +8 -0
  492. package/dist/public/vendor/vditor/dist/ts/toolbar/Emoji.d.ts +7 -0
  493. package/dist/public/vendor/vditor/dist/ts/toolbar/Export.d.ts +6 -0
  494. package/dist/public/vendor/vditor/dist/ts/toolbar/Fullscreen.d.ts +6 -0
  495. package/dist/public/vendor/vditor/dist/ts/toolbar/Headings.d.ts +7 -0
  496. package/dist/public/vendor/vditor/dist/ts/toolbar/Help.d.ts +5 -0
  497. package/dist/public/vendor/vditor/dist/ts/toolbar/Indent.d.ts +5 -0
  498. package/dist/public/vendor/vditor/dist/ts/toolbar/Info.d.ts +5 -0
  499. package/dist/public/vendor/vditor/dist/ts/toolbar/InsertAfter.d.ts +5 -0
  500. package/dist/public/vendor/vditor/dist/ts/toolbar/InsertBefore.d.ts +5 -0
  501. package/dist/public/vendor/vditor/dist/ts/toolbar/MenuItem.d.ts +5 -0
  502. package/dist/public/vendor/vditor/dist/ts/toolbar/Outdent.d.ts +5 -0
  503. package/dist/public/vendor/vditor/dist/ts/toolbar/Outline.d.ts +5 -0
  504. package/dist/public/vendor/vditor/dist/ts/toolbar/Preview.d.ts +6 -0
  505. package/dist/public/vendor/vditor/dist/ts/toolbar/Record.d.ts +6 -0
  506. package/dist/public/vendor/vditor/dist/ts/toolbar/Redo.d.ts +5 -0
  507. package/dist/public/vendor/vditor/dist/ts/toolbar/Undo.d.ts +5 -0
  508. package/dist/public/vendor/vditor/dist/ts/toolbar/Upload.d.ts +6 -0
  509. package/dist/public/vendor/vditor/dist/ts/toolbar/index.d.ts +10 -0
  510. package/dist/public/vendor/vditor/dist/ts/toolbar/setToolbar.d.ts +20 -0
  511. package/dist/public/vendor/vditor/dist/ts/ui/initUI.d.ts +4 -0
  512. package/dist/public/vendor/vditor/dist/ts/ui/setCodeTheme.d.ts +1 -0
  513. package/dist/public/vendor/vditor/dist/ts/ui/setContentTheme.d.ts +1 -0
  514. package/dist/public/vendor/vditor/dist/ts/ui/setPreviewMode.d.ts +1 -0
  515. package/dist/public/vendor/vditor/dist/ts/ui/setTheme.d.ts +1 -0
  516. package/dist/public/vendor/vditor/dist/ts/undo/index.d.ts +19 -0
  517. package/dist/public/vendor/vditor/dist/ts/upload/getElement.d.ts +1 -0
  518. package/dist/public/vendor/vditor/dist/ts/upload/index.d.ts +8 -0
  519. package/dist/public/vendor/vditor/dist/ts/upload/setHeaders.d.ts +1 -0
  520. package/dist/public/vendor/vditor/dist/ts/util/Options.d.ts +8 -0
  521. package/dist/public/vendor/vditor/dist/ts/util/RecordMedia.d.ts +18 -0
  522. package/dist/public/vendor/vditor/dist/ts/util/addScript.d.ts +2 -0
  523. package/dist/public/vendor/vditor/dist/ts/util/addStyle.d.ts +1 -0
  524. package/dist/public/vendor/vditor/dist/ts/util/code160to32.d.ts +1 -0
  525. package/dist/public/vendor/vditor/dist/ts/util/compatibility.d.ts +7 -0
  526. package/dist/public/vendor/vditor/dist/ts/util/editorCommonEvent.d.ts +9 -0
  527. package/dist/public/vendor/vditor/dist/ts/util/fixBrowserBehavior.d.ts +39 -0
  528. package/dist/public/vendor/vditor/dist/ts/util/function.d.ts +3 -0
  529. package/dist/public/vendor/vditor/dist/ts/util/getSelectText.d.ts +1 -0
  530. package/dist/public/vendor/vditor/dist/ts/util/hasClosest.d.ts +9 -0
  531. package/dist/public/vendor/vditor/dist/ts/util/hasClosestByHeadings.d.ts +2 -0
  532. package/dist/public/vendor/vditor/dist/ts/util/highlightToolbar.d.ts +1 -0
  533. package/dist/public/vendor/vditor/dist/ts/util/hotKey.d.ts +1 -0
  534. package/dist/public/vendor/vditor/dist/ts/util/log.d.ts +1 -0
  535. package/dist/public/vendor/vditor/dist/ts/util/merge.d.ts +1 -0
  536. package/dist/public/vendor/vditor/dist/ts/util/processCode.d.ts +2 -0
  537. package/dist/public/vendor/vditor/dist/ts/util/selection.d.ts +14 -0
  538. package/dist/public/vendor/vditor/dist/ts/util/toc.d.ts +5 -0
  539. package/dist/public/vendor/vditor/dist/ts/wysiwyg/afterRenderEvent.d.ts +5 -0
  540. package/dist/public/vendor/vditor/dist/ts/wysiwyg/highlightToolbarWYSIWYG.d.ts +4 -0
  541. package/dist/public/vendor/vditor/dist/ts/wysiwyg/index.d.ts +22 -0
  542. package/dist/public/vendor/vditor/dist/ts/wysiwyg/inlineTag.d.ts +10 -0
  543. package/dist/public/vendor/vditor/dist/ts/wysiwyg/input.d.ts +1 -0
  544. package/dist/public/vendor/vditor/dist/ts/wysiwyg/processKeydown.d.ts +2 -0
  545. package/dist/public/vendor/vditor/dist/ts/wysiwyg/renderDomByMd.d.ts +5 -0
  546. package/dist/public/vendor/vditor/dist/ts/wysiwyg/setHeading.d.ts +2 -0
  547. package/dist/public/vendor/vditor/dist/ts/wysiwyg/showCode.d.ts +1 -0
  548. package/dist/public/vendor/vditor/dist/ts/wysiwyg/toolbarEvent.d.ts +1 -0
  549. package/dist/public/vendor/vditor/dist/types/index.d.ts +921 -0
  550. package/dist/public/work-permissions.d.ts +5 -2
  551. package/dist/public/work-permissions.js +40 -13
  552. package/dist/security.js +11 -0
  553. package/dist/security.js.map +1 -1
  554. package/dist/server-runtime.js +5 -2
  555. package/dist/server-runtime.js.map +1 -1
  556. package/dist/store.js +192 -34
  557. package/dist/store.js.map +1 -1
  558. package/dist/user-auth.js +36 -7
  559. package/dist/user-auth.js.map +1 -1
  560. package/dist/version.js +1 -1
  561. package/dist/version.js.map +1 -1
  562. package/dist/work-permissions.js +29 -6
  563. package/dist/work-permissions.js.map +1 -1
  564. package/package.json +2 -1
@@ -19,6 +19,39 @@
19
19
  --toast-fg: #fffefa;
20
20
  --toast-error-bg: #6e2e21;
21
21
  --toast-error-fg: #fffefa;
22
+ --relationship-card-border: #d9dfe8;
23
+ --relationship-card-surface: #f4f6fa;
24
+ --relationship-toolbar-surface: #f8fafc;
25
+ --relationship-toolbar-ink: #28364c;
26
+ --relationship-toolbar-muted: #6b7890;
27
+ --relationship-control-border: #cdd6e4;
28
+ --relationship-control-ink: #53627a;
29
+ --relationship-control-hover-border: #9dacbf;
30
+ --relationship-control-hover-surface: #e8edf4;
31
+ --relationship-control-hover-ink: #27364e;
32
+ --relationship-network-surface: #eef2f7;
33
+ --relationship-edge: rgba(76,93,120,.34);
34
+ --relationship-edge-directed: rgba(70,88,117,.58);
35
+ --relationship-edge-pending: rgba(107,121,145,.5);
36
+ --relationship-edge-highlight: rgba(45,80,133,.78);
37
+ --relationship-edge-selected: rgba(38,69,118,.9);
38
+ --relationship-label-ink: rgba(40,52,73,.9);
39
+ --relationship-label-stroke: #eef2f7;
40
+ --relationship-node-ink: rgba(36,51,74,.9);
41
+ --relationship-node-label: rgba(48,62,86,.88);
42
+ --relationship-node-label-active: rgba(24,44,71,.98);
43
+ --relationship-node-text-shadow: 0 1px 2px rgba(255,255,255,.72);
44
+ --relationship-node-hover-shadow: 0 0 10px rgba(91,124,166,.28), 0 0 18px var(--node-glow, rgba(139,144,153,.4));
45
+ --relationship-node-selected-shadow: 0 0 10px rgba(91,124,166,.34), 0 0 20px var(--node-glow, rgba(139,144,153,.46));
46
+ --relationship-node-endpoint-shadow: 0 0 10px rgba(91,124,166,.3), 0 0 18px var(--node-glow, rgba(139,144,153,.4));
47
+ --relationship-node-dragging-shadow: 0 0 10px rgba(91,124,166,.38), 0 0 18px var(--node-glow, rgba(139,144,153,.46));
48
+ --relationship-focus: #61708a;
49
+ --relationship-focus-strong: #31445e;
50
+ --relationship-focus-muted: #78869a;
51
+ --relationship-detail-border: #c9d3e1;
52
+ --relationship-detail-surface: rgba(248,250,253,.96);
53
+ --relationship-detail-ink: #2b3a52;
54
+ --relationship-detail-muted: #67758c;
22
55
  --font-latin: "SFMono-Regular", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono";
23
56
  --font-cjk: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Heiti SC";
24
57
  --editor-font-size: 17px;
@@ -208,6 +241,39 @@
208
241
  --toast-fg: #171714;
209
242
  --toast-error-bg: #e08a72;
210
243
  --toast-error-fg: #171714;
244
+ --relationship-card-border: #1c1c24;
245
+ --relationship-card-surface: #12121a;
246
+ --relationship-toolbar-surface: #12121a;
247
+ --relationship-toolbar-ink: #e8e8ef;
248
+ --relationship-toolbar-muted: #7a7a88;
249
+ --relationship-control-border: #2a2a36;
250
+ --relationship-control-ink: #a8a8b4;
251
+ --relationship-control-hover-border: #4a4a58;
252
+ --relationship-control-hover-surface: #1a1a24;
253
+ --relationship-control-hover-ink: #f0f0f5;
254
+ --relationship-network-surface: #12121a;
255
+ --relationship-edge: rgba(255,255,255,.26);
256
+ --relationship-edge-directed: rgba(214,218,232,.5);
257
+ --relationship-edge-pending: rgba(255,255,255,.18);
258
+ --relationship-edge-highlight: rgba(255,255,255,.72);
259
+ --relationship-edge-selected: rgba(220,220,235,.88);
260
+ --relationship-label-ink: rgba(230,230,240,.88);
261
+ --relationship-label-stroke: #12121a;
262
+ --relationship-node-ink: rgba(245,245,250,.88);
263
+ --relationship-node-label: rgba(235,235,245,.78);
264
+ --relationship-node-label-active: rgba(255,255,255,.95);
265
+ --relationship-node-text-shadow: 0 1px 2px rgba(0,0,0,.65);
266
+ --relationship-node-hover-shadow: 0 0 10px rgba(255,255,255,.5), 0 0 18px var(--node-glow, rgba(139,144,153,.55));
267
+ --relationship-node-selected-shadow: 0 0 10px rgba(255,255,255,.55), 0 0 20px var(--node-glow, rgba(139,144,153,.6));
268
+ --relationship-node-endpoint-shadow: 0 0 10px rgba(255,255,255,.5), 0 0 18px var(--node-glow, rgba(139,144,153,.55));
269
+ --relationship-node-dragging-shadow: 0 0 10px rgba(255,255,255,.6), 0 0 18px var(--node-glow, rgba(139,144,153,.6));
270
+ --relationship-focus: #7a7a88;
271
+ --relationship-focus-strong: #c8c8d4;
272
+ --relationship-focus-muted: #6a6a78;
273
+ --relationship-detail-border: #2a2a36;
274
+ --relationship-detail-surface: rgba(18,18,26,.94);
275
+ --relationship-detail-ink: #e2e2ea;
276
+ --relationship-detail-muted: #9a9aa8;
211
277
  color-scheme: dark;
212
278
  }
213
279
 
@@ -477,17 +543,11 @@ body.is-panel-resizing { cursor: col-resize; user-select: none; }
477
543
  .app-shell.prose-hidden-mode:not(.shelf-mode) .left-actions,
478
544
  .app-shell.prose-hidden-mode:not(.shelf-mode) .panel-heading,
479
545
  .app-shell.prose-hidden-mode:not(.shelf-mode) #novel-tree { display: none !important; }
480
- .app-shell.prose-read-only-mode:not(.shelf-mode) .left-primary-actions .file-button,
481
- .app-shell.prose-read-only-mode:not(.shelf-mode) #new-volume-button,
482
- .app-shell.prose-read-only-mode:not(.shelf-mode) #new-chapter-button,
483
546
  .app-shell.prose-read-only-mode:not(.shelf-mode) #tidy-blank-lines-button,
484
547
  .app-shell.prose-read-only-mode:not(.shelf-mode) #save-button { display: none !important; }
485
548
  .app-shell.prose-read-only-mode:not(.shelf-mode) .left-primary-actions { justify-content: flex-end; }
486
549
  .app-shell.prose-read-only-mode:not(.shelf-mode) #chapter-title[readonly],
487
550
  .app-shell.prose-read-only-mode:not(.shelf-mode) #chapter-content[readonly] { cursor: default; }
488
- .app-shell.view-only-mode:not(.shelf-mode) .left-primary-actions .file-button,
489
- .app-shell.view-only-mode:not(.shelf-mode) #new-volume-button,
490
- .app-shell.view-only-mode:not(.shelf-mode) #new-chapter-button,
491
551
  .app-shell.view-only-mode:not(.shelf-mode) #module-create-button,
492
552
  .app-shell.view-only-mode:not(.shelf-mode) [data-work-settings],
493
553
  .app-shell.view-only-mode:not(.shelf-mode) #tidy-blank-lines-button,
@@ -506,6 +566,7 @@ body.work-viewer-mode [data-edit-event],
506
566
  body.work-viewer-mode [data-split-event],
507
567
  body.work-viewer-mode [data-event-select],
508
568
  body.work-viewer-mode #create-timeline-track,
569
+ body.work-viewer-mode #timeline-multi-select-toggle,
509
570
  body.work-viewer-mode #merge-events,
510
571
  body.work-viewer-mode [data-edit-foreshadow],
511
572
  body.work-viewer-mode [data-edit-outline],
@@ -615,7 +676,7 @@ body.work-viewer-mode .character-editor-actions { display: none !important; }
615
676
  .account-settings-form label { display: grid; min-width: 0; gap: 6px; color: var(--muted); font-size: 11px; }
616
677
  .account-settings-form input { width: 100%; min-height: 38px; padding: 9px 10px; background: var(--surface); font-size: 12px; }
617
678
  .account-settings-form .primary-button { min-height: 38px; white-space: nowrap; }
618
- .password-settings-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
679
+ .password-settings-form { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; }
619
680
  .api-key-settings { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 16px; }
620
681
  .api-key-settings > p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
621
682
  .api-key-result { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
@@ -702,13 +763,14 @@ body.work-viewer-mode .character-editor-actions { display: none !important; }
702
763
 
703
764
  select, input, textarea { border: 1px solid var(--line); background: var(--surface); border-radius: 5px; outline: none; }
704
765
  select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0 0 0 3px rgba(139,61,44,.08); }
705
- .left-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; margin: 0 0 15px; }
766
+ .left-actions { display: block; margin: 0 0 15px; }
706
767
  .left-primary-actions { display: flex; grid-column: 1 / -1; width: 100%; align-items: center; gap: 8px; }
707
768
  .left-primary-actions .file-button { flex: 1 1 auto; width: auto; min-width: 0; }
708
769
  .left-primary-actions #left-panel-toggle { flex: 0 0 30px; width: 30px; height: 30px; }
709
- .import-history-button { grid-column: 1 / -1; }
710
- .file-button, .secondary-button { display: grid; place-items: center; min-height: 30px; border: 1px solid var(--line); border-radius: 4px; font-size: 11px; background: transparent; }
711
- .file-button { container-type: inline-size; overflow: hidden; white-space: nowrap; }
770
+ .file-button, .add-button { display: grid; place-items: center; border: 1px solid var(--line); border-radius: 4px; background: transparent; }
771
+ .file-button { min-height: 30px; font-size: 11px; container-type: inline-size; overflow: hidden; white-space: nowrap; }
772
+ .add-button { width: 24px; height: 24px; padding: 0; color: var(--muted); font-family: var(--font-latin), monospace; font-size: 16px; line-height: 1; }
773
+ .add-button:hover, .add-button:focus-visible { border-color: var(--accent); color: var(--accent-dark); outline: none; }
712
774
  .import-file-label-compact, .import-file-label-short { display: none; }
713
775
  @container (max-width: 120px) {
714
776
  .import-file-label-full { display: none; }
@@ -724,20 +786,24 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
724
786
  .module-nav .nav-icon { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
725
787
  #module-more-button[aria-expanded="true"] .nav-icon { transform: rotate(180deg); }
726
788
  .module-nav button.active, .module-nav button:hover { background: var(--paper-deep); color: var(--ink); }
727
- .module-nav .ai-analysis-entry { background: color-mix(in srgb, var(--accent) 10%, transparent); color: var(--accent-dark); font-weight: 650; }
789
+ .module-nav .ai-analysis-entry,
790
+ .module-nav .ai-analysis-entry:hover,
791
+ .module-nav .ai-analysis-entry.active { background: transparent; color: var(--accent-dark); font-weight: 650; }
728
792
  #module-more-button { grid-column: 1 / -1; color: var(--accent-dark); text-align: center; }
729
- .panel-heading { display: flex; align-items: center; gap: 8px; padding: 15px 7px 9px; color: var(--muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
730
- .panel-heading #chapter-count { margin-left: auto; }
793
+ .panel-heading { display: flex; align-items: center; gap: 8px; padding: 15px 0 9px 7px; color: var(--muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
794
+ .panel-heading-actions { display: flex; align-items: center; gap: 7px; margin-left: auto; }
731
795
  .novel-tree { font-size: 13px; }
732
796
  .empty-copy { color: var(--muted); padding: 14px 7px; line-height: 1.5; }
733
797
  .volume-node { margin-bottom: 8px; }
734
- .volume-title { display: flex; width: 100%; min-width: 0; align-items: center; justify-content: space-between; padding: 7px; border: 0; background: transparent; color: var(--muted); font-size: 11px; letter-spacing: .05em; text-align: left; }
735
- .volume-title::before { content: ""; width: 4px; height: 4px; border: solid var(--muted); border-width: 0 1px 1px 0; transform: rotate(45deg); margin-right: 8px; }
736
- .volume-node.is-collapsed .volume-title::before { transform: rotate(-45deg); }
737
- .volume-title span:first-child { flex: 1; }
798
+ .volume-title { display: flex; width: 100%; min-width: 0; align-items: center; gap: 4px; }
799
+ .volume-toggle { display: flex; width: 100%; min-width: 0; align-items: center; justify-content: space-between; padding: 7px; border: 0; background: transparent; color: var(--muted); font-size: 11px; letter-spacing: .05em; text-align: left; }
800
+ .volume-toggle::before { content: ""; width: 4px; height: 4px; flex: none; border: solid var(--muted); border-width: 0 1px 1px 0; transform: rotate(45deg); margin-right: 8px; }
801
+ .volume-node.is-collapsed .volume-toggle::before { transform: rotate(-45deg); }
802
+ .volume-toggle span:first-child { flex: 1; }
803
+ .chapter-add-button { flex: none; }
738
804
  .volume-chapters { display: block; }
739
805
  .volume-node.is-collapsed .volume-chapters { display: none; }
740
- .chapter-node { display: grid; grid-template-columns: minmax(0, 1fr) max-content; gap: 8px; width: 100%; padding: 9px 10px 9px 20px; border: 0; background: transparent; border-radius: 4px; text-align: left; font-size: 12px; }
806
+ .chapter-node { display: grid; grid-template-columns: minmax(0, 1fr) max-content; gap: 8px; width: 100%; padding: 9px 0 9px 20px; border: 0; background: transparent; border-radius: 4px; text-align: left; font-size: 12px; }
741
807
  .chapter-node:hover, .chapter-node.active { background: var(--row-active); }
742
808
  .chapter-node.active { color: var(--accent-dark); font-weight: 700; }
743
809
  .chapter-node > span:first-child { min-width: 0; overflow-wrap: anywhere; line-height: 1.45; white-space: normal; }
@@ -800,15 +866,39 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
800
866
  .chapter-insight strong { color: var(--ink); margin-right: 8px; }
801
867
 
802
868
  .module-view { height: 100%; overflow-y: auto; padding: 42px 6%; }
803
- .module-header { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
869
+ .module-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
870
+ .module-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
871
+ .module-header-actions > [data-module-header-action] { order: 1; }
872
+ .module-header-actions > #module-create-button { order: 2; min-height: 36px; }
804
873
  .module-header h1 { margin: 0 0 8px; font-weight: 500; font-size: 34px; }
805
874
  .module-header p { margin: 0; color: var(--muted); font-size: 13px; }
806
875
  .module-content { padding: 24px 0 80px; }
807
876
  .card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 13px; }
808
877
  .record-card { position: relative; border: 1px solid var(--line); background: var(--surface-soft); padding: 18px; min-height: 130px; border-radius: 4px; }
878
+ .record-card.has-card-edit h3 { padding-right: 34px; }
879
+ .record-card-edit { position: absolute; top: 12px; right: 12px; display: inline-grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 1px solid var(--line); border-radius: 4px; background: transparent; color: var(--muted); }
880
+ .record-card-edit:hover, .record-card-edit:focus-visible { border-color: var(--accent); color: var(--accent-dark); outline: none; }
881
+ .record-card-edit svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
809
882
  .record-card h3 { font-size: 16px; margin: 5px 0 10px; font-weight: 600; }
810
883
  .record-card p { color: var(--muted); font-size: 12px; line-height: 1.55; margin: 0; white-space: pre-wrap; }
811
884
  .record-card small { color: var(--accent); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
885
+ .settings-layout-toolbar, .module-layout-toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-bottom: 0; }
886
+ .settings-layout-hint, .module-layout-hint { color: var(--muted); font-size: 10px; }
887
+ .settings-layout-toggle, .module-layout-toggle { display: inline-flex; border: 1px solid var(--line); border-radius: 4px; overflow: hidden; background: var(--surface); }
888
+ .settings-layout-toggle button, .module-layout-toggle button { min-height: 34px; padding: 0 12px; border: 0; border-right: 1px solid var(--line); background: transparent; color: var(--muted); font-size: 11px; }
889
+ .settings-layout-toggle button:last-child, .module-layout-toggle button:last-child { border-right: 0; }
890
+ .settings-layout-toggle button:hover, .settings-layout-toggle button:focus-visible,
891
+ .module-layout-toggle button:hover, .module-layout-toggle button:focus-visible { color: var(--ink); background: var(--paper-deep); }
892
+ .settings-layout-toggle button[aria-pressed="true"], .module-layout-toggle button[aria-pressed="true"] { color: #fff; background: var(--accent); }
893
+ .settings-layout-toggle button:focus-visible, .module-layout-toggle button:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; z-index: 1; }
894
+ .settings-row-list, .module-row-list { display: grid; gap: 8px; }
895
+ .setting-row, .module-row { display: grid; grid-template-columns: minmax(108px, .2fr) minmax(120px, .24fr) minmax(0, 1fr) auto; gap: 10px 16px; align-items: center; min-height: 0; padding: 12px 16px; }
896
+ .setting-row h3, .module-row h3 { margin: 0; font-size: 14px; line-height: 1.35; }
897
+ .setting-row p, .module-row p, .module-row-preview { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
898
+ .module-row-preview { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
899
+ .module-row-path { display: block; margin-top: 2px; color: var(--accent); font-family: var(--font-latin), monospace; font-size: 11px; font-weight: 500; }
900
+ .module-row-span { grid-column: 1 / -1; }
901
+ .setting-row .card-actions, .module-row .card-actions { margin-top: 0; flex-wrap: wrap; justify-content: flex-end; }
812
902
  .character-card { cursor: pointer; }
813
903
  .character-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
814
904
  .character-audit-panel { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; padding: 15px 17px; border: 1px solid var(--line); background: var(--surface-soft); }
@@ -826,6 +916,8 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
826
916
  .character-duplicate-actions { flex-wrap: wrap; }
827
917
  .card-actions { display: flex; gap: 6px; margin-top: 15px; }
828
918
  .card-actions button { border: 1px solid var(--line); background: transparent; border-radius: 3px; font-size: 10px; padding: 5px 8px; }
919
+ .danger-button { border: 1px solid color-mix(in srgb, var(--accent) 52%, var(--line)); border-radius: 4px; background: transparent; color: var(--accent-dark); padding: 8px 13px; font-size: 12px; }
920
+ .danger-button:hover, .danger-button:focus-visible { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, transparent); outline: none; }
829
921
  .card-actions .danger-button { border-color: color-mix(in srgb, var(--accent) 52%, var(--line)); color: var(--accent-dark); }
830
922
  .card-actions .danger-button:hover, .card-actions .danger-button:focus-visible { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, transparent); }
831
923
  .card-actions .primary-button { border-color: var(--accent); background: var(--accent); color: #fff; padding: 8px 13px; font-size: 12px; }
@@ -853,6 +945,17 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
853
945
  .race-settings .pill { display: inline-flex; align-items: center; gap: 5px; }
854
946
  .race-settings .pill small { color: inherit; font-size: 8px; letter-spacing: 0; text-transform: none; opacity: .72; }
855
947
  .race-settings .pill.inherited { border-style: dashed; }
948
+ .entity-dialog-management, .entity-editor-management { display: grid; gap: 10px; padding: 14px; border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--line)); border-radius: 5px; background: color-mix(in srgb, var(--accent) 4%, var(--surface)); }
949
+ .entity-dialog-management > div:first-child, .entity-editor-management > div:first-child { display: grid; gap: 4px; }
950
+ .entity-dialog-management strong, .entity-editor-management strong { color: var(--ink); font-size: 11px; }
951
+ .entity-dialog-management small, .entity-editor-management small { color: var(--muted); font-size: 10px; line-height: 1.5; }
952
+ .entity-dialog-management-actions, .entity-editor-management-actions { display: flex; flex-wrap: wrap; gap: 7px; }
953
+ .entity-dialog-management-actions button, .entity-editor-management-actions button { min-height: 32px; }
954
+ .danger-confirm-field { display: grid !important; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 9px !important; padding: 12px; border: 1px solid color-mix(in srgb, var(--accent) 42%, var(--line)); border-radius: 5px; background: color-mix(in srgb, var(--accent) 5%, var(--surface)); }
955
+ .danger-confirm-field input { width: auto !important; margin-top: 3px; }
956
+ .danger-confirm-field span { display: grid; gap: 4px; }
957
+ .danger-confirm-field strong { color: var(--ink); font-size: 11px; }
958
+ .danger-confirm-field small { color: var(--muted); font-size: 10px; line-height: 1.5; }
856
959
  .config-section { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
857
960
  .config-section:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
858
961
  .platform-system-prompt-section { margin-bottom: 36px; }
@@ -926,7 +1029,7 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
926
1029
  .table-list th, .table-list td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
927
1030
  .table-list th { color: var(--muted); font-weight: 400; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
928
1031
  .danger-text { color: var(--accent); }
929
- .timeline-tools { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 12px; }
1032
+ .timeline-tools { display: flex; justify-content: flex-end; gap: 8px; }
930
1033
  .timeline-select { position: absolute; left: -33px; top: 0; }
931
1034
  .timeline-kanban { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(290px, 340px); gap: 14px; align-items: start; overflow-x: auto; padding: 3px 2px 18px; scroll-snap-type: x proximity; }
932
1035
  .timeline-lane { display: flex; max-height: calc(100vh - 250px); min-height: 420px; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: color-mix(in srgb, var(--paper-deep) 42%, transparent); scroll-snap-align: start; }
@@ -985,12 +1088,12 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
985
1088
  .relationship-map-expanded-host .relationship-map-card { height: 100%; margin: 0; }
986
1089
  .relationship-map-expanded-host .relationship-map-toolbar { padding-right: 72px; }
987
1090
  .relationship-map-expanded-host .relationship-mindmap { height: calc(100% - 67px); min-height: 0; }
988
- .relationship-network-card { border-color: #1c1c24; background: #12121a; box-shadow: none; }
989
- .relationship-network-card .relationship-map-toolbar { min-height: 58px; border-color: #1c1c24; background: #12121a; color: #e8e8ef; }
990
- .relationship-network-card .relationship-map-toolbar small { color: #7a7a88; }
991
- .relationship-network-card .relationship-map-actions button { border-color: #2a2a36; background: transparent; color: #a8a8b4; }
992
- .relationship-network-card .relationship-map-actions button:hover, .relationship-network-card .relationship-map-actions button:focus-visible { border-color: #4a4a58; background: #1a1a24; color: #f0f0f5; }
993
- .relationship-network { height: min(68vh, 650px); min-height: 520px; contain: layout paint style; touch-action: none; cursor: grab; background: #12121a; }
1091
+ .relationship-network-card { border-color: var(--relationship-card-border); background: var(--relationship-card-surface); box-shadow: none; }
1092
+ .relationship-network-card .relationship-map-toolbar { min-height: 58px; border-color: var(--relationship-card-border); background: var(--relationship-toolbar-surface); color: var(--relationship-toolbar-ink); }
1093
+ .relationship-network-card .relationship-map-toolbar small { color: var(--relationship-toolbar-muted); }
1094
+ .relationship-network-card .relationship-map-actions button { border-color: var(--relationship-control-border); background: transparent; color: var(--relationship-control-ink); }
1095
+ .relationship-network-card .relationship-map-actions button:hover, .relationship-network-card .relationship-map-actions button:focus-visible { border-color: var(--relationship-control-hover-border); background: var(--relationship-control-hover-surface); color: var(--relationship-control-hover-ink); }
1096
+ .relationship-network { height: min(68vh, 650px); min-height: 520px; contain: layout paint style; touch-action: none; cursor: grab; background: var(--relationship-network-surface); }
994
1097
  .relationship-network.is-panning { cursor: grabbing; }
995
1098
  .relationship-network-stage { contain: layout paint style; will-change: transform; }
996
1099
  .relationship-network-stage.is-view-animating { transition: transform .34s cubic-bezier(.22,.78,.3,1); }
@@ -1005,21 +1108,21 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1005
1108
  stroke: transparent;
1006
1109
  }
1007
1110
  .relationship-network .mind-edge,
1008
- .relationship-network .obsidian-edge { stroke: rgba(255,255,255,.26); stroke-width: 1px; opacity: 1; transition: opacity .12s ease, stroke .12s ease; }
1009
- .relationship-network .mind-edge.is-directed { stroke: rgba(214,218,232,.5); }
1111
+ .relationship-network .obsidian-edge { stroke: var(--relationship-edge); stroke-width: 1px; opacity: 1; transition: opacity .12s ease, stroke .12s ease; }
1112
+ .relationship-network .mind-edge.is-directed { stroke: var(--relationship-edge-directed); }
1010
1113
  .relationship-network .relationship-edge-arrow { pointer-events: none; }
1011
1114
  .relationship-network .mind-edge.family,
1012
1115
  .relationship-network .mind-edge.social,
1013
1116
  .relationship-network .mind-edge.emotional,
1014
1117
  .relationship-network .mind-edge.conflict,
1015
- .relationship-network .mind-edge.uncertain { stroke: rgba(255,255,255,.26); stroke-dasharray: none; }
1016
- .relationship-network .mind-edge.is-pending { stroke: rgba(255,255,255,.18); stroke-dasharray: 4 6; }
1118
+ .relationship-network .mind-edge.uncertain { stroke: var(--relationship-edge); stroke-dasharray: none; }
1119
+ .relationship-network .mind-edge.is-pending { stroke: var(--relationship-edge-pending); stroke-dasharray: 4 6; }
1017
1120
  .relationship-network .mind-edge.is-dimmed { opacity: .06; }
1018
- .relationship-network .mind-edge.is-highlighted { stroke: rgba(255,255,255,.72); stroke-width: 1.35px; opacity: 1; }
1019
- .relationship-network .mind-edge.is-edge-selected { stroke: rgba(220,220,235,.88); stroke-width: 1.6px; opacity: 1; }
1121
+ .relationship-network .mind-edge.is-highlighted { stroke: var(--relationship-edge-highlight); stroke-width: 1.35px; opacity: 1; }
1122
+ .relationship-network .mind-edge.is-edge-selected { stroke: var(--relationship-edge-selected); stroke-width: 1.6px; opacity: 1; }
1020
1123
  .relationship-network .mind-edge-label {
1021
- fill: rgba(230,230,240,.88);
1022
- stroke: #12121a;
1124
+ fill: var(--relationship-label-ink);
1125
+ stroke: var(--relationship-label-stroke);
1023
1126
  stroke-width: 2.5px;
1024
1127
  font-size: 7px;
1025
1128
  font-weight: 400;
@@ -1040,7 +1143,7 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1040
1143
  border: 0;
1041
1144
  border-radius: 50%;
1042
1145
  background: var(--node-color, #8b9099);
1043
- color: rgba(245,245,250,.88);
1146
+ color: var(--relationship-node-ink);
1044
1147
  box-shadow: 0 0 8px var(--node-glow, rgba(139,144,153,.42));
1045
1148
  font-family: "SF Pro Text", "Segoe UI", "Helvetica Neue", sans-serif;
1046
1149
  font-size: 9px;
@@ -1061,30 +1164,39 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1061
1164
  text-overflow: ellipsis;
1062
1165
  white-space: nowrap;
1063
1166
  pointer-events: none;
1064
- color: rgba(235,235,245,.78);
1167
+ color: var(--relationship-node-label);
1065
1168
  font-size: 9px;
1066
1169
  font-weight: 400;
1067
1170
  letter-spacing: .01em;
1068
- text-shadow: 0 1px 2px rgba(0,0,0,.65);
1171
+ text-shadow: var(--relationship-node-text-shadow);
1172
+ opacity: 0;
1173
+ transition: opacity .12s ease, color .12s ease;
1069
1174
  }
1175
+ .relationship-network .mind-node.is-label-visible span,
1176
+ .relationship-network .mind-node:hover span,
1177
+ .relationship-network .mind-node:focus-visible span,
1178
+ .relationship-network .mind-node.is-hovered span,
1179
+ .relationship-network .mind-node.is-selected span,
1180
+ .relationship-network .mind-node.is-related span,
1181
+ .relationship-network .mind-node.is-edge-endpoint span { opacity: 1; }
1070
1182
  .relationship-network .mind-node:hover,
1071
1183
  .relationship-network .mind-node:focus-visible,
1072
1184
  .relationship-network .mind-node.is-hovered {
1073
1185
  transform: translate(-50%, -50%) scale(1.28);
1074
1186
  outline: none;
1075
1187
  z-index: 6;
1076
- box-shadow: 0 0 10px rgba(255,255,255,.5), 0 0 18px var(--node-glow, rgba(139,144,153,.55));
1188
+ box-shadow: var(--relationship-node-hover-shadow);
1077
1189
  }
1078
1190
  .relationship-network .mind-node:hover span,
1079
1191
  .relationship-network .mind-node:focus-visible span,
1080
1192
  .relationship-network .mind-node.is-hovered span,
1081
1193
  .relationship-network .mind-node.is-selected span,
1082
1194
  .relationship-network .mind-node.is-related span,
1083
- .relationship-network .mind-node.is-edge-endpoint span { color: rgba(255,255,255,.95); }
1195
+ .relationship-network .mind-node.is-edge-endpoint span { color: var(--relationship-node-label-active); }
1084
1196
  .relationship-network .mind-node.is-selected {
1085
1197
  transform: translate(-50%, -50%) scale(1.32);
1086
1198
  z-index: 5;
1087
- box-shadow: 0 0 10px rgba(255,255,255,.55), 0 0 20px var(--node-glow, rgba(139,144,153,.6));
1199
+ box-shadow: var(--relationship-node-selected-shadow);
1088
1200
  }
1089
1201
  .relationship-network .mind-node.is-related { opacity: 1; }
1090
1202
  .relationship-network .mind-node.is-dimmed { opacity: .14; box-shadow: none; }
@@ -1092,7 +1204,7 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1092
1204
  .relationship-network .mind-node.is-edge-endpoint {
1093
1205
  opacity: 1;
1094
1206
  transform: translate(-50%, -50%) scale(1.3);
1095
- box-shadow: 0 0 10px rgba(255,255,255,.5), 0 0 18px var(--node-glow, rgba(139,144,153,.55));
1207
+ box-shadow: var(--relationship-node-endpoint-shadow);
1096
1208
  }
1097
1209
  .relationship-network[data-interaction="dragging"] .mind-edge,
1098
1210
  .relationship-network[data-interaction="dragging"] .mind-node,
@@ -1112,7 +1224,7 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1112
1224
  transition: none;
1113
1225
  z-index: 8;
1114
1226
  will-change: left, top;
1115
- box-shadow: 0 0 10px rgba(255,255,255,.6), 0 0 18px var(--node-glow, rgba(139,144,153,.6));
1227
+ box-shadow: var(--relationship-node-dragging-shadow);
1116
1228
  }
1117
1229
  .relationship-network .mind-node.is-drag-neighbor {
1118
1230
  opacity: 1;
@@ -1120,16 +1232,16 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1120
1232
  will-change: left, top;
1121
1233
  }
1122
1234
  .relationship-network .mind-node.is-settling { animation: relationship-node-settle .18s ease-out; }
1123
- .relationship-network-focus, .relationship-network-help { position: absolute; z-index: 6; color: #7a7a88; pointer-events: none; }
1235
+ .relationship-network-focus, .relationship-network-help { position: absolute; z-index: 6; color: var(--relationship-focus); pointer-events: none; }
1124
1236
  .relationship-network-focus { top: 14px; left: 16px; display: grid; gap: 3px; }
1125
- .relationship-network-focus strong { color: #c8c8d4; font-size: 10px; font-weight: 500; }
1126
- .relationship-network-focus span { color: #6a6a78; font-size: 9px; }
1237
+ .relationship-network-focus strong { color: var(--relationship-focus-strong); font-size: 10px; font-weight: 500; }
1238
+ .relationship-network-focus span { color: var(--relationship-focus-muted); font-size: 9px; }
1127
1239
  .relationship-network-help { left: 16px; bottom: 13px; font-size: 9px; }
1128
- .relationship-network .mind-edge-detail { left: 50%; right: auto; bottom: 38px; width: min(680px, calc(100% - 40px)); transform: translateX(-50%); border-color: #2a2a36; background: rgba(18,18,26,.94); color: #e2e2ea; box-shadow: none; }
1129
- .relationship-network .mind-edge-detail span { color: #9a9aa8; }
1240
+ .relationship-network .mind-edge-detail { left: 50%; right: auto; bottom: 38px; width: min(680px, calc(100% - 40px)); transform: translateX(-50%); border-color: var(--relationship-detail-border); background: var(--relationship-detail-surface); color: var(--relationship-detail-ink); box-shadow: none; }
1241
+ .relationship-network .mind-edge-detail span { color: var(--relationship-detail-muted); }
1130
1242
  .relationship-map-expanded-host .relationship-network { height: calc(100% - 63px); min-height: 0; }
1131
- .relationship-map-dialog { background: #12121a; border-color: #1c1c24; }
1132
- .relationship-map-expanded-host { background: #12121a; }
1243
+ .relationship-map-dialog { background: var(--relationship-card-surface); border-color: var(--relationship-card-border); }
1244
+ .relationship-map-expanded-host { background: var(--relationship-card-surface); }
1133
1245
  @keyframes relationship-node-settle { from { transform: translate(-50%, -50%) scale(1.36); } to { transform: translate(-50%, -50%) scale(1.32); } }
1134
1246
  @media (prefers-reduced-motion: reduce) { .relationship-network .mind-node, .relationship-network-stage { transition-duration: .01ms; animation-duration: .01ms; } }
1135
1247
 
@@ -1190,7 +1302,7 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1190
1302
  .field-label select { padding: 8px; font-size: 12px; }
1191
1303
  .book-summary-context-percent-field { width: min(100%, 280px); }
1192
1304
  .context-compact-threshold-field { width: min(100%, 280px); }
1193
- .book-summary-context-percent-field input, .context-compact-threshold-field input { min-height: 40px; padding: 8px 12px; font-size: 15px; font-family: var(--font-latin), monospace; }
1305
+ .book-summary-context-percent-field input, .context-compact-threshold-field input { width: 64px; min-height: 32px; padding: 5px 8px; font-size: 13px; font-family: var(--font-latin), monospace; }
1194
1306
  .field-label textarea {
1195
1307
  width: 100%;
1196
1308
  min-height: 140px;
@@ -1324,12 +1436,63 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1324
1436
  .ai-citation-card.is-expanded pre { display: block; }
1325
1437
  .message-citations { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }.message-citations span { padding: 3px 6px; border: 1px solid currentColor; border-radius: 10px; font-size: 8px; opacity: .75; }
1326
1438
 
1327
- .toast-region { position: fixed; inset: auto 24px 24px auto; z-index: 2147483647; display: grid; max-width: calc(100vw - 48px); margin: 0; padding: 0; gap: 8px; overflow: visible; border: 0; background: transparent; color: inherit; pointer-events: none; }
1328
- .toast-region[data-position="top-right"] { top: 78px; bottom: auto; }
1329
- .toast-region[data-position="bottom-right"] { top: auto; bottom: 24px; }
1330
- .toast { max-width: 360px; background: var(--toast-bg); color: var(--toast-fg); padding: 11px 15px; border-radius: 4px; box-shadow: var(--shadow); font-size: 12px; animation: toast-appear-top .18s ease; }
1439
+ /* Toast 使用 Popover Top Layer;必须覆盖 UA 默认居中/系统边框/Canvas 背景 */
1440
+ .toast-region,
1441
+ .toast-region:popover-open {
1442
+ position: fixed;
1443
+ inset: auto 24px 24px auto;
1444
+ width: max-content;
1445
+ max-width: calc(100vw - 48px);
1446
+ height: fit-content;
1447
+ margin: 0;
1448
+ padding: 0;
1449
+ border: 0;
1450
+ background: transparent;
1451
+ color: inherit;
1452
+ overflow: visible;
1453
+ display: grid;
1454
+ gap: 8px;
1455
+ z-index: 2147483647;
1456
+ pointer-events: none;
1457
+ box-shadow: none;
1458
+ }
1459
+ .toast-region::backdrop { display: none; }
1460
+ .toast-region[data-position="top-right"],
1461
+ .toast-region[data-position="top-right"]:popover-open { top: 78px; right: 24px; bottom: auto; left: auto; }
1462
+ .toast-region[data-position="bottom-right"],
1463
+ .toast-region[data-position="bottom-right"]:popover-open { top: auto; right: 24px; bottom: 24px; left: auto; }
1464
+ .toast {
1465
+ max-width: 360px;
1466
+ padding: 11px 15px;
1467
+ border: 1px solid color-mix(in srgb, var(--toast-fg) 12%, transparent);
1468
+ border-radius: 6px;
1469
+ background: var(--toast-bg);
1470
+ color: var(--toast-fg);
1471
+ box-shadow: var(--shadow);
1472
+ font-size: 12px;
1473
+ line-height: 1.55;
1474
+ animation: toast-appear-top .18s ease;
1475
+ }
1331
1476
  .toast-region[data-position="bottom-right"] .toast { animation-name: toast-appear-bottom; }
1332
- .toast.error { background: var(--toast-error-bg); color: var(--toast-error-fg); }
1477
+ .toast.error {
1478
+ border-color: color-mix(in srgb, var(--toast-error-fg) 16%, transparent);
1479
+ background: var(--toast-error-bg);
1480
+ color: var(--toast-error-fg);
1481
+ }
1482
+ .toast-confirmation {
1483
+ display: grid;
1484
+ gap: 8px;
1485
+ width: min(360px, calc(100vw - 48px));
1486
+ padding: 14px;
1487
+ border: 1px solid color-mix(in srgb, var(--accent) 48%, var(--line));
1488
+ background: var(--panel);
1489
+ color: var(--ink);
1490
+ pointer-events: auto;
1491
+ }
1492
+ .toast-confirmation strong { font-size: 12px; }
1493
+ .toast-confirmation p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; white-space: pre-line; }
1494
+ .toast-confirmation-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: 3px; }
1495
+ .toast-confirmation-actions button { min-height: 30px; padding: 6px 10px; }
1333
1496
  .chapter-type-menu { position: fixed; z-index: 80; width: 176px; padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); box-shadow: 0 14px 38px rgba(49,42,32,.22); }
1334
1497
  .chapter-type-menu strong { display: block; overflow: hidden; margin: 0 2px 8px; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
1335
1498
  .chapter-type-menu > div { display: grid; gap: 3px; }
@@ -1372,6 +1535,7 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1372
1535
  .merge-dialog-note { margin: 0; padding: 10px 12px; border-left: 2px solid var(--accent); background: var(--surface-soft); color: var(--muted); font-size: 11px; line-height: 1.6; }
1373
1536
  .form-field { display: grid; gap: 6px; color: var(--muted); font-size: 11px; }
1374
1537
  .analysis-type-description { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
1538
+ .model-temperature-hint { margin: 0; color: var(--accent-dark); font-size: 10px; line-height: 1.55; }
1375
1539
  .item-list-rows { display: grid; gap: 7px; }
1376
1540
  .item-list-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
1377
1541
  .item-list-row button, .item-list-add { border: 1px solid var(--line); border-radius: 4px; background: var(--panel); color: var(--muted); font-size: 10px; }
@@ -1383,7 +1547,8 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1383
1547
  .keyword-chip-editor > input[data-keyword-input] { flex: 1 1 160px; width: auto; min-width: 140px; padding: 6px 3px; border: 0; background: transparent; color: var(--ink); outline: none; }
1384
1548
  .keyword-chip-editor > input[data-keyword-input]:focus { border: 0; box-shadow: none; }
1385
1549
  .keyword-chip { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; padding: 3px 5px 3px 10px; border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line)); border-radius: 16px; background: var(--paper-deep); color: var(--ink); font-size: 11px; line-height: 1.3; }
1386
- .keyword-chip button { display: inline-grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--muted); font-size: 15px; line-height: 1; }
1550
+ .keyword-chip button { display: inline-grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--muted); font-size: 15px; line-height: 1; opacity: 0; pointer-events: none; transition: opacity .15s ease; }
1551
+ .keyword-chip:hover button, .keyword-chip:focus-within button { opacity: 1; pointer-events: auto; }
1387
1552
  .keyword-chip button:hover, .keyword-chip button:focus-visible { background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent-dark); outline: none; }
1388
1553
  .structured-list-field > small { color: var(--muted); font-size: 9px; line-height: 1.5; }
1389
1554
  .structured-list-rows { display: grid; gap: 9px; }
@@ -1392,8 +1557,14 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1392
1557
  .section-list-row { grid-template-columns: minmax(0, 1fr) auto; }
1393
1558
  .section-list-row textarea { grid-column: 1 / -1; min-height: 130px; }
1394
1559
  .structured-list-row button { grid-column: -2 / -1; grid-row: 1; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; background: var(--panel); color: var(--muted); font-size: 10px; }
1395
- .character-identity { color: var(--ink) !important; font-weight: 600; }
1396
- .character-species { display: flex; align-items: center; gap: 7px; margin-top: 10px; color: var(--muted); font-size: 10px; }
1560
+ .character-card h3 { margin-bottom: 5px; }
1561
+ .character-identity { margin: 0 0 6px !important; color: var(--ink) !important; font-weight: 600; line-height: 1.55 !important; }
1562
+ .character-aliases { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; min-width: 0; }
1563
+ .character-aliases .pill { margin: 0; }
1564
+ .character-code { display: flex; align-items: center; gap: 7px; margin-top: 10px; color: var(--muted); font-size: 10px; }
1565
+ .character-species { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; gap: 6px; margin-top: 8px; color: var(--muted); font-size: 10px; }
1566
+ .character-species b { font-weight: 500; }
1567
+ .character-species .pill { justify-self: start; min-width: 0; max-width: 100%; margin: 0; overflow-wrap: anywhere; }
1397
1568
  .character-detail-list { display: grid; gap: 5px; margin: 12px 0; }
1398
1569
  .character-detail-list div { display: grid; grid-template-columns: minmax(70px, .42fr) minmax(0, 1fr); gap: 8px; font-size: 10px; }
1399
1570
  .character-detail-list dt { color: var(--muted); }
@@ -1411,15 +1582,24 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1411
1582
  .dialog-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 24px 20px; }
1412
1583
  .dialog-actions .reset-button { margin-right: auto; }
1413
1584
  .import-mode-dialog { width: min(560px, calc(100vw - 32px)); }
1585
+ #import-mode-dialog-title:focus { outline: none; }
1414
1586
  .import-mode-body { display: grid; gap: 14px; padding: 20px 24px 6px; }
1415
1587
  .import-mode-body p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
1416
1588
  .import-mode-file-summary { overflow-wrap: anywhere; color: var(--ink) !important; font-weight: 600; }
1417
1589
  .import-mode-unsaved-warning { padding: 9px 11px; border: 1px solid color-mix(in srgb, var(--accent) 46%, var(--line)); border-radius: 4px; background: color-mix(in srgb, var(--accent) 8%, var(--surface)); color: var(--accent-dark) !important; }
1418
1590
  .import-mode-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
1419
- .import-mode-options section { display: grid; gap: 5px; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-soft); }
1420
- .import-mode-options strong { color: var(--ink); font-size: 12px; }
1421
- .import-mode-options span { color: var(--muted); font-size: 10px; line-height: 1.55; }
1591
+ .import-mode-option { position: relative; display: block; min-width: 0; cursor: pointer; }
1592
+ .import-mode-option input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
1593
+ .import-mode-option-card { display: grid; gap: 5px; height: 100%; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-soft); transition: border-color .14s ease, background .14s ease, box-shadow .14s ease; }
1594
+ .import-mode-option-card strong { color: var(--ink); font-size: 12px; }
1595
+ .import-mode-option-card > span { color: var(--muted); font-size: 10px; line-height: 1.55; }
1596
+ .import-mode-option:hover .import-mode-option-card { border-color: color-mix(in srgb, var(--accent) 58%, var(--line)); }
1597
+ .import-mode-option input:checked + .import-mode-option-card { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, var(--surface)); box-shadow: inset 0 0 0 1px var(--accent); }
1598
+ .import-mode-option input:checked + .import-mode-option-card::after { color: var(--accent-dark); content: "已选择"; font-size: 9px; font-weight: 600; }
1599
+ .import-mode-option input:focus-visible + .import-mode-option-card { outline: 2px solid var(--accent); outline-offset: 2px; }
1600
+ .import-mode-option input:disabled + .import-mode-option-card { cursor: not-allowed; opacity: .58; }
1422
1601
  .import-mode-permission { color: var(--accent-dark); font-size: 9px; line-height: 1.55; }
1602
+ .import-mode-dialog .primary-button:disabled { cursor: not-allowed; opacity: .42; }
1423
1603
  @media (max-width: 560px) {
1424
1604
  .import-mode-options { grid-template-columns: 1fr; }
1425
1605
  .import-mode-dialog .dialog-actions { flex-wrap: wrap; }
@@ -1429,6 +1609,7 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1429
1609
  .entity-editor-view.hidden, .entity-editor-page.hidden { display: none; }
1430
1610
  .entity-editor-page { width: 100%; height: 100%; min-height: 0; }
1431
1611
  #character-editor-form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
1612
+ #knowledge-editor-form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
1432
1613
  .entity-editor-header, .character-editor-header { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr) minmax(160px, 1fr); align-items: center; gap: 24px; min-height: 78px; padding: 14px clamp(18px, 3vw, 44px); border-bottom: 1px solid var(--line); background: var(--panel); }
1433
1614
  .entity-editor-heading { min-width: 0; text-align: center; }
1434
1615
  .entity-editor-heading h1 { overflow: hidden; margin: 2px 0 0; font-size: 24px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
@@ -1436,24 +1617,52 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1436
1617
  .entity-editor-back { justify-self: start; min-height: 36px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 4px; background: transparent; color: var(--muted); font-size: 11px; }
1437
1618
  .entity-editor-back::before { content: "←"; margin-right: 7px; }
1438
1619
  .entity-editor-back:hover { border-color: var(--accent); color: var(--accent-dark); }
1439
- .setting-editor-workspace { display: grid; grid-template-columns: minmax(260px, 330px) minmax(0, 1fr); height: calc(100% - 78px); min-height: 0; }
1440
- .setting-editor-sidebar { display: grid; align-content: start; gap: 22px; padding: 34px clamp(22px, 3vw, 42px); overflow-y: auto; border-right: 1px solid var(--line); background: var(--surface-soft); }
1441
- .setting-editor-sidebar > label { display: grid; gap: 8px; color: var(--muted); font-size: 11px; }
1442
- .setting-editor-sidebar input, .setting-editor-sidebar select { width: 100%; padding: 10px 11px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--ink); font-size: 13px; }
1443
- .setting-editor-lock { grid-template-columns: auto minmax(0, 1fr); align-items: start; padding: 14px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
1444
- .setting-editor-lock input { width: auto; margin-top: 3px; }
1445
- .setting-editor-lock span { display: grid; gap: 4px; }
1446
- .setting-editor-lock b { color: var(--ink); font-size: 11px; }
1447
- .setting-editor-lock small { line-height: 1.55; }
1448
- .setting-editor-content { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 14px; min-height: 0; padding: 34px clamp(28px, 6vw, 96px) 46px; }
1449
- .setting-editor-content > label { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; color: var(--ink); font-size: 14px; }
1450
- .setting-editor-content > label small { color: var(--muted); font-size: 10px; }
1451
- .setting-editor-content textarea { width: 100%; height: 100%; min-height: 0; padding: 26px 30px; resize: none; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); font-size: 15px; line-height: 1.8; }
1620
+ #setting-editor-form { display: grid; grid-template-rows: auto minmax(0, 1fr); }
1621
+ .setting-editor-header { min-height: 112px; }
1622
+ .setting-editor-heading { display: grid; align-content: center; gap: 8px; }
1623
+ .setting-editor-title-input { width: min(100%, 520px); margin: 0 auto; padding: 0 0 4px; border: 0; border-bottom: 1px solid transparent; border-radius: 0; background: transparent; color: var(--ink); font-size: 24px; font-weight: 600; line-height: 1.2; text-align: center; }
1624
+ .setting-editor-title-input::placeholder { color: var(--ink); opacity: .92; }
1625
+ .setting-editor-title-input:focus { border-color: var(--accent); box-shadow: none; }
1626
+ .setting-editor-header-fields { display: flex; align-items: center; justify-content: center; gap: 14px; min-width: 0; }
1627
+ .setting-editor-header-fields > label:not(.setting-editor-lock) { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; white-space: nowrap; }
1628
+ .setting-editor-header-fields select, .setting-editor-change-note input { min-width: 0; padding: 5px 8px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--ink); font-size: 11px; }
1629
+ .setting-editor-lock { display: inline-flex; grid-template-columns: none; align-items: center; gap: 6px; padding: 0; border: 0; background: transparent; white-space: nowrap; }
1630
+ .setting-editor-lock input { width: auto; margin: 0; }
1631
+ .setting-editor-lock span { display: block; }
1632
+ .setting-editor-lock b { color: var(--ink); font-size: 10px; }
1633
+ .setting-editor-lock small { display: none; }
1634
+ .setting-editor-change-note { align-items: center; gap: 6px; }
1635
+ .setting-editor-workspace { display: grid; grid-template-rows: auto minmax(0, 1fr); min-height: 0; overflow: hidden; }
1636
+ .setting-editor-content { height: 100%; min-height: 0; padding: 16px clamp(16px, 2vw, 32px) 24px; overflow: hidden; }
1637
+ .setting-markdown-field { display: grid; grid-template-rows: minmax(0, 1fr); height: 100%; min-height: 0; }
1638
+ .setting-markdown-heading, .markdown-editor-field-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; color: var(--ink); font-size: 14px; }
1639
+ .setting-markdown-heading small, .markdown-editor-field-heading small { color: var(--muted); font-size: 10px; }
1640
+ .markdown-editor-field { display: grid; gap: 10px; min-width: 0; }
1641
+ .markdown-editor-field .vditor-editor-host { min-height: 360px; }
1642
+ .vditor-editor-host { width: 100%; height: 100%; min-width: 0; min-height: 0; }
1643
+ .vditor-editor-host.vditor { height: 100% !important; min-height: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); }
1644
+ .vditor-editor-host.vditor:not(.vditor--dark) { --border-color: var(--line); --panel-background-color: var(--surface); --toolbar-background-color: var(--surface-soft); --toolbar-icon-color: var(--muted); --toolbar-icon-hover-color: var(--accent-dark); --textarea-background-color: var(--surface); --textarea-text-color: var(--ink); --heading-border-color: var(--line); --blockquote-color: var(--muted); }
1645
+ .vditor-editor-host.vditor--dark { --border-color: var(--line); --panel-background-color: var(--surface); --toolbar-background-color: var(--surface-soft); --toolbar-icon-color: var(--muted); --toolbar-icon-hover-color: var(--accent); --textarea-background-color: var(--surface); --textarea-text-color: var(--ink); --heading-border-color: var(--line); --blockquote-color: var(--muted); }
1646
+ .vditor-editor-host .vditor-toolbar { flex: 0 0 auto; }
1647
+ .vditor-editor-host .vditor-content { min-height: 0; }
1648
+ .vditor-editor-host .vditor-reset { color: var(--ink); font-family: var(--font-cjk), var(--font-latin), sans-serif; }
1649
+ .vditor-editor-host .vditor-ir, .vditor-editor-host .vditor-sv, .vditor-editor-host .vditor-wysiwyg { background: var(--surface); color: var(--ink); }
1650
+ .vditor-editor-host .vditor-sv textarea { color: var(--ink); }
1651
+ .record-markdown-preview { display: -webkit-box; margin: 12px 0 8px; overflow: hidden; overflow-wrap: anywhere; color: var(--ink); font-size: 12px; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 12; }
1652
+ .record-markdown-preview > :first-child, .knowledge-markdown-block .message-body > :first-child { margin-top: 0; }
1653
+ .record-markdown-preview > :last-child, .knowledge-markdown-block .message-body > :last-child { margin-bottom: 0; }
1654
+ .knowledge-markdown-block { min-width: 0; margin: 10px 0 0; padding: 11px 13px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
1655
+ .knowledge-markdown-block.inherited { border-style: dashed; background: var(--surface-soft); }
1656
+ .knowledge-markdown-block-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
1657
+ .knowledge-markdown-block-heading h4 { min-width: 0; margin: 0; overflow: hidden; color: var(--ink); font-size: 13px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
1658
+ .knowledge-markdown-block-heading small { color: var(--accent-dark); font-size: 9px; }
1659
+ .knowledge-markdown-block .message-body { overflow-wrap: anywhere; font-size: 12px; line-height: 1.65; }
1452
1660
  .character-editor-header > div:nth-child(2) { min-width: 0; text-align: center; }
1453
1661
  .character-editor-header h1, .character-editor-header h3 { margin: 0; }
1454
1662
  .character-editor-title-row { display: flex; align-items: center; gap: 10px; margin-top: 3px; }
1455
1663
  .character-editor-title-row { justify-content: center; }
1456
1664
  .character-editor-title-row h1 { overflow: hidden; font-size: 24px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
1665
+ .knowledge-editor-header-note { color: var(--muted); font-size: 10px; text-align: right; }
1457
1666
  .character-version-badge { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 8px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-deep); color: var(--accent-dark); font: 10px/1 var(--font-latin), monospace; }
1458
1667
  .character-editor-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
1459
1668
  .character-editor-header-actions .ghost-button { min-height: 34px; }
@@ -1472,12 +1681,30 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1472
1681
  .character-editor-section > header p { max-width: 430px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; text-align: right; }
1473
1682
  .character-editor-section-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 20px; }
1474
1683
  .character-editor-section-fields > label, .character-editor-section-fields > .form-field { display: grid; align-content: start; gap: 7px; color: var(--muted); font-size: 11px; }
1475
- .character-editor-section-fields > label:has(textarea), .character-editor-section-fields > .structured-list-field, .character-editor-section-fields > .chip-field, .character-editor-field-help { grid-column: 1 / -1; }
1684
+ .character-editor-section-fields > label:has(textarea), .character-editor-section-fields > .structured-list-field, .character-editor-section-fields > .chip-field, .character-editor-section-fields > .markdown-editor-field, .character-editor-field-help { grid-column: 1 / -1; }
1476
1685
  .character-editor-section-fields input, .character-editor-section-fields textarea, .character-editor-section-fields select { width: 100%; padding: 10px 11px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); font-size: 13px; }
1477
1686
  .character-editor-section-fields textarea { min-height: 120px; resize: vertical; line-height: 1.65; }
1478
1687
  .character-editor-section-fields .section-list-row textarea { min-height: 180px; }
1479
1688
  .character-editor-section-fields .member-chip { position: relative; display: inline-flex; width: auto; cursor: pointer; }
1480
1689
  .character-editor-section-fields .item-list-row button, .character-editor-section-fields .structured-list-row button { min-width: 54px; }
1690
+ .knowledge-markdown-sections { display: grid; grid-column: 1 / -1; gap: 14px; min-width: 0; }
1691
+ .knowledge-markdown-list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
1692
+ .knowledge-markdown-list-toolbar > div { display: grid; gap: 3px; }
1693
+ .knowledge-markdown-list-toolbar b { color: var(--ink); font-size: 13px; }
1694
+ .knowledge-markdown-list-toolbar span { color: var(--muted); font-size: 10px; }
1695
+ .knowledge-markdown-list-toolbar .ghost-button { width: auto; min-height: 34px; padding: 7px 11px; }
1696
+ .knowledge-markdown-list { display: grid; gap: 10px; }
1697
+ .knowledge-markdown-section { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
1698
+ .knowledge-markdown-section > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 13px 15px; border-bottom: 1px solid var(--line); background: var(--surface-soft); }
1699
+ .knowledge-markdown-section > header > div:first-child { display: grid; gap: 4px; min-width: 0; }
1700
+ .knowledge-markdown-section > header span { color: var(--accent-dark); font-size: 9px; letter-spacing: .08em; }
1701
+ .knowledge-markdown-section > header h4 { margin: 0; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
1702
+ .knowledge-markdown-section > header p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
1703
+ .knowledge-markdown-section > header > div:last-child { display: flex; flex: 0 0 auto; gap: 5px; }
1704
+ .knowledge-markdown-section > header button { padding: 5px 8px; border: 1px solid var(--line); border-radius: 4px; background: transparent; color: var(--muted); font-size: 9px; }
1705
+ .knowledge-markdown-section > header button:hover { border-color: var(--accent); color: var(--accent-dark); }
1706
+ .knowledge-section-card-preview { max-height: 74px; margin: 0; padding: 12px 15px; overflow: hidden; color: var(--muted); font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; }
1707
+ .knowledge-markdown-empty { margin: 0; padding: 28px 14px; border: 1px dashed var(--line); border-radius: 5px; color: var(--muted); font-size: 11px; text-align: center; }
1481
1708
  .character-editor-relationships-field { display: grid; grid-column: 1 / -1; gap: 12px; }
1482
1709
  .character-relationship-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
1483
1710
  .character-relationship-toolbar p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
@@ -1514,28 +1741,20 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1514
1741
  .character-markdown-document h1, .character-markdown-document h2, .character-markdown-document h3, .character-markdown-document h4, .character-markdown-document h5, .character-markdown-document h6 { color: var(--ink); }
1515
1742
  .character-markdown-document blockquote { background: var(--paper-deep); }
1516
1743
  .character-markdown-empty, .character-markdown-status { margin: 0; padding: 18px; border: 1px dashed var(--line); border-radius: 5px; color: var(--muted); font-size: 10px; text-align: center; }
1517
- #character-section-editor-view { background: var(--panel); }
1744
+ #character-section-editor-view, #knowledge-section-editor-view { background: var(--panel); }
1518
1745
  .character-section-editor-host, .character-section-editor-shell { width: 100%; height: 100%; min-height: 0; }
1519
1746
  .character-section-editor-shell { display: grid; grid-template-rows: auto minmax(0, 1fr); }
1520
1747
  .character-section-editor-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; min-height: 78px; padding: 14px clamp(18px, 3vw, 44px); border-bottom: 1px solid var(--line); background: var(--panel); }
1521
1748
  .character-section-editor-header > div { grid-column: 1; grid-row: 1; justify-self: center; text-align: center; }
1522
1749
  .character-section-editor-header .entity-editor-back { grid-column: 1; grid-row: 1; z-index: 1; }
1523
1750
  .character-section-editor-header h2 { margin: 3px 0 0; font-size: 22px; font-weight: 600; }
1524
- .character-markdown-editor { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 12px; min-height: 0; padding: 16px 22px 18px; overflow: hidden; background: var(--surface-soft); }
1751
+ .character-markdown-editor { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 12px; min-height: 0; padding: 16px 22px 18px; overflow: hidden; background: var(--surface-soft); }
1525
1752
  .character-markdown-editor-meta { display: grid; grid-template-columns: minmax(140px, .55fr) minmax(220px, 1fr) minmax(280px, 1.45fr); gap: 12px; }
1526
1753
  .character-markdown-editor label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; }
1527
1754
  .character-markdown-editor input, .character-markdown-editor select, .character-markdown-editor textarea { width: 100%; padding: 9px 10px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--ink); font-size: 12px; }
1528
1755
  .character-markdown-summary-field textarea { min-height: 42px; height: 42px; resize: vertical; }
1529
- .character-markdown-toolbar { display: flex; align-items: center; gap: 10px; }
1530
- .character-markdown-toolbar .ghost-button { display: inline-flex; width: auto; padding: 7px 10px; border: 1px solid var(--line); border-radius: 4px; color: var(--ink); cursor: pointer; }
1531
- .character-markdown-compose { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; min-height: 0; }
1532
- .character-markdown-compose > label, .character-markdown-compose > div { min-width: 0; min-height: 0; }
1533
- .character-markdown-compose > label { grid-template-rows: auto minmax(0, 1fr); }
1534
- .character-markdown-compose textarea { height: 100%; min-height: 0; resize: none; font-family: var(--font-latin), var(--font-cjk), monospace; line-height: 1.65; tab-size: 2; }
1535
- .character-markdown-compose > div { display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
1536
- .character-markdown-preview-label { padding: 8px 10px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; }
1537
- .character-markdown-compose .character-markdown-document { overflow-y: auto; padding: 14px 16px; }
1538
1756
  .character-markdown-editor-footer { display: grid; grid-template-columns: minmax(0, 620px) auto; align-items: end; justify-content: space-between; gap: 18px; }
1757
+ .knowledge-section-editor-note { color: var(--muted); font-size: 10px; }
1539
1758
  .character-markdown-editor-actions { display: flex; justify-content: flex-end; gap: 8px; }
1540
1759
  .character-markdown-version-list { display: grid; gap: 7px; padding: 10px 16px 16px; border-top: 1px solid var(--line); background: var(--surface-soft); }
1541
1760
  .character-markdown-version-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
@@ -1567,9 +1786,11 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1567
1786
  .character-editor-actions input { width: 100%; padding: 9px 10px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); font-size: 12px; }
1568
1787
  .character-editor-actions > div { display: flex; gap: 8px; }
1569
1788
  .character-editor-actions button { min-height: 36px; }
1789
+ .knowledge-editor-actions > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
1570
1790
  .appearance-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 22px 24px; }
1571
1791
  .appearance-grid label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; }
1572
1792
  .appearance-grid select { width: 100%; padding: 9px 10px; font-size: 13px; }
1793
+ .appearance-whitespace-field { grid-column: 1 / -1; }
1573
1794
  .font-preview { grid-column: 1 / -1; padding: 16px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); }
1574
1795
  .font-preview strong, .font-preview span { display: block; }
1575
1796
  .font-preview strong { margin-bottom: 8px; font-size: 17px; }
@@ -1599,8 +1820,11 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1599
1820
  .entity-version-card > button.is-confirming { border-color: var(--accent); background: var(--accent); color: #fff; }
1600
1821
  .entity-version-card > button:disabled { cursor: default; opacity: .68; }
1601
1822
  .entity-history-empty { margin: 0; padding: 28px 12px; color: var(--muted); font-size: 11px; text-align: center; }
1602
- .relationship-table .relationship-actions { white-space: nowrap; }
1603
- .relationship-table .relationship-actions button + button { margin-left: 5px; }
1823
+ .relationship-table .relationship-actions { white-space: nowrap; vertical-align: middle; }
1824
+ .relationship-table .relationship-actions button { display: inline-block; min-height: 30px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--muted); font: inherit; font-size: 10px; line-height: 1.2; vertical-align: middle; appearance: none; transition: border-color .14s ease, background .14s ease, color .14s ease; }
1825
+ .relationship-table .relationship-actions button + button { margin-left: 6px; }
1826
+ .relationship-table .relationship-actions button:hover, .relationship-table .relationship-actions button:focus-visible { border-color: var(--accent); background: var(--surface-hover); color: var(--accent-dark); outline: none; }
1827
+ .relationship-table .relationship-actions button[data-edit-relationship] { color: var(--ink); }
1604
1828
 
1605
1829
  @media (max-width: 540px) {
1606
1830
  .member-permission-grid { grid-template-columns: minmax(0, 1fr); }
@@ -1631,14 +1855,23 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1631
1855
  .top-actions .ghost-button:not(.settings-button) { display: none; }
1632
1856
  .book-shelf { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
1633
1857
  .settings-hub-grid { grid-template-columns: 1fr; }
1858
+ .settings-layout-toolbar, .module-layout-toolbar { justify-content: stretch; }
1859
+ .settings-layout-toggle, .module-layout-toggle { width: 100%; }
1860
+ .settings-layout-toggle button, .module-layout-toggle button { flex: 1; }
1861
+ .setting-row, .module-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
1862
+ .setting-row .card-actions, .module-row .card-actions { justify-content: flex-start; }
1634
1863
  .entity-editor-header, .character-editor-header { grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; padding-inline: 12px; }
1635
1864
  .entity-editor-heading h1, .character-editor-title-row h1 { font-size: 18px; }
1636
1865
  .entity-editor-back { overflow: hidden; width: 40px; min-width: 40px; padding-inline: 11px; white-space: nowrap; }
1637
1866
  .entity-editor-back::before { margin-right: 18px; }
1638
- .setting-editor-workspace { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); overflow-y: auto; }
1639
- .setting-editor-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 18px; overflow: visible; border-right: 0; border-bottom: 1px solid var(--line); }
1640
- .setting-editor-content { min-height: 70dvh; padding: 20px 18px; }
1641
- .setting-editor-content > label { align-items: flex-start; flex-direction: column; gap: 4px; }
1867
+ .setting-editor-header { min-height: 102px; }
1868
+ .setting-editor-header-fields { flex-wrap: wrap; gap: 8px 12px; }
1869
+ .setting-editor-title-input { font-size: 18px; }
1870
+ .setting-editor-workspace { overflow-y: auto; }
1871
+ .setting-editor-content { height: auto; min-height: 70dvh; padding: 16px; }
1872
+ .setting-markdown-field { height: 70dvh; }
1873
+ .setting-markdown-heading, .markdown-editor-field-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
1874
+ .setting-markdown-field > .vditor-editor-host, .markdown-editor-field .vditor-editor-host { min-height: 42dvh; }
1642
1875
  .character-editor-workspace, .character-editor-workspace.history-open { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
1643
1876
  .character-editor-nav { flex-direction: row; overflow-x: auto; padding: 8px 10px; border-right: 0; border-bottom: 1px solid var(--line); }
1644
1877
  .character-editor-nav button { flex: 0 0 130px; }
@@ -1647,10 +1880,8 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1647
1880
  .character-editor-section-fields > label, .character-editor-section-fields > .form-field, .character-editor-field-help { grid-column: 1; }
1648
1881
  .character-editor-section > header { align-items: flex-start; flex-direction: column; gap: 7px; }
1649
1882
  .character-editor-section > header p { text-align: left; }
1650
- .character-markdown-editor { overflow-y: auto; }
1651
- .character-markdown-compose { grid-template-columns: minmax(0, 1fr); min-height: auto; }
1652
- .character-markdown-compose textarea { min-height: 42dvh; resize: vertical; }
1653
- .character-markdown-compose > div { min-height: 42dvh; }
1883
+ .character-markdown-editor { overflow: hidden; }
1884
+ .character-markdown-editor > .vditor-editor-host { min-height: 42dvh; }
1654
1885
  .character-markdown-editor-meta { grid-template-columns: minmax(0, 1fr); }
1655
1886
  .character-markdown-summary-field textarea { min-height: 72px; height: auto; }
1656
1887
  .character-markdown-editor-footer { grid-template-columns: minmax(0, 1fr); gap: 10px; }
@@ -1660,7 +1891,8 @@ select:focus, input:focus, textarea:focus { border-color: #a77768; box-shadow: 0
1660
1891
  }
1661
1892
 
1662
1893
  @media (max-width: 640px) {
1663
- .setting-editor-sidebar { grid-template-columns: minmax(0, 1fr); }
1894
+ .setting-editor-heading { gap: 6px; }
1895
+ .setting-editor-header-fields { align-items: flex-start; flex-direction: column; }
1664
1896
  .ai-history-dialog-body { min-height: min(360px, 62vh); padding: 12px 14px 18px; }
1665
1897
  .account-settings-body { padding: 16px; }
1666
1898
  .account-settings-section { padding: 15px; }