most-box 0.1.5 → 0.1.6

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 (382) hide show
  1. package/README.md +15 -8
  2. package/out/404/index.html +3 -3
  3. package/out/404.html +3 -3
  4. package/out/__next.__PAGE__.txt +6 -6
  5. package/out/__next._full.txt +16 -16
  6. package/out/__next._head.txt +3 -3
  7. package/out/__next._index.txt +8 -8
  8. package/out/__next._tree.txt +5 -5
  9. package/out/_next/static/chunks/{06lttvu7563zo.css → 0-ryc9icn6dql.css} +1 -1
  10. package/out/_next/static/chunks/{0ccalho416.d7.js → 088-v8tzobg5g.js} +1 -1
  11. package/out/_next/static/chunks/0g9303i8psy6z.js +1 -0
  12. package/out/_next/static/chunks/0nwdp-n94owg0.css +1 -0
  13. package/out/_next/static/chunks/0vmjat-s4a3yj.css +1 -0
  14. package/out/_next/static/chunks/10p6-qnuk3p9x.js +1 -0
  15. package/out/_next/static/chunks/1ei8b9nw-ea8p.css +1 -0
  16. package/out/_next/static/chunks/{02jvyg27pp0mz.js → 1v-molv0hbcjl.js} +1 -1
  17. package/out/_next/static/chunks/23kls47vn_rpg.css +23 -0
  18. package/out/_next/static/chunks/2524ggtr3e4fp.js +1 -0
  19. package/out/_next/static/chunks/2fmkcw8ui5xp3.js +5 -0
  20. package/out/_next/static/chunks/2mcmt4yla_xle.js +1 -0
  21. package/out/_next/static/chunks/2uget3ephe4e3.js +736 -0
  22. package/out/_next/static/chunks/2va-v1iiap4zv.js +1 -0
  23. package/out/_next/static/chunks/2vk2ln79gpvm4.js +1 -0
  24. package/out/_next/static/chunks/2vm9uslik2wfi.css +5 -0
  25. package/out/_next/static/chunks/37msy2-4ucgts.js +1 -0
  26. package/out/_next/static/chunks/384w3w4qvhw61.js +1 -0
  27. package/out/_next/static/chunks/3aa-weedhv4e0.js +1 -0
  28. package/out/_next/static/chunks/3erbaukgkw8f2.js +1 -0
  29. package/out/_next/static/chunks/3fea100s764m-.js +1 -0
  30. package/out/_next/static/chunks/3g0c367tk4esf.js +1 -0
  31. package/out/_next/static/chunks/{0gcsdf57gcm6h.js → 3oe03qxgd_rid.js} +1 -1
  32. package/out/_next/static/chunks/3qj5xz_d4cbk6.js +1 -0
  33. package/out/_next/static/chunks/3r5wf57k0gys9.js +1 -0
  34. package/out/_next/static/chunks/3yc_zd5vxq0j7.css +1 -0
  35. package/out/_next/static/chunks/{turbopack-05qngmxam3ar~.js → turbopack-026p0g9v9_pva.js} +1 -1
  36. package/out/_not-found/__next._full.txt +13 -13
  37. package/out/_not-found/__next._head.txt +3 -3
  38. package/out/_not-found/__next._index.txt +8 -8
  39. package/out/_not-found/__next._not-found.__PAGE__.txt +4 -4
  40. package/out/_not-found/__next._not-found.txt +3 -3
  41. package/out/_not-found/__next._tree.txt +3 -3
  42. package/out/_not-found/index.html +3 -3
  43. package/out/_not-found/index.txt +13 -13
  44. package/out/admin/__next._full.txt +15 -15
  45. package/out/admin/__next._head.txt +3 -3
  46. package/out/admin/__next._index.txt +8 -8
  47. package/out/admin/__next._tree.txt +4 -4
  48. package/out/admin/__next.admin.__PAGE__.txt +4 -4
  49. package/out/admin/__next.admin.txt +4 -4
  50. package/out/admin/index.html +3 -3
  51. package/out/admin/index.txt +15 -15
  52. package/out/app/__next._full.txt +14 -14
  53. package/out/app/__next._head.txt +3 -3
  54. package/out/app/__next._index.txt +8 -8
  55. package/out/app/__next._tree.txt +3 -3
  56. package/out/app/__next.app.__PAGE__.txt +4 -4
  57. package/out/app/__next.app.txt +3 -3
  58. package/out/app/index.html +3 -3
  59. package/out/app/index.txt +14 -14
  60. package/out/chat/__next._full.txt +15 -15
  61. package/out/chat/__next._head.txt +3 -3
  62. package/out/chat/__next._index.txt +8 -8
  63. package/out/chat/__next._tree.txt +4 -4
  64. package/out/chat/__next.chat.__PAGE__.txt +4 -4
  65. package/out/chat/__next.chat.txt +4 -4
  66. package/out/chat/index.html +3 -3
  67. package/out/chat/index.txt +15 -15
  68. package/out/chat/join/__next._full.txt +15 -15
  69. package/out/chat/join/__next._head.txt +3 -3
  70. package/out/chat/join/__next._index.txt +8 -8
  71. package/out/chat/join/__next._tree.txt +4 -4
  72. package/out/chat/join/__next.chat.join.__PAGE__.txt +4 -4
  73. package/out/chat/join/__next.chat.join.txt +3 -3
  74. package/out/chat/join/__next.chat.txt +4 -4
  75. package/out/chat/join/index.html +3 -3
  76. package/out/chat/join/index.txt +15 -15
  77. package/out/demo/__next._full.txt +27 -0
  78. package/out/demo/__next._head.txt +5 -0
  79. package/out/demo/__next._index.txt +9 -0
  80. package/out/demo/__next._tree.txt +7 -0
  81. package/out/demo/__next.demo.__PAGE__.txt +12 -0
  82. package/out/demo/__next.demo.txt +5 -0
  83. package/out/demo/index.html +17 -0
  84. package/out/demo/index.txt +27 -0
  85. package/out/download/__next._full.txt +22 -22
  86. package/out/download/__next._head.txt +3 -3
  87. package/out/download/__next._index.txt +8 -8
  88. package/out/download/__next._tree.txt +5 -5
  89. package/out/download/__next.download.__PAGE__.txt +7 -7
  90. package/out/download/__next.download.txt +3 -3
  91. package/out/download/index.html +3 -3
  92. package/out/download/index.txt +22 -22
  93. package/out/game/__next._full.txt +13 -13
  94. package/out/game/__next._head.txt +3 -3
  95. package/out/game/__next._index.txt +8 -8
  96. package/out/game/__next._tree.txt +4 -4
  97. package/out/game/__next.game.__PAGE__.txt +2 -2
  98. package/out/game/__next.game.txt +4 -4
  99. package/out/game/gandengyan/__next._full.txt +16 -16
  100. package/out/game/gandengyan/__next._head.txt +3 -3
  101. package/out/game/gandengyan/__next._index.txt +8 -8
  102. package/out/game/gandengyan/__next._tree.txt +5 -5
  103. package/out/game/gandengyan/__next.game.gandengyan.__PAGE__.txt +5 -5
  104. package/out/game/gandengyan/__next.game.gandengyan.txt +3 -3
  105. package/out/game/gandengyan/__next.game.txt +4 -4
  106. package/out/game/gandengyan/index.html +3 -3
  107. package/out/game/gandengyan/index.txt +16 -16
  108. package/out/game/index.html +1 -1
  109. package/out/game/index.txt +13 -13
  110. package/out/game/zhajinhua/__next._full.txt +15 -15
  111. package/out/game/zhajinhua/__next._head.txt +3 -3
  112. package/out/game/zhajinhua/__next._index.txt +8 -8
  113. package/out/game/zhajinhua/__next._tree.txt +4 -4
  114. package/out/game/zhajinhua/__next.game.txt +4 -4
  115. package/out/game/zhajinhua/__next.game.zhajinhua.__PAGE__.txt +4 -4
  116. package/out/game/zhajinhua/__next.game.zhajinhua.txt +3 -3
  117. package/out/game/zhajinhua/index.html +3 -3
  118. package/out/game/zhajinhua/index.txt +15 -15
  119. package/out/index.html +3 -3
  120. package/out/index.txt +16 -16
  121. package/out/note/__next._full.txt +14 -14
  122. package/out/note/__next._head.txt +3 -3
  123. package/out/note/__next._index.txt +8 -8
  124. package/out/note/__next._tree.txt +3 -3
  125. package/out/note/__next.note.__PAGE__.txt +4 -4
  126. package/out/note/__next.note.txt +3 -3
  127. package/out/note/index.html +3 -3
  128. package/out/note/index.txt +14 -14
  129. package/out/ping/__next._full.txt +16 -16
  130. package/out/ping/__next._head.txt +3 -3
  131. package/out/ping/__next._index.txt +8 -8
  132. package/out/ping/__next._tree.txt +5 -5
  133. package/out/ping/__next.ping.__PAGE__.txt +5 -5
  134. package/out/ping/__next.ping.txt +4 -4
  135. package/out/ping/index.html +3 -3
  136. package/out/ping/index.txt +16 -16
  137. package/out/web3/__next._full.txt +15 -15
  138. package/out/web3/__next._head.txt +3 -3
  139. package/out/web3/__next._index.txt +8 -8
  140. package/out/web3/__next._tree.txt +4 -4
  141. package/out/web3/__next.web3.__PAGE__.txt +4 -4
  142. package/out/web3/__next.web3.txt +4 -4
  143. package/out/web3/ed25519/__next._full.txt +13 -13
  144. package/out/web3/ed25519/__next._head.txt +3 -3
  145. package/out/web3/ed25519/__next._index.txt +8 -8
  146. package/out/web3/ed25519/__next._tree.txt +4 -4
  147. package/out/web3/ed25519/__next.web3.ed25519.__PAGE__.txt +2 -2
  148. package/out/web3/ed25519/__next.web3.ed25519.txt +3 -3
  149. package/out/web3/ed25519/__next.web3.txt +4 -4
  150. package/out/web3/ed25519/index.html +1 -1
  151. package/out/web3/ed25519/index.txt +13 -13
  152. package/out/web3/index.html +3 -3
  153. package/out/web3/index.txt +15 -15
  154. package/out/web3/tools/__next._full.txt +13 -13
  155. package/out/web3/tools/__next._head.txt +3 -3
  156. package/out/web3/tools/__next._index.txt +8 -8
  157. package/out/web3/tools/__next._tree.txt +4 -4
  158. package/out/web3/tools/__next.web3.tools.__PAGE__.txt +2 -2
  159. package/out/web3/tools/__next.web3.tools.txt +3 -3
  160. package/out/web3/tools/__next.web3.txt +4 -4
  161. package/out/web3/tools/index.html +1 -1
  162. package/out/web3/tools/index.txt +13 -13
  163. package/package.json +23 -23
  164. package/server/src/core/mostLink.js +1 -1
  165. package/server/src/games/gandengyan.js +40 -14
  166. package/server/src/http/app.js +25 -2
  167. package/server/src/http/nodeStatus.js +37 -0
  168. package/server/src/index.js +152 -24
  169. package/out/_next/static/chunks/0.4ov9319fecg.css +0 -1
  170. package/out/_next/static/chunks/0._8s6pbfw.xk.js +0 -1
  171. package/out/_next/static/chunks/09h7l4i38xc7q.css +0 -24
  172. package/out/_next/static/chunks/09hqx79-jkvm_.css +0 -1
  173. package/out/_next/static/chunks/09vcm1ku9k7o8.js +0 -1
  174. package/out/_next/static/chunks/0c6e_d2jq179x.js +0 -1
  175. package/out/_next/static/chunks/0exj_tg.ew-t3.js +0 -1
  176. package/out/_next/static/chunks/0f-wz5d~tv-r4.js +0 -1
  177. package/out/_next/static/chunks/0f0jhsujtf-61.js +0 -1
  178. package/out/_next/static/chunks/0h4r.qtmpa6eh.js +0 -1
  179. package/out/_next/static/chunks/0hyds~bp.auvh.js +0 -1
  180. package/out/_next/static/chunks/0iq1h7g4dudg8.js +0 -1
  181. package/out/_next/static/chunks/0knnzo9aih48r.js +0 -1
  182. package/out/_next/static/chunks/0nzyk~sg_tn._.js +0 -1
  183. package/out/_next/static/chunks/0o9ce4cyf76by.js +0 -736
  184. package/out/_next/static/chunks/0t_3xxx4zkerp.js +0 -5
  185. package/out/_next/static/chunks/0xdwau5k2augv.css +0 -4
  186. package/out/_next/static/chunks/0xrqerhosrp9~.js +0 -1
  187. package/out/_next/static/chunks/0xx_10jns1.s7.css +0 -1
  188. package/out/_next/static/chunks/14-fm9r_mom81.js +0 -1
  189. package/out/_next/static/chunks/14jhy~xia8lh8.js +0 -1
  190. /package/out/_next/static/{2smv1H9Y4Z2Ri-SL-UFgR → NPIlpdzQWkiVZpgfhlypH}/_buildManifest.js +0 -0
  191. /package/out/_next/static/{2smv1H9Y4Z2Ri-SL-UFgR → NPIlpdzQWkiVZpgfhlypH}/_clientMiddlewareManifest.js +0 -0
  192. /package/out/_next/static/{2smv1H9Y4Z2Ri-SL-UFgR → NPIlpdzQWkiVZpgfhlypH}/_ssgManifest.js +0 -0
  193. /package/out/_next/static/chunks/{0bld2u_ld~va2.js → 0-jy8rfo075fy.js} +0 -0
  194. /package/out/_next/static/chunks/{0bliugh5lxw55.js → 0-kczrcxjk7lc.js} +0 -0
  195. /package/out/_next/static/chunks/{00d9h1tddnnnd.js → 012yllpioyi-k.js} +0 -0
  196. /package/out/_next/static/chunks/{00tkdqwxch-3s.js → 02f7w-ybfnvpd.js} +0 -0
  197. /package/out/_next/static/chunks/{01l3o90g~1z42.js → 04_v8i3c2y4ni.js} +0 -0
  198. /package/out/_next/static/chunks/{01xlw8hd842-c.js → 05-c3ty_6dwfk.js} +0 -0
  199. /package/out/_next/static/chunks/{01mfky9camw6i.js → 052vp9tk7oqx6.js} +0 -0
  200. /package/out/_next/static/chunks/{01r.v-pqs1vrm.js → 05k6874y7n0cw.js} +0 -0
  201. /package/out/_next/static/chunks/{02zzxfop_k6tl.css → 09g8c9-u_uh1z.css} +0 -0
  202. /package/out/_next/static/chunks/{03edqrb4zdj~g.js → 0az8vxg2gfuhm.js} +0 -0
  203. /package/out/_next/static/chunks/{03h_6oo-gqkhz.js → 0b899y85ei3i_.js} +0 -0
  204. /package/out/_next/static/chunks/{03~yq9q893hmn.js → 0cz1d0mv5g_q7.js} +0 -0
  205. /package/out/_next/static/chunks/{04hcgsanv1hhu.js → 0eg1osglq6nq7.js} +0 -0
  206. /package/out/_next/static/chunks/{05g2q0w5b34.g.js → 0hlvocunlbrjs.js} +0 -0
  207. /package/out/_next/static/chunks/{05of77xycbt8~.js → 0i9k23rx749fx.js} +0 -0
  208. /package/out/_next/static/chunks/{05zwemzfjx3sh.js → 0j6wiyqf1637r.js} +0 -0
  209. /package/out/_next/static/chunks/{06dpc5df94.v1.js → 0knzyzd1jvley.js} +0 -0
  210. /package/out/_next/static/chunks/{06e1~1-z_ic9a.js → 0kp8ujaqwut11.js} +0 -0
  211. /package/out/_next/static/chunks/{075s7sn.ns~u5.js → 0n92y9hb-ta0u.js} +0 -0
  212. /package/out/_next/static/chunks/{07dynrbvd3.f4.js → 0nybb-z3ufrbx.js} +0 -0
  213. /package/out/_next/static/chunks/{07r9nn-pzlgg1.js → 0o-o9af-grvj8.js} +0 -0
  214. /package/out/_next/static/chunks/{07p~uva5pwgwe.js → 0oxr0r0aewn99.js} +0 -0
  215. /package/out/_next/static/chunks/{08576xhv~~jck.js → 0qh3b90ouc9bd.js} +0 -0
  216. /package/out/_next/static/chunks/{08qqf0rsi3oot.js → 0s7i7nfr9j3b1.js} +0 -0
  217. /package/out/_next/static/chunks/{08u211~k~qu52.js → 0sh_jm8siqvek.js} +0 -0
  218. /package/out/_next/static/chunks/{08.72abkgwy9g.js → 0t86ducxkqweb.js} +0 -0
  219. /package/out/_next/static/chunks/{098.p.2-zm4p7.js → 0u0j5i6-n4oqd.js} +0 -0
  220. /package/out/_next/static/chunks/{09ngvtajm7e5y.js → 0v73vfxjds7sj.js} +0 -0
  221. /package/out/_next/static/chunks/{09ps~-43n5qyo.js → 0ve8ixremhwy0.js} +0 -0
  222. /package/out/_next/static/chunks/{09v7_0gclxr46.js → 0vv5cwj6kr506.js} +0 -0
  223. /package/out/_next/static/chunks/{09yql86dir9c4.js → 0w3wf8o-ewec9.js} +0 -0
  224. /package/out/_next/static/chunks/{09zmlfljowj1~.js → 0w6o4o76scrb2.js} +0 -0
  225. /package/out/_next/static/chunks/{0n4t80gjc3q5h.js → 1-88dio6azz54.js} +0 -0
  226. /package/out/_next/static/chunks/{0cn9a7aimbdzq.js → 12zg24u7mbv4z.js} +0 -0
  227. /package/out/_next/static/chunks/{0d3f-nk3c.2re.js → 14lsse587-ccf.js} +0 -0
  228. /package/out/_next/static/chunks/{0dtohpf7~3d12.js → 16qtikqm_sate.js} +0 -0
  229. /package/out/_next/static/chunks/{0e531nije_ln2.js → 17_ly1mk2z3q8.js} +0 -0
  230. /package/out/_next/static/chunks/{0e5zvj_rh0z3m.js → 181421-y2xzj7.js} +0 -0
  231. /package/out/_next/static/chunks/{0myp4sjagr~h0.js → 1_e-vuvfsntao.js} +0 -0
  232. /package/out/_next/static/chunks/{0e-3e8h7g99yf.js → 1aljc62wfhqhr.js} +0 -0
  233. /package/out/_next/static/chunks/{0f4y~rkk-n81e.js → 1b7mbzsylsn-m.js} +0 -0
  234. /package/out/_next/static/chunks/{0fk~0~p7ivfn1.js → 1cjakikh0o1tm.js} +0 -0
  235. /package/out/_next/static/chunks/{0fw6juc~lsj3z.js → 1dfzez629llzh.js} +0 -0
  236. /package/out/_next/static/chunks/{0g0u7785a73vo.js → 1e4ilit3ave6c.js} +0 -0
  237. /package/out/_next/static/chunks/{0gze5uso1mbe9.js → 1gzgcv355ziff.js} +0 -0
  238. /package/out/_next/static/chunks/{0g_fpgh7drfda.js → 1h0o6fj73le9_.js} +0 -0
  239. /package/out/_next/static/chunks/{0hf.aosc-7172.js → 1in766ibz5l-p.js} +0 -0
  240. /package/out/_next/static/chunks/{0hgz35c1ejbs9.js → 1ip_c70si4tj2.js} +0 -0
  241. /package/out/_next/static/chunks/{0hrw-r.xmvmsq.js → 1jlu197-yog_n.js} +0 -0
  242. /package/out/_next/static/chunks/{0hzg4al.v~8~m.js → 1k788fny29y_j.js} +0 -0
  243. /package/out/_next/static/chunks/{0ig8a4sazk3~2.css → 1lxjpnw925-0p.css} +0 -0
  244. /package/out/_next/static/chunks/{0ip9xrols_83o.js → 1mnhfyfn52md5.js} +0 -0
  245. /package/out/_next/static/chunks/{0j4-d0qf.v~kn.js → 1o8brm8yipzn4.js} +0 -0
  246. /package/out/_next/static/chunks/{0jhdeq.j9_02m.js → 1p8oa39bqu6ed.js} +0 -0
  247. /package/out/_next/static/chunks/{0jy63h3i-y69i.js → 1qmnmb_dutuw8.js} +0 -0
  248. /package/out/_next/static/chunks/{0kdnx_u-60k9s.js → 1s6rdcw0q185p.js} +0 -0
  249. /package/out/_next/static/chunks/{0kq~edq42o1-c.js → 1ta0w8zc7tae7.js} +0 -0
  250. /package/out/_next/static/chunks/{0l682p362d-5w.js → 1uvi_hie0s3z5.js} +0 -0
  251. /package/out/_next/static/chunks/{0m68p9txef5rs.js → 1y36s6sv2z7r4.js} +0 -0
  252. /package/out/_next/static/chunks/{0mme-fm5d2oz2.js → 1zf4i-oj7n-ll.js} +0 -0
  253. /package/out/_next/static/chunks/{0y.li-~3oybew.js → 2-vtwv8h_uokj.js} +0 -0
  254. /package/out/_next/static/chunks/{0n.qlfk~z7o.6.js → 2227enga_0c-6.js} +0 -0
  255. /package/out/_next/static/chunks/{0oz3yl6_-716p.js → 24zr4q96g-eii.js} +0 -0
  256. /package/out/_next/static/chunks/{0pqt~8bl3ukh4.js → 27jktro2p5rq9.js} +0 -0
  257. /package/out/_next/static/chunks/{0yl2t7cs-n_ng.js → 2_cqphhur0a6t.js} +0 -0
  258. /package/out/_next/static/chunks/{0yq3kh.hchtm_.js → 2_s88st3j0tql.js} +0 -0
  259. /package/out/_next/static/chunks/{0ys0l5au.9c2c.js → 2_y6edbaubqrt.js} +0 -0
  260. /package/out/_next/static/chunks/{0qqupeexg83u7.js → 2at8y3pbt5cue.js} +0 -0
  261. /package/out/_next/static/chunks/{0rb-ri481.kc9.js → 2cv1zex4has67.js} +0 -0
  262. /package/out/_next/static/chunks/{0rsnmahfd.59p.js → 2e6j5h4ftd4jd.js} +0 -0
  263. /package/out/_next/static/chunks/{0rt6rgnvr-s_p.js → 2e8b26r0td7ou.js} +0 -0
  264. /package/out/_next/static/chunks/{0runh28p_gg6..js → 2ecppdrjm9cs4.js} +0 -0
  265. /package/out/_next/static/chunks/{0shy.t1fwqcev.js → 2gl0wusc9zf3d.js} +0 -0
  266. /package/out/_next/static/chunks/{0t2xr05rlu96l.js → 2im7c515bo69p.js} +0 -0
  267. /package/out/_next/static/chunks/{0t6h56rhg1y5i.js → 2ixaku9ie8hym.js} +0 -0
  268. /package/out/_next/static/chunks/{0tdqd1zunusgk.js → 2jhnrjgj_k2-z.js} +0 -0
  269. /package/out/_next/static/chunks/{0ujbnp38x63ek.js → 2n6pb94vmohgf.js} +0 -0
  270. /package/out/_next/static/chunks/{0ukyg~tkm~h2m.css → 2nbju8t9-ux58.css} +0 -0
  271. /package/out/_next/static/chunks/{0v68pdrp54lb-.js → 2pdxw43rsbho0.js} +0 -0
  272. /package/out/_next/static/chunks/{0vsm0m5sxrb.3.js → 2r6z3vlfw0ppd.js} +0 -0
  273. /package/out/_next/static/chunks/{0vzlz.iboqo3c.js → 2rskzmv3skmq3.js} +0 -0
  274. /package/out/_next/static/chunks/{0w87vbpkf-ogd.js → 2stoe6xiau1b3.js} +0 -0
  275. /package/out/_next/static/chunks/{0w~2fjq86t7c7.css → 2v7_4ps1l4a8o.css} +0 -0
  276. /package/out/_next/static/chunks/{0xgg0~kmf3gd-.js → 2wqoc60afpg_5.js} +0 -0
  277. /package/out/_next/static/chunks/{0xj24-70ptdzp.js → 2wyvwsayrr98o.js} +0 -0
  278. /package/out/_next/static/chunks/{0xxlx772fr3x4.js → 2y3o2mnyfnx68.js} +0 -0
  279. /package/out/_next/static/chunks/{16i.qbk8t8gf_.js → 3-7y7sjol3yto.js} +0 -0
  280. /package/out/_next/static/chunks/{0z48pmi6buytt.js → 3089gugfv3ov9.js} +0 -0
  281. /package/out/_next/static/chunks/{0zapnvgy89mg..js → 30s3_0brd77ky.js} +0 -0
  282. /package/out/_next/static/chunks/{0_s~ebb-7b2hr.js → 35idql3ziq0wz.js} +0 -0
  283. /package/out/_next/static/chunks/{0_w-0-2z5oqd_.js → 35unmm4isvqg5.js} +0 -0
  284. /package/out/_next/static/chunks/{0-n3pg7th.zza.js → 389wmv2b6x2nn.js} +0 -0
  285. /package/out/_next/static/chunks/{0~4f5p6tvn1lq.js → 39-oy5n969lo6.js} +0 -0
  286. /package/out/_next/static/chunks/{0~3ik-hfp9s-7.js → 39yvee40syj70.js} +0 -0
  287. /package/out/_next/static/chunks/{0~_0ys.2whxbw.js → 3clhij8e1eul0.js} +0 -0
  288. /package/out/_next/static/chunks/{0~_ui9l7.2sxf.js → 3cnsdzbvm3q7p.js} +0 -0
  289. /package/out/_next/static/chunks/{0~.-vxi5oc.r0.js → 3cxmalqqghdac.js} +0 -0
  290. /package/out/_next/static/chunks/{0.4j.0k5a64vg.js → 3d9p88evh2scq.js} +0 -0
  291. /package/out/_next/static/chunks/{0.ozi1_x2.m.~.js → 3eyprczj7yrg6.js} +0 -0
  292. /package/out/_next/static/chunks/{0.t5wlt51zou5.js → 3f9v_gtppe4hs.js} +0 -0
  293. /package/out/_next/static/chunks/{0.w4hkvap~bva.js → 3fj0amtzqae6f.js} +0 -0
  294. /package/out/_next/static/chunks/{1037jlyw5~7ht.js → 3gf98e08a-l_e.js} +0 -0
  295. /package/out/_next/static/chunks/{1045hfzu533z0.js → 3gi6og9m_yaak.js} +0 -0
  296. /package/out/_next/static/chunks/{104e5nmc.c-pl.js → 3giw7r1lii84y.js} +0 -0
  297. /package/out/_next/static/chunks/{109taw1pbh-0b.js → 3gzhy1cs_f2oi.js} +0 -0
  298. /package/out/_next/static/chunks/{10ynz1dy483wf.js → 3i_ceknny1oqt.js} +0 -0
  299. /package/out/_next/static/chunks/{10x7~onqwp338.js → 3iw0815ssih3b.js} +0 -0
  300. /package/out/_next/static/chunks/{11hds.mg~4_r-.js → 3kun-vwr7nzd4.js} +0 -0
  301. /package/out/_next/static/chunks/{11ibzaklcauw~.js → 3kxm1e-b1er3_.js} +0 -0
  302. /package/out/_next/static/chunks/{11z.0s6.42b.p.js → 3mc8fynmv71yg.js} +0 -0
  303. /package/out/_next/static/chunks/{126enaq~f7scl.js → 3n6cor2n9zyn7.js} +0 -0
  304. /package/out/_next/static/chunks/{12pep-2t-qg4n.css → 3or2h8swxfxyj.css} +0 -0
  305. /package/out/_next/static/chunks/{12-9n56l0y3yr.js → 3ppt04b6xqz29.js} +0 -0
  306. /package/out/_next/static/chunks/{1380op_pfk.qo.js → 3ql2pi_m5_5p_.js} +0 -0
  307. /package/out/_next/static/chunks/{14a4fwbiq.l3z.js → 3t-6u8caafiu9.js} +0 -0
  308. /package/out/_next/static/chunks/{146oiw1bggtn4.js → 3tqdzb_n12tdm.js} +0 -0
  309. /package/out/_next/static/chunks/{14cowsqn95m1k.js → 3u6zpg943kpst.js} +0 -0
  310. /package/out/_next/static/chunks/{14dtd3l03v.kx.js → 3uaedu2hf291z.js} +0 -0
  311. /package/out/_next/static/chunks/{14tm3qa-v9o-4.js → 3vladx3wh0d4k.js} +0 -0
  312. /package/out/_next/static/chunks/{14_inksek_rth.js → 3w4o9hklow6fg.js} +0 -0
  313. /package/out/_next/static/chunks/{14_po2rb_arn4.js → 3w56w25z6u89b.js} +0 -0
  314. /package/out/_next/static/chunks/{157z7bowux3xj.js → 3x1y_gkazt6kx.js} +0 -0
  315. /package/out/_next/static/chunks/{15m1_677az2cm.js → 3y7r1h96dtcov.js} +0 -0
  316. /package/out/_next/static/chunks/{15v.~.ne6ogkk.js → 3z0hydntmwg19.js} +0 -0
  317. /package/out/_next/static/chunks/{15-o4kb-evqd7.js → 3zhu1svjr0bc5.js} +0 -0
  318. /package/out/_next/static/chunks/{16u9f35gylw8l.js → 404orp1erq__7.js} +0 -0
  319. /package/out/_next/static/chunks/{17ajyb5ogk5yj.js → 41talcs-dc2tc.js} +0 -0
  320. /package/out/_next/static/chunks/{17dyfxbq8yz8n.js → 421pn8weymo-b.js} +0 -0
  321. /package/out/_next/static/chunks/{180zln9pcq9ih.js → 44987pmr20now.js} +0 -0
  322. /package/out/_next/static/chunks/{1814izi5gh.kp.js → 449ygeh62gitc.js} +0 -0
  323. /package/out/_next/static/media/{KaTeX_AMS-Regular.0b~8ki5y928w2.woff → KaTeX_AMS-Regular.10y3kupq4t663.woff} +0 -0
  324. /package/out/_next/static/media/{KaTeX_AMS-Regular.0p1vbqd84i2~o.woff2 → KaTeX_AMS-Regular.25ieegmnh38ts.woff2} +0 -0
  325. /package/out/_next/static/media/{KaTeX_AMS-Regular.173t6ktr7uf-w.ttf → KaTeX_AMS-Regular.418dr7cz3fo2x.ttf} +0 -0
  326. /package/out/_next/static/media/{KaTeX_Caligraphic-Bold.01-pzluls4zgb.woff2 → KaTeX_Caligraphic-Bold.06b-ya9t43ioz.woff2} +0 -0
  327. /package/out/_next/static/media/{KaTeX_Caligraphic-Bold.0x2v1lwn~880f.woff → KaTeX_Caligraphic-Bold.2vmk2hva4ctha.woff} +0 -0
  328. /package/out/_next/static/media/{KaTeX_Caligraphic-Bold.16zv5fax0h0ka.ttf → KaTeX_Caligraphic-Bold.40ltxhe834pns.ttf} +0 -0
  329. /package/out/_next/static/media/{KaTeX_Caligraphic-Regular.02i3z7wig438t.ttf → KaTeX_Caligraphic-Regular.07-7u27-nhn_r.ttf} +0 -0
  330. /package/out/_next/static/media/{KaTeX_Caligraphic-Regular.0rysu1t-ncjq8.woff2 → KaTeX_Caligraphic-Regular.2eph4dlhid_m9.woff2} +0 -0
  331. /package/out/_next/static/media/{KaTeX_Caligraphic-Regular.10927swgekwun.woff → KaTeX_Caligraphic-Regular.3gxeetazf831f.woff} +0 -0
  332. /package/out/_next/static/media/{KaTeX_Fraktur-Bold.0et27v~3~4uhe.ttf → KaTeX_Fraktur-Bold.19yqa_tc9d_gx.ttf} +0 -0
  333. /package/out/_next/static/media/{KaTeX_Fraktur-Bold.0e-16u10iuyyf.woff → KaTeX_Fraktur-Bold.1alcy76__wdj2.woff} +0 -0
  334. /package/out/_next/static/media/{KaTeX_Fraktur-Bold.0w23i72~hprpq.woff2 → KaTeX_Fraktur-Bold.2sasz-d-jtw8y.woff2} +0 -0
  335. /package/out/_next/static/media/{KaTeX_Fraktur-Regular.0b.riegzdfue2.woff → KaTeX_Fraktur-Regular.110oo81prr9n5.woff} +0 -0
  336. /package/out/_next/static/media/{KaTeX_Fraktur-Regular.0rekyoa-52fj_.woff2 → KaTeX_Fraktur-Regular.2d10y4xmjvzlf.woff2} +0 -0
  337. /package/out/_next/static/media/{KaTeX_Fraktur-Regular.0vjwa15znhk~4.ttf → KaTeX_Fraktur-Regular.2qhy34r6a05dn.ttf} +0 -0
  338. /package/out/_next/static/media/{KaTeX_Main-Bold.09i7~607shf-h.ttf → KaTeX_Main-Bold.0us_n0tnxlxu7.ttf} +0 -0
  339. /package/out/_next/static/media/{KaTeX_Main-Bold.09lmynrorhcbw.woff → KaTeX_Main-Bold.0v1esh257kqpe.woff} +0 -0
  340. /package/out/_next/static/media/{KaTeX_Main-Bold.16pfc63_du6mx.woff2 → KaTeX_Main-Bold.3-rowy8o6_4ky.woff2} +0 -0
  341. /package/out/_next/static/media/{KaTeX_Main-BoldItalic.0cp37g7x1q8h6.woff → KaTeX_Main-BoldItalic.13355ck5zr48q.woff} +0 -0
  342. /package/out/_next/static/media/{KaTeX_Main-BoldItalic.0d54rk08rx11s.woff2 → KaTeX_Main-BoldItalic.14r2naom8mrec.woff2} +0 -0
  343. /package/out/_next/static/media/{KaTeX_Main-BoldItalic.15j6k~hix2t_0.ttf → KaTeX_Main-BoldItalic.3x_u9cepaced0.ttf} +0 -0
  344. /package/out/_next/static/media/{KaTeX_Main-Italic.0382gqciexmbu.woff → KaTeX_Main-Italic.0afv392dj4w59.woff} +0 -0
  345. /package/out/_next/static/media/{KaTeX_Main-Italic.06o5nq0_91v60.woff2 → KaTeX_Main-Italic.0lig0v9j0700p.woff2} +0 -0
  346. /package/out/_next/static/media/{KaTeX_Main-Italic.0su4i6mm18-wo.ttf → KaTeX_Main-Italic.2hkw3230mfwcv.ttf} +0 -0
  347. /package/out/_next/static/media/{KaTeX_Main-Regular.08zh8z.7shijf.ttf → KaTeX_Main-Regular.0symfa7dqj6jd.ttf} +0 -0
  348. /package/out/_next/static/media/{KaTeX_Main-Regular.0diheg01zyoph.woff → KaTeX_Main-Regular.15u8r3b2y7fv4.woff} +0 -0
  349. /package/out/_next/static/media/{KaTeX_Main-Regular.0kaf-ag2_wkm-.woff2 → KaTeX_Main-Regular.1ryvsdzh2w1_e.woff2} +0 -0
  350. /package/out/_next/static/media/{KaTeX_Math-BoldItalic.0ajzxypnbx1h1.ttf → KaTeX_Math-BoldItalic.0y5w36a5aq__2.ttf} +0 -0
  351. /package/out/_next/static/media/{KaTeX_Math-BoldItalic.0ck1myuerwyqw.woff → KaTeX_Math-BoldItalic.12pl58orkw9rg.woff} +0 -0
  352. /package/out/_next/static/media/{KaTeX_Math-BoldItalic.0ja97dn.cpc87.woff2 → KaTeX_Math-BoldItalic.1oopuu636h4il.woff2} +0 -0
  353. /package/out/_next/static/media/{KaTeX_Math-Italic.09xkhecjcn5r9.woff → KaTeX_Math-Italic.0w0b1ugh62cfr.woff} +0 -0
  354. /package/out/_next/static/media/{KaTeX_Math-Italic.0x23a-bmp-5tg.ttf → KaTeX_Math-Italic.2vkekfblmz5nb.ttf} +0 -0
  355. /package/out/_next/static/media/{KaTeX_Math-Italic.0zrha2c4sl2je.woff2 → KaTeX_Math-Italic.32405s1aq8vas.woff2} +0 -0
  356. /package/out/_next/static/media/{KaTeX_SansSerif-Bold.05a9.pc1j_zx9.woff2 → KaTeX_SansSerif-Bold.0h3wi2z_eouyg.woff2} +0 -0
  357. /package/out/_next/static/media/{KaTeX_SansSerif-Bold.0jcl-ayi1uun0.woff → KaTeX_SansSerif-Bold.1ovw5p-yjp56g.woff} +0 -0
  358. /package/out/_next/static/media/{KaTeX_SansSerif-Bold.0re8y.dm7.mt5.ttf → KaTeX_SansSerif-Bold.2d03q85pwxpti.ttf} +0 -0
  359. /package/out/_next/static/media/{KaTeX_SansSerif-Italic.0a0234dc3s62j.woff2 → KaTeX_SansSerif-Italic.0wkjc4dm2kcit.woff2} +0 -0
  360. /package/out/_next/static/media/{KaTeX_SansSerif-Italic.0judofdln9731.woff → KaTeX_SansSerif-Italic.1qavw__2zz8gk.woff} +0 -0
  361. /package/out/_next/static/media/{KaTeX_SansSerif-Italic.10z1iap9pfus8.ttf → KaTeX_SansSerif-Italic.3i-q087b23-m8.ttf} +0 -0
  362. /package/out/_next/static/media/{KaTeX_SansSerif-Regular.0h9yjlugq4q_e.woff → KaTeX_SansSerif-Regular.1i4afx8nk8n4r.woff} +0 -0
  363. /package/out/_next/static/media/{KaTeX_SansSerif-Regular.0v6gcj32-czft.woff2 → KaTeX_SansSerif-Regular.2peiewu59z3d-.woff2} +0 -0
  364. /package/out/_next/static/media/{KaTeX_SansSerif-Regular.0zm18kga42ebc.ttf → KaTeX_SansSerif-Regular.31pbu25feko_c.ttf} +0 -0
  365. /package/out/_next/static/media/{KaTeX_Script-Regular.0c4.h-mer83d_.woff2 → KaTeX_Script-Regular.11h14300o9pd0.woff2} +0 -0
  366. /package/out/_next/static/media/{KaTeX_Script-Regular.0q14y6zkzlpob.ttf → KaTeX_Script-Regular.28p_x7iz71ofe.ttf} +0 -0
  367. /package/out/_next/static/media/{KaTeX_Script-Regular.0ze6v4r_-99oy.woff → KaTeX_Script-Regular.3110jb9c-bxna.woff} +0 -0
  368. /package/out/_next/static/media/{KaTeX_Size1-Regular.013x6a4ierotp.woff2 → KaTeX_Size1-Regular.03lhvx36ekcou.woff2} +0 -0
  369. /package/out/_next/static/media/{KaTeX_Size1-Regular.0kidw0oi.m68o.woff → KaTeX_Size1-Regular.1slf4bh0hc6vm.woff} +0 -0
  370. /package/out/_next/static/media/{KaTeX_Size1-Regular.0m6y-i6wfokni.ttf → KaTeX_Size1-Regular.1y57-ck23ey8c.ttf} +0 -0
  371. /package/out/_next/static/media/{KaTeX_Size2-Regular.0blpmluwilgbg.woff → KaTeX_Size2-Regular.0-kwyvx03omo8.woff} +0 -0
  372. /package/out/_next/static/media/{KaTeX_Size2-Regular.0d5inmyp-tyv3.woff2 → KaTeX_Size2-Regular.14s5gg-puz6h-.woff2} +0 -0
  373. /package/out/_next/static/media/{KaTeX_Size2-Regular.0wnhnvj-.k9d5.ttf → KaTeX_Size2-Regular.2u0s-b07k2o9m.ttf} +0 -0
  374. /package/out/_next/static/media/{KaTeX_Size3-Regular.01h0xm_sfctj3.woff → KaTeX_Size3-Regular.04o9a_02gu_e8.woff} +0 -0
  375. /package/out/_next/static/media/{KaTeX_Size3-Regular.0iukctyhw5j56.woff2 → KaTeX_Size3-Regular.1n1rgzz84z8r9.woff2} +0 -0
  376. /package/out/_next/static/media/{KaTeX_Size3-Regular.0jl8mqyf4gzpn.ttf → KaTeX_Size3-Regular.1pkn-dge4q0fv.ttf} +0 -0
  377. /package/out/_next/static/media/{KaTeX_Size4-Regular.0w3.rb_c4stzk.woff2 → KaTeX_Size4-Regular.2sgotkdv3dcyv.woff2} +0 -0
  378. /package/out/_next/static/media/{KaTeX_Size4-Regular.0wr_9l81-mu06.ttf → KaTeX_Size4-Regular.2uelkfk2yna5e.ttf} +0 -0
  379. /package/out/_next/static/media/{KaTeX_Size4-Regular.12tvaesf3.zl3.woff → KaTeX_Size4-Regular.3p2r1l7xmebxv.woff} +0 -0
  380. /package/out/_next/static/media/{KaTeX_Typewriter-Regular.0c4zdxz~8frhm.woff2 → KaTeX_Typewriter-Regular.11gr2d2wuwz77.woff2} +0 -0
  381. /package/out/_next/static/media/{KaTeX_Typewriter-Regular.0cgrzn5l3kao5.woff → KaTeX_Typewriter-Regular.12f8myjij3617.woff} +0 -0
  382. /package/out/_next/static/media/{KaTeX_Typewriter-Regular.128~qc3858otl.ttf → KaTeX_Typewriter-Regular.3nee9kjfy6nm8.ttf} +0 -0
