failproofai 0.0.10 → 0.0.11-beta.10

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 (565) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +9 -1
  3. package/.next/standalone/.next/build-manifest.json +10 -10
  4. package/.next/standalone/.next/prerender-manifest.json +3 -32
  5. package/.next/standalone/.next/required-server-files.json +2 -1
  6. package/.next/standalone/.next/routes-manifest.json +51 -3
  7. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +7 -7
  8. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page.js +6 -6
  10. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  15. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  16. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  17. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  18. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +7 -7
  20. package/.next/standalone/.next/server/app/_not-found/page/next-font-manifest.json +2 -6
  21. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  22. package/.next/standalone/.next/server/app/_not-found/page.js +12 -13
  23. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  26. package/.next/standalone/.next/server/app/_not-found.rsc +16 -16
  27. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
  28. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  29. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  30. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  31. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  32. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  33. package/.next/standalone/.next/server/app/api/audit/invite/route/app-paths-manifest.json +3 -0
  34. package/.next/standalone/.next/server/app/api/audit/invite/route/server-reference-manifest.json +4 -0
  35. package/.next/standalone/.next/server/app/api/audit/invite/route.js +7 -0
  36. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -0
  37. package/.next/standalone/.next/server/app/api/audit/invite/route_client-reference-manifest.js +3 -0
  38. package/.next/standalone/.next/server/app/api/audit/run/route/app-paths-manifest.json +3 -0
  39. package/.next/standalone/.next/server/app/api/audit/run/route/build-manifest.json +9 -0
  40. package/.next/standalone/.next/server/app/api/audit/run/route/server-reference-manifest.json +4 -0
  41. package/.next/standalone/.next/server/app/api/audit/run/route.js +8 -0
  42. package/.next/standalone/.next/server/app/api/audit/run/route.js.map +5 -0
  43. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -0
  44. package/.next/standalone/.next/server/app/api/audit/run/route_client-reference-manifest.js +3 -0
  45. package/.next/standalone/.next/server/app/api/audit/status/route/app-paths-manifest.json +3 -0
  46. package/.next/standalone/.next/server/app/api/audit/status/route/build-manifest.json +9 -0
  47. package/.next/standalone/.next/server/app/api/audit/status/route/server-reference-manifest.json +4 -0
  48. package/.next/standalone/.next/server/app/api/audit/status/route.js +6 -0
  49. package/.next/standalone/.next/server/app/api/audit/status/route.js.map +5 -0
  50. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -0
  51. package/.next/standalone/.next/server/app/api/audit/status/route_client-reference-manifest.js +3 -0
  52. package/.next/standalone/.next/server/app/api/auth/login-request/route/app-paths-manifest.json +3 -0
  53. package/.next/standalone/.next/server/app/api/auth/login-request/route/build-manifest.json +9 -0
  54. package/.next/standalone/.next/server/app/api/auth/login-request/route/server-reference-manifest.json +4 -0
  55. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +6 -0
  56. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.map +5 -0
  57. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -0
  58. package/.next/standalone/.next/server/app/api/auth/login-request/route_client-reference-manifest.js +3 -0
  59. package/.next/standalone/.next/server/app/api/auth/login-verify/route/app-paths-manifest.json +3 -0
  60. package/.next/standalone/.next/server/app/api/auth/login-verify/route/build-manifest.json +9 -0
  61. package/.next/standalone/.next/server/app/api/auth/login-verify/route/server-reference-manifest.json +4 -0
  62. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +7 -0
  63. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.map +5 -0
  64. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -0
  65. package/.next/standalone/.next/server/app/api/auth/login-verify/route_client-reference-manifest.js +3 -0
  66. package/.next/standalone/.next/server/app/api/auth/logout/route/app-paths-manifest.json +3 -0
  67. package/.next/standalone/.next/server/app/api/auth/logout/route/build-manifest.json +9 -0
  68. package/.next/standalone/.next/server/app/api/auth/logout/route/server-reference-manifest.json +4 -0
  69. package/.next/standalone/.next/server/app/api/auth/logout/route.js +7 -0
  70. package/.next/standalone/.next/server/app/api/auth/logout/route.js.map +5 -0
  71. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -0
  72. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +3 -0
  73. package/.next/standalone/.next/server/app/api/auth/reminder/route/app-paths-manifest.json +3 -0
  74. package/.next/standalone/.next/server/app/api/auth/reminder/route/build-manifest.json +9 -0
  75. package/.next/standalone/.next/server/app/api/auth/reminder/route/server-reference-manifest.json +4 -0
  76. package/.next/standalone/.next/server/app/api/auth/reminder/route.js +7 -0
  77. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.map +5 -0
  78. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +1 -0
  79. package/.next/standalone/.next/server/app/api/auth/reminder/route_client-reference-manifest.js +3 -0
  80. package/.next/standalone/.next/server/app/api/auth/status/route/app-paths-manifest.json +3 -0
  81. package/.next/standalone/.next/server/app/api/auth/status/route/build-manifest.json +9 -0
  82. package/.next/standalone/.next/server/app/api/auth/status/route/server-reference-manifest.json +4 -0
  83. package/.next/standalone/.next/server/app/api/auth/status/route.js +7 -0
  84. package/.next/standalone/.next/server/app/api/auth/status/route.js.map +5 -0
  85. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -0
  86. package/.next/standalone/.next/server/app/api/auth/status/route_client-reference-manifest.js +3 -0
  87. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +3 -3
  88. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/audit/page/app-paths-manifest.json +3 -0
  90. package/.next/standalone/.next/server/app/audit/page/build-manifest.json +18 -0
  91. package/.next/standalone/.next/server/app/audit/page/next-font-manifest.json +6 -0
  92. package/.next/standalone/.next/server/app/audit/page/react-loadable-manifest.json +1 -0
  93. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +29 -0
  94. package/.next/standalone/.next/server/app/audit/page.js +17 -0
  95. package/.next/standalone/.next/server/app/audit/page.js.map +5 -0
  96. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -0
  97. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +3 -0
  98. package/.next/standalone/.next/server/app/index.html +1 -1
  99. package/.next/standalone/.next/server/app/index.rsc +16 -17
  100. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  101. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -17
  102. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  103. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  104. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -3
  105. package/.next/standalone/.next/server/app/page/build-manifest.json +7 -7
  106. package/.next/standalone/.next/server/app/page/next-font-manifest.json +2 -6
  107. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  108. package/.next/standalone/.next/server/app/page.js +14 -15
  109. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  110. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +7 -7
  112. package/.next/standalone/.next/server/app/policies/page/next-font-manifest.json +2 -6
  113. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  114. package/.next/standalone/.next/server/app/policies/page.js +16 -16
  115. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +7 -7
  118. package/.next/standalone/.next/server/app/project/[name]/page/next-font-manifest.json +2 -6
  119. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  120. package/.next/standalone/.next/server/app/project/[name]/page.js +16 -17
  121. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +7 -7
  124. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/next-font-manifest.json +2 -6
  125. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  126. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  127. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +19 -20
  128. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +7 -7
  131. package/.next/standalone/.next/server/app/projects/page/next-font-manifest.json +2 -6
  132. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  133. package/.next/standalone/.next/server/app/projects/page.js +15 -16
  134. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  135. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app-paths-manifest.json +9 -1
  137. package/.next/standalone/.next/server/chunks/[externals]__14odj07._.js +3 -0
  138. package/.next/standalone/.next/server/chunks/{[externals]__0z0j--b._.js → [externals]__1nl3dvw._.js} +1 -1
  139. package/.next/standalone/.next/server/chunks/{[externals]__0-p9.k~._.js → [externals]__1s61mel._.js} +1 -1
  140. package/.next/standalone/.next/server/chunks/{[externals]_node_os_06ur78j._.js → [externals]_node_os_0by37l-._.js} +1 -1
  141. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0kjo7d_._.js → [root-of-the-server]__0_0xu5z._.js} +2 -2
  142. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cag8qd._.js +3 -0
  143. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0z-180.._.js → [root-of-the-server]__0cycwg6._.js} +2 -2
  144. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__08px0ym._.js → [root-of-the-server]__0f7mikp._.js} +1 -1
  145. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q-v9z2._.js +3 -0
  146. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rv7m0k._.js +3 -0
  147. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0g48iv.._.js → [root-of-the-server]__0sb_5m8._.js} +2 -2
  148. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0j8-xkl._.js → [root-of-the-server]__0xuaoik._.js} +2 -2
  149. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13h8pzr._.js +3 -0
  150. package/.next/standalone/.next/server/chunks/[root-of-the-server]__17g9wh7._.js +3 -0
  151. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1_mqemn._.js +3 -0
  152. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0vlhtkc._.js → [root-of-the-server]__1hgv_75._.js} +1 -1
  153. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0wu7fr7._.js → [root-of-the-server]__1jm9fw6._.js} +1 -1
  154. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1legmza._.js +3 -0
  155. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__044xt9.._.js → [root-of-the-server]__1m2_4t0._.js} +2 -2
  156. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0yfq1yr._.js → [root-of-the-server]__1mhmdzs._.js} +1 -1
  157. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0zso~62._.js → [root-of-the-server]__1ou2ehh._.js} +1 -1
  158. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1qxztj-._.js +3 -0
  159. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1r1h8v9._.js +3 -0
  160. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1rhmvod._.js +3 -0
  161. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1uatkiv._.js +3 -0
  162. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0.~nmr9._.js → [root-of-the-server]__1w9zl9-._.js} +1 -1
  163. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1y6gxxb._.js +3 -0
  164. package/.next/standalone/.next/server/chunks/{_0ebx_lc._.js → _0p53ge1._.js} +2 -2
  165. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_audit_invite_route_actions_0-2n5sy.js +3 -0
  166. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_audit_run_route_actions_1qgp9io.js +3 -0
  167. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_audit_status_route_actions_1f7pjof.js +3 -0
  168. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_login-request_route_actions_1c49co0.js +3 -0
  169. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_login-verify_route_actions_1r3slzk.js +3 -0
  170. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_logout_route_actions_0regwyr.js +3 -0
  171. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_reminder_route_actions_1kjgxf8.js +3 -0
  172. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_status_route_actions_1aho9zu.js +3 -0
  173. package/.next/standalone/.next/server/chunks/{_next-internal_server_app_api_download_[project]_[session]_route_actions_0wb00i-.js → _next-internal_server_app_api_download_[project]_[session]_route_actions_1is7vs7.js} +1 -1
  174. package/.next/standalone/.next/server/chunks/{lib_logger_ts_047tt9f._.js → lib_logger_ts_07e65t5._.js} +1 -1
  175. package/.next/standalone/.next/server/chunks/node_modules_0-tu4ot._.js +3 -0
  176. package/.next/standalone/.next/server/chunks/node_modules_0ttxbz7._.js +3 -0
  177. package/.next/standalone/.next/server/chunks/node_modules_1bnh1y0._.js +3 -0
  178. package/.next/standalone/.next/server/chunks/node_modules_1epycqa._.js +3 -0
  179. package/.next/standalone/.next/server/chunks/node_modules_1wpdcgo._.js +3 -0
  180. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_17k9e3w.js +23 -0
  181. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +3 -0
  182. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +3 -0
  183. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +3 -0
  184. package/.next/standalone/.next/server/chunks/ssr/{[externals]__12dv.x0._.js → [externals]__1_g_b3t._.js} +1 -1
  185. package/.next/standalone/.next/server/chunks/ssr/{[externals]_node_async_hooks_0v0ln8c._.js → [externals]_node_async_hooks_1gjz99j._.js} +1 -1
  186. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01tn1ou._.js +3 -0
  187. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0808sha._.js +4 -0
  188. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e4-6d8._.js +4 -0
  189. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ehe24g._.js +4 -0
  190. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f62vu9._.js +3 -0
  191. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g253ve._.js +4 -0
  192. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h12me5._.js +3 -0
  193. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0k65l27._.js +3 -0
  194. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vxf0_g._.js +4 -0
  195. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11rtg6s._.js +3 -0
  196. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12mcauo._.js +4 -0
  197. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__14dd6h8._.js +3 -0
  198. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0t5l7a5._.js → [root-of-the-server]__1d8omgc._.js} +1 -1
  199. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__10xgshr._.js → [root-of-the-server]__1dky4g0._.js} +2 -2
  200. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1e-x7j4._.js +3 -0
  201. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1fax1sl._.js +19 -0
  202. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1mt35_w._.js +221 -0
  203. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pcxxwg._.js +4 -0
  204. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1usf8v2._.js +3 -0
  205. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1uvfwgr._.js +4 -0
  206. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1w6v_1u._.js +3 -0
  207. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__212nf49._.js +3 -0
  208. package/.next/standalone/.next/server/chunks/ssr/{_03d7qyt._.js → _05whahf._.js} +2 -2
  209. package/.next/standalone/.next/server/chunks/ssr/_0il3fl1._.js +3 -0
  210. package/.next/standalone/.next/server/chunks/ssr/_11_p9y8._.js +3 -0
  211. package/.next/standalone/.next/server/chunks/ssr/{_0xb8ngh._.js → _1kje4fm._.js} +1 -1
  212. package/.next/standalone/.next/server/chunks/ssr/{_0zx~s__._.js → _1p0-leb._.js} +1 -1
  213. package/.next/standalone/.next/server/chunks/ssr/{app_04qfs8z._.js → app_087bt9w._.js} +1 -1
  214. package/.next/standalone/.next/server/chunks/ssr/{app_0uosk1e._.js → app_1fvisnp._.js} +1 -1
  215. package/.next/standalone/.next/server/chunks/ssr/{app_13f0ohr._.js → app_209u41o._.js} +1 -1
  216. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +65 -0
  217. package/.next/standalone/.next/server/chunks/ssr/app_audit_loading_tsx_1j1kc6j._.js +3 -0
  218. package/.next/standalone/.next/server/chunks/ssr/{app_error_tsx_11t4ysq._.js → app_error_tsx_1zds1ns._.js} +1 -1
  219. package/.next/standalone/.next/server/chunks/ssr/{app_global-error_tsx_0m9qisk._.js → app_global-error_tsx_113y3za._.js} +1 -1
  220. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +3 -0
  221. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +8 -0
  222. package/.next/standalone/.next/server/chunks/ssr/{app_project_[name]_error_tsx_0.9-fod._.js → app_project_[name]_error_tsx_1v02_5n._.js} +1 -1
  223. package/.next/standalone/.next/server/chunks/ssr/{app_project_[name]_loading_tsx_03g9xy0._.js → app_project_[name]_loading_tsx_05-l4uf._.js} +1 -1
  224. package/.next/standalone/.next/server/chunks/ssr/{app_project_[name]_session_[sessionId]_error_tsx_0ler-mr._.js → app_project_[name]_session_[sessionId]_error_tsx_0-lj3nd._.js} +1 -1
  225. package/.next/standalone/.next/server/chunks/ssr/{app_project_[name]_session_[sessionId]_loading_tsx_0c0e3yx._.js → app_project_[name]_session_[sessionId]_loading_tsx_0l4aixs._.js} +1 -1
  226. package/.next/standalone/.next/server/chunks/ssr/app_projects_loading_tsx_20-3u8b._.js +3 -0
  227. package/.next/standalone/.next/server/chunks/ssr/{lib_codex-projects_ts_0eosib~._.js → lib_codex-projects_ts_0pqlw37._.js} +1 -1
  228. package/.next/standalone/.next/server/chunks/ssr/{lib_copilot-projects_ts_0r8xkn8._.js → lib_copilot-projects_ts_19wl7tp._.js} +1 -1
  229. package/.next/standalone/.next/server/chunks/ssr/{lib_cursor-projects_ts_0qt1scg._.js → lib_cursor-projects_ts_18-iwyk._.js} +1 -1
  230. package/.next/standalone/.next/server/chunks/ssr/{lib_gemini-projects_ts_0sl~yqr._.js → lib_gemini-projects_ts_1c7bgx-._.js} +1 -1
  231. package/.next/standalone/.next/server/chunks/ssr/{lib_opencode-projects_ts_0op9gyp._.js → lib_opencode-projects_ts_15bjxkm._.js} +1 -1
  232. package/.next/standalone/.next/server/chunks/ssr/{lib_pi-projects_ts_103tsh1._.js → lib_pi-projects_ts_1wikofb._.js} +1 -1
  233. package/.next/standalone/.next/server/chunks/ssr/lib_utils_ts_0az0sfq._.js +3 -0
  234. package/.next/standalone/.next/server/chunks/ssr/node_modules_1ynf7el._.js +3 -0
  235. package/.next/standalone/.next/server/chunks/ssr/node_modules_html-to-image_es_index_0nye1s3.js +3 -0
  236. package/.next/standalone/.next/server/chunks/ssr/node_modules_html-to-image_es_index_1ao30b1.js +3 -0
  237. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_0rd0oc-._.js → node_modules_next_1a1kch7._.js} +1 -1
  238. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js +6 -0
  239. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_11dij6w._.js → node_modules_next_dist_1d_onnt._.js} +2 -2
  240. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_client_components_0inhx6q._.js → node_modules_next_dist_client_components_0wpq8j3._.js} +1 -1
  241. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js → node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js} +1 -1
  242. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js → node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js} +1 -1
  243. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-uvagv.js +4 -0
  244. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03c7gi5.js +4 -0
  245. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09p-8om.js +4 -0
  246. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0v-kfiu.js +4 -0
  247. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xrgzyz.js +4 -0
  248. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1806lsc.js +4 -0
  249. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1j6dd-e.js +4 -0
  250. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1sa65r-.js +4 -0
  251. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +3 -0
  252. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1ezd2jf._.js +5 -0
  253. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1tnuifj._.js +5 -0
  254. package/.next/standalone/.next/server/functions-config-manifest.json +2 -2
  255. package/.next/standalone/.next/server/instrumentation.js +1 -1
  256. package/.next/standalone/.next/server/middleware-build-manifest.js +10 -10
  257. package/.next/standalone/.next/server/middleware.js +2 -2
  258. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  259. package/.next/standalone/.next/server/next-font-manifest.json +2 -21
  260. package/.next/standalone/.next/server/pages/404.html +1 -1
  261. package/.next/standalone/.next/server/pages/500.html +1 -1
  262. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  263. package/.next/standalone/.next/server/server-reference-manifest.json +27 -9
  264. package/.next/standalone/.next/static/{dAuQps6jUwCz9X1Q5FFOO → DOSSF5hRUtt3-QZEm-ZIk}/_clientMiddlewareManifest.js +2 -2
  265. package/.next/standalone/.next/static/chunks/{0pkl..xgo-qox.js → 02e80j0576qfu.js} +1 -1
  266. package/.next/standalone/.next/static/chunks/{07uz2g0_38qia.js → 03fmihek9n986.js} +1 -1
  267. package/.next/standalone/.next/static/chunks/0f7d7hnbh4djs.js +1 -0
  268. package/.next/standalone/.next/static/chunks/0h7auy7hzjyhw.js +1 -0
  269. package/.next/standalone/.next/static/chunks/0wwt5o04i4zwh.js +1 -0
  270. package/.next/standalone/.next/static/chunks/0zbxssxh53n-3.js +1 -0
  271. package/.next/standalone/.next/static/chunks/13f1kmjea-0md.js +2 -0
  272. package/.next/standalone/.next/static/chunks/13xzda05yw19e.js +1 -0
  273. package/.next/standalone/.next/static/chunks/{150i0n26fnvso.js → 1__i9af9g78vd.js} +1 -1
  274. package/.next/standalone/.next/static/chunks/1uxa5lm6yco79.js +1 -0
  275. package/.next/standalone/.next/static/chunks/20dqelk3xz_ya.css +1 -0
  276. package/.next/standalone/.next/static/chunks/{0j171xiqge4rv.js → 29lzaddhez98q.js} +1 -1
  277. package/.next/standalone/.next/static/chunks/29nrs5xs9c4hx.css +2 -0
  278. package/.next/standalone/.next/static/chunks/{0lt8ko3lw.5yt.js → 2b_e9tyly10lo.js} +1 -1
  279. package/.next/standalone/.next/static/chunks/{0rnqmir4cd5p9.js → 2h0dkzyy0vocp.js} +1 -1
  280. package/.next/standalone/.next/static/chunks/2lp3a3a3_4_9o.js +63 -0
  281. package/.next/standalone/.next/static/chunks/{179yytvmam0ug.js → 2nt_slonrn0rw.js} +1 -1
  282. package/.next/standalone/.next/static/chunks/2plcgtv_tkv9t.js +1 -0
  283. package/.next/standalone/.next/static/chunks/33k2epr1iz8_z.js +6 -0
  284. package/.next/standalone/.next/static/chunks/{0d3shmwh5_nmn.js → 33u59vf_8xpd-.js} +1 -1
  285. package/.next/standalone/.next/static/chunks/3zkg2s2vzxc3d.js +1 -0
  286. package/.next/standalone/.next/static/chunks/{turbopack-05z7a19q43zfq.js → turbopack-3lrm4f20fz89b.js} +1 -1
  287. package/.next/standalone/SECURITY.md +73 -0
  288. package/.next/standalone/app/actions/get-audit-result.ts +35 -0
  289. package/.next/standalone/app/api/audit/_state.ts +79 -0
  290. package/.next/standalone/app/api/audit/invite/route.ts +183 -0
  291. package/.next/standalone/app/api/audit/run/route.ts +103 -0
  292. package/.next/standalone/app/api/audit/status/route.ts +24 -0
  293. package/.next/standalone/app/api/auth/login-request/route.ts +91 -0
  294. package/.next/standalone/app/api/auth/login-verify/route.ts +98 -0
  295. package/.next/standalone/app/api/auth/logout/route.ts +48 -0
  296. package/.next/standalone/app/api/auth/reminder/route.ts +213 -0
  297. package/.next/standalone/app/api/auth/status/route.ts +42 -0
  298. package/.next/standalone/app/audit/_components/audit-dashboard.tsx +397 -0
  299. package/.next/standalone/app/audit/_components/audit-poster.tsx +326 -0
  300. package/.next/standalone/app/audit/_components/audit-progress-strip.tsx +98 -0
  301. package/.next/standalone/app/audit/_components/auth-dialog.tsx +375 -0
  302. package/.next/standalone/app/audit/_components/come-back-better-section.tsx +333 -0
  303. package/.next/standalone/app/audit/_components/empty-state.tsx +152 -0
  304. package/.next/standalone/app/audit/_components/how-to-improve-section.tsx +187 -0
  305. package/.next/standalone/app/audit/_components/invite-dialog.tsx +227 -0
  306. package/.next/standalone/app/audit/_components/quirks-section.tsx +75 -0
  307. package/.next/standalone/app/audit/_components/report-footer.tsx +35 -0
  308. package/.next/standalone/app/audit/_components/rerun-button.tsx +119 -0
  309. package/.next/standalone/app/audit/_components/run-progress.tsx +120 -0
  310. package/.next/standalone/app/audit/_components/share-templates.ts +94 -0
  311. package/.next/standalone/app/audit/_components/sigil.tsx +36 -0
  312. package/.next/standalone/app/audit/_components/strengths-section.tsx +45 -0
  313. package/.next/standalone/app/audit/audit-styles.css +1178 -0
  314. package/.next/standalone/app/audit/loading.tsx +24 -0
  315. package/.next/standalone/app/audit/page.tsx +63 -0
  316. package/.next/standalone/app/components/sessions-list.tsx +77 -80
  317. package/.next/standalone/app/globals.css +754 -139
  318. package/.next/standalone/app/layout.tsx +6 -8
  319. package/.next/standalone/app/policies/hooks-client.tsx +340 -141
  320. package/.next/standalone/app/project/[name]/page.tsx +31 -37
  321. package/.next/standalone/app/projects/loading.tsx +30 -8
  322. package/.next/standalone/app/projects/page.tsx +66 -17
  323. package/.next/standalone/assets/audit/Audit Report.html +22 -0
  324. package/.next/standalone/assets/audit/Show Off Your Agent.html +22 -0
  325. package/.next/standalone/assets/audit/archetypes.jsx +277 -0
  326. package/.next/standalone/assets/audit/assets/fonts/bitcount-prop-single.woff2 +0 -0
  327. package/.next/standalone/assets/audit/audit.jsx +825 -0
  328. package/.next/standalone/assets/audit/poster-styles.css +424 -0
  329. package/.next/standalone/assets/audit/poster.jsx +247 -0
  330. package/.next/standalone/assets/audit/screenshots/poster-optimist.png +0 -0
  331. package/.next/standalone/assets/audit/screenshots/poster-scrolled.png +0 -0
  332. package/.next/standalone/assets/audit/styles.css +1225 -0
  333. package/.next/standalone/assets/audit/tweaks-panel.jsx +425 -0
  334. package/.next/standalone/assets/logos/company/icon.svg +1 -0
  335. package/.next/standalone/assets/logos/company/logo.svg +1 -0
  336. package/.next/standalone/components/navbar.tsx +119 -65
  337. package/.next/standalone/components/reach-developers.tsx +39 -11
  338. package/.next/standalone/lib/atomic-write.ts +67 -0
  339. package/.next/standalone/lib/auth/api-server-client.ts +306 -0
  340. package/.next/standalone/lib/auth/auth-store.ts +250 -0
  341. package/.next/standalone/lib/claude-sessions.ts +181 -0
  342. package/.next/standalone/lib/client-telemetry.ts +2 -0
  343. package/.next/standalone/lib/fetch-with-timeout.ts +59 -0
  344. package/.next/standalone/lib/share-card.ts +144 -0
  345. package/.next/standalone/lib/telemetry.ts +12 -7
  346. package/.next/standalone/node_modules/@next/env/package.json +2 -2
  347. package/.next/standalone/node_modules/next/dist/build/static-paths/app.js +2 -1
  348. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  349. package/.next/standalone/node_modules/next/dist/build/utils.js +2 -1
  350. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +2 -2
  351. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +8 -2
  352. package/.next/standalone/node_modules/next/dist/client/dev/debug-channel.js +102 -2
  353. package/.next/standalone/node_modules/next/dist/client/route-params.js +23 -6
  354. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +13 -13
  355. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +13 -13
  356. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +2 -2
  357. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +10 -10
  358. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  359. package/.next/standalone/node_modules/next/dist/server/app-render/action-handler.js +21 -14
  360. package/.next/standalone/node_modules/next/dist/server/app-render/app-render.js +62 -9
  361. package/.next/standalone/node_modules/next/dist/server/app-render/collect-segment-data.js +16 -0
  362. package/.next/standalone/node_modules/next/dist/server/app-render/create-component-tree.js +49 -19
  363. package/.next/standalone/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +8 -20
  364. package/.next/standalone/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +8 -7
  365. package/.next/standalone/node_modules/next/dist/server/app-render/use-flight-response.js +2 -2
  366. package/.next/standalone/node_modules/next/dist/server/async-storage/work-store.js +2 -1
  367. package/.next/standalone/node_modules/next/dist/server/base-server.js +13 -5
  368. package/.next/standalone/node_modules/next/dist/server/config-schema.js +1 -0
  369. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  370. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  371. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  372. package/.next/standalone/node_modules/next/dist/server/dev/static-paths-worker.js +2 -1
  373. package/.next/standalone/node_modules/next/dist/server/image-optimizer.js +22 -2
  374. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  375. package/.next/standalone/node_modules/next/dist/server/lib/encode-cache-tag.js +45 -0
  376. package/.next/standalone/node_modules/next/dist/server/lib/implicit-tags.js +6 -3
  377. package/.next/standalone/node_modules/next/dist/server/lib/is-rsc-request.js +18 -0
  378. package/.next/standalone/node_modules/next/dist/server/lib/mock-request.js +30 -5
  379. package/.next/standalone/node_modules/next/dist/server/lib/patch-fetch.js +5 -1
  380. package/.next/standalone/node_modules/next/dist/server/lib/patch-set-header.js +7 -0
  381. package/.next/standalone/node_modules/next/dist/server/lib/router-server.js +6 -3
  382. package/.next/standalone/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +18 -4
  383. package/.next/standalone/node_modules/next/dist/server/lib/server-ipc/utils.js +3 -1
  384. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  385. package/.next/standalone/node_modules/next/dist/server/next-server.js +1 -1
  386. package/.next/standalone/node_modules/next/dist/server/request/fallback-params.js +27 -1
  387. package/.next/standalone/node_modules/next/dist/server/route-modules/app-route/module.js +1 -0
  388. package/.next/standalone/node_modules/next/dist/server/route-modules/route-module.js +11 -1
  389. package/.next/standalone/node_modules/next/dist/server/server-utils.js +19 -2
  390. package/.next/standalone/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +5 -5
  391. package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
  392. package/.next/standalone/node_modules/next/dist/server/web/adapter.js +4 -1
  393. package/.next/standalone/node_modules/next/dist/server/web/edge-route-module-wrapper.js +2 -1
  394. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/revalidate.js +4 -3
  395. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +6 -2
  396. package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  397. package/.next/standalone/node_modules/next/dist/{server → shared/lib}/htmlescape.js +15 -0
  398. package/.next/standalone/node_modules/next/dist/shared/lib/router/routes/app.js +13 -1
  399. package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +56 -10
  400. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  401. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  402. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  403. package/.next/standalone/node_modules/next/package.json +15 -15
  404. package/.next/standalone/node_modules/react/cjs/react.development.js +1 -1
  405. package/.next/standalone/node_modules/react/cjs/react.production.js +1 -1
  406. package/.next/standalone/node_modules/react/package.json +1 -1
  407. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
  408. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
  409. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
  410. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
  411. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
  412. package/.next/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
  413. package/.next/standalone/node_modules/react-dom/package.json +2 -2
  414. package/.next/standalone/osv-scanner.toml +17 -0
  415. package/.next/standalone/package.json +26 -18
  416. package/.next/standalone/proxy.ts +1 -1
  417. package/.next/standalone/public/audit/fonts/bitcount-prop-single.woff2 +0 -0
  418. package/.next/standalone/public/icon.svg +1 -0
  419. package/.next/standalone/public/logo.svg +1 -0
  420. package/.next/standalone/server.js +1 -1
  421. package/.next/standalone/templates/bitcount-font/README.md +42 -0
  422. package/.next/standalone/templates/bitcount-font/bitcount-prop-single.woff2 +0 -0
  423. package/.next/standalone/templates/bitcount-font/bitcount.css +49 -0
  424. package/.next/standalone/templates/bitcount-font/fonts.ts.example +23 -0
  425. package/README.md +12 -5
  426. package/bin/failproofai.mjs +263 -70
  427. package/dist/cli.mjs +3830 -1617
  428. package/lib/atomic-write.ts +67 -0
  429. package/lib/auth/api-server-client.ts +306 -0
  430. package/lib/auth/auth-store.ts +250 -0
  431. package/lib/claude-sessions.ts +181 -0
  432. package/lib/client-telemetry.ts +2 -0
  433. package/lib/fetch-with-timeout.ts +59 -0
  434. package/lib/share-card.ts +144 -0
  435. package/lib/telemetry.ts +12 -7
  436. package/package.json +26 -18
  437. package/scripts/install-telemetry.mjs +4 -0
  438. package/scripts/launch.ts +2 -2
  439. package/scripts/postinstall.mjs +89 -1
  440. package/src/audit/archetypes.ts +944 -0
  441. package/src/audit/cache.ts +151 -0
  442. package/src/audit/cli-adapters/claude.ts +97 -0
  443. package/src/audit/cli-adapters/codex.ts +56 -0
  444. package/src/audit/cli-adapters/copilot.ts +51 -0
  445. package/src/audit/cli-adapters/cursor.ts +51 -0
  446. package/src/audit/cli-adapters/gemini.ts +51 -0
  447. package/src/audit/cli-adapters/index.ts +70 -0
  448. package/src/audit/cli-adapters/opencode.ts +52 -0
  449. package/src/audit/cli-adapters/pi.ts +51 -0
  450. package/src/audit/cli-adapters/shared.ts +85 -0
  451. package/src/audit/cli.ts +319 -0
  452. package/src/audit/dashboard-cache.ts +158 -0
  453. package/src/audit/detectors/find-from-root.ts +27 -0
  454. package/src/audit/detectors/git-commit-no-verify.ts +22 -0
  455. package/src/audit/detectors/index.ts +33 -0
  456. package/src/audit/detectors/prefer-edit-over-read-cat.ts +31 -0
  457. package/src/audit/detectors/prefer-edit-over-sed-awk.ts +27 -0
  458. package/src/audit/detectors/prefer-write-over-heredoc.ts +36 -0
  459. package/src/audit/detectors/redundant-cd-cwd.ts +28 -0
  460. package/src/audit/detectors/reread-after-edit.ts +58 -0
  461. package/src/audit/detectors/sleep-polling-loop.ts +34 -0
  462. package/src/audit/features.ts +314 -0
  463. package/src/audit/findings.ts +298 -0
  464. package/src/audit/index.ts +387 -0
  465. package/src/audit/open-browser.ts +69 -0
  466. package/src/audit/replay.ts +147 -0
  467. package/src/audit/report.ts +349 -0
  468. package/src/audit/scoring.ts +174 -0
  469. package/src/audit/social-proof.ts +34 -0
  470. package/src/audit/strengths.ts +138 -0
  471. package/src/audit/types.ts +216 -0
  472. package/src/auth/cli.ts +359 -0
  473. package/src/hooks/builtin-policies.ts +81 -2
  474. package/src/hooks/custom-hooks-loader.ts +19 -3
  475. package/src/hooks/first-run-nudge.ts +146 -0
  476. package/src/hooks/handler.ts +21 -102
  477. package/src/hooks/hook-telemetry.ts +2 -2
  478. package/src/hooks/install-prompt.ts +34 -4
  479. package/src/hooks/manager.ts +72 -5
  480. package/src/hooks/policy-evaluator.ts +19 -4
  481. package/src/hooks/policy-registry.ts +21 -1
  482. package/src/hooks/policy-types.ts +9 -0
  483. package/src/hooks/tool-name-canonicalize.ts +65 -0
  484. package/src/posthog-key.ts +9 -0
  485. package/.next/standalone/.next/server/app/icon.png/route/app-paths-manifest.json +0 -3
  486. package/.next/standalone/.next/server/app/icon.png/route.js +0 -7
  487. package/.next/standalone/.next/server/app/icon.png/route.js.nft.json +0 -1
  488. package/.next/standalone/.next/server/app/icon.png.body +0 -0
  489. package/.next/standalone/.next/server/app/icon.png.meta +0 -1
  490. package/.next/standalone/.next/server/chunks/[externals]_next_dist_0sqmaqd._.js +0 -3
  491. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06.arfm._.js +0 -3
  492. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0__i0h0._.js +0 -3
  493. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d_ob4n._.js +0 -3
  494. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fe7_q_._.js +0 -3
  495. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fw.e.h._.js +0 -3
  496. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pxn0e1._.js +0 -3
  497. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xv0jh2._.js +0 -3
  498. package/.next/standalone/.next/server/chunks/_next-internal_server_app_icon_png_route_actions_12.gv.r.js +0 -3
  499. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0bdfoky.js +0 -3
  500. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_05pz9._._.js +0 -3
  501. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +0 -3
  502. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02r.cjq._.js +0 -3
  503. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0370~qj._.js +0 -3
  504. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0609ezh._.js +0 -3
  505. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07_-mkc._.js +0 -3
  506. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09z7o2x._.js +0 -19
  507. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0_sh2n0._.js +0 -3
  508. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e9o9ri._.js +0 -4
  509. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l6swv1._.js +0 -3
  510. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0logebz._.js +0 -3
  511. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0mi5ejy._.js +0 -4
  512. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0odijkc._.js +0 -3
  513. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0podumr._.js +0 -4
  514. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rkxer-._.js +0 -3
  515. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rl2kwi._.js +0 -4
  516. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vg0uey._.js +0 -4
  517. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0x5limi._.js +0 -3
  518. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ye1w50._.js +0 -4
  519. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ymlddl._.js +0 -223
  520. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__10._f0s._.js +0 -4
  521. package/.next/standalone/.next/server/chunks/ssr/app_0cdqd9w._.js +0 -3
  522. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +0 -3
  523. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +0 -8
  524. package/.next/standalone/.next/server/chunks/ssr/app_projects_loading_tsx_13veom4._.js +0 -3
  525. package/.next/standalone/.next/server/chunks/ssr/lib_utils_ts_068jk73._.js +0 -3
  526. package/.next/standalone/.next/server/chunks/ssr/node_modules_0ttbz1~._.js +0 -3
  527. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_06u0kr8._.js +0 -3
  528. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js +0 -6
  529. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a_7sdg.js +0 -4
  530. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ef3uwk.js +0 -4
  531. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j79~gv.js +0 -4
  532. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pbja1x.js +0 -4
  533. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0r6o0i2.js +0 -4
  534. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11y81~_.js +0 -4
  535. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12or2kf.js +0 -4
  536. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js +0 -3
  537. package/.next/standalone/.next/static/chunks/01q52wg_amm60.js +0 -2
  538. package/.next/standalone/.next/static/chunks/0kqar56yl~41o.js +0 -6
  539. package/.next/standalone/.next/static/chunks/0ml1.ck_5t36i.js +0 -1
  540. package/.next/standalone/.next/static/chunks/0w6fzf.07a24u.js +0 -1
  541. package/.next/standalone/.next/static/chunks/0zig0fh30t6ou.js +0 -1
  542. package/.next/standalone/.next/static/chunks/12l2t63hkyo2q.js +0 -1
  543. package/.next/standalone/.next/static/chunks/12pt~2f.c1sha.js +0 -1
  544. package/.next/standalone/.next/static/chunks/14lii11wmo450.js +0 -4
  545. package/.next/standalone/.next/static/chunks/17rm86uz2nd5a.css +0 -2
  546. package/.next/standalone/.next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
  547. package/.next/standalone/.next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
  548. package/.next/standalone/.next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
  549. package/.next/standalone/.next/static/media/icon.0a.gigb3_x5pd.png +0 -0
  550. package/.next/standalone/app/icon.png +0 -0
  551. package/src/auth/login.ts +0 -104
  552. package/src/auth/logout.ts +0 -50
  553. package/src/auth/token-store.ts +0 -64
  554. package/src/relay/daemon.ts +0 -362
  555. package/src/relay/pid.ts +0 -76
  556. package/src/relay/queue.ts +0 -225
  557. /package/.next/standalone/.next/server/app/{icon.png → api/audit/invite}/route/build-manifest.json +0 -0
  558. /package/.next/standalone/.next/server/app/{icon.png → api/audit/invite}/route.js.map +0 -0
  559. /package/.next/standalone/.next/static/{dAuQps6jUwCz9X1Q5FFOO → DOSSF5hRUtt3-QZEm-ZIk}/_buildManifest.js +0 -0
  560. /package/.next/standalone/.next/static/{dAuQps6jUwCz9X1Q5FFOO → DOSSF5hRUtt3-QZEm-ZIk}/_ssgManifest.js +0 -0
  561. /package/.next/standalone/.next/static/chunks/{03~yq9q893hmn.js → 0cz1d0mv5g_q7.js} +0 -0
  562. /package/.next/standalone/.next/static/chunks/{0xbo5nl6w4lka.js → 2wbuxnsvux4di.js} +0 -0
  563. /package/.next/standalone/.next/static/chunks/{0_s0luks5tay-.js → 35fgpd_feci6x.js} +0 -0
  564. /package/.next/standalone/.next/static/chunks/{15fklyav5py5m.js → 3xpjn3cdgm-7m.js} +0 -0
  565. /package/.next/standalone/.next/static/chunks/{17.b3suj8zjjj.js → 4448_qq7bd963.js} +0 -0
