most-box 0.0.2 → 0.0.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 (181) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +222 -156
  3. package/electron/main.js +67 -0
  4. package/out/404/index.html +15 -0
  5. package/out/404.html +15 -0
  6. package/out/__next.__PAGE__.txt +11 -0
  7. package/out/__next._full.txt +21 -0
  8. package/out/__next._head.txt +5 -0
  9. package/out/__next._index.txt +7 -0
  10. package/out/__next._tree.txt +4 -0
  11. package/out/_next/static/alUUgRz4oMlw4EtULOYfV/_buildManifest.js +11 -0
  12. package/out/_next/static/alUUgRz4oMlw4EtULOYfV/_clientMiddlewareManifest.js +1 -0
  13. package/out/_next/static/alUUgRz4oMlw4EtULOYfV/_ssgManifest.js +1 -0
  14. package/out/_next/static/chunks/00s106sbq8t9v.js +1 -0
  15. package/out/_next/static/chunks/0174xh3wfsjm1.js +2 -0
  16. package/out/_next/static/chunks/01xlw8hd842-c.js +1 -0
  17. package/out/_next/static/chunks/02ou_44kkb5dz.js +1 -0
  18. package/out/_next/static/chunks/02pr2b_eos3~h.js +1 -0
  19. package/out/_next/static/chunks/03~yq9q893hmn.js +1 -0
  20. package/out/_next/static/chunks/07lsjkarm1p9f.css +1 -0
  21. package/out/_next/static/chunks/0_-ccbcyh_o30.css +1 -0
  22. package/out/_next/static/chunks/0_b839~4.q324.js +1 -0
  23. package/out/_next/static/chunks/0_sna3wdypbzr.js +1 -0
  24. package/out/_next/static/chunks/0_wia9ofmsi1c.css +2 -0
  25. package/out/_next/static/chunks/0byj66sc-9o0g.js +1 -0
  26. package/out/_next/static/chunks/0bzupvr5gt3k9.js +31 -0
  27. package/out/_next/static/chunks/0d3shmwh5_nmn.js +1 -0
  28. package/out/_next/static/chunks/0du450zbk4kq_.js +1 -0
  29. package/out/_next/static/chunks/0e_h0d3ekzks8.css +1 -0
  30. package/out/_next/static/chunks/0ho~log~~-jwp.css +1 -0
  31. package/out/_next/static/chunks/0ibjp~7qzxfjv.js +5 -0
  32. package/out/_next/static/chunks/0imvn_arv36xt.css +1 -0
  33. package/out/_next/static/chunks/0j9~17180dl8j.js +1 -0
  34. package/out/_next/static/chunks/0ji.28mehrvdp.js +1 -0
  35. package/out/_next/static/chunks/0jl~j62iz2uvr.js +1 -0
  36. package/out/_next/static/chunks/0nct0fubs64d-.js +1 -0
  37. package/out/_next/static/chunks/0n~dq4kpx9xxx.js +1 -0
  38. package/out/_next/static/chunks/0pqt~8bl3ukh4.js +4 -0
  39. package/out/_next/static/chunks/0q7ck9f.90_i9.js +1 -0
  40. package/out/_next/static/chunks/0qub_r0x_r-e9.css +1 -0
  41. package/out/_next/static/chunks/0rr4gwjp9z~9a.js +1 -0
  42. package/out/_next/static/chunks/0ry.po.a~iu4p.js +1 -0
  43. package/out/_next/static/chunks/0slwj0c46k5cu.js +1 -0
  44. package/out/_next/static/chunks/0sorqk.oc6b7j.css +1 -0
  45. package/out/_next/static/chunks/11dalasm30arx.js +1 -0
  46. package/out/_next/static/chunks/turbopack-0a_g3u0ud~jb8.js +1 -0
  47. package/out/_not-found/__next._full.txt +20 -0
  48. package/out/_not-found/__next._head.txt +5 -0
  49. package/out/_not-found/__next._index.txt +7 -0
  50. package/out/_not-found/__next._not-found.__PAGE__.txt +9 -0
  51. package/out/_not-found/__next._not-found.txt +5 -0
  52. package/out/_not-found/__next._tree.txt +2 -0
  53. package/out/_not-found/index.html +15 -0
  54. package/out/_not-found/index.txt +20 -0
  55. package/out/app/__next._full.txt +20 -0
  56. package/out/app/__next._head.txt +5 -0
  57. package/out/app/__next._index.txt +7 -0
  58. package/out/app/__next._tree.txt +2 -0
  59. package/out/app/__next.app.__PAGE__.txt +9 -0
  60. package/out/app/__next.app.txt +5 -0
  61. package/out/app/index.html +15 -0
  62. package/out/app/index.txt +20 -0
  63. package/out/changelog/__next._full.txt +22 -0
  64. package/out/changelog/__next._head.txt +5 -0
  65. package/out/changelog/__next._index.txt +7 -0
  66. package/out/changelog/__next._tree.txt +3 -0
  67. package/out/changelog/__next.changelog.__PAGE__.txt +10 -0
  68. package/out/changelog/__next.changelog.txt +5 -0
  69. package/out/changelog/index.html +15 -0
  70. package/out/changelog/index.txt +22 -0
  71. package/out/chat/__next._full.txt +21 -0
  72. package/out/chat/__next._head.txt +5 -0
  73. package/out/chat/__next._index.txt +7 -0
  74. package/out/chat/__next._tree.txt +3 -0
  75. package/out/chat/__next.chat.__PAGE__.txt +9 -0
  76. package/out/chat/__next.chat.txt +6 -0
  77. package/out/chat/index.html +15 -0
  78. package/out/chat/index.txt +21 -0
  79. package/out/docs/__next._full.txt +22 -0
  80. package/out/docs/__next._head.txt +5 -0
  81. package/out/docs/__next._index.txt +7 -0
  82. package/out/docs/__next._tree.txt +3 -0
  83. package/out/docs/__next.docs.__PAGE__.txt +10 -0
  84. package/out/docs/__next.docs.txt +5 -0
  85. package/out/docs/getting-started/__next._full.txt +22 -0
  86. package/out/docs/getting-started/__next._head.txt +5 -0
  87. package/out/docs/getting-started/__next._index.txt +7 -0
  88. package/out/docs/getting-started/__next._tree.txt +3 -0
  89. package/out/docs/getting-started/__next.docs.getting-started.__PAGE__.txt +10 -0
  90. package/out/docs/getting-started/__next.docs.getting-started.txt +5 -0
  91. package/out/docs/getting-started/__next.docs.txt +5 -0
  92. package/out/docs/getting-started/index.html +15 -0
  93. package/out/docs/getting-started/index.txt +22 -0
  94. package/out/docs/index.html +15 -0
  95. package/out/docs/index.txt +22 -0
  96. package/out/download/__next._full.txt +34 -0
  97. package/out/download/__next._head.txt +5 -0
  98. package/out/download/__next._index.txt +7 -0
  99. package/out/download/__next._tree.txt +4 -0
  100. package/out/download/__next.download.__PAGE__.txt +16 -0
  101. package/out/download/__next.download.txt +5 -0
  102. package/out/download/index.html +15 -0
  103. package/out/download/index.txt +34 -0
  104. package/out/favicon.ico +0 -0
  105. package/out/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
  106. package/out/fonts/jetbrains-mono-latin-500-normal.woff2 +0 -0
  107. package/out/fonts/jetbrains-mono-latin-600-normal.woff2 +0 -0
  108. package/out/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
  109. package/out/index.html +15 -0
  110. package/out/index.txt +21 -0
  111. package/out/lottery/__next._full.txt +21 -0
  112. package/out/lottery/__next._head.txt +5 -0
  113. package/out/lottery/__next._index.txt +7 -0
  114. package/out/lottery/__next._tree.txt +3 -0
  115. package/out/lottery/__next.lottery.__PAGE__.txt +9 -0
  116. package/out/lottery/__next.lottery.txt +6 -0
  117. package/out/lottery/index.html +15 -0
  118. package/out/lottery/index.txt +21 -0
  119. package/out/ping/__next._full.txt +21 -0
  120. package/out/ping/__next._head.txt +5 -0
  121. package/out/ping/__next._index.txt +7 -0
  122. package/out/ping/__next._tree.txt +4 -0
  123. package/out/ping/__next.ping.__PAGE__.txt +10 -0
  124. package/out/ping/__next.ping.txt +5 -0
  125. package/out/ping/index.html +15 -0
  126. package/out/ping/index.txt +21 -0
  127. package/out/pwa-512x512.png +0 -0
  128. package/out/web3/__next._full.txt +21 -0
  129. package/out/web3/__next._head.txt +5 -0
  130. package/out/web3/__next._index.txt +7 -0
  131. package/out/web3/__next._tree.txt +3 -0
  132. package/out/web3/__next.web3.__PAGE__.txt +9 -0
  133. package/out/web3/__next.web3.txt +6 -0
  134. package/out/web3/ed25519/__next._full.txt +20 -0
  135. package/out/web3/ed25519/__next._head.txt +5 -0
  136. package/out/web3/ed25519/__next._index.txt +7 -0
  137. package/out/web3/ed25519/__next._tree.txt +3 -0
  138. package/out/web3/ed25519/__next.web3.ed25519.__PAGE__.txt +6 -0
  139. package/out/web3/ed25519/__next.web3.ed25519.txt +5 -0
  140. package/out/web3/ed25519/__next.web3.txt +6 -0
  141. package/out/web3/ed25519/index.html +1 -0
  142. package/out/web3/ed25519/index.txt +20 -0
  143. package/out/web3/index.html +15 -0
  144. package/out/web3/index.txt +21 -0
  145. package/out/web3/tools/__next._full.txt +20 -0
  146. package/out/web3/tools/__next._head.txt +5 -0
  147. package/out/web3/tools/__next._index.txt +7 -0
  148. package/out/web3/tools/__next._tree.txt +3 -0
  149. package/out/web3/tools/__next.web3.tools.__PAGE__.txt +6 -0
  150. package/out/web3/tools/__next.web3.tools.txt +5 -0
  151. package/out/web3/tools/__next.web3.txt +6 -0
  152. package/out/web3/tools/index.html +1 -0
  153. package/out/web3/tools/index.txt +20 -0
  154. package/package.json +162 -48
  155. package/public/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
  156. package/public/fonts/jetbrains-mono-latin-500-normal.woff2 +0 -0
  157. package/public/fonts/jetbrains-mono-latin-600-normal.woff2 +0 -0
  158. package/public/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
  159. package/public/pwa-512x512.png +0 -0
  160. package/server/cli.js +3 -0
  161. package/server/index.js +963 -0
  162. package/{src → server/src}/config.js +51 -39
  163. package/{src → server/src}/core/cid.js +157 -146
  164. package/{src → server/src}/index.js +1950 -1201
  165. package/server/src/utils/api.js +68 -0
  166. package/server/src/utils/avatar.js +11 -0
  167. package/{src → server/src}/utils/errors.js +70 -66
  168. package/server/src/utils/mostWallet.js +42 -0
  169. package/server/src/utils/mp.js +117 -0
  170. package/{src → server/src}/utils/security.js +173 -169
  171. package/server/src/utils/userIdentity.js +93 -0
  172. package/build.mjs +0 -40
  173. package/cli.js +0 -2
  174. package/public/app.css +0 -1519
  175. package/public/app.jsx +0 -1543
  176. package/public/bundle.css +0 -1
  177. package/public/bundle.js +0 -107
  178. package/public/error-boundary.jsx +0 -50
  179. package/public/index.html +0 -16
  180. package/public/index.jsx +0 -20
  181. package/server.js +0 -698
