claude-code-templates 1.21.11 → 1.21.13

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 (797) hide show
  1. package/.claude/agents/agent-expert.md +477 -0
  2. package/.claude/agents/cli-ui-designer.md +405 -0
  3. package/.claude/agents/command-expert.md +421 -0
  4. package/.claude/agents/docusaurus-expert.md +173 -0
  5. package/.claude/agents/frontend-developer.md +32 -0
  6. package/.claude/agents/mcp-expert.md +258 -0
  7. package/.claude/commands/lint.md +111 -0
  8. package/.claude/commands/test.md +73 -0
  9. package/.claude/settings.local.json +56 -0
  10. package/.env.example +26 -0
  11. package/.github/WORKFLOWS_REFERENCE.md +88 -0
  12. package/.github/workflows/deploy-docusaurus.yml +31 -0
  13. package/.github/workflows/deploy.yml +33 -0
  14. package/.github/workflows/publish-package.yml +125 -0
  15. package/.mcp.json +4 -0
  16. package/AGENTS.md +4 -0
  17. package/CLAUDE.md +482 -0
  18. package/CLAUDE_JOBS_README.md +148 -0
  19. package/CODE_OF_CONDUCT.md +82 -0
  20. package/CONTRIBUTING.md +505 -0
  21. package/DEPLOYMENT.md +60 -0
  22. package/LICENSE +21 -0
  23. package/README.md +77 -79
  24. package/ROADMAP.md +278 -0
  25. package/SECURITY.md +65 -0
  26. package/api/index.html +1 -0
  27. package/api/package.json +7 -0
  28. package/api/track-download-supabase.js +150 -0
  29. package/cli-tool/Makefile +102 -0
  30. package/cli-tool/README.md +126 -0
  31. package/cli-tool/TESTING.md +262 -0
  32. package/cli-tool/components/agents/ai-specialists/ai-ethics-advisor.md +195 -0
  33. package/cli-tool/components/agents/ai-specialists/hackathon-ai-strategist.md +46 -0
  34. package/cli-tool/components/agents/ai-specialists/llms-maintainer.md +94 -0
  35. package/cli-tool/components/agents/ai-specialists/model-evaluator.md +150 -0
  36. package/cli-tool/components/agents/ai-specialists/prompt-engineer.md +112 -0
  37. package/cli-tool/components/agents/ai-specialists/search-specialist.md +59 -0
  38. package/cli-tool/components/agents/ai-specialists/task-decomposition-expert.md +97 -0
  39. package/cli-tool/components/agents/api-graphql/graphql-architect.md +208 -0
  40. package/cli-tool/components/agents/api-graphql/graphql-performance-optimizer.md +357 -0
  41. package/cli-tool/components/agents/api-graphql/graphql-security-specialist.md +519 -0
  42. package/cli-tool/components/agents/blockchain-web3/smart-contract-auditor.md +32 -0
  43. package/cli-tool/components/agents/blockchain-web3/smart-contract-specialist.md +32 -0
  44. package/cli-tool/components/agents/blockchain-web3/web3-integration-specialist.md +32 -0
  45. package/cli-tool/components/agents/business-marketing/business-analyst.md +194 -0
  46. package/cli-tool/components/agents/business-marketing/content-marketer.md +36 -0
  47. package/cli-tool/components/agents/business-marketing/customer-support.md +36 -0
  48. package/cli-tool/components/agents/business-marketing/legal-advisor.md +50 -0
  49. package/cli-tool/components/agents/business-marketing/marketing-attribution-analyst.md +352 -0
  50. package/cli-tool/components/agents/business-marketing/payment-integration.md +33 -0
  51. package/cli-tool/components/agents/business-marketing/product-strategist.md +212 -0
  52. package/cli-tool/components/agents/business-marketing/risk-manager.md +42 -0
  53. package/cli-tool/components/agents/business-marketing/sales-automator.md +36 -0
  54. package/cli-tool/components/agents/data-ai/ai-engineer.md +33 -0
  55. package/cli-tool/components/agents/data-ai/computer-vision-engineer.md +562 -0
  56. package/cli-tool/components/agents/data-ai/data-engineer.md +33 -0
  57. package/cli-tool/components/agents/data-ai/data-scientist.md +337 -0
  58. package/cli-tool/components/agents/data-ai/ml-engineer.md +33 -0
  59. package/cli-tool/components/agents/data-ai/mlops-engineer.md +58 -0
  60. package/cli-tool/components/agents/data-ai/nlp-engineer.md +680 -0
  61. package/cli-tool/components/agents/data-ai/quant-analyst.md +33 -0
  62. package/cli-tool/components/agents/database/database-admin.md +33 -0
  63. package/cli-tool/components/agents/database/database-architect.md +590 -0
  64. package/cli-tool/components/agents/database/database-optimization.md +33 -0
  65. package/cli-tool/components/agents/database/database-optimizer.md +33 -0
  66. package/cli-tool/components/agents/database/neon-auth-specialist.md +175 -0
  67. package/cli-tool/components/agents/database/neon-database-architect.md +141 -0
  68. package/cli-tool/components/agents/database/neon-expert.md +846 -0
  69. package/cli-tool/components/agents/database/nosql-specialist.md +708 -0
  70. package/cli-tool/components/agents/database/supabase-schema-architect.md +138 -0
  71. package/cli-tool/components/agents/deep-research-team/academic-researcher.md +33 -0
  72. package/cli-tool/components/agents/deep-research-team/agent-overview.md +235 -0
  73. package/cli-tool/components/agents/deep-research-team/competitive-intelligence-analyst.md +530 -0
  74. package/cli-tool/components/agents/deep-research-team/data-analyst.md +112 -0
  75. package/cli-tool/components/agents/deep-research-team/fact-checker.md +553 -0
  76. package/cli-tool/components/agents/deep-research-team/query-clarifier.md +73 -0
  77. package/cli-tool/components/agents/deep-research-team/report-generator.md +108 -0
  78. package/cli-tool/components/agents/deep-research-team/research-brief-generator.md +108 -0
  79. package/cli-tool/components/agents/deep-research-team/research-coordinator.md +94 -0
  80. package/cli-tool/components/agents/deep-research-team/research-orchestrator.md +119 -0
  81. package/cli-tool/components/agents/deep-research-team/research-synthesizer.md +109 -0
  82. package/cli-tool/components/agents/deep-research-team/technical-researcher.md +95 -0
  83. package/cli-tool/components/agents/development-team/backend-architect.md +31 -0
  84. package/cli-tool/components/agents/development-team/cli-ui-designer.md +405 -0
  85. package/cli-tool/components/agents/development-team/devops-engineer.md +886 -0
  86. package/cli-tool/components/agents/development-team/frontend-developer.md +32 -0
  87. package/cli-tool/components/agents/development-team/fullstack-developer.md +1205 -0
  88. package/cli-tool/components/agents/development-team/ios-developer.md +36 -0
  89. package/cli-tool/components/agents/development-team/mobile-developer.md +33 -0
  90. package/cli-tool/components/agents/development-team/ui-ux-designer.md +36 -0
  91. package/cli-tool/components/agents/development-tools/code-reviewer.md +30 -0
  92. package/cli-tool/components/agents/development-tools/command-expert.md +422 -0
  93. package/cli-tool/components/agents/development-tools/context-manager.md +65 -0
  94. package/cli-tool/components/agents/development-tools/debugger.md +31 -0
  95. package/cli-tool/components/agents/development-tools/dx-optimizer.md +64 -0
  96. package/cli-tool/components/agents/development-tools/error-detective.md +33 -0
  97. package/cli-tool/components/agents/development-tools/mcp-expert.md +259 -0
  98. package/cli-tool/components/agents/development-tools/performance-profiler.md +799 -0
  99. package/cli-tool/components/agents/development-tools/test-engineer.md +936 -0
  100. package/cli-tool/components/agents/devops-infrastructure/cloud-architect.md +33 -0
  101. package/cli-tool/components/agents/devops-infrastructure/deployment-engineer.md +33 -0
  102. package/cli-tool/components/agents/devops-infrastructure/devops-troubleshooter.md +33 -0
  103. package/cli-tool/components/agents/devops-infrastructure/monitoring-specialist.md +36 -0
  104. package/cli-tool/components/agents/devops-infrastructure/network-engineer.md +33 -0
  105. package/cli-tool/components/agents/devops-infrastructure/security-engineer.md +971 -0
  106. package/cli-tool/components/agents/devops-infrastructure/terraform-specialist.md +36 -0
  107. package/cli-tool/components/agents/devops-infrastructure/vercel-deployment-specialist.md +357 -0
  108. package/cli-tool/components/agents/documentation/api-documenter.md +33 -0
  109. package/cli-tool/components/agents/documentation/changelog-generator.md +37 -0
  110. package/cli-tool/components/agents/documentation/docusaurus-expert.md +175 -0
  111. package/cli-tool/components/agents/documentation/technical-writer.md +37 -0
  112. package/cli-tool/components/agents/expert-advisors/agent-expert.md +491 -0
  113. package/cli-tool/components/agents/expert-advisors/architect-review.md +50 -0
  114. package/cli-tool/components/agents/expert-advisors/dependency-manager.md +45 -0
  115. package/cli-tool/components/agents/expert-advisors/documentation-expert.md +47 -0
  116. package/cli-tool/components/agents/ffmpeg-clip-team/audio-mixer.md +37 -0
  117. package/cli-tool/components/agents/ffmpeg-clip-team/audio-quality-controller.md +100 -0
  118. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-content-analyzer.md +60 -0
  119. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-metadata-specialist.md +46 -0
  120. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-transcriber.md +68 -0
  121. package/cli-tool/components/agents/ffmpeg-clip-team/social-media-clip-creator.md +69 -0
  122. package/cli-tool/components/agents/ffmpeg-clip-team/timestamp-precision-specialist.md +98 -0
  123. package/cli-tool/components/agents/ffmpeg-clip-team/video-editor.md +37 -0
  124. package/cli-tool/components/agents/game-development/3d-artist.md +37 -0
  125. package/cli-tool/components/agents/game-development/game-designer.md +37 -0
  126. package/cli-tool/components/agents/game-development/unity-game-developer.md +110 -0
  127. package/cli-tool/components/agents/game-development/unreal-engine-developer.md +128 -0
  128. package/cli-tool/components/agents/git/git-flow-manager.md +329 -0
  129. package/cli-tool/components/agents/mcp-dev-team/mcp-deployment-orchestrator.md +101 -0
  130. package/cli-tool/components/agents/mcp-dev-team/mcp-integration-engineer.md +37 -0
  131. package/cli-tool/components/agents/mcp-dev-team/mcp-protocol-specialist.md +37 -0
  132. package/cli-tool/components/agents/mcp-dev-team/mcp-registry-navigator.md +112 -0
  133. package/cli-tool/components/agents/mcp-dev-team/mcp-security-auditor.md +70 -0
  134. package/cli-tool/components/agents/mcp-dev-team/mcp-server-architect.md +74 -0
  135. package/cli-tool/components/agents/mcp-dev-team/mcp-testing-engineer.md +106 -0
  136. package/cli-tool/components/agents/modernization/architecture-modernizer.md +37 -0
  137. package/cli-tool/components/agents/modernization/cloud-migration-specialist.md +37 -0
  138. package/cli-tool/components/agents/modernization/legacy-modernizer.md +33 -0
  139. package/cli-tool/components/agents/obsidian-ops-team/Scripts/daily_notes_connector.py +306 -0
  140. package/cli-tool/components/agents/obsidian-ops-team/Scripts/enhance_tag_standardizer.py +343 -0
  141. package/cli-tool/components/agents/obsidian-ops-team/Scripts/find_keyword_connections.py +216 -0
  142. package/cli-tool/components/agents/obsidian-ops-team/Scripts/fix_quoted_tags.py +82 -0
  143. package/cli-tool/components/agents/obsidian-ops-team/Scripts/implement_entity_connections.py +195 -0
  144. package/cli-tool/components/agents/obsidian-ops-team/Scripts/link_suggester.py +301 -0
  145. package/cli-tool/components/agents/obsidian-ops-team/Scripts/metadata_adder.py +197 -0
  146. package/cli-tool/components/agents/obsidian-ops-team/Scripts/moc_generator.py +296 -0
  147. package/cli-tool/components/agents/obsidian-ops-team/Scripts/parse_keyword_connections.py +122 -0
  148. package/cli-tool/components/agents/obsidian-ops-team/Scripts/tag_standardizer.py +387 -0
  149. package/cli-tool/components/agents/obsidian-ops-team/connection-agent.md +67 -0
  150. package/cli-tool/components/agents/obsidian-ops-team/content-curator.md +81 -0
  151. package/cli-tool/components/agents/obsidian-ops-team/metadata-agent.md +51 -0
  152. package/cli-tool/components/agents/obsidian-ops-team/moc-agent.md +112 -0
  153. package/cli-tool/components/agents/obsidian-ops-team/review-agent.md +94 -0
  154. package/cli-tool/components/agents/obsidian-ops-team/tag-agent.md +92 -0
  155. package/cli-tool/components/agents/obsidian-ops-team/vault-optimizer.md +76 -0
  156. package/cli-tool/components/agents/ocr-extraction-team/document-structure-analyzer.md +37 -0
  157. package/cli-tool/components/agents/ocr-extraction-team/markdown-syntax-formatter.md +58 -0
  158. package/cli-tool/components/agents/ocr-extraction-team/ocr-grammar-fixer.md +36 -0
  159. package/cli-tool/components/agents/ocr-extraction-team/ocr-preprocessing-optimizer.md +37 -0
  160. package/cli-tool/components/agents/ocr-extraction-team/ocr-quality-assurance.md +62 -0
  161. package/cli-tool/components/agents/ocr-extraction-team/text-comparison-validator.md +60 -0
  162. package/cli-tool/components/agents/ocr-extraction-team/visual-analysis-ocr.md +52 -0
  163. package/cli-tool/components/agents/performance-testing/load-testing-specialist.md +37 -0
  164. package/cli-tool/components/agents/performance-testing/performance-engineer.md +33 -0
  165. package/cli-tool/components/agents/performance-testing/react-performance-optimization.md +65 -0
  166. package/cli-tool/components/agents/performance-testing/test-automator.md +33 -0
  167. package/cli-tool/components/agents/performance-testing/web-vitals-optimizer.md +37 -0
  168. package/cli-tool/components/agents/podcast-creator-team/academic-research-synthesizer.md +61 -0
  169. package/cli-tool/components/agents/podcast-creator-team/comprehensive-researcher.md +49 -0
  170. package/cli-tool/components/agents/podcast-creator-team/episode-orchestrator.md +52 -0
  171. package/cli-tool/components/agents/podcast-creator-team/guest-outreach-coordinator.md +37 -0
  172. package/cli-tool/components/agents/podcast-creator-team/market-research-analyst.md +54 -0
  173. package/cli-tool/components/agents/podcast-creator-team/podcast-editor.md +37 -0
  174. package/cli-tool/components/agents/podcast-creator-team/podcast-trend-scout.md +60 -0
  175. package/cli-tool/components/agents/podcast-creator-team/project-supervisor-orchestrator.md +48 -0
  176. package/cli-tool/components/agents/podcast-creator-team/seo-podcast-optimizer.md +58 -0
  177. package/cli-tool/components/agents/podcast-creator-team/social-media-copywriter.md +57 -0
  178. package/cli-tool/components/agents/podcast-creator-team/twitter-ai-influencer-manager.md +62 -0
  179. package/cli-tool/components/agents/programming-languages/c-pro.md +36 -0
  180. package/cli-tool/components/agents/programming-languages/c-sharp-pro.md +40 -0
  181. package/cli-tool/components/agents/programming-languages/cpp-pro.md +39 -0
  182. package/cli-tool/components/agents/programming-languages/golang-pro.md +33 -0
  183. package/cli-tool/components/agents/programming-languages/javascript-pro.md +36 -0
  184. package/cli-tool/components/agents/programming-languages/php-pro.md +44 -0
  185. package/cli-tool/components/agents/programming-languages/python-pro.md +33 -0
  186. package/cli-tool/components/agents/programming-languages/rust-pro.md +36 -0
  187. package/cli-tool/components/agents/programming-languages/shell-scripting-pro.md +38 -0
  188. package/cli-tool/components/agents/programming-languages/sql-pro.md +36 -0
  189. package/cli-tool/components/agents/programming-languages/typescript-pro.md +38 -0
  190. package/cli-tool/components/agents/realtime/supabase-realtime-optimizer.md +193 -0
  191. package/cli-tool/components/agents/security/api-security-audit.md +93 -0
  192. package/cli-tool/components/agents/security/compliance-specialist.md +37 -0
  193. package/cli-tool/components/agents/security/incident-responder.md +75 -0
  194. package/cli-tool/components/agents/security/penetration-tester.md +37 -0
  195. package/cli-tool/components/agents/security/security-auditor.md +33 -0
  196. package/cli-tool/components/agents/web-tools/nextjs-architecture-expert.md +194 -0
  197. package/cli-tool/components/agents/web-tools/react-performance-optimizer.md +425 -0
  198. package/cli-tool/components/agents/web-tools/seo-analyzer.md +37 -0
  199. package/cli-tool/components/agents/web-tools/url-context-validator.md +61 -0
  200. package/cli-tool/components/agents/web-tools/url-link-extractor.md +59 -0
  201. package/cli-tool/components/agents/web-tools/web-accessibility-checker.md +37 -0
  202. package/cli-tool/components/commands/automation/act.md +57 -0
  203. package/cli-tool/components/commands/automation/ci-pipeline.md +378 -0
  204. package/cli-tool/components/commands/automation/husky.md +130 -0
  205. package/cli-tool/components/commands/automation/workflow-orchestrator.md +576 -0
  206. package/cli-tool/components/commands/database/supabase-backup-manager.md +37 -0
  207. package/cli-tool/components/commands/database/supabase-data-explorer.md +37 -0
  208. package/cli-tool/components/commands/database/supabase-migration-assistant.md +37 -0
  209. package/cli-tool/components/commands/database/supabase-performance-optimizer.md +37 -0
  210. package/cli-tool/components/commands/database/supabase-realtime-monitor.md +37 -0
  211. package/cli-tool/components/commands/database/supabase-schema-sync.md +37 -0
  212. package/cli-tool/components/commands/database/supabase-security-audit.md +37 -0
  213. package/cli-tool/components/commands/database/supabase-type-generator.md +37 -0
  214. package/cli-tool/components/commands/deployment/add-changelog.md +92 -0
  215. package/cli-tool/components/commands/deployment/blue-green-deployment.md +824 -0
  216. package/cli-tool/components/commands/deployment/changelog-demo-command.md +43 -0
  217. package/cli-tool/components/commands/deployment/ci-setup.md +323 -0
  218. package/cli-tool/components/commands/deployment/containerize-application.md +93 -0
  219. package/cli-tool/components/commands/deployment/deployment-monitoring.md +1228 -0
  220. package/cli-tool/components/commands/deployment/hotfix-deploy.md +283 -0
  221. package/cli-tool/components/commands/deployment/prepare-release.md +357 -0
  222. package/cli-tool/components/commands/deployment/rollback-deploy.md +145 -0
  223. package/cli-tool/components/commands/deployment/setup-automated-releases.md +143 -0
  224. package/cli-tool/components/commands/deployment/setup-kubernetes-deployment.md +93 -0
  225. package/cli-tool/components/commands/documentation/create-architecture-documentation.md +95 -0
  226. package/cli-tool/components/commands/documentation/create-onboarding-guide.md +93 -0
  227. package/cli-tool/components/commands/documentation/doc-api.md +242 -0
  228. package/cli-tool/components/commands/documentation/docs-maintenance.md +119 -0
  229. package/cli-tool/components/commands/documentation/generate-api-documentation.md +97 -0
  230. package/cli-tool/components/commands/documentation/interactive-documentation.md +133 -0
  231. package/cli-tool/components/commands/documentation/load-llms-txt.md +39 -0
  232. package/cli-tool/components/commands/documentation/migration-guide.md +250 -0
  233. package/cli-tool/components/commands/documentation/troubleshooting-guide.md +370 -0
  234. package/cli-tool/components/commands/documentation/update-docs.md +107 -0
  235. package/cli-tool/components/commands/game-development/game-analytics-integration.md +128 -0
  236. package/cli-tool/components/commands/game-development/game-asset-pipeline.md +108 -0
  237. package/cli-tool/components/commands/game-development/game-performance-profiler.md +78 -0
  238. package/cli-tool/components/commands/game-development/game-testing-framework.md +112 -0
  239. package/cli-tool/components/commands/game-development/unity-project-setup.md +190 -0
  240. package/cli-tool/components/commands/git/feature.md +196 -0
  241. package/cli-tool/components/commands/git/finish.md +528 -0
  242. package/cli-tool/components/commands/git/flow-status.md +438 -0
  243. package/cli-tool/components/commands/git/hotfix.md +456 -0
  244. package/cli-tool/components/commands/git/release.md +381 -0
  245. package/cli-tool/components/commands/git-workflow/branch-cleanup.md +181 -0
  246. package/cli-tool/components/commands/git-workflow/commit.md +167 -0
  247. package/cli-tool/components/commands/git-workflow/create-pr.md +19 -0
  248. package/cli-tool/components/commands/git-workflow/create-pull-request.md +126 -0
  249. package/cli-tool/components/commands/git-workflow/create-worktrees.md +174 -0
  250. package/cli-tool/components/commands/git-workflow/fix-github-issue.md +13 -0
  251. package/cli-tool/components/commands/git-workflow/git-bisect-helper.md +261 -0
  252. package/cli-tool/components/commands/git-workflow/pr-review.md +76 -0
  253. package/cli-tool/components/commands/git-workflow/update-branch-name.md +9 -0
  254. package/cli-tool/components/commands/nextjs-vercel/nextjs-api-tester.md +480 -0
  255. package/cli-tool/components/commands/nextjs-vercel/nextjs-bundle-analyzer.md +406 -0
  256. package/cli-tool/components/commands/nextjs-vercel/nextjs-component-generator.md +489 -0
  257. package/cli-tool/components/commands/nextjs-vercel/nextjs-middleware-creator.md +712 -0
  258. package/cli-tool/components/commands/nextjs-vercel/nextjs-migration-helper.md +778 -0
  259. package/cli-tool/components/commands/nextjs-vercel/nextjs-performance-audit.md +653 -0
  260. package/cli-tool/components/commands/nextjs-vercel/nextjs-scaffold.md +237 -0
  261. package/cli-tool/components/commands/nextjs-vercel/vercel-deploy-optimize.md +341 -0
  262. package/cli-tool/components/commands/nextjs-vercel/vercel-edge-function.md +810 -0
  263. package/cli-tool/components/commands/nextjs-vercel/vercel-env-sync.md +666 -0
  264. package/cli-tool/components/commands/orchestration/archive.md +414 -0
  265. package/cli-tool/components/commands/orchestration/commit.md +305 -0
  266. package/cli-tool/components/commands/orchestration/find.md +272 -0
  267. package/cli-tool/components/commands/orchestration/log.md +355 -0
  268. package/cli-tool/components/commands/orchestration/move.md +220 -0
  269. package/cli-tool/components/commands/orchestration/optimize.md +375 -0
  270. package/cli-tool/components/commands/orchestration/remove.md +301 -0
  271. package/cli-tool/components/commands/orchestration/report.md +292 -0
  272. package/cli-tool/components/commands/orchestration/resume.md +256 -0
  273. package/cli-tool/components/commands/orchestration/start.md +169 -0
  274. package/cli-tool/components/commands/orchestration/status.md +219 -0
  275. package/cli-tool/components/commands/orchestration/sync.md +294 -0
  276. package/cli-tool/components/commands/performance/add-performance-monitoring.md +84 -0
  277. package/cli-tool/components/commands/performance/implement-caching-strategy.md +84 -0
  278. package/cli-tool/components/commands/performance/optimize-api-performance.md +119 -0
  279. package/cli-tool/components/commands/performance/optimize-build.md +139 -0
  280. package/cli-tool/components/commands/performance/optimize-bundle-size.md +84 -0
  281. package/cli-tool/components/commands/performance/optimize-database-performance.md +84 -0
  282. package/cli-tool/components/commands/performance/optimize-memory-usage.md +91 -0
  283. package/cli-tool/components/commands/performance/performance-audit.md +89 -0
  284. package/cli-tool/components/commands/performance/setup-cdn-optimization.md +84 -0
  285. package/cli-tool/components/commands/performance/system-behavior-simulator.md +415 -0
  286. package/cli-tool/components/commands/project-management/add-package.md +90 -0
  287. package/cli-tool/components/commands/project-management/add-to-changelog.md +37 -0
  288. package/cli-tool/components/commands/project-management/create-feature.md +130 -0
  289. package/cli-tool/components/commands/project-management/create-jtbd.md +37 -0
  290. package/cli-tool/components/commands/project-management/create-prd.md +36 -0
  291. package/cli-tool/components/commands/project-management/create-prp.md +37 -0
  292. package/cli-tool/components/commands/project-management/init-project.md +80 -0
  293. package/cli-tool/components/commands/project-management/milestone-tracker.md +44 -0
  294. package/cli-tool/components/commands/project-management/pac-configure.md +32 -0
  295. package/cli-tool/components/commands/project-management/pac-create-epic.md +41 -0
  296. package/cli-tool/components/commands/project-management/pac-create-ticket.md +42 -0
  297. package/cli-tool/components/commands/project-management/pac-update-status.md +39 -0
  298. package/cli-tool/components/commands/project-management/pac-validate.md +35 -0
  299. package/cli-tool/components/commands/project-management/project-health-check.md +58 -0
  300. package/cli-tool/components/commands/project-management/project-timeline-simulator.md +37 -0
  301. package/cli-tool/components/commands/project-management/project-to-linear.md +38 -0
  302. package/cli-tool/components/commands/project-management/release.md +31 -0
  303. package/cli-tool/components/commands/project-management/todo.md +62 -0
  304. package/cli-tool/components/commands/security/add-authentication-system.md +34 -0
  305. package/cli-tool/components/commands/security/dependency-audit.md +32 -0
  306. package/cli-tool/components/commands/security/penetration-test.md +40 -0
  307. package/cli-tool/components/commands/security/secrets-scanner.md +39 -0
  308. package/cli-tool/components/commands/security/security-audit.md +82 -0
  309. package/cli-tool/components/commands/security/security-hardening.md +33 -0
  310. package/cli-tool/components/commands/setup/create-database-migrations.md +35 -0
  311. package/cli-tool/components/commands/setup/design-database-schema.md +37 -0
  312. package/cli-tool/components/commands/setup/design-rest-api.md +37 -0
  313. package/cli-tool/components/commands/setup/implement-graphql-api.md +37 -0
  314. package/cli-tool/components/commands/setup/migrate-to-typescript.md +37 -0
  315. package/cli-tool/components/commands/setup/setup-ci-cd-pipeline.md +37 -0
  316. package/cli-tool/components/commands/setup/setup-development-environment.md +37 -0
  317. package/cli-tool/components/commands/setup/setup-docker-containers.md +37 -0
  318. package/cli-tool/components/commands/setup/setup-formatting.md +37 -0
  319. package/cli-tool/components/commands/setup/setup-linting.md +37 -0
  320. package/cli-tool/components/commands/setup/setup-monitoring-observability.md +37 -0
  321. package/cli-tool/components/commands/setup/setup-monorepo.md +37 -0
  322. package/cli-tool/components/commands/setup/setup-rate-limiting.md +37 -0
  323. package/cli-tool/components/commands/setup/update-dependencies.md +35 -0
  324. package/cli-tool/components/commands/simulation/business-scenario-explorer.md +37 -0
  325. package/cli-tool/components/commands/simulation/constraint-modeler.md +37 -0
  326. package/cli-tool/components/commands/simulation/decision-tree-explorer.md +37 -0
  327. package/cli-tool/components/commands/simulation/digital-twin-creator.md +37 -0
  328. package/cli-tool/components/commands/simulation/future-scenario-generator.md +37 -0
  329. package/cli-tool/components/commands/simulation/market-response-modeler.md +37 -0
  330. package/cli-tool/components/commands/simulation/monte-carlo-simulator.md +37 -0
  331. package/cli-tool/components/commands/simulation/simulation-calibrator.md +37 -0
  332. package/cli-tool/components/commands/simulation/system-dynamics-modeler.md +37 -0
  333. package/cli-tool/components/commands/simulation/timeline-compressor.md +37 -0
  334. package/cli-tool/components/commands/svelte/svelte:a11y.md +105 -0
  335. package/cli-tool/components/commands/svelte/svelte:component.md +81 -0
  336. package/cli-tool/components/commands/svelte/svelte:debug.md +48 -0
  337. package/cli-tool/components/commands/svelte/svelte:migrate.md +79 -0
  338. package/cli-tool/components/commands/svelte/svelte:optimize.md +99 -0
  339. package/cli-tool/components/commands/svelte/svelte:scaffold.md +89 -0
  340. package/cli-tool/components/commands/svelte/svelte:storybook-migrate.md +204 -0
  341. package/cli-tool/components/commands/svelte/svelte:storybook-mock.md +213 -0
  342. package/cli-tool/components/commands/svelte/svelte:storybook-setup.md +113 -0
  343. package/cli-tool/components/commands/svelte/svelte:storybook-story.md +145 -0
  344. package/cli-tool/components/commands/svelte/svelte:storybook-troubleshoot.md +191 -0
  345. package/cli-tool/components/commands/svelte/svelte:storybook.md +48 -0
  346. package/cli-tool/components/commands/svelte/svelte:test-coverage.md +77 -0
  347. package/cli-tool/components/commands/svelte/svelte:test-fix.md +74 -0
  348. package/cli-tool/components/commands/svelte/svelte:test-setup.md +85 -0
  349. package/cli-tool/components/commands/svelte/svelte:test.md +60 -0
  350. package/cli-tool/components/commands/sync/bidirectional-sync.md +37 -0
  351. package/cli-tool/components/commands/sync/bulk-import-issues.md +37 -0
  352. package/cli-tool/components/commands/sync/cross-reference-manager.md +37 -0
  353. package/cli-tool/components/commands/sync/issue-to-linear-task.md +37 -0
  354. package/cli-tool/components/commands/sync/linear-task-to-issue.md +37 -0
  355. package/cli-tool/components/commands/sync/sync-automation-setup.md +37 -0
  356. package/cli-tool/components/commands/sync/sync-conflict-resolver.md +37 -0
  357. package/cli-tool/components/commands/sync/sync-health-monitor.md +37 -0
  358. package/cli-tool/components/commands/sync/sync-issues-to-linear.md +37 -0
  359. package/cli-tool/components/commands/sync/sync-linear-to-issues.md +37 -0
  360. package/cli-tool/components/commands/sync/sync-migration-assistant.md +37 -0
  361. package/cli-tool/components/commands/sync/sync-pr-to-task.md +37 -0
  362. package/cli-tool/components/commands/sync/sync-status.md +391 -0
  363. package/cli-tool/components/commands/sync/task-from-pr.md +37 -0
  364. package/cli-tool/components/commands/team/architecture-review.md +37 -0
  365. package/cli-tool/components/commands/team/decision-quality-analyzer.md +37 -0
  366. package/cli-tool/components/commands/team/dependency-mapper.md +37 -0
  367. package/cli-tool/components/commands/team/estimate-assistant.md +37 -0
  368. package/cli-tool/components/commands/team/issue-triage.md +37 -0
  369. package/cli-tool/components/commands/team/memory-spring-cleaning.md +37 -0
  370. package/cli-tool/components/commands/team/migration-assistant.md +37 -0
  371. package/cli-tool/components/commands/team/retrospective-analyzer.md +37 -0
  372. package/cli-tool/components/commands/team/session-learning-capture.md +37 -0
  373. package/cli-tool/components/commands/team/sprint-planning.md +189 -0
  374. package/cli-tool/components/commands/team/standup-report.md +37 -0
  375. package/cli-tool/components/commands/team/team-knowledge-mapper.md +37 -0
  376. package/cli-tool/components/commands/team/team-velocity-tracker.md +37 -0
  377. package/cli-tool/components/commands/team/team-workload-balancer.md +37 -0
  378. package/cli-tool/components/commands/testing/add-mutation-testing.md +37 -0
  379. package/cli-tool/components/commands/testing/add-property-based-testing.md +37 -0
  380. package/cli-tool/components/commands/testing/e2e-setup.md +37 -0
  381. package/cli-tool/components/commands/testing/generate-test-cases.md +37 -0
  382. package/cli-tool/components/commands/testing/generate-tests.md +82 -0
  383. package/cli-tool/components/commands/testing/setup-comprehensive-testing.md +37 -0
  384. package/cli-tool/components/commands/testing/setup-load-testing.md +37 -0
  385. package/cli-tool/components/commands/testing/setup-visual-testing.md +37 -0
  386. package/cli-tool/components/commands/testing/test-automation-orchestrator.md +37 -0
  387. package/cli-tool/components/commands/testing/test-changelog-automation.md +37 -0
  388. package/cli-tool/components/commands/testing/test-coverage.md +37 -0
  389. package/cli-tool/components/commands/testing/test-quality-analyzer.md +37 -0
  390. package/cli-tool/components/commands/testing/testing_plan_integration.md +37 -0
  391. package/cli-tool/components/commands/testing/write-tests.md +37 -0
  392. package/cli-tool/components/commands/utilities/all-tools.md +31 -0
  393. package/cli-tool/components/commands/utilities/architecture-scenario-explorer.md +375 -0
  394. package/cli-tool/components/commands/utilities/check-file.md +53 -0
  395. package/cli-tool/components/commands/utilities/clean-branches.md +243 -0
  396. package/cli-tool/components/commands/utilities/clean.md +1 -0
  397. package/cli-tool/components/commands/utilities/code-permutation-tester.md +341 -0
  398. package/cli-tool/components/commands/utilities/code-review.md +70 -0
  399. package/cli-tool/components/commands/utilities/code-to-task.md +583 -0
  400. package/cli-tool/components/commands/utilities/context-prime.md +1 -0
  401. package/cli-tool/components/commands/utilities/debug-error.md +121 -0
  402. package/cli-tool/components/commands/utilities/directory-deep-dive.md +34 -0
  403. package/cli-tool/components/commands/utilities/explain-code.md +194 -0
  404. package/cli-tool/components/commands/utilities/fix-issue.md +85 -0
  405. package/cli-tool/components/commands/utilities/generate-linear-worklog.md +113 -0
  406. package/cli-tool/components/commands/utilities/git-status.md +39 -0
  407. package/cli-tool/components/commands/utilities/initref.md +3 -0
  408. package/cli-tool/components/commands/utilities/prime.md +41 -0
  409. package/cli-tool/components/commands/utilities/refactor-code.md +116 -0
  410. package/cli-tool/components/commands/utilities/ultra-think.md +153 -0
  411. package/cli-tool/components/hooks/HOOK_PATTERNS_COMPRESSED.json +1 -0
  412. package/cli-tool/components/hooks/automation/agents-md-loader.json +17 -0
  413. package/cli-tool/components/hooks/automation/build-on-change.json +16 -0
  414. package/cli-tool/components/hooks/automation/dependency-checker.json +16 -0
  415. package/cli-tool/components/hooks/automation/deployment-health-monitor.json +29 -0
  416. package/cli-tool/components/hooks/automation/discord-detailed-notifications.json +26 -0
  417. package/cli-tool/components/hooks/automation/discord-error-notifications.json +37 -0
  418. package/cli-tool/components/hooks/automation/discord-notifications.json +25 -0
  419. package/cli-tool/components/hooks/automation/simple-notifications.json +16 -0
  420. package/cli-tool/components/hooks/automation/slack-detailed-notifications.json +26 -0
  421. package/cli-tool/components/hooks/automation/slack-error-notifications.json +37 -0
  422. package/cli-tool/components/hooks/automation/slack-notifications.json +25 -0
  423. package/cli-tool/components/hooks/automation/telegram-detailed-notifications.json +26 -0
  424. package/cli-tool/components/hooks/automation/telegram-error-notifications.json +37 -0
  425. package/cli-tool/components/hooks/automation/telegram-notifications.json +25 -0
  426. package/cli-tool/components/hooks/automation/vercel-auto-deploy.json +17 -0
  427. package/cli-tool/components/hooks/automation/vercel-environment-sync.json +29 -0
  428. package/cli-tool/components/hooks/development-tools/change-tracker.json +25 -0
  429. package/cli-tool/components/hooks/development-tools/command-logger.json +16 -0
  430. package/cli-tool/components/hooks/development-tools/file-backup.json +16 -0
  431. package/cli-tool/components/hooks/development-tools/lint-on-save.json +16 -0
  432. package/cli-tool/components/hooks/development-tools/nextjs-code-quality-enforcer.json +17 -0
  433. package/cli-tool/components/hooks/development-tools/smart-formatting.json +16 -0
  434. package/cli-tool/components/hooks/git/conventional-commits.json +16 -0
  435. package/cli-tool/components/hooks/git/conventional-commits.py +84 -0
  436. package/cli-tool/components/hooks/git/prevent-direct-push.json +16 -0
  437. package/cli-tool/components/hooks/git/prevent-direct-push.py +86 -0
  438. package/cli-tool/components/hooks/git/validate-branch-name.json +16 -0
  439. package/cli-tool/components/hooks/git/validate-branch-name.py +96 -0
  440. package/cli-tool/components/hooks/git-workflow/auto-git-add.json +16 -0
  441. package/cli-tool/components/hooks/git-workflow/smart-commit.json +25 -0
  442. package/cli-tool/components/hooks/performance/performance-budget-guard.json +27 -0
  443. package/cli-tool/components/hooks/performance/performance-monitor.json +27 -0
  444. package/cli-tool/components/hooks/post-tool/format-javascript-files.json +16 -0
  445. package/cli-tool/components/hooks/post-tool/format-python-files.json +16 -0
  446. package/cli-tool/components/hooks/post-tool/git-add-changes.json +25 -0
  447. package/cli-tool/components/hooks/post-tool/run-tests-after-changes.json +16 -0
  448. package/cli-tool/components/hooks/pre-tool/backup-before-edit.json +16 -0
  449. package/cli-tool/components/hooks/pre-tool/notify-before-bash.json +16 -0
  450. package/cli-tool/components/hooks/pre-tool/update-search-year.json +17 -0
  451. package/cli-tool/components/hooks/security/file-protection.json +16 -0
  452. package/cli-tool/components/hooks/security/security-scanner.json +16 -0
  453. package/cli-tool/components/hooks/testing/test-runner.json +16 -0
  454. package/cli-tool/components/mcps/browser_automation/browser-use-mcp-server.json +20 -0
  455. package/cli-tool/components/mcps/browser_automation/browsermcp.json +9 -0
  456. package/cli-tool/components/mcps/browser_automation/mcp-server-browserbase.json +14 -0
  457. package/cli-tool/components/mcps/browser_automation/mcp-server-playwright.json +9 -0
  458. package/cli-tool/components/mcps/browser_automation/playwright-mcp-server.json +9 -0
  459. package/cli-tool/components/mcps/browser_automation/playwright-mcp.json +11 -0
  460. package/cli-tool/components/mcps/database/mysql-integration.json +12 -0
  461. package/cli-tool/components/mcps/database/neon.json +9 -0
  462. package/cli-tool/components/mcps/database/postgresql-integration.json +12 -0
  463. package/cli-tool/components/mcps/database/supabase.json +17 -0
  464. package/cli-tool/components/mcps/deepgraph/deepgraph-nextjs.json +13 -0
  465. package/cli-tool/components/mcps/deepgraph/deepgraph-react.json +13 -0
  466. package/cli-tool/components/mcps/deepgraph/deepgraph-typescript.json +13 -0
  467. package/cli-tool/components/mcps/deepgraph/deepgraph-vue.json +13 -0
  468. package/cli-tool/components/mcps/devtools/azure-kubernetes-service.json +11 -0
  469. package/cli-tool/components/mcps/devtools/box.json +14 -0
  470. package/cli-tool/components/mcps/devtools/circleci.json +13 -0
  471. package/cli-tool/components/mcps/devtools/codacy.json +12 -0
  472. package/cli-tool/components/mcps/devtools/context7.json +9 -0
  473. package/cli-tool/components/mcps/devtools/dynatrace.json +13 -0
  474. package/cli-tool/components/mcps/devtools/elasticsearch.json +18 -0
  475. package/cli-tool/components/mcps/devtools/figma-dev-mode.json +8 -0
  476. package/cli-tool/components/mcps/devtools/firecrawl.json +12 -0
  477. package/cli-tool/components/mcps/devtools/firefly-mcp.json +13 -0
  478. package/cli-tool/components/mcps/devtools/huggingface.json +11 -0
  479. package/cli-tool/components/mcps/devtools/imagesorcery.json +11 -0
  480. package/cli-tool/components/mcps/devtools/ios-simulator-mcp.json +9 -0
  481. package/cli-tool/components/mcps/devtools/jfrog.json +8 -0
  482. package/cli-tool/components/mcps/devtools/just-mcp.json +9 -0
  483. package/cli-tool/components/mcps/devtools/launchdarkly.json +12 -0
  484. package/cli-tool/components/mcps/devtools/leetcode.json +8 -0
  485. package/cli-tool/components/mcps/devtools/logfire.json +9 -0
  486. package/cli-tool/components/mcps/devtools/markitdown.json +14 -0
  487. package/cli-tool/components/mcps/devtools/mcp-server-atlassian-bitbucket.json +9 -0
  488. package/cli-tool/components/mcps/devtools/mcp-server-trello.json +12 -0
  489. package/cli-tool/components/mcps/devtools/microsoft-clarity.json +11 -0
  490. package/cli-tool/components/mcps/devtools/microsoft-dev-box.json +9 -0
  491. package/cli-tool/components/mcps/devtools/mongodb.json +12 -0
  492. package/cli-tool/components/mcps/devtools/postman.json +12 -0
  493. package/cli-tool/components/mcps/devtools/sentry.json +8 -0
  494. package/cli-tool/components/mcps/devtools/serena.json +9 -0
  495. package/cli-tool/components/mcps/devtools/stripe.json +12 -0
  496. package/cli-tool/components/mcps/devtools/terraform.json +14 -0
  497. package/cli-tool/components/mcps/devtools/webflow.json +8 -0
  498. package/cli-tool/components/mcps/filesystem/filesystem-access.json +13 -0
  499. package/cli-tool/components/mcps/integration/github-integration.json +12 -0
  500. package/cli-tool/components/mcps/integration/memory-integration.json +9 -0
  501. package/cli-tool/components/mcps/marketing/facebook-ads-mcp-server.json +13 -0
  502. package/cli-tool/components/mcps/marketing/google-ads-mcp-server.json +11 -0
  503. package/cli-tool/components/mcps/productivity/monday.json +14 -0
  504. package/cli-tool/components/mcps/productivity/notion.json +12 -0
  505. package/cli-tool/components/mcps/web/web-fetch.json +9 -0
  506. package/cli-tool/components/settings/api/bedrock-configuration.json +7 -0
  507. package/cli-tool/components/settings/api/corporate-proxy.json +7 -0
  508. package/cli-tool/components/settings/api/custom-headers.json +6 -0
  509. package/cli-tool/components/settings/api/vertex-configuration.json +17 -0
  510. package/cli-tool/components/settings/authentication/api-key-helper.json +7 -0
  511. package/cli-tool/components/settings/authentication/force-claudeai-login.json +4 -0
  512. package/cli-tool/components/settings/authentication/force-console-login.json +4 -0
  513. package/cli-tool/components/settings/cleanup/retention-7-days.json +4 -0
  514. package/cli-tool/components/settings/cleanup/retention-90-days.json +4 -0
  515. package/cli-tool/components/settings/environment/bash-timeouts.json +8 -0
  516. package/cli-tool/components/settings/environment/development-utils.json +8 -0
  517. package/cli-tool/components/settings/environment/performance-optimization.json +8 -0
  518. package/cli-tool/components/settings/environment/privacy-focused.json +10 -0
  519. package/cli-tool/components/settings/git/git-flow-settings.json +79 -0
  520. package/cli-tool/components/settings/global/aws-credentials.json +5 -0
  521. package/cli-tool/components/settings/global/custom-model.json +7 -0
  522. package/cli-tool/components/settings/global/git-commit-settings.json +4 -0
  523. package/cli-tool/components/settings/mcp/disable-risky-servers.json +8 -0
  524. package/cli-tool/components/settings/mcp/enable-all-project-servers.json +4 -0
  525. package/cli-tool/components/settings/mcp/enable-specific-servers.json +8 -0
  526. package/cli-tool/components/settings/mcp/mcp-timeouts.json +8 -0
  527. package/cli-tool/components/settings/model/use-haiku.json +4 -0
  528. package/cli-tool/components/settings/model/use-sonnet.json +4 -0
  529. package/cli-tool/components/settings/permissions/additional-directories.json +11 -0
  530. package/cli-tool/components/settings/permissions/allow-git-operations.json +14 -0
  531. package/cli-tool/components/settings/permissions/allow-npm-commands.json +11 -0
  532. package/cli-tool/components/settings/permissions/deny-sensitive-files.json +11 -0
  533. package/cli-tool/components/settings/permissions/development-mode.json +31 -0
  534. package/cli-tool/components/settings/permissions/read-only-mode.json +18 -0
  535. package/cli-tool/components/settings/statusline/asset-pipeline-controller-statusline.json +7 -0
  536. package/cli-tool/components/settings/statusline/bug-circus-statusline.json +7 -0
  537. package/cli-tool/components/settings/statusline/code-casino-statusline.json +7 -0
  538. package/cli-tool/components/settings/statusline/code-spaceship-statusline.json +7 -0
  539. package/cli-tool/components/settings/statusline/colorful-statusline.json +7 -0
  540. package/cli-tool/components/settings/statusline/command-statusline.json +8 -0
  541. package/cli-tool/components/settings/statusline/context-monitor.json +7 -0
  542. package/cli-tool/components/settings/statusline/context-monitor.py +236 -0
  543. package/cli-tool/components/settings/statusline/data-ocean-statusline.json +7 -0
  544. package/cli-tool/components/settings/statusline/emotion-theater-statusline.json +7 -0
  545. package/cli-tool/components/settings/statusline/game-performance-monitor-statusline.json +7 -0
  546. package/cli-tool/components/settings/statusline/git-branch-statusline.json +7 -0
  547. package/cli-tool/components/settings/statusline/git-flow-status.json +7 -0
  548. package/cli-tool/components/settings/statusline/minimal-statusline.json +7 -0
  549. package/cli-tool/components/settings/statusline/multiplatform-build-status-statusline.json +7 -0
  550. package/cli-tool/components/settings/statusline/neon-database-dev.json +7 -0
  551. package/cli-tool/components/settings/statusline/neon-database-resources.json +7 -0
  552. package/cli-tool/components/settings/statusline/productivity-rainbow-statusline.json +7 -0
  553. package/cli-tool/components/settings/statusline/programmer-tamagotchi-statusline.json +7 -0
  554. package/cli-tool/components/settings/statusline/programming-fitness-tracker-statusline.json +7 -0
  555. package/cli-tool/components/settings/statusline/project-info-statusline.json +7 -0
  556. package/cli-tool/components/settings/statusline/rpg-status-bar-statusline.json +7 -0
  557. package/cli-tool/components/settings/statusline/time-statusline.json +7 -0
  558. package/cli-tool/components/settings/statusline/unity-project-dashboard-statusline.json +7 -0
  559. package/cli-tool/components/settings/statusline/vercel-deployment-monitor.json +7 -0
  560. package/cli-tool/components/settings/statusline/vercel-error-alert-system.json +7 -0
  561. package/cli-tool/components/settings/statusline/vercel-multi-env-status.json +7 -0
  562. package/cli-tool/components/settings/statusline/virtual-code-garden-statusline.json +7 -0
  563. package/cli-tool/components/settings/statusline/zero-config-deployment-monitor.json +7 -0
  564. package/cli-tool/components/settings/telemetry/custom-telemetry.json +7 -0
  565. package/cli-tool/components/settings/telemetry/disable-telemetry.json +6 -0
  566. package/cli-tool/components/settings/telemetry/enable-telemetry.json +6 -0
  567. package/cli-tool/docs_to_claude/ANALYTICS_STATE_DETECTION.md +183 -0
  568. package/cli-tool/docs_to_claude/ARCHITECTURE.md +472 -0
  569. package/cli-tool/docs_to_claude/BLOG_WRITING_GUIDE.md +438 -0
  570. package/cli-tool/docs_to_claude/CLAUDE_DATA_STRUCTURE.md +400 -0
  571. package/cli-tool/docs_to_claude/COMMANDS_GUIDE.md +1035 -0
  572. package/cli-tool/docs_to_claude/CONVERSATION_STATE_IMPROVEMENTS.md +154 -0
  573. package/cli-tool/docs_to_claude/DEBUG_TYPING_DETECTION.md +95 -0
  574. package/cli-tool/docs_to_claude/DOWNLOAD_TRACKING.md +291 -0
  575. package/cli-tool/docs_to_claude/ENHANCED_STATE_DETECTION.md +122 -0
  576. package/cli-tool/docs_to_claude/HEALTH_CHECK_IMPLEMENTATION.md +135 -0
  577. package/cli-tool/docs_to_claude/HOOKS_GUIDE.md +1249 -0
  578. package/cli-tool/docs_to_claude/STATUSLINE_GUIDE.md +1123 -0
  579. package/cli-tool/docs_to_claude/SUBAGENTS_GUIDE.md +566 -0
  580. package/cli-tool/docs_to_claude/SUB_AGENTS.md +329 -0
  581. package/cli-tool/jest.config.js +84 -0
  582. package/cli-tool/package-lock.json +5471 -0
  583. package/cli-tool/package.json +96 -0
  584. package/{src → cli-tool/src}/index.js +41 -1
  585. package/cli-tool/templates/common/.claude/commands/git-workflow.md +239 -0
  586. package/cli-tool/templates/common/.claude/commands/project-setup.md +316 -0
  587. package/cli-tool/templates/common/.mcp.json +41 -0
  588. package/cli-tool/templates/common/CLAUDE.md +109 -0
  589. package/cli-tool/templates/common/README.md +96 -0
  590. package/cli-tool/templates/go/.mcp.json +78 -0
  591. package/cli-tool/templates/go/README.md +25 -0
  592. package/cli-tool/templates/javascript-typescript/.claude/commands/api-endpoint.md +51 -0
  593. package/cli-tool/templates/javascript-typescript/.claude/commands/debug.md +52 -0
  594. package/cli-tool/templates/javascript-typescript/.claude/commands/lint.md +48 -0
  595. package/cli-tool/templates/javascript-typescript/.claude/commands/npm-scripts.md +48 -0
  596. package/cli-tool/templates/javascript-typescript/.claude/commands/refactor.md +55 -0
  597. package/cli-tool/templates/javascript-typescript/.claude/commands/test.md +61 -0
  598. package/cli-tool/templates/javascript-typescript/.claude/commands/typescript-migrate.md +51 -0
  599. package/cli-tool/templates/javascript-typescript/.claude/settings.json +142 -0
  600. package/cli-tool/templates/javascript-typescript/.mcp.json +80 -0
  601. package/cli-tool/templates/javascript-typescript/CLAUDE.md +185 -0
  602. package/cli-tool/templates/javascript-typescript/README.md +259 -0
  603. package/cli-tool/templates/javascript-typescript/examples/angular-app/.claude/commands/components.md +63 -0
  604. package/cli-tool/templates/javascript-typescript/examples/angular-app/.claude/commands/services.md +62 -0
  605. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/api-endpoint.md +46 -0
  606. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/database.md +56 -0
  607. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/middleware.md +61 -0
  608. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/route.md +57 -0
  609. package/cli-tool/templates/javascript-typescript/examples/node-api/CLAUDE.md +102 -0
  610. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/component.md +29 -0
  611. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/hooks.md +44 -0
  612. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/state-management.md +45 -0
  613. package/cli-tool/templates/javascript-typescript/examples/react-app/CLAUDE.md +81 -0
  614. package/cli-tool/templates/javascript-typescript/examples/react-app/agents/react-performance-optimization.md +530 -0
  615. package/cli-tool/templates/javascript-typescript/examples/react-app/agents/react-state-management.md +295 -0
  616. package/cli-tool/templates/javascript-typescript/examples/vue-app/.claude/commands/components.md +46 -0
  617. package/cli-tool/templates/javascript-typescript/examples/vue-app/.claude/commands/composables.md +51 -0
  618. package/cli-tool/templates/python/.claude/commands/lint.md +111 -0
  619. package/cli-tool/templates/python/.claude/commands/test.md +73 -0
  620. package/cli-tool/templates/python/.claude/settings.json +153 -0
  621. package/cli-tool/templates/python/.mcp.json +78 -0
  622. package/cli-tool/templates/python/CLAUDE.md +276 -0
  623. package/cli-tool/templates/python/examples/django-app/.claude/commands/admin.md +264 -0
  624. package/cli-tool/templates/python/examples/django-app/.claude/commands/django-model.md +124 -0
  625. package/cli-tool/templates/python/examples/django-app/.claude/commands/views.md +222 -0
  626. package/cli-tool/templates/python/examples/django-app/CLAUDE.md +313 -0
  627. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/api-endpoints.md +513 -0
  628. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/auth.md +775 -0
  629. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/database.md +657 -0
  630. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/deployment.md +160 -0
  631. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/testing.md +927 -0
  632. package/cli-tool/templates/python/examples/fastapi-app/CLAUDE.md +229 -0
  633. package/cli-tool/templates/python/examples/flask-app/.claude/commands/app-factory.md +384 -0
  634. package/cli-tool/templates/python/examples/flask-app/.claude/commands/blueprint.md +243 -0
  635. package/cli-tool/templates/python/examples/flask-app/.claude/commands/database.md +410 -0
  636. package/cli-tool/templates/python/examples/flask-app/.claude/commands/deployment.md +620 -0
  637. package/cli-tool/templates/python/examples/flask-app/.claude/commands/flask-route.md +217 -0
  638. package/cli-tool/templates/python/examples/flask-app/.claude/commands/testing.md +559 -0
  639. package/cli-tool/templates/python/examples/flask-app/CLAUDE.md +391 -0
  640. package/cli-tool/templates/ruby/.claude/commands/model.md +360 -0
  641. package/cli-tool/templates/ruby/.claude/commands/test.md +480 -0
  642. package/cli-tool/templates/ruby/.claude/settings.json +146 -0
  643. package/cli-tool/templates/ruby/.mcp.json +83 -0
  644. package/cli-tool/templates/ruby/CLAUDE.md +284 -0
  645. package/cli-tool/templates/ruby/examples/rails-app/.claude/commands/authentication.md +490 -0
  646. package/cli-tool/templates/ruby/examples/rails-app/CLAUDE.md +376 -0
  647. package/cli-tool/templates/rust/.mcp.json +78 -0
  648. package/cli-tool/templates/rust/README.md +26 -0
  649. package/cli-tool/test-commands.sh +85 -0
  650. package/cli-tool/test-detailed.sh +267 -0
  651. package/dev-server.js +46 -0
  652. package/docs/CNAME +1 -0
  653. package/docs/README.md +49 -0
  654. package/docs/_config.yml +43 -0
  655. package/docs/api/agents.json +942 -0
  656. package/docs/blog/assets/aitmpl-nextjs-search.png +0 -0
  657. package/docs/blog/assets/aitmpl-supabase-search.png +0 -0
  658. package/docs/blog/assets/e2b-claude-code-sandbox-cover.png +0 -0
  659. package/docs/blog/assets/nextjs-vercel-claude-code-templates-cover.png +0 -0
  660. package/docs/blog/assets/supabase-claude-code-templates-cover.png +0 -0
  661. package/docs/blog/e2b-claude-code-sandbox/index.html +908 -0
  662. package/docs/blog/index.html +274 -0
  663. package/docs/blog/nextjs-vercel-claude-code-integration/index.html +1032 -0
  664. package/docs/blog/supabase-claude-code-integration/index.html +848 -0
  665. package/docs/claude-jobs.json +163 -0
  666. package/docs/component.html +506 -0
  667. package/docs/components-metadata.json +303 -0
  668. package/docs/components.json +4952 -0
  669. package/docs/css/blog.css +821 -0
  670. package/docs/css/component-page.css +1063 -0
  671. package/docs/css/stack-page.css +776 -0
  672. package/docs/css/styles.css +4540 -0
  673. package/docs/css/trending.css +1441 -0
  674. package/docs/css/workflows-modal.css +739 -0
  675. package/docs/css/workflows.css +1234 -0
  676. package/docs/download-stats.html +527 -0
  677. package/docs/index.html +627 -0
  678. package/docs/jobs.html +1059 -0
  679. package/docs/js/carousel.js +177 -0
  680. package/docs/js/cart-manager.js +658 -0
  681. package/docs/js/component-page.js +808 -0
  682. package/docs/js/data-loader.js +633 -0
  683. package/docs/js/generate-search-data.js +82 -0
  684. package/docs/js/index-events.js +1812 -0
  685. package/docs/js/modal-helpers.js +345 -0
  686. package/docs/js/script.js +2167 -0
  687. package/docs/js/search-functionality.js +1165 -0
  688. package/docs/js/stack-router.js +561 -0
  689. package/docs/js/trending.js +752 -0
  690. package/docs/js/utils.js +43 -0
  691. package/docs/js/workflows-events.js +1146 -0
  692. package/docs/js/workflows.js +627 -0
  693. package/docs/robots.txt +28 -0
  694. package/docs/sandbox-interface.html +1418 -0
  695. package/docs/sitemap.xml +193 -0
  696. package/docs/static/img/logo.png +0 -0
  697. package/docs/static/img/logo.svg +23 -0
  698. package/docs/trending-data.json +885 -0
  699. package/docs/trending.html +238 -0
  700. package/docs/vercel.json +36 -0
  701. package/docs/workflows.html +391 -0
  702. package/docu/README.md +41 -0
  703. package/docu/docs/cli-options.md +90 -0
  704. package/docu/docs/components/agents.md +113 -0
  705. package/docu/docs/components/commands.md +90 -0
  706. package/docu/docs/components/hooks.md +114 -0
  707. package/docu/docs/components/mcps.md +109 -0
  708. package/docu/docs/components/overview.md +73 -0
  709. package/docu/docs/components/settings.md +105 -0
  710. package/docu/docs/components/templates.md +119 -0
  711. package/docu/docs/intro.md +40 -0
  712. package/docu/docs/safety-features.md +13 -0
  713. package/docu/docs/support.md +13 -0
  714. package/docu/docs/tools/analytics.md +23 -0
  715. package/docu/docs/tools/chats.md +33 -0
  716. package/docu/docs/tools/health-check.md +60 -0
  717. package/docu/docs/tools/overview.md +39 -0
  718. package/docu/docs/tools/sandbox.md +61 -0
  719. package/docu/docs/tools/tunnel.md +38 -0
  720. package/docu/docusaurus.config.ts +169 -0
  721. package/docu/package-lock.json +16185 -0
  722. package/docu/package.json +47 -0
  723. package/docu/sidebars.ts +49 -0
  724. package/docu/src/components/HomepageFeatures/index.tsx +82 -0
  725. package/docu/src/components/HomepageFeatures/styles.module.css +131 -0
  726. package/docu/src/css/custom.css +849 -0
  727. package/docu/src/pages/index.module.css +111 -0
  728. package/docu/src/pages/index.tsx +65 -0
  729. package/docu/src/pages/markdown-page.md +7 -0
  730. package/docu/static/img/favicon.ico +0 -0
  731. package/docu/static/img/logo.svg +23 -0
  732. package/docu/tsconfig.json +8 -0
  733. package/docu/vercel.json +11 -0
  734. package/generate_agents_api.py +65 -0
  735. package/generate_claude_jobs.py +985 -0
  736. package/generate_components_json.py +391 -0
  737. package/package.json +21 -74
  738. package/social-preview.png +0 -0
  739. package/test_serpapi.py +36 -0
  740. package/vercel.json +111 -0
  741. /package/{bin → cli-tool/bin}/create-claude-config.js +0 -0
  742. /package/{components → cli-tool/components}/sandbox/README.md +0 -0
  743. /package/{components → cli-tool/components}/sandbox/e2b/.env.example +0 -0
  744. /package/{components → cli-tool/components}/sandbox/e2b/SANDBOX_DEBUGGING.md +0 -0
  745. /package/{components → cli-tool/components}/sandbox/e2b/claude-code-sandbox.md +0 -0
  746. /package/{components → cli-tool/components}/sandbox/e2b/e2b-launcher.py +0 -0
  747. /package/{components → cli-tool/components}/sandbox/e2b/e2b-monitor.py +0 -0
  748. /package/{components → cli-tool/components}/sandbox/e2b/requirements.txt +0 -0
  749. /package/{src → cli-tool/src}/agents.js +0 -0
  750. /package/{src → cli-tool/src}/analytics/core/AgentAnalyzer.js +0 -0
  751. /package/{src → cli-tool/src}/analytics/core/ConversationAnalyzer.js +0 -0
  752. /package/{src → cli-tool/src}/analytics/core/FileWatcher.js +0 -0
  753. /package/{src → cli-tool/src}/analytics/core/ProcessDetector.js +0 -0
  754. /package/{src → cli-tool/src}/analytics/core/SessionAnalyzer.js +0 -0
  755. /package/{src → cli-tool/src}/analytics/core/StateCalculator.js +0 -0
  756. /package/{src → cli-tool/src}/analytics/data/DataCache.js +0 -0
  757. /package/{src → cli-tool/src}/analytics/notifications/NotificationManager.js +0 -0
  758. /package/{src → cli-tool/src}/analytics/notifications/WebSocketServer.js +0 -0
  759. /package/{src → cli-tool/src}/analytics/utils/PerformanceMonitor.js +0 -0
  760. /package/{src → cli-tool/src}/analytics-web/FRONT_ARCHITECTURE.md +0 -0
  761. /package/{src → cli-tool/src}/analytics-web/assets/js/main.js.deprecated +0 -0
  762. /package/{src → cli-tool/src}/analytics-web/chats_mobile.html +0 -0
  763. /package/{src → cli-tool/src}/analytics-web/components/ActivityHeatmap.js +0 -0
  764. /package/{src → cli-tool/src}/analytics-web/components/AgentAnalytics.js +0 -0
  765. /package/{src → cli-tool/src}/analytics-web/components/App.js +0 -0
  766. /package/{src → cli-tool/src}/analytics-web/components/Charts.js +0 -0
  767. /package/{src → cli-tool/src}/analytics-web/components/ConversationTable.js +0 -0
  768. /package/{src → cli-tool/src}/analytics-web/components/DashboardPage.js +0 -0
  769. /package/{src → cli-tool/src}/analytics-web/components/HeaderComponent.js +0 -0
  770. /package/{src → cli-tool/src}/analytics-web/components/SessionTimer.js +0 -0
  771. /package/{src → cli-tool/src}/analytics-web/components/Sidebar.js +0 -0
  772. /package/{src → cli-tool/src}/analytics-web/components/ToolDisplay.js +0 -0
  773. /package/{src → cli-tool/src}/analytics-web/index.html +0 -0
  774. /package/{src → cli-tool/src}/analytics-web/index.html.original +0 -0
  775. /package/{src → cli-tool/src}/analytics-web/services/DataService.js +0 -0
  776. /package/{src → cli-tool/src}/analytics-web/services/StateService.js +0 -0
  777. /package/{src → cli-tool/src}/analytics-web/services/WebSocketService.js +0 -0
  778. /package/{src → cli-tool/src}/analytics.js +0 -0
  779. /package/{src → cli-tool/src}/chats-mobile.js +0 -0
  780. /package/{src → cli-tool/src}/claude-api-proxy.js +0 -0
  781. /package/{src → cli-tool/src}/command-scanner.js +0 -0
  782. /package/{src → cli-tool/src}/command-stats.js +0 -0
  783. /package/{src → cli-tool/src}/console-bridge.js +0 -0
  784. /package/{src → cli-tool/src}/file-operations.js +0 -0
  785. /package/{src → cli-tool/src}/health-check.js +0 -0
  786. /package/{src → cli-tool/src}/hook-scanner.js +0 -0
  787. /package/{src → cli-tool/src}/hook-stats.js +0 -0
  788. /package/{src → cli-tool/src}/mcp-stats.js +0 -0
  789. /package/{src → cli-tool/src}/prompts.js +0 -0
  790. /package/{src → cli-tool/src}/sandbox-interface.html +0 -0
  791. /package/{src → cli-tool/src}/sandbox-server.js +0 -0
  792. /package/{src → cli-tool/src}/sdk/global-agent-manager.js +0 -0
  793. /package/{src → cli-tool/src}/templates.js +0 -0
  794. /package/{src → cli-tool/src}/test-console-bridge.js +0 -0
  795. /package/{src → cli-tool/src}/tracking-service.js +0 -0
  796. /package/{src → cli-tool/src}/utils.js +0 -0
  797. /package/{src/analytics.log → docu/static/.nojekyll} +0 -0