@@ -0,0 +1,23 @@
1
+ :root{--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-tertiary:#e8e8ed;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-muted:#86868b;--border-color:#0000000f;--accent:#5e6ad2;--accent-hover:#6e7ae0;--accent-soft:#5e6ad21f;--danger:#ff3b30;--success:#34c759;--warning:#ff9500;--info:#5ac8fa;--glass-bg:#ffffff73;--glass-bg-heavy:#ffffffe6;--glass-bg-subtle:#ffffff40;--glass-bg-solid:#fffc;--glass-border:#6161611a;--glass-border-strong:#616161b3;--glass-highlight:#fff9;--glass-shadow:0 8px 32px #00000014;--glass-shadow-lg:0 16px 48px #0000001f;--glass-shadow-inset:inset 0 1px 0 #fff9;--blur-sm:blur(8px);--blur-md:blur(16px);--blur-lg:blur(24px);--blur-xl:blur(32px);--blur-2xl:blur(40px);--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000a;--shadow:0 2px 8px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 32px #0000001a;--shadow-xl:0 16px 48px #0000001f;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--transition:.25s cubic-bezier(.4, 0, .2, 1);--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-spring:.35s cubic-bezier(.34, 1.56, .64, 1)}[data-theme=dark]{--bg-primary:#000;--bg-secondary:#0a0a0a;--bg-tertiary:#141416;--text-primary:#f5f5f7;--text-secondary:#a1a1a6;--text-muted:#6e6e73;--border-color:#ffffff14;--accent:#5e6ad2;--accent-hover:#6e7ae0;--accent-soft:#5e6ad226;--danger:#ff453a;--success:#30d158;--warning:#ff9f0a;--info:#64d2ff;--glass-bg:#1c1c1e73;--glass-bg-heavy:#1c1c1ef0;--glass-bg-subtle:#1c1c1e40;--glass-bg-solid:#1c1c1ecc;--glass-border:#ffffff1a;--glass-border-strong:#ffffff26;--glass-highlight:#ffffff14;--glass-shadow:0 8px 32px #0000004d;--glass-shadow-lg:0 16px 48px #0006;--glass-shadow-inset:inset 0 1px 0 #ffffff0f}*{box-sizing:border-box;margin:0;padding:0}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-size:14px;font-weight:500;font-family:var(--font-sans);color:var(--text-primary);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-tap-highlight-color:transparent;padding:10px 16px;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-loading{opacity:.7}.btn-sm{border-radius:var(--radius-sm);min-height:32px;padding:6px 12px;font-size:13px}.btn-primary{color:#fff;background:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 16px #5e6ad24d}.sidebar-open-hint{margin-top:var(--space-2)}.error-boundary-page{min-height:100dvh;padding:var(--space-8);background:var(--bg-primary);font-family:var(--font-sans);flex-direction:column;justify-content:center;align-items:center;display:flex}.error-boundary-title{margin-bottom:var(--space-2);color:var(--text-primary);font-size:20px;font-weight:600}.error-boundary-desc{color:var(--text-secondary);margin-bottom:var(--space-6);text-align:center;max-width:400px}.error-boundary-btn{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;padding:10px 24px;font-size:14px}.error-boundary-btn:hover{background:var(--accent-hover)}.btn-secondary{color:var(--text-primary);background:var(--glass-bg-subtle);-webkit-backdrop-filter:var(--blur-sm);border:1px solid var(--glass-border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.btn-danger{color:#fff;background:var(--danger)}.btn-danger:hover:not(:disabled){box-shadow:0 4px 16px #ff3b304d}.btn-ghost{color:var(--text-secondary);border:1px solid var(--glass-border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--glass-bg-subtle);color:var(--text-primary);border-color:var(--glass-border-strong)}.btn-info{color:#fff;background:var(--info)}.btn-info:hover:not(:disabled){box-shadow:0 4px 16px #5ac8fa4d}.btn-warning{color:#fff;background:var(--warning)}.btn-warning:hover:not(:disabled){box-shadow:0 4px 16px #ff95004d}.btn-icon{border-radius:var(--radius-md);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);width:32px;height:32px;color:var(--text-secondary);padding:0}.btn-icon:hover:not(:disabled){background:var(--glass-bg);color:var(--text-primary);border-color:var(--glass-border-strong)}.btn-circle{border-radius:50%;width:44px;height:44px;padding:0}.btn-full,.btn-block{width:100%}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(80% 60% at 20% 10%,#5e6ad214 0%,#0000 60%),radial-gradient(60% 80% at 80% 90%,#5ac8fa0f 0%,#0000 60%),radial-gradient(50% 50%,#34c7590a 0%,#0000 60%);position:fixed;inset:0}[data-theme=dark] body:before{background:radial-gradient(80% 60% at 20% 10%,#5e6ad21f 0%,#0000 60%),radial-gradient(60% 80% at 80% 90%,#5ac8fa14 0%,#0000 60%),radial-gradient(50% 50%,#34c7590d 0%,#0000 60%)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:var(--radius-full);opacity:.5}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}a{color:var(--accent);transition:color var(--transition-fast);text-decoration:none}button{font-family:var(--font-sans);cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.input{width:100%;font-size:14px;font-family:var(--font-sans);color:var(--text-primary);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;outline:none;padding:10px 14px}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--accent);background:var(--glass-bg);box-shadow:0 0 0 3px var(--accent-soft)}.input-pill{border-radius:var(--radius-full);padding:12px 18px}.input-compact{padding:10px 12px;font-size:13px}.input-flex{flex:1}.ui-input-control{align-items:center;display:flex;position:relative}.ui-input-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.ui-input-control .input{padding-left:34px}.textarea{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg-subtle);width:100%;-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm);color:var(--text-primary);font-size:14px;font-family:var(--font-sans);transition:border-color var(--transition-fast);resize:none;outline:none;padding:12px 14px}.textarea:focus{border-color:var(--accent)}.textarea::placeholder{color:var(--text-muted)}.textarea.mono{font-family:var(--font-mono);font-size:12px}.mono{font-family:var(--font-mono);word-break:break-all;color:var(--text-primary);flex:1;font-size:12px}.mono-row{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);background:var(--glass-bg-subtle);padding:10px 12px;display:flex}.mono-row.danger{background:#ff3b3014}.mono-row.danger .mono,.danger{color:var(--danger)}.setting-switch{min-height:44px;color:var(--text-primary);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.setting-switch input{appearance:none;border-radius:var(--radius-full);border:1px solid var(--glass-border);background:color-mix(in srgb, var(--text-muted) 20%, transparent);cursor:pointer;width:42px;height:24px;transition:all var(--transition-fast);flex-shrink:0;position:relative}.setting-switch input:after{content:"";width:18px;height:18px;transition:transform var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 4px #00000040}.setting-switch input:checked{background:var(--accent);border-color:var(--accent)}.setting-switch input:checked:after{transform:translate(18px)}.status-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.status-dot.success,.status-dot.connected{background:var(--success)}.status-dot.warning,.status-dot.checking{background:var(--warning)}.status-dot.checking{animation:1.2s ease-in-out infinite pulse}.status-dot.danger,.status-dot.error,.status-dot.disconnected{background:var(--danger)}.status-dot.info,.status-dot.ready{background:var(--info)}.ui-badge{border-radius:var(--radius-full);border:1px solid var(--glass-border);background:var(--glass-bg-subtle);min-height:26px;color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.ui-chip-list{gap:var(--space-2);flex-wrap:wrap;list-style:none;display:flex}.ui-chip{border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--glass-bg-subtle);min-height:30px;color:var(--text-secondary);align-items:center;padding:6px 10px;font-size:13px;line-height:1;display:inline-flex}.ui-segmented-control{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;padding:4px;display:inline-grid}.ui-segmented-option{border-radius:var(--radius-sm);min-height:40px;color:var(--text-secondary);font:inherit;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;display:inline-flex}.ui-segmented-option:hover:not(:disabled){color:var(--text-primary);background:color-mix(in srgb, var(--accent) 8%, transparent)}.ui-segmented-option.is-active,.ui-segmented-option.active,.ui-segmented-option[aria-selected=true]{color:var(--accent);background:var(--accent-soft)}.ui-segmented-option:disabled{opacity:.45;cursor:not-allowed}.ui-action-dashed{border:1.5px dashed var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg-subtle);min-height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;gap:6px;padding:10px;font-size:13px;font-weight:500;display:inline-flex}.ui-action-dashed:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.ui-action-dashed-sm{min-height:32px;padding:6px 10px;font-size:12px}.ui-meta-box{color:var(--text-primary);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:10px 12px;font-size:14px}.ui-empty-inline{color:var(--text-muted);text-align:center;background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:14px 12px;font-size:13px}.ui-empty-state{text-align:center;min-height:180px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:32px;display:flex}.ui-empty-icon{border-radius:var(--radius-lg);background:var(--glass-bg-subtle);width:64px;height:64px;-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);color:var(--text-muted);justify-content:center;align-items:center;display:flex}.ui-empty-icon-lg{width:80px;height:80px;color:var(--accent);background:var(--glass-bg-heavy);-webkit-backdrop-filter:var(--blur-2xl);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-lg), var(--glass-shadow-inset)}.ui-empty-title{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.ui-empty-desc{max-width:320px;color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.ui-file-card{width:min(320px,100%);min-height:64px;color:var(--text-primary);text-align:left;background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--glass-shadow), var(--glass-shadow-inset);transition:all var(--transition-fast);grid-template-columns:42px minmax(0,1fr) 44px;align-items:center;gap:10px;padding:10px;display:grid}button.ui-file-card{cursor:pointer}.ui-file-card:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px);box-shadow:0 6px 18px #5e6ad229}.ui-file-card:disabled{cursor:progress;opacity:.75}.ui-file-icon{border-radius:var(--radius-md);background:var(--accent-soft);width:42px;height:42px;color:var(--accent);justify-content:center;align-items:center;display:flex}.ui-file-icon.image{color:var(--success)}.ui-file-icon.video{color:var(--danger)}.ui-file-icon.audio{color:var(--info)}.ui-file-info{flex-direction:column;gap:4px;min-width:0;display:flex}.ui-file-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.ui-file-meta{color:var(--text-muted);font-size:11px}.ui-file-action{min-width:0;color:var(--text-secondary);white-space:nowrap;justify-content:center;align-items:center;font-size:12px;display:flex}.ui-file-action.available{color:var(--success)}.ui-file-action.error{color:var(--danger)}.chat-attachment-card{width:min(320px,68vw)}.chat-message.self .chat-attachment-card{background:color-mix(in srgb, var(--accent) 12%, var(--glass-bg-heavy));border-color:color-mix(in srgb, var(--accent) 35%, var(--glass-border))}.ui-spinner{animation:.8s linear infinite spin}.ui-list-item{border-radius:var(--radius-sm);transition:background var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;grid-template-columns:minmax(0,1fr);align-items:center;gap:6px;display:grid}.ui-list-item:hover,.ui-list-item.active,.ui-list-item.is-active{border-color:var(--glass-border);background:var(--glass-bg-subtle)}.ui-list-item.active,.ui-list-item.is-active{border-color:var(--accent);background:var(--accent-soft)}.ui-list-item-main{min-width:0;color:var(--text-primary);text-align:left;background:0 0;border:0;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 8px;display:grid}.ui-list-icon,.ui-icon-tile{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--accent);background:var(--accent-soft);justify-content:center;align-items:center;display:flex}.ui-list-icon.warning,.ui-icon-tile.warning{color:var(--warning);background:#ff950024}.ui-list-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.ui-list-title,.ui-list-desc,.ui-list-meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-list-title{color:var(--text-primary);font-size:13px;font-weight:700}.ui-list-desc,.ui-list-meta{color:var(--text-secondary);font-size:12px}.ui-list-meta{text-align:right;max-width:72px}.ui-peer-info,.peer-info{min-width:0;color:var(--text-secondary);align-items:center;gap:8px;font-size:11px;display:flex}.ui-peer-dot,.peer-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:6px;height:6px}.ui-peer-id,.peer-id{min-width:0;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ui-notice{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg-subtle);color:var(--text-secondary);align-items:center;gap:6px;padding:10px 12px;font-size:13px;line-height:1.45;display:flex}.ui-notice svg{flex-shrink:0}.ui-notice.danger,.ui-notice.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);border-color:color-mix(in srgb, var(--danger) 22%, var(--glass-border))}.ui-notice.warning{color:var(--warning);background:color-mix(in srgb, var(--warning) 10%, transparent);border-color:color-mix(in srgb, var(--warning) 28%, var(--glass-border))}.ui-notice.success{color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent);border-color:color-mix(in srgb, var(--success) 28%, var(--glass-border))}.ui-code-box{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg-subtle);color:var(--text-primary);font-family:var(--font-mono);overflow-wrap:anywhere;padding:12px;font-size:13px;line-height:1.5;display:block}.backend-error-page{min-height:60dvh;padding:var(--space-8);justify-content:center;align-items:center;display:flex}.backend-error-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-12);text-align:center;width:100%;max-width:480px;box-shadow:var(--glass-shadow-lg);animation:.3s ease-out scaleIn}.backend-error-icon{margin-bottom:var(--space-4);font-size:48px}.backend-error-card h2{margin-bottom:var(--space-3);font-size:24px;font-weight:600}.backend-error-url{margin-bottom:var(--space-2)}.backend-error-url code{background:var(--glass-bg-solid);border-radius:var(--radius-sm);font-family:var(--font-mono);word-break:break-all;padding:4px 10px;font-size:14px}.backend-error-desc{color:var(--text-secondary);margin-bottom:var(--space-6);font-size:14px}.backend-error-form{gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.not-found-page{min-height:100dvh;padding:var(--space-8);justify-content:center;align-items:center;display:flex}.not-found-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-lg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-12) var(--space-10);text-align:center;width:100%;max-width:420px;box-shadow:var(--glass-shadow-lg);animation:.35s cubic-bezier(.34,1.56,.64,1) both scaleIn}.not-found-icon{border-radius:var(--radius-full);background:var(--accent-soft);width:88px;height:88px;color:var(--accent);margin-bottom:var(--space-6);justify-content:center;align-items:center;display:inline-flex}.not-found-title{margin-bottom:var(--space-3);color:var(--text-primary);font-size:22px;font-weight:600}.not-found-desc{color:var(--text-secondary);margin-bottom:var(--space-8);font-size:15px;line-height:1.6}.not-found-actions{justify-content:center;align-items:center;gap:var(--space-3);display:flex}@media (max-width:480px){.not-found-card{padding:var(--space-8) var(--space-5)}.not-found-actions{flex-direction:column;width:100%}.not-found-actions .btn{width:100%}}
2
+ .app-layout{height:100dvh;color:var(--text-primary);background:0 0;display:flex;overflow:hidden}.backend-warning-bar{background:var(--warning);color:#fff;border-radius:var(--radius-sm);box-sizing:border-box;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:8px 16px;font-size:13px;font-weight:500;display:flex}.backend-warning-bar button{color:#fff;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1}.sidebar{background:var(--glass-bg-heavy);width:200px;-webkit-backdrop-filter:var(--blur-xl);border-right:1px solid var(--glass-border);box-shadow:var(--glass-shadow-inset);transition:width var(--transition), transform var(--transition);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar.collapsed{border:none;width:0;overflow:hidden}.sidebar .sidebar-header{border-bottom:1px solid var(--glass-border);align-items:center;gap:8px;min-height:64px;padding:14px 16px;display:flex}.sidebar .sidebar-header.sidebar-header-link{cursor:pointer}.sidebar .sidebar-header h1{background:linear-gradient(135deg, var(--accent), var(--info));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:700}.sidebar .sidebar-nav{flex:1;padding:12px 8px}.sidebar .sidebar-empty-state{text-align:center;color:var(--text-muted);padding:40px 20px}.sidebar .sidebar-nav-btn{border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;margin-bottom:4px;padding:10px 12px;font-size:13px;font-weight:500;display:flex}.sidebar .sidebar-nav-btn.active{background:var(--accent-soft);color:var(--accent);box-shadow:var(--glass-shadow-inset);font-weight:600}.sidebar .sidebar-nav-btn:hover:not(.active){background:var(--glass-bg-subtle);color:var(--text-primary)}.sidebar .sidebar-nav-btn svg{flex-shrink:0}.sidebar .chat-sidebar-footer{border-top:1px solid var(--glass-border);justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.sidebar .user-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.sidebar .user-avatar{border-radius:var(--radius-sm);background:var(--glass-bg-subtle);width:24px;height:24px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar .user-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sidebar .login-btn{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;transition:all var(--transition-fast);border:none;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:500}.sidebar .login-btn:hover{opacity:.85;transform:scale(1.02)}.sidebar .logout-btn{border-radius:var(--radius-sm);border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:500}.sidebar .logout-btn:hover{background:var(--glass-bg-subtle);color:var(--text-primary)}.sidebar .sidebar-tools{border-top:1px solid var(--glass-border);padding:12px 8px}.sidebar .sidebar-tools-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin-bottom:6px;padding-left:12px;font-size:11px;font-weight:500;display:flex}.sidebar-overlay{display:none}.sidebar-toggle-btn{display:flex}.mobile-menu-btn{display:none}.main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-header{border-bottom:1px solid var(--glass-border);background:var(--glass-bg);min-height:64px;-webkit-backdrop-filter:var(--blur-lg);box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex}.app-header .header-left{align-items:center;gap:12px;display:flex}.app-header .header-title{font-size:16px;font-weight:600}.app-header .header-badge{border-radius:var(--radius-full);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);color:var(--text-secondary);align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:flex}.app-header .header-badge-dot{background:var(--warning);border-radius:50%;width:6px;height:6px}.app-header .header-badge-dot.connected{background:var(--success)}.app-header .header-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-box{border-radius:var(--radius-md);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);align-items:center;gap:8px;padding:6px 12px;display:flex}.search-box input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;padding-left:2px;font-size:12px}.search-box button{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:0;display:flex}.desktop-client-banner{background:var(--glass-bg-heavy);border-radius:var(--radius-md);box-shadow:var(--glass-shadow);border:1px solid #ff950059;align-items:center;gap:12px;margin:16px 24px 0;padding:14px 16px;display:flex}.desktop-client-banner-icon{color:#fff;background:var(--warning);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.desktop-client-banner-copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.desktop-client-banner-copy strong{color:var(--text-primary);font-size:14px;font-weight:700}.desktop-client-banner-copy span{color:var(--text-secondary);font-size:12px;line-height:1.5}.desktop-client-banner .btn{flex-shrink:0}.action-grid{grid-template-columns:1fr 1fr;gap:12px;padding:16px 24px;display:grid;position:relative}.action-card{border:1.5px dashed var(--glass-border-strong);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--glass-bg-subtle);-webkit-backdrop-filter:var(--blur-sm);transition:all var(--transition);padding:20px;position:relative}.action-card:hover{background:var(--glass-bg);border-color:var(--accent);box-shadow:var(--glass-shadow)}.action-card p{color:var(--accent);font-size:12px;font-weight:500}.action-card.upload.drag-over{border-color:var(--accent);background:var(--accent-soft)}.action-card-download p{color:var(--info)}.action-card-input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;position:absolute;inset:0}.breadcrumb{align-items:center;gap:4px;padding:0 24px;font-size:12px;display:flex}.breadcrumb button{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;padding:2px 4px}.breadcrumb button:hover{color:var(--text-primary);background:var(--glass-bg-subtle)}.breadcrumb button.current{color:var(--text-secondary);font-weight:500}.breadcrumb .breadcrumb-edit-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;align-items:center;padding:2px;display:flex}.content-grid{flex:1;padding:12px 24px;overflow:auto}.file-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;display:grid}.empty-state{text-align:center;color:var(--text-muted);padding:48px;font-size:13px}.empty-state.glass{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-12) var(--space-6);background:var(--glass-bg-subtle);border:1px dashed var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm);flex-direction:column;display:flex}.empty-state.glass p{max-width:320px;font-size:14px;line-height:1.6}.app-empty-state{flex-direction:column;align-items:center;gap:12px;display:flex}.empty-state-icon{border-radius:var(--radius-full);background:var(--glass-bg);width:64px;height:64px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.card{border-radius:var(--radius-lg);cursor:pointer;background:var(--glass-bg-subtle);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);transition:all var(--transition);box-shadow:var(--glass-shadow-inset);flex-direction:column;align-items:center;padding:16px;display:flex}.card:hover{border-color:var(--glass-border-strong);background:var(--glass-bg);box-shadow:var(--glass-shadow);transform:translateY(-2px)}.card.selected{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), var(--glass-shadow)}.card-icon{border-radius:var(--radius-md);width:56px;height:56px;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;margin-bottom:10px;display:flex}.card-icon.folder{background:linear-gradient(135deg,#818cf8,#6366f1)}.card-icon.file{background:linear-gradient(135deg,#a78bfa,#8b5cf6)}.card-icon.starred{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.card-icon.trash{background:linear-gradient(135deg,#94a3b8,#64748b)}.card-name{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text-primary);font-size:12px;font-weight:500;overflow:hidden}.card-date{color:var(--text-muted);margin-top:2px;font-size:10px}.modal-overlay{top:var(--modal-visual-top,0px);height:var(--modal-visual-height,100dvh);z-index:200;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;left:0;right:0}.modal-overlay-backdrop{z-index:0;-webkit-backdrop-filter:var(--blur-xl);pointer-events:none;background:#0000004d;position:absolute;inset:0}.modal-glass{z-index:1;border-radius:var(--radius-lg);background:var(--glass-bg-heavy);width:380px;max-width:calc(100vw - 32px);-webkit-backdrop-filter:var(--blur-2xl);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg), var(--glass-shadow-inset);padding:24px;animation:.25s scaleIn;position:relative}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h3{font-size:16px;font-weight:600}.modal-header button{cursor:pointer;color:var(--text-muted);background:0 0;border:none}.welcome-modal{text-align:center}.welcome-modal h2{margin-bottom:12px;font-size:18px;font-weight:600}.welcome-modal p{color:var(--text-secondary);margin-bottom:20px;font-size:13px;line-height:1.6}.welcome-steps{justify-content:center;gap:6px;margin-bottom:20px;display:flex}.welcome-step-dot{background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:50%;width:6px;height:6px}.welcome-step-dot.active{background:var(--accent);border-color:var(--accent)}.welcome-actions{justify-content:center;gap:10px;display:flex}.welcome-success-icon{background:#34c75926;border:1px solid #34c7594d;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 16px;display:flex}.spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.settings-modal .settings-title{color:var(--text-primary);font-size:18px;font-weight:600}.settings-modal .settings-label{color:var(--text-primary);margin-bottom:8px;font-size:13px;font-weight:500;display:block}.settings-modal .settings-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.settings-modal .settings-hint{color:var(--text-muted);margin-top:8px;font-size:11px}.settings-modal .settings-divider{border-top:1px solid var(--glass-border);padding-top:16px}.settings-modal .settings-about{text-align:center;margin-bottom:16px}.settings-modal .settings-about h3{color:var(--text-primary);margin-bottom:4px;font-size:16px;font-weight:600}.settings-modal .settings-about p{color:var(--text-muted);font-size:12px}.network-addresses{flex-direction:column;gap:8px;margin-top:8px;display:flex}.address-item{background:var(--glass-bg-subtle);border-radius:var(--radius-md);border:1px solid var(--glass-border);align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.address-type{border-radius:var(--radius-sm);white-space:nowrap;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.address-type-local{color:var(--text-secondary);background:#64748b26}.address-type-lan{background:var(--accent-soft);color:var(--accent)}.address-type-tailscale{color:var(--success);background:#34c7591f}.address-type-zerotier{color:var(--info);background:#5ac8fa1f}.address-url{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.page-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.page-title{font-size:20px;font-weight:600}.qr-wrap{padding:var(--space-4);border-radius:var(--radius-lg);width:fit-content;margin:0 auto var(--space-3);background:#fff;justify-content:center;display:flex}.page-footer{align-items:center;gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.input-panel{background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6);box-shadow:var(--glass-shadow)}.input-wrap{position:relative}.input-wrap .input{padding-right:40px}.input-eye{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.input-eye:hover{color:var(--text-primary)}.loading-spinner{border:2px solid var(--glass-border);border-top-color:var(--accent);border-radius:var(--radius-full);width:32px;height:32px;margin:auto;animation:.8s linear infinite spin}.link{color:var(--accent);align-items:center;gap:4px;font-size:13px;display:inline-flex}.inline-link{color:var(--accent);margin-top:var(--space-1);align-items:center;gap:4px;font-size:13px;display:inline-flex}.tool-link{align-items:center;gap:var(--space-2);background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--accent);transition:all var(--transition-fast);padding:10px 20px;font-size:14px;font-weight:500;display:inline-flex}.tool-link:hover{background:var(--accent-soft)}.hint-text{color:var(--text-muted);font-size:12px}.input-modal h3{color:var(--text-primary);margin-bottom:16px;font-size:16px;font-weight:600}.input-modal-error{color:var(--danger);margin-top:8px;font-size:12px;line-height:1.5}.modal-actions{gap:8px;margin-top:16px;display:flex}.modal-actions .btn{border-radius:var(--radius-md);flex:1;padding-inline:12px;font-size:13px}.download-modal{flex-direction:column;gap:14px;display:flex}.download-modal .modal-header{margin-bottom:2px}.download-link-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.download-check-btn{justify-content:center;gap:6px;min-width:88px;padding:10px 14px}.download-check-status{border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg-subtle);min-height:38px;color:var(--text-secondary);align-items:flex-start;gap:8px;padding:10px 12px;font-size:12px;line-height:1.45;display:flex}.download-check-status svg{flex:none;margin-top:1px}.download-check-status.success{color:var(--success);background:#34c7591a;border-color:#34c75959}.download-check-status.error{color:var(--danger);background:#ff3b301a;border-color:#ff3b3059}.download-modal>.btn-full{justify-content:center;gap:6px;margin-top:2px}.confirm-modal h3{color:var(--text-primary);margin-bottom:12px;font-size:16px;font-weight:600}.confirm-modal p{color:var(--text-secondary);margin-bottom:20px;font-size:13px}.move-modal .move-breadcrumb{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.move-modal .move-breadcrumb-btn{border-radius:var(--radius-sm);background:var(--glass-bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border:none;padding:4px 8px;font-size:12px}.move-modal .move-breadcrumb-btn:hover{background:var(--glass-bg)}.move-modal .move-breadcrumb-btn.active{background:var(--accent-soft);color:var(--accent)}.move-modal .move-folder-list{max-height:200px;margin-bottom:16px;overflow:auto}.move-modal .move-folder-item{border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--text-primary);text-align:left;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.move-modal .move-folder-item:hover{background:var(--glass-bg-subtle)}.move-modal .move-folder-item.selected{background:var(--accent-soft);color:var(--accent)}.move-modal .move-new-folder{gap:8px;margin-bottom:16px;display:flex}.move-modal .move-new-folder input{border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-bg-subtle);color:var(--text-primary);transition:all var(--transition-fast);outline:none;flex:1;padding:8px 10px;font-size:12px}.move-modal .move-new-folder input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.share-modal .share-link-box{align-items:center;gap:10px;margin-bottom:16px;display:flex}.share-modal .share-link-text{border-radius:var(--radius-md);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);font-size:13px;font-family:var(--font-mono);color:var(--text-primary);word-break:break-all;flex:1;padding:12px 14px}.share-modal .share-storage-note{border-radius:var(--radius-md);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);color:var(--text-secondary);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.share-modal .share-storage-note span{min-width:0}.share-modal .share-storage-note button{flex:none}.share-modal .share-copy-btn{border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;width:44px;transition:all var(--transition-fast);border:none}.share-modal .share-copy-btn:hover{background:var(--accent-hover);transform:scale(1.05)}.share-modal .share-copy-btn.copied{background:var(--success)}.preview-overlay{z-index:200;-webkit-backdrop-filter:var(--blur-lg);background:#000000d9;justify-content:center;align-items:center;padding:24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.preview-overlay .preview-close{border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg-subtle);width:36px;height:36px;-webkit-backdrop-filter:var(--blur-sm);cursor:pointer;color:#fff;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;top:20px;right:20px}.preview-overlay .preview-close:hover{background:var(--glass-bg);transform:scale(1.05)}.preview-overlay img,.preview-overlay video{border-radius:var(--radius-lg);max-width:100%;max-height:80dvh;box-shadow:var(--glass-shadow-lg)}.preview-overlay .preview-audio{background:var(--glass-bg-heavy);-webkit-backdrop-filter:var(--blur-2xl);border:1px solid var(--glass-border);border-radius:var(--radius-lg);min-width:320px;box-shadow:var(--glass-shadow-lg), var(--glass-shadow-inset);flex-direction:column;align-items:center;gap:20px;padding:40px 48px;display:flex}.preview-overlay .preview-audio-icon{background:var(--accent-soft);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.preview-overlay .preview-audio-filename{color:var(--text-secondary);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;font-size:14px;overflow:hidden}.preview-overlay .preview-audio-player{width:100%;max-width:400px;height:40px}.batch-bar{border-radius:var(--radius-lg);background:var(--glass-bg-heavy);-webkit-backdrop-filter:var(--blur-2xl);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg), var(--glass-shadow-inset);z-index:100;align-items:center;gap:8px;padding:10px 16px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.batch-bar .batch-info{white-space:nowrap;color:var(--text-secondary);font-size:12px}.batch-bar .batch-dismiss{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:4px;display:flex}.batch-bar .batch-divider{background:var(--glass-border);width:1px;height:20px}.transfer-modal{max-height:70dvh;overflow:auto}.transfer-modal .transfer-item{border-bottom:1px solid var(--glass-border);padding:10px 0}.transfer-modal .transfer-item-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.transfer-modal .transfer-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}.transfer-modal .transfer-item-cancel{cursor:pointer;color:var(--danger);background:0 0;border:none;padding:2px}.transfer-modal .transfer-progress-row{align-items:center;gap:8px;display:flex}.transfer-modal .transfer-progress-meter{border-radius:var(--radius-full);background:var(--glass-bg-subtle);appearance:none;border:0;flex:1;height:4px;overflow:hidden}.transfer-modal .transfer-progress-meter::-webkit-progress-bar{background:var(--glass-bg-subtle)}.transfer-modal .transfer-progress-meter::-webkit-progress-value{border-radius:var(--radius-full);background:var(--accent);transition:width .2s}.transfer-modal .transfer-progress-meter::-moz-progress-bar{border-radius:var(--radius-full);background:var(--accent)}.transfer-modal .transfer-progress-meter.download::-webkit-progress-value{background:var(--info)}.transfer-modal .transfer-progress-meter.download::-moz-progress-bar{background:var(--info)}.transfer-modal .transfer-progress-meter.error::-webkit-progress-value{background:var(--danger)}.transfer-modal .transfer-progress-meter.error::-moz-progress-bar{background:var(--danger)}.transfer-modal .transfer-progress-meter.cancelled::-webkit-progress-value{background:var(--warning)}.transfer-modal .transfer-progress-meter.cancelled::-moz-progress-bar{background:var(--warning)}.transfer-modal .transfer-progress-text{color:var(--text-muted);text-align:right;min-width:32px;font-size:10px}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.toast{z-index:9999;border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-lg);-webkit-backdrop-filter:var(--blur-lg);border:1px solid var(--glass-border);padding:12px 20px;font-size:13px;font-weight:500;animation:.25s toastSlideIn;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.toast.success{color:#fff;background:#34c75999}.toast.error{color:#fff;background:#ff3b3099}.toast.warning{color:#fff;background:#ff950099}.toast.info{color:#fff;background:#5ac8fa99}.toast-stack-0{bottom:80px}.toast-stack-1{bottom:140px}.toast-stack-2{bottom:200px}.toast-stack-3{bottom:260px}.toast-stack-4{bottom:320px}.toast-stack-5{bottom:380px}.welcome-path-section{text-align:left;margin-bottom:20px}.welcome-path-section .path-label{color:var(--text-muted);margin-bottom:4px;font-size:12px}.welcome-path-section .path-value{color:var(--text-primary);font-size:12px;font-family:var(--font-mono);background:var(--glass-bg-subtle);border-radius:var(--radius-sm);word-break:break-all;border:1px solid var(--glass-border);margin-bottom:12px;padding:8px 10px}.welcome-path-section .path-hint{color:var(--text-muted);margin-top:4px;font-size:11px}.login-modal{width:100%}.login-modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.login-modal-header h3{color:var(--text-primary);font-size:16px;font-weight:600}.login-modal-close{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.login-modal-close:hover{color:var(--text-primary);background:var(--glass-bg-subtle)}.login-avatar-preview{border-radius:var(--radius-md);width:64px;height:64px;margin:0 auto 8px;display:block}.user-avatar-img{border-radius:var(--radius-sm);flex-shrink:0;width:24px;height:24px}.msg-avatar{border-radius:var(--radius-sm);flex-shrink:0;width:28px;height:28px;margin-right:10px}.login-modal-body{flex-direction:column;gap:12px;display:flex}.login-tip{color:var(--text-secondary);text-align:center;margin-bottom:4px;font-size:13px}.login-error{border-radius:var(--radius-sm);color:var(--danger);background:#ff3b301a;padding:8px 10px;font-size:12px;line-height:1.4}.login-password-wrapper{align-items:center;display:flex;position:relative}.login-password-wrapper .input{padding-right:40px}.login-password-toggle{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;right:10px}.login-password-toggle:hover{color:var(--text-primary);background:var(--glass-bg-subtle)}.login-buttons-row{gap:8px;display:flex}.login-buttons-row .btn-primary,.login-buttons-row .btn-secondary{flex:1;padding-inline:12px;font-size:13px}.connect-modal{width:100%}.connect-modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.connect-modal-header h3{color:var(--text-primary);font-size:16px;font-weight:600}.connect-modal-close{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.connect-modal-close:hover{color:var(--text-primary);background:var(--glass-bg-subtle)}.connect-modal-body{flex-direction:column;gap:12px;display:flex}.preview-text-container{background:var(--glass-bg-heavy);width:90vw;max-width:900px;max-height:80dvh;-webkit-backdrop-filter:var(--blur-2xl);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-lg), var(--glass-shadow-inset);flex-direction:column;padding:20px;display:flex;overflow:auto}.preview-text-header{border-bottom:1px solid var(--glass-border);color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;font-size:13px;display:flex}.preview-text{color:var(--text-primary);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;max-height:100%;margin:0;font-size:13px;line-height:1.6;overflow:auto}.preview-text-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 20px;display:flex}.preview-text-spinner{opacity:.6;animation:.8s linear infinite spin}.preview-text-loading-hint{opacity:.6;text-align:center;max-width:300px;font-size:12px}.preview-media-wrapper{justify-content:center;align-items:center;min-width:100px;min-height:100px;display:flex;position:relative}.preview-media-wrapper .preview-loading{z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.preview-loading-spinner{border:3px solid #fff3;border-top-color:#fff;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.preview-media-wrapper img,.preview-media-wrapper video{border-radius:var(--radius-lg);max-width:100%;max-height:80dvh}.preview-unsupported{background:var(--glass-bg-heavy);border-radius:var(--radius-lg);text-align:center;color:var(--text-primary);border:1px solid var(--glass-border);padding:40px}.preview-unsupported p:first-of-type{word-break:break-all;font-size:14px;font-weight:500}.btn-nowrap{white-space:nowrap}.btn-shutdown{margin-top:20px}.settings-section{margin-bottom:20px}.settings-divider-top{margin-top:20px}.settings-subtitle{text-align:center;color:var(--text-secondary);font-size:12px}.icon-inline{vertical-align:middle;margin-right:6px}.move-modal-desc{color:var(--text-secondary);margin-bottom:12px;font-size:12px}.move-modal-hint{color:var(--text-muted);margin-bottom:12px;font-size:11px}.breadcrumb-separator{color:var(--text-secondary)}.preview-file-icon{opacity:.5;margin-bottom:12px}.empty-transfer{text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.btn-empty-trash{color:var(--danger);background:#ff3b301a}.btn-empty-trash:hover:not(:disabled){background:#ff3b3026}.btn-star{background:var(--warning);color:#fff}.btn-star:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #ff95004d}.btn-move{background:var(--accent);color:#fff}.btn-move:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 16px #5e6ad24d}.move-modal-empty{color:var(--text-secondary);text-align:center;padding:16px;font-size:12px}.preview-unsupported-hint{opacity:.7;margin-top:8px;font-size:12px}.action-grid-icon{margin-bottom:8px}@media (max-width:768px){.input,.textarea,.search-box input{font-size:16px}.sidebar{z-index:300;transition:transform var(--transition);width:240px;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{z-index:299;opacity:0;visibility:hidden;transition:all var(--transition);background:#0006;display:block;position:fixed;inset:0}.sidebar-overlay.visible{opacity:1;visibility:visible}.modal-overlay{z-index:301;align-items:flex-end;padding:0}.modal-overlay-backdrop{-webkit-backdrop-filter:var(--blur-lg)}.modal-glass{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:100%;max-height:calc(var(--modal-visual-height,100dvh) - 12px);overscroll-behavior:contain;overflow:auto}.sidebar-toggle-btn{display:flex}.app-header{gap:8px;min-height:56px;padding:12px 16px}.app-header .header-right{gap:4px}.desktop-client-banner{flex-direction:column;align-items:stretch;margin:12px 16px 0}.desktop-client-banner-icon{width:36px;height:36px}.desktop-client-banner .btn{width:100%}.action-grid{grid-template-columns:1fr;gap:8px;padding:12px 16px}.action-card{padding:14px}.breadcrumb{padding:0 16px}.content-grid{padding:12px 16px}.file-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.card{padding:12px}.card-icon{border-radius:var(--radius-sm);width:44px;height:44px;margin-bottom:8px}.card-name{font-size:11px}.welcome-modal,.settings-modal,.input-modal,.confirm-modal,.move-modal,.share-modal,.download-modal,.transfer-modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:100%}.download-link-row{grid-template-columns:1fr}.download-check-btn{width:100%}.toast{width:min(100vw - 24px,420px);left:50%}.batch-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:14px 40px 12px 16px;left:12px;right:12px;transform:none}.batch-bar .batch-info{text-align:center;width:100%;color:var(--text-primary);margin-bottom:2px;font-size:13px;font-weight:500}.batch-bar .batch-dismiss{background:var(--glass-bg-subtle);transition:background var(--transition);border-radius:50%;padding:6px;position:absolute;top:8px;right:8px}.batch-bar .batch-dismiss:hover{background:var(--glass-bg)}.batch-bar .batch-divider{display:none}.batch-bar .btn-sm{border-radius:var(--radius-md);min-width:64px;padding-inline:14px;font-size:13px}.preview-overlay{padding:12px}}@media (max-width:480px){.file-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.card{padding:10px}.card-icon{width:40px;height:40px;margin-bottom:6px}.card-name{font-size:10px}.app-header{min-height:52px;padding:12px}.app-header .header-title{font-size:14px}.app-header .header-badge{padding:2px 6px;font-size:10px}.action-grid,.content-grid{padding:10px 12px}.breadcrumb{padding:0 12px;font-size:11px}.batch-bar{gap:8px;padding:12px 12px 10px}.batch-bar .batch-info{font-size:12px}.batch-bar .btn-sm{min-width:56px;padding-inline:12px;font-size:12px}}.app-home{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100dvh - 144px);padding:0 24px;animation:.4s fadeInUp;display:flex}.app-home-card{border-radius:var(--radius-xl);background:var(--glass-bg-heavy);-webkit-backdrop-filter:var(--blur-2xl);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg), var(--glass-shadow-inset);flex-direction:column;align-items:center;width:100%;max-width:420px;padding:40px;display:flex}.app-home-card h1{letter-spacing:-.03px;background:linear-gradient(135deg, var(--accent), var(--info));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-top:16px;margin-bottom:8px;font-size:40px;font-weight:700}.app-home-badge{border-radius:var(--radius-full);background:var(--glass-bg-subtle);color:var(--text-secondary);border:1px solid var(--glass-border);align-items:center;gap:6px;margin-bottom:24px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-flex}.app-home-badge .badge-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.app-home-card p{color:var(--text-secondary);max-width:40ch;margin-bottom:32px;font-size:16px;line-height:1.6}.app-home-btn{padding:14px 32px;font-size:16px;font-weight:600}.app-home-btn-secondary{margin-top:12px;padding:10px 24px;font-size:14px}.drawer-label{color:var(--text-primary);margin-bottom:8px;font-size:13px;font-weight:500;display:block}.drawer-hint{color:var(--text-muted);margin-top:8px;font-size:11px}.drawer-hint-spaced{margin-bottom:12px}.remote-node-form{flex-direction:column;gap:8px;display:flex}.drawer-status{color:var(--text-secondary);margin-top:8px;font-size:11px}.drawer-status.status-success{color:var(--success)}.drawer-status.status-error{color:var(--error)}.spin{animation:1s linear infinite spin}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
3
+ .ProseMirror{word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;font-feature-settings:"liga" 0;position:relative}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection ::selection{background:0 0}.ProseMirror-hideselection ::selection{background:0 0}.ProseMirror-hideselection{caret-color:#0000}.ProseMirror [draggable][contenteditable=false]{-webkit-user-select:text;user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";pointer-events:none;border:2px solid #8cf;position:absolute;inset:-2px -2px -2px -32px}img.ProseMirror-separator{border:none!important;margin:0!important;display:inline!important}
4
+
5
+
6
+ .milkdown{position:relative}.milkdown *{box-sizing:border-box;margin:0;padding:0}.milkdown button,.milkdown input{box-shadow:none;background:0 0;border:none}.milkdown button:focus,.milkdown input:focus,.milkdown :focus-visible{outline:none}.milkdown{font-family:var(--crepe-font-default);color:var(--crepe-color-on-background);background:var(--crepe-color-background)}.milkdown .milkdown-icon{justify-content:center;align-items:center;display:inline-flex}.milkdown .ProseMirror-focused{outline:none}.milkdown .ProseMirror{padding:60px 120px}.milkdown .ProseMirror ::selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}.milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:0 0}.milkdown .ProseMirror li.ProseMirror-selectednode::selection{background:0 0}.milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}.milkdown .ProseMirror .ProseMirror-selectednode{background:var(--crepe-color-selected);background:color-mix(in srgb, var(--crepe-color-selected), transparent 60%);outline:none}.milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:0 0}.milkdown .ProseMirror .ProseMirror-selectednode::selection{background:0 0}.milkdown .ProseMirror[data-dragging=true]::-moz-selection{background:0 0}.milkdown .ProseMirror[data-dragging=true] ::-moz-selection{background:0 0}.milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode,.milkdown .ProseMirror[data-dragging=true]::selection,.milkdown .ProseMirror[data-dragging=true] ::selection{background:0 0}.milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}.milkdown .ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--crepe-color-primary);background:0 0}.milkdown .ProseMirror h1,.milkdown .ProseMirror h2,.milkdown .ProseMirror h3,.milkdown .ProseMirror h4,.milkdown .ProseMirror h5,.milkdown .ProseMirror h6{font-family:var(--crepe-font-title);padding:2px 0;font-weight:400}.milkdown .ProseMirror h1{margin-top:32px;font-size:42px;line-height:50px}.milkdown .ProseMirror h2{margin-top:28px;font-size:36px;line-height:44px}.milkdown .ProseMirror h3{margin-top:24px;font-size:32px;line-height:40px}.milkdown .ProseMirror h4{margin-top:20px;font-size:28px;line-height:36px}.milkdown .ProseMirror h5{margin-top:16px;font-size:24px;line-height:32px}.milkdown .ProseMirror h6{margin-top:16px;font-size:18px;font-weight:700;line-height:28px}.milkdown .ProseMirror p{padding:4px 0;font-size:16px;line-height:24px}.milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb, var(--crepe-color-inline-area), transparent 40%);font-family:var(--crepe-font-code);border-radius:4px;padding:0 2px;font-size:87.5%;line-height:1.4286;display:inline-block}.milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}.milkdown .ProseMirror pre{background:color-mix(in srgb, var(--crepe-color-inline-area), transparent 40%);border-radius:4px;padding:10px}.milkdown .ProseMirror pre code{background:0 0;padding:0}.milkdown .ProseMirror blockquote{box-sizing:content-box;margin:4px 0;padding-top:0;padding-bottom:0;padding-left:40px;position:relative}.milkdown .ProseMirror blockquote:before{content:"";background:var(--crepe-color-selected);border-radius:100px;width:4px;position:absolute;top:4px;bottom:4px;left:0}.milkdown .ProseMirror blockquote hr{margin-bottom:16px}.milkdown .ProseMirror hr{background-color:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);background-clip:content-box;border:none;height:13px;padding:6px 0;position:relative}.milkdown .ProseMirror hr.ProseMirror-selectednode{background-color:color-mix(in srgb, var(--crepe-color-outline), transparent 20%);background-clip:content-box;outline:none}.milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:"";background-color:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);pointer-events:none;position:absolute;inset:0}.milkdown .ProseMirror ul,.milkdown .ProseMirror ol{padding:0}
7
+ .milkdown .milkdown-block-handle[data-show=false]{opacity:0;pointer-events:none}.milkdown .milkdown-block-handle{cursor:pointer;justify-content:center;align-items:center;gap:2px;transition:all .2s;display:flex;position:absolute}.milkdown .milkdown-block-handle .operation-item{border-radius:4px;width:32px;height:32px;padding:4px}.milkdown .milkdown-block-handle .operation-item svg{width:24px;height:24px;fill:var(--crepe-color-outline)}.milkdown .milkdown-block-handle .operation-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-block-handle .operation-item.active{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu[data-show=false]{display:none}.milkdown .milkdown-slash-menu{z-index:10;font-family:var(--crepe-font-default);color:var(--crepe-color-on-surface);background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:12px;display:block;position:absolute}.milkdown .milkdown-slash-menu ul{list-style-type:none}.milkdown .milkdown-slash-menu ul li{cursor:pointer;border-radius:8px}.milkdown .milkdown-slash-menu .tab-group{border-bottom:1px solid color-mix(in srgb, var(--crepe-color-outline), transparent 80%);padding:12px 12px 0}.milkdown .milkdown-slash-menu .tab-group ul{flex-wrap:nowrap;gap:10px;padding:8px 10px;display:flex}.milkdown .milkdown-slash-menu .tab-group ul li{padding:6px 10px;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .tab-group ul li:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-slash-menu .tab-group ul li.selected{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu .menu-groups{overscroll-behavior:contain;scroll-behavior:smooth;max-height:420px;padding:0 12px 12px;overflow:auto}.milkdown .milkdown-slash-menu .menu-groups .menu-group h6{text-transform:uppercase;color:color-mix(in srgb, var(--crepe-color-on-surface), transparent 40%);padding:14px 10px;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .menu-groups .menu-group li{justify-content:flex-start;align-items:center;gap:16px;min-width:220px;padding:14px 10px;display:flex}.milkdown .milkdown-slash-menu .menu-groups .menu-group li.hover{background:var(--crepe-color-hover)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li.active{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li svg{width:24px;height:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li>span{font-size:14px;font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .menu-groups .menu-group+.menu-group:before{content:"";background:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);height:1px;margin:0 10px;display:block}
8
+ .milkdown .milkdown-code-block{background:var(--crepe-color-surface);margin:4px 0;padding:8px 20px 20px;display:block;position:relative}.milkdown .milkdown-code-block .language-picker{z-index:999;width:max-content;padding-top:10px;position:absolute}.milkdown .milkdown-code-block .hidden{display:none!important}.milkdown .milkdown-code-block.selected{outline:1px solid var(--crepe-color-primary)}.milkdown .milkdown-code-block .milkdown-code-block-placeholder{font-family:var(--crepe-font-code,monospace);white-space:pre-wrap;word-break:break-all;margin:0;padding:4px 0;font-size:14px;line-height:1.5}.milkdown .milkdown-code-block .milkdown-code-block-placeholder code{font-family:inherit}.milkdown .milkdown-code-block .cm-editor{background:var(--crepe-color-surface);outline:none!important}.milkdown .milkdown-code-block .cm-gutters{background:var(--crepe-color-surface);border-right:none}.milkdown .milkdown-code-block .cm-panel{font-family:var(--crepe-font-default);background:var(--crepe-color-surface);color:var(--crepe-color-on-surface)}.milkdown .milkdown-code-block .cm-panel input{caret-color:var(--crepe-color-outline);background:var(--crepe-color-surface-low);border-radius:4px}.milkdown .milkdown-code-block .cm-panel>button{text-transform:capitalize;background:var(--crepe-color-surface-low);color:var(--crepe-color-on-surface-variant);border:1px solid var(--crepe-color-outline);cursor:pointer;border-radius:4px;font-weight:600}.milkdown .milkdown-code-block .cm-panel>button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .cm-panel>label{text-transform:capitalize;align-items:center;display:inline-flex}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]{cursor:pointer;appearance:none;background:var(--crepe-color-surface-low);border:1px solid var(--crepe-color-outline);border-radius:4px;place-content:center;width:1.15em;height:1.15em;display:grid}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]:before{content:"";transform-origin:0 100%;width:.65em;height:.65em;box-shadow:inset 1em 1em var(--crepe-color-outline);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);transition:transform .12s ease-in-out;transform:scale(0)}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]:checked:before{transform:scale(1)}.milkdown .milkdown-code-block .tools{justify-content:space-between;align-items:center;display:flex}.milkdown .milkdown-code-block .tools input{caret-color:var(--crepe-color-outline)}.milkdown .milkdown-code-block .tools .tools-button-group{gap:2px;display:flex}.milkdown .milkdown-code-block .tools .tools-button-group button{background:var(--crepe-color-secondary);color:var(--crepe-color-on-surface-variant);opacity:0;cursor:pointer;font-size:12px;font-weight:600;line-height:16px;font-family:var(--crepe-font-default);border-radius:4px;justify-content:center;align-items:center;gap:4px;padding:4px 10px;transition:opacity .2s ease-in-out;display:flex}.milkdown .milkdown-code-block .tools .tools-button-group button svg{width:14px;height:14px;fill:var(--crepe-color-on-surface-variant)}.milkdown .milkdown-code-block .tools .tools-button-group button:first-child{border-top-left-radius:100px;border-bottom-left-radius:100px}.milkdown .milkdown-code-block .tools .tools-button-group button:last-child{border-top-right-radius:100px;border-bottom-right-radius:100px}.milkdown .milkdown-code-block .tools .language-button{font-family:var(--crepe-font-default);background:var(--crepe-color-surface-low);color:var(--crepe-color-on-surface-variant);opacity:0;cursor:pointer;border-radius:4px;align-items:center;gap:6px;margin-bottom:8px;padding:2px 4px 2px 8px;font-size:12px;font-weight:600;line-height:16px;transition:opacity .2s ease-in-out;display:flex}.milkdown .milkdown-code-block .tools .language-button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .tools .language-button .expand-icon{justify-content:center;align-items:center;width:18px;height:18px;transition:transform .2s ease-in-out;display:flex}.milkdown .milkdown-code-block .tools .language-button .expand-icon svg{width:14px;height:14px;color:var(--crepe-color-outline)}.milkdown .milkdown-code-block .tools .language-button[data-expanded=true] .expand-icon{transform:rotate(180deg)}.milkdown .milkdown-code-block .tools .language-button .expand-icon svg:focus,.milkdown .milkdown-code-block .tools .language-button .expand-icon:focus-visible{outline:none}.milkdown .milkdown-code-block:hover .language-button,.milkdown .milkdown-code-block:hover .tools-button-group>button{opacity:1}.milkdown .milkdown-code-block .list-wrapper{background:var(--crepe-color-surface-low);box-shadow:var(--crepe-shadow-1);border-radius:12px;width:240px;padding-top:12px}.milkdown .milkdown-code-block .language-list{overscroll-behavior:contain;height:410px;margin:0;padding:0;overflow-y:auto}.milkdown .milkdown-code-block .language-list-item{cursor:pointer;align-items:center;gap:8px;margin:0;padding:4px 22px;font-size:14px;font-weight:600;line-height:20px;display:flex}.milkdown .milkdown-code-block .language-list-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .language-list-item:focus-visible{background:var(--crepe-color-hover);outline:none}.milkdown .milkdown-code-block .language-list-item .leading,.milkdown .milkdown-code-block .language-list-item .leading svg{width:24px;height:24px}.milkdown .milkdown-code-block .language-list-item.no-result{cursor:default;opacity:.6}.milkdown .milkdown-code-block .language-list-item.no-result:hover{background:0 0}.milkdown .milkdown-code-block .search-box{outline:1px solid var(--crepe-color-primary);background:0 0;border-radius:4px;align-items:center;gap:8px;margin:0 12px 8px;padding:6px 10px;display:flex}.milkdown .milkdown-code-block .search-box:has(input:focus){outline:2px solid var(--crepe-color-primary)}.milkdown .milkdown-code-block .search-box .search-input{width:100%;color:var(--crepe-color-on-surface)}.milkdown .milkdown-code-block .search-box .search-icon{display:none}.milkdown .milkdown-code-block .search-box .clear-icon{cursor:pointer;width:20px;height:20px}.milkdown .milkdown-code-block .search-box .clear-icon svg{width:20px;height:20px;color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.milkdown .milkdown-code-block .search-box .clear-icon:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .search-box input{font-family:var(--crepe-font-default);background:0 0;font-size:14px;line-height:20px}.milkdown .milkdown-code-block .search-box input:focus{outline:none}.milkdown .milkdown-code-block .preview-panel .preview-divider{opacity:.2;background:var(--crepe-color-outline);height:1px;margin:6px 0}.milkdown .milkdown-code-block .preview-panel .preview-label{color:color-mix(in srgb, var(--crepe-color-on-surface), transparent 40%);text-transform:uppercase;font-size:12px;font-weight:600;font-family:var(--crepe-font-default);margin:6px 0}.milkdown .milkdown-code-block .preview-panel .preview{text-align:center;overflow-x:auto}
9
+ .ProseMirror-gapcursor{pointer-events:none;display:none;position:absolute}.ProseMirror-gapcursor:after{content:"";border-top:1px solid #000;width:20px;animation:1.1s steps(2,start) infinite ProseMirror-cursor-blink;display:block;position:absolute;top:-2px}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}.ProseMirror-focused .ProseMirror-gapcursor{display:block}
10
+
11
+ .ProseMirror.virtual-cursor-enabled{caret-color:#0000}.ProseMirror-focused{--prosemirror-virtual-cursor-color:red}.ProseMirror .prosemirror-virtual-cursor{cursor:text;pointer-events:none;-webkit-user-select:none;user-select:none;border-left:2px solid var(--prosemirror-virtual-cursor-color);position:absolute;transform:translate(-1px)}.ProseMirror .prosemirror-virtual-cursor-left{border-bottom:2px solid var(--prosemirror-virtual-cursor-color);border-right:2px solid var(--prosemirror-virtual-cursor-color);border-left:none;width:1ch;transform:translate(calc(-1ch - 1px))}.ProseMirror .prosemirror-virtual-cursor-right{border-bottom:2px solid var(--prosemirror-virtual-cursor-color);border-left:2px solid var(--prosemirror-virtual-cursor-color);border-right:none;width:1ch}.ProseMirror-focused .prosemirror-virtual-cursor-animation{animation:1s linear .5s infinite prosemirror-virtual-cursor-blink}@keyframes prosemirror-virtual-cursor-blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}
12
+ .milkdown .crepe-drop-cursor{background-color:color-mix(in srgb, var(--crepe-color-outline), transparent 50%);opacity:.5;pointer-events:none;transition:all .2s}.milkdown .ProseMirror-gapcursor:after{box-sizing:border-box;border-top:1px solid var(--crepe-color-on-background)}.milkdown .ProseMirror-focused{--prosemirror-virtual-cursor-color:var(--crepe-color-outline)}
13
+ .milkdown .milkdown-image-inline{vertical-align:text-bottom;outline:none;display:inline-flex}.milkdown .milkdown-image-inline input{caret-color:var(--crepe-color-outline);background:0 0;border:0;outline:none}.milkdown .milkdown-image-inline>.empty-image-inline{display:inline-flex}.milkdown .milkdown-image-inline>.empty-image-inline .confirm{cursor:pointer}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer{flex:1;position:relative}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer>.link-input-area{width:208px;color:var(--crepe-color-on-background);display:flex}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer .placeholder{cursor:text;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer .placeholder .uploader{cursor:pointer;display:flex}.milkdown .milkdown-image-inline .hidden{display:none!important}.milkdown .milkdown-image-inline.empty.selected{background:0 0;outline:none}.milkdown .milkdown-image-inline.empty.selected .empty-image-inline{box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-image-inline.selected{outline:1px solid var(--crepe-color-primary);background:0 0}.milkdown .milkdown-image-inline.selected :not(input)::-moz-selection{background:0 0}.milkdown .milkdown-image-inline.selected :not(input)::selection{background:0 0}.milkdown .milkdown-image-inline .empty-image-inline{background:var(--crepe-color-surface);font-family:var(--crepe-font-default);border-radius:8px;align-items:center;gap:10px;padding:4px 10px;font-size:16px}.milkdown .milkdown-image-inline .empty-image-inline .image-icon svg{width:18px;height:18px;fill:var(--crepe-color-outline)}.milkdown .milkdown-image-inline .empty-image-inline .image-icon{width:24px;height:24px;padding:3px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer{height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder{color:color-mix(in srgb, var(--crepe-color-on-background), transparent 60%)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder :not(input)::-moz-selection{background:0 0}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder :not(input)::selection{background:0 0}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .link-input-area{line-height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .uploader{color:var(--crepe-color-primary);font-family:var(--crepe-font-default);justify-content:center;gap:8px;transition:color .2s}.milkdown .milkdown-image-inline .empty-image-inline .link-importer.focus .placeholder .uploader{color:unset}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .uploader:hover{color:var(--crepe-color-primary)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .text{margin-left:8px}.milkdown .milkdown-image-inline .empty-image-inline .confirm svg{width:18px;height:18px}.milkdown .milkdown-image-inline .empty-image-inline .confirm{width:24px;height:24px;color:var(--crepe-color-primary);border-radius:8px;padding:3px;display:flex}.milkdown .milkdown-image-inline .empty-image-inline .confirm:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-image-block{outline:none;margin:4px 0;display:block}.milkdown .milkdown-image-block>.image-wrapper{width:fit-content;min-width:100px;margin:0 auto;position:relative}.milkdown .milkdown-image-block>.image-wrapper .operation{display:flex;position:absolute}.milkdown .milkdown-image-block>.image-wrapper .operation>.operation-item{cursor:pointer}.milkdown .milkdown-image-block>.image-wrapper img{-o-object-fit:cover;object-fit:cover;max-width:100%;min-height:100px;display:block}.milkdown .milkdown-image-block>.image-wrapper>.image-resize-handle{position:absolute;left:50%;transform:translate(-50%)}.milkdown .milkdown-image-block>.image-wrapper>.image-resize-handle:hover{cursor:row-resize}.milkdown .milkdown-image-block input{caret-color:var(--crepe-color-outline);background:0 0;border:0;outline:none}.milkdown .milkdown-image-block>.caption-input{text-align:center;width:100%;color:var(--crepe-color-on-background);display:block}.milkdown .milkdown-image-block>.image-edit{display:flex}.milkdown .milkdown-image-block>.image-edit .confirm{cursor:pointer}.milkdown .milkdown-image-block>.image-edit .link-importer{flex:1;position:relative}.milkdown .milkdown-image-block>.image-edit .link-importer>.link-input-area{width:100%}.milkdown .milkdown-image-block>.image-edit .link-importer .placeholder{cursor:text;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0}.milkdown .milkdown-image-block>.image-edit .link-importer .placeholder .uploader{cursor:pointer;display:flex}.milkdown .milkdown-image-block .hidden{display:none!important}.milkdown .milkdown-image-block.selected>.image-edit:not(:has(input:focus)){position:relative}.milkdown .milkdown-image-block.selected>.image-edit:not(:has(input:focus)):before{content:"";background:color-mix(in srgb, var(--crepe-color-selected), transparent 60%);pointer-events:none;position:absolute;inset:0}.milkdown .milkdown-image-block.selected>.image-wrapper{position:relative}.milkdown .milkdown-image-block.selected>.image-wrapper:before{content:"";background:color-mix(in srgb, var(--crepe-color-selected), transparent 60%);position:absolute;inset:0}.milkdown .milkdown-image-block.selected :not(input)::-moz-selection{background:0 0}.milkdown .milkdown-image-block.selected :not(input)::selection{background:0 0}.milkdown .milkdown-image-block .image-wrapper{justify-content:center;align-items:center;display:flex}.milkdown .milkdown-image-block .image-wrapper .operation{opacity:0;gap:12px;transition:all .2s;top:12px;right:12px}.milkdown .milkdown-image-block:hover>.image-wrapper .operation{opacity:1}.milkdown .milkdown-image-block .image-wrapper .operation>.operation-item{color:var(--crepe-color-on-inverse);background:var(--crepe-color-inverse);opacity:.6;border-radius:50%;width:32px;height:32px;padding:4px}.milkdown .milkdown-image-block .image-wrapper .operation>.operation-item svg{width:24px;height:24px}.milkdown .milkdown-image-block .image-wrapper .image-resize-handle{background:var(--crepe-color-outline);opacity:0;border-radius:4px;width:100%;max-width:160px;height:4px;transition:all .2s;bottom:-2px}.milkdown .milkdown-image-block:hover>.image-wrapper .image-resize-handle{opacity:1}.milkdown .milkdown-image-block .caption-input{font-family:var(--crepe-font-default);margin:4px auto}.milkdown .milkdown-image-block .image-edit{background:var(--crepe-color-surface);align-items:center;gap:16px;height:56px;padding:16px 24px}.milkdown .milkdown-image-block .image-edit .image-icon{color:var(--crepe-color-outline)}.milkdown .milkdown-image-block .image-edit .image-icon svg{width:24px;height:24px;fill:var(--crepe-color-outline);justify-content:center;align-items:center;display:flex}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder{color:color-mix(in srgb, var(--crepe-color-on-background), transparent 60%)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder :not(input)::-moz-selection{background:0 0}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder :not(input)::selection{background:0 0}.milkdown .milkdown-image-block .image-edit .link-importer .link-input-area{color:var(--crepe-color-on-background);line-height:24px}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .uploader{color:var(--crepe-color-primary);justify-content:center;gap:8px;font-weight:600;transition:color .2s}.milkdown .milkdown-image-block .image-edit .link-importer.focus .placeholder .uploader{color:unset}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .uploader:hover{color:var(--crepe-color-primary)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .text{margin-left:8px}.milkdown .milkdown-image-block .image-edit .confirm{background:var(--crepe-color-secondary);color:var(--crepe-color-on-secondary);border-radius:100px;padding:0 24px;font-size:14px;font-weight:600;line-height:40px}.milkdown .milkdown-image-block .image-edit .confirm:hover{background:linear-gradient(0deg, #1d192b14 0%, #1d192b14 100%), var(--crepe-color-secondary)}
14
+ .milkdown .milkdown-link-preview{z-index:10;position:absolute}.milkdown .milkdown-link-preview[data-show=false]{display:none}.milkdown .milkdown-link-preview>.link-preview{background:var(--crepe-color-surface);cursor:pointer;height:32px;box-shadow:var(--crepe-shadow-1);border-radius:8px;justify-content:center;gap:10px;padding:4px 10px;display:flex}.milkdown .milkdown-link-preview>.link-preview>.link-display{color:unset;text-decoration:none}.milkdown .milkdown-link-preview>.link-preview>.link-display:hover:before{display:block}.milkdown .milkdown-link-preview>.link-preview>.link-icon>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-preview>.link-preview>.link-icon{border-radius:8px;padding:3px;line-height:24px}.milkdown .milkdown-link-preview>.link-preview>.link-icon:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-preview>.link-preview>.link-display{text-overflow:ellipsis;white-space:nowrap;width:240px;font-size:14px;line-height:24px;overflow:hidden}.milkdown .milkdown-link-preview>.link-preview>.link-display:hover{text-decoration:underline}.milkdown .milkdown-link-preview>.link-preview>.button>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-preview>.link-preview>.button{border-radius:8px;padding:3px;line-height:24px}.milkdown .milkdown-link-preview>.link-preview>.button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-edit{z-index:10;position:absolute}.milkdown .milkdown-link-edit[data-show=false]{display:none}.milkdown .milkdown-link-edit>.link-edit{background:var(--crepe-color-surface);height:32px;box-shadow:var(--crepe-shadow-1);border-radius:8px;justify-content:center;gap:8px;padding:4px 10px 4px 20px;display:flex}.milkdown .milkdown-link-edit>.link-edit>.input-area{width:200px;color:var(--crepe-color-on-background);background:0 0;outline:none;font-size:14px}.milkdown .milkdown-link-edit>.link-edit>.button>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-edit>.link-edit>.button{cursor:pointer;border-radius:8px;padding:3px;font-size:12px;line-height:24px}.milkdown .milkdown-link-edit>.link-edit>.button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-edit>.link-edit>.button.hidden{visibility:hidden}
15
+ .milkdown .milkdown-list-item-block{padding:0;display:block}.milkdown .milkdown-list-item-block>.list-item{align-items:flex-start;display:flex}.milkdown .milkdown-list-item-block>.list-item>.children{flex:1;min-width:0}.milkdown .milkdown-list-item-block li{gap:10px}.milkdown .milkdown-list-item-block li .label-wrapper{color:var(--crepe-color-outline)}.milkdown .milkdown-list-item-block li .label-wrapper svg{fill:var(--crepe-color-outline)}.milkdown .milkdown-list-item-block li .label-wrapper{justify-content:center;align-items:center;width:24px;height:32px;display:flex}.milkdown .milkdown-list-item-block li .label-wrapper .label{text-align:right;width:24px;height:32px;padding:4px 0}.milkdown .milkdown-list-item-block li .label-wrapper .checked,.milkdown .milkdown-list-item-block li .label-wrapper .unchecked{cursor:pointer}.milkdown .milkdown-list-item-block li .label-wrapper .readonly{cursor:not-allowed}
16
+ .milkdown .crepe-placeholder:before{color:color-mix(in srgb, var(--crepe-color-on-background), transparent 60%);pointer-events:none;content:attr(data-placeholder);height:0;position:absolute}
17
+ :is(.milkdown:has(.milkdown-link-preview[data-show=true]) .milkdown-toolbar,.milkdown:has(.milkdown-link-edit[data-show=true]) .milkdown-toolbar),.milkdown .milkdown-toolbar[data-show=false]{display:none}.milkdown .milkdown-toolbar{z-index:10;background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:8px;display:flex;position:absolute;overflow:hidden}.milkdown .milkdown-toolbar .divider{background:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);width:1px;height:24px;margin:10px}.milkdown .milkdown-toolbar .toolbar-item{cursor:pointer;border-radius:4px;width:32px;height:32px;margin:6px;padding:4px}.milkdown .milkdown-toolbar .toolbar-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-toolbar .toolbar-item:active{background:var(--crepe-color-selected)}.milkdown .milkdown-toolbar .toolbar-item svg{width:24px;height:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-toolbar .toolbar-item.active svg{color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}
18
+ .ProseMirror .tableWrapper{overflow-x:auto}.ProseMirror table{border-collapse:collapse;table-layout:fixed;width:100%;overflow:hidden}.ProseMirror td,.ProseMirror th{vertical-align:top;box-sizing:border-box;position:relative}.ProseMirror td:not([data-colwidth]):not(.column-resize-dragging),.ProseMirror th:not([data-colwidth]):not(.column-resize-dragging){min-width:var(--default-cell-min-width)}.ProseMirror .column-resize-handle{z-index:20;pointer-events:none;background-color:#adf;width:4px;position:absolute;top:0;bottom:0;right:-2px}.ProseMirror.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror .selectedCell:after{z-index:2;content:"";pointer-events:none;background:#c8c8ff66;position:absolute;inset:0}
19
+
20
+ .milkdown .milkdown-table-block{margin:4px 0;display:block}.milkdown .milkdown-table-block th,.milkdown .milkdown-table-block td{border:1px solid color-mix(in srgb, var(--crepe-color-outline), transparent 80%);padding:4px 16px}.milkdown .milkdown-table-block th .ProseMirror-selectednode,.milkdown .milkdown-table-block td .ProseMirror-selectednode{background-color:#0000!important}:is(.milkdown .milkdown-table-block th:has(.ProseMirror-selectednode),.milkdown .milkdown-table-block td:has(.ProseMirror-selectednode)){outline:1px solid var(--crepe-color-primary);outline-offset:-1px}.milkdown .milkdown-table-block .selectedCell:after{background-color:var(--crepe-color-selected);opacity:.4}.milkdown .milkdown-table-block .selectedCell ::selection{background:0 0}.milkdown .milkdown-table-block .drag-preview{background-color:var(--crepe-color-surface);opacity:.4;z-index:100;outline:1px solid var(--crepe-color-primary);outline-offset:-1px;flex-direction:column;display:flex;position:absolute}.milkdown .milkdown-table-block .drag-preview[data-show=false]{display:none}:is(.milkdown .milkdown-table-block .drag-preview th:has(.ProseMirror-selectednode),.milkdown .milkdown-table-block .drag-preview td:has(.ProseMirror-selectednode)){outline:none}.milkdown .milkdown-table-block .handle{font-size:14px;transition:opacity .2s ease-in-out;position:absolute}.milkdown .milkdown-table-block .handle[data-show=false]{opacity:0}.milkdown .milkdown-table-block svg{fill:var(--crepe-color-outline)}.milkdown .milkdown-table-block .cell-handle{z-index:50;cursor:grab;background-color:var(--crepe-color-surface);color:var(--crepe-color-outline);box-shadow:var(--crepe-shadow-1);border-radius:100px;transition:background-color .2s ease-in-out;top:-999px;left:-999px}.milkdown .milkdown-table-block .cell-handle:hover{background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .cell-handle:has(.button-group:hover){background-color:var(--crepe-color-surface)}.milkdown .milkdown-table-block .cell-handle[data-role=col-drag-handle]{width:28px;height:16px;padding:0 6px;transform:translateY(50%)}.milkdown .milkdown-table-block .cell-handle[data-role=row-drag-handle]{width:16px;height:28px;padding:6px 0;transform:translate(50%)}.milkdown .milkdown-table-block .cell-handle .button-group{background-color:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:8px;display:flex;position:absolute;top:-52px;left:50%;transform:translate(-50%)}.milkdown .milkdown-table-block .cell-handle .button-group:after{content:"";background-color:#0000;width:100%;height:8px;position:absolute;bottom:-8px}.milkdown .milkdown-table-block .cell-handle .button-group[data-show=false]{display:none}.milkdown .milkdown-table-block .cell-handle .button-group button{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;margin:6px;padding:4px;display:flex}.milkdown .milkdown-table-block .cell-handle .button-group button svg{width:24px;height:24px}.milkdown .milkdown-table-block .cell-handle .button-group button:hover{background-color:var(--crepe-color-hover);border-radius:8px}.milkdown .milkdown-table-block .cell-handle .button-group button:active{background:var(--crepe-color-selected)}.milkdown .milkdown-table-block .cell-handle:hover{opacity:1}.milkdown .milkdown-table-block .line-handle{z-index:20;background-color:var(--crepe-color-primary)}.milkdown .milkdown-table-block .line-handle:hover{opacity:1}.milkdown .milkdown-table-block .line-handle .add-button{cursor:pointer;background-color:var(--crepe-color-surface);color:var(--crepe-color-outline);box-shadow:var(--crepe-shadow-1);border-radius:100px;transition:background-color .2s ease-in-out}.milkdown .milkdown-table-block .line-handle .add-button svg{width:16px;height:16px}.milkdown .milkdown-table-block .line-handle .add-button:hover{background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .line-handle .add-button:active{background:var(--crepe-color-selected)}.milkdown .milkdown-table-block .line-handle[data-role=x-line-drag-handle]{z-index:2;height:1px}.milkdown .milkdown-table-block .line-handle[data-role=x-line-drag-handle] .add-button{width:16px;height:28px;padding:6px 0;position:absolute;transform:translate(-50%)translateY(-50%)}.milkdown .milkdown-table-block .line-handle[data-role=y-line-drag-handle]{z-index:1;width:1px}.milkdown .milkdown-table-block .line-handle[data-role=y-line-drag-handle] .add-button{width:28px;height:16px;padding:0 6px;position:absolute;transform:translateY(-50%)translate(-50%)}.milkdown .milkdown-table-block .line-handle[data-display-type=indicator] .add-button,.milkdown .milkdown-table-block.readonly .handle{display:none}
21
+ @font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(../media/KaTeX_AMS-Regular.25ieegmnh38ts.woff2)format("woff2"),url(../media/KaTeX_AMS-Regular.10y3kupq4t663.woff)format("woff"),url(../media/KaTeX_AMS-Regular.418dr7cz3fo2x.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(../media/KaTeX_Caligraphic-Bold.06b-ya9t43ioz.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Bold.2vmk2hva4ctha.woff)format("woff"),url(../media/KaTeX_Caligraphic-Bold.40ltxhe834pns.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(../media/KaTeX_Caligraphic-Regular.2eph4dlhid_m9.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Regular.3gxeetazf831f.woff)format("woff"),url(../media/KaTeX_Caligraphic-Regular.07-7u27-nhn_r.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(../media/KaTeX_Fraktur-Bold.2sasz-d-jtw8y.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Bold.1alcy76__wdj2.woff)format("woff"),url(../media/KaTeX_Fraktur-Bold.19yqa_tc9d_gx.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(../media/KaTeX_Fraktur-Regular.2d10y4xmjvzlf.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Regular.110oo81prr9n5.woff)format("woff"),url(../media/KaTeX_Fraktur-Regular.2qhy34r6a05dn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(../media/KaTeX_Main-Bold.3-rowy8o6_4ky.woff2)format("woff2"),url(../media/KaTeX_Main-Bold.0v1esh257kqpe.woff)format("woff"),url(../media/KaTeX_Main-Bold.0us_n0tnxlxu7.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(../media/KaTeX_Main-BoldItalic.14r2naom8mrec.woff2)format("woff2"),url(../media/KaTeX_Main-BoldItalic.13355ck5zr48q.woff)format("woff"),url(../media/KaTeX_Main-BoldItalic.3x_u9cepaced0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(../media/KaTeX_Main-Italic.0lig0v9j0700p.woff2)format("woff2"),url(../media/KaTeX_Main-Italic.0afv392dj4w59.woff)format("woff"),url(../media/KaTeX_Main-Italic.2hkw3230mfwcv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(../media/KaTeX_Main-Regular.1ryvsdzh2w1_e.woff2)format("woff2"),url(../media/KaTeX_Main-Regular.15u8r3b2y7fv4.woff)format("woff"),url(../media/KaTeX_Main-Regular.0symfa7dqj6jd.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(../media/KaTeX_Math-BoldItalic.1oopuu636h4il.woff2)format("woff2"),url(../media/KaTeX_Math-BoldItalic.12pl58orkw9rg.woff)format("woff"),url(../media/KaTeX_Math-BoldItalic.0y5w36a5aq__2.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(../media/KaTeX_Math-Italic.32405s1aq8vas.woff2)format("woff2"),url(../media/KaTeX_Math-Italic.0w0b1ugh62cfr.woff)format("woff"),url(../media/KaTeX_Math-Italic.2vkekfblmz5nb.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(../media/KaTeX_SansSerif-Bold.0h3wi2z_eouyg.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Bold.1ovw5p-yjp56g.woff)format("woff"),url(../media/KaTeX_SansSerif-Bold.2d03q85pwxpti.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(../media/KaTeX_SansSerif-Italic.0wkjc4dm2kcit.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Italic.1qavw__2zz8gk.woff)format("woff"),url(../media/KaTeX_SansSerif-Italic.3i-q087b23-m8.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(../media/KaTeX_SansSerif-Regular.2peiewu59z3d-.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Regular.1i4afx8nk8n4r.woff)format("woff"),url(../media/KaTeX_SansSerif-Regular.31pbu25feko_c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(../media/KaTeX_Script-Regular.11h14300o9pd0.woff2)format("woff2"),url(../media/KaTeX_Script-Regular.3110jb9c-bxna.woff)format("woff"),url(../media/KaTeX_Script-Regular.28p_x7iz71ofe.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size1-Regular.03lhvx36ekcou.woff2)format("woff2"),url(../media/KaTeX_Size1-Regular.1slf4bh0hc6vm.woff)format("woff"),url(../media/KaTeX_Size1-Regular.1y57-ck23ey8c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size2-Regular.14s5gg-puz6h-.woff2)format("woff2"),url(../media/KaTeX_Size2-Regular.0-kwyvx03omo8.woff)format("woff"),url(../media/KaTeX_Size2-Regular.2u0s-b07k2o9m.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size3-Regular.1n1rgzz84z8r9.woff2)format("woff2"),url(../media/KaTeX_Size3-Regular.04o9a_02gu_e8.woff)format("woff"),url(../media/KaTeX_Size3-Regular.1pkn-dge4q0fv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size4-Regular.2sgotkdv3dcyv.woff2)format("woff2"),url(../media/KaTeX_Size4-Regular.3p2r1l7xmebxv.woff)format("woff"),url(../media/KaTeX_Size4-Regular.2uelkfk2yna5e.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(../media/KaTeX_Typewriter-Regular.11gr2d2wuwz77.woff2)format("woff2"),url(../media/KaTeX_Typewriter-Regular.12f8myjij3617.woff)format("woff"),url(../media/KaTeX_Typewriter-Regular.3nee9kjfy6nm8.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
22
+ .milkdown span[data-type=math_inline]{vertical-align:bottom;color:var(--crepe-color-primary);padding:0 4px;display:inline-block}.milkdown .milkdown-latex-inline-edit[data-show=false]{display:none}.milkdown .milkdown-latex-inline-edit{background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:8px;padding:2px 6px 2px 12px;position:absolute}.milkdown .milkdown-latex-inline-edit .container{align-items:flex-start;gap:6px;display:flex}.milkdown .milkdown-latex-inline-edit .container button{cursor:pointer;border-radius:8px;width:24px;height:24px}.milkdown .milkdown-latex-inline-edit .container button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-latex-inline-edit .ProseMirror{min-width:174px;max-width:294px;font-family:var(--crepe-font-code);padding:0}
23
+ .milkdown .milkdown-top-bar{z-index:10;background:var(--crepe-color-surface);border-bottom:1px solid color-mix(in srgb, var(--crepe-color-outline), transparent 80%);flex-wrap:wrap;align-items:center;min-height:44px;padding:0 12px;display:flex;position:sticky;top:0}.milkdown .milkdown-top-bar .top-bar-inner{flex-wrap:wrap;align-items:center;width:100%;display:flex}.milkdown .milkdown-top-bar .top-bar-divider{background:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);flex-shrink:0;width:1px;height:24px;margin:10px}.milkdown .milkdown-top-bar .top-bar-heading-selector{flex-shrink:0;padding:6px;position:relative}.milkdown .milkdown-top-bar .top-bar-heading-button{text-align:left;cursor:pointer;box-sizing:border-box;border-radius:4px;align-items:center;height:32px;padding:4px 4px 4px 10px;display:flex}.milkdown .milkdown-top-bar .top-bar-heading-button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-top-bar .top-bar-heading-button .top-bar-heading-label{font-family:var(--crepe-font-default);letter-spacing:.1px;color:var(--crepe-color-on-surface);white-space:nowrap;min-width:80px;font-size:14px;font-weight:600;line-height:20px}.milkdown .milkdown-top-bar .top-bar-heading-button .top-bar-chevron{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.milkdown .milkdown-top-bar .top-bar-heading-button .top-bar-chevron svg{width:16px;height:16px;color:var(--crepe-color-outline);stroke:var(--crepe-color-outline);fill:none}.milkdown .milkdown-top-bar .top-bar-heading-dropdown{z-index:20;background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-2);border-radius:8px;min-width:160px;padding:8px 4px 4px;position:absolute;top:100%;left:0}.milkdown .milkdown-top-bar .top-bar-heading-option{text-align:left;cursor:pointer;width:100%;font-family:var(--crepe-font-default);color:var(--crepe-color-on-surface);white-space:nowrap;border-radius:4px;justify-content:flex-start;align-items:center;padding:8px 12px;font-size:14px;font-weight:400;line-height:20px;display:flex}.milkdown .milkdown-top-bar .top-bar-heading-option:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-top-bar .top-bar-heading-option.active{color:var(--crepe-color-primary);font-weight:600}.milkdown .milkdown-top-bar .top-bar-item{cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin:6px;padding:4px;display:flex}.milkdown .milkdown-top-bar .top-bar-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-top-bar .top-bar-item:active{background:var(--crepe-color-selected)}.milkdown .milkdown-top-bar .top-bar-item svg{width:24px;height:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-top-bar .top-bar-item.active svg{color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return o},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=e.r(90809)._(e.r(98183)),i=/https?|ftp|gopher|file/;function o(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",o=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let u=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==c?(c="//"+(c||""),a&&"/"!==a[0]&&(a="/"+a)):c||(c=""),o&&"#"!==o[0]&&(o="#"+o),u&&"?"!==u[0]&&(u="?"+u),a=a.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${c}${a}${u}${o}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return o(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=e.r(71645);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=s(e,n)),t&&(a.current=s(t,n))},[e,t])}function s(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return s}});let n=e.r(18967),a=e.r(52817);function s(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return g},useLinkStatus:function(){return j}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=e.r(90809),i=e.r(18050),o=s._(e.r(71645)),l=e.r(95057),c=e.r(8372),u=e.r(18581),d=e.r(18967),h=e.r(5550);e.r(33525);let p=e.r(88540),f=e.r(91949),m=e.r(73668),y=e.r(9396);function g(t){var r,n;let a,s,g,[j,v]=(0,o.useOptimistic)(f.IDLE_LINK_STATUS),x=(0,o.useRef)(null),{href:k,as:w,children:C,prefetch:S=null,passHref:N,replace:M,shallow:A,scroll:I,onClick:$,onMouseEnter:E,onTouchStart:z,legacyBehavior:R=!1,onNavigate:P,transitionTypes:L,ref:U,unstable_dynamicOnHover:_,...O}=t;a=C,R&&("string"==typeof a||"number"==typeof a)&&(a=(0,i.jsx)("a",{children:a}));let T=o.default.useContext(c.AppRouterContext),D=!1!==S,K=!1!==S?null===(n=S)||"auto"===n?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,B="string"==typeof(r=w||k)?r:(0,l.formatUrl)(r);if(R){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=o.default.Children.only(a)}let V=R?s&&"object"==typeof s&&s.ref:U,q=o.default.useCallback(e=>(null!==T&&(x.current=(0,f.mountLinkInstance)(e,B,T,K,D,v)),()=>{x.current&&((0,f.unmountLinkForCurrentNavigation)(x.current),x.current=null),(0,f.unmountPrefetchableInstance)(e)}),[D,B,T,K,v]),G={ref:(0,u.useMergedRef)(q,V),onClick(t){R||"function"!=typeof $||$(t),R&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!T||t.defaultPrevented||function(t,r,n,a,s,i,l){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(99781);o.default.startTransition(()=>{d(r,a?"replace":"push",!1===s?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,l)})}}(t,B,x,M,I,P,L)},onMouseEnter(e){R||"function"!=typeof E||E(e),R&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),T&&D&&(0,f.onNavigationIntent)(e.currentTarget,!0===_)},onTouchStart:function(e){R||"function"!=typeof z||z(e),R&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),T&&D&&(0,f.onNavigationIntent)(e.currentTarget,!0===_)}};return(0,d.isAbsoluteUrl)(B)?G.href=B:R&&!N&&("a"!==s.type||"href"in s.props)||(G.href=(0,h.addBasePath)(B)),g=R?o.default.cloneElement(s,G):(0,i.jsx)("a",{...O,...G,children:a}),(0,i.jsx)(b.Provider,{value:j,children:g})}e.r(84508);let b=(0,o.createContext)(f.IDLE_LINK_STATUS),j=()=>(0,o.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},8734,e=>{"use strict";let t=(0,e.i(56420).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],8734)},11241,e=>{"use strict";let t=(0,e.i(56420).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],11241)},96699,e=>{"use strict";let t=(0,e.i(56420).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);e.s(["Moon",0,t],96699)},35965,e=>{"use strict";let t=(0,e.i(56420).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);e.s(["Sun",0,t],35965)},59665,5142,e=>{"use strict";var t=e.i(18050),r=e.i(71645);let n=(0,e.i(56420).default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);function a(e=!1,t={}){let[n,s]=(0,r.useState)(e),i=(0,r.useCallback)(()=>{s(e=>e||(t.onOpen?.(),!0))},[t.onOpen]),o=(0,r.useCallback)(()=>{s(e=>e?(t.onClose?.(),!1):e)},[t.onClose]);return[n,{open:i,close:o,toggle:(0,r.useCallback)(()=>{n?o():i()},[o,i,n]),set:s}]}e.s(["useDisclosure",0,a],5142);let s=(0,r.createContext)(null);e.s(["default",0,function({sidebar:e,headerTitle:i,headerRight:o,children:l}){let[c,u]=a(!1),[d,h]=(0,r.useState)(!1),p=function(e,{getInitialValueInEffect:t}={getInitialValueInEffect:!0}){let[n,a]=(0,r.useState)(t?void 0:!!("u">typeof window&&"matchMedia"in window)&&window.matchMedia(e).matches);return(0,r.useEffect)(()=>{try{if("matchMedia"in window){let t=window.matchMedia(e);a(t.matches);let r=e=>a(e.matches);return t.addEventListener("change",r),()=>{t.removeEventListener("change",r)}}}catch(e){return}},[e]),n||!1}("(max-width: 768px)"),f=()=>{p?u.open():h(!1)};return(0,t.jsx)(s.Provider,{value:{closeSidebar:u.close,openSidebar:f,isSidebarVisible:p?c:!d},children:(0,t.jsxs)("div",{className:"app-layout",children:[(0,t.jsx)("div",{className:`sidebar-overlay ${c?"visible":""}`,onClick:()=>u.close()}),(0,t.jsx)("div",{className:`sidebar ${c?"open":""} ${d?"collapsed":""}`,children:e({closeSidebar:u.close,openSidebar:f})}),(0,t.jsxs)("div",{className:"main-content",children:[(0,t.jsxs)("header",{className:"app-header",children:[(0,t.jsxs)("div",{className:"header-left",children:[(0,t.jsx)("button",{onClick:()=>{p?u.toggle():h(!d)},className:"btn btn-icon sidebar-toggle-btn","aria-label":p?"打开菜单":d?"展开侧边栏":"收起侧边栏",children:(0,t.jsx)(n,{size:16})}),i]}),(0,t.jsx)("div",{className:"header-right",children:o})]}),l]})]})})},"useAppShell",0,function(){let e=(0,r.useContext)(s);if(!e)throw Error("useAppShell must be used within AppShell");return e}],59665)},27648,e=>{"use strict";var t=e.i(18050),r=e.i(93957),n=e.i(71192);e.s(["default",0,function({className:e=""}){let a=(0,n.useUserStore)(e=>e.identity),s=(0,n.useUserStore)(e=>e.openLoginModal),i=(0,n.useUserStore)(e=>e.logoutUser);return(0,t.jsxs)("div",{className:`chat-sidebar-footer sidebar-account ${e}`,children:[(0,t.jsxs)("div",{className:"user-info",children:[(0,t.jsx)("img",{className:"user-avatar-img",src:(0,r.generateAvatar)(a?.address,a?.avatar),alt:"avatar"}),(0,t.jsx)("span",{className:"user-name",title:a?.address,children:a?.displayName||"未登录"})]}),a?(0,t.jsx)("button",{className:"btn btn-ghost logout-btn",onClick:i,children:"退出"}):(0,t.jsx)("button",{className:"btn btn-primary login-btn",onClick:s,children:"登录"})]})}])},87884,e=>{"use strict";var t=e.i(26913);e.s(["channelApi",0,{getChannels(e={}){let r=new URLSearchParams;e.type&&r.set("type",e.type),e.excludeType&&r.set("excludeType",e.excludeType);let n=r.toString();return t.api.get(n?`/api/channels?${n}`:"/api/channels").json()},createChannel:(e,r="personal",n={})=>t.api.post("/api/channels",{json:{name:e,type:r,...n}}).json(),leaveChannel:e=>t.api.delete(`/api/channels/${encodeURIComponent(e)}`).json(),getChannelMessages:(e,r=100,n=0)=>t.api.get(`/api/channels/${encodeURIComponent(e)}/messages?limit=${r}&offset=${n}`).json(),sendChannelMessage:({channelName:e,content:r,author:n,authorName:a,avatar:s,attachment:i})=>t.api.post(`/api/channels/${encodeURIComponent(e)}/messages`,{json:i?{content:r,author:n,authorName:a,avatar:s,attachment:i}:{content:r,author:n,authorName:a,avatar:s}}).json(),getChannelMembers:e=>t.api.get(`/api/channels/${encodeURIComponent(e)}/members`).json(),getChannelPeers:e=>t.api.get(`/api/channels/${encodeURIComponent(e)}/peers`).json(),setChannelRemark:(e,r)=>t.api.put(`/api/channels/${encodeURIComponent(e)}/remark`,{json:{remark:r}}).json(),getFileDownloadUrl:e=>(0,t.getApiUrl)(`/api/files/${e}/download`)}])},23952,e=>{"use strict";var t=e.i(71645),r=e.i(87884),n=e.i(26913);function a(e){return String(e.id||`${e.author||""}-${e.timestamp||""}-${e.content||""}`)}e.s(["useChannelMessages",0,function({isReady:e,enabled:s=!0,channelName:i="",peerId:o="",waitForPeerId:l=!1,limit:c=100,reconnectBaseDelay:u=2500,acceptMessage:d,getMessageKey:h=a,onSyncError:p,onSocketEvent:f}){let[m,y]=(0,t.useState)([]),[g,b]=(0,t.useState)(!1),j=(0,t.useRef)(null),v=(0,t.useRef)(i),x=(0,t.useRef)(null),k=(0,t.useRef)(0),w=(0,t.useRef)(d),C=(0,t.useRef)(h),S=(0,t.useRef)(f),N=(0,t.useRef)(p),M=(0,t.useRef)(o);(0,t.useEffect)(()=>{w.current=d},[d]),(0,t.useEffect)(()=>{C.current=h},[h]),(0,t.useEffect)(()=>{S.current=f},[f]),(0,t.useEffect)(()=>{N.current=p},[p]);let A=(0,t.useCallback)(e=>{let t=w.current;return t?e.filter(t):e},[]),I=(0,t.useCallback)((e,t,r=!0)=>{let n=[...e];for(let e of A(t)){let t=C.current(e);if(r){let r=n.findIndex(t=>t.pending&&t.author?.toLowerCase()===e.author?.toLowerCase()&&t.content===e.content);if(-1!==r){n[r]={...e,id:e.id||t};continue}}n.some(e=>C.current(e)===t)||n.push({...e,id:e.id||t})}return n},[A]),$=(0,t.useCallback)((e,t)=>{j.current?.readyState===WebSocket.OPEN&&j.current.send(JSON.stringify({event:e,data:t}))},[]),E=(0,t.useCallback)(e=>{e&&$("channel:subscribe",{channel:e})},[$]),z=(0,t.useCallback)(e=>{e&&$("channel:unsubscribe",{channel:e})},[$]),R=(0,t.useCallback)(async(t=v.current,n={})=>{if(!t||!e)return[];try{let e=A(await r.channelApi.getChannelMessages(t,c));return y(t=>n.replace?e:I(t,e,!1)),e}catch(e){return n.replace&&y([]),await N.current?.(e),[]}},[A,e,c,I]);(0,t.useEffect)(()=>{M.current=o,o&&($("register",{peerId:o}),l&&v.current&&(E(v.current),R(v.current,{replace:!0})))},[o,E,R,l,$]);let P=(0,t.useCallback)(()=>{y([])},[]),L=(0,t.useCallback)(async({channelName:e=v.current,content:t,author:n,authorName:a,avatar:s,attachment:i,optimisticId:o})=>{let l=t.trim();if(!e||!l)return null;let c={id:o||`${n}-${Date.now()}-${Math.random().toString(36).slice(2)}`,author:n,authorName:a,content:l,timestamp:Date.now(),pending:!0,attachment:i};y(e=>[...e,c]);try{let t=await r.channelApi.sendChannelMessage({channelName:e,content:l,author:n,authorName:a,avatar:s,attachment:i});return y(e=>e.map(e=>e.id===c.id?{...t.message,id:t.message.id||C.current(t.message)}:e)),t.message}catch(e){throw y(e=>e.filter(e=>e.id!==c.id)),e}},[]);return(0,t.useEffect)(()=>{let t=v.current;if(v.current=i,t&&t!==i&&z(t),i&&e&&s)return R(i,{replace:!0}),(!l||M.current)&&E(i),()=>z(i)},[i,s,e,E,R,z,l]),(0,t.useEffect)(()=>{if(!e||!s)return void b(!1);let t=!1;async function r(){let e=new WebSocket(await (0,n.getAuthenticatedWebSocketUrl)("/ws"));t?e.close():(e.onopen=()=>{b(!0),k.current=0,M.current&&e.send(JSON.stringify({event:"register",data:{peerId:M.current}})),v.current&&(!l||M.current)&&(E(v.current),R(v.current,{replace:!0}))},e.onmessage=e=>{try{let t=JSON.parse(e.data);S.current?.(t.event,t.data),"channel:message"===t.event&&t.data?.channel===v.current&&t.data?.message&&y(e=>I(e,[t.data.message]))}catch{}},e.onclose=()=>{if(b(!1),t)return;let e=k.current;if(e>=20)return;let n=Math.min(u*Math.pow(2,e),3e4);k.current=e+1,x.current=setTimeout(r,n)},e.onerror=()=>e.close(),j.current=e)}return k.current=0,r(),()=>{t=!0,x.current&&clearTimeout(x.current),j.current?.close(),j.current=null}},[s,e,I,u,E,R,l]),{clearMessages:P,connected:g,messages:m,sendMessage:L,setMessages:y,syncMessages:R}}])},21357,e=>{"use strict";let t=(0,e.i(56420).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",0,t],21357)},53881,53751,99591,34471,e=>{"use strict";var t=e.i(18050),r=e.i(22016),n=e.i(11241),a=e.i(56420);let s=(0,a.default)("spade",[["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"M2 14.499a5.5 5.5 0 0 0 9.591 3.675.6.6 0 0 1 .818.001A5.5 5.5 0 0 0 22 14.5c0-2.29-1.5-4-3-5.5l-5.492-5.312a2 2 0 0 0-3-.02L5 8.999c-1.5 1.5-3 3.2-3 5.5",key:"1aw2pz"}]]);e.s(["Spade",0,s],53751);let i=(0,a.default)("swords",[["polyline",{points:"14.5 17.5 3 6 3 3 6 3 17.5 14.5",key:"1hfsw2"}],["line",{x1:"13",x2:"19",y1:"19",y2:"13",key:"1vrmhu"}],["line",{x1:"16",x2:"20",y1:"16",y2:"20",key:"1bron3"}],["line",{x1:"19",x2:"21",y1:"21",y2:"19",key:"13pww6"}],["polyline",{points:"14.5 6.5 18 3 21 3 21 6 17.5 9.5",key:"hbey2j"}],["line",{x1:"5",x2:"9",y1:"14",y2:"18",key:"1hf58s"}],["line",{x1:"7",x2:"4",y1:"17",y2:"20",key:"pidxm4"}],["line",{x1:"3",x2:"5",y1:"19",y2:"21",key:"1pehsh"}]]);var o=e.i(27648);let l=[{id:"gandengyan",label:"干瞪眼",href:"/game/gandengyan/",icon:(0,t.jsx)(i,{size:16})},{id:"zhajinhua",label:"炸金花",href:"/game/zhajinhua/",icon:(0,t.jsx)(s,{size:16})}];e.s(["default",0,function({activeGame:e,closeSidebar:a}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(r.default,{href:"/",className:"sidebar-header sidebar-header-link",children:[(0,t.jsx)(n.ArrowLeft,{size:18}),(0,t.jsx)("h1",{children:"MOST PEOPLE"})]}),(0,t.jsx)("nav",{className:"sidebar-nav",children:l.map(n=>(0,t.jsxs)(r.default,{href:n.href,className:`sidebar-nav-btn ${e===n.id?"active":""}`,onClick:a,children:[n.icon,(0,t.jsx)("span",{children:n.label})]},n.id))}),(0,t.jsx)(o.default,{})]})}],53881);var c=e.i(71645);let u="game",d="mostbox.game.event",h=["gandengyan","zhajinhua"],p="ABCDEFGHJKLMNPQRSTUVWXYZ23456789";function f(e){let t=String(e||"").trim().toLowerCase();return h.includes(t)?t:""}function m(e){return String(e||"").trim().toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,8)}function y(e){return/^[A-Z0-9]{4,8}$/.test(String(e||""))}function g(){let e="";for(let t=0;t<6;t++)e+=p[function(e){if(globalThis.crypto?.getRandomValues){let t=new Uint32Array(1);return globalThis.crypto.getRandomValues(t),t[0]%e}return Math.floor(Math.random()*e)}(p.length)];return e}function b(e,t){let r=f(e),n=m(t);return r&&y(n)?`game-${r}-${n.toLowerCase()}`:""}function j({gameId:e,roomCode:t,event:r,payload:n}){var a;let s=f(e);return{kind:d,version:1,gameId:s,roomCode:m(t),event:String(r||""),eventId:(a=s||"game",`${a}_${Date.now()}_${function(){let e=new Uint8Array(4);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(e);else for(let t=0;t<e.length;t++)e[t]=Math.floor(256*Math.random());return[...e].map(e=>e.toString(16).padStart(2,"0")).join("")}()}`),payload:n||{}}}function v(e,t={}){try{let r=JSON.parse(String(e||""));if(!r||r.kind!==d||1!==r.version||"string"!=typeof r.event||"string"!=typeof r.eventId)return null;let n=f(r.gameId),a=m(r.roomCode);if(!n||!y(a)||t.gameId&&n!==f(t.gameId)||t.roomCode&&a!==m(t.roomCode))return null;return{...r,gameId:n,roomCode:a,payload:r.payload&&"object"==typeof r.payload?r.payload:{}}}catch{return null}}function x(e,t){var r;if(!e||"object"!=typeof e)return null;let n=k(e.address||t);if(!n||k(t)!==n)return null;let a=String(e.name||"").trim().slice(0,50)||((r=n)?`${r.slice(0,6)}...${r.slice(-4)}`:"");return{address:n,name:a,publicKey:String(e.publicKey||"").trim(),joinedAt:Number(e.joinedAt||Date.now())}}function k(e){let t=String(e||"").trim();return/^0x[a-fA-F0-9]{40}$/.test(t)?t.toLowerCase():""}function w(e,t,r){let n=t.get(r.address);n?Object.assign(n,r):(e.push(r),t.set(r.address,r))}function C(e){return[...e].sort((e,t)=>Number(e.timestamp||0)-Number(t.timestamp||0))}e.s(["GAME_CHANNEL_TYPE",0,u,"createGameEvent",0,j,"createGameRoomCode",0,g,"deriveGameRoomLobby",0,function(e=[],t={}){let r=[],n=new Map,a="";for(let s of C(e)){let e=v(s.content,t);if(e){if("room:create"===e.event){let t=x(e.payload?.player,s.author);if(!t)continue;a||(a=t.address),w(r,n,t);continue}if("player:join"===e.event){let t=x(e.payload?.player,s.author);t&&w(r,n,t)}}}return{gameId:f(t.gameId),roomCode:m(t.roomCode),hostAddress:a,players:r}},"gameRoomCodeToChannelName",0,b,"getLatestGameState",0,function(e=[],t={}){let r=null;for(let n of C(e)){let e=v(n.content,t);if(!e||"room:state"!==e.event)continue;let a=Number(e.payload?.seq||0);(!r||a>=Number(r.payload?.seq||0))&&(r=e)}return r},"normalizeGameRoomCode",0,m,"parseGameEvent",0,v],99591);var S=e.i(87884),N=e.i(23952),M=e.i(26913),A=e.i(3593),I=e.i(71192);async function $(e,t,r,n,a,s){let i=j({gameId:r,roomCode:n,event:a,payload:s});await S.channelApi.sendChannelMessage({channelName:e,content:JSON.stringify(i),author:t.address,authorName:E(t)})}function E(e){return e.displayName||e.username}e.s(["useGameRoom",0,function({gameId:e,onError:t,getPlayerPayload:r}){let n=(0,A.useAppStore)(e=>e.hasBackend),a=(0,A.useAppStore)(e=>e.checkBackend),s=(0,A.useAppStore)(e=>e.openConnectModal),i=(0,I.useUserStore)(e=>e.identity),o=(0,I.useUserStore)(e=>e.openLoginModal),[l,d]=(0,c.useState)(""),[h,p]=(0,c.useState)(""),[f,y]=(0,c.useState)(!1),x=!0===n,k=(0,c.useCallback)(async(e,r)=>{let n=await (0,M.getApiErrorMessage)(e,r);t&&t(n)},[t]),w=(0,c.useCallback)(t=>!!v(t.content,{gameId:e,roomCode:l}),[e,l]),C=(0,c.useCallback)(t=>{let r=v(t.content,{gameId:e,roomCode:l});return r?`${t.author}-${r.eventId}`:`${t.author}-${t.timestamp}-${t.content}`},[e,l]),{clearMessages:z,connected:R,messages:P,sendMessage:L,syncMessages:U}=(0,N.useChannelMessages)({isReady:x,enabled:!!i,channelName:h,limit:500,acceptMessage:w,getMessageKey:C,onSyncError:e=>k(e,"无法读取房间记录")}),_=(0,c.useMemo)(()=>P.map(t=>({message:t,event:v(t.content,{gameId:e,roomCode:l})})).filter(e=>e.event),[e,P,l]),O=(0,c.useCallback)(()=>i?!!x||(s(),!1):(o(),!1),[x,s,o,i]);(0,c.useEffect)(()=>{null===n&&a()},[a,n]);let T=(0,c.useCallback)(async(n,a=!1)=>{if(!O()||!i)return!1;let s=a?g():m(n),o=b(e,s);if(!o)return t&&t("请输入 4-8 位房间码"),!1;y(!0);try{var l;return await S.channelApi.createChannel(o,u),await $(o,i,e,s,a?"room:create":"player:join",{player:r?r(i):{address:(l=i).address,name:E(l),publicKey:"",joinedAt:Date.now()}}),d(s),p(o),z(),!0}catch(e){return await k(e,a?"创建房间失败":"进入房间失败"),!1}finally{y(!1)}},[O,e,r,t,k,z,i]),D=(0,c.useCallback)(()=>T("",!0),[T]),K=(0,c.useCallback)(e=>T(e),[T]),B=(0,c.useCallback)(async(t,r={})=>{if(!O()||!i||!h||!l)return!1;let n=j({gameId:e,roomCode:l,event:t,payload:r}),a=JSON.stringify(n);try{return await L({channelName:h,content:a,author:i.address,authorName:E(i),optimisticId:`${i.address}-${n.eventId}`}),!0}catch(e){return await k(e,"发送房间事件失败"),!1}},[h,O,e,k,l,L,i]);return{channelName:h,connected:R,createRoom:D,ensureReady:O,isBackendReady:x,joinRoom:K,joining:f,messages:P,roomCode:l,roomEvents:_,sendRoomEvent:B,setRoomCode:d,syncMessages:U,userIdentity:i}}],34471)},39307,e=>{"use strict";var t=e.i(18050),r=e.i(71645),n=e.i(8734),a=e.i(72382),s=e.i(96699),i=e.i(21357);let o=(0,e.i(56420).default)("refresh-ccw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]);var l=e.i(53751),c=e.i(35965),u=e.i(59665),d=e.i(53881),h=e.i(34471),p=e.i(3593),f=e.i(71192);let m=[10,20,50,100],y=["2","3","4","5","6","7","8","9","10","J","Q","K","A"],g=["D","C","H","S"],b=new Map(y.map((e,t)=>[e,t+2])),j=new Map(g.map((e,t)=>[e,t+1])),v={1:"散牌",2:"对子",3:"顺子",4:"金花",5:"顺金",6:"豹子"};function x(e){return String(e||"").trim().toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,8)}function k(e="zhajinhua"){return`${e}_${Date.now()}_${function(){let e=new Uint8Array(4);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(e);else for(let t=0;t<e.length;t++)e[t]=Math.floor(256*Math.random());return[...e].map(e=>e.toString(16).padStart(2,"0")).join("")}()}`}function w(){let e=[];for(let t of g)for(let r of y)e.push(`${r}${t}`);return e}function C(e){let t=String(e||"").trim().toUpperCase(),r=t.slice(-1),n=t.slice(0,-1);if(!b.has(n)||!j.has(r))throw Error(`Invalid card: ${e}`);return{id:`${n}${r}`,rank:n,suit:r,rankValue:b.get(n),suitValue:j.get(r)}}function S(e){let t;if(!Array.isArray(e)||3!==e.length)throw Error("炸金花手牌必须是 3 张牌");let r=e.map(C),n=r.map(e=>e.rankValue),a=new Map;for(let e of n)a.set(e,(a.get(e)||0)+1);let s=1===new Set(r.map(e=>e.suit)).size,i=3!==(t=[...new Set(n)].sort((e,t)=>e-t)).length?0:2===t[0]&&3===t[1]&&14===t[2]?3:t[0]+1===t[1]&&t[1]+1===t[2]?t[2]:0,o=[...n].sort((e,t)=>t-e),l=Math.max(...r.map(e=>e.suitValue)),c=1,u=o;return 1===a.size?(c=6,u=[o[0]]):i&&s?(c=5,u=[i]):s?(c=4,u=o):i?(c=3,u=[i]):2===a.size&&(c=2,u=[[...a.entries()].find(([,e])=>2===e)[0],[...a.entries()].find(([,e])=>1===e)[0]]),{category:c,label:v[c],tiebreakers:u,tieSuit:l,cards:r.map(e=>e.id)}}function N(e){return e&&"object"==typeof e&&e.roundId&&Array.isArray(e.players)?{roomCode:x(e.roomCode),roundId:String(e.roundId),status:"finished"===e.status?"finished":"playing",host:R(e.host),seq:Number(e.seq)||1,startedAt:Number(e.startedAt)||Date.now(),ante:Number(e.ante)||10,pot:Math.max(0,Number(e.pot)||0),currentBet:Math.max(0,Number(e.currentBet)||10),turnAddress:R(e.turnAddress),players:e.players.map(z).filter(Boolean),lastAction:String(e.lastAction||""),winner:e.winner?R(e.winner):null,showdown:e.showdown&&"object"==typeof e.showdown?P(e.showdown):null,appliedEventIds:Array.isArray(e.appliedEventIds)?e.appliedEventIds.map(String):[]}:null}function M(e,t,r){let n=N(e);if(!n||"playing"!==n.status)return{ok:!1,error:"当前没有进行中的牌局"};let a=R(r),s=n.players.find(e=>e.address===a);if(!s||"active"!==s.status)return{ok:!1,error:"玩家不在本轮牌局中"};if(n.turnAddress!==a)return{ok:!1,error:"还没有轮到你操作"};let i=t?.action;if(!["look","call","raise","compare","fold"].includes(i))return{ok:!1,error:"未知操作"};if("look"===i)return s.looked?{ok:!1,error:"已经看过牌"}:{ok:!0};if("call"===i){let e=Math.max(0,n.currentBet-s.bet);return s.chips>=e?{ok:!0}:{ok:!1,error:"筹码不足,不能跟注"}}if("raise"===i){let e=Number(t.amount);if(!m.includes(e))return{ok:!1,error:"加注档位无效"};let r=n.currentBet+e-s.bet;return s.chips>=r?{ok:!0}:{ok:!1,error:"筹码不足,不能加注"}}if("compare"===i){let e=R(t.target),r=n.players.find(t=>t.address===e);if(!e||e===a||!r||"active"!==r.status)return{ok:!1,error:"请选择有效的比牌对象"};let i=Math.max(0,n.currentBet-s.bet);return s.chips>=i?{ok:!0}:{ok:!1,error:"筹码不足,不能比牌"}}return{ok:!0}}function A(e){return(e?.players||[]).filter(e=>"active"===e.status)}function I(e,t){let r=Math.max(0,e.currentBet-t.bet);t.chips-=r,t.bet+=r,e.pot+=r}function $(e,t){var r,n;let a,s=A(e);return 1===s.length?(r=e,n=s[0].address,(a=r.players.find(e=>e.address===n))&&(a.chips+=r.pot),r.status="finished",r.winner=n,r.turnAddress="",r.showdown=r.hands?P(r.hands):null,r.lastAction=a?`${a.name} 赢得 ${r.pot} 筹码`:"本局结束",r.pot=0,E(r)):(e.turnAddress=function(e,t){let r=e.players,n=Math.max(0,r.findIndex(e=>e.address===R(t)));for(let e=1;e<=r.length;e++){let t=r[(n+e)%r.length];if("active"===t.status)return t.address}return""}(e,t),E(e))}function E(e){return e.seq=Number(e.seq||0)+1,{ok:!0,state:e}}function z(e){var t;if(!e||"object"!=typeof e)return null;let r=R(e.address);return r?{address:r,name:String(e.name||((t=r)?`${t.slice(0,6)}...${t.slice(-4)}`:"")).slice(0,50),publicKey:String(e.publicKey||""),chips:Math.max(0,Number(e.chips)||0),status:"folded"===e.status?"folded":"active",looked:!0===e.looked,bet:Math.max(0,Number(e.bet)||0)}:null}function R(e){let t=String(e||"").trim();return/^0x[a-fA-F0-9]{40}$/.test(t)?t.toLowerCase():""}function P(e){return JSON.parse(JSON.stringify(e))}var L=e.i(99591),U=e.i(66112),_=e.i(93957);let O="zhajinhua";function T(e,t){return String(e||"").toLowerCase()===String(t||"").toLowerCase()}function D(e=""){return e?`${e.slice(0,6)}...${e.slice(-4)}`:""}e.s(["default",0,function(){var e,y;let g,b=(0,p.useAppStore)(e=>e.isDarkMode),j=(0,p.useAppStore)(e=>e.setIsDarkMode),v=(0,p.useAppStore)(e=>e.addToast),C=(0,f.useUserStore)(e=>e.initializeUser),[z,K]=(0,r.useState)(""),[B,V]=(0,r.useState)(!1),q=(0,r.useRef)(""),G=(0,r.useRef)(!1),[J,F]=(0,r.useState)(20),[H,W]=(0,r.useState)(""),[Z,Q]=(0,r.useState)({}),X=(0,r.useRef)(null),Y=(0,r.useRef)(new Set),ee=(0,h.useGameRoom)({gameId:O,onError:e=>v(e,"error"),getPlayerPayload:e=>{let t=(0,U.most25519)(e.danger);return{address:e.address,name:e.displayName||e.username,publicKey:t.public_key,joinedAt:Date.now()}}}),et=(0,r.useMemo)(()=>ee.userIdentity?.danger?(0,U.most25519)(ee.userIdentity.danger):null,[ee.userIdentity?.danger]);(0,r.useEffect)(()=>{C()},[C]),(0,r.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get("room")?.toUpperCase();e&&(K(e),q.current=e)},[]),(0,r.useEffect)(()=>{let e=q.current;!e||G.current||ee.isBackendReady&&ee.userIdentity&&(G.current=!0,q.current="",ee.joinRoom(e).then(e=>{e&&v("已进入房间","success")}))},[ee.isBackendReady,ee.userIdentity,ee.joinRoom,v]),(0,r.useEffect)(()=>{if(!ee.roomCode)return;let e=`/game/zhajinhua?room=${ee.roomCode}`;`${window.location.pathname}${window.location.search}`!==e&&window.history.replaceState(null,"",e)},[ee.roomCode]);let er=(0,r.useMemo)(()=>(0,L.deriveGameRoomLobby)(ee.messages,{gameId:O,roomCode:ee.roomCode}),[ee.messages,ee.roomCode]),en=(0,r.useMemo)(()=>(0,L.getLatestGameState)(ee.messages,{gameId:O,roomCode:ee.roomCode}),[ee.messages,ee.roomCode]),ea=en?.payload?.round||null,es=ea?.host||er.hostAddress,ei=T(es,ee.userIdentity?.address),eo=ee.userIdentity?.address?.toLowerCase()||"",el=ea?.players.find(e=>T(e.address,eo)),ec=el||er.players.find(e=>T(e.address,eo)),eu=Z[ea?.roundId||""]||null,ed=(ea?.showdown&&eo?ea.showdown[eo]:null)||(el?.looked?eu:null),eh=function(e,t){let r=(e?.players||[]).find(e=>e.address===R(t));if(!e||"playing"!==e.status||!r||"active"!==r.status||e.turnAddress!==r.address)return[];let n=[];return r.looked||n.push("look"),M(e,{action:"call"},r.address).ok&&n.push("call"),m.some(t=>M(e,{action:"raise",amount:t},r.address).ok)&&n.push("raise"),A(e).length>1&&n.push("compare"),n.push("fold"),n}(ea,eo),ep=A(ea),ef=ei&&function(e=[]){let t=e.filter(e=>Number(e.chips)>=10);return t.length>=2&&t.length<=5}(er.players.map(e=>({...e,chips:ea?.players.find(t=>T(t.address,e.address))?.chips??1e3}))),em=ee.roomCode&&1?`${window.location.origin}/game/zhajinhua?room=${ee.roomCode}`:"";async function ey(){await ee.createRoom()&&v("房间已创建","success")}async function eg(e){e.preventDefault(),await ee.joinRoom(z)&&v("已进入房间","success")}async function eb(){em&&(await navigator.clipboard.writeText(em),V(!0),setTimeout(()=>V(!1),1400))}async function ej(e){return ee.sendRoomEvent("room:state",{round:function(e){if(!e)return null;let t={...e};return delete t.hands,P(t)}(e),seq:e.seq})}async function ev(){if(!ee.userIdentity||!et||!ef)return void v("至少需要 2 名有足够筹码的玩家","error");try{let e=er.players.map(e=>({...e,chips:ea?.players.find(t=>T(t.address,e.address))?.chips??1e3})),t=function({roomCode:e,players:t,hostAddress:r,roundId:n=k("round"),random:a=Math.random}){let s=t.filter(e=>Number(e.chips)>=10).slice(0,5);if(s.length<2)throw Error("至少需要 2 名有足够筹码的玩家");let i=function(e=w(),t=Math.random){let r=[...e];for(let e=r.length-1;e>0;e--){let n=Math.floor(t()*(e+1));[r[e],r[n]]=[r[n],r[e]]}return r}(w(),a),o={},l=s.map((e,t)=>{let r=i.slice(3*t,3*t+3);return o[e.address]=r,{address:e.address,name:e.name,publicKey:e.publicKey,chips:Number(e.chips)-10,status:"active",looked:!1,bet:10}}),c=Math.max(0,l.findIndex(e=>e.address===R(r))),u=l[(c+1)%l.length].address;return{roomCode:x(e),roundId:n,status:"playing",host:R(r),seq:1,startedAt:Date.now(),ante:10,pot:10*l.length,currentBet:10,turnAddress:u,players:l,lastAction:"本局开始",winner:null,showdown:null,appliedEventIds:[],hands:o}}({roomCode:ee.roomCode,players:e,hostAddress:ee.userIdentity.address});for(let e of(X.current=t.hands,Y.current.clear(),await ej(t),t.players)){let r=(0,U.mostBoxEncrypt)(JSON.stringify(t.hands[e.address]),{senderPrivateKey:et.private_key,recipientPublicKey:e.publicKey});await ee.sendRoomEvent("deal:private",{roundId:t.roundId,recipient:e.address,senderPublicKey:et.public_key,encrypted:r})}Q(e=>({...e,[t.roundId]:t.hands[ee.userIdentity.address.toLowerCase()]})),v("新一局已开始","success")}catch(e){v(e instanceof Error?e.message:"开局失败","error")}}async function ex(e,t={}){if(!ea||!ee.userIdentity)return;let r=function({roundId:e,action:t,amount:r,target:n}){return{roundId:e,eventId:k("action"),action:t,amount:r,target:n}}({roundId:ea.roundId,action:e,amount:t.amount,target:t.target});await ee.sendRoomEvent("player:action",{actionEvent:r})}(0,r.useEffect)(()=>{if(ea&&ee.userIdentity&&et&&es)for(let e of ee.roomEvents){let t=e.event;if(!t||"deal:private"!==t.event)continue;let r=t.payload;if(r.roundId!==ea.roundId||!T(r.recipient,ee.userIdentity.address))continue;let n=(0,U.mostBoxDecrypt)(r.encrypted||"",{senderPublicKey:r.senderPublicKey||"",recipientPrivateKey:et.private_key});if(n)try{let e=JSON.parse(n);Array.isArray(e)&&Q(t=>({...t,[ea.roundId]:e.map(String)}))}catch{}}},[ea?.roundId,ee.roomEvents,ee.userIdentity,es,et?.private_key]),(0,r.useEffect)(()=>{if(!ei||!ea||"playing"!==ea.status)return;let e=X.current;if(!e)return;let t=ee.roomEvents.filter(e=>{let t=e.event;if(!t||"player:action"!==t.event)return!1;let r=t.payload.actionEvent;return!(!r||r.roundId!==ea.roundId||Y.current.has(r.eventId)||ea.appliedEventIds?.includes(r.eventId))});if(0===t.length)return;let r=!1;return async function(){let n,a=(n=N(ea))&&e&&"object"==typeof e?{...n,hands:P(e)}:null;if(a)for(let e of t){if(r)return;let t=(e.event?.payload).actionEvent,n=function(e,t,r){let n=M(e,t,r);if(!n.ok)return{ok:!1,error:n.error,state:e};let a=P(e),s=R(r),i=a.players.find(e=>e.address===s),o=String(t.eventId);if(a.appliedEventIds?.includes(o))return{ok:!0,state:a,duplicate:!0};if(Array.isArray(a.appliedEventIds)||(a.appliedEventIds=[]),a.appliedEventIds.push(o),"look"===t.action)return i.looked=!0,a.lastAction=`${i.name} 看牌`,E(a);if("fold"===t.action)return i.status="folded",a.lastAction=`${i.name} 弃牌`,$(a,s);if("call"===t.action)return I(a,i),a.lastAction=`${i.name} 跟注`,$(a,s);if("raise"===t.action){let e=Number(t.amount);return a.currentBet+=e,I(a,i),a.lastAction=`${i.name} 加注 ${e}`,$(a,s)}if("compare"===t.action){I(a,i);let e=R(t.target),r=a.players.find(t=>t.address===e),n=function(e,t){let r=S(e),n=S(t);if(r.category!==n.category)return r.category-n.category;let a=function(e,t){let r=Math.max(e.length,t.length);for(let n=0;n<r;n++){let r=e[n]||0,a=t[n]||0;if(r!==a)return r-a}return 0}(r.tiebreakers,n.tiebreakers);return 0!==a?a:r.tieSuit-n.tieSuit}(a.hands?.[s]||[],a.hands?.[e]||[])>=0?r:i;return n.status="folded",a.lastAction=`${i.name} 与 ${r.name} 比牌,${n.name} 出局`,$(a,s)}return{ok:!1,error:"未知操作",state:e}}(a,t,e.message.author);if(n.ok&&(a=n.state,X.current=n.state.hands,await ej(n.state)&&Y.current.add(t.eventId),"finished"===n.state.status))break}}(),()=>{r=!0}},[ea?.roundId,ea?.seq,ea?.status,ee.roomEvents,ei]);let ek=ea?.status==="playing"?T(ea.turnAddress,eo)?"轮到你操作":ea.turnAddress?`等待 ${e=ea.turnAddress,y=er.players,g=e.toLowerCase(),y.find(e=>e.address===g)?.name||D(e)}`:"进行中":ea?.status==="finished"?"本局结束":"等待开局",ew=ep.filter(e=>!T(e.address,eo));return(0,t.jsx)(u.default,{sidebar:({closeSidebar:e})=>(0,t.jsx)(d.default,{activeGame:"zhajinhua",closeSidebar:e}),headerTitle:(0,t.jsxs)("div",{className:"zjh-header-title",children:[(0,t.jsx)("h2",{className:"header-title",children:"游戏 · 炸金花"}),ee.roomCode&&(0,t.jsxs)("span",{className:"header-badge",children:["房间 ",ee.roomCode]})]}),headerRight:(0,t.jsxs)("div",{className:"header-right-actions",children:[ee.roomCode&&(0,t.jsxs)("button",{className:"btn btn-secondary",onClick:eb,children:[(0,t.jsx)(n.Copy,{size:16}),B?"已复制":"分享房间"]}),(0,t.jsx)("button",{className:"btn btn-icon",onClick:()=>j(!b),title:"切换主题",children:b?(0,t.jsx)(c.Sun,{size:16}):(0,t.jsx)(s.Moon,{size:16})})]}),children:(0,t.jsx)("main",{className:"zjh-page",children:ee.roomCode?(0,t.jsxs)("div",{className:"zjh-board",children:[(0,t.jsxs)("section",{className:"zjh-table",children:[(0,t.jsxs)("div",{className:"zjh-table-center",children:[(0,t.jsx)("span",{children:"底池"}),(0,t.jsx)("strong",{children:ea?.pot||0}),(0,t.jsxs)("small",{children:["当前注 ",ea?.currentBet||0]})]}),(0,t.jsx)("div",{className:"zjh-seats",children:er.players.map(e=>{let r=ea?.players.find(t=>T(t.address,e.address)),n=ea?.turnAddress===e.address,a=ea?.winner===e.address;return(0,t.jsxs)("div",{className:`zjh-seat ${n?"turn":""} ${a?"winner":""}`,children:[(0,t.jsx)("img",{className:"zjh-seat-avatar",src:(0,_.generateAvatar)(e.address),alt:"avatar"}),(0,t.jsxs)("div",{className:"zjh-seat-main",children:[(0,t.jsx)("strong",{children:e.name}),(0,t.jsx)("span",{children:D(e.address)})]}),(0,t.jsxs)("div",{className:"zjh-seat-meta",children:[(0,t.jsxs)("span",{children:[r?.chips??1e3," 筹码"]}),(0,t.jsx)("span",{children:r?.status==="folded"?"已弃牌":r?.looked?"已看牌":ea?"在局中":"等待开局"})]})]},e.address)})})]}),(0,t.jsxs)("aside",{className:"zjh-panel",children:[(0,t.jsxs)("div",{className:"zjh-panel-section",children:[(0,t.jsxs)("div",{className:"zjh-panel-title",children:[(0,t.jsx)(l.Spade,{size:16}),(0,t.jsx)("span",{children:"我的手牌"})]}),(0,t.jsx)("div",{className:"zjh-hand",children:ed?ed.map(e=>{let r,n,a=(n=(r=String(e||"")).slice(-1),{rank:r.slice(0,-1),suit:({S:"S",H:"H",C:"C",D:"D"})[n]||n,color:"H"===n||"D"===n?"red":"black"});return(0,t.jsxs)("div",{className:`zjh-card ${a.color}`,children:[(0,t.jsx)("span",{children:a.rank}),(0,t.jsx)("strong",{children:a.suit})]},e)}):[0,1,2].map(e=>(0,t.jsx)("div",{className:"zjh-card back",children:(0,t.jsx)(l.Spade,{size:18})},e))}),(0,t.jsx)("p",{className:"zjh-hand-label",children:ed?S(ed).label:eu?"未看牌":"等待房主发牌"})]}),(0,t.jsxs)("div",{className:"zjh-panel-section",children:[(0,t.jsxs)("div",{className:"zjh-panel-title",children:[(0,t.jsx)(i.Play,{size:16}),(0,t.jsx)("span",{children:"操作"})]}),ei?(0,t.jsxs)("button",{className:"btn btn-primary btn-full",onClick:ev,disabled:!ef||ea?.status==="playing",children:[(0,t.jsx)(o,{size:16}),"开始本局"]}):(0,t.jsx)("p",{className:"zjh-muted",children:"等待房主开始或继续牌局。"}),(0,t.jsxs)("div",{className:"zjh-actions",children:[(0,t.jsxs)("button",{className:"btn btn-secondary",disabled:!eh.includes("look"),onClick:()=>ex("look"),children:[(0,t.jsx)(a.Eye,{size:16}),"看牌"]}),(0,t.jsx)("button",{className:"btn btn-secondary",disabled:!eh.includes("call"),onClick:()=>ex("call"),children:"跟注"}),(0,t.jsx)("button",{className:"btn btn-secondary",disabled:!eh.includes("fold"),onClick:()=>ex("fold"),children:"弃牌"})]}),(0,t.jsxs)("div",{className:"zjh-raise-row",children:[(0,t.jsx)("select",{className:"input input-compact",value:J,onChange:e=>F(Number(e.target.value)),children:m.map(e=>(0,t.jsxs)("option",{value:e,children:["加 ",e]},e))}),(0,t.jsx)("button",{className:"btn btn-secondary",disabled:!eh.includes("raise"),onClick:()=>ex("raise",{amount:J}),children:"加注"})]}),(0,t.jsxs)("div",{className:"zjh-raise-row",children:[(0,t.jsxs)("select",{className:"input input-compact",value:H,onChange:e=>W(e.target.value),children:[(0,t.jsx)("option",{value:"",children:"选择比牌对象"}),ew.map(e=>(0,t.jsx)("option",{value:e.address,children:e.name},e.address))]}),(0,t.jsx)("button",{className:"btn btn-secondary",disabled:!eh.includes("compare")||!H,onClick:()=>ex("compare",{target:H}),children:"比牌"})]})]}),(0,t.jsxs)("div",{className:"zjh-panel-section",children:[(0,t.jsx)("div",{className:"zjh-panel-title",children:"状态"}),(0,t.jsxs)("div",{className:"zjh-status-grid",children:[(0,t.jsx)("span",{children:"房主"}),(0,t.jsx)("strong",{children:es?D(es):"-"}),(0,t.jsx)("span",{children:"我的筹码"}),(0,t.jsx)("strong",{children:ec?.chips??1e3}),(0,t.jsx)("span",{children:"本轮"}),(0,t.jsx)("strong",{children:ek}),(0,t.jsx)("span",{children:"提示"}),(0,t.jsx)("strong",{children:ea?.lastAction||"等待玩家加入"})]})]})]})]}):(0,t.jsxs)("section",{className:"zjh-welcome",children:[(0,t.jsx)("div",{className:"zjh-welcome-icon",children:(0,t.jsx)(l.Spade,{size:36})}),(0,t.jsx)("h2",{children:"P2P 炸金花"}),(0,t.jsx)("p",{children:"创建房间邀请朋友,房主在线开始牌局并推进状态。"}),(0,t.jsxs)("div",{className:"zjh-welcome-actions",children:[(0,t.jsxs)("button",{className:"btn btn-primary",disabled:ee.joining,onClick:ey,children:[(0,t.jsx)(i.Play,{size:16}),"创建房间"]}),(0,t.jsxs)("form",{className:"zjh-room-input-row",onSubmit:eg,children:[(0,t.jsx)("input",{className:"input input-compact",value:z,onChange:e=>K(e.target.value.toUpperCase()),placeholder:"输入房间码",maxLength:8}),(0,t.jsx)("button",{className:"btn btn-icon",disabled:ee.joining||!z,children:(0,t.jsx)(i.Play,{size:16})})]})]})]})})})}],39307)}]);
@@ -0,0 +1,5 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,17173,e=>{"use strict";let t,s;var a,r,l,n,i,o=e.i(18050),c=e.i(71645),d=Object.defineProperty,h=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable,x=(e,t,s)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,p=(e,t)=>{for(var s in t||(t={}))u.call(t,s)&&x(e,s,t[s]);if(h)for(var s of h(t))m.call(t,s)&&x(e,s,t[s]);return e},f=(e,t)=>{var s={};for(var a in e)u.call(e,a)&&0>t.indexOf(a)&&(s[a]=e[a]);if(null!=e&&h)for(var a of h(e))0>t.indexOf(a)&&m.call(e,a)&&(s[a]=e[a]);return s};(e=>{let t=class t{constructor(e,s,a,l){if(this.version=e,this.errorCorrectionLevel=s,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError("Version value out of range");if(l<-1||l>7)throw RangeError("Mask value out of range");this.size=4*e+17;let n=[];for(let e=0;e<this.size;e++)n.push(!1);for(let e=0;e<this.size;e++)this.modules.push(n.slice()),this.isFunction.push(n.slice());this.drawFunctionPatterns();const i=this.addEccAndInterleave(a);if(this.drawCodewords(i),-1==l){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);const s=this.getPenaltyScore();s<e&&(l=t,e=s),this.applyMask(t)}}r(0<=l&&l<=7),this.mask=l,this.applyMask(l),this.drawFormatBits(l),this.isFunction=[]}static encodeText(s,a){let r=e.QrSegment.makeSegments(s);return t.encodeSegments(r,a)}static encodeBinary(s,a){let r=e.QrSegment.makeBytes(s);return t.encodeSegments([r],a)}static encodeSegments(e,a,l=1,i=40,o=-1,c=!0){let d,h;if(!(t.MIN_VERSION<=l&&l<=i&&i<=t.MAX_VERSION)||o<-1||o>7)throw RangeError("Invalid value");for(d=l;;d++){let s=8*t.getNumDataCodewords(d,a),r=n.getTotalBits(e,d);if(r<=s){h=r;break}if(d>=i)throw RangeError("Data too long")}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])c&&h<=8*t.getNumDataCodewords(d,e)&&(a=e);let u=[];for(let t of e)for(let e of(s(t.mode.modeBits,4,u),s(t.numChars,t.mode.numCharCountBits(d),u),t.getData()))u.push(e);r(u.length==h);let m=8*t.getNumDataCodewords(d,a);r(u.length<=m),s(0,Math.min(4,m-u.length),u),s(0,(8-u.length%8)%8,u),r(u.length%8==0);for(let e=236;u.length<m;e^=253)s(e,8,u);let x=[];for(;8*x.length<u.length;)x.push(0);return u.forEach((e,t)=>x[t>>>3]|=e<<7-(7&t)),new t(d,a,x,o)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let s=0;s<t;s++)for(let a=0;a<t;a++)(0!=s||0!=a)&&(0!=s||a!=t-1)&&(s!=t-1||0!=a)&&this.drawAlignmentPattern(e[s],e[a]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,s=t;for(let e=0;e<10;e++)s=s<<1^(s>>>9)*1335;let l=(t<<10|s)^21522;r(l>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,a(l,e));this.setFunctionModule(8,7,a(l,6)),this.setFunctionModule(8,8,a(l,7)),this.setFunctionModule(7,8,a(l,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,a(l,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,a(l,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,a(l,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;r(t>>>18==0);for(let e=0;e<18;e++){let s=a(t,e),r=this.size-11+e%3,l=Math.floor(e/3);this.setFunctionModule(r,l,s),this.setFunctionModule(l,r,s)}}drawFinderPattern(e,t){for(let s=-4;s<=4;s++)for(let a=-4;a<=4;a++){let r=Math.max(Math.abs(a),Math.abs(s)),l=e+a,n=t+s;0<=l&&l<this.size&&0<=n&&n<this.size&&this.setFunctionModule(l,n,2!=r&&4!=r)}}drawAlignmentPattern(e,t){for(let s=-2;s<=2;s++)for(let a=-2;a<=2;a++)this.setFunctionModule(e+a,t+s,1!=Math.max(Math.abs(a),Math.abs(s)))}setFunctionModule(e,t,s){this.modules[t][e]=s,this.isFunction[t][e]=!0}addEccAndInterleave(e){let s=this.version,a=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(s,a))throw RangeError("Invalid argument");let l=t.NUM_ERROR_CORRECTION_BLOCKS[a.ordinal][s],n=t.ECC_CODEWORDS_PER_BLOCK[a.ordinal][s],i=Math.floor(t.getNumRawDataModules(s)/8),o=l-i%l,c=Math.floor(i/l),d=[],h=t.reedSolomonComputeDivisor(n);for(let s=0,a=0;s<l;s++){let r=e.slice(a,a+c-n+(s<o?0:1));a+=r.length;let l=t.reedSolomonComputeRemainder(r,h);s<o&&r.push(0),d.push(r.concat(l))}let u=[];for(let e=0;e<d[0].length;e++)d.forEach((t,s)=>{(e!=c-n||s>=o)&&u.push(t[e])});return r(u.length==i),u}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError("Invalid argument");let s=0;for(let t=this.size-1;t>=1;t-=2){6==t&&(t=5);for(let r=0;r<this.size;r++)for(let l=0;l<2;l++){let n=t-l,i=(t+1&2)==0?this.size-1-r:r;!this.isFunction[i][n]&&s<8*e.length&&(this.modules[i][n]=a(e[s>>>3],7-(7&s)),s++)}}r(s==8*e.length)}applyMask(e){if(e<0||e>7)throw RangeError("Mask value out of range");for(let t=0;t<this.size;t++)for(let s=0;s<this.size;s++){let a;switch(e){case 0:a=(s+t)%2==0;break;case 1:a=t%2==0;break;case 2:a=s%3==0;break;case 3:a=(s+t)%3==0;break;case 4:a=(Math.floor(s/3)+Math.floor(t/2))%2==0;break;case 5:a=s*t%2+s*t%3==0;break;case 6:a=(s*t%2+s*t%3)%2==0;break;case 7:a=((s+t)%2+s*t%3)%2==0;break;default:throw Error("Unreachable")}!this.isFunction[t][s]&&a&&(this.modules[t][s]=!this.modules[t][s])}}getPenaltyScore(){let e=0;for(let s=0;s<this.size;s++){let a=!1,r=0,l=[0,0,0,0,0,0,0];for(let n=0;n<this.size;n++)this.modules[s][n]==a?5==++r?e+=t.PENALTY_N1:r>5&&e++:(this.finderPenaltyAddHistory(r,l),a||(e+=this.finderPenaltyCountPatterns(l)*t.PENALTY_N3),a=this.modules[s][n],r=1);e+=this.finderPenaltyTerminateAndCount(a,r,l)*t.PENALTY_N3}for(let s=0;s<this.size;s++){let a=!1,r=0,l=[0,0,0,0,0,0,0];for(let n=0;n<this.size;n++)this.modules[n][s]==a?5==++r?e+=t.PENALTY_N1:r>5&&e++:(this.finderPenaltyAddHistory(r,l),a||(e+=this.finderPenaltyCountPatterns(l)*t.PENALTY_N3),a=this.modules[n][s],r=1);e+=this.finderPenaltyTerminateAndCount(a,r,l)*t.PENALTY_N3}for(let s=0;s<this.size-1;s++)for(let a=0;a<this.size-1;a++){let r=this.modules[s][a];r==this.modules[s][a+1]&&r==this.modules[s+1][a]&&r==this.modules[s+1][a+1]&&(e+=t.PENALTY_N2)}let s=0;for(let e of this.modules)s=e.reduce((e,t)=>e+ +!!t,s);let a=this.size*this.size,l=Math.ceil(Math.abs(20*s-10*a)/a)-1;return r(0<=l&&l<=9),r(0<=(e+=l*t.PENALTY_N4)&&e<=2568888),e}getAlignmentPatternPositions(){if(1==this.version)return[];{let e=Math.floor(this.version/7)+2,t=32==this.version?26:2*Math.ceil((4*this.version+4)/(2*e-2)),s=[6];for(let a=this.size-7;s.length<e;a-=t)s.splice(1,0,a);return s}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError("Version number out of range");let s=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;s-=(25*t-10)*t-55,e>=7&&(s-=36)}return r(208<=s&&s<=29648),s}static getNumDataCodewords(e,s){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[s.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[s.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError("Degree out of range");let s=[];for(let t=0;t<e-1;t++)s.push(0);s.push(1);let a=1;for(let r=0;r<e;r++){for(let e=0;e<s.length;e++)s[e]=t.reedSolomonMultiply(s[e],a),e+1<s.length&&(s[e]^=s[e+1]);a=t.reedSolomonMultiply(a,2)}return s}static reedSolomonComputeRemainder(e,s){let a=s.map(e=>0);for(let r of e){let e=r^a.shift();a.push(0),s.forEach((s,r)=>a[r]^=t.reedSolomonMultiply(s,e))}return a}static reedSolomonMultiply(e,t){if(e>>>8!=0||t>>>8!=0)throw RangeError("Byte out of range");let s=0;for(let a=7;a>=0;a--)s=s<<1^(s>>>7)*285^(t>>>a&1)*e;return r(s>>>8==0),s}finderPenaltyCountPatterns(e){let t=e[1];r(t<=3*this.size);let s=t>0&&e[2]==t&&e[3]==3*t&&e[4]==t&&e[5]==t;return(s&&e[0]>=4*t&&e[6]>=t?1:0)+(s&&e[6]>=4*t&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,s){return e&&(this.finderPenaltyAddHistory(t,s),t=0),t+=this.size,this.finderPenaltyAddHistory(t,s),this.finderPenaltyCountPatterns(s)}finderPenaltyAddHistory(e,t){0==t[0]&&(e+=this.size),t.pop(),t.unshift(e)}};function s(e,t,s){if(t<0||t>31||e>>>t!=0)throw RangeError("Value out of range");for(let a=t-1;a>=0;a--)s.push(e>>>a&1)}function a(e,t){return(e>>>t&1)!=0}function r(e){if(!e)throw Error("Assertion error")}t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;let l=class e{constructor(e,t,s){if(this.mode=e,this.numChars=t,this.bitData=s,t<0)throw RangeError("Invalid argument");this.bitData=s.slice()}static makeBytes(t){let a=[];for(let e of t)s(e,8,a);return new e(e.Mode.BYTE,t.length,a)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError("String contains non-numeric characters");let a=[];for(let e=0;e<t.length;){let r=Math.min(t.length-e,3);s(parseInt(t.substring(e,e+r),10),3*r+1,a),e+=r}return new e(e.Mode.NUMERIC,t.length,a)}static makeAlphanumeric(t){let a;if(!e.isAlphanumeric(t))throw RangeError("String contains unencodable characters in alphanumeric mode");let r=[];for(a=0;a+2<=t.length;a+=2){let l=45*e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(a));s(l+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(a+1)),11,r)}return a<t.length&&s(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(a)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return""==t?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let a=[];if(t<0)throw RangeError("ECI assignment value out of range");if(t<128)s(t,8,a);else if(t<16384)s(2,2,a),s(t,14,a);else if(t<1e6)s(6,3,a),s(t,21,a);else throw RangeError("ECI assignment value out of range");return new e(e.Mode.ECI,0,a)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let s=0;for(let a of e){let e=a.mode.numCharCountBits(t);if(a.numChars>=1<<e)return 1/0;s+=4+e+a.bitData.length}return s}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let s=0;s<e.length;s++)"%"!=e.charAt(s)?t.push(e.charCodeAt(s)):(t.push(parseInt(e.substring(s+1,s+3),16)),s+=2);return t}};l.NUMERIC_REGEX=/^[0-9]*$/,l.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,l.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";let n=l;e.QrSegment=l})(i||(i={})),r=(a=i||(i={})).QrCode||(a.QrCode={}),(t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}}).LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),r.Ecc=t,n=(l=i||(i={})).QrSegment||(l.QrSegment={}),(s=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}}).NUMERIC=new s(1,[10,12,14]),s.ALPHANUMERIC=new s(2,[9,11,13]),s.BYTE=new s(4,[8,16,16]),s.KANJI=new s(8,[8,10,12]),s.ECI=new s(7,[0,0,0]),n.Mode=s;var g=i,b={L:g.QrCode.Ecc.LOW,M:g.QrCode.Ecc.MEDIUM,Q:g.QrCode.Ecc.QUARTILE,H:g.QrCode.Ecc.HIGH},y="#FFFFFF",w="#000000";function j(e,t=0){let s=[];return e.forEach(function(e,a){let r=null;e.forEach(function(l,n){if(!l&&null!==r){s.push(`M${r+t} ${a+t}h${n-r}v1H${r+t}z`),r=null;return}if(n===e.length-1){if(!l)return;null===r?s.push(`M${n+t},${a+t} h1v1H${n+t}z`):s.push(`M${r+t},${a+t} h${n+1-r}v1H${r+t}z`);return}l&&null===r&&(r=n)})}),s.join("")}function v(e,t){return e.slice().map((e,s)=>s<t.y||s>=t.y+t.h?e:e.map((e,s)=>(s<t.x||s>=t.x+t.w)&&e))}function N({value:e,level:t,minVersion:s,includeMargin:a,marginSize:r,imageSettings:l,size:n,boostLevel:i}){let o=c.default.useMemo(()=>{let a=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...g.QrSegment.makeSegments(t)),e),[]);return g.QrCode.encodeSegments(a,b[t],s,void 0,void 0,i)},[e,t,s,i]),{cells:d,margin:h,numCells:u,calculatedImageSettings:m}=c.default.useMemo(()=>{let e=o.getModules(),t=null!=r?Math.max(Math.floor(r),0):4*!!a,s=e.length+2*t,i=function(e,t,s,a){if(null==a)return null;let r=e.length+2*s,l=Math.floor(.1*t),n=r/t,i=(a.width||l)*n,o=(a.height||l)*n,c=null==a.x?e.length/2-i/2:a.x*n,d=null==a.y?e.length/2-o/2:a.y*n,h=null==a.opacity?1:a.opacity,u=null;if(a.excavate){let e=Math.floor(c),t=Math.floor(d),s=Math.ceil(i+c-e),a=Math.ceil(o+d-t);u={x:e,y:t,w:s,h:a}}return{x:c,y:d,h:o,w:i,excavation:u,opacity:h,crossOrigin:a.crossOrigin}}(e,n,t,l);return{cells:e,margin:t,numCells:s,calculatedImageSettings:i}},[o,n,l,a,r]);return{qrcode:o,margin:h,cells:d,numCells:u,calculatedImageSettings:m}}var C=function(){try{new Path2D().addPath(new Path2D)}catch(e){return!1}return!0}();c.default.forwardRef(function(e,t){let{value:s,size:a=128,level:r="L",bgColor:l=y,fgColor:n=w,includeMargin:i=!1,minVersion:o=1,boostLevel:d,marginSize:h,imageSettings:u}=e,m=f(e,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","marginSize","imageSettings"]),{style:x}=m,g=f(m,["style"]),b=null==u?void 0:u.src,E=c.default.useRef(null),M=c.default.useRef(null),A=c.default.useCallback(e=>{E.current=e,"function"==typeof t?t(e):t&&(t.current=e)},[t]),[k,S]=c.default.useState(!1),{margin:P,cells:R,numCells:z,calculatedImageSettings:B}=N({value:s,level:r,minVersion:o,boostLevel:d,includeMargin:i,marginSize:h,imageSettings:u,size:a});c.default.useEffect(()=>{if(null!=E.current){let e=E.current,t=e.getContext("2d");if(!t)return;let s=R,r=M.current,i=null!=B&&null!==r&&r.complete&&0!==r.naturalHeight&&0!==r.naturalWidth;i&&null!=B.excavation&&(s=v(R,B.excavation));let o=window.devicePixelRatio||1;e.height=e.width=a*o;let c=a/z*o;t.scale(c,c),t.fillStyle=l,t.fillRect(0,0,z,z),t.fillStyle=n,C?t.fill(new Path2D(j(s,P))):R.forEach(function(e,s){e.forEach(function(e,a){e&&t.fillRect(a+P,s+P,1,1)})}),B&&(t.globalAlpha=B.opacity),i&&t.drawImage(r,B.x+P,B.y+P,B.w,B.h)}}),c.default.useEffect(()=>{S(!1)},[b]);let I=p({height:a,width:a},x),_=null;return null!=b&&(_=c.default.createElement("img",{src:b,key:b,style:{display:"none"},onLoad:()=>{S(!0)},ref:M,crossOrigin:null==B?void 0:B.crossOrigin})),c.default.createElement(c.default.Fragment,null,c.default.createElement("canvas",p({style:I,height:a,width:a,ref:A,role:"img"},g)),_)}).displayName="QRCodeCanvas";var E=c.default.forwardRef(function(e,t){let{value:s,size:a=128,level:r="L",bgColor:l=y,fgColor:n=w,includeMargin:i=!1,minVersion:o=1,boostLevel:d,title:h,marginSize:u,imageSettings:m}=e,x=f(e,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","title","marginSize","imageSettings"]),{margin:g,cells:b,numCells:C,calculatedImageSettings:E}=N({value:s,level:r,minVersion:o,boostLevel:d,includeMargin:i,marginSize:u,imageSettings:m,size:a}),M=b,A=null;null!=m&&null!=E&&(null!=E.excavation&&(M=v(b,E.excavation)),A=c.default.createElement("image",{href:m.src,height:E.h,width:E.w,x:E.x+g,y:E.y+g,preserveAspectRatio:"none",opacity:E.opacity,crossOrigin:E.crossOrigin}));let k=j(M,g);return c.default.createElement("svg",p({height:a,width:a,viewBox:`0 0 ${C} ${C}`,ref:t,role:"img"},x),!!h&&c.default.createElement("title",null,h),c.default.createElement("path",{fill:l,d:`M0,0 h${C}v${C}H0z`,shapeRendering:"crispEdges"}),c.default.createElement("path",{fill:n,d:k,shapeRendering:"crispEdges"}),A)});E.displayName="QRCodeSVG";var M=e.i(8515),A=e.i(72382),k=e.i(80860),S=e.i(82022),P=e.i(58925),R=e.i(56420);let z=(0,R.default)("fingerprint-pattern",[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]]),B=(0,R.default)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]),I=(0,R.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);var _=e.i(35965),O=e.i(96699);let L=(0,R.default)("qr-code",[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]]);var T=e.i(16306),K=e.i(16327);let D=(0,R.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),F=(0,R.default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);var U=e.i(6537),$=e.i(70904),H=e.i(11241),Q=e.i(59665),V=e.i(23165),Y=e.i(24851),W=e.i(64830),G=e.i(16546),X=e.i(3593),q=e.i(71192),J=e.i(66112),Z=e.i(15882),ee=e.i(96510),et=e.i(93957);e.i(77816);let es=(e,t)=>{let s=t.slice(2),a=new Uint8Array((0,Z.getBytes)(e+s));return ee.default.sign.keyPair.fromSecretKey(a)};function ea({title:e,username:t,password:s,showPassword:a,showPrivateKey:r,account:l,onUsernameChange:n,onPasswordChange:i,onTogglePassword:c,onTogglePrivateKey:d,onGenerate:h}){var u;return(0,o.jsxs)("div",{className:"web3-box-account",children:[(0,o.jsx)("div",{className:"web3-box-account-header",children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:e}),(0,o.jsx)("p",{children:"用户名和密码会确定性生成 x25519 密钥对。"})]})}),(0,o.jsxs)("div",{className:"web3-box-login",children:[(0,o.jsx)("input",{type:"text",placeholder:"用户名",value:t,onChange:e=>n(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsxs)("div",{className:"input-wrap",children:[(0,o.jsx)("input",{type:a?"text":"password",placeholder:"密码(可选)",value:s,onChange:e=>i(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("button",{className:"input-eye",onClick:c,type:"button",children:a?(0,o.jsx)(k.EyeOff,{size:16}):(0,o.jsx)(A.Eye,{size:16})})]}),(0,o.jsxs)("button",{className:"btn btn-primary btn-full",onClick:h,disabled:!t.trim(),type:"button",children:[(0,o.jsx)(P.KeyRound,{size:16}),"生成账号"]})]}),l?(0,o.jsxs)("div",{className:"web3-box-key-list",children:[(0,o.jsxs)("div",{className:"web3-box-key-row",children:[(0,o.jsx)("span",{children:"地址"}),(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:l.address.toLowerCase()}),(0,o.jsx)(V.CopyButton,{text:l.address.toLowerCase()})]})]}),(0,o.jsxs)("div",{className:"web3-box-key-row",children:[(0,o.jsx)("span",{children:"x25519 公钥"}),(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:l.publicKey}),(0,o.jsx)(V.CopyButton,{text:l.publicKey})]})]}),(0,o.jsxs)("div",{className:"web3-box-key-row",children:[(0,o.jsx)("span",{children:"x25519 私钥"}),(0,o.jsxs)("div",{className:"mono-row danger",children:[(0,o.jsx)("code",{className:"mono",children:r?l.privateKey:(u=l.privateKey)?"•".repeat(Math.min(u.length,32)):"-"}),(0,o.jsx)("button",{className:"btn btn-icon",onClick:d,title:r?"隐藏私钥":"显示私钥",type:"button",children:r?(0,o.jsx)(A.Eye,{size:14}):(0,o.jsx)(k.EyeOff,{size:14})})]})]})]}):null]})}function er({title:e,description:t,message:s,cipherText:a,decryptedText:r,error:l,encryptLabel:n,decryptLabel:i,messagePlaceholder:c,cipherPlaceholder:d,onMessageChange:h,onCipherTextChange:u,onEncrypt:m,onDecrypt:x}){var p;let f=`box-message-${e.replaceAll(/\s+/g,"-")}`,g=(0,J.parseMostBoxToken)(a);return(0,o.jsxs)("section",{className:"web3-box-flow",children:[(0,o.jsx)("div",{className:"web3-box-flow-header",children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:e}),(0,o.jsx)("p",{children:t})]})}),(0,o.jsx)("label",{className:"web3-box-label",htmlFor:f,children:"明文"}),(0,o.jsx)("textarea",{id:f,className:"textarea",value:s,onChange:e=>h(e.target.value),rows:4,placeholder:c}),(0,o.jsxs)("div",{className:"web3-box-actions",children:[(0,o.jsxs)("button",{className:"btn btn-primary",onClick:m,type:"button",children:[(0,o.jsx)(U.Lock,{size:16}),n]}),(0,o.jsxs)("button",{className:"btn btn-secondary",onClick:x,type:"button",children:[(0,o.jsx)(P.KeyRound,{size:16}),i]})]}),l&&(0,o.jsx)("p",{className:"web3-tools-danger",children:l}),(0,o.jsxs)("div",{className:"web3-box-result-grid",children:[(0,o.jsxs)("div",{className:"web3-box-result",children:[(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"密文"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:a,onChange:e=>u(e.target.value),rows:5,placeholder:d})]}),(0,o.jsxs)("div",{className:"web3-box-result",children:[(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"解密结果"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:r,readOnly:!0,rows:5,placeholder:"解密成功后显示明文"})]})]}),g&&(0,o.jsxs)("div",{className:"web3-box-token-meta",children:[(0,o.jsxs)("div",{className:"web3-box-token-meta-row",children:[(0,o.jsx)("span",{children:"时间戳"}),(0,o.jsx)("code",{children:Number.isFinite(p=g.timestampMs)?`${new Date(p).toLocaleString()}`:"-"})]}),(0,o.jsxs)("div",{className:"web3-box-token-meta-row",children:[(0,o.jsx)("span",{children:"随机数"}),(0,o.jsx)("code",{children:g.nonce})]})]})]})}et.generateAvatar;let el=e=>btoa(String.fromCharCode(...e));e.s(["default",0,function(){let e,t=(0,X.useAppStore)(e=>e.isDarkMode),s=(0,X.useAppStore)(e=>e.setIsDarkMode),a=(0,X.useAppStore)(e=>e.addToast),r=(0,q.useUserStore)(e=>e.setUserIdentity),l=["wallet","pem","export","EA"],[n,i]=(0,c.useState)("wallet");(0,c.useEffect)(()=>{let e=()=>{let e=window.location.hash.replace("#","");return l.includes(e)?e:"wallet"};i(e());let t=()=>i(e());return window.addEventListener("hashchange",t),()=>window.removeEventListener("hashchange",t)},[]);let[d,h]=(0,c.useState)(""),[u,m]=(0,c.useState)(""),[x,p]=(0,c.useState)(!1),[f,g]=(0,c.useState)(null),[b,y]=(0,c.useState)(null),[w,j]=(0,c.useState)(""),[v,N]=(0,c.useState)(""),[C,R]=(0,c.useState)(""),[Z,ee]=(0,c.useState)(""),[en,ei]=(0,c.useState)([]),[eo,ec]=(0,c.useState)(0),[ed,eh]=(0,c.useState)(!0),[eu,em]=(0,c.useState)(!0),[ex,ep]=(0,c.useState)(!1),[ef,eg]=(0,c.useState)(!1),[eb,ey]=(0,c.useState)(!1),[ew,ej]=(0,c.useState)(!1),[ev,eN]=(0,c.useState)(!1),[eC,eE]=(0,c.useState)(!1),[eM,eA]=(0,c.useState)(""),[ek,eS]=(0,c.useState)(""),[eP,eR]=(0,c.useState)(!1),[ez,eB]=(0,c.useState)(!1),[eI,e_]=(0,c.useState)(null),[eO,eL]=(0,c.useState)(""),[eT,eK]=(0,c.useState)(""),[eD,eF]=(0,c.useState)(!1),[eU,e$]=(0,c.useState)(!1),[eH,eQ]=(0,c.useState)(null),[eV,eY]=(0,c.useState)("你好,B。这是来自 A 的加密消息。"),[eW,eG]=(0,c.useState)(""),[eX,eq]=(0,c.useState)(""),[eJ,eZ]=(0,c.useState)(""),[e0,e1]=(0,c.useState)("你好,A。这是来自 B 的加密消息。"),[e2,e3]=(0,c.useState)(""),[e8,e6]=(0,c.useState)(""),[e4,e5]=(0,c.useState)(""),[e7,e9]=(0,c.useState)(""),[te,tt]=(0,c.useState)(""),[ts,ta]=(0,c.useState)(""),[tr,tl]=(0,c.useState)(""),[tn,ti]=(0,c.useState)(""),[to,tc]=(0,c.useState)(!1),[td,th]=(0,c.useState)(""),[tu,tm]=(0,c.useState)(""),[tx,tp]=(0,c.useState)(""),[tf,tg]=(0,c.useState)(""),[tb,ty]=(0,c.useState)(""),[tw,tj]=(0,c.useState)(!1),tv=(0,c.useCallback)(async()=>{var e,t,s;let l,n,i,o,c,h,m,x,p,f,b,w,v,C,E,M,A,k,S;if(!d.trim())return;eE(!0),await new Promise(e=>setTimeout(e,0));let P=(0,J.mostWallet)(d.trim(),u),z=`${P.username}#${P.address.slice(-4).toUpperCase()}`;g(P),r({...P,displayName:z}),a(`已登录 ${P.username}`,"success"),ee((0,J.mostMnemonic)(P.danger));let B=(0,J.most25519)(P.danger);y(B),j((l=new Uint8Array([8,1,18,...(e=>{let t=[];for(;e>=128;)t.push(127&e|128),e>>=7;return t.push(e),t})((e=es(B.private_key,B.ed_public_key).publicKey).length)]),(n=new Uint8Array(l.length+e.length)).set(l,0),n.set(e,l.length),(o=new Uint8Array(2+(i=n).length))[0]=0,o[1]=36,o.set(i,2),c=new Uint8Array([1,114]),(h=new Uint8Array(c.length+o.length)).set(c,0),h.set(o,c.length),"k"+((e,t)=>{if(0===e.length)return"";let s=t.length,a=0;for(;a<e.length&&0===e[a];)a++;let r=[0];for(let t=a;t<e.length;t++){let a=e[t];for(let e=0;e<r.length;e++){let t=256*r[e]+a;r[e]=t%s,a=Math.floor(t/s)}for(;a>0;)r.push(a%s),a=Math.floor(a/s)}let l="";for(let e=0;e<a;e++)l+=t[0];for(let e=r.length-1;e>=0;e--)l+=t[r[e]];return l})(h,"0123456789abcdefghijklmnopqrstuvwxyz")));let I=es(B.private_key,B.ed_public_key);N((t=I.secretKey,m=new Uint8Array([48,5,6,3,43,101,112]),x=new Uint8Array([4,34,4,32,...t.slice(0,32)]),f=(p=new Uint8Array([2,1,0])).length+m.length+x.length,(b=new Uint8Array(2+f))[0]=48,b[1]=f,w=2,b.set(p,w),w+=p.length,b.set(m,w),w+=m.length,b.set(x,w),v=el(b),`-----BEGIN PRIVATE KEY-----
2
+ ${v.match(/.{1,64}/g)?.join("\n")}
3
+ -----END PRIVATE KEY-----`)),R((s=I.publicKey,C=new Uint8Array([48,5,6,3,43,101,112]),E=new Uint8Array([3,33,0,...s]),(A=new Uint8Array(2+(M=C.length+E.length)))[0]=48,A[1]=M,k=2,A.set(C,k),k+=C.length,A.set(E,k),S=el(A),`-----BEGIN PUBLIC KEY-----
4
+ ${S.match(/.{1,64}/g)?.join("\n")}
5
+ -----END PUBLIC KEY-----`)),ei([]),ec(0),eg(!1),ey(!1),ej(!1),eN(!1),eE(!1)},[a,u,r,d]);function tN(e,t,s,r){let l=t.trim();if(!l)return;let n=(0,J.mostWallet)(l,s),i=(0,J.most25519)(n.danger);r({username:n.username,address:n.address,publicKey:i.public_key,privateKey:i.private_key}),eq(""),eZ(""),e6(""),e5(""),a("账号已生成","success")}function tC({senderAccount:e,recipientAccount:t,message:s,setCipherText:a,setDecryptedText:r,setError:l}){e&&t?s.trim()?(a((0,J.mostBoxEncrypt)(s,{senderPrivateKey:e.privateKey,recipientPublicKey:t.publicKey})),r(""),l("")):l("请输入要加密的消息"):l("请先生成 A 和 B 两个账号")}function tE({senderAccount:e,recipientAccount:t,cipherText:s,setDecryptedText:a,setError:r}){if(!e||!t)return void r("请先生成 A 和 B 两个账号");if(!s.trim())return void r("请先生成或粘贴密文");let l=(0,J.mostBoxDecrypt)(s,{senderPublicKey:e.publicKey,recipientPrivateKey:t.privateKey});if(!l){r("解密失败,请确认发送方公钥、接收方私钥和密文匹配"),a("");return}a(l),r("")}let tM=!!f,tA=f?.address||"",tk=(0,et.generateAvatar)(tA||void 0),tS=[{id:"wallet",icon:(0,o.jsx)(F,{size:16}),label:"Web3"},{id:"pem",icon:(0,o.jsx)(U.Lock,{size:16}),label:"PEM 导出"},{id:"export",icon:(0,o.jsx)($.Wallet,{size:16}),label:"Wallet 导出"},{id:"EA",icon:(0,o.jsx)(P.KeyRound,{size:16}),label:"非对称加密"}];return(0,o.jsx)(Q.default,{sidebar:({closeSidebar:e})=>(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"sidebar-header sidebar-header-link",onClick:()=>window.location.href="/",children:[(0,o.jsx)(H.ArrowLeft,{size:18}),(0,o.jsx)("h1",{children:"MOST PEOPLE"})]}),(0,o.jsx)("nav",{className:"sidebar-nav",children:tS.map(t=>(0,o.jsxs)("button",{onClick:()=>{var s;i(s=t.id),window.location.hash=s,e()},className:`sidebar-nav-btn ${n===t.id?"active":""}`,children:[t.icon,(0,o.jsx)("span",{children:t.label})]},t.id))})]}),headerTitle:(0,o.jsx)("h2",{className:"header-title",children:"wallet"===n?"Web3":"pem"===n?"PEM 导出":"EA"===n?"非对称加密":"Wallet 导出"}),headerRight:(0,o.jsx)("button",{className:"btn btn-icon",onClick:()=>s(!t),title:"切换主题",children:t?(0,o.jsx)(_.Sun,{size:16}):(0,o.jsx)(O.Moon,{size:16})}),children:(0,o.jsx)("div",{className:"web3-page",children:(0,o.jsxs)("div",{className:`web3-container ${"EA"===n?"wide":""}`,children:["EA"!==n&&(0,o.jsxs)("div",{className:"input-panel",children:[(0,o.jsxs)("div",{className:"web3-tools-inputs",children:[(0,o.jsx)("input",{type:"text",placeholder:"用户名",value:d,onChange:e=>h(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsxs)("div",{className:"input-wrap",children:[(0,o.jsx)("input",{type:x?"text":"password",placeholder:"密码(可选)",value:u,onChange:e=>m(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("button",{className:"input-eye",onClick:()=>p(!x),type:"button",children:x?(0,o.jsx)(k.EyeOff,{size:16}):(0,o.jsx)(A.Eye,{size:16})})]})]}),(0,o.jsx)("button",{className:"btn btn-primary btn-full",onClick:tv,disabled:!d.trim()||eC,type:"button",children:eC?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:"spinner"}),"生成中..."]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)($.Wallet,{size:16}),"生成并登录"]})})]}),"wallet"===n&&(0,o.jsx)(o.Fragment,{children:tM&&tA?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"web3-identity-card",children:[(0,o.jsx)("img",{src:tk,alt:"avatar",className:"web3-identity-avatar"}),(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"web3-identity-name",children:f?.username||"未登录"}),(0,o.jsxs)("div",{className:"web3-identity-address",children:[(0,o.jsx)("code",{children:tA.toLowerCase()}),(0,o.jsx)(V.CopyButton,{text:tA.toLowerCase()}),(0,o.jsxs)("a",{href:`https://debank.com/profile/${tA}`,target:"_blank",rel:"noopener noreferrer",className:"link",children:[(0,o.jsx)(S.ExternalLink,{size:14}),"查看"]})]})]})]}),b&&(0,o.jsxs)("div",{className:"web3-key-grid",children:[(0,o.jsx)(W.KeyCard,{title:"Ed25519 公钥",icon:(0,o.jsx)(z,{size:18}),children:(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:b.ed_public_key}),(0,o.jsx)(V.CopyButton,{text:b.ed_public_key})]})}),(0,o.jsx)(W.KeyCard,{title:"x25519 公钥",icon:(0,o.jsx)(P.KeyRound,{size:18}),children:(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:b.public_key}),(0,o.jsx)(V.CopyButton,{text:b.public_key})]})}),(0,o.jsx)(W.KeyCard,{title:"x25519 & Ed25519 私钥",icon:(0,o.jsx)(B,{size:18}),accent:!0,children:(0,o.jsxs)("div",{className:"mono-row danger",children:[(0,o.jsx)("code",{className:"mono",children:ev?b.private_key:(e=b.private_key)?"•".repeat(Math.min(e.length,32)):"-"}),(0,o.jsx)("button",{className:"btn btn-icon",onClick:()=>eN(!ev),title:ev?"隐藏私钥":"显示私钥",type:"button",children:ev?(0,o.jsx)(A.Eye,{size:14}):(0,o.jsx)(k.EyeOff,{size:14})})]})}),(0,o.jsx)(W.KeyCard,{title:"IPNS ID",icon:(0,o.jsx)(I,{size:18}),children:(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:w}),(0,o.jsx)(V.CopyButton,{text:w})]})})]})]}):(0,o.jsx)(Y.EmptyState,{icon:(0,o.jsx)(F,{size:36}),message:"请输入用户名和密码以查看身份信息"})}),"pem"===n&&(0,o.jsx)(o.Fragment,{children:C&&v?(0,o.jsxs)("div",{className:"web3-pem-list",children:[(0,o.jsx)(G.PemBlock,{label:`${f?.username||"wallet"}.pub`,pem:C,filename:`${f?.username||"wallet"}.pub`}),(0,o.jsx)(G.PemBlock,{label:`${f?.username||"wallet"}.pem`,pem:v,filename:`${f?.username||"wallet"}.pem`})]}):(0,o.jsx)(Y.EmptyState,{icon:(0,o.jsx)(U.Lock,{size:36}),message:"请输入用户名和密码以生成 PEM 密钥"})}),"export"===n&&(0,o.jsx)(o.Fragment,{children:tM&&tA?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"web3-tools-section",children:[(0,o.jsxs)("button",{className:"web3-tools-toggle",onClick:()=>eg(!ef),children:[(0,o.jsx)(L,{size:14}),ef?"隐藏地址二维码":"显示地址二维码",ef?(0,o.jsx)(D,{size:14}):(0,o.jsx)(K.ChevronDown,{size:14})]}),ef&&(0,o.jsxs)("div",{className:"web3-mnemonic-reveal",children:[(0,o.jsxs)("div",{className:"web3-mnemonic-card",children:[(0,o.jsx)("p",{className:"web3-mnemonic-text",children:tA}),(0,o.jsx)(V.CopyButton,{text:tA})]}),(0,o.jsx)("div",{className:"qr-wrap",children:(0,o.jsx)(E,{value:tA,size:200})})]})]}),Z&&(0,o.jsxs)("div",{className:"web3-tools-section",children:[(0,o.jsxs)("button",{className:"web3-tools-toggle",onClick:()=>ey(!eb),children:[(0,o.jsx)(P.KeyRound,{size:14}),eb?"隐藏助记词":"显示助记词",eb?(0,o.jsx)(D,{size:14}):(0,o.jsx)(K.ChevronDown,{size:14})]}),eb&&(0,o.jsxs)("div",{className:"web3-mnemonic-reveal",children:[(0,o.jsxs)("div",{className:"web3-mnemonic-card",children:[(0,o.jsx)("p",{className:"web3-mnemonic-text",children:Z}),(0,o.jsx)(V.CopyButton,{text:Z})]}),(0,o.jsxs)("p",{className:"web3-tools-danger",children:[(0,o.jsx)(T.ShieldAlert,{size:14}),"任何拥有您助记词的人都可以窃取您账户中的任何资产,切勿泄露!!!"]}),(0,o.jsx)("button",{className:"web3-tools-toggle",onClick:()=>ej(!ew),children:ew?"隐藏助记词二维码":"显示助记词二维码"}),ew&&(0,o.jsx)("div",{className:"qr-wrap",children:(0,o.jsx)(E,{value:Z,size:260})})]})]}),Z&&(0,o.jsxs)("div",{className:"web3-mnemonic-reveal",children:[(0,o.jsx)("div",{children:(0,o.jsxs)("button",{className:"btn btn-primary",onClick:()=>{if(!Z)return;let e=[];for(let t=eo;t<eo+10;t++){let s=`m/44'/60'/0'/0/${t}`,a=M.HDNodeWallet.fromPhrase(Z,void 0,s);e.push({index:t,address:a.address,privateKey:a.privateKey})}ei(t=>[...t,...e]),ec(e=>e+10)},children:["派生 ",10," 个地址"]})}),(0,o.jsxs)("p",{className:"web3-tools-danger",children:[(0,o.jsx)(T.ShieldAlert,{size:14}),"任何拥有您私钥的人都可以窃取您地址中的任何资产,切勿泄露!!!"]}),en.length>0&&(0,o.jsx)("div",{className:"web3-derive-table-wrap",children:(0,o.jsxs)("table",{className:"web3-derive-table",children:[(0,o.jsx)("thead",{children:(0,o.jsxs)("tr",{children:[(0,o.jsx)("th",{onClick:()=>eh(!ed),className:"web3-derive-th",children:"账户"}),(0,o.jsx)("th",{onClick:()=>em(!eu),className:"web3-derive-th",children:"地址"}),(0,o.jsxs)("th",{onClick:()=>ep(!ex),className:"web3-derive-th danger",children:["私钥(点击",ex?"隐藏":"显示",")"]})]})}),(0,o.jsx)("tbody",{children:en.map(e=>(0,o.jsxs)("tr",{children:[(0,o.jsx)("td",{children:ed?e.index+1:""}),(0,o.jsx)("td",{children:eu?e.address:""}),(0,o.jsx)("td",{className:"danger",children:ex?e.privateKey:""})]},e.index))})]})})]})]}):(0,o.jsx)(Y.EmptyState,{icon:(0,o.jsx)($.Wallet,{size:36}),message:"请输入用户名和密码以使用钱包工具"})}),"EA"===n&&(0,o.jsxs)("div",{className:"web3-box-workspace",children:[(0,o.jsxs)("div",{className:"web3-box-grid",children:[(0,o.jsx)(ea,{title:"A 账号",username:eM,password:ek,showPassword:eP,showPrivateKey:ez,account:eI,onUsernameChange:eA,onPasswordChange:eS,onTogglePassword:()=>eR(!eP),onTogglePrivateKey:()=>eB(!ez),onGenerate:()=>tN("A",eM,ek,e_)}),(0,o.jsx)(ea,{title:"B 账号",username:eO,password:eT,showPassword:eD,showPrivateKey:eU,account:eH,onUsernameChange:eL,onPasswordChange:eK,onTogglePassword:()=>eF(!eD),onTogglePrivateKey:()=>e$(!eU),onGenerate:()=>tN("B",eO,eT,eQ)})]}),(0,o.jsxs)("div",{className:"web3-box-flow-grid",children:[(0,o.jsx)(er,{title:"A → B",description:"加密使用 A 私钥 + B 公钥;解密使用 A 公钥 + B 私钥。",message:eV,cipherText:eW,decryptedText:eX,error:eJ,encryptLabel:"用 A 私钥 + B 公钥加密",decryptLabel:"用 A 公钥 + B 私钥解密",messagePlaceholder:"输入要从 A 发给 B 的消息",cipherPlaceholder:"加密后生成密文,或粘贴已有密文",onMessageChange:eY,onCipherTextChange:eG,onEncrypt:()=>tC({senderAccount:eI,recipientAccount:eH,message:eV,setCipherText:eG,setDecryptedText:eq,setError:eZ}),onDecrypt:()=>tE({senderAccount:eI,recipientAccount:eH,cipherText:eW,setDecryptedText:eq,setError:eZ})}),(0,o.jsx)(er,{title:"B → A",description:"加密使用 B 私钥 + A 公钥;解密使用 B 公钥 + A 私钥。",message:e0,cipherText:e2,decryptedText:e8,error:e4,encryptLabel:"用 B 私钥 + A 公钥加密",decryptLabel:"用 B 公钥 + A 私钥解密",messagePlaceholder:"输入要从 B 发给 A 的消息",cipherPlaceholder:"加密后生成密文,或粘贴已有密文",onMessageChange:e1,onCipherTextChange:e3,onEncrypt:()=>tC({senderAccount:eH,recipientAccount:eI,message:e0,setCipherText:e3,setDecryptedText:e6,setError:e5}),onDecrypt:()=>tE({senderAccount:eH,recipientAccount:eI,cipherText:e2,setDecryptedText:e6,setError:e5})})]}),(0,o.jsxs)("div",{className:"web3-box-flow-grid",children:[(0,o.jsxs)("section",{className:"web3-box-flow",children:[(0,o.jsx)("div",{className:"web3-box-flow-header",children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:"加密"}),(0,o.jsx)("p",{children:"只输入发送方私钥和接收方公钥即可加密,无需生成完整账号。"})]})}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"发送方"})}),(0,o.jsxs)("div",{className:"input-wrap",children:[(0,o.jsx)("input",{type:tw?"text":"password",placeholder:"发送方 x25519 私钥",value:td,onChange:e=>th(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("button",{className:"input-eye",onClick:()=>tj(!tw),type:"button",children:tw?(0,o.jsx)(k.EyeOff,{size:16}):(0,o.jsx)(A.Eye,{size:16})})]}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"接收方"})}),(0,o.jsx)("input",{type:"text",placeholder:"接收方 x25519 公钥",value:tu,onChange:e=>tm(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"明文"})}),(0,o.jsx)("textarea",{className:"textarea",value:tx,onChange:e=>tp(e.target.value),rows:4,placeholder:"输入要加密的消息"}),(0,o.jsx)("div",{className:"web3-box-actions",children:(0,o.jsxs)("button",{className:"btn btn-primary",onClick:function(){td.trim()?tu.trim()?tx.trim()?(tg((0,J.mostBoxEncrypt)(tx,{senderPrivateKey:td.trim(),recipientPublicKey:tu.trim()})),ty("")):ty("请输入要加密的消息"):ty("请输入接收方公钥"):ty("请输入发送方私钥")},type:"button",children:[(0,o.jsx)(U.Lock,{size:16}),"加密"]})}),tb&&(0,o.jsx)("p",{className:"web3-tools-danger",children:tb}),(0,o.jsxs)("div",{className:"web3-box-result",children:[(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"密文"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:tf,readOnly:!0,rows:5,placeholder:"加密成功后显示密文"})]})]}),(0,o.jsxs)("section",{className:"web3-box-flow",children:[(0,o.jsx)("div",{className:"web3-box-flow-header",children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:"解密"}),(0,o.jsx)("p",{children:"只输入发送方公钥和接收方私钥即可解密,无需生成完整账号。"})]})}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"发送方"})}),(0,o.jsx)("input",{type:"text",placeholder:"发送方 x25519 公钥",value:e7,onChange:e=>e9(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"接收方"})}),(0,o.jsxs)("div",{className:"input-wrap",children:[(0,o.jsx)("input",{type:to?"text":"password",placeholder:"接收方 x25519 私钥",value:te,onChange:e=>tt(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("button",{className:"input-eye",onClick:()=>tc(!to),type:"button",children:to?(0,o.jsx)(k.EyeOff,{size:16}):(0,o.jsx)(A.Eye,{size:16})})]}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"密文"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:ts,onChange:e=>ta(e.target.value),rows:5,placeholder:"粘贴要解密的密文"}),(0,o.jsx)("div",{className:"web3-box-actions",children:(0,o.jsxs)("button",{className:"btn btn-secondary",onClick:function(){if(!e7.trim())return void ti("请输入发送方公钥");if(!te.trim())return void ti("请输入接收方私钥");if(!ts.trim())return void ti("请粘贴密文");let e=(0,J.mostBoxDecrypt)(ts,{senderPublicKey:e7.trim(),recipientPrivateKey:te.trim()});if(!e){ti("解密失败,请确认发送方公钥、接收方私钥和密文匹配"),tl("");return}tl(e),ti("")},type:"button",children:[(0,o.jsx)(P.KeyRound,{size:16}),"解密"]})}),tn&&(0,o.jsx)("p",{className:"web3-tools-danger",children:tn}),(0,o.jsxs)("div",{className:"web3-box-result",children:[(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"解密结果"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:tr,readOnly:!0,rows:5,placeholder:"解密成功后显示明文"})]})]})]})]})]})})})}],17173)}]);