package/public/bundle.css DELETED
@@ -1 +0,0 @@
1
- :root{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--text-primary: #0f172a;--text-secondary: #64748b;--text-muted: #94a3b8;--border-color: rgba(0, 0, 0, .06);--accent-blue: #3b82f6;--danger: #ef4444;--success: #22c55e;--warning: #f59e0b;--info: #6366f1}[data-theme=dark]{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--border-color: rgba(255, 255, 255, .08);--accent-blue: #60a5fa}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}.app-layout{display:flex;min-height:100vh;background:var(--bg-primary);color:var(--text-primary)}.sidebar{width:200px;background:var(--bg-tertiary);display:flex;flex-direction:column;border-right:1px solid var(--border-color);flex-shrink:0;.sidebar-header{padding:20px 16px;border-bottom:1px solid var(--border-color);h1{font-size:18px;font-weight:700;color:var(--accent-blue)}}.sidebar-nav{padding:12px 8px;flex:1}.sidebar-nav-btn{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;border:none;cursor:pointer;margin-bottom:4px;background:transparent;color:var(--text-secondary);font-weight:500;font-size:13px;transition:background .15s;&.active{background:color-mix(in srgb,var(--accent-blue) 12%,transparent);color:var(--accent-blue);font-weight:600}&:hover:not(.active){background:color-mix(in srgb,var(--accent-blue) 6%,transparent)}}.sidebar-footer{padding:12px 16px;border-top:1px solid var(--border-color)}.sidebar-footer-label{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:11px;color:var(--text-secondary)}.storage-bar{height:4px;border-radius:2px;background:var(--bg-secondary);overflow:hidden}.storage-bar-fill{height:100%;background:var(--accent-blue);transition:width .3s}.storage-info{display:flex;justify-content:space-between;font-size:10px;color:var(--text-secondary);margin-top:4px}}.sidebar-overlay,.mobile-menu-btn{display:none}.main-content{flex:1;display:flex;flex-direction:column;min-width:0}.app-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:16px 24px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);gap:16px;.header-left{display:flex;align-items:center;gap:12px}.header-title{font-size:16px;font-weight:600}.header-badge{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;background:var(--bg-tertiary);font-size:11px;color:var(--text-secondary)}.header-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--warning);&.connected{background:var(--success)}}.header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}}.search-box{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:8px;background:var(--bg-tertiary);border:1px solid var(--border-color);input{background:none;border:none;outline:none;font-size:12px;color:var(--text-primary);width:120px}button{display:flex;background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:0}}.icon-btn{width:32px;height:32px;border-radius:8px;border:none;background:var(--bg-tertiary);cursor:pointer;color:var(--text-secondary);position:relative;display:flex;align-items:center;justify-content:center;transition:background .15s;&:hover{background:color-mix(in srgb,var(--accent-blue) 10%,var(--bg-tertiary))}&.accent{color:var(--accent-blue)}&.theme-toggle{color:#6366f1}}.icon-btn-badge{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:var(--danger);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 24px;position:relative}.action-card{border:2px dashed color-mix(in srgb,var(--accent-blue) 20%,transparent);border-radius:12px;padding:20px;text-align:center;cursor:pointer;position:relative;background:transparent;transition:background .15s,border-color .15s;&:hover{background:color-mix(in srgb,var(--accent-blue) 4%,transparent)}p{font-size:12px;color:var(--accent-blue);font-weight:500}}.action-card.upload.drag-over{border-color:var(--accent-blue);background:color-mix(in srgb,var(--accent-blue) 5%,transparent)}.action-card-download{p{color:#6366f1}}.action-card-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}.breadcrumb{display:flex;align-items:center;gap:4px;padding:0 24px;font-size:12px;button{background:none;border:none;color:var(--text-muted);cursor:pointer}button.current{color:var(--text-secondary)}.breadcrumb-edit-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:2px;display:flex;align-items:center}}.content-grid{flex:1;padding:12px 24px;overflow:auto}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.empty-state{text-align:center;color:var(--text-muted);padding:48px;font-size:13px}.card{display:flex;flex-direction:column;align-items:center;padding:16px;border-radius:12px;cursor:pointer;background:var(--bg-secondary);border:1px solid var(--border-color);transition:all .15s;&:hover{border-color:var(--accent-blue);box-shadow:0 2px 8px #0000000f}&.selected{background:color-mix(in srgb,var(--accent-blue) 8%,transparent);border-color:var(--accent-blue)}}.card-icon{width:56px;height:56px;border-radius:12px;margin-bottom:10px;display:flex;align-items:center;justify-content:center}.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{font-size:12px;font-weight:500;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.card-date{font-size:10px;color:var(--text-muted);margin-top:2px}.modal-overlay{position:fixed;inset:0;z-index:200;background:#00000080;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.modal-container{width:380px;max-width:calc(100vw - 32px);padding:24px;border-radius:16px;background:var(--bg-secondary);border:1px solid var(--border-color)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;h3{font-size:16px;font-weight:600}button{background:none;border:none;cursor:pointer;color:var(--text-muted)}}.modal-close-btn{background:none;border:none;cursor:pointer;color:var(--text-muted)}.welcome-modal{width:380px;max-width:calc(100vw - 32px);padding:28px;border-radius:16px;background:#fff;text-align:center;h2{font-size:18px;font-weight:600;margin-bottom:12px}p{font-size:13px;color:#64748b;line-height:1.6;margin-bottom:20px}}.welcome-steps{display:flex;justify-content:center;gap:6px;margin-bottom:20px}.welcome-step-dot{width:6px;height:6px;border-radius:50%;background:#e2e8f0;&.active{background:#3b82f6}}.welcome-actions{display:flex;gap:10px;justify-content:center}.welcome-success-icon{width:48px;height:48px;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.btn{padding:10px 20px;border-radius:10px;border:none;cursor:pointer;font-size:14px;transition:opacity .15s;&.primary{background:#3b82f6;color:#fff}&.secondary{background:transparent;border:1px solid #e5e7eb;color:#6b7280}&.danger{background:var(--danger);color:#fff}&.small{padding:6px 12px;border-radius:8px;font-size:12px}&.full{width:100%;display:flex;align-items:center;justify-content:center;gap:6px}&:disabled{opacity:.5;cursor:not-allowed}}.settings-modal{width:420px;max-width:calc(100vw - 32px);padding:28px;border-radius:16px;background:var(--bg-secondary);border:1px solid var(--border-color);.settings-title{font-size:18px;font-weight:600;color:var(--text-primary)}.settings-label{display:block;font-size:13px;font-weight:500;margin-bottom:8px;color:var(--text-primary)}.settings-row{display:flex;gap:8px;align-items:center}.settings-input{flex:1;padding:10px 12px;border-radius:8px;border:1.5px solid var(--border-color);font-size:13px;outline:none;background:var(--bg-tertiary);color:var(--text-primary)}.settings-hint{font-size:11px;color:var(--text-muted);margin-top:8px}.settings-divider{border-top:1px solid var(--border-color);padding-top:16px}.settings-about{text-align:center;margin-bottom:16px;h3{font-size:16px;font-weight:600;margin-bottom:4px;color:var(--text-primary)}p{font-size:12px;color:var(--text-muted)}}}.input-modal{width:360px;max-width:calc(100vw - 32px);padding:24px;border-radius:16px;background:var(--bg-secondary);border:1px solid var(--border-color);h3{font-size:16px;font-weight:600;margin-bottom:16px;color:var(--text-primary)}}.modal-input{width:100%;padding:10px 12px;border-radius:8px;border:1.5px solid var(--border-color);font-size:13px;outline:none;background:var(--bg-tertiary);color:var(--text-primary);margin-bottom:16px}.modal-actions{display:flex;gap:8px;.btn{flex:1;padding:10px;border-radius:8px;font-size:13px}}.confirm-modal{width:360px;max-width:calc(100vw - 32px);padding:24px;border-radius:16px;background:var(--bg-secondary);border:1px solid var(--border-color);h3{font-size:16px;font-weight:600;margin-bottom:12px;color:var(--text-primary)}p{font-size:13px;color:var(--text-secondary);margin-bottom:20px}}.move-modal{width:400px;max-width:calc(100vw - 32px);padding:24px;border-radius:16px;background:var(--bg-secondary);border:1px solid var(--border-color);.move-breadcrumb{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.move-breadcrumb-btn{padding:4px 8px;border-radius:6px;border:none;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;font-size:12px;&.active{background:color-mix(in srgb,var(--accent-blue) 12%,transparent);color:var(--accent-blue)}}.move-folder-list{max-height:200px;overflow:auto;margin-bottom:16px}.move-folder-item{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;border:none;background:transparent;cursor:pointer;font-size:13px;color:var(--text-primary);text-align:left;&:hover{background:var(--bg-tertiary)}&.selected{background:color-mix(in srgb,var(--accent-blue) 12%,transparent);color:var(--accent-blue)}}.move-new-folder{display:flex;gap:8px;margin-bottom:16px;input{flex:1;padding:8px 10px;border-radius:8px;border:1.5px solid var(--border-color);font-size:12px;outline:none;background:var(--bg-tertiary);color:var(--text-primary)}}}.share-modal{width:420px;max-width:calc(100vw - 32px);padding:24px;border-radius:16px;background:var(--bg-secondary);border:1px solid var(--border-color);.share-link-box{display:flex;gap:10px;margin-bottom:16px}.share-link-text{flex:1;padding:12px 14px;border-radius:10px;background:var(--bg-tertiary);font-size:13px;font-family:monospace;color:var(--text-primary);word-break:break-all}.share-copy-btn{width:44px;border-radius:10px;border:none;background:var(--accent-blue);color:#fff;cursor:pointer;&.copied{background:var(--success)}}}.download-modal{width:400px;max-width:calc(100vw - 32px);padding:24px;border-radius:16px;background:var(--bg-secondary);border:1px solid var(--border-color);.download-input{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border-color);font-size:13px;font-family:monospace;outline:none;background:var(--bg-tertiary);color:var(--text-primary);margin-bottom:16px}.download-btn{width:100%;padding:12px;border-radius:10px;border:none;background:var(--info);color:#fff;font-size:13px;font-weight:600;cursor:pointer;&:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}}}.preview-overlay{position:fixed;inset:0;z-index:200;background:#000000e6;display:flex;align-items:center;justify-content:center;padding:24px;.preview-close{position:absolute;top:20px;right:20px;width:36px;height:36px;border-radius:10px;border:none;background:#ffffff1a;cursor:pointer;color:#fff}img,video{max-width:100%;max-height:80vh;border-radius:12px}.preview-audio{background:#ffffff0d;border-radius:16px;padding:40px 48px;display:flex;flex-direction:column;align-items:center;gap:20px;min-width:320px}.preview-audio-icon{width:72px;height:72px;border-radius:50%;background:#3b82f626;display:flex;align-items:center;justify-content:center}.preview-audio-filename{font-size:14px;color:var(--text-secondary);margin:0;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-audio-player{width:100%;max-width:400px;height:40px}.preview-audio-player::-webkit-media-controls-panel{background:var(--bg-tertiary)}}.batch-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:12px;background:var(--bg-secondary);box-shadow:0 4px 20px #00000026;border:1px solid var(--border-color);z-index:100;.batch-info{font-size:12px;color:var(--text-secondary)}.batch-dismiss{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px}.batch-divider{width:1px;height:20px;background:var(--border-color)}}.transfer-modal{width:380px;max-width:calc(100vw - 32px);max-height:70vh;padding:24px;border-radius:16px;background:var(--bg-secondary);border:1px solid var(--border-color);overflow:auto;.transfer-item{padding:10px 0;border-bottom:1px solid var(--border-color)}.transfer-item-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.transfer-item-name{font-size:12px;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transfer-item-cancel{background:none;border:none;cursor:pointer;color:var(--danger);padding:2px}.transfer-progress-row{display:flex;align-items:center;gap:8px}.transfer-progress-bar{flex:1;height:4px;border-radius:2px;background:var(--bg-tertiary)}.transfer-progress-fill{height:100%;border-radius:2px;background:var(--accent-blue);transition:width .2s;&.download{background:var(--info)}&.error{background:var(--danger)}&.cancelled{background:var(--warning)}}.transfer-progress-text{font-size:10px;color:var(--text-muted);min-width:32px;text-align:right}}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast{position:fixed;right:24px;z-index:9999;color:#fff;padding:12px 20px;border-radius:12px;font-size:13px;font-weight:500;box-shadow:0 4px 16px #0003;animation:toastSlideIn .2s ease;&.success{background:var(--success)}&.error{background:var(--danger)}&.warning{background:var(--warning)}&.info{background:var(--accent-blue)}}.welcome-path-section{text-align:left;margin-bottom:20px;.path-label{font-size:12px;color:#9ca3af;margin-bottom:4px}.path-value{font-size:12px;color:#374151;font-family:monospace;background:#f3f4f6;padding:8px 10px;border-radius:6px;word-break:break-all;margin-bottom:12px}.path-input{width:100%;padding:10px 12px;border-radius:8px;border:1.5px solid #e5e7eb;font-size:13px;outline:none;box-sizing:border-box}.path-hint{font-size:11px;color:#9ca3af;margin-top:4px}}@media(max-width:768px){.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:300;transform:translate(-100%);transition:transform .25s ease;width:240px;&.open{transform:translate(0)}}.sidebar-overlay{display:block;position:fixed;inset:0;z-index:299;background:#0006;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;&.visible{opacity:1;visibility:visible}}.mobile-menu-btn{display:flex}.app-header{padding:12px 16px;gap:8px;.header-right{gap:4px}}.action-grid{grid-template-columns:1fr;padding:12px 16px;gap:8px}.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{width:44px;height:44px;border-radius:10px;margin-bottom:8px}.card-name{font-size:11px}.modal-overlay{align-items:flex-end;padding:0}.modal-container{width:100%;max-width:100%;border-radius:16px 16px 0 0;max-height:85vh;overflow:auto}.welcome-modal,.settings-modal,.input-modal,.confirm-modal,.move-modal,.share-modal,.download-modal,.transfer-modal{width:100%;max-width:100%;border-radius:16px 16px 0 0}.toast{right:12px;left:12px}.batch-bar{left:8px;right:8px;transform:none;flex-wrap:wrap;justify-content:center;bottom:12px;gap:6px}.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{padding:10px 12px;.header-title{font-size:14px}.header-badge{font-size:10px;padding:2px 6px}}.action-grid,.content-grid{padding:10px 12px}.breadcrumb{padding:0 12px;font-size:11px}.batch-bar{padding:8px 12px;gap:4px;.batch-info{font-size:11px}}}.preview-text-container{width:90vw;max-width:900px;max-height:80vh;overflow:auto;background:var(--bg-secondary);border-radius:12px;padding:20px;display:flex;flex-direction:column}.preview-text-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-color);font-size:13px;color:var(--text-secondary)}.preview-text{color:#0f172a;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-all;margin:0;overflow:auto;max-height:100%}.preview-text-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-secondary);gap:12px}.preview-text-spinner{animation:spin .8s linear infinite;opacity:.6}.preview-text-loading-hint{font-size:12px;opacity:.6;text-align:center;max-width:300px}.preview-media-wrapper{position:relative;display:flex;align-items:center;justify-content:center;min-width:100px;min-height:100px}.preview-media-wrapper .preview-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:1}.preview-loading-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.preview-media-wrapper img,.preview-media-wrapper video{max-width:100%;max-height:80vh;border-radius:12px}.preview-unsupported{background:var(--bg-secondary);border-radius:12px;padding:40px;text-align:center;color:var(--text-primary)}.preview-unsupported p:first-of-type{font-size:14px;font-weight:500;word-break:break-all}[data-theme=dark] .preview-text{color:#e2e8f0}