@@ -0,0 +1,4540 @@
1
+ /* Terminal theme CSS based on Claude Code Analytics dashboard */
2
+ :root {
3
+ /* Dark theme colors (terminal style) */
4
+ --bg-primary: #0d1117;
5
+ --bg-secondary: #161b22;
6
+ --bg-tertiary: #21262d;
7
+ --border-primary: #30363d;
8
+ --border-secondary: #21262d;
9
+ --border-color: #30363d;
10
+ --text-primary: #c9d1d9;
11
+ --text-secondary: #7d8590;
12
+ --text-accent: #d57455;
13
+ --text-success: #3fb950;
14
+ --text-warning: #f97316;
15
+ --text-error: #f85149;
16
+ --text-info: #a5d6ff;
17
+ --accent-color: #d97706;
18
+ --shadow-primary: rgba(0, 0, 0, 0.4);
19
+ --shadow-secondary: rgba(1, 4, 9, 0.85);
20
+ }
21
+
22
+ /* Reset and base styles */
23
+ * {
24
+ margin: 0;
25
+ padding: 0;
26
+ box-sizing: border-box;
27
+ }
28
+
29
+ body {
30
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
31
+ background: var(--bg-primary);
32
+ color: var(--text-primary);
33
+ min-height: 100vh;
34
+ line-height: 1.4;
35
+ transition: background-color 0.3s ease, color 0.3s ease;
36
+ }
37
+
38
+ .container {
39
+ max-width: 1400px;
40
+ margin: 0 auto;
41
+ padding: 0 20px;
42
+ }
43
+
44
+ /* Header */
45
+ .header {
46
+ background: var(--bg-secondary);
47
+ border-bottom: 1px solid var(--border-primary);
48
+ position: sticky;
49
+ top: 0;
50
+ z-index: 100;
51
+ }
52
+
53
+ .header-content {
54
+ display: flex;
55
+ justify-content: space-between;
56
+ align-items: flex-start;
57
+ padding: 1rem 0;
58
+ gap: 1rem;
59
+ }
60
+
61
+ .header .terminal-header {
62
+ border-bottom: none;
63
+ padding-bottom: 0;
64
+ margin-bottom: 0;
65
+ flex: 1;
66
+ }
67
+
68
+ .header .ascii-title {
69
+ margin-bottom: 0.5rem;
70
+ }
71
+
72
+ .header .ascii-art {
73
+ font-size: clamp(0.4rem, 0.8vw, 0.6rem);
74
+ line-height: 1;
75
+ color: var(--text-accent);
76
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
77
+ margin: 0;
78
+ overflow: visible;
79
+ white-space: pre;
80
+ text-align: center;
81
+ width: 100%;
82
+ }
83
+
84
+ .header .terminal-subtitle {
85
+ display: block;
86
+ color: var(--text-secondary);
87
+ font-size: 0.8rem;
88
+ margin: 0;
89
+ text-align: center;
90
+ }
91
+
92
+ .header .status-dot {
93
+ display: inline-block;
94
+ margin-right: 0.5rem;
95
+ }
96
+
97
+ .header-actions {
98
+ display: flex;
99
+ gap: 1rem;
100
+ align-items: center;
101
+ }
102
+
103
+ .github-link, .header-btn {
104
+ display: flex;
105
+ align-items: center;
106
+ gap: 0.4rem;
107
+ color: var(--text-primary);
108
+ text-decoration: none;
109
+ padding: 0.4rem 0.8rem;
110
+ border-radius: 6px;
111
+ background: var(--bg-tertiary);
112
+ border: 1px solid var(--border-primary);
113
+ transition: all 0.2s ease;
114
+ font-size: 0.85rem;
115
+ font-weight: normal;
116
+ }
117
+
118
+ .github-link:hover, .header-btn:hover {
119
+ background: var(--bg-primary);
120
+ border-color: var(--border-secondary);
121
+ transform: translateY(-1px);
122
+ }
123
+
124
+ /* Terminal main content */
125
+ .terminal {
126
+ max-width: 1400px;
127
+ margin: 0 auto;
128
+ padding: 20px;
129
+ }
130
+
131
+ .terminal-header {
132
+ border-bottom: 1px solid var(--border-primary);
133
+ padding-bottom: 20px;
134
+ margin-bottom: 30px;
135
+ position: relative;
136
+ }
137
+
138
+ .ascii-title {
139
+ margin-bottom: 20px;
140
+ }
141
+
142
+ .ascii-art {
143
+ color: var(--text-accent);
144
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
145
+ font-size: clamp(0.3rem, 0.8vw, 0.7rem);
146
+ line-height: 1.1;
147
+ margin: 0;
148
+ overflow-x: auto;
149
+ white-space: pre;
150
+ text-align: left;
151
+ }
152
+
153
+ .terminal-title {
154
+ color: var(--text-accent);
155
+ font-size: 1.25rem;
156
+ font-weight: normal;
157
+ display: flex;
158
+ align-items: center;
159
+ gap: 8px;
160
+ justify-content: center;
161
+ }
162
+
163
+ .status-dot {
164
+ width: 8px;
165
+ height: 8px;
166
+ border-radius: 50%;
167
+ background: var(--text-success);
168
+ animation: pulse 2s infinite;
169
+ flex-shrink: 0;
170
+ }
171
+
172
+ @keyframes pulse {
173
+ 0%, 100% { opacity: 1; }
174
+ 50% { opacity: 0.6; }
175
+ }
176
+
177
+ .terminal-subtitle {
178
+ color: var(--text-secondary);
179
+ font-size: 0.875rem;
180
+ display: flex;
181
+ align-items: center;
182
+ justify-content: center;
183
+ gap: 8px;
184
+ }
185
+
186
+ /* Command blocks */
187
+ .command-block {
188
+ background: var(--bg-secondary);
189
+ border: 1px solid var(--border-primary);
190
+ border-radius: 8px;
191
+ padding: 20px;
192
+ margin-bottom: 20px;
193
+ }
194
+
195
+ .command-label {
196
+ color: var(--text-accent);
197
+ font-size: 1rem;
198
+ font-weight: normal;
199
+ margin-bottom: 8px;
200
+ }
201
+
202
+ .command-description {
203
+ color: var(--text-secondary);
204
+ font-size: 0.875rem;
205
+ margin-bottom: 16px;
206
+ }
207
+
208
+ .command-line {
209
+ display: flex;
210
+ align-items: center;
211
+ gap: 1rem;
212
+ background: var(--bg-tertiary);
213
+ border: 1px solid var(--border-secondary);
214
+ border-radius: 6px;
215
+ padding: 12px 16px;
216
+ }
217
+
218
+ .prompt {
219
+ color: var(--text-success);
220
+ font-weight: bold;
221
+ flex-shrink: 0;
222
+ }
223
+
224
+ .command {
225
+ flex: 1;
226
+ color: var(--text-primary);
227
+ font-family: inherit;
228
+ font-size: 0.875rem;
229
+ background: none;
230
+ border: none;
231
+ outline: none;
232
+ }
233
+
234
+ .copy-btn {
235
+ background: var(--text-info);
236
+ color: var(--bg-primary);
237
+ border: none;
238
+ padding: 6px 12px;
239
+ border-radius: 4px;
240
+ font-size: 0.75rem;
241
+ cursor: pointer;
242
+ transition: background 0.2s ease;
243
+ font-family: inherit;
244
+ }
245
+
246
+ .copy-btn:hover {
247
+ opacity: 0.8;
248
+ }
249
+
250
+ /* Stats section - Compact Badges */
251
+ .stats-section {
252
+ margin: 0.5rem 0 1rem 0;
253
+ text-align: center;
254
+ margin-top: -0.5rem;
255
+ }
256
+
257
+ .stats-badges {
258
+ display: flex;
259
+ justify-content: center;
260
+ align-items: center;
261
+ gap: 0.75rem;
262
+ flex-wrap: wrap;
263
+ padding: 0.5rem 0;
264
+ }
265
+
266
+ .stat-badge-link {
267
+ text-decoration: none;
268
+ transition: all 0.2s ease;
269
+ display: inline-block;
270
+ }
271
+
272
+ .stat-badge-link:hover {
273
+ transform: translateY(-2px);
274
+ filter: brightness(1.1);
275
+ }
276
+
277
+ .stat-badge {
278
+ height: 20px;
279
+ display: block;
280
+ transition: all 0.2s ease;
281
+ }
282
+
283
+ /* Steps section */
284
+ .steps-section {
285
+ margin-bottom: 40px;
286
+ }
287
+
288
+ .steps-grid {
289
+ display: grid;
290
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
291
+ gap: 16px;
292
+ margin-bottom: 20px;
293
+ }
294
+
295
+ .step-card {
296
+ background: var(--bg-secondary);
297
+ border: 1px solid var(--border-primary);
298
+ border-radius: 8px;
299
+ padding: 16px;
300
+ position: relative;
301
+ transition: all 0.3s ease;
302
+ display: flex;
303
+ flex-direction: column;
304
+ min-height: 140px;
305
+ }
306
+
307
+ .step-card:hover {
308
+ border-color: var(--text-accent);
309
+ box-shadow: 0 4px 12px var(--shadow-primary);
310
+ }
311
+
312
+ .step-number {
313
+ position: absolute;
314
+ top: -8px;
315
+ left: 16px;
316
+ background: var(--text-accent);
317
+ color: var(--bg-primary);
318
+ width: 26px;
319
+ height: 26px;
320
+ border-radius: 50%;
321
+ display: flex;
322
+ align-items: center;
323
+ justify-content: center;
324
+ font-size: 0.8rem;
325
+ font-weight: bold;
326
+ }
327
+
328
+ .step-content {
329
+ flex: 1;
330
+ display: flex;
331
+ flex-direction: column;
332
+ }
333
+
334
+ .step-content h3 {
335
+ color: var(--text-primary);
336
+ font-size: 1rem;
337
+ font-weight: normal;
338
+ margin-bottom: 6px;
339
+ margin-top: 8px;
340
+ }
341
+
342
+ .step-content p {
343
+ color: var(--text-secondary);
344
+ font-size: 0.8rem;
345
+ margin-bottom: 12px;
346
+ flex: 1;
347
+ line-height: 1.4;
348
+ }
349
+
350
+ .step-highlight {
351
+ background: var(--bg-tertiary);
352
+ border: 1px solid var(--border-secondary);
353
+ border-radius: 6px;
354
+ padding: 10px;
355
+ text-align: center;
356
+ margin-top: auto;
357
+ }
358
+
359
+ .step-examples {
360
+ margin-top: 1rem;
361
+ display: flex;
362
+ flex-direction: column;
363
+ gap: 0.5rem;
364
+ }
365
+
366
+ .step-example {
367
+ background: var(--bg-primary);
368
+ border: 1px solid var(--border-primary);
369
+ border-radius: 4px;
370
+ padding: 0.6rem 0.8rem;
371
+ font-size: 0.85rem;
372
+ transition: all 0.2s ease;
373
+ }
374
+
375
+ .step-example:hover {
376
+ border-color: var(--text-accent);
377
+ background: var(--bg-tertiary);
378
+ }
379
+
380
+ .step-example strong {
381
+ color: var(--text-accent);
382
+ font-weight: 600;
383
+ }
384
+
385
+ .command-line {
386
+ margin-top: auto;
387
+ }
388
+
389
+ .highlight-text {
390
+ color: var(--text-info);
391
+ font-size: 0.8rem;
392
+ }
393
+
394
+ .command-note {
395
+ color: var(--text-secondary);
396
+ font-style: italic;
397
+ margin-left: 10px;
398
+ }
399
+
400
+ /* Install and intro sections */
401
+ .intro-section,
402
+ .additional-tools {
403
+ margin-bottom: 30px;
404
+ }
405
+
406
+ /* Add New Template Card Styles */
407
+ /* Add template cards use same style as regular template cards */
408
+
409
+ /* Tools section */
410
+ .tools-grid {
411
+ display: grid;
412
+ grid-template-columns: repeat(4, 1fr);
413
+ gap: 20px;
414
+ margin-top: 20px;
415
+ }
416
+
417
+ @media (max-width: 1200px) {
418
+ .tools-grid {
419
+ grid-template-columns: repeat(2, 1fr);
420
+ }
421
+ }
422
+
423
+ .tool-card {
424
+ background: var(--bg-secondary);
425
+ border: 1px solid var(--border-primary);
426
+ border-radius: 8px;
427
+ padding: 20px;
428
+ transition: all 0.3s ease;
429
+ position: relative;
430
+ }
431
+
432
+ .tool-card .new-label {
433
+ position: absolute;
434
+ top: -8px;
435
+ right: 15px;
436
+ background: var(--accent-color);
437
+ color: white;
438
+ padding: 4px 8px;
439
+ border-radius: 12px;
440
+ font-size: 0.7rem;
441
+ font-weight: 600;
442
+ text-transform: uppercase;
443
+ letter-spacing: 0.5px;
444
+ }
445
+
446
+ .tool-card:hover {
447
+ border-color: var(--text-accent);
448
+ box-shadow: 0 4px 12px var(--shadow-primary);
449
+ }
450
+
451
+ .tool-icon {
452
+ font-size: 2rem;
453
+ margin-bottom: 12px;
454
+ }
455
+
456
+ .tool-card h3 {
457
+ color: var(--text-primary);
458
+ font-size: 1.1rem;
459
+ font-weight: normal;
460
+ margin-bottom: 8px;
461
+ }
462
+
463
+ .tool-card p {
464
+ color: var(--text-secondary);
465
+ font-size: 0.875rem;
466
+ margin-bottom: 16px;
467
+ line-height: 1.5;
468
+ }
469
+
470
+ /* Templates grid */
471
+ .templates-grid {
472
+ display: grid;
473
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
474
+ gap: 20px;
475
+ margin-bottom: 40px;
476
+ }
477
+
478
+ /* Template card */
479
+ .template-card {
480
+ background: var(--bg-secondary);
481
+ border: 1px solid var(--border-primary);
482
+ border-radius: 8px;
483
+ overflow: hidden;
484
+ transition: all 0.3s ease;
485
+ cursor: pointer;
486
+ position: relative;
487
+ height: 200px;
488
+ perspective: 1000px;
489
+ }
490
+
491
+ /* Download badge */
492
+ .download-badge {
493
+ position: absolute;
494
+ top: 8px;
495
+ right: 8px;
496
+ background: rgba(59, 185, 80, 0.1);
497
+ border: 1px solid var(--text-success);
498
+ color: var(--text-success);
499
+ padding: 4px 8px;
500
+ border-radius: 12px;
501
+ font-size: 11px;
502
+ font-weight: 500;
503
+ display: flex;
504
+ align-items: center;
505
+ gap: 4px;
506
+ z-index: 4;
507
+ backdrop-filter: blur(4px);
508
+ transition: all 0.3s ease;
509
+ }
510
+
511
+ .download-badge svg {
512
+ width: 12px;
513
+ height: 12px;
514
+ opacity: 0.8;
515
+ }
516
+
517
+ .download-badge:hover {
518
+ background: rgba(59, 185, 80, 0.2);
519
+ transform: scale(1.05);
520
+ }
521
+
522
+ /* Sort Controls */
523
+ .sort-controls {
524
+ margin-bottom: 20px;
525
+ padding: 15px 0;
526
+ border-bottom: 1px solid var(--border-primary);
527
+ }
528
+
529
+ .sort-wrapper {
530
+ display: flex;
531
+ align-items: center;
532
+ gap: 12px;
533
+ justify-content: flex-end;
534
+ max-width: 1400px;
535
+ margin: 0 auto;
536
+ }
537
+
538
+ .sort-label {
539
+ color: var(--text-secondary);
540
+ font-size: 13px;
541
+ font-weight: 500;
542
+ text-transform: uppercase;
543
+ letter-spacing: 0.5px;
544
+ }
545
+
546
+ .sort-selector {
547
+ background: var(--bg-secondary);
548
+ border: 1px solid var(--border-primary);
549
+ color: var(--text-primary);
550
+ padding: 8px 12px;
551
+ padding-right: 32px;
552
+ border-radius: 6px;
553
+ font-size: 13px;
554
+ font-family: 'Inter', monospace;
555
+ cursor: pointer;
556
+ transition: all 0.2s ease;
557
+ appearance: none;
558
+ background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='12' height='12' viewBox='0 0 24 24' fill='%233bb950' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M7 10l5 5 5-5H7z'/%3e%3c/svg%3e");
559
+ background-repeat: no-repeat;
560
+ background-position: right 10px center;
561
+ min-width: 180px;
562
+ }
563
+
564
+ .sort-selector:hover {
565
+ border-color: var(--text-success);
566
+ background-color: rgba(59, 185, 80, 0.05);
567
+ }
568
+
569
+ .sort-selector:focus {
570
+ outline: none;
571
+ border-color: var(--text-success);
572
+ box-shadow: 0 0 0 2px rgba(59, 185, 80, 0.1);
573
+ }
574
+
575
+ .sort-selector option {
576
+ background: var(--bg-secondary);
577
+ color: var(--text-primary);
578
+ padding: 8px;
579
+ }
580
+
581
+ .category-label {
582
+ position: absolute;
583
+ top: 8px;
584
+ left: 8px;
585
+ color: var(--text-accent);
586
+ padding: 4px 8px;
587
+ border-radius: 12px;
588
+ font-size: 10px;
589
+ font-weight: 600;
590
+ text-transform: uppercase;
591
+ letter-spacing: 0.5px;
592
+ opacity: 0.8;
593
+ transition: all 0.2s ease;
594
+ z-index: 3;
595
+ backdrop-filter: blur(4px);
596
+ }
597
+
598
+ .category-label:hover {
599
+ opacity: 1;
600
+ transform: scale(1.05);
601
+ }
602
+
603
+ /* Category sub-filters within unified-filter-bar */
604
+ .category-filter-row {
605
+ width: 100%;
606
+ border-top: 1px solid var(--border-secondary);
607
+ padding-top: 12px;
608
+ margin-top: 12px;
609
+ display: flex;
610
+ align-items: center;
611
+ gap: 12px;
612
+ flex-wrap: wrap;
613
+ }
614
+
615
+ .category-filter-label {
616
+ color: var(--text-secondary);
617
+ font-size: 13px;
618
+ font-weight: 500;
619
+ text-transform: uppercase;
620
+ letter-spacing: 0.5px;
621
+ }
622
+
623
+ .category-filter-buttons {
624
+ display: flex;
625
+ gap: 8px;
626
+ flex-wrap: wrap;
627
+ align-items: center;
628
+ }
629
+
630
+ .category-filter-btn {
631
+ background: rgba(48, 54, 61, 0.5);
632
+ border: 1px solid var(--border-secondary);
633
+ color: var(--text-secondary);
634
+ padding: 6px 12px;
635
+ border-radius: 6px;
636
+ font-size: 12px;
637
+ font-weight: 500;
638
+ cursor: pointer;
639
+ transition: all 0.2s ease;
640
+ text-transform: capitalize;
641
+ }
642
+
643
+ .category-filter-btn:hover {
644
+ background: rgba(213, 116, 85, 0.1);
645
+ border-color: var(--text-accent);
646
+ color: var(--text-accent);
647
+ }
648
+
649
+ .category-filter-btn.active {
650
+ background: rgba(213, 116, 85, 0.15);
651
+ border-color: var(--text-accent);
652
+ color: var(--text-accent);
653
+ font-weight: 600;
654
+ }
655
+
656
+ .template-card:hover {
657
+ border-color: var(--text-accent);
658
+ box-shadow: 0 4px 12px var(--shadow-primary);
659
+ }
660
+
661
+ .card-inner {
662
+ position: relative;
663
+ width: 100%;
664
+ height: 100%;
665
+ text-align: center;
666
+ transition: transform 0.6s;
667
+ transform-style: preserve-3d;
668
+ }
669
+
670
+ .template-card.flipped .card-inner {
671
+ transform: rotateY(180deg);
672
+ }
673
+
674
+ .card-front, .card-back {
675
+ position: absolute;
676
+ width: 100%;
677
+ height: 100%;
678
+ backface-visibility: hidden;
679
+ display: flex;
680
+ flex-direction: column;
681
+ justify-content: center;
682
+ align-items: center;
683
+ padding: 1.5rem;
684
+ }
685
+
686
+ .card-back {
687
+ transform: rotateY(180deg);
688
+ background: var(--bg-tertiary);
689
+ }
690
+
691
+ .framework-logo {
692
+ width: 64px;
693
+ height: 64px;
694
+ margin-bottom: 1rem;
695
+ border-radius: 8px;
696
+ display: flex;
697
+ align-items: center;
698
+ justify-content: center;
699
+ font-size: 2.5rem;
700
+ background: var(--bg-tertiary);
701
+ border: 1px solid var(--border-primary);
702
+ }
703
+
704
+ .framework-logo i {
705
+ font-size: 2.5rem;
706
+ }
707
+
708
+ .template-title {
709
+ font-size: 1.1rem;
710
+ font-weight: normal;
711
+ color: var(--text-primary);
712
+ margin-bottom: 0.5rem;
713
+ }
714
+
715
+ .template-description {
716
+ color: var(--text-secondary);
717
+ font-size: 0.8rem;
718
+ text-align: center;
719
+ }
720
+
721
+ .coming-soon {
722
+ opacity: 0.6;
723
+ pointer-events: none;
724
+ }
725
+
726
+ .coming-soon-badge {
727
+ position: absolute;
728
+ top: 1rem;
729
+ right: 1rem;
730
+ background: var(--text-warning);
731
+ color: var(--bg-primary);
732
+ padding: 0.25rem 0.75rem;
733
+ border-radius: 12px;
734
+ font-size: 0.7rem;
735
+ font-weight: normal;
736
+ }
737
+
738
+ /* Command display on card back */
739
+ .command-display {
740
+ text-align: center;
741
+ width: 100%;
742
+ padding: 0.1rem 0.6rem 0.3rem 0.6rem;
743
+ height: 100%;
744
+ display: flex;
745
+ flex-direction: column;
746
+ justify-content: space-between;
747
+ }
748
+
749
+ .command-display h3 {
750
+ font-size: 0.9rem;
751
+ margin: 0;
752
+ color: var(--text-accent);
753
+ font-weight: normal;
754
+ flex-shrink: 0;
755
+ line-height: 1;
756
+ padding-bottom: 0;
757
+ }
758
+
759
+ /* Command Code Container with Overlay */
760
+ .command-code-container {
761
+ position: relative;
762
+ flex: 1;
763
+ min-height: 85px;
764
+ margin: 0.2rem 0 0.1rem 0;
765
+ }
766
+
767
+ .command-code-container .command-code {
768
+ background: var(--bg-primary);
769
+ border: 1px solid var(--border-secondary);
770
+ padding: 6px;
771
+ border-radius: 6px;
772
+ font-family: 'Monaco', 'Menlo', monospace;
773
+ font-size: 0.8rem;
774
+ word-break: keep-all;
775
+ word-wrap: break-word;
776
+ color: var(--text-primary);
777
+ position: relative;
778
+ transition: all 0.2s ease;
779
+ height: 100%;
780
+ display: block;
781
+ text-align: center;
782
+ overflow-y: auto;
783
+ overflow-x: hidden;
784
+ line-height: 1.2;
785
+ white-space: pre-wrap;
786
+ hyphens: none;
787
+ }
788
+
789
+ .copy-overlay-btn {
790
+ position: absolute;
791
+ top: 0;
792
+ left: 0;
793
+ right: 0;
794
+ bottom: 0;
795
+ background: rgba(46, 160, 67, 0.9);
796
+ color: white;
797
+ border: none;
798
+ border-radius: 6px;
799
+ display: flex;
800
+ flex-direction: column;
801
+ align-items: center;
802
+ justify-content: center;
803
+ gap: 0.5rem;
804
+ font-size: 0.9rem;
805
+ font-weight: 600;
806
+ opacity: 0;
807
+ visibility: hidden;
808
+ transition: all 0.2s ease;
809
+ cursor: pointer;
810
+ backdrop-filter: blur(2px);
811
+ }
812
+
813
+ .command-code-container:hover .copy-overlay-btn {
814
+ opacity: 1;
815
+ visibility: visible;
816
+ }
817
+
818
+ .copy-overlay-btn:hover {
819
+ background: rgba(46, 160, 67, 0.95);
820
+ transform: scale(1.02);
821
+ }
822
+
823
+ .copy-overlay-btn svg {
824
+ filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3));
825
+ }
826
+
827
+ .action-buttons {
828
+ display: flex;
829
+ gap: 0.75rem;
830
+ justify-content: center;
831
+ flex-wrap: wrap;
832
+ }
833
+
834
+ .view-files-btn,
835
+ .copy-command-btn {
836
+ border: none;
837
+ padding: 6px 12px;
838
+ border-radius: 4px;
839
+ font-size: 0.75rem;
840
+ cursor: pointer;
841
+ transition: all 0.2s ease;
842
+ font-family: inherit;
843
+ flex: 1;
844
+ min-width: 80px;
845
+ font-weight: normal;
846
+ background: var(--bg-tertiary);
847
+ color: var(--text-secondary);
848
+ border: 1px solid var(--border-primary);
849
+ }
850
+
851
+ .view-files-btn:hover,
852
+ .copy-command-btn:hover {
853
+ background: var(--border-primary);
854
+ color: var(--text-primary);
855
+ transform: translateY(-1px);
856
+ }
857
+
858
+ /* Footer */
859
+ .footer {
860
+ background: var(--bg-secondary);
861
+ border-top: 1px solid var(--border-primary);
862
+ color: var(--text-secondary);
863
+ padding: 2rem 0 3rem 0;
864
+ margin-top: 2rem;
865
+ }
866
+
867
+ .footer-content {
868
+ display: flex;
869
+ justify-content: space-between;
870
+ align-items: flex-start;
871
+ flex-wrap: wrap;
872
+ gap: 2rem;
873
+ }
874
+
875
+ .footer-left {
876
+ flex: 1;
877
+ min-width: 300px;
878
+ }
879
+
880
+ .footer-right {
881
+ flex: 1;
882
+ text-align: center;
883
+ display: flex;
884
+ flex-direction: column;
885
+ align-items: center;
886
+ gap: 1rem;
887
+ margin-right: 4rem; /* Space to avoid cart button overlap */
888
+ }
889
+
890
+ .footer-ascii {
891
+ margin-bottom: 0.5rem;
892
+ }
893
+
894
+ .footer-ascii-art {
895
+ font-family: 'Courier New', monospace;
896
+ font-size: 8px;
897
+ line-height: 1;
898
+ color: var(--text-accent);
899
+ margin: 0;
900
+ white-space: pre;
901
+ overflow: hidden;
902
+ }
903
+
904
+ .footer-tagline {
905
+ color: var(--text-secondary);
906
+ font-size: 0.8rem;
907
+ margin: 0.5rem 0 0 0;
908
+ font-style: italic;
909
+ }
910
+
911
+ .footer-copyright {
912
+ color: var(--text-secondary);
913
+ font-size: 0.875rem;
914
+ margin: 0;
915
+ }
916
+
917
+ .footer-links {
918
+ display: flex;
919
+ gap: 1.5rem;
920
+ justify-content: center;
921
+ }
922
+
923
+ .footer-link {
924
+ display: flex;
925
+ align-items: center;
926
+ gap: 0.5rem;
927
+ color: var(--text-secondary);
928
+ text-decoration: none;
929
+ font-size: 0.875rem;
930
+ transition: color 0.2s ease;
931
+ }
932
+
933
+ .footer-link:hover {
934
+ color: var(--text-primary);
935
+ }
936
+
937
+ .footer-link svg {
938
+ flex-shrink: 0;
939
+ }
940
+
941
+ /* Loading and error states */
942
+ .loading {
943
+ text-align: center;
944
+ color: var(--text-secondary);
945
+ font-size: 1rem;
946
+ padding: 2rem;
947
+ grid-column: 1 / -1;
948
+ }
949
+
950
+ .loading::after {
951
+ content: '';
952
+ animation: dots 1.5s infinite;
953
+ }
954
+
955
+ @keyframes dots {
956
+ 0%, 20% { content: ''; }
957
+ 40% { content: '.'; }
958
+ 60% { content: '..'; }
959
+ 80%, 100% { content: '...'; }
960
+ }
961
+
962
+ .error-message {
963
+ grid-column: 1 / -1;
964
+ text-align: center;
965
+ color: var(--text-error);
966
+ background: var(--bg-secondary);
967
+ border: 1px solid var(--text-error);
968
+ border-radius: 8px;
969
+ padding: 2rem;
970
+ }
971
+
972
+ .error-message h3 {
973
+ margin-bottom: 1rem;
974
+ font-size: 1.1rem;
975
+ font-weight: normal;
976
+ }
977
+
978
+ .retry-btn {
979
+ background: var(--text-error);
980
+ color: var(--bg-primary);
981
+ border: none;
982
+ padding: 0.75rem 1.5rem;
983
+ border-radius: 6px;
984
+ cursor: pointer;
985
+ margin-top: 1rem;
986
+ font-size: 0.875rem;
987
+ transition: opacity 0.2s ease;
988
+ font-family: inherit;
989
+ }
990
+
991
+ .retry-btn:hover {
992
+ opacity: 0.8;
993
+ }
994
+
995
+ /* Copy feedback animations */
996
+ @keyframes slideInRight {
997
+ from {
998
+ transform: translateX(100%);
999
+ opacity: 0;
1000
+ }
1001
+ to {
1002
+ transform: translateX(0);
1003
+ opacity: 1;
1004
+ }
1005
+ }
1006
+
1007
+ @keyframes slideOutRight {
1008
+ from {
1009
+ transform: translateX(0);
1010
+ opacity: 1;
1011
+ }
1012
+ to {
1013
+ transform: translateX(100%);
1014
+ opacity: 0;
1015
+ }
1016
+ }
1017
+
1018
+ /* Responsive design */
1019
+ @media (max-width: 768px) {
1020
+ .terminal {
1021
+ padding: 15px;
1022
+ }
1023
+
1024
+ .header-content {
1025
+ flex-direction: column;
1026
+ gap: 1rem;
1027
+ align-items: flex-start;
1028
+ }
1029
+
1030
+ .header-actions {
1031
+ gap: 0.75rem;
1032
+ width: 100%;
1033
+ justify-content: flex-start;
1034
+ }
1035
+
1036
+ .github-link, .header-btn {
1037
+ padding: 0.35rem 0.7rem;
1038
+ font-size: 0.8rem;
1039
+ }
1040
+
1041
+ .header .ascii-art {
1042
+ font-size: 0.3rem;
1043
+ overflow: visible;
1044
+ }
1045
+
1046
+ .header .terminal-subtitle {
1047
+ font-size: 0.75rem;
1048
+ text-align: left;
1049
+ }
1050
+
1051
+ .terminal-title {
1052
+ font-size: 1.1rem;
1053
+ }
1054
+
1055
+ .ascii-art {
1056
+ font-size: clamp(0.3rem, 0.6vw, 0.6rem);
1057
+ overflow-x: auto;
1058
+ scrollbar-width: thin;
1059
+ scrollbar-color: var(--border-primary) var(--bg-secondary);
1060
+ }
1061
+
1062
+ .ascii-art::-webkit-scrollbar {
1063
+ height: 4px;
1064
+ }
1065
+
1066
+ .ascii-art::-webkit-scrollbar-track {
1067
+ background: var(--bg-secondary);
1068
+ }
1069
+
1070
+ .ascii-art::-webkit-scrollbar-thumb {
1071
+ background: var(--border-primary);
1072
+ border-radius: 2px;
1073
+ }
1074
+
1075
+ .stats-badges {
1076
+ gap: 0.5rem;
1077
+ padding: 0.3rem 0;
1078
+ }
1079
+
1080
+ .stat-badge {
1081
+ height: 16px;
1082
+ }
1083
+
1084
+ .steps-grid {
1085
+ grid-template-columns: 1fr;
1086
+ gap: 15px;
1087
+ }
1088
+
1089
+ .tools-grid {
1090
+ grid-template-columns: 1fr;
1091
+ gap: 15px;
1092
+ }
1093
+
1094
+ .templates-grid {
1095
+ grid-template-columns: 1fr;
1096
+ gap: 15px;
1097
+ }
1098
+
1099
+ .template-card {
1100
+ height: 180px;
1101
+ }
1102
+
1103
+ .command-line {
1104
+ flex-direction: column;
1105
+ align-items: stretch;
1106
+ gap: 0.5rem;
1107
+ }
1108
+
1109
+ .command {
1110
+ text-align: center;
1111
+ }
1112
+
1113
+ .footer-content {
1114
+ flex-direction: column;
1115
+ text-align: center;
1116
+ gap: 1.5rem;
1117
+ }
1118
+
1119
+ .footer-left {
1120
+ min-width: unset;
1121
+ text-align: center;
1122
+ }
1123
+
1124
+ .footer-right {
1125
+ text-align: center;
1126
+ align-items: center;
1127
+ }
1128
+
1129
+ .footer-ascii-art {
1130
+ font-size: 6px;
1131
+ }
1132
+
1133
+ .step-card {
1134
+ padding: 12px;
1135
+ min-height: 120px;
1136
+ }
1137
+
1138
+ .tool-card {
1139
+ padding: 15px;
1140
+ }
1141
+ }
1142
+
1143
+ /* Extra small screens */
1144
+ @media (max-width: 480px) {
1145
+ .header .ascii-art {
1146
+ font-size: 0.25rem;
1147
+ overflow: visible;
1148
+ }
1149
+
1150
+ .header .terminal-subtitle {
1151
+ font-size: 0.7rem;
1152
+ text-align: left;
1153
+ }
1154
+
1155
+ .header-content {
1156
+ padding: 0.75rem 0;
1157
+ }
1158
+
1159
+ .stat-card {
1160
+ min-width: 200px;
1161
+ max-width: 250px;
1162
+ padding: 0.75rem;
1163
+ }
1164
+
1165
+ .stat-label {
1166
+ font-size: 0.75rem;
1167
+ }
1168
+ }
1169
+
1170
+ /* Modal styles */
1171
+ .modal {
1172
+ position: fixed;
1173
+ top: 0;
1174
+ left: 0;
1175
+ right: 0;
1176
+ bottom: 0;
1177
+ z-index: 1000;
1178
+ }
1179
+
1180
+ .modal-overlay {
1181
+ position: absolute;
1182
+ top: 0;
1183
+ left: 0;
1184
+ right: 0;
1185
+ bottom: 0;
1186
+ background: rgba(0, 0, 0, 0.8);
1187
+ display: flex;
1188
+ align-items: center;
1189
+ justify-content: center;
1190
+ padding: 20px;
1191
+ animation: fadeIn 0.3s ease;
1192
+ }
1193
+
1194
+ .modal-content {
1195
+ background: var(--bg-secondary);
1196
+ border: 1px solid var(--border-primary);
1197
+ border-radius: 8px;
1198
+ max-width: 800px;
1199
+ width: 100%;
1200
+ max-height: 80vh;
1201
+ overflow-y: auto;
1202
+ display: flex;
1203
+ flex-direction: column;
1204
+ animation: slideIn 0.3s ease;
1205
+ }
1206
+
1207
+ .modal-header {
1208
+ display: flex;
1209
+ justify-content: space-between;
1210
+ align-items: center;
1211
+ padding: 20px;
1212
+ border-bottom: 1px solid var(--border-primary);
1213
+ }
1214
+
1215
+ .modal-header h3 {
1216
+ color: var(--text-accent);
1217
+ font-size: 1.1rem;
1218
+ font-weight: normal;
1219
+ margin: 0;
1220
+ }
1221
+
1222
+ .modal-close {
1223
+ background: none;
1224
+ border: none;
1225
+ color: var(--text-secondary);
1226
+ font-size: 1.5rem;
1227
+ cursor: pointer;
1228
+ padding: 0;
1229
+ width: 30px;
1230
+ height: 30px;
1231
+ display: flex;
1232
+ align-items: center;
1233
+ justify-content: center;
1234
+ border-radius: 4px;
1235
+ transition: all 0.2s ease;
1236
+ }
1237
+
1238
+ .modal-close:hover {
1239
+ background: var(--bg-tertiary);
1240
+ color: var(--text-primary);
1241
+ }
1242
+
1243
+ .modal-body {
1244
+ padding: 20px;
1245
+ flex: 1;
1246
+ overflow-y: auto;
1247
+ }
1248
+
1249
+ .modal-description {
1250
+ color: var(--text-secondary);
1251
+ margin-bottom: 20px;
1252
+ font-size: 0.875rem;
1253
+ }
1254
+
1255
+ .files-table {
1256
+ border: 1px solid var(--border-primary);
1257
+ border-radius: 6px;
1258
+ overflow: hidden;
1259
+ }
1260
+
1261
+ .table-header {
1262
+ display: grid;
1263
+ grid-template-columns: 2fr 2fr 1fr;
1264
+ background: var(--bg-tertiary);
1265
+ border-bottom: 1px solid var(--border-primary);
1266
+ }
1267
+
1268
+ .column-header {
1269
+ padding: 12px 16px;
1270
+ color: var(--text-accent);
1271
+ font-size: 0.8rem;
1272
+ font-weight: normal;
1273
+ border-right: 1px solid var(--border-primary);
1274
+ }
1275
+
1276
+ .column-header:last-child {
1277
+ border-right: none;
1278
+ }
1279
+
1280
+ .table-row {
1281
+ display: grid;
1282
+ grid-template-columns: 2fr 2fr 1fr;
1283
+ border-bottom: 1px solid var(--border-secondary);
1284
+ }
1285
+
1286
+ .table-row:last-child {
1287
+ border-bottom: none;
1288
+ }
1289
+
1290
+ .table-row > div {
1291
+ padding: 12px 16px;
1292
+ font-size: 0.8rem;
1293
+ border-right: 1px solid var(--border-secondary);
1294
+ word-break: break-all;
1295
+ }
1296
+
1297
+ .table-row > div:last-child {
1298
+ border-right: none;
1299
+ }
1300
+
1301
+ .file-source {
1302
+ color: var(--text-secondary);
1303
+ font-family: inherit;
1304
+ }
1305
+
1306
+ .file-link {
1307
+ color: var(--text-info);
1308
+ text-decoration: none;
1309
+ transition: color 0.2s ease;
1310
+ }
1311
+
1312
+ .file-link:hover {
1313
+ color: var(--text-accent);
1314
+ text-decoration: underline;
1315
+ }
1316
+
1317
+ .file-destination {
1318
+ color: var(--text-primary);
1319
+ font-family: inherit;
1320
+ }
1321
+
1322
+ .file-type {
1323
+ color: var(--text-info);
1324
+ font-size: 0.75rem;
1325
+ text-align: center;
1326
+ }
1327
+
1328
+ .modal-footer {
1329
+ margin-top: 20px;
1330
+ text-align: center;
1331
+ }
1332
+
1333
+ .file-count {
1334
+ color: var(--text-secondary);
1335
+ font-size: 0.8rem;
1336
+ margin-bottom: 15px;
1337
+ }
1338
+
1339
+ .modal-actions {
1340
+ display: flex;
1341
+ justify-content: center;
1342
+ gap: 1rem;
1343
+ margin-top: 20px;
1344
+ flex-wrap: wrap;
1345
+ }
1346
+
1347
+ .github-folder-link {
1348
+ display: flex;
1349
+ align-items: center;
1350
+ gap: 0.5rem;
1351
+ color: var(--text-primary);
1352
+ text-decoration: none;
1353
+ background: var(--bg-tertiary);
1354
+ border: 1px solid var(--border-primary);
1355
+ padding: 0.6rem 1.2rem;
1356
+ border-radius: 6px;
1357
+ font-size: 0.85rem;
1358
+ font-weight: 500;
1359
+ transition: all 0.2s ease;
1360
+ min-width: 140px;
1361
+ justify-content: center;
1362
+ }
1363
+
1364
+ .github-folder-link:hover {
1365
+ background: var(--bg-primary);
1366
+ border-color: var(--text-accent);
1367
+ color: var(--text-accent);
1368
+ }
1369
+
1370
+ .github-folder-link svg {
1371
+ flex-shrink: 0;
1372
+ }
1373
+
1374
+ /* Modal animations */
1375
+ @keyframes fadeIn {
1376
+ from { opacity: 0; }
1377
+ to { opacity: 1; }
1378
+ }
1379
+
1380
+ @keyframes slideIn {
1381
+ from {
1382
+ transform: translateY(-50px);
1383
+ opacity: 0;
1384
+ }
1385
+ to {
1386
+ transform: translateY(0);
1387
+ opacity: 1;
1388
+ }
1389
+ }
1390
+
1391
+ /* Contribution modal styles */
1392
+ .contribute-modal {
1393
+ max-width: 900px;
1394
+ }
1395
+
1396
+ .contribute-intro {
1397
+ margin-bottom: 30px;
1398
+ }
1399
+
1400
+ .contribute-intro p {
1401
+ color: var(--text-secondary);
1402
+ font-size: 0.9rem;
1403
+ line-height: 1.5;
1404
+ }
1405
+
1406
+ .contribute-steps {
1407
+ display: flex;
1408
+ flex-direction: column;
1409
+ gap: 25px;
1410
+ margin-bottom: 30px;
1411
+ }
1412
+
1413
+ .contribute-step {
1414
+ display: flex;
1415
+ gap: 20px;
1416
+ align-items: flex-start;
1417
+ padding: 20px;
1418
+ background: var(--bg-tertiary);
1419
+ border: 1px solid var(--border-primary);
1420
+ border-radius: 8px;
1421
+ transition: all 0.2s ease;
1422
+ }
1423
+
1424
+ .contribute-step:hover {
1425
+ border-color: var(--text-accent);
1426
+ box-shadow: 0 2px 8px var(--shadow-primary);
1427
+ }
1428
+
1429
+ .step-number-contrib {
1430
+ flex-shrink: 0;
1431
+ width: 40px;
1432
+ height: 40px;
1433
+ background: var(--text-accent);
1434
+ color: var(--bg-primary);
1435
+ border-radius: 50%;
1436
+ display: flex;
1437
+ align-items: center;
1438
+ justify-content: center;
1439
+ font-weight: bold;
1440
+ font-size: 1rem;
1441
+ }
1442
+
1443
+ .step-content-contrib {
1444
+ flex: 1;
1445
+ }
1446
+
1447
+ .step-content-contrib h4 {
1448
+ color: var(--text-primary);
1449
+ font-size: 1.1rem;
1450
+ font-weight: 500;
1451
+ margin: 0 0 8px 0;
1452
+ }
1453
+
1454
+ .step-content-contrib p {
1455
+ color: var(--text-secondary);
1456
+ font-size: 0.875rem;
1457
+ line-height: 1.5;
1458
+ margin: 0 0 15px 0;
1459
+ }
1460
+
1461
+ .step-content-contrib ul {
1462
+ color: var(--text-secondary);
1463
+ font-size: 0.875rem;
1464
+ line-height: 1.5;
1465
+ margin: 15px 0 0 20px;
1466
+ }
1467
+
1468
+ .step-content-contrib li {
1469
+ margin-bottom: 5px;
1470
+ }
1471
+
1472
+ .step-content-contrib a {
1473
+ color: var(--text-info);
1474
+ text-decoration: none;
1475
+ }
1476
+
1477
+ .step-content-contrib a:hover {
1478
+ color: var(--text-accent);
1479
+ text-decoration: underline;
1480
+ }
1481
+
1482
+ .step-command {
1483
+ display: flex;
1484
+ align-items: center;
1485
+ gap: 8px;
1486
+ background: var(--bg-primary);
1487
+ border: 1px solid var(--border-secondary);
1488
+ border-radius: 6px;
1489
+ padding: 8px;
1490
+ margin: 8px 0;
1491
+ font-family: inherit;
1492
+ }
1493
+
1494
+ .step-command code {
1495
+ flex: 1;
1496
+ color: var(--text-primary);
1497
+ font-size: 0.8rem;
1498
+ background: none;
1499
+ border: none;
1500
+ font-family: inherit;
1501
+ }
1502
+
1503
+ .step-command .copy-btn {
1504
+ background: var(--text-success);
1505
+ color: var(--bg-primary);
1506
+ border: none;
1507
+ padding: 4px 8px;
1508
+ border-radius: 4px;
1509
+ font-size: 0.7rem;
1510
+ cursor: pointer;
1511
+ transition: opacity 0.2s ease;
1512
+ font-family: inherit;
1513
+ }
1514
+
1515
+ .step-command .copy-btn:hover {
1516
+ opacity: 0.8;
1517
+ }
1518
+
1519
+ .contribution-types {
1520
+ display: flex;
1521
+ flex-direction: column;
1522
+ gap: 15px;
1523
+ margin: 15px 0;
1524
+ }
1525
+
1526
+ .contrib-type {
1527
+ background: var(--bg-primary);
1528
+ border: 1px solid var(--border-secondary);
1529
+ border-radius: 6px;
1530
+ padding: 15px;
1531
+ }
1532
+
1533
+ .contrib-type strong {
1534
+ color: var(--text-accent);
1535
+ font-size: 0.9rem;
1536
+ }
1537
+
1538
+ .contrib-type small {
1539
+ color: var(--text-secondary);
1540
+ font-size: 0.8rem;
1541
+ }
1542
+
1543
+ .contrib-type code {
1544
+ background: var(--bg-secondary);
1545
+ color: var(--text-info);
1546
+ padding: 2px 6px;
1547
+ border-radius: 3px;
1548
+ font-size: 0.8rem;
1549
+ font-family: inherit;
1550
+ }
1551
+
1552
+ .claude-prompt {
1553
+ background: var(--bg-primary);
1554
+ border: 1px solid var(--border-secondary);
1555
+ border-radius: 8px;
1556
+ padding: 20px;
1557
+ margin: 15px 0;
1558
+ }
1559
+
1560
+ .claude-prompt h5 {
1561
+ color: var(--text-accent);
1562
+ font-size: 0.9rem;
1563
+ font-weight: 500;
1564
+ margin: 0 0 15px 0;
1565
+ display: flex;
1566
+ align-items: center;
1567
+ gap: 8px;
1568
+ }
1569
+
1570
+ .prompt-text {
1571
+ background: var(--bg-tertiary);
1572
+ border: 1px solid var(--border-primary);
1573
+ border-radius: 6px;
1574
+ padding: 15px;
1575
+ margin-bottom: 15px;
1576
+ position: relative;
1577
+ }
1578
+
1579
+ .prompt-text pre {
1580
+ color: var(--text-primary);
1581
+ font-size: 0.8rem;
1582
+ line-height: 1.4;
1583
+ margin: 0;
1584
+ white-space: pre-wrap;
1585
+ word-wrap: break-word;
1586
+ font-family: inherit;
1587
+ }
1588
+
1589
+ .copy-prompt-btn {
1590
+ background: var(--text-info);
1591
+ color: var(--bg-primary);
1592
+ border: none;
1593
+ padding: 8px 16px;
1594
+ border-radius: 4px;
1595
+ font-size: 0.8rem;
1596
+ cursor: pointer;
1597
+ transition: opacity 0.2s ease;
1598
+ font-family: inherit;
1599
+ display: flex;
1600
+ align-items: center;
1601
+ gap: 6px;
1602
+ }
1603
+
1604
+ .copy-prompt-btn:hover {
1605
+ opacity: 0.8;
1606
+ }
1607
+
1608
+ .contribute-footer {
1609
+ border-top: 1px solid var(--border-primary);
1610
+ padding-top: 20px;
1611
+ margin-top: 20px;
1612
+ }
1613
+
1614
+ .help-section h4 {
1615
+ color: var(--text-accent);
1616
+ font-size: 1rem;
1617
+ font-weight: 500;
1618
+ margin: 0 0 8px 0;
1619
+ }
1620
+
1621
+ .help-section p {
1622
+ color: var(--text-secondary);
1623
+ font-size: 0.875rem;
1624
+ margin: 0;
1625
+ }
1626
+
1627
+ .help-section a {
1628
+ color: var(--text-info);
1629
+ text-decoration: none;
1630
+ }
1631
+
1632
+ .help-section a:hover {
1633
+ color: var(--text-accent);
1634
+ text-decoration: underline;
1635
+ }
1636
+
1637
+ /* Modal responsive design */
1638
+ @media (max-width: 768px) {
1639
+ .modal-overlay {
1640
+ padding: 10px;
1641
+ }
1642
+
1643
+ .modal-content {
1644
+ max-height: 90vh;
1645
+ }
1646
+
1647
+ .contribute-modal {
1648
+ max-width: 100%;
1649
+ }
1650
+
1651
+ .modal-header,
1652
+ .modal-body {
1653
+ padding: 15px;
1654
+ }
1655
+
1656
+ .contribute-steps {
1657
+ gap: 20px;
1658
+ }
1659
+
1660
+ .contribute-step {
1661
+ flex-direction: column;
1662
+ gap: 15px;
1663
+ padding: 15px;
1664
+ }
1665
+
1666
+ .step-number-contrib {
1667
+ width: 35px;
1668
+ height: 35px;
1669
+ font-size: 0.9rem;
1670
+ align-self: flex-start;
1671
+ }
1672
+
1673
+ .step-command {
1674
+ flex-direction: column;
1675
+ align-items: stretch;
1676
+ gap: 8px;
1677
+ }
1678
+
1679
+ .step-command code {
1680
+ text-align: center;
1681
+ word-break: break-all;
1682
+ }
1683
+
1684
+ .contribution-types {
1685
+ gap: 12px;
1686
+ }
1687
+
1688
+ .contrib-type {
1689
+ padding: 12px;
1690
+ }
1691
+
1692
+ .claude-prompt {
1693
+ padding: 15px;
1694
+ }
1695
+
1696
+ .prompt-text pre {
1697
+ font-size: 0.75rem;
1698
+ }
1699
+
1700
+ .table-header,
1701
+ .table-row {
1702
+ grid-template-columns: 1fr;
1703
+ }
1704
+
1705
+ .column-header,
1706
+ .table-row > div {
1707
+ border-right: none;
1708
+ border-bottom: 1px solid var(--border-secondary);
1709
+ }
1710
+
1711
+ .column-header:last-child,
1712
+ .table-row > div:last-child {
1713
+ border-bottom: none;
1714
+ }
1715
+ }
1716
+
1717
+ /* Terminal-Style Filter Section */
1718
+ .unified-filter-section {
1719
+ margin: 2rem 0;
1720
+ font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
1721
+ }
1722
+
1723
+ /* Search Header - Terminal Style with original content */
1724
+ .search-header {
1725
+ margin-bottom: 2rem;
1726
+ }
1727
+
1728
+ .terminal-command {
1729
+ position: relative;
1730
+ display: flex;
1731
+ justify-content: center;
1732
+ text-align: center;
1733
+ }
1734
+
1735
+ .terminal-dot {
1736
+ width: 8px;
1737
+ height: 8px;
1738
+ background: #22c55e;
1739
+ border-radius: 50%;
1740
+ display: inline-block;
1741
+ margin-right: 0.5rem;
1742
+ vertical-align: middle;
1743
+ }
1744
+
1745
+ .header-content {
1746
+ display: flex;
1747
+ flex-direction: column;
1748
+ align-items: center;
1749
+ text-align: center;
1750
+ flex: 1;
1751
+ }
1752
+
1753
+ .search-title {
1754
+ font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
1755
+ font-size: 1.4rem;
1756
+ font-weight: 400;
1757
+ color: var(--text-primary);
1758
+ margin: 0;
1759
+ letter-spacing: normal;
1760
+ display: block;
1761
+ width: 100%;
1762
+ line-height: 1.1;
1763
+ }
1764
+
1765
+ .title-params {
1766
+ font-weight: 300 !important;
1767
+ opacity: 0.8;
1768
+ }
1769
+
1770
+ .search-subtitle {
1771
+ font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
1772
+ font-size: 1rem;
1773
+ color: var(--text-secondary);
1774
+ margin: 0;
1775
+ line-height: 1.1;
1776
+ position: relative;
1777
+ display: block;
1778
+ width: 100%;
1779
+ margin-top: -0.1rem;
1780
+ }
1781
+
1782
+ /* Terminal Navigation Help */
1783
+ .terminal-navigation-help {
1784
+ display: flex;
1785
+ align-items: flex-start;
1786
+ gap: 0.5rem;
1787
+ background: var(--bg-tertiary);
1788
+ border: 1px solid var(--border-secondary);
1789
+ border-radius: 8px;
1790
+ padding: 0.75rem 1rem;
1791
+ font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
1792
+ font-size: 0.8rem;
1793
+ line-height: 1.4;
1794
+ margin-top: 1rem;
1795
+ }
1796
+
1797
+ /* Terminal Search Container - Main Component */
1798
+ .terminal-search-container {
1799
+ margin-bottom: 1rem;
1800
+ }
1801
+
1802
+ .terminal-search-wrapper {
1803
+ background: var(--bg-secondary);
1804
+ border: 1px solid var(--border-primary);
1805
+ border-radius: 12px;
1806
+ padding: 0.75rem 1rem;
1807
+ display: flex;
1808
+ align-items: center;
1809
+ gap: 0.75rem;
1810
+ transition: border-color 0.2s ease;
1811
+ cursor: text;
1812
+ max-width: 700px;
1813
+ margin: 0 auto;
1814
+ }
1815
+
1816
+ .terminal-search-wrapper:focus-within {
1817
+ border-color: var(--text-accent);
1818
+ box-shadow: 0 0 0 2px rgba(213, 116, 85, 0.1);
1819
+ }
1820
+
1821
+ .terminal-prompt {
1822
+ color: var(--text-accent);
1823
+ font-size: 1rem;
1824
+ font-weight: bold;
1825
+ user-select: none;
1826
+ }
1827
+
1828
+ .search-icon-end {
1829
+ color: var(--text-secondary);
1830
+ opacity: 0.7;
1831
+ }
1832
+
1833
+ .terminal-search-input {
1834
+ flex: 1;
1835
+ background: transparent;
1836
+ border: none;
1837
+ color: var(--text-primary);
1838
+ font-size: 0.9rem;
1839
+ font-family: inherit;
1840
+ outline: none;
1841
+ placeholder-color: var(--text-secondary);
1842
+ caret-color: transparent; /* Hide default caret */
1843
+ }
1844
+
1845
+ /* Terminal cursor wrapper */
1846
+ .terminal-search-wrapper {
1847
+ position: relative;
1848
+ }
1849
+
1850
+ /* Terminal-style block cursor */
1851
+ .terminal-cursor {
1852
+ position: absolute;
1853
+ width: 10px;
1854
+ height: 20px;
1855
+ background: var(--text-accent);
1856
+ top: 50%;
1857
+ transform: translateY(-50%);
1858
+ animation: terminal-cursor-blink 1s infinite;
1859
+ pointer-events: none;
1860
+ z-index: 10;
1861
+ display: none;
1862
+ }
1863
+
1864
+ .terminal-search-input:focus + .terminal-cursor,
1865
+ .terminal-search-wrapper:focus-within .terminal-cursor {
1866
+ display: block;
1867
+ }
1868
+
1869
+ @keyframes terminal-cursor-blink {
1870
+ 0%, 50% {
1871
+ opacity: 1;
1872
+ }
1873
+ 51%, 100% {
1874
+ opacity: 0;
1875
+ }
1876
+ }
1877
+
1878
+ .terminal-search-input::placeholder {
1879
+ color: var(--text-secondary);
1880
+ font-style: italic;
1881
+ }
1882
+
1883
+ .terminal-clear-btn {
1884
+ background: none;
1885
+ border: none;
1886
+ color: var(--text-secondary);
1887
+ cursor: pointer;
1888
+ padding: 4px;
1889
+ border-radius: 4px;
1890
+ transition: all 0.2s ease;
1891
+ opacity: 0.7;
1892
+ }
1893
+
1894
+ .terminal-clear-btn:hover {
1895
+ background: var(--bg-tertiary);
1896
+ color: var(--text-primary);
1897
+ opacity: 1;
1898
+ }
1899
+
1900
+ /* Search Results Info - Terminal Style */
1901
+ .search-results-info {
1902
+ margin-top: 1rem;
1903
+ }
1904
+
1905
+ .terminal-results {
1906
+ display: flex;
1907
+ align-items: flex-start;
1908
+ gap: 0.5rem;
1909
+ background: var(--bg-tertiary);
1910
+ border: 1px solid var(--border-secondary);
1911
+ border-radius: 8px;
1912
+ padding: 0.75rem 1rem;
1913
+ font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
1914
+ font-size: 0.85rem;
1915
+ line-height: 1.4;
1916
+ }
1917
+
1918
+ .results-content {
1919
+ display: flex;
1920
+ flex-direction: column;
1921
+ flex: 1;
1922
+ }
1923
+
1924
+ .results-count {
1925
+ color: var(--text-primary);
1926
+ font-weight: 400;
1927
+ margin: 0 0 0.1rem 0;
1928
+ }
1929
+
1930
+ .search-filters {
1931
+ color: var(--text-secondary);
1932
+ margin: 0;
1933
+ line-height: 1.2;
1934
+ }
1935
+
1936
+ .search-filter-tags {
1937
+ display: inline-flex;
1938
+ gap: 0.5rem;
1939
+ flex-wrap: wrap;
1940
+ }
1941
+
1942
+ .search-category-tag {
1943
+ background: var(--bg-secondary);
1944
+ color: var(--text-accent);
1945
+ padding: 0.2rem 0.5rem;
1946
+ border-radius: 4px;
1947
+ font-size: 0.75rem;
1948
+ border: 1px solid var(--border-secondary);
1949
+ }
1950
+
1951
+ .terminal-search-help {
1952
+ margin-top: 0.5rem;
1953
+ margin-left: 1rem;
1954
+ }
1955
+
1956
+ .search-help-text {
1957
+ color: var(--text-secondary);
1958
+ font-size: 0.8rem;
1959
+ font-style: italic;
1960
+ }
1961
+
1962
+ /* Component Type Filters - Compact */
1963
+ .component-type-filters {
1964
+ margin-bottom: 1rem;
1965
+ }
1966
+
1967
+ .filter-group {
1968
+ display: flex;
1969
+ align-items: center;
1970
+ justify-content: center;
1971
+ gap: 0.75rem;
1972
+ flex-wrap: wrap;
1973
+ }
1974
+
1975
+ .filter-group-label {
1976
+ color: var(--text-secondary);
1977
+ font-size: 0.85rem;
1978
+ font-weight: 500;
1979
+ min-width: 40px;
1980
+ }
1981
+
1982
+ .filter-chips {
1983
+ display: flex;
1984
+ gap: 0.5rem;
1985
+ flex-wrap: wrap;
1986
+ }
1987
+
1988
+ .filter-chip {
1989
+ background: var(--bg-tertiary);
1990
+ color: var(--text-secondary);
1991
+ border: 1px solid var(--border-secondary);
1992
+ padding: 0.5rem 0.75rem;
1993
+ border-radius: 4px;
1994
+ cursor: pointer;
1995
+ font-family: inherit;
1996
+ font-size: 0.8rem;
1997
+ transition: all 0.2s ease;
1998
+ display: flex;
1999
+ align-items: center;
2000
+ gap: 0.4rem;
2001
+ white-space: nowrap;
2002
+ text-decoration: none;
2003
+ }
2004
+
2005
+ .filter-chip:hover {
2006
+ background: var(--bg-secondary);
2007
+ color: var(--text-primary);
2008
+ border-color: var(--border-primary);
2009
+ transform: translateY(-1px);
2010
+ }
2011
+
2012
+ .filter-chip.active {
2013
+ background: var(--text-accent) !important;
2014
+ color: var(--bg-primary) !important;
2015
+ border-color: var(--text-accent) !important;
2016
+ font-weight: 500;
2017
+ }
2018
+
2019
+ .chip-icon {
2020
+ font-size: 0.9rem;
2021
+ }
2022
+
2023
+ /* Component Categories - Dynamic */
2024
+ .component-categories {
2025
+ margin-bottom: 1rem;
2026
+ border-top: 1px solid var(--border-secondary);
2027
+ padding-top: 1rem;
2028
+ }
2029
+
2030
+ .category-group {
2031
+ display: flex;
2032
+ align-items: center;
2033
+ gap: 0.75rem;
2034
+ flex-wrap: wrap;
2035
+ }
2036
+
2037
+ .category-group-label {
2038
+ color: var(--text-secondary);
2039
+ font-size: 0.85rem;
2040
+ font-weight: 500;
2041
+ min-width: 60px;
2042
+ }
2043
+
2044
+ .category-chips {
2045
+ display: flex;
2046
+ gap: 0.4rem;
2047
+ flex-wrap: wrap;
2048
+ }
2049
+
2050
+ .category-chips .filter-chip {
2051
+ font-size: 0.75rem;
2052
+ padding: 0.3rem 0.6rem;
2053
+ background: var(--bg-primary);
2054
+ border-color: var(--border-secondary);
2055
+ }
2056
+
2057
+ .category-chips .filter-chip:hover {
2058
+ background: var(--bg-tertiary);
2059
+ border-color: var(--border-primary);
2060
+ }
2061
+
2062
+ .category-chips .filter-chip.active {
2063
+ background: var(--text-success) !important;
2064
+ color: var(--bg-primary) !important;
2065
+ border-color: var(--text-success) !important;
2066
+ }
2067
+
2068
+ /* Responsive Design for Terminal Interface */
2069
+ @media (max-width: 768px) {
2070
+ .search-title {
2071
+ font-size: 1.2rem;
2072
+ }
2073
+
2074
+ .search-subtitle {
2075
+ font-size: 0.9rem;
2076
+ }
2077
+
2078
+ .header-content {
2079
+ margin-left: 1.2rem;
2080
+ }
2081
+
2082
+ .terminal-dot::after {
2083
+ height: 30px;
2084
+ }
2085
+
2086
+ .terminal-navigation-help {
2087
+ font-size: 0.7rem;
2088
+ padding: 0.6rem 0.8rem;
2089
+ }
2090
+
2091
+ .terminal-results {
2092
+ font-size: 0.8rem;
2093
+ padding: 0.6rem 0.8rem;
2094
+ }
2095
+
2096
+ .terminal-search-wrapper {
2097
+ padding: 0.6rem 0.8rem;
2098
+ gap: 0.5rem;
2099
+ border-radius: 8px;
2100
+ }
2101
+
2102
+ .terminal-prompt {
2103
+ font-size: 0.9rem;
2104
+ }
2105
+
2106
+ .terminal-search-input {
2107
+ font-size: 0.9rem;
2108
+ }
2109
+
2110
+ .filter-chips {
2111
+ gap: 0.4rem;
2112
+ }
2113
+
2114
+ .filter-chip {
2115
+ padding: 0.4rem 0.6rem;
2116
+ font-size: 0.8rem;
2117
+ border-radius: 3px;
2118
+ }
2119
+
2120
+ .component-categories h3 {
2121
+ font-size: 0.9rem;
2122
+ margin-bottom: 0.4rem;
2123
+ }
2124
+
2125
+ .category-chips .filter-chip {
2126
+ font-size: 0.7rem;
2127
+ padding: 0.25rem 0.5rem;
2128
+ }
2129
+ }
2130
+
2131
+ @media (max-width: 480px) {
2132
+ .search-title {
2133
+ font-size: 1rem;
2134
+ }
2135
+
2136
+ .search-subtitle {
2137
+ font-size: 0.8rem;
2138
+ }
2139
+
2140
+ .header-content {
2141
+ margin-left: 1rem;
2142
+ }
2143
+
2144
+ .terminal-dot::after {
2145
+ height: 25px;
2146
+ }
2147
+
2148
+ .terminal-navigation-help {
2149
+ font-size: 0.65rem;
2150
+ padding: 0.5rem 0.6rem;
2151
+ }
2152
+
2153
+ .terminal-results {
2154
+ font-size: 0.75rem;
2155
+ padding: 0.5rem 0.6rem;
2156
+ }
2157
+
2158
+ .unified-filter-section {
2159
+ padding: 0.5rem;
2160
+ }
2161
+
2162
+ .terminal-search-wrapper {
2163
+ flex-direction: column;
2164
+ align-items: stretch;
2165
+ gap: 0.75rem;
2166
+ padding: 0.75rem;
2167
+ }
2168
+
2169
+ .terminal-input-row {
2170
+ display: flex;
2171
+ align-items: center;
2172
+ gap: 0.5rem;
2173
+ }
2174
+
2175
+ .filter-chips,
2176
+ .category-chips {
2177
+ justify-content: center;
2178
+ }
2179
+
2180
+ .filter-chip {
2181
+ flex: 0 0 auto;
2182
+ min-width: fit-content;
2183
+ }
2184
+ }
2185
+
2186
+ /* Unified Grid */
2187
+ .unified-grid {
2188
+ display: grid;
2189
+ grid-template-columns: repeat(4, 1fr);
2190
+ gap: 1.5rem;
2191
+ margin-bottom: 2rem;
2192
+ }
2193
+
2194
+ .unified-grid.templates-mode {
2195
+ /* Template specific styles if needed */
2196
+ }
2197
+
2198
+ .unified-grid.components-mode {
2199
+ /* Component specific styles if needed */
2200
+ }
2201
+
2202
+ /* Components Grid */
2203
+ .components-grid {
2204
+ display: grid;
2205
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
2206
+ gap: 1.5rem;
2207
+ margin-bottom: 2rem;
2208
+ }
2209
+
2210
+ .component-category {
2211
+ background: var(--bg-secondary);
2212
+ border: 1px solid var(--border-primary);
2213
+ border-radius: 12px;
2214
+ padding: 1.5rem;
2215
+ transition: all 0.3s ease;
2216
+ }
2217
+
2218
+ .component-category:hover {
2219
+ border-color: var(--text-accent);
2220
+ transform: translateY(-2px);
2221
+ box-shadow: 0 8px 25px var(--shadow-primary);
2222
+ }
2223
+
2224
+ .category-header {
2225
+ display: flex;
2226
+ align-items: center;
2227
+ gap: 0.75rem;
2228
+ margin-bottom: 1rem;
2229
+ }
2230
+
2231
+ .category-icon {
2232
+ font-size: 1.5rem;
2233
+ }
2234
+
2235
+ .category-title {
2236
+ color: var(--text-accent);
2237
+ font-size: 1.1rem;
2238
+ font-weight: 600;
2239
+ margin: 0;
2240
+ }
2241
+
2242
+ .category-description {
2243
+ color: var(--text-secondary);
2244
+ font-size: 0.85rem;
2245
+ margin-bottom: 1.5rem;
2246
+ line-height: 1.5;
2247
+ }
2248
+
2249
+ .component-items {
2250
+ display: flex;
2251
+ flex-direction: column;
2252
+ gap: 0.75rem;
2253
+ }
2254
+
2255
+ .component-item {
2256
+ background: var(--bg-tertiary);
2257
+ border: 1px solid var(--border-secondary);
2258
+ border-radius: 6px;
2259
+ padding: 0.75rem;
2260
+ transition: all 0.2s ease;
2261
+ cursor: pointer;
2262
+ }
2263
+
2264
+ .component-item:hover {
2265
+ border-color: var(--text-accent);
2266
+ background: var(--bg-primary);
2267
+ }
2268
+
2269
+ .component-name {
2270
+ color: var(--text-primary);
2271
+ font-size: 0.9rem;
2272
+ font-weight: 500;
2273
+ margin-bottom: 0.25rem;
2274
+ }
2275
+
2276
+ .component-description {
2277
+ color: var(--text-secondary);
2278
+ font-size: 0.75rem;
2279
+ line-height: 1.4;
2280
+ margin-bottom: 0.5rem;
2281
+ }
2282
+
2283
+ .component-command {
2284
+ font-family: 'Monaco', 'Menlo', monospace;
2285
+ font-size: 0.7rem;
2286
+ color: var(--text-success);
2287
+ background: var(--bg-primary);
2288
+ padding: 0.25rem 0.5rem;
2289
+ border-radius: 3px;
2290
+ border: 1px solid var(--border-primary);
2291
+ }
2292
+
2293
+ /* Tablet responsive */
2294
+ @media (max-width: 1024px) and (min-width: 769px) {
2295
+ .unified-grid {
2296
+ grid-template-columns: repeat(2, 1fr);
2297
+ gap: 1.25rem;
2298
+ }
2299
+ }
2300
+
2301
+ /* Responsive adjustments for unified interface */
2302
+ @media (max-width: 768px) {
2303
+ .unified-filter-bar .filter-buttons {
2304
+ gap: 0.5rem;
2305
+ }
2306
+
2307
+ .unified-filter-bar .filter-btn {
2308
+ padding: 0.6rem 1rem;
2309
+ font-size: 0.85rem;
2310
+ }
2311
+
2312
+ .unified-grid {
2313
+ grid-template-columns: 1fr;
2314
+ gap: 1rem;
2315
+ }
2316
+
2317
+ .unified-filter-bar {
2318
+ padding: 1rem;
2319
+ }
2320
+
2321
+ .components-grid {
2322
+ grid-template-columns: 1fr;
2323
+ gap: 1rem;
2324
+ }
2325
+
2326
+ .component-category {
2327
+ padding: 1rem;
2328
+ }
2329
+ }
2330
+
2331
+ /* ==== COMPONENT FILTER AND MODULAR INTERFACE ==== */
2332
+
2333
+ /* Component Filter Bar */
2334
+ .component-filter-bar {
2335
+ background: var(--bg-secondary);
2336
+ border: 1px solid var(--border-primary);
2337
+ border-radius: 12px;
2338
+ padding: 1.5rem;
2339
+ margin-bottom: 2rem;
2340
+ text-align: center;
2341
+ }
2342
+
2343
+ .filter-label {
2344
+ color: var(--text-accent);
2345
+ font-size: 1rem;
2346
+ font-weight: 600;
2347
+ margin-bottom: 1rem;
2348
+ display: flex;
2349
+ align-items: center;
2350
+ justify-content: center;
2351
+ gap: 0.5rem;
2352
+ }
2353
+
2354
+ .filter-label:before {
2355
+ content: ">";
2356
+ color: var(--text-success);
2357
+ font-weight: bold;
2358
+ }
2359
+
2360
+ .filter-buttons {
2361
+ display: flex;
2362
+ justify-content: center;
2363
+ gap: 1rem;
2364
+ flex-wrap: wrap;
2365
+ }
2366
+
2367
+ .filter-btn {
2368
+ background: var(--bg-tertiary);
2369
+ color: var(--text-secondary);
2370
+ border: 1px solid var(--border-primary);
2371
+ padding: 0.75rem 1.25rem;
2372
+ border-radius: 8px;
2373
+ cursor: pointer;
2374
+ font-family: inherit;
2375
+ font-size: 0.85rem;
2376
+ transition: all 0.2s ease;
2377
+ display: flex;
2378
+ align-items: center;
2379
+ gap: 0.5rem;
2380
+ white-space: nowrap;
2381
+ }
2382
+
2383
+ .filter-btn:hover {
2384
+ background: var(--bg-primary);
2385
+ color: var(--text-primary);
2386
+ border-color: var(--text-accent);
2387
+ transform: translateY(-1px);
2388
+ }
2389
+
2390
+ .filter-btn.active {
2391
+ background: var(--text-accent);
2392
+ color: var(--bg-primary);
2393
+ border-color: var(--text-accent);
2394
+ font-weight: 600;
2395
+ box-shadow: 0 4px 12px rgba(213, 116, 85, 0.3);
2396
+ }
2397
+
2398
+ /* Components Container */
2399
+ .components-container {
2400
+ display: grid;
2401
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
2402
+ gap: 1.5rem;
2403
+ }
2404
+
2405
+ /* Add Component Cards - Same style as regular template cards */
2406
+ .add-component-card .component-icon {
2407
+ font-size: 2rem;
2408
+ animation: pulse 2s infinite;
2409
+ }
2410
+
2411
+ @keyframes pulse {
2412
+ 0%, 100% { opacity: 1; transform: scale(1); }
2413
+ 50% { opacity: 0.7; transform: scale(1.1); }
2414
+ }
2415
+
2416
+ /* Component Type Badge */
2417
+ .component-type-badge {
2418
+ position: absolute;
2419
+ top: 12px;
2420
+ right: 12px;
2421
+ padding: 0.25rem 0.5rem;
2422
+ border-radius: 12px;
2423
+ font-size: 0.7rem;
2424
+ font-weight: 600;
2425
+ text-transform: uppercase;
2426
+ letter-spacing: 0.5px;
2427
+ color: white;
2428
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
2429
+ }
2430
+
2431
+ /* Component Icon Styling */
2432
+ .component-icon {
2433
+ font-size: 1.8rem;
2434
+ display: inline-block;
2435
+ vertical-align: middle;
2436
+ }
2437
+
2438
+ .framework-logo .component-icon {
2439
+ font-size: 2.5rem;
2440
+ }
2441
+
2442
+
2443
+ /* Enhanced Component Modal */
2444
+ .component-modal {
2445
+ max-width: 800px;
2446
+ }
2447
+
2448
+ .component-modal-title {
2449
+ display: flex;
2450
+ align-items: center;
2451
+ gap: 1rem;
2452
+ flex: 1;
2453
+ }
2454
+
2455
+ .component-modal-title h3 {
2456
+ margin: 0;
2457
+ flex: 1;
2458
+ }
2459
+
2460
+ .component-modal-title .component-icon {
2461
+ font-size: 1.5rem;
2462
+ }
2463
+
2464
+ .component-modal-title .component-type-badge {
2465
+ position: static;
2466
+ margin-left: auto;
2467
+ }
2468
+
2469
+ .component-details {
2470
+ display: flex;
2471
+ flex-direction: column;
2472
+ gap: 1.5rem;
2473
+ }
2474
+
2475
+ .component-description {
2476
+ color: var(--text-secondary);
2477
+ font-size: 0.9rem;
2478
+ line-height: 1.6;
2479
+ padding: 1rem;
2480
+ background: var(--bg-tertiary);
2481
+ border: 1px solid var(--border-primary);
2482
+ border-radius: 8px;
2483
+ }
2484
+
2485
+ .installation-section h4,
2486
+ .component-content h4 {
2487
+ color: var(--text-accent);
2488
+ font-size: 1rem;
2489
+ font-weight: 600;
2490
+ margin: 0 0 0.75rem 0;
2491
+ display: flex;
2492
+ align-items: center;
2493
+ gap: 0.5rem;
2494
+ }
2495
+
2496
+ /* Global Agent Styles */
2497
+ .global-agent-section {
2498
+ margin-top: 1.5rem;
2499
+ padding-top: 1.5rem;
2500
+ border-top: 1px solid var(--border-secondary);
2501
+ }
2502
+
2503
+ .global-agent-description {
2504
+ color: var(--text-secondary);
2505
+ font-size: 0.9rem;
2506
+ margin: 0 0 1rem 0;
2507
+ font-style: italic;
2508
+ }
2509
+
2510
+ .global-agent-usage {
2511
+ margin-top: 1rem;
2512
+ }
2513
+
2514
+ .usage-example {
2515
+ margin-bottom: 1rem;
2516
+ }
2517
+
2518
+ .usage-title {
2519
+ color: var(--text-secondary);
2520
+ font-size: 0.85rem;
2521
+ font-weight: 500;
2522
+ margin-bottom: 0.5rem;
2523
+ }
2524
+
2525
+ .usage-command {
2526
+ background: var(--bg-terminal);
2527
+ border: 1px solid var(--border-primary);
2528
+ }
2529
+
2530
+ .usage-command code {
2531
+ color: var(--text-accent);
2532
+ font-weight: 500;
2533
+ }
2534
+
2535
+ .global-features {
2536
+ display: grid;
2537
+ gap: 0.4rem;
2538
+ margin-top: 1rem;
2539
+ }
2540
+
2541
+ .feature {
2542
+ color: var(--text-secondary);
2543
+ font-size: 0.85rem;
2544
+ display: flex;
2545
+ align-items: center;
2546
+ gap: 0.5rem;
2547
+ }
2548
+
2549
+ /* E2B Sandbox Section Styles */
2550
+ .e2b-sandbox-section {
2551
+ margin-top: 1.5rem;
2552
+ padding-top: 1.5rem;
2553
+ border-top: 1px solid var(--border-secondary);
2554
+ background: linear-gradient(135deg, rgba(70, 130, 180, 0.08) 0%, rgba(100, 149, 237, 0.08) 100%);
2555
+ border-radius: 8px;
2556
+ padding: 1.5rem;
2557
+ margin-top: 1.5rem;
2558
+ }
2559
+
2560
+ .e2b-description {
2561
+ color: var(--text-secondary);
2562
+ font-size: 0.9rem;
2563
+ margin: 0 0 1rem 0;
2564
+ font-style: italic;
2565
+ }
2566
+
2567
+ .e2b-features {
2568
+ display: grid;
2569
+ gap: 0.4rem;
2570
+ margin-top: 1rem;
2571
+ margin-bottom: 1rem;
2572
+ }
2573
+
2574
+ .e2b-requirements {
2575
+ margin-top: 1rem;
2576
+ background: rgba(255, 165, 0, 0.1);
2577
+ border-left: 3px solid var(--accent-orange);
2578
+ padding: 0.8rem 1rem;
2579
+ border-radius: 4px;
2580
+ }
2581
+
2582
+ .requirements-title {
2583
+ color: var(--text-primary);
2584
+ font-size: 0.85rem;
2585
+ font-weight: 600;
2586
+ margin-bottom: 0.5rem;
2587
+ display: flex;
2588
+ align-items: center;
2589
+ gap: 0.5rem;
2590
+ }
2591
+
2592
+ .requirements-title::before {
2593
+ content: "⚠️";
2594
+ font-size: 0.9rem;
2595
+ }
2596
+
2597
+ .requirement {
2598
+ color: var(--text-secondary);
2599
+ font-size: 0.8rem;
2600
+ margin: 0.3rem 0;
2601
+ display: flex;
2602
+ align-items: center;
2603
+ gap: 0.5rem;
2604
+ }
2605
+
2606
+ .requirement a {
2607
+ color: var(--accent-blue);
2608
+ text-decoration: none;
2609
+ font-weight: 500;
2610
+ }
2611
+
2612
+ .requirement a:hover {
2613
+ text-decoration: underline;
2614
+ }
2615
+
2616
+ /* Modal Section Styles */
2617
+ .basic-installation-section,
2618
+ .global-agent-section,
2619
+ .e2b-sandbox-section {
2620
+ margin-top: 1.5rem;
2621
+ padding-top: 1.5rem;
2622
+ border-top: 1px solid var(--border-secondary);
2623
+ }
2624
+
2625
+ .basic-installation-section {
2626
+ margin-top: 0;
2627
+ padding-top: 0;
2628
+ border-top: none;
2629
+ }
2630
+
2631
+ .installation-description,
2632
+ .global-agent-description,
2633
+ .e2b-description {
2634
+ color: var(--text-secondary);
2635
+ font-size: 0.9rem;
2636
+ margin: 0.5rem 0 1rem 0;
2637
+ font-style: italic;
2638
+ }
2639
+
2640
+ /* E2B Sandbox NEW Badge */
2641
+ .new-badge {
2642
+ background: linear-gradient(135deg, #4682B4 0%, #6495ED 100%);
2643
+ color: white;
2644
+ font-size: 0.6rem;
2645
+ font-weight: 600;
2646
+ padding: 2px 6px;
2647
+ border-radius: 3px;
2648
+ margin-left: 0.5rem;
2649
+ letter-spacing: 0.5px;
2650
+ vertical-align: middle;
2651
+ }
2652
+
2653
+ /* E2B Modal API Setup Styles - Simplified */
2654
+ .e2b-api-setup {
2655
+ margin: 1rem 0;
2656
+ background: var(--bg-terminal);
2657
+ border: 1px solid var(--border-primary);
2658
+ border-radius: 6px;
2659
+ padding: 1rem;
2660
+ }
2661
+
2662
+ .e2b-api-setup h5 {
2663
+ color: var(--text-primary);
2664
+ font-size: 0.85rem;
2665
+ font-weight: 600;
2666
+ margin: 0 0 0.8rem 0;
2667
+ }
2668
+
2669
+ .env-setup-simple {
2670
+ margin-bottom: 1rem;
2671
+ }
2672
+
2673
+ .env-comment {
2674
+ color: var(--text-secondary);
2675
+ font-size: 0.8rem;
2676
+ margin-bottom: 0.5rem;
2677
+ font-style: italic;
2678
+ }
2679
+
2680
+ .env-example {
2681
+ background: var(--bg-primary);
2682
+ border: 1px solid var(--border-primary);
2683
+ border-radius: 4px;
2684
+ padding: 0.8rem;
2685
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
2686
+ }
2687
+
2688
+ .env-example code {
2689
+ display: block;
2690
+ color: var(--text-accent);
2691
+ font-size: 0.8rem;
2692
+ background: none;
2693
+ padding: 0.2rem 0;
2694
+ margin: 0;
2695
+ }
2696
+
2697
+ /* API Key Links */
2698
+ .api-key-links {
2699
+ display: flex;
2700
+ gap: 1rem;
2701
+ margin-top: 0.5rem;
2702
+ flex-wrap: wrap;
2703
+ }
2704
+
2705
+ .api-key-link {
2706
+ display: inline-flex;
2707
+ align-items: center;
2708
+ gap: 0.5rem;
2709
+ padding: 0.6rem 1rem;
2710
+ background: rgba(70, 130, 180, 0.1);
2711
+ border: 1px solid rgba(70, 130, 180, 0.3);
2712
+ border-radius: 6px;
2713
+ color: var(--text-primary);
2714
+ text-decoration: none;
2715
+ font-size: 0.8rem;
2716
+ font-weight: 500;
2717
+ transition: all 0.2s ease;
2718
+ }
2719
+
2720
+ .api-key-link:hover {
2721
+ background: rgba(70, 130, 180, 0.2);
2722
+ border-color: rgba(70, 130, 180, 0.5);
2723
+ transform: translateY(-1px);
2724
+ }
2725
+
2726
+ .api-key-link span {
2727
+ font-size: 0.9rem;
2728
+ }
2729
+
2730
+ /* Responsive adjustments */
2731
+ @media (max-width: 768px) {
2732
+ .env-example code {
2733
+ font-size: 0.75rem;
2734
+ }
2735
+
2736
+ .api-key-links {
2737
+ flex-direction: column;
2738
+ gap: 0.5rem;
2739
+ }
2740
+
2741
+ .api-key-link {
2742
+ justify-content: center;
2743
+ }
2744
+ }
2745
+
2746
+ /* E2B Sandbox Tool Card Styles */
2747
+ .tool-card.e2b-highlight {
2748
+ background: linear-gradient(135deg, rgba(70, 130, 180, 0.1) 0%, rgba(100, 149, 237, 0.1) 100%);
2749
+ border: 2px solid rgba(70, 130, 180, 0.3);
2750
+ position: relative;
2751
+ grid-column: 1 / -1; /* Span across all columns */
2752
+ max-width: none;
2753
+ }
2754
+
2755
+ /* E2B highlight card internal layout */
2756
+ .tool-card.e2b-highlight .env-setup {
2757
+ display: grid;
2758
+ grid-template-columns: 1fr 1fr;
2759
+ gap: 1.5rem;
2760
+ align-items: start;
2761
+ }
2762
+
2763
+ .tool-card.e2b-highlight .command-line {
2764
+ margin-top: 1rem;
2765
+ }
2766
+
2767
+ .tool-card.e2b-highlight .api-links {
2768
+ margin-top: 1.5rem;
2769
+ }
2770
+
2771
+ /* Responsive adjustments for full-width E2B card */
2772
+ @media (max-width: 1024px) {
2773
+ .tool-card.e2b-highlight .env-setup {
2774
+ grid-template-columns: 1fr;
2775
+ gap: 1rem;
2776
+ }
2777
+ }
2778
+
2779
+ .tool-card.e2b-highlight::before {
2780
+ content: "NEW";
2781
+ position: absolute;
2782
+ top: -8px;
2783
+ right: 15px;
2784
+ background: linear-gradient(135deg, #4682B4 0%, #6495ED 100%);
2785
+ color: white;
2786
+ font-size: 0.7rem;
2787
+ font-weight: 600;
2788
+ padding: 2px 8px;
2789
+ border-radius: 4px;
2790
+ letter-spacing: 0.5px;
2791
+ }
2792
+
2793
+ .env-setup {
2794
+ background: var(--bg-terminal);
2795
+ border: 1px solid var(--border-primary);
2796
+ border-radius: 6px;
2797
+ padding: 1rem;
2798
+ margin: 1rem 0;
2799
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
2800
+ }
2801
+
2802
+ .env-comment {
2803
+ color: var(--text-secondary);
2804
+ font-size: 0.85rem;
2805
+ margin-bottom: 0.5rem;
2806
+ font-style: italic;
2807
+ }
2808
+
2809
+ .env-vars {
2810
+ display: flex;
2811
+ flex-direction: column;
2812
+ gap: 0.3rem;
2813
+ }
2814
+
2815
+ .env-vars code {
2816
+ color: var(--text-accent);
2817
+ font-size: 0.85rem;
2818
+ font-weight: 500;
2819
+ background: none;
2820
+ padding: 0;
2821
+ }
2822
+
2823
+ .api-links {
2824
+ display: flex;
2825
+ gap: 1rem;
2826
+ margin-top: 1rem;
2827
+ justify-content: center;
2828
+ }
2829
+
2830
+ .api-link {
2831
+ display: inline-flex;
2832
+ align-items: center;
2833
+ gap: 0.5rem;
2834
+ padding: 0.5rem 1rem;
2835
+ background: rgba(70, 130, 180, 0.1);
2836
+ border: 1px solid rgba(70, 130, 180, 0.3);
2837
+ border-radius: 6px;
2838
+ color: var(--text-primary);
2839
+ text-decoration: none;
2840
+ font-size: 0.85rem;
2841
+ font-weight: 500;
2842
+ transition: all 0.2s ease;
2843
+ }
2844
+
2845
+ .api-link:hover {
2846
+ background: rgba(70, 130, 180, 0.2);
2847
+ border-color: rgba(70, 130, 180, 0.5);
2848
+ transform: translateY(-1px);
2849
+ }
2850
+
2851
+ .api-link::before {
2852
+ content: "🔑";
2853
+ font-size: 0.9rem;
2854
+ }
2855
+
2856
+ /* Responsive adjustments */
2857
+ @media (max-width: 768px) {
2858
+ .api-links {
2859
+ flex-direction: column;
2860
+ gap: 0.5rem;
2861
+ }
2862
+
2863
+ .env-vars code {
2864
+ font-size: 0.75rem;
2865
+ }
2866
+ }
2867
+
2868
+ /* Sandbox Step Card Styles */
2869
+ .step-card.sandbox-highlight {
2870
+ background: linear-gradient(135deg, rgba(70, 130, 180, 0.08) 0%, rgba(100, 149, 237, 0.08) 100%);
2871
+ border: 2px solid rgba(70, 130, 180, 0.2);
2872
+ position: relative;
2873
+ }
2874
+
2875
+ .step-card.sandbox-highlight .step-number {
2876
+ background: linear-gradient(135deg, #4682B4 0%, #6495ED 100%);
2877
+ color: white;
2878
+ font-size: 1.2rem;
2879
+ display: flex;
2880
+ align-items: center;
2881
+ justify-content: center;
2882
+ }
2883
+
2884
+ .sandbox-setup {
2885
+ margin: 0.8rem 0;
2886
+ }
2887
+
2888
+ .env-hint {
2889
+ background: var(--bg-terminal);
2890
+ border: 1px solid var(--border-primary);
2891
+ border-radius: 4px;
2892
+ padding: 0.6rem;
2893
+ font-size: 0.8rem;
2894
+ color: var(--text-secondary);
2895
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
2896
+ text-align: center;
2897
+ }
2898
+
2899
+ /* Adjust steps grid for 4 items */
2900
+ .steps-grid {
2901
+ display: grid;
2902
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
2903
+ gap: 2rem;
2904
+ max-width: 1200px;
2905
+ margin: 0 auto;
2906
+ }
2907
+
2908
+ /* Mobile responsive adjustments */
2909
+ @media (max-width: 768px) {
2910
+ .steps-grid {
2911
+ grid-template-columns: 1fr;
2912
+ gap: 1.5rem;
2913
+ }
2914
+
2915
+ .env-hint {
2916
+ font-size: 0.75rem;
2917
+ padding: 0.5rem;
2918
+ }
2919
+ }
2920
+
2921
+ .component-preview {
2922
+ background: var(--bg-primary);
2923
+ border: 1px solid var(--border-secondary);
2924
+ border-radius: 8px;
2925
+ padding: 1rem;
2926
+ overflow-y: auto;
2927
+ }
2928
+
2929
+ .component-preview pre {
2930
+ margin: 0;
2931
+ color: var(--text-primary);
2932
+ font-size: 0.8rem;
2933
+ line-height: 1.4;
2934
+ white-space: pre-wrap;
2935
+ word-wrap: break-word;
2936
+ }
2937
+
2938
+ .component-preview code {
2939
+ font-family: inherit;
2940
+ color: var(--text-info);
2941
+ }
2942
+
2943
+ /* Contribute Component Modal */
2944
+ .contribute-component-modal .component-structure {
2945
+ background: var(--bg-primary);
2946
+ border: 1px solid var(--border-secondary);
2947
+ border-radius: 6px;
2948
+ padding: 1rem;
2949
+ margin: 0.75rem 0;
2950
+ }
2951
+
2952
+ .contribute-component-modal .component-structure strong {
2953
+ color: var(--text-accent);
2954
+ font-size: 0.85rem;
2955
+ display: block;
2956
+ margin-bottom: 0.5rem;
2957
+ }
2958
+
2959
+ .contribute-component-modal .component-structure pre {
2960
+ color: var(--text-secondary);
2961
+ font-size: 0.75rem;
2962
+ line-height: 1.4;
2963
+ margin: 0;
2964
+ white-space: pre-wrap;
2965
+ }
2966
+
2967
+ /* Enhanced Loading States */
2968
+ .loading {
2969
+ grid-column: 1 / -1;
2970
+ text-align: center;
2971
+ color: var(--text-secondary);
2972
+ background: var(--bg-tertiary);
2973
+ border: 1px solid var(--border-primary);
2974
+ border-radius: 12px;
2975
+ padding: 3rem 2rem;
2976
+ font-size: 1rem;
2977
+ position: relative;
2978
+ overflow: hidden;
2979
+ }
2980
+
2981
+ .loading:before {
2982
+ content: "";
2983
+ position: absolute;
2984
+ top: 0;
2985
+ left: -100%;
2986
+ width: 100%;
2987
+ height: 100%;
2988
+ background: linear-gradient(
2989
+ 90deg,
2990
+ transparent,
2991
+ rgba(213, 116, 85, 0.1),
2992
+ transparent
2993
+ );
2994
+ animation: loading-shimmer 2s infinite;
2995
+ }
2996
+
2997
+ @keyframes loading-shimmer {
2998
+ 0% { left: -100%; }
2999
+ 100% { left: 100%; }
3000
+ }
3001
+
3002
+ /* Responsive Design for Component Interface */
3003
+ @media (max-width: 768px) {
3004
+ .unified-filter-bar .filter-buttons {
3005
+ gap: 0.5rem;
3006
+ }
3007
+
3008
+ .unified-filter-bar .filter-btn {
3009
+ padding: 0.6rem 1rem;
3010
+ font-size: 0.85rem;
3011
+ }
3012
+
3013
+ .unified-grid {
3014
+ grid-template-columns: 1fr;
3015
+ gap: 1rem;
3016
+ }
3017
+
3018
+ .unified-filter-bar {
3019
+ padding: 1rem;
3020
+ }
3021
+
3022
+ .components-grid {
3023
+ grid-template-columns: 1fr;
3024
+ gap: 1rem;
3025
+ }
3026
+
3027
+ .component-category {
3028
+ padding: 1rem;
3029
+ }
3030
+ }
3031
+
3032
+
3033
+ /* Cart Instructions */
3034
+ .cart-instructions {
3035
+ background: var(--bg-tertiary);
3036
+ border: 1px solid var(--border-primary);
3037
+ border-radius: 8px;
3038
+ padding: 1rem;
3039
+ margin: 1.5rem 0;
3040
+ transition: all 0.3s ease;
3041
+ }
3042
+
3043
+ .cart-instructions:hover {
3044
+ border-color: var(--text-accent);
3045
+ box-shadow: 0 2px 8px var(--shadow-primary);
3046
+ }
3047
+
3048
+ .cart-instructions .instructions-header {
3049
+ display: flex;
3050
+ align-items: center;
3051
+ gap: 0.5rem;
3052
+ color: var(--text-accent);
3053
+ font-weight: 600;
3054
+ margin-bottom: 0.75rem;
3055
+ font-size: 0.9rem;
3056
+ }
3057
+
3058
+ .cart-instructions p {
3059
+ color: var(--text-secondary);
3060
+ font-size: 0.8rem;
3061
+ line-height: 1.5;
3062
+ margin: 0;
3063
+ }
3064
+
3065
+ /* Clear All Button (moved to top) */
3066
+ .cart-clear-section {
3067
+ display: flex;
3068
+ justify-content: flex-end;
3069
+ margin-bottom: 1rem;
3070
+ padding-bottom: 0.75rem;
3071
+ border-bottom: 1px solid var(--border-primary);
3072
+ }
3073
+
3074
+ .clear-all-btn {
3075
+ background: transparent;
3076
+ color: var(--text-secondary);
3077
+ border: 1px solid var(--border-primary);
3078
+ padding: 0.4rem 0.8rem;
3079
+ border-radius: 4px;
3080
+ cursor: pointer;
3081
+ font-size: 0.8rem;
3082
+ transition: all 0.2s ease;
3083
+ display: flex;
3084
+ align-items: center;
3085
+ gap: 0.4rem;
3086
+ }
3087
+
3088
+ .clear-all-btn:hover {
3089
+ border-color: var(--text-error);
3090
+ color: var(--text-error);
3091
+ background: rgba(248, 81, 73, 0.1);
3092
+ }
3093
+
3094
+ /* Subtle Clear All Button */
3095
+ .cart-clear-section-prominent {
3096
+ margin: 0.5rem 1.5rem;
3097
+ padding: 0.5rem 0;
3098
+ border-bottom: 1px solid var(--border-primary);
3099
+ display: flex;
3100
+ justify-content: flex-end;
3101
+ align-items: center;
3102
+ }
3103
+
3104
+ .clear-all-btn-prominent {
3105
+ background: transparent;
3106
+ color: var(--text-secondary);
3107
+ border: 1px solid var(--border-primary);
3108
+ padding: 0.4rem 0.8rem;
3109
+ border-radius: 4px;
3110
+ cursor: pointer;
3111
+ font-size: 0.8rem;
3112
+ font-weight: 500;
3113
+ transition: all 0.2s ease;
3114
+ display: flex;
3115
+ align-items: center;
3116
+ gap: 0.4rem;
3117
+ text-transform: none;
3118
+ letter-spacing: normal;
3119
+ }
3120
+
3121
+ .clear-all-btn-prominent:hover {
3122
+ border-color: var(--text-error);
3123
+ color: var(--text-error);
3124
+ background: rgba(248, 81, 73, 0.05);
3125
+ transform: none;
3126
+ }
3127
+
3128
+ .clear-all-btn-prominent:active {
3129
+ transform: none;
3130
+ background: rgba(248, 81, 73, 0.1);
3131
+ }
3132
+
3133
+ .clear-count {
3134
+ background: var(--bg-tertiary);
3135
+ padding: 0.1rem 0.3rem;
3136
+ border-radius: 8px;
3137
+ font-size: 0.7rem;
3138
+ font-weight: 500;
3139
+ margin-left: 0.2rem;
3140
+ color: var(--text-secondary);
3141
+ }
3142
+
3143
+ /* Cart Header Improvements */
3144
+ .cart-header-main {
3145
+ display: flex;
3146
+ justify-content: space-between;
3147
+ align-items: center;
3148
+ width: 100%;
3149
+ margin-bottom: 0.5rem;
3150
+ }
3151
+
3152
+ /* Share Dropdown Container */
3153
+ .share-dropdown {
3154
+ position: relative;
3155
+ flex: 1;
3156
+ }
3157
+
3158
+ /* Share Stack Button */
3159
+ .share-stack-btn {
3160
+ background: var(--bg-tertiary);
3161
+ color: var(--text-primary);
3162
+ border: 1px solid var(--border-primary);
3163
+ padding: 0.5rem 1rem;
3164
+ border-radius: 6px;
3165
+ cursor: pointer;
3166
+ font-size: 0.9rem;
3167
+ font-weight: 500;
3168
+ transition: all 0.2s ease;
3169
+ display: flex;
3170
+ align-items: center;
3171
+ gap: 0.5rem;
3172
+ width: 100%;
3173
+ justify-content: center;
3174
+ }
3175
+
3176
+ .share-stack-btn:hover {
3177
+ background: var(--bg-primary);
3178
+ border-color: var(--text-accent);
3179
+ transform: translateY(-1px);
3180
+ }
3181
+
3182
+ .dropdown-arrow {
3183
+ margin-left: auto;
3184
+ transition: transform 0.2s ease;
3185
+ }
3186
+
3187
+ .share-dropdown.open .dropdown-arrow {
3188
+ transform: rotate(180deg);
3189
+ }
3190
+
3191
+ /* Share Options */
3192
+ .share-options {
3193
+ position: absolute;
3194
+ bottom: 100%;
3195
+ left: 0;
3196
+ right: 0;
3197
+ background: var(--bg-tertiary);
3198
+ border: 1px solid var(--border-primary);
3199
+ border-radius: 6px;
3200
+ box-shadow: 0 -4px 16px var(--shadow-primary);
3201
+ display: none;
3202
+ flex-direction: column;
3203
+ gap: 0;
3204
+ margin-bottom: 8px;
3205
+ z-index: 1000;
3206
+ }
3207
+
3208
+ .share-dropdown.open .share-options {
3209
+ display: flex;
3210
+ }
3211
+
3212
+ .share-option-btn {
3213
+ background: var(--bg-tertiary);
3214
+ color: var(--text-primary);
3215
+ border: none;
3216
+ border-bottom: 1px solid var(--border-primary);
3217
+ padding: 0.75rem 1rem;
3218
+ border-radius: 0;
3219
+ cursor: pointer;
3220
+ font-size: 0.85rem;
3221
+ transition: all 0.2s ease;
3222
+ display: flex;
3223
+ align-items: center;
3224
+ gap: 0.5rem;
3225
+ justify-content: flex-start;
3226
+ }
3227
+
3228
+ .share-option-btn:hover {
3229
+ background: var(--bg-primary);
3230
+ color: var(--text-accent);
3231
+ }
3232
+
3233
+ .share-option-btn:first-child {
3234
+ background: var(--bg-tertiary);
3235
+ color: var(--text-primary);
3236
+ border-top-left-radius: 6px;
3237
+ border-top-right-radius: 6px;
3238
+ }
3239
+
3240
+ .share-option-btn:first-child:hover {
3241
+ background: var(--bg-primary);
3242
+ color: var(--text-accent);
3243
+ }
3244
+
3245
+ .share-option-btn:last-child {
3246
+ background: var(--bg-tertiary);
3247
+ color: var(--text-primary);
3248
+ border-bottom-left-radius: 6px;
3249
+ border-bottom-right-radius: 6px;
3250
+ border-bottom: none;
3251
+ }
3252
+
3253
+ .share-option-btn:last-child:hover {
3254
+ background: var(--bg-primary);
3255
+ color: var(--text-accent);
3256
+ }
3257
+
3258
+ flex-direction: column;
3259
+ align-items: center;
3260
+ gap: 0.5rem;
3261
+ }
3262
+
3263
+ .unified-filter-bar .filter-btn {
3264
+ width: 100%;
3265
+ max-width: 280px;
3266
+ justify-content: center;
3267
+ padding: 0.6rem 1rem;
3268
+ font-size: 0.85rem;
3269
+ }
3270
+
3271
+ .filter-buttons {
3272
+ gap: 0.5rem;
3273
+ }
3274
+
3275
+ .filter-btn {
3276
+ padding: 0.5rem 0.75rem;
3277
+ font-size: 0.8rem;
3278
+ }
3279
+
3280
+ .components-container {
3281
+ grid-template-columns: 1fr;
3282
+ gap: 1rem;
3283
+ }
3284
+
3285
+ .component-filter-bar {
3286
+ padding: 1rem;
3287
+ }
3288
+
3289
+ .component-modal {
3290
+ max-width: 100%;
3291
+ }
3292
+
3293
+ .component-modal-title {
3294
+ flex-direction: column;
3295
+ align-items: flex-start;
3296
+ gap: 0.5rem;
3297
+ }
3298
+
3299
+ .component-modal-title .component-type-badge {
3300
+ margin-left: 0;
3301
+ }
3302
+
3303
+ .component-preview {
3304
+ padding: 0.75rem;
3305
+ }
3306
+
3307
+ .component-preview pre {
3308
+ font-size: 0.75rem;
3309
+ }
3310
+ }
3311
+
3312
+ /* Focus and Accessibility */
3313
+ .filter-btn:focus,
3314
+ .mode-btn:focus {
3315
+ outline: 2px solid var(--text-accent);
3316
+ outline-offset: 2px;
3317
+ }
3318
+
3319
+ .template-card:focus {
3320
+ outline: 2px solid var(--text-accent);
3321
+ outline-offset: 4px;
3322
+ }
3323
+
3324
+ /* High contrast mode adjustments */
3325
+ @media (prefers-contrast: high) {
3326
+ .component-type-badge {
3327
+ border: 1px solid white;
3328
+ }
3329
+
3330
+ .filter-btn.active {
3331
+ box-shadow: 0 0 0 2px var(--bg-primary);
3332
+ }
3333
+
3334
+ .add-component-card:hover {
3335
+ border-width: 3px;
3336
+ }
3337
+ }
3338
+
3339
+ /* Download Statistics Section */
3340
+ .download-stats-section {
3341
+ padding: 1.5rem 0;
3342
+ margin: 1rem 0;
3343
+ display: block !important; /* Always keep visible */
3344
+ }
3345
+
3346
+ .stats-container {
3347
+ max-width: 1200px;
3348
+ margin: 0 auto;
3349
+ padding: 0 1rem;
3350
+ }
3351
+
3352
+ .stats-header {
3353
+ margin-bottom: 1rem;
3354
+ }
3355
+
3356
+ .stats-title {
3357
+ font-size: 1.2rem;
3358
+ font-weight: 600;
3359
+ color: var(--text-primary);
3360
+ margin-bottom: 0.5rem;
3361
+ }
3362
+
3363
+ .stats-subtitle {
3364
+ color: var(--text-secondary);
3365
+ font-size: 0.9rem;
3366
+ }
3367
+
3368
+ .stats-grid {
3369
+ display: grid;
3370
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
3371
+ gap: 1rem;
3372
+ margin-bottom: 1.5rem;
3373
+ }
3374
+
3375
+ .stat-card {
3376
+ background: var(--bg-tertiary);
3377
+ border: 1px solid var(--border-primary);
3378
+ border-radius: 6px;
3379
+ padding: 1.5rem;
3380
+ display: flex;
3381
+ align-items: center;
3382
+ gap: 1rem;
3383
+ transition: all 0.3s ease;
3384
+ position: relative;
3385
+ overflow: hidden;
3386
+ }
3387
+
3388
+ .stat-card::before {
3389
+ content: '';
3390
+ position: absolute;
3391
+ top: 0;
3392
+ left: 0;
3393
+ width: 3px;
3394
+ height: 100%;
3395
+ background: var(--text-accent);
3396
+ opacity: 0;
3397
+ transition: opacity 0.3s ease;
3398
+ }
3399
+
3400
+ .stat-card:hover {
3401
+ border-color: var(--text-accent);
3402
+ transform: translateY(-2px);
3403
+ box-shadow: 0 4px 12px var(--shadow-primary);
3404
+ }
3405
+
3406
+ .stat-card:hover::before {
3407
+ opacity: 1;
3408
+ }
3409
+
3410
+ .stat-icon {
3411
+ font-size: 2rem;
3412
+ line-height: 1;
3413
+ opacity: 0.8;
3414
+ }
3415
+
3416
+ .stat-content {
3417
+ flex: 1;
3418
+ min-width: 0;
3419
+ }
3420
+
3421
+ .stat-number {
3422
+ font-size: 1.8rem;
3423
+ font-weight: 700;
3424
+ color: var(--text-primary);
3425
+ line-height: 1.2;
3426
+ margin-bottom: 0.25rem;
3427
+ font-family: 'Courier New', monospace;
3428
+ }
3429
+
3430
+ .stat-label {
3431
+ font-size: 0.8rem;
3432
+ color: var(--text-secondary);
3433
+ text-transform: uppercase;
3434
+ letter-spacing: 0.5px;
3435
+ font-weight: 500;
3436
+ }
3437
+
3438
+ .popular-component .stat-number {
3439
+ color: var(--text-success);
3440
+ font-size: 1.2rem;
3441
+ font-weight: 600;
3442
+ font-family: inherit;
3443
+ text-overflow: ellipsis;
3444
+ overflow: hidden;
3445
+ white-space: nowrap;
3446
+ }
3447
+
3448
+ .popular-component .stat-icon {
3449
+ animation: pulse-gold 2s infinite;
3450
+ }
3451
+
3452
+ @keyframes pulse-gold {
3453
+ 0%, 100% { opacity: 0.8; transform: scale(1); }
3454
+ 50% { opacity: 1; transform: scale(1.1); }
3455
+ }
3456
+
3457
+ .stats-updated {
3458
+ text-align: center;
3459
+ color: var(--text-secondary);
3460
+ font-size: 0.75rem;
3461
+ opacity: 0.7;
3462
+ border-top: 1px solid var(--border-primary);
3463
+ padding-top: 1rem;
3464
+ }
3465
+
3466
+ /* Loading state for stats */
3467
+ .stat-number.loading {
3468
+ background: linear-gradient(90deg, transparent, rgba(141, 150, 178, 0.2), transparent);
3469
+ background-size: 200% 100%;
3470
+ animation: loading-shimmer 2s infinite;
3471
+ color: transparent;
3472
+ border-radius: 4px;
3473
+ min-height: 1.8rem;
3474
+ display: flex;
3475
+ align-items: center;
3476
+ }
3477
+
3478
+ .stat-number.loading::after {
3479
+ content: '---';
3480
+ color: var(--text-secondary);
3481
+ opacity: 0.5;
3482
+ }
3483
+
3484
+ @keyframes loading-shimmer {
3485
+ 0% { background-position: -200% 0; }
3486
+ 100% { background-position: 200% 0; }
3487
+ }
3488
+
3489
+ /* Improved compact stats design */
3490
+ .stats-header {
3491
+ text-align: center;
3492
+ margin-bottom: 1.5rem;
3493
+ }
3494
+
3495
+ .stats-subtitle {
3496
+ color: var(--text-secondary);
3497
+ font-size: 0.9rem;
3498
+ margin-top: 0.5rem;
3499
+ }
3500
+
3501
+ .stats-compact {
3502
+ display: grid;
3503
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
3504
+ gap: 1rem;
3505
+ margin-bottom: 1rem;
3506
+ }
3507
+
3508
+ .stat-item-compact {
3509
+ display: flex;
3510
+ align-items: center;
3511
+ gap: 0.75rem;
3512
+ padding: 0.75rem;
3513
+ background: var(--bg-tertiary);
3514
+ border: 1px solid var(--border-primary);
3515
+ border-radius: 6px;
3516
+ transition: all 0.3s ease;
3517
+ }
3518
+
3519
+ .stat-item-compact:hover {
3520
+ border-color: var(--text-accent);
3521
+ background: rgba(213, 116, 85, 0.05);
3522
+ transform: translateY(-1px);
3523
+ }
3524
+
3525
+ .stat-item-compact.popular-item {
3526
+ border-color: var(--text-warning);
3527
+ background: rgba(249, 115, 22, 0.05);
3528
+ }
3529
+
3530
+ .stat-item-compact.popular-item:hover {
3531
+ border-color: var(--text-warning);
3532
+ background: rgba(249, 115, 22, 0.1);
3533
+ }
3534
+
3535
+ .stat-icon {
3536
+ font-size: 1.2rem;
3537
+ opacity: 0.8;
3538
+ flex-shrink: 0;
3539
+ }
3540
+
3541
+ .stat-data {
3542
+ display: flex;
3543
+ flex-direction: column;
3544
+ gap: 0.1rem;
3545
+ min-width: 0;
3546
+ }
3547
+
3548
+ .stat-number {
3549
+ font-size: 1.2rem;
3550
+ font-weight: 600;
3551
+ color: var(--text-primary);
3552
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
3553
+ line-height: 1.2;
3554
+ }
3555
+
3556
+ .popular-item .stat-number {
3557
+ color: var(--text-warning);
3558
+ }
3559
+
3560
+ .stat-label {
3561
+ font-size: 0.75rem;
3562
+ color: var(--text-secondary);
3563
+ text-transform: uppercase;
3564
+ font-weight: 500;
3565
+ letter-spacing: 0.3px;
3566
+ white-space: nowrap;
3567
+ overflow: hidden;
3568
+ text-overflow: ellipsis;
3569
+ }
3570
+
3571
+ .stats-actions {
3572
+ display: flex;
3573
+ justify-content: center;
3574
+ margin: 1rem 0;
3575
+ }
3576
+
3577
+ .stats-detail-btn {
3578
+ display: inline-flex;
3579
+ align-items: center;
3580
+ gap: 0.5rem;
3581
+ padding: 0.75rem 1.25rem;
3582
+ background: linear-gradient(135deg, var(--text-accent), #f97316);
3583
+ color: var(--bg-primary);
3584
+ text-decoration: none;
3585
+ border-radius: 6px;
3586
+ font-size: 0.875rem;
3587
+ font-weight: 500;
3588
+ transition: all 0.2s ease;
3589
+ border: 1px solid transparent;
3590
+ }
3591
+
3592
+ .stats-detail-btn:hover {
3593
+ transform: translateY(-2px);
3594
+ box-shadow: 0 8px 16px rgba(213, 116, 85, 0.3);
3595
+ background: linear-gradient(135deg, #f97316, var(--text-accent));
3596
+ }
3597
+
3598
+ .stats-detail-btn svg {
3599
+ transition: transform 0.2s ease;
3600
+ }
3601
+
3602
+ .stats-detail-btn:hover svg {
3603
+ transform: scale(1.1);
3604
+ }
3605
+
3606
+ .stats-updated {
3607
+ text-align: center;
3608
+ font-size: 0.8rem;
3609
+ color: var(--text-secondary);
3610
+ opacity: 0.8;
3611
+ }
3612
+
3613
+ /* Responsive design for smaller screens */
3614
+ @media (max-width: 768px) {
3615
+ .stats-compact {
3616
+ grid-template-columns: repeat(2, 1fr);
3617
+ gap: 0.75rem;
3618
+ }
3619
+
3620
+ .stat-item-compact {
3621
+ padding: 0.5rem;
3622
+ gap: 0.5rem;
3623
+ }
3624
+
3625
+ .stat-icon {
3626
+ font-size: 1rem;
3627
+ }
3628
+
3629
+ .stat-number {
3630
+ font-size: 1rem;
3631
+ }
3632
+
3633
+ .stat-label {
3634
+ font-size: 0.7rem;
3635
+ }
3636
+ }
3637
+
3638
+ /* Responsive Design */
3639
+ @media (max-width: 768px) {
3640
+ .stats-grid {
3641
+ grid-template-columns: repeat(2, 1fr);
3642
+ gap: 0.75rem;
3643
+ }
3644
+
3645
+ .stat-card {
3646
+ padding: 1rem;
3647
+ gap: 0.75rem;
3648
+ }
3649
+
3650
+ .stat-icon {
3651
+ font-size: 1.5rem;
3652
+ }
3653
+
3654
+ .stat-number {
3655
+ font-size: 1.4rem;
3656
+ }
3657
+
3658
+ .stats-title {
3659
+ font-size: 1.25rem;
3660
+ }
3661
+ }
3662
+
3663
+ @media (max-width: 480px) {
3664
+ .stats-grid {
3665
+ grid-template-columns: 1fr;
3666
+ }
3667
+
3668
+ .popular-component .stat-number {
3669
+ font-size: 1rem;
3670
+ }
3671
+ }
3672
+
3673
+ /* Pagination Styles */
3674
+ .pagination-container {
3675
+ display: flex;
3676
+ flex-direction: column;
3677
+ align-items: center;
3678
+ gap: 1rem;
3679
+ margin: 2rem 0;
3680
+ padding: 1.5rem;
3681
+ }
3682
+
3683
+ .pagination {
3684
+ display: flex;
3685
+ align-items: center;
3686
+ gap: 0.5rem;
3687
+ background: var(--bg-secondary);
3688
+ padding: 0.75rem 1rem;
3689
+ border-radius: 12px;
3690
+ border: 1px solid var(--border-color);
3691
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
3692
+ }
3693
+
3694
+ .pagination-btn {
3695
+ display: flex;
3696
+ align-items: center;
3697
+ justify-content: center;
3698
+ min-width: 40px;
3699
+ height: 40px;
3700
+ padding: 0.5rem;
3701
+ background: transparent;
3702
+ border: 1px solid var(--border-color);
3703
+ border-radius: 8px;
3704
+ color: var(--text-primary);
3705
+ font-size: 14px;
3706
+ font-weight: 500;
3707
+ cursor: pointer;
3708
+ transition: all 0.2s ease;
3709
+ user-select: none;
3710
+ }
3711
+
3712
+ .pagination-btn:hover:not(:disabled) {
3713
+ background: var(--accent-color);
3714
+ color: white;
3715
+ border-color: var(--accent-color);
3716
+ transform: translateY(-1px);
3717
+ }
3718
+
3719
+ .pagination-btn.active {
3720
+ background: var(--accent-color);
3721
+ color: white;
3722
+ border-color: var(--accent-color);
3723
+ box-shadow: 0 2px 4px rgba(245, 158, 11, 0.3);
3724
+ }
3725
+
3726
+ .pagination-btn:disabled {
3727
+ opacity: 0.4;
3728
+ cursor: not-allowed;
3729
+ color: var(--text-secondary);
3730
+ }
3731
+
3732
+ .pagination-btn.prev-btn,
3733
+ .pagination-btn.next-btn {
3734
+ min-width: 36px;
3735
+ background: var(--bg-tertiary);
3736
+ }
3737
+
3738
+ .pagination-btn.prev-btn:hover:not(:disabled),
3739
+ .pagination-btn.next-btn:hover:not(:disabled) {
3740
+ background: var(--accent-color);
3741
+ color: white;
3742
+ }
3743
+
3744
+ .pagination-dots {
3745
+ color: var(--text-secondary);
3746
+ font-weight: bold;
3747
+ padding: 0 0.5rem;
3748
+ user-select: none;
3749
+ }
3750
+
3751
+ .pagination-info {
3752
+ color: var(--text-secondary);
3753
+ font-size: 14px;
3754
+ text-align: center;
3755
+ background: var(--bg-secondary);
3756
+ padding: 0.5rem 1rem;
3757
+ border-radius: 8px;
3758
+ border: 1px solid var(--border-color);
3759
+ }
3760
+
3761
+ /* Responsive pagination */
3762
+ @media (max-width: 768px) {
3763
+ .pagination {
3764
+ flex-wrap: wrap;
3765
+ justify-content: center;
3766
+ gap: 0.25rem;
3767
+ padding: 0.5rem;
3768
+ }
3769
+
3770
+ .pagination-btn {
3771
+ min-width: 36px;
3772
+ height: 36px;
3773
+ font-size: 13px;
3774
+ }
3775
+
3776
+ .pagination-container {
3777
+ margin: 1rem 0;
3778
+ padding: 1rem;
3779
+ }
3780
+ }
3781
+
3782
+ @media (max-width: 480px) {
3783
+ .pagination {
3784
+ gap: 0.25rem;
3785
+ }
3786
+
3787
+ .pagination-btn {
3788
+ min-width: 32px;
3789
+ height: 32px;
3790
+ font-size: 12px;
3791
+ }
3792
+
3793
+ .pagination-info {
3794
+ font-size: 13px;
3795
+ padding: 0.4rem 0.8rem;
3796
+ }
3797
+ }
3798
+
3799
+ /* ====== SHOPPING CART STYLES ====== */
3800
+
3801
+ /* Cart Sidebar */
3802
+ .cart-sidebar {
3803
+ position: fixed;
3804
+ top: 0;
3805
+ right: -500px;
3806
+ width: 500px;
3807
+ height: 100vh;
3808
+ background: var(--bg-secondary);
3809
+ border-left: 1px solid var(--border-primary);
3810
+ z-index: 1000;
3811
+ transition: right 0.3s ease-out;
3812
+ box-shadow: -10px 0 30px rgba(0, 0, 0, 0.3);
3813
+ pointer-events: none;
3814
+ }
3815
+
3816
+ .cart-sidebar.active {
3817
+ right: 0;
3818
+ pointer-events: all;
3819
+ }
3820
+
3821
+ /* Overlay for sidebar - DISABLED to allow background visibility */
3822
+ .cart-sidebar::before {
3823
+ display: none !important;
3824
+ }
3825
+
3826
+ .cart-sidebar.active::before {
3827
+ display: none !important;
3828
+ }
3829
+
3830
+ .cart-content {
3831
+ background: var(--bg-secondary);
3832
+ width: 100%;
3833
+ height: 100%;
3834
+ display: flex;
3835
+ flex-direction: column;
3836
+ }
3837
+
3838
+ /* Cart Header */
3839
+ .cart-header {
3840
+ padding: 1.5rem;
3841
+ border-bottom: 1px solid var(--border-primary);
3842
+ background: var(--bg-tertiary);
3843
+ flex-shrink: 0;
3844
+ }
3845
+
3846
+ .cart-header h3 {
3847
+ display: flex;
3848
+ align-items: center;
3849
+ gap: 0.75rem;
3850
+ color: var(--text-primary);
3851
+ font-size: 1.25rem;
3852
+ font-weight: 600;
3853
+ margin: 0;
3854
+ }
3855
+
3856
+ .cart-close {
3857
+ background: none;
3858
+ border: none;
3859
+ color: var(--text-secondary);
3860
+ cursor: pointer;
3861
+ padding: 0.5rem;
3862
+ border-radius: 6px;
3863
+ transition: all 0.2s ease;
3864
+ }
3865
+
3866
+ .cart-close:hover {
3867
+ background: var(--bg-primary);
3868
+ color: var(--text-primary);
3869
+ }
3870
+
3871
+ /* Cart Body */
3872
+ .cart-body {
3873
+ flex: 1;
3874
+ overflow-y: auto;
3875
+ padding: 1.5rem;
3876
+ min-height: 200px;
3877
+ }
3878
+
3879
+ .cart-empty {
3880
+ text-align: center;
3881
+ padding: 2rem 1rem;
3882
+ color: var(--text-secondary);
3883
+ }
3884
+
3885
+ .empty-cart-icon {
3886
+ font-size: 3rem;
3887
+ margin-bottom: 1rem;
3888
+ opacity: 0.6;
3889
+ }
3890
+
3891
+ .cart-empty p {
3892
+ font-size: 1.1rem;
3893
+ margin-bottom: 0.5rem;
3894
+ color: var(--text-primary);
3895
+ }
3896
+
3897
+ .cart-empty small {
3898
+ font-size: 0.9rem;
3899
+ opacity: 0.8;
3900
+ }
3901
+
3902
+ /* Cart Sections */
3903
+ .cart-section {
3904
+ margin-bottom: 1.5rem;
3905
+ }
3906
+
3907
+ .cart-section h4 {
3908
+ display: flex;
3909
+ align-items: center;
3910
+ gap: 0.5rem;
3911
+ color: var(--text-primary);
3912
+ font-size: 1rem;
3913
+ font-weight: 600;
3914
+ margin-bottom: 0.75rem;
3915
+ padding-bottom: 0.5rem;
3916
+ border-bottom: 1px solid var(--border-primary);
3917
+ }
3918
+
3919
+ .section-icon {
3920
+ font-size: 1.1rem;
3921
+ }
3922
+
3923
+ .cart-section-items {
3924
+ display: flex;
3925
+ flex-direction: column;
3926
+ gap: 0.5rem;
3927
+ }
3928
+
3929
+ /* Cart Item */
3930
+ .cart-item {
3931
+ display: flex;
3932
+ align-items: center;
3933
+ gap: 0.5rem;
3934
+ padding: 0.5rem;
3935
+ background: var(--bg-tertiary);
3936
+ border: 1px solid var(--border-primary);
3937
+ border-radius: 6px;
3938
+ transition: all 0.2s ease;
3939
+ }
3940
+
3941
+ .cart-item:hover {
3942
+ border-color: var(--accent-color);
3943
+ background: var(--bg-primary);
3944
+ }
3945
+
3946
+ .cart-item-icon {
3947
+ font-size: 1rem;
3948
+ flex-shrink: 0;
3949
+ }
3950
+
3951
+ .cart-item-info {
3952
+ flex: 1;
3953
+ min-width: 0;
3954
+ }
3955
+
3956
+ .cart-item-name {
3957
+ color: var(--text-primary);
3958
+ font-weight: 500;
3959
+ font-size: 0.8rem;
3960
+ margin-bottom: 0.1rem;
3961
+ white-space: nowrap;
3962
+ overflow: hidden;
3963
+ text-overflow: ellipsis;
3964
+ }
3965
+
3966
+ .cart-item-path {
3967
+ color: var(--text-secondary);
3968
+ font-size: 0.7rem;
3969
+ font-family: 'Monaco', 'Menlo', monospace;
3970
+ white-space: nowrap;
3971
+ overflow: hidden;
3972
+ text-overflow: ellipsis;
3973
+ }
3974
+
3975
+ .cart-item-remove {
3976
+ background: none;
3977
+ border: none;
3978
+ color: var(--text-secondary);
3979
+ cursor: pointer;
3980
+ padding: 0.2rem;
3981
+ border-radius: 3px;
3982
+ transition: all 0.2s ease;
3983
+ flex-shrink: 0;
3984
+ }
3985
+
3986
+ .cart-item-remove:hover {
3987
+ background: var(--text-error);
3988
+ color: white;
3989
+ }
3990
+
3991
+ /* Cart Footer */
3992
+ .cart-footer {
3993
+ border-top: 1px solid var(--border-primary);
3994
+ padding: 1.5rem;
3995
+ background: var(--bg-tertiary);
3996
+ flex-shrink: 0;
3997
+ }
3998
+
3999
+ .command-preview {
4000
+ margin-bottom: 1rem;
4001
+ }
4002
+
4003
+ .command-preview-header {
4004
+ display: flex;
4005
+ align-items: center;
4006
+ justify-content: space-between;
4007
+ margin-bottom: 0.5rem;
4008
+ }
4009
+
4010
+ .command-preview-header span {
4011
+ color: var(--text-secondary);
4012
+ font-size: 0.9rem;
4013
+ font-weight: 500;
4014
+ }
4015
+
4016
+ .copy-command-btn {
4017
+ background: var(--accent-color);
4018
+ color: white;
4019
+ border: none;
4020
+ padding: 0.25rem 0.5rem;
4021
+ border-radius: 4px;
4022
+ cursor: pointer;
4023
+ font-size: 0.8rem;
4024
+ transition: all 0.2s ease;
4025
+ display: flex;
4026
+ align-items: center;
4027
+ gap: 0.25rem;
4028
+ }
4029
+
4030
+ .copy-command-btn:hover {
4031
+ background: #b8660a;
4032
+ transform: translateY(-1px);
4033
+ }
4034
+
4035
+ .command-code {
4036
+ background: var(--bg-primary);
4037
+ border: 1px solid var(--border-primary);
4038
+ border-radius: 6px;
4039
+ padding: 0.75rem;
4040
+ font-family: 'Monaco', 'Menlo', monospace;
4041
+ font-size: 0.85rem;
4042
+ color: var(--text-primary);
4043
+ word-break: break-all;
4044
+ white-space: pre-wrap;
4045
+ }
4046
+
4047
+ .cart-actions {
4048
+ display: flex;
4049
+ gap: 0.75rem;
4050
+ align-items: center;
4051
+ justify-content: space-between;
4052
+ }
4053
+
4054
+ /* Cart Command Container with Overlay */
4055
+ .cart-command-container {
4056
+ position: relative;
4057
+ margin-top: 0.5rem;
4058
+ }
4059
+
4060
+ .cart-copy-overlay-btn {
4061
+ position: absolute;
4062
+ top: 50%;
4063
+ left: 50%;
4064
+ transform: translate(-50%, -50%);
4065
+ background: rgba(0, 0, 0, 0.8);
4066
+ color: white;
4067
+ border: none;
4068
+ padding: 0.5rem 1rem;
4069
+ border-radius: 6px;
4070
+ cursor: pointer;
4071
+ font-size: 0.8rem;
4072
+ display: flex;
4073
+ align-items: center;
4074
+ gap: 0.5rem;
4075
+ opacity: 0;
4076
+ visibility: hidden;
4077
+ transition: all 0.3s ease;
4078
+ z-index: 10;
4079
+ }
4080
+
4081
+ .cart-command-container:hover .cart-copy-overlay-btn {
4082
+ opacity: 1;
4083
+ visibility: visible;
4084
+ }
4085
+
4086
+ .copy-command-btn {
4087
+ background: var(--accent-color);
4088
+ color: white;
4089
+ border: none;
4090
+ padding: 0.5rem 1rem;
4091
+ border-radius: 6px;
4092
+ cursor: pointer;
4093
+ font-size: 0.9rem;
4094
+ font-weight: 500;
4095
+ transition: all 0.2s ease;
4096
+ display: flex;
4097
+ align-items: center;
4098
+ gap: 0.5rem;
4099
+ flex: 1;
4100
+ }
4101
+
4102
+ .copy-command-btn:hover {
4103
+ background: #b8660a;
4104
+ transform: translateY(-1px);
4105
+ }
4106
+
4107
+ .clear-cart-btn {
4108
+ background: transparent;
4109
+ color: var(--text-secondary);
4110
+ border: 1px solid var(--border-primary);
4111
+ padding: 0.5rem 1rem;
4112
+ border-radius: 6px;
4113
+ cursor: pointer;
4114
+ font-size: 0.9rem;
4115
+ transition: all 0.2s ease;
4116
+ display: flex;
4117
+ align-items: center;
4118
+ gap: 0.5rem;
4119
+ flex: 1;
4120
+ }
4121
+
4122
+ .clear-cart-btn:hover {
4123
+ border-color: var(--text-error);
4124
+ color: var(--text-error);
4125
+ }
4126
+
4127
+ /* Floating Cart Button */
4128
+ .cart-floating-btn {
4129
+ position: fixed;
4130
+ bottom: 2rem;
4131
+ right: 2rem;
4132
+ background: var(--accent-color);
4133
+ color: white;
4134
+ border: none;
4135
+ width: 56px;
4136
+ height: 56px;
4137
+ border-radius: 50%;
4138
+ cursor: pointer;
4139
+ box-shadow: 0 4px 12px rgba(217, 119, 6, 0.3);
4140
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4141
+ display: flex;
4142
+ align-items: center;
4143
+ justify-content: center;
4144
+ z-index: 1000;
4145
+ transform: translateX(0);
4146
+ opacity: 1;
4147
+ pointer-events: auto;
4148
+ }
4149
+
4150
+ .cart-floating-btn:hover {
4151
+ background: #b8660a;
4152
+ transform: translateY(-2px);
4153
+ box-shadow: 0 6px 20px rgba(217, 119, 6, 0.4);
4154
+ }
4155
+
4156
+ .cart-badge {
4157
+ position: absolute;
4158
+ top: -5px;
4159
+ right: -5px;
4160
+ background: var(--text-error);
4161
+ color: white;
4162
+ border-radius: 50%;
4163
+ width: 20px;
4164
+ height: 20px;
4165
+ display: flex;
4166
+ align-items: center;
4167
+ justify-content: center;
4168
+ font-size: 0.75rem;
4169
+ font-weight: 600;
4170
+ border: 2px solid var(--bg-primary);
4171
+ }
4172
+
4173
+ /* Card Actions Layout */
4174
+ .card-actions {
4175
+ display: flex;
4176
+ gap: 0.3rem;
4177
+ flex-shrink: 0;
4178
+ margin-top: 0.5rem;
4179
+ }
4180
+
4181
+ .card-actions button {
4182
+ flex: 1;
4183
+ min-height: 22px;
4184
+ font-size: 0.65rem;
4185
+ padding: 0.25rem 0.4rem;
4186
+ border-radius: 3px;
4187
+ transition: all 0.2s ease;
4188
+ font-weight: 500;
4189
+ display: flex;
4190
+ align-items: center;
4191
+ justify-content: center;
4192
+ gap: 0.25rem;
4193
+ }
4194
+
4195
+ .view-files-btn {
4196
+ background: var(--bg-tertiary);
4197
+ color: var(--text-primary);
4198
+ border: 1px solid var(--border-primary);
4199
+ }
4200
+
4201
+ .view-files-btn:hover {
4202
+ background: var(--bg-primary);
4203
+ border-color: var(--accent-color);
4204
+ transform: translateY(-1px);
4205
+ box-shadow: 0 2px 6px rgba(0,0,0,0.15);
4206
+ }
4207
+
4208
+ /* Add to Cart Button in Cards */
4209
+ .add-to-cart-btn {
4210
+ background: var(--accent-color);
4211
+ color: white;
4212
+ border: none;
4213
+ padding: 0.75rem 1rem;
4214
+ border-radius: 8px;
4215
+ cursor: pointer;
4216
+ font-size: 0.9rem;
4217
+ font-weight: 600;
4218
+ transition: all 0.2s ease;
4219
+ display: flex;
4220
+ align-items: center;
4221
+ gap: 0.5rem;
4222
+ justify-content: center;
4223
+ width: 100%;
4224
+ position: relative;
4225
+ overflow: hidden;
4226
+ }
4227
+
4228
+ /* Add to Cart Button in Modal - Smaller balanced size */
4229
+ .modal-actions .add-to-cart-btn {
4230
+ width: auto;
4231
+ padding: 0.6rem 1.2rem;
4232
+ font-size: 0.85rem;
4233
+ border-radius: 6px;
4234
+ min-width: 140px;
4235
+ }
4236
+
4237
+ .add-to-cart-btn::before {
4238
+ content: '';
4239
+ position: absolute;
4240
+ top: 0;
4241
+ left: -100%;
4242
+ width: 100%;
4243
+ height: 100%;
4244
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
4245
+ transition: left 0.5s ease;
4246
+ }
4247
+
4248
+ .add-to-cart-btn:hover::before {
4249
+ left: 100%;
4250
+ }
4251
+
4252
+ .add-to-cart-btn:hover {
4253
+ background: #b8660a;
4254
+ transform: translateY(-1px);
4255
+ box-shadow: 0 2px 8px rgba(217, 119, 6, 0.25);
4256
+ }
4257
+
4258
+ .add-to-cart-btn.added {
4259
+ background: var(--text-success);
4260
+ pointer-events: none;
4261
+ transform: none;
4262
+ }
4263
+
4264
+ .add-to-cart-btn.added:hover {
4265
+ transform: none;
4266
+ box-shadow: none;
4267
+ }
4268
+
4269
+ .add-to-cart-btn.added::before {
4270
+ display: none;
4271
+ }
4272
+
4273
+ /* Animations */
4274
+ @keyframes fadeInCart {
4275
+ from { opacity: 0; }
4276
+ to { opacity: 1; }
4277
+ }
4278
+
4279
+ @keyframes slideInCart {
4280
+ from {
4281
+ opacity: 0;
4282
+ transform: scale(0.9) translateY(-20px);
4283
+ }
4284
+ to {
4285
+ opacity: 1;
4286
+ transform: scale(1) translateY(0);
4287
+ }
4288
+ }
4289
+
4290
+ /* Responsive Cart */
4291
+ @media (max-width: 768px) {
4292
+ .cart-sidebar {
4293
+ width: 100vw;
4294
+ right: -100vw;
4295
+ }
4296
+
4297
+ .cart-sidebar::before {
4298
+ display: none !important;
4299
+ }
4300
+
4301
+ .cart-header {
4302
+ padding: 1rem;
4303
+ }
4304
+
4305
+ .cart-body {
4306
+ padding: 1rem;
4307
+ }
4308
+
4309
+ .cart-footer {
4310
+ padding: 1rem;
4311
+ }
4312
+
4313
+ .cart-floating-btn {
4314
+ bottom: 1rem;
4315
+ right: 1rem;
4316
+ width: 48px;
4317
+ height: 48px;
4318
+ }
4319
+
4320
+ .command-code {
4321
+ font-size: 0.8rem;
4322
+ padding: 0.5rem;
4323
+ }
4324
+
4325
+ .cart-actions {
4326
+ flex-direction: column;
4327
+ }
4328
+
4329
+ .download-stack-btn {
4330
+ width: 100%;
4331
+ }
4332
+ }
4333
+
4334
+ /* Cart Notifications */
4335
+ .cart-notification {
4336
+ position: fixed;
4337
+ top: 2rem;
4338
+ right: 2rem;
4339
+ background: var(--bg-secondary);
4340
+ border: 1px solid var(--border-primary);
4341
+ border-radius: 8px;
4342
+ padding: 1rem;
4343
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
4344
+ z-index: 1100;
4345
+ opacity: 0;
4346
+ transform: translateX(100%);
4347
+ transition: all 0.3s ease;
4348
+ max-width: 320px;
4349
+ }
4350
+
4351
+ .cart-notification.show {
4352
+ opacity: 1;
4353
+ transform: translateX(0);
4354
+ }
4355
+
4356
+ .notification-content {
4357
+ display: flex;
4358
+ align-items: center;
4359
+ gap: 0.75rem;
4360
+ }
4361
+
4362
+ .notification-icon {
4363
+ font-size: 1.2rem;
4364
+ flex-shrink: 0;
4365
+ }
4366
+
4367
+ .notification-message {
4368
+ color: var(--text-primary);
4369
+ font-size: 0.9rem;
4370
+ font-weight: 500;
4371
+ }
4372
+
4373
+ .cart-notification-success {
4374
+ border-color: var(--text-success);
4375
+ background: var(--bg-secondary);
4376
+ }
4377
+
4378
+ .cart-notification-warning {
4379
+ border-color: var(--text-warning);
4380
+ background: var(--bg-secondary);
4381
+ }
4382
+
4383
+ .cart-notification-error {
4384
+ border-color: var(--text-error);
4385
+ background: var(--bg-secondary);
4386
+ }
4387
+
4388
+ .cart-notification-info {
4389
+ border-color: var(--text-info);
4390
+ background: var(--bg-secondary);
4391
+ }
4392
+
4393
+ /* No items text */
4394
+ .no-items {
4395
+ color: var(--text-secondary);
4396
+ font-size: 0.85rem;
4397
+ text-align: center;
4398
+ padding: 1rem;
4399
+ font-style: italic;
4400
+ }
4401
+
4402
+ /* Mobile notifications */
4403
+ @media (max-width: 768px) {
4404
+ .cart-notification {
4405
+ top: 1rem;
4406
+ right: 1rem;
4407
+ left: 1rem;
4408
+ max-width: none;
4409
+ }
4410
+ }
4411
+
4412
+ /* Loading States */
4413
+ .loading-indicator {
4414
+ display: flex;
4415
+ flex-direction: column;
4416
+ align-items: center;
4417
+ justify-content: center;
4418
+ padding: 3rem 2rem;
4419
+ min-height: 300px;
4420
+ text-align: center;
4421
+ }
4422
+
4423
+ .loading-spinner {
4424
+ width: 50px;
4425
+ height: 50px;
4426
+ border: 3px solid var(--border-primary);
4427
+ border-top: 3px solid var(--text-accent);
4428
+ border-radius: 50%;
4429
+ animation: spin 1s linear infinite;
4430
+ margin-bottom: 1.5rem;
4431
+ }
4432
+
4433
+ .loading-text h3 {
4434
+ color: var(--text-primary);
4435
+ font-size: 1.2rem;
4436
+ margin-bottom: 0.5rem;
4437
+ font-weight: 600;
4438
+ }
4439
+
4440
+ .loading-text p {
4441
+ color: var(--text-secondary);
4442
+ font-size: 0.9rem;
4443
+ margin-bottom: 1.5rem;
4444
+ max-width: 400px;
4445
+ }
4446
+
4447
+ .loading-progress {
4448
+ width: 200px;
4449
+ height: 4px;
4450
+ background: var(--bg-tertiary);
4451
+ border-radius: 2px;
4452
+ overflow: hidden;
4453
+ position: relative;
4454
+ }
4455
+
4456
+ .progress-bar {
4457
+ height: 100%;
4458
+ background: linear-gradient(90deg, var(--text-accent), var(--text-warning));
4459
+ border-radius: 2px;
4460
+ animation: loading-progress 2s ease-in-out infinite;
4461
+ width: 30%;
4462
+ }
4463
+
4464
+ .error-toast {
4465
+ position: fixed;
4466
+ top: 20px;
4467
+ right: 20px;
4468
+ background: var(--text-error);
4469
+ color: white;
4470
+ padding: 12px 16px;
4471
+ border-radius: 6px;
4472
+ z-index: 1000;
4473
+ font-size: 14px;
4474
+ max-width: 300px;
4475
+ box-shadow: 0 4px 12px rgba(248, 81, 73, 0.3);
4476
+ border-left: 4px solid rgba(255, 255, 255, 0.3);
4477
+ }
4478
+
4479
+ /* Loading animations */
4480
+ @keyframes spin {
4481
+ 0% { transform: rotate(0deg); }
4482
+ 100% { transform: rotate(360deg); }
4483
+ }
4484
+
4485
+ @keyframes loading-progress {
4486
+ 0% {
4487
+ transform: translateX(-100%);
4488
+ width: 30%;
4489
+ }
4490
+ 50% {
4491
+ width: 70%;
4492
+ }
4493
+ 100% {
4494
+ transform: translateX(300%);
4495
+ width: 30%;
4496
+ }
4497
+ }
4498
+
4499
+ /* Loading shimmer for cards */
4500
+ .loading-shimmer {
4501
+ background: linear-gradient(
4502
+ 90deg,
4503
+ transparent,
4504
+ rgba(255, 255, 255, 0.1),
4505
+ transparent
4506
+ );
4507
+ animation: shimmer 2s infinite;
4508
+ }
4509
+
4510
+ @keyframes shimmer {
4511
+ 0% { transform: translateX(-100%); }
4512
+ 100% { transform: translateX(100%); }
4513
+ }
4514
+
4515
+ /* Optimize performance for mobile loading */
4516
+ @media (max-width: 768px) {
4517
+ .loading-indicator {
4518
+ padding: 2rem 1rem;
4519
+ min-height: 250px;
4520
+ }
4521
+
4522
+ .loading-spinner {
4523
+ width: 40px;
4524
+ height: 40px;
4525
+ border-width: 2px;
4526
+ }
4527
+
4528
+ .loading-progress {
4529
+ width: 150px;
4530
+ height: 3px;
4531
+ }
4532
+
4533
+ .error-toast {
4534
+ top: 10px;
4535
+ right: 10px;
4536
+ left: 10px;
4537
+ max-width: none;
4538
+ font-size: 13px;
4539
+ }
4540
+ }