@@ -0,0 +1,1178 @@
1
+ /* ============================================================
2
+ failproof_ai — audit-page-specific styles
3
+ Brutalist pixel-craft, /audit-only widgets.
4
+ Site-wide tokens, fonts, body atmosphere, .app-header / .btn /
5
+ .tab / .section / .panel / .report all moved to globals.css
6
+ so they apply everywhere (and no longer leak when navigating
7
+ away from /audit back to /policies or /projects).
8
+ ============================================================ */
9
+
10
+
11
+ /* ───────────────────────── 00 EMPTY + RUNNING (full-page states) ───────────────────────── */
12
+
13
+ .empty-section, .running-section { padding-top: 80px; padding-bottom: 96px; }
14
+
15
+ .empty-panel, .running-panel {
16
+ padding: 48px 56px;
17
+ display: flex; flex-direction: column;
18
+ background: var(--bg-2);
19
+ border: 1px solid var(--line-2);
20
+ }
21
+
22
+ .empty-glyph { align-self: center; text-align: center; margin-bottom: 28px; }
23
+ .empty-glyph-grid {
24
+ display: grid;
25
+ grid-template-columns: repeat(6, 14px);
26
+ grid-template-rows: repeat(6, 14px);
27
+ gap: 3px;
28
+ padding: 16px;
29
+ border: 1px solid var(--line-2);
30
+ background: var(--bg);
31
+ margin: 0 auto 14px;
32
+ }
33
+ .empty-glyph-grid .px { background: transparent; }
34
+ .empty-glyph-grid .px.on { background: var(--accent-pink); }
35
+ .empty-glyph-label {
36
+ font-family: var(--font-mono); font-size: 11px;
37
+ letter-spacing: 0.22em; text-transform: uppercase;
38
+ color: var(--dim);
39
+ }
40
+
41
+ .empty-headline {
42
+ font-family: var(--font-display);
43
+ font-size: clamp(32px, 4.6vw, 48px);
44
+ letter-spacing: 0.1em; line-height: 1.05;
45
+ text-transform: lowercase;
46
+ color: var(--ink);
47
+ margin: 0 0 16px;
48
+ text-wrap: balance;
49
+ text-align: center;
50
+ }
51
+ .empty-sub {
52
+ font-family: var(--font-mono); font-size: 14px;
53
+ line-height: 1.65; color: var(--ink-2);
54
+ max-width: 580px;
55
+ margin: 0 auto 32px;
56
+ text-align: center;
57
+ }
58
+
59
+ .empty-actions {
60
+ display: flex; flex-direction: column; align-items: center;
61
+ gap: 12px;
62
+ }
63
+ .empty-cta {
64
+ padding: 12px 24px;
65
+ font-size: 14px;
66
+ letter-spacing: 0.08em;
67
+ text-decoration: none;
68
+ }
69
+ .empty-meta {
70
+ font-family: var(--font-mono); font-size: 11px;
71
+ letter-spacing: 0.15em; text-transform: uppercase;
72
+ color: var(--dim);
73
+ }
74
+
75
+ .running-panel { padding: 36px 40px; }
76
+ .running-header {
77
+ display: flex; align-items: center; gap: 10px;
78
+ padding-bottom: 18px;
79
+ border-bottom: 1px dashed var(--line);
80
+ margin-bottom: 22px;
81
+ font-family: var(--font-mono); font-size: 13px;
82
+ }
83
+ .running-prompt { color: var(--accent-green); }
84
+ .running-cmd { color: var(--ink); letter-spacing: 0.02em; }
85
+ .running-cursor {
86
+ color: var(--accent-pink);
87
+ margin-left: 4px;
88
+ animation: cursor-blink 900ms steps(2, end) infinite;
89
+ }
90
+ @keyframes cursor-blink { 50% { opacity: 0; } }
91
+
92
+ .running-stages {
93
+ list-style: none; padding: 0; margin: 0 0 28px;
94
+ display: flex; flex-direction: column;
95
+ }
96
+ .running-stage {
97
+ display: grid;
98
+ grid-template-columns: 28px 1fr auto;
99
+ gap: 14px; align-items: start;
100
+ padding: 12px 0;
101
+ border-bottom: 1px dashed var(--line);
102
+ font-family: var(--font-mono);
103
+ }
104
+ .running-stage:last-child { border-bottom: none; }
105
+ .running-marker {
106
+ font-family: var(--font-mono); font-size: 12px;
107
+ letter-spacing: -1px;
108
+ margin-top: 1px;
109
+ }
110
+ .running-stage.queued { color: var(--dim); }
111
+ .running-stage.queued .running-marker { color: var(--line-2); }
112
+ .running-stage.active { color: var(--ink); }
113
+ .running-stage.active .running-marker { color: var(--accent-pink); }
114
+ .running-stage.done { color: var(--ink-2); }
115
+ .running-stage.done .running-marker { color: var(--accent-green); }
116
+ .running-stage.done .running-stage-label {
117
+ text-decoration: line-through;
118
+ text-decoration-color: var(--line-2);
119
+ }
120
+ .running-stage-label { font-size: 13px; letter-spacing: 0.04em; }
121
+ .running-stage-detail {
122
+ font-size: 11px; color: var(--ink-2);
123
+ letter-spacing: 0.02em;
124
+ margin-top: 4px;
125
+ }
126
+ .running-stage-spin {
127
+ font-family: var(--font-mono); font-size: 16px;
128
+ color: var(--accent-pink);
129
+ align-self: center;
130
+ animation: spin-step 700ms steps(4, end) infinite;
131
+ }
132
+ @keyframes spin-step { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
133
+
134
+ .running-bar-label {
135
+ display: flex; justify-content: space-between;
136
+ font-family: var(--font-mono); font-size: 10px;
137
+ letter-spacing: 0.22em; text-transform: uppercase;
138
+ color: var(--ink-2);
139
+ margin-bottom: 8px;
140
+ }
141
+ .running-bar-track {
142
+ position: relative;
143
+ height: 6px; background: var(--bg);
144
+ border: 1px solid var(--line);
145
+ overflow: hidden;
146
+ }
147
+ .running-bar-fill {
148
+ position: relative;
149
+ height: 100%;
150
+ background: linear-gradient(90deg, var(--accent-pink) 0%, #e89aaf 100%);
151
+ transition: width 600ms cubic-bezier(0.22, 1, 0.36, 1);
152
+ }
153
+ .running-bar-fill::after {
154
+ content: "";
155
+ position: absolute; inset: 0;
156
+ background: linear-gradient(
157
+ 90deg,
158
+ transparent 0%, transparent 40%,
159
+ rgba(255,255,255,0.35) 50%,
160
+ transparent 60%, transparent 100%
161
+ );
162
+ animation: bar-shine 1600ms linear infinite;
163
+ }
164
+ @keyframes bar-shine {
165
+ from { transform: translateX(-100%); }
166
+ to { transform: translateX(100%); }
167
+ }
168
+
169
+ .running-foot {
170
+ margin-top: 22px;
171
+ font-family: var(--font-mono); font-size: 11px;
172
+ letter-spacing: 0.05em;
173
+ color: var(--dim);
174
+ text-align: center;
175
+ }
176
+
177
+ @media (max-width: 720px) {
178
+ .empty-panel, .running-panel { padding: 32px 24px; }
179
+ }
180
+
181
+ /* ───────────────────────── audit page shell ───────────────────────── */
182
+
183
+ /* the audit page intentionally runs narrower than the global .report — the
184
+ archetype hero, findings cards, and score-share card are tuned for a
185
+ ~1400px-max layout where the headline line measure stays "billboard"
186
+ tight. On a 2400px+ monitor we still want to break out of the 1180px
187
+ feel that used to leave too much black on both flanks; clamp up to
188
+ 1480px and let `.archetype-frame` cap itself further so the hero doesn't
189
+ stretch past its compositional break-point. */
190
+ .report {
191
+ width: 100%;
192
+ max-width: clamp(720px, 92vw, 1480px);
193
+ margin: 0 auto;
194
+ padding: 0 clamp(20px, 3vw, 48px);
195
+ }
196
+
197
+ .section {
198
+ padding: 64px 0;
199
+ border-bottom: 1px solid var(--line);
200
+ position: relative;
201
+ }
202
+ .section:last-child { border-bottom: none; }
203
+
204
+ .section-mast {
205
+ display: flex; align-items: baseline; justify-content: space-between;
206
+ gap: 24px; margin-bottom: 28px; flex-wrap: wrap;
207
+ }
208
+ .section-label {
209
+ font-family: var(--font-mono);
210
+ font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
211
+ color: var(--accent-green);
212
+ display: inline-flex; align-items: baseline; gap: 10px;
213
+ }
214
+ .section-label .glyph { color: var(--accent-pink); letter-spacing: -2px; }
215
+ .section-meta {
216
+ font-family: var(--font-mono);
217
+ font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
218
+ color: var(--dim);
219
+ }
220
+ .section-meta .g { color: var(--accent-green); }
221
+ .section-meta .p { color: var(--accent-pink); }
222
+ .section-h {
223
+ font-family: var(--font-display);
224
+ font-size: clamp(28px, 4vw, 44px);
225
+ line-height: 1.05; letter-spacing: 0.11em;
226
+ font-weight: 400; color: var(--ink);
227
+ margin: 0 0 18px;
228
+ text-transform: lowercase;
229
+ text-wrap: balance;
230
+ }
231
+
232
+ /* ───────────────────────── footer ───────────────────────── */
233
+
234
+ .report-footer {
235
+ padding: 48px 32px 24px;
236
+ border-top: 1px solid var(--line);
237
+ background: var(--bg);
238
+ text-align: center;
239
+ font-family: var(--font-mono); font-size: 11px;
240
+ letter-spacing: 0.15em; text-transform: uppercase;
241
+ color: var(--dim);
242
+ }
243
+ /* Fixed variant — used on the empty/loading states where the page is
244
+ short and a normal in-flow footer ends up floating mid-viewport. Pins
245
+ it to the bottom of the viewport so it doesn't scroll with the page. */
246
+ .report-footer--fixed {
247
+ position: fixed;
248
+ left: 0; right: 0; bottom: 0;
249
+ padding: 16px 32px;
250
+ z-index: 10;
251
+ }
252
+ .report-footer .brand-mark {
253
+ color: var(--accent-pink); font-family: var(--font-mono);
254
+ font-size: 14px; letter-spacing: -2px; font-weight: 700;
255
+ margin-right: 6px;
256
+ }
257
+
258
+ /* ───────────────────────── auth dialog (set-a-reminder gate) ───────────────────────── */
259
+
260
+ .auth-dialog-backdrop {
261
+ position: fixed; inset: 0; z-index: 10000;
262
+ display: grid; place-items: center;
263
+ padding: 32px 16px;
264
+ background: rgba(8,8,10,0.7);
265
+ backdrop-filter: blur(6px);
266
+ -webkit-backdrop-filter: blur(6px);
267
+ }
268
+
269
+ .auth-dialog {
270
+ position: relative;
271
+ width: 100%;
272
+ max-width: 420px;
273
+ padding: 28px 28px 24px;
274
+ border: 1px solid var(--line-2);
275
+ background: var(--bg-2);
276
+ font-family: var(--font-mono);
277
+ color: var(--ink);
278
+ }
279
+
280
+ .auth-close {
281
+ position: absolute; top: 12px; right: 14px;
282
+ font-family: var(--font-mono); font-size: 20px;
283
+ line-height: 1;
284
+ color: var(--dim);
285
+ background: transparent; border: none; padding: 4px 8px;
286
+ cursor: pointer;
287
+ transition: color 120ms;
288
+ }
289
+ .auth-close:hover { color: var(--accent-pink); }
290
+ .auth-close:disabled { color: var(--line-2); cursor: not-allowed; }
291
+
292
+ .auth-headline {
293
+ font-family: var(--font-mono);
294
+ font-size: 18px;
295
+ font-weight: 600;
296
+ letter-spacing: 0;
297
+ line-height: 1.3;
298
+ text-transform: none;
299
+ color: var(--ink);
300
+ margin: 0 0 8px;
301
+ }
302
+
303
+ .auth-sub {
304
+ font-family: var(--font-mono); font-size: 12px;
305
+ line-height: 1.55; color: var(--ink-2);
306
+ margin: 0 0 18px;
307
+ }
308
+ .auth-sub .auth-email {
309
+ color: var(--accent-pink);
310
+ }
311
+ .auth-sub .auth-ok {
312
+ color: var(--accent-green);
313
+ margin-right: 6px;
314
+ }
315
+
316
+ .auth-form { display: flex; flex-direction: column; gap: 10px; }
317
+
318
+ .auth-field-label {
319
+ font-family: var(--font-mono); font-size: 10px;
320
+ letter-spacing: 0.22em; text-transform: uppercase;
321
+ color: var(--accent-green);
322
+ }
323
+
324
+ .auth-input {
325
+ width: 100%;
326
+ padding: 11px 14px;
327
+ background: var(--bg);
328
+ border: 1px solid var(--line-2);
329
+ color: var(--ink);
330
+ font-family: var(--font-mono); font-size: 14px;
331
+ letter-spacing: 0.03em;
332
+ outline: none;
333
+ transition: border-color 120ms, box-shadow 120ms;
334
+ }
335
+ .auth-input:focus {
336
+ border-color: var(--accent-pink);
337
+ box-shadow: 0 0 0 1px var(--accent-pink-soft);
338
+ }
339
+ .auth-input:disabled {
340
+ opacity: 0.55; cursor: not-allowed;
341
+ }
342
+ .auth-input-code {
343
+ letter-spacing: 0.5em;
344
+ text-align: center;
345
+ font-size: 18px;
346
+ font-variant-numeric: tabular-nums;
347
+ }
348
+ .auth-input::placeholder { color: var(--dim); }
349
+
350
+ .auth-error {
351
+ font-family: var(--font-mono); font-size: 12px;
352
+ color: var(--accent-pink);
353
+ padding: 8px 12px;
354
+ background: var(--accent-pink-bg);
355
+ border: 1px solid var(--accent-pink);
356
+ border-left-width: 3px;
357
+ letter-spacing: 0.02em;
358
+ margin-top: 4px;
359
+ }
360
+
361
+ .auth-actions {
362
+ display: flex; gap: 10px; flex-wrap: wrap;
363
+ margin-top: 14px;
364
+ }
365
+
366
+ .auth-btn {
367
+ display: inline-flex; align-items: center; gap: 8px;
368
+ padding: 10px 16px;
369
+ font-family: var(--font-mono); font-size: 12px;
370
+ letter-spacing: 0.06em;
371
+ background: transparent;
372
+ border: 1px solid var(--line-2);
373
+ color: var(--ink);
374
+ cursor: pointer;
375
+ transition: all 120ms ease;
376
+ }
377
+ .auth-btn:hover:not(:disabled) {
378
+ border-color: var(--ink); background: rgba(255,255,255,0.04);
379
+ }
380
+ .auth-btn:disabled { opacity: 0.45; cursor: not-allowed; }
381
+ .auth-btn.primary {
382
+ border-color: var(--accent-pink);
383
+ color: var(--accent-pink);
384
+ background: var(--accent-pink-bg);
385
+ }
386
+ .auth-btn.primary:hover:not(:disabled) {
387
+ background: var(--accent-pink); color: var(--bg);
388
+ }
389
+
390
+ .auth-back {
391
+ align-self: flex-start;
392
+ margin-top: 4px;
393
+ background: transparent; border: none; padding: 6px 0;
394
+ font-family: var(--font-mono); font-size: 11px;
395
+ letter-spacing: 0.1em; color: var(--dim);
396
+ cursor: pointer;
397
+ transition: color 120ms;
398
+ }
399
+ .auth-back:hover:not(:disabled) { color: var(--ink-2); }
400
+ .auth-back:disabled { opacity: 0.45; cursor: not-allowed; }
401
+
402
+ @media (max-width: 520px) {
403
+ .auth-dialog { padding: 26px 22px 22px; }
404
+ .auth-actions { flex-direction: column; align-items: stretch; }
405
+ .auth-btn { justify-content: center; }
406
+ }
407
+
408
+ /* status pill in the return CTA: shows current logged-in email */
409
+ .auth-status-pill {
410
+ display: inline-flex; align-items: center; gap: 8px;
411
+ margin-top: 16px;
412
+ padding: 6px 10px;
413
+ border: 1px dashed var(--line-2);
414
+ font-family: var(--font-mono); font-size: 11px;
415
+ letter-spacing: 0.1em;
416
+ color: var(--ink-2);
417
+ }
418
+ .auth-status-pill .dot {
419
+ width: 7px; height: 7px;
420
+ background: var(--accent-green); display: inline-block;
421
+ box-shadow: 0 0 6px rgba(102,209,181,0.55);
422
+ }
423
+ .auth-status-pill .email { color: var(--accent-green); }
424
+
425
+ /* responsive */
426
+ @media (max-width: 960px) {
427
+ .report { padding: 0 20px; }
428
+ .archetype-frame { padding: 32px 24px; }
429
+ .arch-body { grid-template-columns: 1fr; gap: 32px; }
430
+ .arch-meta-grid { grid-template-columns: 1fr; gap: 16px; }
431
+ .score-grid { grid-template-columns: 1fr; gap: 16px; }
432
+ .finding-body { grid-template-columns: 1fr; }
433
+ .finding-block { border-right: none !important; }
434
+ .policies-grid { grid-template-columns: 1fr; }
435
+ .share-grid { grid-template-columns: 1fr; }
436
+ .strength-row { grid-template-columns: 40px 1fr; }
437
+ .strength-metric { grid-column: 2; text-align: left; margin-top: 6px; }
438
+ .return-hook { padding: 28px 24px; }
439
+ }
440
+
441
+ /* reduced-motion: silence the ambient terminal motion (blinking cursor,
442
+ spinner, marquee shine, status pulse) so vestibular-sensitive users get a
443
+ still UI. Functional progress (.running-bar-fill width) still updates;
444
+ only the decorative loops are stopped. */
445
+ @media (prefers-reduced-motion: reduce) {
446
+ .running-cursor,
447
+ .running-stage-spin,
448
+ .running-bar-fill::after,
449
+ .auth-status-pill .dot {
450
+ animation: none;
451
+ }
452
+ .running-bar-fill { transition: none; }
453
+ }
454
+
455
+ /* ─────────────────────────────────────────────────────────────────────
456
+ audit-progress-strip — sticky banner pinned to the top of the viewport
457
+ while a re-audit is in flight. Pink hard-offset shadow matches the
458
+ page's `.share-btn:hover` vocabulary. Right-edge pulse is a CSS-only
459
+ keyframe (transform-only — no layout thrash) and is not a fake
460
+ progress bar.
461
+ ───────────────────────────────────────────────────────────────────── */
462
+ .audit-progress-strip {
463
+ position: sticky;
464
+ top: 0;
465
+ left: 0;
466
+ right: 0;
467
+ z-index: 60;
468
+ background: var(--bg-2);
469
+ border-bottom: 1px solid var(--accent-pink);
470
+ font-family: var(--font-mono);
471
+ /* Slide in from above on mount */
472
+ animation: audit-progress-slide-in 220ms cubic-bezier(0.22, 1, 0.36, 1);
473
+ }
474
+ .audit-progress-strip--failed {
475
+ border-bottom-color: var(--accent-pink);
476
+ background: linear-gradient(to right, var(--accent-pink-bg), var(--bg-2));
477
+ }
478
+ .audit-progress-strip__inner {
479
+ position: relative;
480
+ max-width: 1480px;
481
+ margin: 0 auto;
482
+ padding: 12px clamp(20px, 3vw, 48px);
483
+ display: flex;
484
+ align-items: center;
485
+ justify-content: space-between;
486
+ gap: 16px;
487
+ }
488
+ .audit-progress-strip__label {
489
+ display: inline-flex;
490
+ align-items: center;
491
+ gap: 10px;
492
+ color: var(--ink);
493
+ font-size: 12px;
494
+ letter-spacing: 0.06em;
495
+ text-transform: lowercase;
496
+ }
497
+ .audit-progress-strip--failed .audit-progress-strip__label { color: var(--accent-pink); }
498
+ .audit-progress-strip__elapsed {
499
+ font-variant-numeric: tabular-nums;
500
+ font-size: 12px;
501
+ color: var(--accent-pink);
502
+ letter-spacing: 0.08em;
503
+ }
504
+ .audit-progress-strip__spinner {
505
+ width: 9px;
506
+ height: 9px;
507
+ border-radius: 50%;
508
+ background: transparent;
509
+ border: 1.5px solid var(--accent-pink);
510
+ border-top-color: transparent;
511
+ animation: audit-progress-spin 800ms linear infinite;
512
+ }
513
+ .audit-progress-strip__x {
514
+ display: inline-flex;
515
+ align-items: center;
516
+ justify-content: center;
517
+ width: 14px;
518
+ height: 14px;
519
+ border: 1px solid var(--accent-pink);
520
+ color: var(--accent-pink);
521
+ font-size: 11px;
522
+ line-height: 1;
523
+ }
524
+ .audit-progress-strip__dismiss {
525
+ background: transparent;
526
+ border: 1px solid var(--line-2);
527
+ color: var(--ink-2);
528
+ padding: 5px 10px;
529
+ font-family: var(--font-mono);
530
+ font-size: 11px;
531
+ text-transform: lowercase;
532
+ letter-spacing: 0.06em;
533
+ cursor: pointer;
534
+ transition: border-color 140ms ease, color 140ms ease;
535
+ }
536
+ .audit-progress-strip__dismiss:hover {
537
+ border-color: var(--accent-pink);
538
+ color: var(--accent-pink);
539
+ }
540
+ .audit-progress-strip__pulse {
541
+ position: absolute;
542
+ bottom: -1px;
543
+ left: 0;
544
+ right: 0;
545
+ height: 1px;
546
+ background: linear-gradient(
547
+ 90deg,
548
+ transparent 0%,
549
+ var(--accent-pink) 20%,
550
+ var(--accent-pink) 80%,
551
+ transparent 100%
552
+ );
553
+ transform-origin: left center;
554
+ animation: audit-progress-pulse 2400ms cubic-bezier(0.55, 0.1, 0.45, 0.9) infinite;
555
+ }
556
+ @keyframes audit-progress-spin {
557
+ to { transform: rotate(360deg); }
558
+ }
559
+ @keyframes audit-progress-pulse {
560
+ 0% { transform: scaleX(0) translateX(0%); opacity: 0.4; }
561
+ 50% { transform: scaleX(0.6) translateX(20%); opacity: 1; }
562
+ 100% { transform: scaleX(0) translateX(100%); opacity: 0.2; }
563
+ }
564
+ @keyframes audit-progress-slide-in {
565
+ from { transform: translateY(-100%); opacity: 0; }
566
+ to { transform: translateY(0); opacity: 1; }
567
+ }
568
+ @media (prefers-reduced-motion: reduce) {
569
+ .audit-progress-strip { animation: none; }
570
+ .audit-progress-strip__spinner { animation: none; border-top-color: var(--accent-pink); }
571
+ .audit-progress-strip__pulse { animation: none; opacity: 0.4; transform: scaleX(0.4) translateX(30%); }
572
+ }
573
+
574
+ /* ============================================================
575
+ AUDIT POSTER — section 01.
576
+ Single-screen capture region + 3 share buttons + scroll hint.
577
+ Calm: 1px borders, no hard shadows, no scanlines.
578
+ ============================================================ */
579
+
580
+ .poster-section {
581
+ /* Fit the viewport exactly: poster + share row + scroll hint all
582
+ * visible on the first screen. The header is ~52px tall (14px
583
+ * padding × 2 + ~18px content + 1px border). Using `height` (not
584
+ * min-height) means the section never overflows; the poster's
585
+ * flex column shrinks its body to fit. */
586
+ height: calc(100vh - 52px);
587
+ padding: 20px 0 16px;
588
+ border-bottom: 1px solid var(--line);
589
+ display: flex; flex-direction: column;
590
+ gap: 14px;
591
+ }
592
+
593
+ .poster {
594
+ position: relative;
595
+ padding: 22px 40px;
596
+ border: 1px dashed var(--accent-pink-soft);
597
+ background: var(--bg-2);
598
+ display: flex; flex-direction: column;
599
+ max-width: 980px;
600
+ width: 100%;
601
+ margin: 0 auto;
602
+ flex: 1 1 auto;
603
+ min-height: 0;
604
+ overflow: hidden;
605
+ }
606
+
607
+ /* poster lays out as head / centered body / footer so the body anchors
608
+ * vertically in the middle even when the poster fills the viewport. */
609
+ .poster-head { flex: 0 0 auto; }
610
+ .poster-body { flex: 1 1 auto; }
611
+ .poster-foot { flex: 0 0 auto; }
612
+
613
+ /* head ────────────────────────────────────────────────────── */
614
+ .poster-head {
615
+ display: flex; justify-content: space-between; align-items: baseline;
616
+ gap: 18px; flex-wrap: wrap;
617
+ padding-bottom: 12px;
618
+ border-bottom: 1px dashed var(--line);
619
+ font-family: var(--font-mono);
620
+ font-size: 11px;
621
+ letter-spacing: 0.04em;
622
+ }
623
+ .poster-wordmark {
624
+ color: var(--ink);
625
+ display: inline-flex; align-items: center; gap: 8px;
626
+ }
627
+ .poster-wordmark .poster-logo {
628
+ height: 14px;
629
+ width: auto;
630
+ display: block;
631
+ }
632
+ .poster-wordmark .poster-sep { color: var(--dim); margin: 0 2px; }
633
+ .poster-meta { color: var(--dim); }
634
+ .poster-meta .poster-ix { color: var(--accent-pink); }
635
+ .poster-meta .of { color: var(--dim); }
636
+ .poster-meta .poster-sep { color: var(--dim); }
637
+
638
+ /* body — vertical centered stack: sigil → persona → score ─── */
639
+ .poster-body {
640
+ display: flex;
641
+ flex-direction: column;
642
+ align-items: center;
643
+ justify-content: center;
644
+ gap: clamp(14px, 2.6vh, 30px);
645
+ text-align: center;
646
+ padding: clamp(6px, 1.4vh, 16px) 0;
647
+ min-height: 0;
648
+ }
649
+
650
+ /* sigil — flat 8x8, anchored at the top of the centered stack ── */
651
+ .poster-sigil .sigil {
652
+ display: grid;
653
+ grid-template-columns: repeat(8, clamp(10px, 1.7vh, 16px));
654
+ grid-template-rows: repeat(8, clamp(10px, 1.7vh, 16px));
655
+ gap: 2px;
656
+ padding: clamp(6px, 1vh, 10px);
657
+ background: var(--bg);
658
+ border: 1px solid var(--line-2);
659
+ }
660
+
661
+ /* persona — name + keywords + rarity stacked centered ──────── */
662
+ .poster-persona {
663
+ min-width: 0;
664
+ display: flex; flex-direction: column; align-items: center;
665
+ gap: clamp(6px, 1.2vh, 14px);
666
+ }
667
+ .poster-persona .persona-name {
668
+ font-family: var(--font-display);
669
+ font-size: clamp(32px, 6.5vh, 64px);
670
+ letter-spacing: 0.03em;
671
+ line-height: 0.95;
672
+ margin: 0;
673
+ color: var(--ink);
674
+ text-transform: lowercase;
675
+ text-wrap: balance;
676
+ }
677
+ .poster-persona .persona-keywords {
678
+ font-family: var(--font-display);
679
+ font-size: clamp(16px, 2.2vh, 22px);
680
+ letter-spacing: 0.06em;
681
+ text-transform: lowercase;
682
+ }
683
+ .poster-persona .persona-keywords .kw-0 { color: var(--accent-green); }
684
+ .poster-persona .persona-keywords .kw-1 { color: var(--ink); }
685
+ .poster-persona .persona-keywords .kw-2 { color: var(--accent-pink); }
686
+ .poster-persona .persona-keywords .kw-sep { color: var(--dim); margin: 0 10px; }
687
+ .poster-persona .persona-rarity {
688
+ font-family: var(--font-mono);
689
+ font-size: clamp(11px, 1.3vh, 13px);
690
+ color: var(--accent-green);
691
+ letter-spacing: 0.02em;
692
+ }
693
+ .poster-persona .persona-rarity .lbl { color: var(--dim); }
694
+ .poster-persona .persona-rarity .pct { color: var(--accent-pink); font-weight: 600; }
695
+
696
+ /* score — score-n + /100, baseline-aligned and centered in the card. */
697
+ .poster-score {
698
+ display: flex;
699
+ align-items: baseline;
700
+ justify-content: center;
701
+ gap: clamp(10px, 1.4vh, 16px);
702
+ }
703
+ .poster-score .score-n {
704
+ /* Mono font — Bitcount Prop Single renders unreliably in html2canvas
705
+ * at this size (phantom pixels). JetBrains Mono exports cleanly. */
706
+ font-family: var(--font-mono);
707
+ font-size: clamp(56px, 11vh, 112px);
708
+ font-weight: 700;
709
+ line-height: 1;
710
+ letter-spacing: -0.02em;
711
+ color: var(--accent-pink);
712
+ font-variant-numeric: tabular-nums;
713
+ }
714
+ .poster-score .score-of {
715
+ font-family: var(--font-mono);
716
+ font-size: clamp(16px, 2vh, 22px);
717
+ color: var(--dim);
718
+ letter-spacing: 0.04em;
719
+ line-height: 1;
720
+ }
721
+ .poster-sigil .sigil .px { background: transparent; }
722
+ .poster-sigil .sigil .px.on { background: var(--ink); }
723
+ .poster-sigil .sigil .px.p { background: var(--accent-pink); }
724
+ .poster-sigil .sigil .px.g { background: var(--accent-green); }
725
+ .poster-sigil .sigil .px.d { background: var(--dim); }
726
+
727
+ /* foot — brand stamp (left) + CTA (right) ─────────────────────── */
728
+ .poster-foot {
729
+ display: flex; justify-content: space-between; align-items: baseline;
730
+ padding-top: 10px;
731
+ border-top: 1px dashed var(--line);
732
+ font-family: var(--font-mono);
733
+ font-size: 10px;
734
+ }
735
+ .poster-brand {
736
+ color: var(--ink);
737
+ letter-spacing: 0.04em;
738
+ text-shadow: 0 0 6px rgba(255, 255, 255, 0.5), 0 0 14px rgba(255, 255, 255, 0.22);
739
+ }
740
+ .poster-cta { color: var(--accent-green); letter-spacing: 0.04em; }
741
+ .poster-cta .arrow { color: var(--accent-pink); margin: 0 4px; }
742
+ /* glow just the copy-paste command so it reads as the actionable bit */
743
+ .poster-cta .cta-cmd {
744
+ text-shadow: 0 0 6px rgba(102, 209, 181, 0.6), 0 0 14px rgba(102, 209, 181, 0.3);
745
+ }
746
+
747
+ /* share-row — UI only, outside the PNG capture ─────────────── */
748
+ .poster-share-row {
749
+ max-width: 980px;
750
+ margin: 0 auto;
751
+ display: grid;
752
+ grid-template-columns: repeat(3, 1fr);
753
+ gap: 10px;
754
+ flex: 0 0 auto;
755
+ }
756
+ .poster-share-btn {
757
+ display: inline-flex; align-items: center; justify-content: center;
758
+ gap: 10px;
759
+ padding: 12px 16px;
760
+ border: 1px solid var(--line-2);
761
+ background: var(--bg-2);
762
+ color: var(--ink);
763
+ font-family: var(--font-mono);
764
+ font-size: 12px;
765
+ letter-spacing: 0.04em;
766
+ cursor: pointer;
767
+ transition: border-color 140ms ease, color 140ms ease, background 140ms ease;
768
+ }
769
+ .poster-share-btn:hover {
770
+ border-color: var(--accent-pink);
771
+ color: var(--accent-pink);
772
+ background: var(--accent-pink-bg);
773
+ }
774
+ .poster-share-btn:disabled {
775
+ opacity: 0.55; cursor: wait;
776
+ }
777
+ .poster-share-btn:focus-visible,
778
+ .cadence-btn:focus-visible,
779
+ .invite-btn:focus-visible,
780
+ .install-all-btn:focus-visible,
781
+ .copy-icon-btn:focus-visible,
782
+ .fix-install-btn:focus-visible {
783
+ outline: 2px solid var(--accent-pink);
784
+ outline-offset: 2px;
785
+ }
786
+ .poster-share-btn .mark { color: var(--accent-pink); font-weight: 700; }
787
+
788
+ /* scroll-hint — small footer below share row ───────────────── */
789
+ .poster-scroll-hint {
790
+ text-align: center;
791
+ margin: 0;
792
+ font-family: var(--font-mono);
793
+ font-size: 10px;
794
+ letter-spacing: 0.22em;
795
+ text-transform: uppercase;
796
+ flex: 0 0 auto;
797
+ color: var(--dim);
798
+ }
799
+ .poster-scroll-hint .arrow { color: var(--accent-pink); margin-left: 6px; }
800
+
801
+ @media (max-width: 720px) {
802
+ .poster { padding: 24px 22px; }
803
+ .poster-body { gap: 28px; padding: 12px 0; }
804
+ .poster-share-row { grid-template-columns: 1fr; }
805
+ .poster-head { font-size: 10px; }
806
+ .poster-score .score-n { font-size: clamp(72px, 18vw, 120px); }
807
+ .poster-persona .persona-name { font-size: clamp(36px, 9vw, 56px); }
808
+ }
809
+
810
+ /* ============================================================
811
+ SHARED SECTION SHELL — used by sections 02-05 on /audit.
812
+ ============================================================ */
813
+ .audit-sec {
814
+ padding: 48px 0;
815
+ border-bottom: 1px solid var(--line);
816
+ }
817
+ .audit-sec:last-child { border-bottom: none; }
818
+
819
+ .audit-sec-head {
820
+ display: flex; justify-content: space-between; align-items: baseline;
821
+ gap: 16px;
822
+ margin-bottom: 6px;
823
+ }
824
+ .audit-sec-eyebrow {
825
+ font-family: var(--font-mono);
826
+ font-size: 11px;
827
+ letter-spacing: 0.2em;
828
+ text-transform: uppercase;
829
+ color: var(--accent-green);
830
+ }
831
+ .audit-sec-eyebrow .ix { color: var(--dim); margin-right: 8px; }
832
+ .audit-sec-meta {
833
+ font-family: var(--font-mono);
834
+ font-size: 11px;
835
+ color: var(--dim);
836
+ letter-spacing: 0.04em;
837
+ }
838
+ .audit-sec-meta strong { color: var(--ink); font-weight: 600; }
839
+ .audit-sec-title {
840
+ font-family: var(--font-mono);
841
+ font-size: 18px;
842
+ font-weight: 600;
843
+ letter-spacing: -0.01em;
844
+ color: var(--ink);
845
+ margin: 4px 0 18px;
846
+ }
847
+
848
+ /* ============================================================
849
+ STRENGTHS — section 02. ✓ rows.
850
+ ============================================================ */
851
+ .strength-list {
852
+ display: flex; flex-direction: column;
853
+ }
854
+ .strength-row {
855
+ display: grid;
856
+ grid-template-columns: 24px 1fr auto;
857
+ align-items: baseline;
858
+ gap: 14px;
859
+ padding: 12px 0;
860
+ border-bottom: 1px dashed var(--line);
861
+ font-family: var(--font-mono);
862
+ }
863
+ .strength-row:last-child { border-bottom: none; }
864
+ .strength-check {
865
+ color: var(--accent-green);
866
+ font-size: 14px;
867
+ line-height: 1;
868
+ }
869
+ .strength-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
870
+ .strength-headline {
871
+ font-size: 13px;
872
+ color: var(--ink);
873
+ letter-spacing: 0.02em;
874
+ }
875
+ .strength-detail {
876
+ font-size: 11px;
877
+ color: var(--ink-2);
878
+ letter-spacing: 0.02em;
879
+ }
880
+ .strength-metric {
881
+ font-family: var(--font-display);
882
+ font-size: 22px;
883
+ letter-spacing: 0.04em;
884
+ color: var(--accent-green);
885
+ text-align: right;
886
+ line-height: 1;
887
+ white-space: nowrap;
888
+ }
889
+ .strength-metric .unit {
890
+ display: block;
891
+ font-family: var(--font-mono);
892
+ font-size: 9px;
893
+ letter-spacing: 0.18em;
894
+ text-transform: uppercase;
895
+ color: var(--dim);
896
+ margin-top: 4px;
897
+ }
898
+
899
+ /* ============================================================
900
+ QUIRKS — section 03. 4-column table.
901
+ ============================================================ */
902
+ .quirks-table { font-family: var(--font-mono); }
903
+ .quirks-thead, .quirks-row {
904
+ display: grid;
905
+ grid-template-columns: 80px 1fr 90px 100px;
906
+ gap: 14px;
907
+ align-items: center;
908
+ }
909
+ .quirks-thead {
910
+ padding: 0 0 8px;
911
+ border-bottom: 1px solid var(--line);
912
+ font-size: 10px;
913
+ color: var(--dim);
914
+ letter-spacing: 0.18em;
915
+ text-transform: uppercase;
916
+ }
917
+ .quirks-thead span:last-child { text-align: right; }
918
+ .quirks-row {
919
+ padding: 12px 0;
920
+ border-bottom: 1px dashed var(--line);
921
+ font-size: 12px;
922
+ }
923
+ .quirks-row:last-child { border-bottom: none; }
924
+ .q-when { color: var(--dim); font-size: 11px; }
925
+ .q-what { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
926
+ .q-title { color: var(--ink); font-size: 12px; }
927
+ .q-policy {
928
+ color: var(--dim);
929
+ font-size: 10px;
930
+ }
931
+ .q-policy code { color: var(--accent-green); background: transparent; }
932
+ .q-pill {
933
+ border: 1px solid var(--line-2);
934
+ padding: 2px 8px;
935
+ font-size: 10px;
936
+ text-align: center;
937
+ letter-spacing: 0.12em;
938
+ text-transform: uppercase;
939
+ justify-self: start;
940
+ }
941
+ .q-pill-high {
942
+ color: var(--accent-pink);
943
+ border-color: rgba(228, 88, 124, 0.4);
944
+ background: rgba(228, 88, 124, 0.06);
945
+ }
946
+ .q-pill-medium {
947
+ color: var(--amber);
948
+ border-color: rgba(232, 196, 106, 0.4);
949
+ background: var(--amber-bg);
950
+ }
951
+ .q-pill-low {
952
+ color: var(--ink-2);
953
+ }
954
+ .q-recur {
955
+ text-align: right;
956
+ color: var(--dim);
957
+ font-size: 10px;
958
+ letter-spacing: 0.04em;
959
+ }
960
+
961
+ /* ============================================================
962
+ HOW TO IMPROVE — section 04. Fix cards.
963
+ ============================================================ */
964
+ .audit-sec-sub {
965
+ font-family: var(--font-mono);
966
+ font-size: 12px;
967
+ color: var(--ink-2);
968
+ margin: -10px 0 18px;
969
+ line-height: 1.55;
970
+ }
971
+ .audit-sec-sub strong { color: var(--ink); font-weight: 600; }
972
+
973
+ .install-all-btn {
974
+ border: 1px solid var(--accent-pink);
975
+ background: var(--accent-pink-bg);
976
+ color: var(--accent-pink);
977
+ padding: 8px 14px;
978
+ font-family: var(--font-mono);
979
+ font-size: 11px;
980
+ letter-spacing: 0.18em;
981
+ text-transform: uppercase;
982
+ cursor: pointer;
983
+ transition: background-color 140ms ease;
984
+ }
985
+ .install-all-btn:hover { background: rgba(228, 88, 124, 0.18); }
986
+
987
+ .fix-list { display: flex; flex-direction: column; }
988
+ .fix-row {
989
+ display: grid;
990
+ grid-template-columns: 1fr minmax(280px, auto);
991
+ gap: 24px;
992
+ align-items: center;
993
+ padding: 14px 0;
994
+ border-bottom: 1px dashed var(--line);
995
+ }
996
+ .fix-row:last-child { border-bottom: none; }
997
+ .fix-row-info { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
998
+ .fix-name {
999
+ font-family: var(--font-mono);
1000
+ font-size: 13px;
1001
+ color: var(--ink);
1002
+ letter-spacing: 0.01em;
1003
+ font-weight: 500;
1004
+ }
1005
+ .fix-desc {
1006
+ font-family: var(--font-mono);
1007
+ font-size: 11px;
1008
+ color: var(--ink-2);
1009
+ line-height: 1.55;
1010
+ }
1011
+ .fix-row-cmd {
1012
+ display: flex; align-items: stretch; gap: 6px;
1013
+ min-width: 0;
1014
+ }
1015
+ .fix-cmd-code {
1016
+ flex: 1; min-width: 0;
1017
+ font-family: var(--font-mono);
1018
+ font-size: 11px;
1019
+ color: var(--accent-green);
1020
+ background: var(--bg);
1021
+ border: 1px solid var(--line);
1022
+ padding: 8px 12px;
1023
+ letter-spacing: 0.02em;
1024
+ white-space: nowrap;
1025
+ overflow-x: auto;
1026
+ display: flex; align-items: center;
1027
+ }
1028
+ .copy-icon-btn {
1029
+ border: 1px solid var(--line);
1030
+ background: var(--bg);
1031
+ color: var(--ink-2);
1032
+ padding: 0 10px;
1033
+ font-family: var(--font-mono);
1034
+ font-size: 12px;
1035
+ cursor: pointer;
1036
+ transition: color 140ms ease, border-color 140ms ease;
1037
+ display: inline-flex; align-items: center; justify-content: center;
1038
+ min-width: 36px;
1039
+ }
1040
+ .copy-icon-btn:hover {
1041
+ color: var(--accent-pink);
1042
+ border-color: var(--accent-pink);
1043
+ }
1044
+
1045
+ /* ============================================================
1046
+ COME BACK BETTER — section 05. Two cards.
1047
+ ============================================================ */
1048
+ .cbb-grid {
1049
+ display: grid;
1050
+ grid-template-columns: 1fr 1fr;
1051
+ gap: 14px;
1052
+ }
1053
+ .cbb-card {
1054
+ border: 1px solid var(--line-2);
1055
+ background: var(--bg-2);
1056
+ padding: 18px 20px;
1057
+ display: flex; flex-direction: column;
1058
+ gap: 12px;
1059
+ }
1060
+ .cbb-card-title {
1061
+ font-family: var(--font-mono);
1062
+ font-size: 14px;
1063
+ color: var(--ink);
1064
+ letter-spacing: 0.02em;
1065
+ }
1066
+ .cbb-card-sub {
1067
+ font-family: var(--font-mono);
1068
+ font-size: 11px;
1069
+ color: var(--ink-2);
1070
+ line-height: 1.55;
1071
+ }
1072
+
1073
+ .cadence-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 2px; }
1074
+ .cadence-btn {
1075
+ font-family: var(--font-mono);
1076
+ font-size: 11px;
1077
+ letter-spacing: 0.04em;
1078
+ border: 1px solid var(--line-2);
1079
+ background: transparent;
1080
+ color: var(--ink);
1081
+ padding: 6px 12px;
1082
+ cursor: pointer;
1083
+ transition: border-color 140ms ease, color 140ms ease, background-color 140ms ease;
1084
+ }
1085
+ .cadence-btn:hover {
1086
+ border-color: var(--accent-pink);
1087
+ color: var(--accent-pink);
1088
+ }
1089
+ .cadence-btn.on {
1090
+ border-color: var(--accent-pink);
1091
+ background: var(--accent-pink-bg);
1092
+ color: var(--accent-pink);
1093
+ }
1094
+ .cadence-btn:disabled { opacity: 0.5; cursor: not-allowed; }
1095
+
1096
+ .cbb-link {
1097
+ align-self: flex-start;
1098
+ background: transparent;
1099
+ border: none;
1100
+ color: var(--accent-green);
1101
+ font-family: var(--font-mono);
1102
+ font-size: 11px;
1103
+ letter-spacing: 0.04em;
1104
+ cursor: pointer;
1105
+ padding: 0;
1106
+ }
1107
+ .cbb-link:hover { color: var(--accent-pink); }
1108
+ .cbb-link:disabled { opacity: 0.55; cursor: wait; }
1109
+
1110
+ .perks-progress {
1111
+ height: 6px;
1112
+ background: var(--bg);
1113
+ border: 1px solid var(--line-2);
1114
+ position: relative;
1115
+ margin: 4px 0;
1116
+ }
1117
+ .perks-progress span {
1118
+ display: block;
1119
+ height: 100%;
1120
+ background: var(--accent-pink);
1121
+ transition: width 240ms ease;
1122
+ }
1123
+ .perks-meta {
1124
+ font-family: var(--font-mono);
1125
+ font-size: 11px;
1126
+ color: var(--ink-2);
1127
+ }
1128
+ .perks-meta strong { color: var(--accent-pink); font-weight: 600; }
1129
+ .invite-btn {
1130
+ align-self: flex-start;
1131
+ border: 1px solid var(--accent-pink);
1132
+ background: var(--accent-pink-bg);
1133
+ color: var(--accent-pink);
1134
+ padding: 8px 14px;
1135
+ font-family: var(--font-mono);
1136
+ font-size: 11px;
1137
+ letter-spacing: 0.18em;
1138
+ text-transform: uppercase;
1139
+ cursor: pointer;
1140
+ transition: background-color 140ms ease;
1141
+ }
1142
+ .invite-btn:hover { background: rgba(228, 88, 124, 0.18); }
1143
+
1144
+ .invite-textarea {
1145
+ width: 100%;
1146
+ resize: vertical;
1147
+ min-height: 90px;
1148
+ font-size: 13px;
1149
+ line-height: 1.45;
1150
+ letter-spacing: 0.02em;
1151
+ }
1152
+ .invite-summary {
1153
+ display: flex; flex-wrap: wrap; gap: 12px;
1154
+ margin-top: 6px;
1155
+ font-family: var(--font-mono);
1156
+ font-size: 11px;
1157
+ color: var(--dim);
1158
+ }
1159
+ .invite-summary .invite-valid { color: var(--accent-green); }
1160
+ .invite-summary .invite-invalid { color: var(--accent-pink); }
1161
+ .cbb-foot {
1162
+ font-family: var(--font-mono);
1163
+ font-size: 10px;
1164
+ color: var(--dim);
1165
+ margin-top: 4px;
1166
+ }
1167
+
1168
+ @media (max-width: 720px) {
1169
+ .cbb-grid { grid-template-columns: 1fr; }
1170
+ .fix-row { grid-template-columns: 1fr; gap: 8px; }
1171
+ .fix-row-cmd { min-width: 0; }
1172
+ .quirks-thead, .quirks-row {
1173
+ grid-template-columns: 1fr;
1174
+ gap: 6px;
1175
+ padding: 16px 0;
1176
+ }
1177
+ .quirks-thead { display: none; }
1178
+ }