@atlashub/smartstack-cli 3.39.0 → 3.41.0

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 (472) hide show
  1. package/.documentation/apex.html +644 -644
  2. package/.documentation/css/styles.css +2320 -2320
  3. package/.documentation/init.html +1377 -1377
  4. package/.documentation/js/app.js +780 -780
  5. package/.documentation/prd-json-v2.0.0.md +396 -396
  6. package/.documentation/testing-ba-e2e.md +462 -462
  7. package/config/default-config.json +95 -95
  8. package/config/mcp-defaults.json +62 -62
  9. package/config/settings.json +53 -53
  10. package/config/settings.local.example.json +16 -16
  11. package/dist/index.js +6 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-entry.mjs +6 -4
  14. package/dist/mcp-entry.mjs.map +1 -1
  15. package/package.json +115 -115
  16. package/scripts/extract-api-endpoints.ts +325 -325
  17. package/scripts/extract-business-rules.ts +440 -440
  18. package/scripts/generate-doc-with-mock-ui.ts +804 -804
  19. package/scripts/health-check.sh +168 -168
  20. package/scripts/postinstall.js +18 -18
  21. package/templates/agents/action.md +37 -37
  22. package/templates/agents/ba-reader.md +378 -378
  23. package/templates/agents/ba-writer.md +861 -861
  24. package/templates/agents/code-reviewer.md +163 -163
  25. package/templates/agents/db-reader.md +149 -149
  26. package/templates/agents/docs-context-reader.md +143 -143
  27. package/templates/agents/docs-sync-checker.md +122 -122
  28. package/templates/agents/efcore/conflicts.md +95 -84
  29. package/templates/agents/efcore/db-deploy.md +85 -74
  30. package/templates/agents/efcore/db-reset.md +96 -85
  31. package/templates/agents/efcore/db-seed.md +72 -61
  32. package/templates/agents/efcore/db-status.md +97 -86
  33. package/templates/agents/efcore/migration.md +197 -186
  34. package/templates/agents/efcore/rebase-snapshot.md +119 -108
  35. package/templates/agents/efcore/scan.md +103 -92
  36. package/templates/agents/efcore/squash.md +172 -161
  37. package/templates/agents/explore-codebase.md +66 -66
  38. package/templates/agents/explore-docs.md +98 -98
  39. package/templates/agents/fix-grammar.md +50 -50
  40. package/templates/agents/gitflow/abort.md +45 -45
  41. package/templates/agents/gitflow/cleanup.md +96 -96
  42. package/templates/agents/gitflow/commit.md +236 -236
  43. package/templates/agents/gitflow/exec.md +48 -48
  44. package/templates/agents/gitflow/finish.md +146 -146
  45. package/templates/agents/gitflow/init-clone.md +199 -199
  46. package/templates/agents/gitflow/init-detect.md +137 -137
  47. package/templates/agents/gitflow/init-validate.md +225 -225
  48. package/templates/agents/gitflow/init.md +340 -340
  49. package/templates/agents/gitflow/merge.md +145 -145
  50. package/templates/agents/gitflow/plan.md +42 -42
  51. package/templates/agents/gitflow/pr.md +191 -191
  52. package/templates/agents/gitflow/review.md +49 -49
  53. package/templates/agents/gitflow/start.md +147 -147
  54. package/templates/agents/gitflow/status.md +95 -95
  55. package/templates/agents/mcp-healthcheck.md +163 -163
  56. package/templates/agents/snipper.md +37 -37
  57. package/templates/agents/websearch.md +46 -46
  58. package/templates/hooks/appsettings-guard.sh +76 -76
  59. package/templates/hooks/docs-drift-check.md +96 -96
  60. package/templates/hooks/ef-migration-check.md +139 -139
  61. package/templates/hooks/hooks.json +58 -58
  62. package/templates/hooks/mcp-check.md +64 -64
  63. package/templates/hooks/ralph-mcp-logger.sh +46 -46
  64. package/templates/hooks/ralph-session-end.sh +69 -69
  65. package/templates/hooks/stop-hook.sh +177 -177
  66. package/templates/hooks/wsl-dotnet-cleanup.sh +24 -24
  67. package/templates/mcp-scaffolding/component.tsx.hbs +318 -318
  68. package/templates/mcp-scaffolding/controller.cs.hbs +192 -192
  69. package/templates/mcp-scaffolding/entity-extension.cs.hbs +239 -239
  70. package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -116
  71. package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -133
  72. package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -126
  73. package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -261
  74. package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -53
  75. package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +436 -436
  76. package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -239
  77. package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -441
  78. package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -442
  79. package/templates/mcp-scaffolding/tests/service.test.cs.hbs +402 -402
  80. package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -428
  81. package/templates/project/DependencyInjection.Application.cs.template +25 -25
  82. package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -61
  83. package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -70
  84. package/templates/project/ExampleEntity.cs.template +116 -116
  85. package/templates/project/ExampleEntityConfiguration.cs.template +64 -64
  86. package/templates/project/ExampleService.cs.template +146 -146
  87. package/templates/project/ExtensionsDbContext.cs.template +41 -41
  88. package/templates/project/IExtensionsDbContext.cs.template +22 -22
  89. package/templates/project/Program.cs.template +47 -47
  90. package/templates/project/README.md +79 -79
  91. package/templates/project/api.ts.template +12 -12
  92. package/templates/project/appsettings.json.template +170 -170
  93. package/templates/project/claude-settings.json.template +5 -5
  94. package/templates/project/test-frontend/msw/handlers.ts +58 -58
  95. package/templates/project/test-frontend/msw/server.ts +25 -25
  96. package/templates/project/test-frontend/setup.ts +16 -16
  97. package/templates/project/test-frontend/test-utils.tsx +59 -59
  98. package/templates/project/test-frontend/vitest.config.ts +31 -31
  99. package/templates/ralph/README.md +93 -93
  100. package/templates/ralph/ralph.config.yaml +113 -113
  101. package/templates/scripts/setup-ralph-loop.sh +173 -173
  102. package/templates/skills/_resources/config-safety.md +61 -61
  103. package/templates/skills/_resources/context-digest-template.md +53 -53
  104. package/templates/skills/_resources/doc-context-cache.md +60 -60
  105. package/templates/skills/_resources/docs-manifest-schema.md +155 -155
  106. package/templates/skills/_resources/formatting-guide.md +124 -124
  107. package/templates/skills/_resources/mcp-validate-documentation-spec.md +181 -181
  108. package/templates/skills/_shared.md +228 -228
  109. package/templates/skills/admin/SKILL.md +48 -48
  110. package/templates/skills/ai-prompt/SKILL.md +107 -107
  111. package/templates/skills/ai-prompt/steps/step-00-init.md +47 -47
  112. package/templates/skills/ai-prompt/steps/step-01-implementation.md +122 -122
  113. package/templates/skills/apex/SKILL.md +168 -168
  114. package/templates/skills/apex/_shared.md +141 -141
  115. package/templates/skills/apex/references/agent-teams-protocol.md +164 -164
  116. package/templates/skills/apex/references/analysis-methods.md +141 -141
  117. package/templates/skills/apex/references/challenge-questions.md +145 -145
  118. package/templates/skills/apex/references/code-generation.md +412 -412
  119. package/templates/skills/apex/references/core-seed-data.md +1437 -1437
  120. package/templates/skills/apex/references/error-classification.md +144 -144
  121. package/templates/skills/apex/references/examine-build-validation.md +82 -82
  122. package/templates/skills/apex/references/execution-frontend-gates.md +177 -177
  123. package/templates/skills/apex/references/execution-frontend-patterns.md +105 -105
  124. package/templates/skills/apex/references/execution-layer1-rules.md +96 -96
  125. package/templates/skills/apex/references/initialization-challenge-flow.md +110 -110
  126. package/templates/skills/apex/references/planning-layer-mapping.md +151 -151
  127. package/templates/skills/apex/references/post-checks.md +1584 -1584
  128. package/templates/skills/apex/references/smartstack-api.md +1053 -1053
  129. package/templates/skills/apex/references/smartstack-frontend.md +1571 -1571
  130. package/templates/skills/apex/references/smartstack-layers.md +402 -402
  131. package/templates/skills/apex/steps/step-00-init.md +307 -307
  132. package/templates/skills/apex/steps/step-01-analyze.md +165 -165
  133. package/templates/skills/apex/steps/step-02-plan.md +144 -144
  134. package/templates/skills/apex/steps/step-03-execute.md +328 -328
  135. package/templates/skills/apex/steps/step-04-examine.md +263 -263
  136. package/templates/skills/apex/steps/step-05-deep-review.md +129 -129
  137. package/templates/skills/apex/steps/step-06-resolve.md +101 -101
  138. package/templates/skills/apex/steps/step-07-tests.md +238 -238
  139. package/templates/skills/apex/steps/step-08-run-tests.md +125 -125
  140. package/templates/skills/application/SKILL.md +4 -4
  141. package/templates/skills/application/references/application-roles-template.md +227 -227
  142. package/templates/skills/application/references/backend-controller-hierarchy.md +58 -58
  143. package/templates/skills/application/references/backend-entity-seeding.md +72 -72
  144. package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -83
  145. package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -79
  146. package/templates/skills/application/references/backend-verification.md +88 -88
  147. package/templates/skills/application/references/frontend-i18n-and-output.md +67 -67
  148. package/templates/skills/application/references/frontend-route-naming.md +117 -117
  149. package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -107
  150. package/templates/skills/application/references/frontend-verification.md +156 -156
  151. package/templates/skills/application/references/migration-checklist-troubleshooting.md +1 -1
  152. package/templates/skills/application/references/provider-template.md +177 -177
  153. package/templates/skills/application/references/roles-client-project-handling.md +55 -55
  154. package/templates/skills/application/references/roles-fallback-procedure.md +149 -149
  155. package/templates/skills/application/references/test-coverage-requirements.md +213 -213
  156. package/templates/skills/application/references/test-frontend.md +73 -73
  157. package/templates/skills/application/references/test-prerequisites.md +72 -72
  158. package/templates/skills/application/steps/step-05-frontend.md +176 -176
  159. package/templates/skills/application/steps/step-06-migration.md +193 -193
  160. package/templates/skills/application/steps/step-07-tests.md +356 -356
  161. package/templates/skills/application/steps/step-08-documentation.md +137 -137
  162. package/templates/skills/application/templates-backend.md +463 -463
  163. package/templates/skills/application/templates-frontend.md +685 -685
  164. package/templates/skills/application/templates-i18n.md +520 -520
  165. package/templates/skills/application/templates-seed.md +1096 -1096
  166. package/templates/skills/business-analyse/SKILL.md +327 -327
  167. package/templates/skills/business-analyse/_architecture.md +123 -123
  168. package/templates/skills/business-analyse/_elicitation.md +206 -206
  169. package/templates/skills/business-analyse/_module-loop.md +115 -115
  170. package/templates/skills/business-analyse/_shared.md +383 -383
  171. package/templates/skills/business-analyse/_suggestions.md +34 -34
  172. package/templates/skills/business-analyse/html/ba-interactive.html +4477 -4477
  173. package/templates/skills/business-analyse/html/build-html.js +77 -77
  174. package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +150 -150
  175. package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +227 -227
  176. package/templates/skills/business-analyse/html/src/scripts/03-render-cadrage.js +199 -199
  177. package/templates/skills/business-analyse/html/src/scripts/04-render-modules.js +205 -205
  178. package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +647 -647
  179. package/templates/skills/business-analyse/html/src/scripts/06-render-consolidation.js +195 -195
  180. package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +92 -92
  181. package/templates/skills/business-analyse/html/src/scripts/08-editing.js +135 -135
  182. package/templates/skills/business-analyse/html/src/scripts/09-export.js +168 -168
  183. package/templates/skills/business-analyse/html/src/scripts/10-comments.js +171 -171
  184. package/templates/skills/business-analyse/html/src/scripts/11-review-panel.js +166 -166
  185. package/templates/skills/business-analyse/html/src/styles/01-variables.css +38 -38
  186. package/templates/skills/business-analyse/html/src/styles/02-layout.css +101 -101
  187. package/templates/skills/business-analyse/html/src/styles/03-navigation.css +120 -120
  188. package/templates/skills/business-analyse/html/src/styles/04-cards.css +196 -196
  189. package/templates/skills/business-analyse/html/src/styles/05-modules.css +454 -454
  190. package/templates/skills/business-analyse/html/src/styles/06-wireframes.css +272 -272
  191. package/templates/skills/business-analyse/html/src/styles/07-comments.css +184 -184
  192. package/templates/skills/business-analyse/html/src/styles/08-review-panel.css +241 -241
  193. package/templates/skills/business-analyse/html/src/template.html +516 -516
  194. package/templates/skills/business-analyse/patterns/suggestion-catalog.md +546 -546
  195. package/templates/skills/business-analyse/questionnaire/00-application.md +160 -160
  196. package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -85
  197. package/templates/skills/business-analyse/questionnaire/01-context.md +185 -185
  198. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +189 -189
  199. package/templates/skills/business-analyse/questionnaire/03-scope.md +164 -164
  200. package/templates/skills/business-analyse/questionnaire/04-data.md +88 -88
  201. package/templates/skills/business-analyse/questionnaire/05-integrations.md +58 -58
  202. package/templates/skills/business-analyse/questionnaire/06-security.md +68 -68
  203. package/templates/skills/business-analyse/questionnaire/07-ui.md +76 -76
  204. package/templates/skills/business-analyse/questionnaire/08-performance.md +42 -42
  205. package/templates/skills/business-analyse/questionnaire/09-constraints.md +45 -45
  206. package/templates/skills/business-analyse/questionnaire/10-documentation.md +43 -43
  207. package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +59 -59
  208. package/templates/skills/business-analyse/questionnaire/12-migration.md +58 -58
  209. package/templates/skills/business-analyse/questionnaire/13-cross-module.md +69 -69
  210. package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -135
  211. package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -136
  212. package/templates/skills/business-analyse/questionnaire.md +337 -337
  213. package/templates/skills/business-analyse/react/application-viewer.md +242 -242
  214. package/templates/skills/business-analyse/react/components.md +551 -551
  215. package/templates/skills/business-analyse/react/i18n-template.md +306 -306
  216. package/templates/skills/business-analyse/references/acceptance-criteria.md +169 -169
  217. package/templates/skills/business-analyse/references/agent-module-prompt.md +362 -362
  218. package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +557 -557
  219. package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -190
  220. package/templates/skills/business-analyse/references/cache-warming-strategy.md +566 -566
  221. package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -41
  222. package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -74
  223. package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +115 -115
  224. package/templates/skills/business-analyse/references/cadrage-shared-modules.md +68 -69
  225. package/templates/skills/business-analyse/references/cadrage-structure-cards.md +85 -85
  226. package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -297
  227. package/templates/skills/business-analyse/references/consolidation-structural-checks.md +107 -107
  228. package/templates/skills/business-analyse/references/deploy-data-build.md +180 -180
  229. package/templates/skills/business-analyse/references/deploy-modes.md +118 -118
  230. package/templates/skills/business-analyse/references/detection-strategies.md +424 -424
  231. package/templates/skills/business-analyse/references/entity-architecture-decision.md +218 -218
  232. package/templates/skills/business-analyse/references/handoff-file-templates.md +120 -120
  233. package/templates/skills/business-analyse/references/handoff-mappings.md +81 -81
  234. package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -312
  235. package/templates/skills/business-analyse/references/html-data-mapping.md +299 -299
  236. package/templates/skills/business-analyse/references/init-schema-deployment.md +65 -65
  237. package/templates/skills/business-analyse/references/naming-conventions.md +243 -243
  238. package/templates/skills/business-analyse/references/prd-generation.md +258 -258
  239. package/templates/skills/business-analyse/references/review-data-mapping.md +363 -363
  240. package/templates/skills/business-analyse/references/robustness-checks.md +542 -542
  241. package/templates/skills/business-analyse/references/spec-auto-inference.md +111 -111
  242. package/templates/skills/business-analyse/references/team-orchestration.md +1022 -1022
  243. package/templates/skills/business-analyse/references/ui-dashboard-spec.md +85 -85
  244. package/templates/skills/business-analyse/references/ui-resource-cards.md +259 -259
  245. package/templates/skills/business-analyse/references/validate-incremental-html.md +121 -121
  246. package/templates/skills/business-analyse/references/validation-checklist.md +347 -347
  247. package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +335 -335
  248. package/templates/skills/business-analyse/schemas/application-schema.json +453 -453
  249. package/templates/skills/business-analyse/schemas/feature-schema.json +53 -53
  250. package/templates/skills/business-analyse/schemas/project-schema.json +485 -485
  251. package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +201 -201
  252. package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -82
  253. package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -80
  254. package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +70 -70
  255. package/templates/skills/business-analyse/schemas/sections/specification-schema.json +547 -547
  256. package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -93
  257. package/templates/skills/business-analyse/schemas/shared/common-defs.json +226 -226
  258. package/templates/skills/business-analyse/steps/step-00-init.md +575 -576
  259. package/templates/skills/business-analyse/steps/step-01-cadrage.md +767 -767
  260. package/templates/skills/business-analyse/steps/step-01b-applications.md +419 -419
  261. package/templates/skills/business-analyse/steps/step-02-decomposition.md +387 -387
  262. package/templates/skills/business-analyse/steps/step-03a-data.md +16 -16
  263. package/templates/skills/business-analyse/steps/step-03a1-setup.md +506 -506
  264. package/templates/skills/business-analyse/steps/step-03a2-analysis.md +252 -252
  265. package/templates/skills/business-analyse/steps/step-03b-ui.md +425 -425
  266. package/templates/skills/business-analyse/steps/step-03c-compile.md +611 -611
  267. package/templates/skills/business-analyse/steps/step-03d-validate.md +783 -783
  268. package/templates/skills/business-analyse/steps/step-04-consolidation.md +17 -17
  269. package/templates/skills/business-analyse/steps/step-04a-collect.md +415 -415
  270. package/templates/skills/business-analyse/steps/step-04b-analyze.md +163 -163
  271. package/templates/skills/business-analyse/steps/step-04c-decide.md +186 -186
  272. package/templates/skills/business-analyse/steps/step-05a-handoff.md +840 -840
  273. package/templates/skills/business-analyse/steps/step-05b-deploy.md +522 -522
  274. package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +703 -703
  275. package/templates/skills/business-analyse/steps/step-06-review.md +278 -278
  276. package/templates/skills/business-analyse/templates/tpl-frd.md +168 -168
  277. package/templates/skills/business-analyse/templates/tpl-handoff.md +186 -186
  278. package/templates/skills/business-analyse/templates/tpl-launch-displays.md +59 -59
  279. package/templates/skills/business-analyse/templates/tpl-progress.md +172 -172
  280. package/templates/skills/business-analyse/templates-frd.md +476 -476
  281. package/templates/skills/business-analyse/templates-react.md +574 -574
  282. package/templates/skills/cc-agent/SKILL.md +129 -129
  283. package/templates/skills/cc-agent/references/agent-behavior-patterns.md +95 -95
  284. package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -213
  285. package/templates/skills/cc-agent/references/permission-modes.md +102 -102
  286. package/templates/skills/cc-agent/references/tools-reference.md +144 -144
  287. package/templates/skills/cc-agent/steps/step-00-init.md +134 -134
  288. package/templates/skills/cc-agent/steps/step-01-design.md +186 -186
  289. package/templates/skills/cc-agent/steps/step-02-generate.md +131 -131
  290. package/templates/skills/cc-agent/steps/step-03-validate.md +130 -130
  291. package/templates/skills/cc-agent/templates/agent-categorized.md +67 -67
  292. package/templates/skills/cc-agent/templates/agent-standalone.md +56 -56
  293. package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -94
  294. package/templates/skills/cc-audit/SKILL.md +108 -108
  295. package/templates/skills/cc-audit/references/agent-checklist.md +91 -91
  296. package/templates/skills/cc-audit/references/hook-checklist.md +110 -110
  297. package/templates/skills/cc-audit/references/skill-checklist.md +70 -70
  298. package/templates/skills/cc-audit/steps/step-00-init.md +98 -98
  299. package/templates/skills/cc-audit/steps/step-01-scan.md +142 -142
  300. package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -158
  301. package/templates/skills/cc-audit/steps/step-03-report.md +142 -142
  302. package/templates/skills/cc-skill/SKILL.md +134 -134
  303. package/templates/skills/cc-skill/references/best-practices.md +167 -167
  304. package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -182
  305. package/templates/skills/cc-skill/references/skill-patterns.md +199 -199
  306. package/templates/skills/cc-skill/steps/step-00-init.md +119 -119
  307. package/templates/skills/cc-skill/steps/step-01-design.md +199 -199
  308. package/templates/skills/cc-skill/steps/step-02-generate.md +145 -145
  309. package/templates/skills/cc-skill/steps/step-03-steps.md +151 -151
  310. package/templates/skills/cc-skill/steps/step-04-validate.md +124 -124
  311. package/templates/skills/cc-skill/templates/skill-forked.md +85 -85
  312. package/templates/skills/cc-skill/templates/skill-progressive.md +102 -102
  313. package/templates/skills/cc-skill/templates/skill-simple.md +75 -75
  314. package/templates/skills/cc-skill/templates/step-template.md +82 -82
  315. package/templates/skills/check-version/SKILL.md +196 -196
  316. package/templates/skills/controller/SKILL.md +162 -162
  317. package/templates/skills/controller/postman-templates.md +614 -614
  318. package/templates/skills/controller/references/controller-code-templates.md +159 -159
  319. package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -209
  320. package/templates/skills/controller/references/permission-sync-templates.md +149 -149
  321. package/templates/skills/controller/steps/step-00-init.md +193 -191
  322. package/templates/skills/controller/steps/step-01-analyze.md +146 -146
  323. package/templates/skills/controller/steps/step-02-plan.md +176 -176
  324. package/templates/skills/controller/steps/step-03-generate.md +189 -189
  325. package/templates/skills/controller/steps/step-04-perms.md +80 -80
  326. package/templates/skills/controller/steps/step-05-validate.md +107 -107
  327. package/templates/skills/controller/templates.md +1555 -1555
  328. package/templates/skills/debug/SKILL.md +70 -70
  329. package/templates/skills/debug/references/team-protocol.md +232 -232
  330. package/templates/skills/debug/steps/step-00-init.md +57 -57
  331. package/templates/skills/debug/steps/step-01-analyze.md +219 -219
  332. package/templates/skills/debug/steps/step-02-resolve.md +85 -85
  333. package/templates/skills/documentation/SKILL.md +132 -132
  334. package/templates/skills/documentation/data-schema.md +227 -227
  335. package/templates/skills/documentation/steps/step-00-init.md +70 -70
  336. package/templates/skills/documentation/steps/step-01-scan.md +113 -113
  337. package/templates/skills/documentation/steps/step-02-generate.md +231 -231
  338. package/templates/skills/documentation/steps/step-03-validate.md +251 -238
  339. package/templates/skills/documentation/templates.md +662 -663
  340. package/templates/skills/efcore/SKILL.md +168 -167
  341. package/templates/skills/efcore/references/both-contexts.md +32 -32
  342. package/templates/skills/efcore/references/database-operations.md +67 -67
  343. package/templates/skills/efcore/references/destructive-operations.md +38 -38
  344. package/templates/skills/efcore/references/reset-operations.md +81 -81
  345. package/templates/skills/efcore/references/seed-methods.md +86 -86
  346. package/templates/skills/efcore/references/shared-init-functions.md +250 -250
  347. package/templates/skills/efcore/references/sql-objects-injection.md +61 -61
  348. package/templates/skills/efcore/references/troubleshooting.md +81 -81
  349. package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -227
  350. package/templates/skills/efcore/steps/db/step-deploy.md +217 -217
  351. package/templates/skills/efcore/steps/db/step-reset.md +186 -186
  352. package/templates/skills/efcore/steps/db/step-seed.md +166 -166
  353. package/templates/skills/efcore/steps/db/step-status.md +173 -173
  354. package/templates/skills/efcore/steps/migration/step-00-init.md +102 -102
  355. package/templates/skills/efcore/steps/migration/step-01-check.md +164 -164
  356. package/templates/skills/efcore/steps/migration/step-02-create.md +160 -160
  357. package/templates/skills/efcore/steps/migration/step-03-validate.md +168 -168
  358. package/templates/skills/efcore/steps/rebase-snapshot/step-00-init.md +173 -173
  359. package/templates/skills/efcore/steps/rebase-snapshot/step-01-backup.md +100 -100
  360. package/templates/skills/efcore/steps/rebase-snapshot/step-02-fetch.md +115 -115
  361. package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +112 -112
  362. package/templates/skills/efcore/steps/rebase-snapshot/step-04-validate.md +157 -157
  363. package/templates/skills/efcore/steps/shared/step-00-init.md +131 -131
  364. package/templates/skills/efcore/steps/squash/step-00-init.md +141 -141
  365. package/templates/skills/efcore/steps/squash/step-01-backup.md +120 -120
  366. package/templates/skills/efcore/steps/squash/step-02-fetch.md +168 -168
  367. package/templates/skills/efcore/steps/squash/step-03-create.md +184 -184
  368. package/templates/skills/efcore/steps/squash/step-04-validate.md +174 -174
  369. package/templates/skills/explore/SKILL.md +98 -98
  370. package/templates/skills/feature-full/SKILL.md +111 -111
  371. package/templates/skills/feature-full/steps/step-00-init.md +57 -57
  372. package/templates/skills/feature-full/steps/step-01-implementation.md +120 -120
  373. package/templates/skills/gitflow/SKILL.md +377 -377
  374. package/templates/skills/gitflow/_shared.md +620 -620
  375. package/templates/skills/gitflow/phases/abort.md +189 -189
  376. package/templates/skills/gitflow/phases/cleanup.md +234 -234
  377. package/templates/skills/gitflow/phases/status.md +192 -192
  378. package/templates/skills/gitflow/references/commit-message-generation.md +58 -58
  379. package/templates/skills/gitflow/references/commit-migration-validation.md +49 -49
  380. package/templates/skills/gitflow/references/finish-cleanup.md +55 -55
  381. package/templates/skills/gitflow/references/finish-version-bumping.md +45 -45
  382. package/templates/skills/gitflow/references/init-config-template.md +135 -135
  383. package/templates/skills/gitflow/references/init-environment-detection.md +41 -41
  384. package/templates/skills/gitflow/references/init-name-normalization.md +103 -103
  385. package/templates/skills/gitflow/references/init-questions.md +185 -185
  386. package/templates/skills/gitflow/references/init-structure-creation.md +75 -75
  387. package/templates/skills/gitflow/references/init-version-detection.md +21 -21
  388. package/templates/skills/gitflow/references/init-workspace-detection.md +43 -43
  389. package/templates/skills/gitflow/references/merge-ci-status.md +36 -36
  390. package/templates/skills/gitflow/references/merge-execution.md +62 -62
  391. package/templates/skills/gitflow/references/merge-pr-context.md +76 -76
  392. package/templates/skills/gitflow/references/plan-template.md +69 -69
  393. package/templates/skills/gitflow/references/pr-build-checks.md +60 -60
  394. package/templates/skills/gitflow/references/pr-generation.md +58 -58
  395. package/templates/skills/gitflow/references/start-branch-normalization.md +28 -28
  396. package/templates/skills/gitflow/references/start-efcore-preflight.md +70 -70
  397. package/templates/skills/gitflow/references/start-local-config.md +113 -113
  398. package/templates/skills/gitflow/references/start-worktree-creation.md +50 -50
  399. package/templates/skills/gitflow/references/sync-push-verify.md +44 -44
  400. package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -38
  401. package/templates/skills/gitflow/steps/step-commit.md +199 -199
  402. package/templates/skills/gitflow/steps/step-finish.md +147 -147
  403. package/templates/skills/gitflow/steps/step-init.md +190 -190
  404. package/templates/skills/gitflow/steps/step-merge.md +85 -85
  405. package/templates/skills/gitflow/steps/step-plan.md +151 -151
  406. package/templates/skills/gitflow/steps/step-pr.md +199 -199
  407. package/templates/skills/gitflow/steps/step-start.md +195 -195
  408. package/templates/skills/gitflow/steps/step-sync.md +161 -161
  409. package/templates/skills/gitflow/templates/config.json +72 -72
  410. package/templates/skills/mcp/SKILL.md +62 -62
  411. package/templates/skills/mcp/steps/step-01-healthcheck.md +108 -108
  412. package/templates/skills/mcp/steps/step-02-tools.md +73 -73
  413. package/templates/skills/notification/SKILL.md +173 -173
  414. package/templates/skills/quick-search/SKILL.md +99 -99
  415. package/templates/skills/ralph-loop/SKILL.md +234 -234
  416. package/templates/skills/ralph-loop/references/category-completeness.md +185 -185
  417. package/templates/skills/ralph-loop/references/category-rules.md +96 -96
  418. package/templates/skills/ralph-loop/references/compact-loop.md +300 -300
  419. package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -127
  420. package/templates/skills/ralph-loop/references/module-transition.md +151 -151
  421. package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -171
  422. package/templates/skills/ralph-loop/references/parallel-execution.md +246 -246
  423. package/templates/skills/ralph-loop/references/section-splitting.md +439 -439
  424. package/templates/skills/ralph-loop/references/task-transform-legacy.md +256 -256
  425. package/templates/skills/ralph-loop/references/team-orchestration.md +547 -547
  426. package/templates/skills/ralph-loop/steps/step-00-init.md +150 -150
  427. package/templates/skills/ralph-loop/steps/step-01-task.md +174 -174
  428. package/templates/skills/ralph-loop/steps/step-02-execute.md +177 -177
  429. package/templates/skills/ralph-loop/steps/step-03-commit.md +92 -92
  430. package/templates/skills/ralph-loop/steps/step-04-check.md +207 -207
  431. package/templates/skills/ralph-loop/steps/step-05-report.md +175 -175
  432. package/templates/skills/refactor/SKILL.md +56 -56
  433. package/templates/skills/refactor/steps/step-01-discover.md +60 -60
  434. package/templates/skills/refactor/steps/step-02-execute.md +67 -67
  435. package/templates/skills/review-code/SKILL.md +95 -94
  436. package/templates/skills/review-code/references/clean-code-principles.md +292 -292
  437. package/templates/skills/review-code/references/code-quality-metrics.md +174 -174
  438. package/templates/skills/review-code/references/feedback-patterns.md +149 -149
  439. package/templates/skills/review-code/references/owasp-api-top10.md +243 -243
  440. package/templates/skills/review-code/references/security-checklist.md +212 -212
  441. package/templates/skills/review-code/steps/step-01-smartstack.md +96 -96
  442. package/templates/skills/review-code/steps/step-02-detailed-review.md +80 -80
  443. package/templates/skills/review-code/steps/step-03-react.md +44 -44
  444. package/templates/skills/ui-components/SKILL.md +137 -137
  445. package/templates/skills/ui-components/accessibility.md +170 -170
  446. package/templates/skills/ui-components/patterns/dashboard-chart.md +327 -327
  447. package/templates/skills/ui-components/patterns/data-table.md +39 -39
  448. package/templates/skills/ui-components/patterns/entity-card.md +77 -77
  449. package/templates/skills/ui-components/patterns/grid-layout.md +91 -91
  450. package/templates/skills/ui-components/patterns/kanban.md +43 -43
  451. package/templates/skills/ui-components/responsive-guidelines.md +278 -278
  452. package/templates/skills/ui-components/style-guide.md +113 -113
  453. package/templates/skills/utils/SKILL.md +44 -44
  454. package/templates/skills/utils/subcommands/test-web-config.md +152 -152
  455. package/templates/skills/utils/subcommands/test-web.md +123 -123
  456. package/templates/skills/validate/SKILL.md +181 -181
  457. package/templates/skills/validate-feature/SKILL.md +101 -101
  458. package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
  459. package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
  460. package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
  461. package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
  462. package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
  463. package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
  464. package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
  465. package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
  466. package/templates/skills/workflow/SKILL.md +127 -127
  467. package/templates/skills/workflow/steps/step-00-init.md +57 -57
  468. package/templates/skills/workflow/steps/step-01-implementation.md +84 -84
  469. package/templates/test-web/api-health.json +38 -38
  470. package/templates/test-web/minimal.json +19 -19
  471. package/templates/test-web/npm-package.json +46 -46
  472. package/templates/test-web/seo-check.json +54 -54
@@ -1,2320 +1,2320 @@
1
- /* ============================================
2
- CLAUDE TOOLS DOCUMENTATION - STYLES
3
- ============================================ */
4
-
5
- :root {
6
- /* Colors */
7
- --primary: #6366f1;
8
- --primary-dark: #4f46e5;
9
- --primary-light: #818cf8;
10
- --secondary: #f97316;
11
- --accent: #06b6d4;
12
-
13
- --bg-dark: #0f172a;
14
- --bg-card: #1e293b;
15
- --bg-hover: #334155;
16
- --bg-code: #0d1117;
17
-
18
- --text: #b8c4d1;
19
- --text-muted: #8a9bb0;
20
- --text-bright: #c8d0dc;
21
-
22
- --border: #334155;
23
- --border-light: #475569;
24
-
25
- --success: #22c55e;
26
- --warning: #eab308;
27
- --error: #ef4444;
28
- --info: #3b82f6;
29
-
30
- /* Sidebar */
31
- --sidebar-width: 280px;
32
- --sidebar-collapsed: 60px;
33
-
34
- /* Transitions */
35
- --transition-fast: 0.15s ease;
36
- --transition-normal: 0.3s ease;
37
- }
38
-
39
- * {
40
- margin: 0;
41
- padding: 0;
42
- box-sizing: border-box;
43
- }
44
-
45
- html {
46
- scroll-behavior: smooth;
47
- }
48
-
49
- body {
50
- font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
51
- background: var(--bg-dark);
52
- color: var(--text);
53
- line-height: 1.7;
54
- min-height: 100vh;
55
- }
56
-
57
- /* ============================================
58
- LAYOUT
59
- ============================================ */
60
-
61
- .app-container {
62
- display: flex;
63
- flex-direction: column;
64
- min-height: 100vh;
65
- }
66
-
67
- /* Unified Global Header */
68
- .global-header {
69
- background: var(--bg-card);
70
- border-bottom: 1px solid var(--border);
71
- height: 44px;
72
- display: flex;
73
- align-items: center;
74
- padding: 0 1rem;
75
- gap: 1rem;
76
- position: sticky;
77
- top: 0;
78
- z-index: 1001;
79
- box-sizing: border-box;
80
- }
81
-
82
- .global-header .logo {
83
- width: 26px;
84
- height: 26px;
85
- background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
86
- border-radius: 5px;
87
- display: flex;
88
- align-items: center;
89
- justify-content: center;
90
- font-weight: 700;
91
- font-size: 0.8rem;
92
- flex-shrink: 0;
93
- }
94
-
95
- .global-header .site-title {
96
- font-size: 0.95rem;
97
- font-weight: 600;
98
- white-space: nowrap;
99
- color: var(--text-bright);
100
- }
101
-
102
- .global-header .version-badge {
103
- background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
104
- color: white;
105
- font-size: 0.65rem;
106
- font-weight: 600;
107
- padding: 0.2rem 0.5rem;
108
- border-radius: 4px;
109
- white-space: nowrap;
110
- }
111
-
112
- .global-header .header-divider {
113
- width: 1px;
114
- height: 24px;
115
- background: var(--border);
116
- margin: 0 0.5rem;
117
- }
118
-
119
- .global-header .page-title {
120
- font-size: 0.95rem;
121
- font-weight: 600;
122
- color: var(--text-bright);
123
- white-space: nowrap;
124
- }
125
-
126
- .global-header .breadcrumb {
127
- display: flex;
128
- align-items: center;
129
- gap: 0.35rem;
130
- font-size: 0.75rem;
131
- color: var(--text-muted);
132
- }
133
-
134
- .global-header .breadcrumb a {
135
- color: var(--text-muted);
136
- text-decoration: none;
137
- transition: color var(--transition-fast);
138
- }
139
-
140
- .global-header .breadcrumb a:hover {
141
- color: var(--primary-light);
142
- }
143
-
144
- .global-header .breadcrumb-separator {
145
- color: var(--border-light);
146
- font-size: 0.65rem;
147
- }
148
-
149
- .global-header .breadcrumb-current {
150
- color: var(--primary-light);
151
- }
152
-
153
- .global-header .lang-select {
154
- background: var(--bg-dark);
155
- color: var(--text);
156
- border: 1px solid var(--border);
157
- border-radius: 6px;
158
- padding: 0.35rem 0.75rem;
159
- font-size: 0.8rem;
160
- font-weight: 500;
161
- cursor: pointer;
162
- outline: none;
163
- transition: all var(--transition-fast);
164
- margin-left: 1rem;
165
- }
166
-
167
- .global-header .lang-select:hover {
168
- border-color: var(--primary);
169
- }
170
-
171
- .global-header .lang-select:focus {
172
- border-color: var(--primary);
173
- box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
174
- }
175
-
176
- .global-header .lang-select option {
177
- background: var(--bg-dark);
178
- color: var(--text);
179
- padding: 0.5rem;
180
- }
181
-
182
- /* Header Search */
183
- .header-search {
184
- position: relative;
185
- margin-left: auto;
186
- margin-right: 1rem;
187
- }
188
-
189
- .search-input-wrapper {
190
- display: flex;
191
- align-items: center;
192
- background: var(--bg-dark);
193
- border: 1px solid var(--border);
194
- border-radius: 6px;
195
- padding: 0 0.5rem;
196
- transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
197
- }
198
-
199
- .search-input-wrapper:focus-within {
200
- border-color: var(--primary);
201
- box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
202
- }
203
-
204
- .search-icon {
205
- color: var(--text-muted);
206
- font-size: 0.9rem;
207
- margin-right: 0.5rem;
208
- }
209
-
210
- .search-input {
211
- background: transparent;
212
- border: none;
213
- color: var(--text);
214
- font-size: 0.85rem;
215
- padding: 0.4rem 0;
216
- width: 180px;
217
- outline: none;
218
- }
219
-
220
- .search-input::placeholder {
221
- color: var(--text-muted);
222
- }
223
-
224
- .search-shortcut {
225
- background: var(--bg-hover);
226
- color: var(--text-muted);
227
- font-size: 0.65rem;
228
- font-weight: 600;
229
- padding: 0.15rem 0.4rem;
230
- border-radius: 4px;
231
- margin-left: 0.5rem;
232
- white-space: nowrap;
233
- }
234
-
235
- /* Search Results Dropdown */
236
- .search-results {
237
- position: absolute;
238
- top: calc(100% + 8px);
239
- left: 0;
240
- right: 0;
241
- min-width: 320px;
242
- max-height: 400px;
243
- overflow-y: auto;
244
- background: var(--bg-dark);
245
- border: 1px solid var(--border);
246
- border-radius: 8px;
247
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
248
- z-index: 1002;
249
- display: none;
250
- }
251
-
252
- .search-results.visible {
253
- display: block;
254
- }
255
-
256
- .search-results-empty {
257
- padding: 1.5rem;
258
- text-align: center;
259
- color: var(--text-muted);
260
- font-size: 0.85rem;
261
- }
262
-
263
- .search-result-item {
264
- display: flex;
265
- align-items: flex-start;
266
- gap: 0.75rem;
267
- padding: 0.75rem 1rem;
268
- text-decoration: none;
269
- color: var(--text);
270
- transition: background var(--transition-fast);
271
- border-bottom: 1px solid var(--border);
272
- }
273
-
274
- .search-result-item:last-child {
275
- border-bottom: none;
276
- }
277
-
278
- .search-result-item:hover,
279
- .search-result-item.active {
280
- background: var(--bg-hover);
281
- }
282
-
283
- .search-result-icon {
284
- width: 28px;
285
- height: 28px;
286
- background: var(--bg-card);
287
- border-radius: 6px;
288
- display: flex;
289
- align-items: center;
290
- justify-content: center;
291
- font-size: 0.9rem;
292
- flex-shrink: 0;
293
- }
294
-
295
- .search-result-content {
296
- flex: 1;
297
- min-width: 0;
298
- }
299
-
300
- .search-result-title {
301
- font-weight: 500;
302
- font-size: 0.9rem;
303
- color: var(--text-bright);
304
- margin-bottom: 0.15rem;
305
- }
306
-
307
- .search-result-title mark {
308
- background: rgba(99, 102, 241, 0.3);
309
- color: var(--primary-light);
310
- padding: 0 0.15rem;
311
- border-radius: 2px;
312
- }
313
-
314
- .search-result-path {
315
- font-size: 0.75rem;
316
- color: var(--text-muted);
317
- white-space: nowrap;
318
- overflow: hidden;
319
- text-overflow: ellipsis;
320
- }
321
-
322
- .search-result-section {
323
- font-weight: 400;
324
- color: var(--text-muted);
325
- font-size: 0.85rem;
326
- }
327
-
328
- .search-result-section mark {
329
- background: rgba(99, 102, 241, 0.2);
330
- color: var(--primary-light);
331
- }
332
-
333
- .search-result-excerpt {
334
- font-size: 0.8rem;
335
- color: var(--text);
336
- line-height: 1.4;
337
- margin: 0.35rem 0;
338
- display: -webkit-box;
339
- -webkit-line-clamp: 2;
340
- -webkit-box-orient: vertical;
341
- overflow: hidden;
342
- }
343
-
344
- .search-result-excerpt mark {
345
- background: rgba(245, 158, 11, 0.3);
346
- color: var(--accent);
347
- padding: 0 0.1rem;
348
- border-radius: 2px;
349
- }
350
-
351
- /* Search results scrollbar */
352
- .search-results::-webkit-scrollbar {
353
- width: 6px;
354
- }
355
-
356
- .search-results::-webkit-scrollbar-track {
357
- background: var(--bg-dark);
358
- }
359
-
360
- .search-results::-webkit-scrollbar-thumb {
361
- background: var(--border);
362
- border-radius: 3px;
363
- }
364
-
365
- .search-results::-webkit-scrollbar-thumb:hover {
366
- background: var(--border-light);
367
- }
368
-
369
- /* Responsive search */
370
- @media (max-width: 1024px) {
371
- .header-search {
372
- display: none;
373
- }
374
- }
375
-
376
- @media (max-width: 768px) {
377
- .header-search {
378
- display: none;
379
- }
380
- }
381
-
382
- /* App Body - contains sidebar and main content */
383
- .app-body {
384
- display: flex;
385
- flex: 1;
386
- }
387
-
388
- /* Sidebar */
389
- .sidebar {
390
- width: var(--sidebar-width);
391
- background: var(--bg-card);
392
- position: fixed;
393
- top: 44px; /* Below global header */
394
- left: 0;
395
- height: calc(100vh - 44px);
396
- overflow-y: auto;
397
- transition: width var(--transition-normal), transform var(--transition-normal);
398
- z-index: 1000;
399
- display: flex;
400
- flex-direction: column;
401
- /* Hide scrollbar but keep functionality */
402
- scrollbar-width: none; /* Firefox */
403
- -ms-overflow-style: none; /* IE/Edge */
404
- }
405
-
406
- .sidebar::-webkit-scrollbar {
407
- display: none; /* Chrome/Safari/Opera */
408
- }
409
-
410
- .sidebar.collapsed {
411
- width: var(--sidebar-collapsed);
412
- }
413
-
414
- .sidebar.collapsed .nav-text,
415
- .sidebar.collapsed .sidebar-header h2,
416
- .sidebar.collapsed .sidebar-footer,
417
- .sidebar.collapsed .nav-section-title {
418
- opacity: 0;
419
- visibility: hidden;
420
- }
421
-
422
- /* Legacy sidebar-header styles removed - now using global-header */
423
-
424
- /* Sidebar toggle button - fixed position, always visible */
425
- .sidebar-toggle {
426
- position: fixed;
427
- top: calc(50% + 22px); /* Centered in sidebar area (below 44px header) */
428
- left: calc(var(--sidebar-width) - 1px);
429
- transform: translateY(-50%);
430
- width: 20px;
431
- height: 56px;
432
- background: var(--bg-card);
433
- border: 1px solid var(--border);
434
- border-left: none;
435
- border-radius: 0 8px 8px 0;
436
- cursor: pointer;
437
- display: flex;
438
- align-items: center;
439
- justify-content: center;
440
- color: var(--text-muted);
441
- font-size: 0.75rem;
442
- transition: left var(--transition-normal), background var(--transition-fast), color var(--transition-fast);
443
- z-index: 1001;
444
- padding: 0;
445
- }
446
-
447
- .sidebar-toggle:hover {
448
- background: var(--primary);
449
- color: white;
450
- border-color: var(--primary);
451
- }
452
-
453
- /* Move toggle when sidebar is collapsed - use descendant selector since button is inside sidebar */
454
- .sidebar.collapsed .sidebar-toggle {
455
- left: calc(var(--sidebar-collapsed) - 1px);
456
- }
457
-
458
- /* Toggle icon states */
459
- .sidebar-toggle .toggle-icon-collapse,
460
- .sidebar-toggle .toggle-icon-expand {
461
- display: flex;
462
- align-items: center;
463
- justify-content: center;
464
- }
465
-
466
- .sidebar-toggle .toggle-icon-expand {
467
- display: none;
468
- }
469
-
470
- .sidebar.collapsed .sidebar-toggle .toggle-icon-collapse {
471
- display: none;
472
- }
473
-
474
- .sidebar.collapsed .sidebar-toggle .toggle-icon-expand {
475
- display: flex;
476
- }
477
-
478
- /* Navigation */
479
- .sidebar-nav {
480
- flex: 1;
481
- padding: 0.5rem 0 1rem 0;
482
- overflow-y: auto;
483
- /* Hide scrollbar but keep functionality */
484
- scrollbar-width: none;
485
- -ms-overflow-style: none;
486
- }
487
-
488
- .sidebar-nav::-webkit-scrollbar {
489
- display: none;
490
- }
491
-
492
- .nav-section {
493
- margin-bottom: 1.5rem;
494
- }
495
-
496
- .nav-section-title {
497
- padding: 0.5rem 1.5rem;
498
- font-size: 0.7rem;
499
- font-weight: 600;
500
- text-transform: uppercase;
501
- letter-spacing: 0.1em;
502
- color: var(--text-muted);
503
- transition: opacity var(--transition-fast);
504
- }
505
-
506
- .nav-item {
507
- display: flex;
508
- align-items: center;
509
- gap: 0.75rem;
510
- padding: 0.625rem 1.5rem;
511
- color: var(--text-muted);
512
- text-decoration: none;
513
- transition: all var(--transition-fast);
514
- border-left: 3px solid transparent;
515
- }
516
-
517
- .nav-item:hover {
518
- background: var(--bg-hover);
519
- color: var(--text);
520
- }
521
-
522
- .nav-item.active {
523
- background: rgba(99, 102, 241, 0.1);
524
- color: var(--primary-light);
525
- border-left-color: var(--primary);
526
- }
527
-
528
- .nav-item .icon {
529
- width: 20px;
530
- height: 20px;
531
- display: flex;
532
- align-items: center;
533
- justify-content: center;
534
- flex-shrink: 0;
535
- }
536
-
537
- .nav-text {
538
- white-space: nowrap;
539
- transition: opacity var(--transition-fast);
540
- }
541
-
542
- /* Sidebar Footer */
543
- .sidebar-footer {
544
- padding: 1rem 1.5rem;
545
- border-top: 1px solid var(--border);
546
- transition: opacity var(--transition-fast);
547
- }
548
-
549
- .lang-switch {
550
- display: flex;
551
- background: var(--bg-dark);
552
- border-radius: 6px;
553
- padding: 3px;
554
- }
555
-
556
- .lang-btn {
557
- flex: 1;
558
- padding: 0.375rem 0.75rem;
559
- border: none;
560
- background: transparent;
561
- color: var(--text-muted);
562
- font-size: 0.8rem;
563
- font-weight: 500;
564
- cursor: pointer;
565
- border-radius: 4px;
566
- transition: all var(--transition-fast);
567
- }
568
-
569
- .lang-btn.active {
570
- background: var(--primary);
571
- color: white;
572
- }
573
-
574
- /* Main Content */
575
- .main-content {
576
- flex: 1;
577
- margin-left: var(--sidebar-width);
578
- transition: margin-left var(--transition-normal);
579
- min-height: 100vh;
580
- }
581
-
582
- .sidebar.collapsed ~ .main-content {
583
- margin-left: var(--sidebar-collapsed);
584
- }
585
-
586
- /* Legacy page-header styles removed - now using global-header */
587
-
588
- /* Content Area */
589
- .content {
590
- max-width: none;
591
- width: 100%;
592
- padding: 2rem 2.5rem;
593
- }
594
-
595
- .content-wide {
596
- max-width: none;
597
- }
598
-
599
- /* ============================================
600
- TYPOGRAPHY
601
- ============================================ */
602
-
603
- h2 {
604
- font-size: 1.75rem;
605
- font-weight: 600;
606
- margin: 2.5rem 0 1rem;
607
- padding-bottom: 0.5rem;
608
- border-bottom: 1px solid var(--border);
609
- color: var(--text-bright);
610
- }
611
-
612
- h3 {
613
- font-size: 1.25rem;
614
- font-weight: 600;
615
- margin: 2rem 0 1rem;
616
- color: var(--primary-light);
617
- }
618
-
619
- h4 {
620
- font-size: 1.1rem;
621
- font-weight: 600;
622
- margin: 1.5rem 0 0.75rem;
623
- color: var(--text);
624
- }
625
-
626
- p {
627
- margin-bottom: 1rem;
628
- }
629
-
630
- a {
631
- color: var(--primary-light);
632
- text-decoration: none;
633
- }
634
-
635
- a:hover {
636
- text-decoration: underline;
637
- }
638
-
639
- /* ============================================
640
- COMPONENTS
641
- ============================================ */
642
-
643
- /* Cards */
644
- .card-grid {
645
- display: grid;
646
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
647
- gap: 1.25rem;
648
- margin: 1.5rem 0;
649
- }
650
-
651
- .card {
652
- background: var(--bg-card);
653
- border: 1px solid var(--border);
654
- border-radius: 12px;
655
- padding: 1.5rem;
656
- transition: all var(--transition-fast);
657
- }
658
-
659
- .card:hover {
660
- border-color: var(--primary);
661
- transform: translateY(-2px);
662
- box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
663
- }
664
-
665
- .card-header {
666
- display: flex;
667
- align-items: flex-start;
668
- gap: 1rem;
669
- margin-bottom: 1rem;
670
- }
671
-
672
- .card-icon {
673
- width: 44px;
674
- height: 44px;
675
- background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
676
- border-radius: 10px;
677
- display: flex;
678
- align-items: center;
679
- justify-content: center;
680
- font-size: 1.25rem;
681
- flex-shrink: 0;
682
- }
683
-
684
- .card-title {
685
- font-size: 1.1rem;
686
- font-weight: 600;
687
- margin-bottom: 0.25rem;
688
- }
689
-
690
- .card-subtitle {
691
- font-size: 0.8rem;
692
- color: var(--text-muted);
693
- }
694
-
695
- .card-body p {
696
- color: var(--text-muted);
697
- font-size: 0.9rem;
698
- margin-bottom: 1rem;
699
- }
700
-
701
- /* Tags */
702
- .tag {
703
- display: inline-flex;
704
- align-items: center;
705
- padding: 0.25rem 0.625rem;
706
- border-radius: 4px;
707
- font-size: 0.7rem;
708
- font-weight: 600;
709
- text-transform: uppercase;
710
- letter-spacing: 0.05em;
711
- }
712
-
713
- .tag-command { background: var(--primary); color: white; }
714
- .tag-agent { background: var(--secondary); color: white; }
715
- .tag-workflow { background: var(--success); color: white; }
716
- .tag-best-practice { background: var(--accent); color: var(--bg-dark); }
717
- .tag-warning { background: var(--warning); color: var(--bg-dark); }
718
-
719
- /* Code */
720
- code {
721
- background: var(--bg-code);
722
- padding: 0.2rem 0.5rem;
723
- border-radius: 4px;
724
- font-family: 'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace;
725
- font-size: 0.875em;
726
- color: var(--text-bright);
727
- border: 1px solid var(--border);
728
- }
729
-
730
- /* Code in tables - minimal style (just monospace, no decoration) */
731
- table code,
732
- .table-container code,
733
- td code {
734
- background: transparent !important;
735
- color: inherit !important;
736
- border: none !important;
737
- padding: 0 !important;
738
- box-shadow: none !important;
739
- }
740
-
741
- /* Code in alerts - subtle style */
742
- .alert code,
743
- .alert-content code {
744
- background: rgba(0, 0, 0, 0.3);
745
- border: none;
746
- color: #e2e8f0;
747
- padding: 0.15rem 0.4rem;
748
- }
749
-
750
- /* Code in paragraphs - lighter style */
751
- p code {
752
- background: rgba(30, 41, 59, 0.8);
753
- border: none;
754
- color: #93c5fd;
755
- }
756
-
757
- pre {
758
- background: var(--bg-code);
759
- border: 1px solid var(--border);
760
- border-radius: 8px;
761
- padding: 1.25rem;
762
- overflow-x: auto;
763
- margin: 1rem 0;
764
- position: relative;
765
- }
766
-
767
- pre code {
768
- background: none !important;
769
- padding: 0 !important;
770
- border: none !important;
771
- color: var(--text);
772
- font-size: 0.875rem;
773
- line-height: 1.6;
774
- }
775
-
776
- /* Code block container */
777
- .code-block pre code {
778
- background: transparent !important;
779
- border: none !important;
780
- padding: 0 !important;
781
- box-shadow: none !important;
782
- }
783
-
784
- /* Code syntax highlighting */
785
- .code-comment {
786
- color: #6b7280;
787
- font-style: italic;
788
- }
789
-
790
- .code-cmd {
791
- color: #22d3ee;
792
- font-weight: 600;
793
- }
794
-
795
- .code-arg {
796
- color: #a78bfa;
797
- }
798
-
799
- .code-string {
800
- color: #4ade80;
801
- }
802
-
803
- .code-flag {
804
- color: #fbbf24;
805
- }
806
-
807
- .code-output {
808
- color: #64748b;
809
- font-style: italic;
810
- }
811
-
812
- .code-header {
813
- display: flex;
814
- justify-content: space-between;
815
- align-items: center;
816
- background: var(--bg-hover);
817
- padding: 0.5rem 1rem;
818
- border-radius: 8px 8px 0 0;
819
- margin: 1rem 0 0;
820
- font-size: 0.8rem;
821
- color: var(--text-muted);
822
- }
823
-
824
- .code-header + pre {
825
- margin-top: 0;
826
- border-radius: 0 0 8px 8px;
827
- }
828
-
829
- .copy-btn {
830
- background: var(--bg-card);
831
- border: 1px solid var(--border);
832
- color: var(--text-muted);
833
- padding: 0.25rem 0.5rem;
834
- border-radius: 4px;
835
- font-size: 0.75rem;
836
- cursor: pointer;
837
- transition: all var(--transition-fast);
838
- }
839
-
840
- .copy-btn:hover {
841
- background: var(--primary);
842
- color: white;
843
- border-color: var(--primary);
844
- }
845
-
846
- /* Alerts */
847
- .alert {
848
- padding: 1rem 1.25rem;
849
- border-radius: 8px;
850
- margin: 1.5rem 0;
851
- border-left: 4px solid;
852
- display: flex;
853
- gap: 0.75rem;
854
- }
855
-
856
- .alert-icon {
857
- font-size: 1.25rem;
858
- flex-shrink: 0;
859
- }
860
-
861
- .alert-content h5 {
862
- font-weight: 600;
863
- margin-bottom: 0.25rem;
864
- }
865
-
866
- .alert-content p {
867
- margin: 0;
868
- font-size: 0.9rem;
869
- }
870
-
871
- .alert-info {
872
- background: rgba(59, 130, 246, 0.1);
873
- border-color: var(--info);
874
- }
875
-
876
- .alert-success {
877
- background: rgba(34, 197, 94, 0.1);
878
- border-color: var(--success);
879
- }
880
-
881
- .alert-warning {
882
- background: rgba(234, 179, 8, 0.1);
883
- border-color: var(--warning);
884
- }
885
-
886
- .alert-error {
887
- background: rgba(239, 68, 68, 0.1);
888
- border-color: var(--error);
889
- }
890
-
891
- /* Tables */
892
- .table-container {
893
- overflow-x: auto;
894
- margin: 1.5rem 0;
895
- border: 1px solid var(--border);
896
- border-radius: 8px;
897
- }
898
-
899
- table {
900
- width: 100%;
901
- border-collapse: collapse;
902
- }
903
-
904
- th, td {
905
- padding: 0.875rem 1rem;
906
- text-align: left;
907
- border-bottom: 1px solid var(--border);
908
- }
909
-
910
- th {
911
- background: var(--bg-hover);
912
- font-weight: 600;
913
- font-size: 0.875rem;
914
- color: var(--text-muted);
915
- text-transform: uppercase;
916
- letter-spacing: 0.05em;
917
- }
918
-
919
- tr:last-child td {
920
- border-bottom: none;
921
- }
922
-
923
- tr:hover td {
924
- background: rgba(99, 102, 241, 0.05);
925
- }
926
-
927
- /* Workflow Diagram */
928
- .workflow-diagram {
929
- background: var(--bg-card);
930
- border: 1px solid var(--border);
931
- border-radius: 12px;
932
- padding: 2rem;
933
- margin: 2rem 0;
934
- overflow-x: auto;
935
- }
936
-
937
- .workflow-steps {
938
- display: flex;
939
- align-items: center;
940
- justify-content: center;
941
- gap: 0.5rem;
942
- flex-wrap: wrap;
943
- }
944
-
945
- .workflow-step {
946
- background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
947
- padding: 0.75rem 1.5rem;
948
- border-radius: 8px;
949
- font-weight: 600;
950
- font-size: 0.9rem;
951
- white-space: nowrap;
952
- box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
953
- }
954
-
955
- .workflow-arrow {
956
- color: var(--text-muted);
957
- font-size: 1.5rem;
958
- padding: 0 0.25rem;
959
- }
960
-
961
- /* Best Practice Box */
962
- .best-practice {
963
- background: linear-gradient(135deg, rgba(6, 182, 212, 0.1) 0%, rgba(99, 102, 241, 0.1) 100%);
964
- border: 1px solid var(--accent);
965
- border-radius: 12px;
966
- padding: 1.5rem;
967
- margin: 1.5rem 0;
968
- }
969
-
970
- .best-practice-header {
971
- display: flex;
972
- align-items: center;
973
- gap: 0.75rem;
974
- margin-bottom: 1rem;
975
- font-weight: 600;
976
- color: var(--accent);
977
- }
978
-
979
- .best-practice ul {
980
- margin: 0;
981
- padding-left: 1.5rem;
982
- }
983
-
984
- .best-practice li {
985
- margin-bottom: 0.5rem;
986
- color: var(--text);
987
- }
988
-
989
- /* Steps List */
990
- .steps-list {
991
- counter-reset: step;
992
- list-style: none;
993
- padding: 0;
994
- margin: 1.5rem 0;
995
- }
996
-
997
- .steps-list li {
998
- counter-increment: step;
999
- display: flex;
1000
- gap: 1rem;
1001
- margin-bottom: 1.5rem;
1002
- padding: 1.25rem;
1003
- background: var(--bg-card);
1004
- border: 1px solid var(--border);
1005
- border-radius: 8px;
1006
- }
1007
-
1008
- .steps-list li::before {
1009
- content: counter(step);
1010
- width: 32px;
1011
- height: 32px;
1012
- background: var(--primary);
1013
- border-radius: 50%;
1014
- display: flex;
1015
- align-items: center;
1016
- justify-content: center;
1017
- font-weight: 700;
1018
- flex-shrink: 0;
1019
- }
1020
-
1021
- .step-content h5 {
1022
- font-weight: 600;
1023
- margin-bottom: 0.5rem;
1024
- }
1025
-
1026
- .step-content p {
1027
- margin: 0;
1028
- color: var(--text-muted);
1029
- font-size: 0.9rem;
1030
- }
1031
-
1032
- /* Feature Grid */
1033
- .feature-grid {
1034
- display: grid;
1035
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
1036
- gap: 1rem;
1037
- margin: 1.5rem 0;
1038
- }
1039
-
1040
- .feature-item {
1041
- display: flex;
1042
- align-items: flex-start;
1043
- gap: 0.75rem;
1044
- padding: 1rem;
1045
- background: var(--bg-card);
1046
- border-radius: 8px;
1047
- }
1048
-
1049
- .feature-icon {
1050
- width: 24px;
1051
- height: 24px;
1052
- color: var(--success);
1053
- flex-shrink: 0;
1054
- }
1055
-
1056
- .feature-text {
1057
- font-size: 0.9rem;
1058
- }
1059
-
1060
- /* ============================================
1061
- RESPONSIVE
1062
- ============================================ */
1063
-
1064
- @media (max-width: 1024px) {
1065
- .sidebar {
1066
- transform: translateX(-100%);
1067
- }
1068
-
1069
- .sidebar.open {
1070
- transform: translateX(0);
1071
- }
1072
-
1073
- .main-content {
1074
- margin-left: 0;
1075
- }
1076
-
1077
- .mobile-menu-btn {
1078
- display: flex;
1079
- }
1080
-
1081
- /* Global header responsive */
1082
- .global-header .site-title,
1083
- .global-header .version-badge,
1084
- .global-header .header-divider {
1085
- display: none;
1086
- }
1087
- }
1088
-
1089
- @media (max-width: 768px) {
1090
- .global-header {
1091
- padding: 0 0.75rem;
1092
- gap: 0.5rem;
1093
- }
1094
-
1095
- .global-header .page-title {
1096
- font-size: 0.85rem;
1097
- }
1098
-
1099
- .global-header .breadcrumb {
1100
- display: none;
1101
- }
1102
-
1103
- .content {
1104
- padding: 1.5rem 1rem;
1105
- }
1106
-
1107
- .workflow-steps {
1108
- flex-direction: column;
1109
- }
1110
-
1111
- .workflow-arrow {
1112
- transform: rotate(90deg);
1113
- }
1114
-
1115
- .card-grid {
1116
- grid-template-columns: 1fr;
1117
- }
1118
- }
1119
-
1120
- /* Mobile Menu Button */
1121
- .mobile-menu-btn {
1122
- display: none;
1123
- position: fixed;
1124
- bottom: 1.5rem;
1125
- right: 1.5rem;
1126
- width: 56px;
1127
- height: 56px;
1128
- background: var(--primary);
1129
- border: none;
1130
- border-radius: 50%;
1131
- color: white;
1132
- font-size: 1.5rem;
1133
- cursor: pointer;
1134
- z-index: 999;
1135
- box-shadow: 0 4px 20px rgba(99, 102, 241, 0.4);
1136
- }
1137
-
1138
- @media (max-width: 1024px) {
1139
- .mobile-menu-btn {
1140
- display: flex;
1141
- align-items: center;
1142
- justify-content: center;
1143
- }
1144
- }
1145
-
1146
- /* Overlay */
1147
- .overlay {
1148
- display: none;
1149
- position: fixed;
1150
- top: 0;
1151
- left: 0;
1152
- right: 0;
1153
- bottom: 0;
1154
- background: rgba(0, 0, 0, 0.5);
1155
- z-index: 999;
1156
- }
1157
-
1158
- .overlay.active {
1159
- display: block;
1160
- }
1161
-
1162
- /* ============================================
1163
- ANIMATIONS
1164
- ============================================ */
1165
-
1166
- @keyframes fadeIn {
1167
- from { opacity: 0; transform: translateY(10px); }
1168
- to { opacity: 1; transform: translateY(0); }
1169
- }
1170
-
1171
- .fade-in {
1172
- animation: fadeIn 0.3s ease forwards;
1173
- }
1174
-
1175
- /* Bilingual content - hide inactive language, show active with original display */
1176
- [data-lang="en"] { display: none !important; }
1177
-
1178
- body.lang-en [data-lang="en"] { display: revert !important; }
1179
- body.lang-en [data-lang="fr"] { display: none !important; }
1180
-
1181
- /* ============================================
1182
- COMMAND CARDS & PROMPTS
1183
- ============================================ */
1184
-
1185
- .command-card {
1186
- background: var(--bg-card);
1187
- border: 1px solid var(--border);
1188
- border-radius: 12px;
1189
- margin: 1.5rem 0;
1190
- overflow: hidden;
1191
- }
1192
-
1193
- .command-header {
1194
- display: flex;
1195
- align-items: center;
1196
- gap: 1rem;
1197
- padding: 1rem 1.25rem;
1198
- background: var(--bg-hover);
1199
- border-bottom: 1px solid var(--border);
1200
- }
1201
-
1202
- .command-name {
1203
- font-size: 1.1rem;
1204
- font-weight: 600;
1205
- color: var(--primary-light);
1206
- background: var(--bg-code);
1207
- padding: 0.35rem 0.75rem;
1208
- }
1209
-
1210
- .command-body {
1211
- padding: 1.25rem;
1212
- }
1213
-
1214
- .command-body > p {
1215
- margin-bottom: 1rem;
1216
- }
1217
-
1218
- /* Lists in command body */
1219
- .command-body ul,
1220
- .command-body ol {
1221
- margin: 1rem 0;
1222
- padding-left: 1.75rem;
1223
- }
1224
-
1225
- .command-body ul {
1226
- list-style-type: disc;
1227
- }
1228
-
1229
- .command-body ol {
1230
- list-style-type: decimal;
1231
- }
1232
-
1233
- .command-body li {
1234
- margin-bottom: 0.5rem;
1235
- color: var(--text);
1236
- line-height: 1.6;
1237
- }
1238
-
1239
- .command-body li::marker {
1240
- color: var(--primary-light);
1241
- }
1242
-
1243
- /* Badges (for command cards) */
1244
- .badge {
1245
- display: inline-block;
1246
- padding: 0.25rem 0.6rem;
1247
- border-radius: 9999px;
1248
- font-size: 0.7rem;
1249
- font-weight: 600;
1250
- text-transform: uppercase;
1251
- letter-spacing: 0.03em;
1252
- }
1253
-
1254
- /* Workflow colors: WHAT (Blue), HOW (Teal), DOC (Purple) */
1255
- .badge-blue {
1256
- background: rgba(59, 130, 246, 0.15);
1257
- color: #60a5fa;
1258
- border: 1px solid rgba(59, 130, 246, 0.3);
1259
- }
1260
-
1261
- .badge-teal {
1262
- background: rgba(13, 148, 136, 0.15);
1263
- color: #2dd4bf;
1264
- border: 1px solid rgba(13, 148, 136, 0.3);
1265
- }
1266
-
1267
- .badge-purple {
1268
- background: rgba(139, 92, 246, 0.15);
1269
- color: #a78bfa;
1270
- border: 1px solid rgba(139, 92, 246, 0.3);
1271
- }
1272
-
1273
- /* Additional badge variants */
1274
- .badge-pink {
1275
- background: rgba(236, 72, 153, 0.15);
1276
- color: #f472b6;
1277
- border: 1px solid rgba(236, 72, 153, 0.3);
1278
- }
1279
-
1280
- .badge-green {
1281
- background: rgba(34, 197, 94, 0.15);
1282
- color: #4ade80;
1283
- border: 1px solid rgba(34, 197, 94, 0.3);
1284
- }
1285
-
1286
- .badge-orange {
1287
- background: rgba(249, 115, 22, 0.15);
1288
- color: #fb923c;
1289
- border: 1px solid rgba(249, 115, 22, 0.3);
1290
- }
1291
-
1292
- .badge-red {
1293
- background: rgba(239, 68, 68, 0.15);
1294
- color: #f87171;
1295
- border: 1px solid rgba(239, 68, 68, 0.3);
1296
- }
1297
-
1298
- .badge-yellow {
1299
- background: rgba(234, 179, 8, 0.15);
1300
- color: #facc15;
1301
- border: 1px solid rgba(234, 179, 8, 0.3);
1302
- }
1303
-
1304
- /* Prompt Details (Collapsible) */
1305
- .prompt-details {
1306
- margin-top: 1.25rem;
1307
- border: 1px solid var(--border);
1308
- border-radius: 8px;
1309
- overflow: hidden;
1310
- }
1311
-
1312
- .prompt-details summary {
1313
- display: flex;
1314
- align-items: center;
1315
- padding: 0.875rem 1rem;
1316
- background: var(--bg-hover);
1317
- cursor: pointer;
1318
- font-weight: 500;
1319
- color: var(--text-muted);
1320
- transition: all var(--transition-fast);
1321
- list-style: none;
1322
- }
1323
-
1324
- .prompt-details summary::-webkit-details-marker {
1325
- display: none;
1326
- }
1327
-
1328
- .prompt-details summary::before {
1329
- content: '▶';
1330
- margin-right: 0.75rem;
1331
- font-size: 0.75rem;
1332
- transition: transform var(--transition-fast);
1333
- }
1334
-
1335
- .prompt-details[open] summary::before {
1336
- transform: rotate(90deg);
1337
- }
1338
-
1339
- .prompt-details summary:hover {
1340
- color: var(--text);
1341
- background: var(--bg-card);
1342
- }
1343
-
1344
- .prompt-content {
1345
- background: var(--bg-code);
1346
- border-top: 1px solid var(--border);
1347
- }
1348
-
1349
- .prompt-content pre {
1350
- margin: 0;
1351
- border: none;
1352
- border-radius: 0;
1353
- max-height: 500px;
1354
- overflow-y: auto;
1355
- }
1356
-
1357
- .prompt-content pre code {
1358
- font-size: 0.8rem;
1359
- line-height: 1.5;
1360
- }
1361
-
1362
- /* Danger Tag */
1363
- .tag-danger {
1364
- background: var(--error);
1365
- color: white;
1366
- }
1367
-
1368
- /* Code block with position */
1369
- .code-block {
1370
- position: relative;
1371
- margin: 1rem 0;
1372
- }
1373
-
1374
- .code-block pre {
1375
- padding-right: 4.5rem; /* Space for copy button */
1376
- }
1377
-
1378
- .code-block .copy-btn {
1379
- position: absolute;
1380
- top: 0.5rem;
1381
- right: 0.5rem;
1382
- z-index: 10;
1383
- background: var(--bg-hover);
1384
- border: 1px solid var(--border-light);
1385
- opacity: 0.8;
1386
- transition: opacity var(--transition-fast), background var(--transition-fast);
1387
- }
1388
-
1389
- .code-block:hover .copy-btn {
1390
- opacity: 1;
1391
- }
1392
-
1393
- .code-block .copy-btn:hover {
1394
- background: var(--primary);
1395
- color: white;
1396
- border-color: var(--primary);
1397
- opacity: 1;
1398
- }
1399
-
1400
- /* Best Practice improvements */
1401
- .best-practice h4 {
1402
- display: flex;
1403
- align-items: center;
1404
- gap: 0.5rem;
1405
- margin-bottom: 0.75rem;
1406
- color: var(--text-bright);
1407
- }
1408
-
1409
- .bp-icon {
1410
- font-size: 1.25rem;
1411
- }
1412
-
1413
- /* Table inside commands */
1414
- .command-body .table-container {
1415
- margin: 1rem 0;
1416
- }
1417
-
1418
- /* ============================================
1419
- SIDEBAR PAGE TOC (Sub-navigation)
1420
- ============================================ */
1421
-
1422
- .nav-item-with-toc {
1423
- flex-direction: column;
1424
- align-items: stretch;
1425
- }
1426
-
1427
- .nav-item-with-toc > a {
1428
- display: flex;
1429
- align-items: center;
1430
- gap: 0.75rem;
1431
- padding: 0.625rem 1.5rem;
1432
- color: var(--text-muted);
1433
- text-decoration: none;
1434
- transition: all var(--transition-fast);
1435
- border-left: 3px solid transparent;
1436
- }
1437
-
1438
- .nav-item-with-toc > a:hover {
1439
- background: var(--bg-hover);
1440
- color: var(--text);
1441
- }
1442
-
1443
- .nav-item-with-toc > a.active {
1444
- background: rgba(99, 102, 241, 0.1);
1445
- color: var(--primary-light);
1446
- border-left-color: var(--primary);
1447
- }
1448
-
1449
- /* Sidebar TOC submenu */
1450
- .sidebar-toc {
1451
- display: none;
1452
- flex-direction: column;
1453
- padding: 0.5rem 0 0.5rem 2.5rem;
1454
- background: rgba(0, 0, 0, 0.15);
1455
- border-left: 3px solid var(--primary);
1456
- margin-left: 0;
1457
- }
1458
-
1459
- .sidebar-toc.open {
1460
- display: flex;
1461
- }
1462
-
1463
- .sidebar-toc-link {
1464
- display: block;
1465
- font-size: 0.8rem;
1466
- color: var(--text-muted);
1467
- text-decoration: none;
1468
- padding: 0.375rem 0.75rem;
1469
- border-radius: 4px;
1470
- transition: all var(--transition-fast);
1471
- position: relative;
1472
- }
1473
-
1474
- .sidebar-toc-link::before {
1475
- content: '';
1476
- position: absolute;
1477
- left: 0;
1478
- top: 50%;
1479
- transform: translateY(-50%);
1480
- width: 4px;
1481
- height: 4px;
1482
- background: var(--border-light);
1483
- border-radius: 50%;
1484
- opacity: 0;
1485
- transition: opacity var(--transition-fast);
1486
- }
1487
-
1488
- .sidebar-toc-link:hover {
1489
- color: var(--text);
1490
- background: var(--bg-hover);
1491
- }
1492
-
1493
- .sidebar-toc-link:hover::before {
1494
- opacity: 1;
1495
- }
1496
-
1497
- .sidebar-toc-link.active {
1498
- color: var(--primary-light);
1499
- background: rgba(99, 102, 241, 0.15);
1500
- }
1501
-
1502
- .sidebar-toc-link.active::before {
1503
- opacity: 1;
1504
- background: var(--primary);
1505
- width: 6px;
1506
- height: 6px;
1507
- }
1508
-
1509
- /* TOC toggle button */
1510
- .toc-toggle {
1511
- margin-left: auto;
1512
- background: none;
1513
- border: none;
1514
- color: var(--text-muted);
1515
- cursor: pointer;
1516
- padding: 0.25rem;
1517
- font-size: 0.7rem;
1518
- transition: transform var(--transition-fast);
1519
- }
1520
-
1521
- .toc-toggle.open {
1522
- transform: rotate(90deg);
1523
- }
1524
-
1525
- /* Hide sidebar TOC when sidebar is collapsed */
1526
- .sidebar.collapsed .sidebar-toc {
1527
- display: none !important;
1528
- }
1529
-
1530
- .sidebar.collapsed .toc-toggle {
1531
- display: none;
1532
- }
1533
-
1534
- /* Full width content (no inline TOC) */
1535
- .content-full {
1536
- max-width: none;
1537
- width: 100%;
1538
- padding: 2rem 2.5rem;
1539
- }
1540
-
1541
- @media (max-width: 768px) {
1542
- .content-full {
1543
- padding: 1.5rem 1rem;
1544
- }
1545
- }
1546
-
1547
- /* Wide content (no TOC) */
1548
- .content-wide {
1549
- max-width: none;
1550
- width: 100%;
1551
- padding: 2rem 2.5rem;
1552
- }
1553
-
1554
- /* ============================================
1555
- SVG DIAGRAMS
1556
- ============================================ */
1557
-
1558
- .svg-diagram {
1559
- background: transparent;
1560
- border: none;
1561
- padding: 1rem 0;
1562
- margin: 2rem 0;
1563
- overflow-x: auto;
1564
- display: flex;
1565
- justify-content: center;
1566
- }
1567
-
1568
- .svg-diagram svg {
1569
- max-width: 100%;
1570
- height: auto;
1571
- }
1572
-
1573
- /* GitFlow branch colors */
1574
- .branch-main { fill: #ef4444; }
1575
- .branch-develop { fill: #f97316; }
1576
- .branch-feature { fill: #22c55e; }
1577
- .branch-release { fill: #eab308; }
1578
- .branch-hotfix { fill: #ec4899; }
1579
-
1580
- .branch-line-main { stroke: #ef4444; }
1581
- .branch-line-develop { stroke: #f97316; }
1582
- .branch-line-feature { stroke: #22c55e; }
1583
- .branch-line-release { stroke: #eab308; }
1584
- .branch-line-hotfix { stroke: #ec4899; }
1585
-
1586
- /* Diagram legend */
1587
- .diagram-legend {
1588
- display: flex;
1589
- flex-wrap: wrap;
1590
- gap: 1.5rem;
1591
- justify-content: center;
1592
- margin-top: 1.5rem;
1593
- padding-top: 1.5rem;
1594
- border-top: 1px solid var(--border);
1595
- }
1596
-
1597
- .legend-item {
1598
- display: flex;
1599
- align-items: center;
1600
- gap: 0.5rem;
1601
- font-size: 0.875rem;
1602
- color: var(--text-muted);
1603
- }
1604
-
1605
- .legend-color {
1606
- width: 16px;
1607
- height: 16px;
1608
- border-radius: 50%;
1609
- }
1610
-
1611
- .legend-color.main { background: #ef4444; }
1612
- .legend-color.develop { background: #f97316; }
1613
- .legend-color.feature { background: #22c55e; }
1614
- .legend-color.release { background: #eab308; }
1615
- .legend-color.hotfix { background: #ec4899; }
1616
-
1617
- /* EF Core structure diagram */
1618
- .efcore-structure {
1619
- display: flex;
1620
- flex-direction: column;
1621
- gap: 1rem;
1622
- }
1623
-
1624
- /* Interactive diagram hover */
1625
- .svg-diagram svg g[data-tooltip]:hover {
1626
- cursor: pointer;
1627
- filter: brightness(1.2);
1628
- }
1629
-
1630
- /* Tooltip for SVG */
1631
- .svg-tooltip {
1632
- position: absolute;
1633
- background: var(--bg-dark);
1634
- border: 1px solid var(--border);
1635
- padding: 0.5rem 0.75rem;
1636
- border-radius: 6px;
1637
- font-size: 0.8rem;
1638
- color: var(--text);
1639
- pointer-events: none;
1640
- z-index: 1000;
1641
- max-width: 250px;
1642
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
1643
- }
1644
-
1645
- /* Responsive adjustments for diagrams */
1646
- @media (max-width: 768px) {
1647
- .svg-diagram {
1648
- padding: 1rem;
1649
- }
1650
-
1651
- .diagram-legend {
1652
- gap: 1rem;
1653
- }
1654
-
1655
- .legend-item {
1656
- font-size: 0.75rem;
1657
- }
1658
- }
1659
-
1660
- /* ============================================
1661
- INTERACTIVE DIAGRAM TOOLTIP
1662
- ============================================ */
1663
-
1664
- .svg-diagram {
1665
- position: relative;
1666
- flex-direction: column;
1667
- align-items: center;
1668
- }
1669
-
1670
- .diagram-hint {
1671
- text-align: center;
1672
- font-size: 0.85rem;
1673
- color: var(--text-muted);
1674
- margin-top: 1rem;
1675
- padding: 0.5rem 1rem;
1676
- background: rgba(99, 102, 241, 0.1);
1677
- border-radius: 6px;
1678
- border: 1px dashed var(--primary);
1679
- }
1680
-
1681
- /* Clickable SVG elements */
1682
- .clickable-element {
1683
- cursor: pointer;
1684
- transition: filter 0.2s ease, opacity 0.2s ease;
1685
- }
1686
-
1687
- .clickable-element:hover {
1688
- filter: url(#highlight) brightness(1.15);
1689
- }
1690
-
1691
- .clickable-element.active {
1692
- filter: url(#highlight) brightness(1.25);
1693
- }
1694
-
1695
- .clickable-element .hit-area {
1696
- pointer-events: all;
1697
- }
1698
-
1699
- /* Diagram tooltip */
1700
- .diagram-tooltip {
1701
- position: absolute;
1702
- background: var(--bg-dark);
1703
- border: 1px solid var(--primary);
1704
- border-radius: 10px;
1705
- padding: 1rem 1.25rem;
1706
- max-width: 350px;
1707
- min-width: 250px;
1708
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(99, 102, 241, 0.2);
1709
- z-index: 1000;
1710
- opacity: 0;
1711
- visibility: hidden;
1712
- transform: translateY(10px);
1713
- transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
1714
- pointer-events: none;
1715
- }
1716
-
1717
- .diagram-tooltip.visible {
1718
- opacity: 1;
1719
- visibility: visible;
1720
- transform: translateY(0);
1721
- pointer-events: auto;
1722
- }
1723
-
1724
- .diagram-tooltip .tooltip-title {
1725
- font-weight: 600;
1726
- font-size: 0.95rem;
1727
- color: var(--primary-light);
1728
- margin-bottom: 0.5rem;
1729
- padding-bottom: 0.5rem;
1730
- border-bottom: 1px solid var(--border);
1731
- }
1732
-
1733
- .diagram-tooltip .tooltip-desc {
1734
- font-size: 0.85rem;
1735
- color: var(--text);
1736
- line-height: 1.6;
1737
- }
1738
-
1739
- .diagram-tooltip .tooltip-cmd {
1740
- display: inline-block;
1741
- background: var(--bg-code);
1742
- color: var(--secondary);
1743
- padding: 0.15rem 0.4rem;
1744
- border-radius: 4px;
1745
- font-family: 'Fira Code', 'Cascadia Code', monospace;
1746
- font-size: 0.8rem;
1747
- margin-top: 0.5rem;
1748
- }
1749
-
1750
- /* Close hint for tooltip */
1751
- .diagram-tooltip::after {
1752
- content: 'Cliquez ailleurs pour fermer';
1753
- display: block;
1754
- font-size: 0.7rem;
1755
- color: var(--text-muted);
1756
- text-align: center;
1757
- margin-top: 0.75rem;
1758
- padding-top: 0.5rem;
1759
- border-top: 1px solid var(--border);
1760
- }
1761
-
1762
- body.lang-en .diagram-tooltip::after {
1763
- content: 'Click outside to close';
1764
- }
1765
-
1766
- /* Responsive tooltip */
1767
- @media (max-width: 768px) {
1768
- .diagram-tooltip {
1769
- max-width: 280px;
1770
- min-width: 200px;
1771
- padding: 0.875rem 1rem;
1772
- }
1773
-
1774
- .diagram-tooltip .tooltip-title {
1775
- font-size: 0.9rem;
1776
- }
1777
-
1778
- .diagram-tooltip .tooltip-desc {
1779
- font-size: 0.8rem;
1780
- }
1781
- }
1782
-
1783
- /* ============================================
1784
- WORKFLOW STEPPER (Visual Steps)
1785
- ============================================ */
1786
-
1787
- .workflow-stepper {
1788
- display: flex;
1789
- flex-wrap: wrap;
1790
- gap: 0.5rem;
1791
- margin: 1.5rem 0;
1792
- padding: 1.25rem;
1793
- background: var(--bg-card);
1794
- border: 1px solid var(--border);
1795
- border-radius: 12px;
1796
- }
1797
-
1798
- .workflow-stepper-item {
1799
- display: flex;
1800
- align-items: center;
1801
- gap: 0.5rem;
1802
- }
1803
-
1804
- .step-number {
1805
- width: 28px;
1806
- height: 28px;
1807
- background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
1808
- border-radius: 50%;
1809
- display: flex;
1810
- align-items: center;
1811
- justify-content: center;
1812
- font-weight: 700;
1813
- font-size: 0.75rem;
1814
- color: white;
1815
- flex-shrink: 0;
1816
- box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
1817
- }
1818
-
1819
- .step-label {
1820
- font-size: 0.85rem;
1821
- font-weight: 500;
1822
- color: var(--text);
1823
- white-space: nowrap;
1824
- }
1825
-
1826
- .step-arrow {
1827
- color: var(--text-muted);
1828
- font-size: 1rem;
1829
- margin: 0 0.25rem;
1830
- opacity: 0.5;
1831
- }
1832
-
1833
- /* Workflow Stepper Vertical (for longer workflows) */
1834
- .workflow-stepper-vertical {
1835
- display: grid;
1836
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1837
- gap: 0.75rem;
1838
- margin: 1.5rem 0;
1839
- padding: 1rem;
1840
- background: var(--bg-card);
1841
- border: 1px solid var(--border);
1842
- border-radius: 12px;
1843
- }
1844
-
1845
- .workflow-stepper-vertical .step-item {
1846
- display: flex;
1847
- align-items: center;
1848
- gap: 0.75rem;
1849
- padding: 0.75rem;
1850
- background: var(--bg-dark);
1851
- border-radius: 8px;
1852
- border: 1px solid var(--border);
1853
- transition: all var(--transition-fast);
1854
- }
1855
-
1856
- .workflow-stepper-vertical .step-item:hover {
1857
- border-color: var(--primary);
1858
- transform: translateY(-1px);
1859
- box-shadow: 0 4px 12px rgba(99, 102, 241, 0.15);
1860
- }
1861
-
1862
- .workflow-stepper-vertical .step-number {
1863
- width: 32px;
1864
- height: 32px;
1865
- font-size: 0.85rem;
1866
- }
1867
-
1868
- .workflow-stepper-vertical .step-content {
1869
- flex: 1;
1870
- min-width: 0;
1871
- }
1872
-
1873
- .workflow-stepper-vertical .step-title {
1874
- font-weight: 600;
1875
- font-size: 0.85rem;
1876
- color: var(--text-bright);
1877
- margin-bottom: 0.15rem;
1878
- }
1879
-
1880
- .workflow-stepper-vertical .step-desc {
1881
- font-size: 0.75rem;
1882
- color: var(--text-muted);
1883
- white-space: nowrap;
1884
- overflow: hidden;
1885
- text-overflow: ellipsis;
1886
- }
1887
-
1888
- /* Workflow Colors by type */
1889
- .step-number.step-validate { background: linear-gradient(135deg, var(--info) 0%, #1d4ed8 100%); }
1890
- .step-number.step-analyze { background: linear-gradient(135deg, var(--accent) 0%, #0891b2 100%); }
1891
- .step-number.step-detect { background: linear-gradient(135deg, var(--success) 0%, #15803d 100%); }
1892
- .step-number.step-search { background: linear-gradient(135deg, var(--warning) 0%, #ca8a04 100%); }
1893
- .step-number.step-decision { background: linear-gradient(135deg, var(--secondary) 0%, #c2410c 100%); }
1894
- .step-number.step-input { background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%); }
1895
- .step-number.step-generate { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); }
1896
- .step-number.step-create { background: linear-gradient(135deg, var(--success) 0%, #15803d 100%); }
1897
- .step-number.step-confirm { background: linear-gradient(135deg, var(--accent) 0%, #0891b2 100%); }
1898
-
1899
- /* Responsive */
1900
- @media (max-width: 768px) {
1901
- .workflow-stepper {
1902
- flex-direction: column;
1903
- gap: 0.75rem;
1904
- }
1905
-
1906
- .workflow-stepper-item {
1907
- width: 100%;
1908
- }
1909
-
1910
- .step-arrow {
1911
- display: none;
1912
- }
1913
-
1914
- .workflow-stepper-vertical {
1915
- grid-template-columns: 1fr;
1916
- }
1917
- }
1918
-
1919
- /* ============================================
1920
- TEMPLATE SECTIONS (Collapsible)
1921
- ============================================ */
1922
-
1923
- .template-section {
1924
- margin-top: 1.5rem;
1925
- border: 1px solid var(--border);
1926
- border-radius: 8px;
1927
- background: var(--bg-dark);
1928
- overflow: hidden;
1929
- }
1930
-
1931
- .template-section summary {
1932
- display: flex;
1933
- align-items: center;
1934
- gap: 0.75rem;
1935
- padding: 1rem 1.25rem;
1936
- cursor: pointer;
1937
- background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(249, 115, 22, 0.1) 100%);
1938
- border-bottom: 1px solid transparent;
1939
- transition: all var(--transition-fast);
1940
- }
1941
-
1942
- .template-section summary:hover {
1943
- background: linear-gradient(135deg, rgba(99, 102, 241, 0.15) 0%, rgba(249, 115, 22, 0.15) 100%);
1944
- }
1945
-
1946
- .template-section[open] summary {
1947
- border-bottom-color: var(--border);
1948
- }
1949
-
1950
- .template-section summary::marker,
1951
- .template-section summary::-webkit-details-marker {
1952
- display: none;
1953
- }
1954
-
1955
- .template-section summary::before {
1956
- content: '\25B6';
1957
- font-size: 0.7rem;
1958
- color: var(--primary);
1959
- transition: transform var(--transition-fast);
1960
- }
1961
-
1962
- .template-section[open] summary::before {
1963
- transform: rotate(90deg);
1964
- }
1965
-
1966
- .template-section summary h4 {
1967
- font-size: 0.95rem;
1968
- color: var(--text-bright);
1969
- font-weight: 600;
1970
- }
1971
-
1972
- .template-badge {
1973
- background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
1974
- color: white;
1975
- padding: 0.2rem 0.6rem;
1976
- border-radius: 4px;
1977
- font-size: 0.75rem;
1978
- font-family: 'JetBrains Mono', 'Fira Code', monospace;
1979
- font-weight: 500;
1980
- }
1981
-
1982
- .template-content {
1983
- padding: 1rem 1.25rem;
1984
- }
1985
-
1986
- .template-path {
1987
- margin-bottom: 1rem;
1988
- font-size: 0.85rem;
1989
- color: var(--text-muted);
1990
- }
1991
-
1992
- .template-path code {
1993
- background: var(--bg-hover);
1994
- padding: 0.25rem 0.5rem;
1995
- border-radius: 4px;
1996
- font-size: 0.8rem;
1997
- }
1998
-
1999
- .template-code {
2000
- max-height: 500px;
2001
- overflow-y: auto;
2002
- }
2003
-
2004
- .template-code pre {
2005
- font-size: 0.8rem !important;
2006
- line-height: 1.5 !important;
2007
- }
2008
-
2009
- .template-code code {
2010
- white-space: pre-wrap;
2011
- word-break: break-word;
2012
- }
2013
-
2014
- /* ============================================
2015
- COPYABLE COMMAND BLOCKS
2016
- ============================================ */
2017
-
2018
- .cmd-copy {
2019
- display: inline-flex;
2020
- align-items: center;
2021
- gap: 0.5rem;
2022
- background: var(--bg-code);
2023
- border: 1px solid var(--border);
2024
- border-radius: 6px;
2025
- padding: 0.5rem 0.75rem;
2026
- margin: 0.25rem 0;
2027
- font-family: 'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace;
2028
- font-size: 0.875rem;
2029
- color: var(--secondary);
2030
- cursor: pointer;
2031
- transition: all var(--transition-fast);
2032
- position: relative;
2033
- }
2034
-
2035
- .cmd-copy:hover {
2036
- border-color: var(--primary);
2037
- background: var(--bg-hover);
2038
- }
2039
-
2040
- .cmd-copy::after {
2041
- content: '📋';
2042
- font-size: 0.75rem;
2043
- opacity: 0;
2044
- transition: opacity var(--transition-fast);
2045
- margin-left: 0.5rem;
2046
- }
2047
-
2048
- .cmd-copy:hover::after {
2049
- opacity: 0.7;
2050
- }
2051
-
2052
- .cmd-copy.copied {
2053
- border-color: var(--success);
2054
- background: rgba(34, 197, 94, 0.1);
2055
- }
2056
-
2057
- .cmd-copy.copied::after {
2058
- content: '✓';
2059
- opacity: 1;
2060
- color: var(--success);
2061
- }
2062
-
2063
- /* Block variant for standalone commands */
2064
- .cmd-copy-block {
2065
- display: flex;
2066
- align-items: center;
2067
- justify-content: space-between;
2068
- background: var(--bg-code);
2069
- border: 1px solid var(--border);
2070
- border-radius: 8px;
2071
- padding: 0.75rem 1rem;
2072
- margin: 0.75rem 0;
2073
- font-family: 'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace;
2074
- font-size: 0.9rem;
2075
- color: var(--secondary);
2076
- cursor: pointer;
2077
- transition: all var(--transition-fast);
2078
- }
2079
-
2080
- .cmd-copy-block:hover {
2081
- border-color: var(--primary);
2082
- background: var(--bg-hover);
2083
- box-shadow: 0 2px 8px rgba(99, 102, 241, 0.15);
2084
- }
2085
-
2086
- .cmd-copy-block .cmd-text {
2087
- flex: 1;
2088
- user-select: all;
2089
- }
2090
-
2091
- .cmd-copy-block .cmd-copy-btn {
2092
- background: var(--bg-card);
2093
- border: 1px solid var(--border);
2094
- color: var(--text-muted);
2095
- padding: 0.35rem 0.75rem;
2096
- border-radius: 4px;
2097
- font-size: 0.75rem;
2098
- cursor: pointer;
2099
- transition: all var(--transition-fast);
2100
- white-space: nowrap;
2101
- margin-left: 1rem;
2102
- }
2103
-
2104
- .cmd-copy-block .cmd-copy-btn:hover {
2105
- background: var(--primary);
2106
- color: white;
2107
- border-color: var(--primary);
2108
- }
2109
-
2110
- .cmd-copy-block.copied {
2111
- border-color: var(--success);
2112
- }
2113
-
2114
- .cmd-copy-block.copied .cmd-copy-btn {
2115
- background: var(--success);
2116
- color: white;
2117
- border-color: var(--success);
2118
- }
2119
-
2120
- /* Table cell variant */
2121
- td .cmd-copy {
2122
- display: flex;
2123
- margin: 0;
2124
- }
2125
-
2126
- /* Step content variant */
2127
- .step-content .cmd-copy-block {
2128
- margin-top: 0.5rem;
2129
- }
2130
-
2131
- /* ============================================
2132
- FILE LINKS (clickable file paths)
2133
- ============================================ */
2134
-
2135
- .file-link {
2136
- color: var(--accent);
2137
- text-decoration: none;
2138
- transition: all var(--transition-fast);
2139
- border-bottom: 1px dotted var(--accent);
2140
- }
2141
-
2142
- .file-link:hover {
2143
- color: var(--primary-light);
2144
- border-bottom-color: var(--primary-light);
2145
- text-decoration: none;
2146
- }
2147
-
2148
- .file-link code {
2149
- color: inherit;
2150
- background: transparent;
2151
- }
2152
-
2153
- /* File links in code blocks */
2154
- pre .file-link {
2155
- border-bottom: none;
2156
- }
2157
-
2158
- pre .file-link:hover {
2159
- text-decoration: underline;
2160
- }
2161
-
2162
- /* ============================================
2163
- HOME PAGE - HERO & ECOSYSTEM
2164
- ============================================ */
2165
-
2166
- .hero-section {
2167
- margin-bottom: 2.5rem;
2168
- padding: 2rem 0;
2169
- }
2170
-
2171
- .hero-tagline {
2172
- font-size: 1.5rem;
2173
- font-weight: 700;
2174
- color: var(--text-bright);
2175
- margin-bottom: 0.75rem;
2176
- line-height: 1.3;
2177
- }
2178
-
2179
- .hero-tagline .highlight {
2180
- background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
2181
- -webkit-background-clip: text;
2182
- -webkit-text-fill-color: transparent;
2183
- background-clip: text;
2184
- }
2185
-
2186
- .hero-description {
2187
- font-size: 1.05rem;
2188
- color: var(--text-muted);
2189
- line-height: 1.7;
2190
- max-width: 720px;
2191
- margin-bottom: 0;
2192
- }
2193
-
2194
- /* Ecosystem diagram */
2195
- .ecosystem-grid {
2196
- display: grid;
2197
- grid-template-columns: repeat(3, 1fr);
2198
- gap: 1rem;
2199
- margin: 2rem 0;
2200
- }
2201
-
2202
- .ecosystem-card {
2203
- background: var(--bg-card);
2204
- border: 1px solid var(--border);
2205
- border-radius: 10px;
2206
- padding: 1.25rem;
2207
- text-align: center;
2208
- transition: all var(--transition-fast);
2209
- position: relative;
2210
- }
2211
-
2212
- .ecosystem-card:hover {
2213
- border-color: var(--primary);
2214
- transform: translateY(-2px);
2215
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
2216
- }
2217
-
2218
- .ecosystem-card .eco-icon {
2219
- width: 48px;
2220
- height: 48px;
2221
- border-radius: 12px;
2222
- display: flex;
2223
- align-items: center;
2224
- justify-content: center;
2225
- font-size: 1.5rem;
2226
- margin: 0 auto 0.75rem;
2227
- }
2228
-
2229
- .ecosystem-card .eco-icon.eco-app {
2230
- background: linear-gradient(135deg, #ef4444 0%, #f97316 100%);
2231
- }
2232
-
2233
- .ecosystem-card .eco-icon.eco-cli {
2234
- background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
2235
- }
2236
-
2237
- .ecosystem-card .eco-icon.eco-mcp {
2238
- background: linear-gradient(135deg, var(--success) 0%, #0d9488 100%);
2239
- }
2240
-
2241
- .ecosystem-card .eco-name {
2242
- font-size: 0.95rem;
2243
- font-weight: 600;
2244
- color: var(--text-bright);
2245
- margin-bottom: 0.25rem;
2246
- }
2247
-
2248
- .ecosystem-card .eco-role {
2249
- font-size: 0.8rem;
2250
- color: var(--text-muted);
2251
- line-height: 1.5;
2252
- }
2253
-
2254
- /* Ecosystem connectors (arrows between cards) */
2255
- .ecosystem-connector {
2256
- display: flex;
2257
- align-items: center;
2258
- justify-content: center;
2259
- gap: 2rem;
2260
- margin: -0.5rem 0;
2261
- color: var(--text-muted);
2262
- font-size: 0.75rem;
2263
- }
2264
-
2265
- .ecosystem-connector .arrow {
2266
- color: var(--primary-light);
2267
- font-size: 1.25rem;
2268
- }
2269
-
2270
- /* Stats bar */
2271
- .stats-bar {
2272
- display: grid;
2273
- grid-template-columns: repeat(4, 1fr);
2274
- gap: 1rem;
2275
- margin: 1.5rem 0 2rem;
2276
- }
2277
-
2278
- .stat-item {
2279
- background: var(--bg-card);
2280
- border: 1px solid var(--border);
2281
- border-radius: 10px;
2282
- padding: 1.25rem 1rem;
2283
- text-align: center;
2284
- transition: all var(--transition-fast);
2285
- }
2286
-
2287
- .stat-item:hover {
2288
- border-color: var(--primary);
2289
- }
2290
-
2291
- .stat-number {
2292
- font-size: 1.75rem;
2293
- font-weight: 700;
2294
- background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
2295
- -webkit-background-clip: text;
2296
- -webkit-text-fill-color: transparent;
2297
- background-clip: text;
2298
- line-height: 1.2;
2299
- margin-bottom: 0.25rem;
2300
- }
2301
-
2302
- .stat-label {
2303
- font-size: 0.8rem;
2304
- color: var(--text-muted);
2305
- font-weight: 500;
2306
- }
2307
-
2308
- @media (max-width: 768px) {
2309
- .ecosystem-grid {
2310
- grid-template-columns: 1fr;
2311
- }
2312
-
2313
- .stats-bar {
2314
- grid-template-columns: repeat(2, 1fr);
2315
- }
2316
-
2317
- .hero-tagline {
2318
- font-size: 1.25rem;
2319
- }
2320
- }
1
+ /* ============================================
2
+ CLAUDE TOOLS DOCUMENTATION - STYLES
3
+ ============================================ */
4
+
5
+ :root {
6
+ /* Colors */
7
+ --primary: #6366f1;
8
+ --primary-dark: #4f46e5;
9
+ --primary-light: #818cf8;
10
+ --secondary: #f97316;
11
+ --accent: #06b6d4;
12
+
13
+ --bg-dark: #0f172a;
14
+ --bg-card: #1e293b;
15
+ --bg-hover: #334155;
16
+ --bg-code: #0d1117;
17
+
18
+ --text: #b8c4d1;
19
+ --text-muted: #8a9bb0;
20
+ --text-bright: #c8d0dc;
21
+
22
+ --border: #334155;
23
+ --border-light: #475569;
24
+
25
+ --success: #22c55e;
26
+ --warning: #eab308;
27
+ --error: #ef4444;
28
+ --info: #3b82f6;
29
+
30
+ /* Sidebar */
31
+ --sidebar-width: 280px;
32
+ --sidebar-collapsed: 60px;
33
+
34
+ /* Transitions */
35
+ --transition-fast: 0.15s ease;
36
+ --transition-normal: 0.3s ease;
37
+ }
38
+
39
+ * {
40
+ margin: 0;
41
+ padding: 0;
42
+ box-sizing: border-box;
43
+ }
44
+
45
+ html {
46
+ scroll-behavior: smooth;
47
+ }
48
+
49
+ body {
50
+ font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
51
+ background: var(--bg-dark);
52
+ color: var(--text);
53
+ line-height: 1.7;
54
+ min-height: 100vh;
55
+ }
56
+
57
+ /* ============================================
58
+ LAYOUT
59
+ ============================================ */
60
+
61
+ .app-container {
62
+ display: flex;
63
+ flex-direction: column;
64
+ min-height: 100vh;
65
+ }
66
+
67
+ /* Unified Global Header */
68
+ .global-header {
69
+ background: var(--bg-card);
70
+ border-bottom: 1px solid var(--border);
71
+ height: 44px;
72
+ display: flex;
73
+ align-items: center;
74
+ padding: 0 1rem;
75
+ gap: 1rem;
76
+ position: sticky;
77
+ top: 0;
78
+ z-index: 1001;
79
+ box-sizing: border-box;
80
+ }
81
+
82
+ .global-header .logo {
83
+ width: 26px;
84
+ height: 26px;
85
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
86
+ border-radius: 5px;
87
+ display: flex;
88
+ align-items: center;
89
+ justify-content: center;
90
+ font-weight: 700;
91
+ font-size: 0.8rem;
92
+ flex-shrink: 0;
93
+ }
94
+
95
+ .global-header .site-title {
96
+ font-size: 0.95rem;
97
+ font-weight: 600;
98
+ white-space: nowrap;
99
+ color: var(--text-bright);
100
+ }
101
+
102
+ .global-header .version-badge {
103
+ background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
104
+ color: white;
105
+ font-size: 0.65rem;
106
+ font-weight: 600;
107
+ padding: 0.2rem 0.5rem;
108
+ border-radius: 4px;
109
+ white-space: nowrap;
110
+ }
111
+
112
+ .global-header .header-divider {
113
+ width: 1px;
114
+ height: 24px;
115
+ background: var(--border);
116
+ margin: 0 0.5rem;
117
+ }
118
+
119
+ .global-header .page-title {
120
+ font-size: 0.95rem;
121
+ font-weight: 600;
122
+ color: var(--text-bright);
123
+ white-space: nowrap;
124
+ }
125
+
126
+ .global-header .breadcrumb {
127
+ display: flex;
128
+ align-items: center;
129
+ gap: 0.35rem;
130
+ font-size: 0.75rem;
131
+ color: var(--text-muted);
132
+ }
133
+
134
+ .global-header .breadcrumb a {
135
+ color: var(--text-muted);
136
+ text-decoration: none;
137
+ transition: color var(--transition-fast);
138
+ }
139
+
140
+ .global-header .breadcrumb a:hover {
141
+ color: var(--primary-light);
142
+ }
143
+
144
+ .global-header .breadcrumb-separator {
145
+ color: var(--border-light);
146
+ font-size: 0.65rem;
147
+ }
148
+
149
+ .global-header .breadcrumb-current {
150
+ color: var(--primary-light);
151
+ }
152
+
153
+ .global-header .lang-select {
154
+ background: var(--bg-dark);
155
+ color: var(--text);
156
+ border: 1px solid var(--border);
157
+ border-radius: 6px;
158
+ padding: 0.35rem 0.75rem;
159
+ font-size: 0.8rem;
160
+ font-weight: 500;
161
+ cursor: pointer;
162
+ outline: none;
163
+ transition: all var(--transition-fast);
164
+ margin-left: 1rem;
165
+ }
166
+
167
+ .global-header .lang-select:hover {
168
+ border-color: var(--primary);
169
+ }
170
+
171
+ .global-header .lang-select:focus {
172
+ border-color: var(--primary);
173
+ box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
174
+ }
175
+
176
+ .global-header .lang-select option {
177
+ background: var(--bg-dark);
178
+ color: var(--text);
179
+ padding: 0.5rem;
180
+ }
181
+
182
+ /* Header Search */
183
+ .header-search {
184
+ position: relative;
185
+ margin-left: auto;
186
+ margin-right: 1rem;
187
+ }
188
+
189
+ .search-input-wrapper {
190
+ display: flex;
191
+ align-items: center;
192
+ background: var(--bg-dark);
193
+ border: 1px solid var(--border);
194
+ border-radius: 6px;
195
+ padding: 0 0.5rem;
196
+ transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
197
+ }
198
+
199
+ .search-input-wrapper:focus-within {
200
+ border-color: var(--primary);
201
+ box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
202
+ }
203
+
204
+ .search-icon {
205
+ color: var(--text-muted);
206
+ font-size: 0.9rem;
207
+ margin-right: 0.5rem;
208
+ }
209
+
210
+ .search-input {
211
+ background: transparent;
212
+ border: none;
213
+ color: var(--text);
214
+ font-size: 0.85rem;
215
+ padding: 0.4rem 0;
216
+ width: 180px;
217
+ outline: none;
218
+ }
219
+
220
+ .search-input::placeholder {
221
+ color: var(--text-muted);
222
+ }
223
+
224
+ .search-shortcut {
225
+ background: var(--bg-hover);
226
+ color: var(--text-muted);
227
+ font-size: 0.65rem;
228
+ font-weight: 600;
229
+ padding: 0.15rem 0.4rem;
230
+ border-radius: 4px;
231
+ margin-left: 0.5rem;
232
+ white-space: nowrap;
233
+ }
234
+
235
+ /* Search Results Dropdown */
236
+ .search-results {
237
+ position: absolute;
238
+ top: calc(100% + 8px);
239
+ left: 0;
240
+ right: 0;
241
+ min-width: 320px;
242
+ max-height: 400px;
243
+ overflow-y: auto;
244
+ background: var(--bg-dark);
245
+ border: 1px solid var(--border);
246
+ border-radius: 8px;
247
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
248
+ z-index: 1002;
249
+ display: none;
250
+ }
251
+
252
+ .search-results.visible {
253
+ display: block;
254
+ }
255
+
256
+ .search-results-empty {
257
+ padding: 1.5rem;
258
+ text-align: center;
259
+ color: var(--text-muted);
260
+ font-size: 0.85rem;
261
+ }
262
+
263
+ .search-result-item {
264
+ display: flex;
265
+ align-items: flex-start;
266
+ gap: 0.75rem;
267
+ padding: 0.75rem 1rem;
268
+ text-decoration: none;
269
+ color: var(--text);
270
+ transition: background var(--transition-fast);
271
+ border-bottom: 1px solid var(--border);
272
+ }
273
+
274
+ .search-result-item:last-child {
275
+ border-bottom: none;
276
+ }
277
+
278
+ .search-result-item:hover,
279
+ .search-result-item.active {
280
+ background: var(--bg-hover);
281
+ }
282
+
283
+ .search-result-icon {
284
+ width: 28px;
285
+ height: 28px;
286
+ background: var(--bg-card);
287
+ border-radius: 6px;
288
+ display: flex;
289
+ align-items: center;
290
+ justify-content: center;
291
+ font-size: 0.9rem;
292
+ flex-shrink: 0;
293
+ }
294
+
295
+ .search-result-content {
296
+ flex: 1;
297
+ min-width: 0;
298
+ }
299
+
300
+ .search-result-title {
301
+ font-weight: 500;
302
+ font-size: 0.9rem;
303
+ color: var(--text-bright);
304
+ margin-bottom: 0.15rem;
305
+ }
306
+
307
+ .search-result-title mark {
308
+ background: rgba(99, 102, 241, 0.3);
309
+ color: var(--primary-light);
310
+ padding: 0 0.15rem;
311
+ border-radius: 2px;
312
+ }
313
+
314
+ .search-result-path {
315
+ font-size: 0.75rem;
316
+ color: var(--text-muted);
317
+ white-space: nowrap;
318
+ overflow: hidden;
319
+ text-overflow: ellipsis;
320
+ }
321
+
322
+ .search-result-section {
323
+ font-weight: 400;
324
+ color: var(--text-muted);
325
+ font-size: 0.85rem;
326
+ }
327
+
328
+ .search-result-section mark {
329
+ background: rgba(99, 102, 241, 0.2);
330
+ color: var(--primary-light);
331
+ }
332
+
333
+ .search-result-excerpt {
334
+ font-size: 0.8rem;
335
+ color: var(--text);
336
+ line-height: 1.4;
337
+ margin: 0.35rem 0;
338
+ display: -webkit-box;
339
+ -webkit-line-clamp: 2;
340
+ -webkit-box-orient: vertical;
341
+ overflow: hidden;
342
+ }
343
+
344
+ .search-result-excerpt mark {
345
+ background: rgba(245, 158, 11, 0.3);
346
+ color: var(--accent);
347
+ padding: 0 0.1rem;
348
+ border-radius: 2px;
349
+ }
350
+
351
+ /* Search results scrollbar */
352
+ .search-results::-webkit-scrollbar {
353
+ width: 6px;
354
+ }
355
+
356
+ .search-results::-webkit-scrollbar-track {
357
+ background: var(--bg-dark);
358
+ }
359
+
360
+ .search-results::-webkit-scrollbar-thumb {
361
+ background: var(--border);
362
+ border-radius: 3px;
363
+ }
364
+
365
+ .search-results::-webkit-scrollbar-thumb:hover {
366
+ background: var(--border-light);
367
+ }
368
+
369
+ /* Responsive search */
370
+ @media (max-width: 1024px) {
371
+ .header-search {
372
+ display: none;
373
+ }
374
+ }
375
+
376
+ @media (max-width: 768px) {
377
+ .header-search {
378
+ display: none;
379
+ }
380
+ }
381
+
382
+ /* App Body - contains sidebar and main content */
383
+ .app-body {
384
+ display: flex;
385
+ flex: 1;
386
+ }
387
+
388
+ /* Sidebar */
389
+ .sidebar {
390
+ width: var(--sidebar-width);
391
+ background: var(--bg-card);
392
+ position: fixed;
393
+ top: 44px; /* Below global header */
394
+ left: 0;
395
+ height: calc(100vh - 44px);
396
+ overflow-y: auto;
397
+ transition: width var(--transition-normal), transform var(--transition-normal);
398
+ z-index: 1000;
399
+ display: flex;
400
+ flex-direction: column;
401
+ /* Hide scrollbar but keep functionality */
402
+ scrollbar-width: none; /* Firefox */
403
+ -ms-overflow-style: none; /* IE/Edge */
404
+ }
405
+
406
+ .sidebar::-webkit-scrollbar {
407
+ display: none; /* Chrome/Safari/Opera */
408
+ }
409
+
410
+ .sidebar.collapsed {
411
+ width: var(--sidebar-collapsed);
412
+ }
413
+
414
+ .sidebar.collapsed .nav-text,
415
+ .sidebar.collapsed .sidebar-header h2,
416
+ .sidebar.collapsed .sidebar-footer,
417
+ .sidebar.collapsed .nav-section-title {
418
+ opacity: 0;
419
+ visibility: hidden;
420
+ }
421
+
422
+ /* Legacy sidebar-header styles removed - now using global-header */
423
+
424
+ /* Sidebar toggle button - fixed position, always visible */
425
+ .sidebar-toggle {
426
+ position: fixed;
427
+ top: calc(50% + 22px); /* Centered in sidebar area (below 44px header) */
428
+ left: calc(var(--sidebar-width) - 1px);
429
+ transform: translateY(-50%);
430
+ width: 20px;
431
+ height: 56px;
432
+ background: var(--bg-card);
433
+ border: 1px solid var(--border);
434
+ border-left: none;
435
+ border-radius: 0 8px 8px 0;
436
+ cursor: pointer;
437
+ display: flex;
438
+ align-items: center;
439
+ justify-content: center;
440
+ color: var(--text-muted);
441
+ font-size: 0.75rem;
442
+ transition: left var(--transition-normal), background var(--transition-fast), color var(--transition-fast);
443
+ z-index: 1001;
444
+ padding: 0;
445
+ }
446
+
447
+ .sidebar-toggle:hover {
448
+ background: var(--primary);
449
+ color: white;
450
+ border-color: var(--primary);
451
+ }
452
+
453
+ /* Move toggle when sidebar is collapsed - use descendant selector since button is inside sidebar */
454
+ .sidebar.collapsed .sidebar-toggle {
455
+ left: calc(var(--sidebar-collapsed) - 1px);
456
+ }
457
+
458
+ /* Toggle icon states */
459
+ .sidebar-toggle .toggle-icon-collapse,
460
+ .sidebar-toggle .toggle-icon-expand {
461
+ display: flex;
462
+ align-items: center;
463
+ justify-content: center;
464
+ }
465
+
466
+ .sidebar-toggle .toggle-icon-expand {
467
+ display: none;
468
+ }
469
+
470
+ .sidebar.collapsed .sidebar-toggle .toggle-icon-collapse {
471
+ display: none;
472
+ }
473
+
474
+ .sidebar.collapsed .sidebar-toggle .toggle-icon-expand {
475
+ display: flex;
476
+ }
477
+
478
+ /* Navigation */
479
+ .sidebar-nav {
480
+ flex: 1;
481
+ padding: 0.5rem 0 1rem 0;
482
+ overflow-y: auto;
483
+ /* Hide scrollbar but keep functionality */
484
+ scrollbar-width: none;
485
+ -ms-overflow-style: none;
486
+ }
487
+
488
+ .sidebar-nav::-webkit-scrollbar {
489
+ display: none;
490
+ }
491
+
492
+ .nav-section {
493
+ margin-bottom: 1.5rem;
494
+ }
495
+
496
+ .nav-section-title {
497
+ padding: 0.5rem 1.5rem;
498
+ font-size: 0.7rem;
499
+ font-weight: 600;
500
+ text-transform: uppercase;
501
+ letter-spacing: 0.1em;
502
+ color: var(--text-muted);
503
+ transition: opacity var(--transition-fast);
504
+ }
505
+
506
+ .nav-item {
507
+ display: flex;
508
+ align-items: center;
509
+ gap: 0.75rem;
510
+ padding: 0.625rem 1.5rem;
511
+ color: var(--text-muted);
512
+ text-decoration: none;
513
+ transition: all var(--transition-fast);
514
+ border-left: 3px solid transparent;
515
+ }
516
+
517
+ .nav-item:hover {
518
+ background: var(--bg-hover);
519
+ color: var(--text);
520
+ }
521
+
522
+ .nav-item.active {
523
+ background: rgba(99, 102, 241, 0.1);
524
+ color: var(--primary-light);
525
+ border-left-color: var(--primary);
526
+ }
527
+
528
+ .nav-item .icon {
529
+ width: 20px;
530
+ height: 20px;
531
+ display: flex;
532
+ align-items: center;
533
+ justify-content: center;
534
+ flex-shrink: 0;
535
+ }
536
+
537
+ .nav-text {
538
+ white-space: nowrap;
539
+ transition: opacity var(--transition-fast);
540
+ }
541
+
542
+ /* Sidebar Footer */
543
+ .sidebar-footer {
544
+ padding: 1rem 1.5rem;
545
+ border-top: 1px solid var(--border);
546
+ transition: opacity var(--transition-fast);
547
+ }
548
+
549
+ .lang-switch {
550
+ display: flex;
551
+ background: var(--bg-dark);
552
+ border-radius: 6px;
553
+ padding: 3px;
554
+ }
555
+
556
+ .lang-btn {
557
+ flex: 1;
558
+ padding: 0.375rem 0.75rem;
559
+ border: none;
560
+ background: transparent;
561
+ color: var(--text-muted);
562
+ font-size: 0.8rem;
563
+ font-weight: 500;
564
+ cursor: pointer;
565
+ border-radius: 4px;
566
+ transition: all var(--transition-fast);
567
+ }
568
+
569
+ .lang-btn.active {
570
+ background: var(--primary);
571
+ color: white;
572
+ }
573
+
574
+ /* Main Content */
575
+ .main-content {
576
+ flex: 1;
577
+ margin-left: var(--sidebar-width);
578
+ transition: margin-left var(--transition-normal);
579
+ min-height: 100vh;
580
+ }
581
+
582
+ .sidebar.collapsed ~ .main-content {
583
+ margin-left: var(--sidebar-collapsed);
584
+ }
585
+
586
+ /* Legacy page-header styles removed - now using global-header */
587
+
588
+ /* Content Area */
589
+ .content {
590
+ max-width: none;
591
+ width: 100%;
592
+ padding: 2rem 2.5rem;
593
+ }
594
+
595
+ .content-wide {
596
+ max-width: none;
597
+ }
598
+
599
+ /* ============================================
600
+ TYPOGRAPHY
601
+ ============================================ */
602
+
603
+ h2 {
604
+ font-size: 1.75rem;
605
+ font-weight: 600;
606
+ margin: 2.5rem 0 1rem;
607
+ padding-bottom: 0.5rem;
608
+ border-bottom: 1px solid var(--border);
609
+ color: var(--text-bright);
610
+ }
611
+
612
+ h3 {
613
+ font-size: 1.25rem;
614
+ font-weight: 600;
615
+ margin: 2rem 0 1rem;
616
+ color: var(--primary-light);
617
+ }
618
+
619
+ h4 {
620
+ font-size: 1.1rem;
621
+ font-weight: 600;
622
+ margin: 1.5rem 0 0.75rem;
623
+ color: var(--text);
624
+ }
625
+
626
+ p {
627
+ margin-bottom: 1rem;
628
+ }
629
+
630
+ a {
631
+ color: var(--primary-light);
632
+ text-decoration: none;
633
+ }
634
+
635
+ a:hover {
636
+ text-decoration: underline;
637
+ }
638
+
639
+ /* ============================================
640
+ COMPONENTS
641
+ ============================================ */
642
+
643
+ /* Cards */
644
+ .card-grid {
645
+ display: grid;
646
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
647
+ gap: 1.25rem;
648
+ margin: 1.5rem 0;
649
+ }
650
+
651
+ .card {
652
+ background: var(--bg-card);
653
+ border: 1px solid var(--border);
654
+ border-radius: 12px;
655
+ padding: 1.5rem;
656
+ transition: all var(--transition-fast);
657
+ }
658
+
659
+ .card:hover {
660
+ border-color: var(--primary);
661
+ transform: translateY(-2px);
662
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
663
+ }
664
+
665
+ .card-header {
666
+ display: flex;
667
+ align-items: flex-start;
668
+ gap: 1rem;
669
+ margin-bottom: 1rem;
670
+ }
671
+
672
+ .card-icon {
673
+ width: 44px;
674
+ height: 44px;
675
+ background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
676
+ border-radius: 10px;
677
+ display: flex;
678
+ align-items: center;
679
+ justify-content: center;
680
+ font-size: 1.25rem;
681
+ flex-shrink: 0;
682
+ }
683
+
684
+ .card-title {
685
+ font-size: 1.1rem;
686
+ font-weight: 600;
687
+ margin-bottom: 0.25rem;
688
+ }
689
+
690
+ .card-subtitle {
691
+ font-size: 0.8rem;
692
+ color: var(--text-muted);
693
+ }
694
+
695
+ .card-body p {
696
+ color: var(--text-muted);
697
+ font-size: 0.9rem;
698
+ margin-bottom: 1rem;
699
+ }
700
+
701
+ /* Tags */
702
+ .tag {
703
+ display: inline-flex;
704
+ align-items: center;
705
+ padding: 0.25rem 0.625rem;
706
+ border-radius: 4px;
707
+ font-size: 0.7rem;
708
+ font-weight: 600;
709
+ text-transform: uppercase;
710
+ letter-spacing: 0.05em;
711
+ }
712
+
713
+ .tag-command { background: var(--primary); color: white; }
714
+ .tag-agent { background: var(--secondary); color: white; }
715
+ .tag-workflow { background: var(--success); color: white; }
716
+ .tag-best-practice { background: var(--accent); color: var(--bg-dark); }
717
+ .tag-warning { background: var(--warning); color: var(--bg-dark); }
718
+
719
+ /* Code */
720
+ code {
721
+ background: var(--bg-code);
722
+ padding: 0.2rem 0.5rem;
723
+ border-radius: 4px;
724
+ font-family: 'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace;
725
+ font-size: 0.875em;
726
+ color: var(--text-bright);
727
+ border: 1px solid var(--border);
728
+ }
729
+
730
+ /* Code in tables - minimal style (just monospace, no decoration) */
731
+ table code,
732
+ .table-container code,
733
+ td code {
734
+ background: transparent !important;
735
+ color: inherit !important;
736
+ border: none !important;
737
+ padding: 0 !important;
738
+ box-shadow: none !important;
739
+ }
740
+
741
+ /* Code in alerts - subtle style */
742
+ .alert code,
743
+ .alert-content code {
744
+ background: rgba(0, 0, 0, 0.3);
745
+ border: none;
746
+ color: #e2e8f0;
747
+ padding: 0.15rem 0.4rem;
748
+ }
749
+
750
+ /* Code in paragraphs - lighter style */
751
+ p code {
752
+ background: rgba(30, 41, 59, 0.8);
753
+ border: none;
754
+ color: #93c5fd;
755
+ }
756
+
757
+ pre {
758
+ background: var(--bg-code);
759
+ border: 1px solid var(--border);
760
+ border-radius: 8px;
761
+ padding: 1.25rem;
762
+ overflow-x: auto;
763
+ margin: 1rem 0;
764
+ position: relative;
765
+ }
766
+
767
+ pre code {
768
+ background: none !important;
769
+ padding: 0 !important;
770
+ border: none !important;
771
+ color: var(--text);
772
+ font-size: 0.875rem;
773
+ line-height: 1.6;
774
+ }
775
+
776
+ /* Code block container */
777
+ .code-block pre code {
778
+ background: transparent !important;
779
+ border: none !important;
780
+ padding: 0 !important;
781
+ box-shadow: none !important;
782
+ }
783
+
784
+ /* Code syntax highlighting */
785
+ .code-comment {
786
+ color: #6b7280;
787
+ font-style: italic;
788
+ }
789
+
790
+ .code-cmd {
791
+ color: #22d3ee;
792
+ font-weight: 600;
793
+ }
794
+
795
+ .code-arg {
796
+ color: #a78bfa;
797
+ }
798
+
799
+ .code-string {
800
+ color: #4ade80;
801
+ }
802
+
803
+ .code-flag {
804
+ color: #fbbf24;
805
+ }
806
+
807
+ .code-output {
808
+ color: #64748b;
809
+ font-style: italic;
810
+ }
811
+
812
+ .code-header {
813
+ display: flex;
814
+ justify-content: space-between;
815
+ align-items: center;
816
+ background: var(--bg-hover);
817
+ padding: 0.5rem 1rem;
818
+ border-radius: 8px 8px 0 0;
819
+ margin: 1rem 0 0;
820
+ font-size: 0.8rem;
821
+ color: var(--text-muted);
822
+ }
823
+
824
+ .code-header + pre {
825
+ margin-top: 0;
826
+ border-radius: 0 0 8px 8px;
827
+ }
828
+
829
+ .copy-btn {
830
+ background: var(--bg-card);
831
+ border: 1px solid var(--border);
832
+ color: var(--text-muted);
833
+ padding: 0.25rem 0.5rem;
834
+ border-radius: 4px;
835
+ font-size: 0.75rem;
836
+ cursor: pointer;
837
+ transition: all var(--transition-fast);
838
+ }
839
+
840
+ .copy-btn:hover {
841
+ background: var(--primary);
842
+ color: white;
843
+ border-color: var(--primary);
844
+ }
845
+
846
+ /* Alerts */
847
+ .alert {
848
+ padding: 1rem 1.25rem;
849
+ border-radius: 8px;
850
+ margin: 1.5rem 0;
851
+ border-left: 4px solid;
852
+ display: flex;
853
+ gap: 0.75rem;
854
+ }
855
+
856
+ .alert-icon {
857
+ font-size: 1.25rem;
858
+ flex-shrink: 0;
859
+ }
860
+
861
+ .alert-content h5 {
862
+ font-weight: 600;
863
+ margin-bottom: 0.25rem;
864
+ }
865
+
866
+ .alert-content p {
867
+ margin: 0;
868
+ font-size: 0.9rem;
869
+ }
870
+
871
+ .alert-info {
872
+ background: rgba(59, 130, 246, 0.1);
873
+ border-color: var(--info);
874
+ }
875
+
876
+ .alert-success {
877
+ background: rgba(34, 197, 94, 0.1);
878
+ border-color: var(--success);
879
+ }
880
+
881
+ .alert-warning {
882
+ background: rgba(234, 179, 8, 0.1);
883
+ border-color: var(--warning);
884
+ }
885
+
886
+ .alert-error {
887
+ background: rgba(239, 68, 68, 0.1);
888
+ border-color: var(--error);
889
+ }
890
+
891
+ /* Tables */
892
+ .table-container {
893
+ overflow-x: auto;
894
+ margin: 1.5rem 0;
895
+ border: 1px solid var(--border);
896
+ border-radius: 8px;
897
+ }
898
+
899
+ table {
900
+ width: 100%;
901
+ border-collapse: collapse;
902
+ }
903
+
904
+ th, td {
905
+ padding: 0.875rem 1rem;
906
+ text-align: left;
907
+ border-bottom: 1px solid var(--border);
908
+ }
909
+
910
+ th {
911
+ background: var(--bg-hover);
912
+ font-weight: 600;
913
+ font-size: 0.875rem;
914
+ color: var(--text-muted);
915
+ text-transform: uppercase;
916
+ letter-spacing: 0.05em;
917
+ }
918
+
919
+ tr:last-child td {
920
+ border-bottom: none;
921
+ }
922
+
923
+ tr:hover td {
924
+ background: rgba(99, 102, 241, 0.05);
925
+ }
926
+
927
+ /* Workflow Diagram */
928
+ .workflow-diagram {
929
+ background: var(--bg-card);
930
+ border: 1px solid var(--border);
931
+ border-radius: 12px;
932
+ padding: 2rem;
933
+ margin: 2rem 0;
934
+ overflow-x: auto;
935
+ }
936
+
937
+ .workflow-steps {
938
+ display: flex;
939
+ align-items: center;
940
+ justify-content: center;
941
+ gap: 0.5rem;
942
+ flex-wrap: wrap;
943
+ }
944
+
945
+ .workflow-step {
946
+ background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
947
+ padding: 0.75rem 1.5rem;
948
+ border-radius: 8px;
949
+ font-weight: 600;
950
+ font-size: 0.9rem;
951
+ white-space: nowrap;
952
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
953
+ }
954
+
955
+ .workflow-arrow {
956
+ color: var(--text-muted);
957
+ font-size: 1.5rem;
958
+ padding: 0 0.25rem;
959
+ }
960
+
961
+ /* Best Practice Box */
962
+ .best-practice {
963
+ background: linear-gradient(135deg, rgba(6, 182, 212, 0.1) 0%, rgba(99, 102, 241, 0.1) 100%);
964
+ border: 1px solid var(--accent);
965
+ border-radius: 12px;
966
+ padding: 1.5rem;
967
+ margin: 1.5rem 0;
968
+ }
969
+
970
+ .best-practice-header {
971
+ display: flex;
972
+ align-items: center;
973
+ gap: 0.75rem;
974
+ margin-bottom: 1rem;
975
+ font-weight: 600;
976
+ color: var(--accent);
977
+ }
978
+
979
+ .best-practice ul {
980
+ margin: 0;
981
+ padding-left: 1.5rem;
982
+ }
983
+
984
+ .best-practice li {
985
+ margin-bottom: 0.5rem;
986
+ color: var(--text);
987
+ }
988
+
989
+ /* Steps List */
990
+ .steps-list {
991
+ counter-reset: step;
992
+ list-style: none;
993
+ padding: 0;
994
+ margin: 1.5rem 0;
995
+ }
996
+
997
+ .steps-list li {
998
+ counter-increment: step;
999
+ display: flex;
1000
+ gap: 1rem;
1001
+ margin-bottom: 1.5rem;
1002
+ padding: 1.25rem;
1003
+ background: var(--bg-card);
1004
+ border: 1px solid var(--border);
1005
+ border-radius: 8px;
1006
+ }
1007
+
1008
+ .steps-list li::before {
1009
+ content: counter(step);
1010
+ width: 32px;
1011
+ height: 32px;
1012
+ background: var(--primary);
1013
+ border-radius: 50%;
1014
+ display: flex;
1015
+ align-items: center;
1016
+ justify-content: center;
1017
+ font-weight: 700;
1018
+ flex-shrink: 0;
1019
+ }
1020
+
1021
+ .step-content h5 {
1022
+ font-weight: 600;
1023
+ margin-bottom: 0.5rem;
1024
+ }
1025
+
1026
+ .step-content p {
1027
+ margin: 0;
1028
+ color: var(--text-muted);
1029
+ font-size: 0.9rem;
1030
+ }
1031
+
1032
+ /* Feature Grid */
1033
+ .feature-grid {
1034
+ display: grid;
1035
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
1036
+ gap: 1rem;
1037
+ margin: 1.5rem 0;
1038
+ }
1039
+
1040
+ .feature-item {
1041
+ display: flex;
1042
+ align-items: flex-start;
1043
+ gap: 0.75rem;
1044
+ padding: 1rem;
1045
+ background: var(--bg-card);
1046
+ border-radius: 8px;
1047
+ }
1048
+
1049
+ .feature-icon {
1050
+ width: 24px;
1051
+ height: 24px;
1052
+ color: var(--success);
1053
+ flex-shrink: 0;
1054
+ }
1055
+
1056
+ .feature-text {
1057
+ font-size: 0.9rem;
1058
+ }
1059
+
1060
+ /* ============================================
1061
+ RESPONSIVE
1062
+ ============================================ */
1063
+
1064
+ @media (max-width: 1024px) {
1065
+ .sidebar {
1066
+ transform: translateX(-100%);
1067
+ }
1068
+
1069
+ .sidebar.open {
1070
+ transform: translateX(0);
1071
+ }
1072
+
1073
+ .main-content {
1074
+ margin-left: 0;
1075
+ }
1076
+
1077
+ .mobile-menu-btn {
1078
+ display: flex;
1079
+ }
1080
+
1081
+ /* Global header responsive */
1082
+ .global-header .site-title,
1083
+ .global-header .version-badge,
1084
+ .global-header .header-divider {
1085
+ display: none;
1086
+ }
1087
+ }
1088
+
1089
+ @media (max-width: 768px) {
1090
+ .global-header {
1091
+ padding: 0 0.75rem;
1092
+ gap: 0.5rem;
1093
+ }
1094
+
1095
+ .global-header .page-title {
1096
+ font-size: 0.85rem;
1097
+ }
1098
+
1099
+ .global-header .breadcrumb {
1100
+ display: none;
1101
+ }
1102
+
1103
+ .content {
1104
+ padding: 1.5rem 1rem;
1105
+ }
1106
+
1107
+ .workflow-steps {
1108
+ flex-direction: column;
1109
+ }
1110
+
1111
+ .workflow-arrow {
1112
+ transform: rotate(90deg);
1113
+ }
1114
+
1115
+ .card-grid {
1116
+ grid-template-columns: 1fr;
1117
+ }
1118
+ }
1119
+
1120
+ /* Mobile Menu Button */
1121
+ .mobile-menu-btn {
1122
+ display: none;
1123
+ position: fixed;
1124
+ bottom: 1.5rem;
1125
+ right: 1.5rem;
1126
+ width: 56px;
1127
+ height: 56px;
1128
+ background: var(--primary);
1129
+ border: none;
1130
+ border-radius: 50%;
1131
+ color: white;
1132
+ font-size: 1.5rem;
1133
+ cursor: pointer;
1134
+ z-index: 999;
1135
+ box-shadow: 0 4px 20px rgba(99, 102, 241, 0.4);
1136
+ }
1137
+
1138
+ @media (max-width: 1024px) {
1139
+ .mobile-menu-btn {
1140
+ display: flex;
1141
+ align-items: center;
1142
+ justify-content: center;
1143
+ }
1144
+ }
1145
+
1146
+ /* Overlay */
1147
+ .overlay {
1148
+ display: none;
1149
+ position: fixed;
1150
+ top: 0;
1151
+ left: 0;
1152
+ right: 0;
1153
+ bottom: 0;
1154
+ background: rgba(0, 0, 0, 0.5);
1155
+ z-index: 999;
1156
+ }
1157
+
1158
+ .overlay.active {
1159
+ display: block;
1160
+ }
1161
+
1162
+ /* ============================================
1163
+ ANIMATIONS
1164
+ ============================================ */
1165
+
1166
+ @keyframes fadeIn {
1167
+ from { opacity: 0; transform: translateY(10px); }
1168
+ to { opacity: 1; transform: translateY(0); }
1169
+ }
1170
+
1171
+ .fade-in {
1172
+ animation: fadeIn 0.3s ease forwards;
1173
+ }
1174
+
1175
+ /* Bilingual content - hide inactive language, show active with original display */
1176
+ [data-lang="en"] { display: none !important; }
1177
+
1178
+ body.lang-en [data-lang="en"] { display: revert !important; }
1179
+ body.lang-en [data-lang="fr"] { display: none !important; }
1180
+
1181
+ /* ============================================
1182
+ COMMAND CARDS & PROMPTS
1183
+ ============================================ */
1184
+
1185
+ .command-card {
1186
+ background: var(--bg-card);
1187
+ border: 1px solid var(--border);
1188
+ border-radius: 12px;
1189
+ margin: 1.5rem 0;
1190
+ overflow: hidden;
1191
+ }
1192
+
1193
+ .command-header {
1194
+ display: flex;
1195
+ align-items: center;
1196
+ gap: 1rem;
1197
+ padding: 1rem 1.25rem;
1198
+ background: var(--bg-hover);
1199
+ border-bottom: 1px solid var(--border);
1200
+ }
1201
+
1202
+ .command-name {
1203
+ font-size: 1.1rem;
1204
+ font-weight: 600;
1205
+ color: var(--primary-light);
1206
+ background: var(--bg-code);
1207
+ padding: 0.35rem 0.75rem;
1208
+ }
1209
+
1210
+ .command-body {
1211
+ padding: 1.25rem;
1212
+ }
1213
+
1214
+ .command-body > p {
1215
+ margin-bottom: 1rem;
1216
+ }
1217
+
1218
+ /* Lists in command body */
1219
+ .command-body ul,
1220
+ .command-body ol {
1221
+ margin: 1rem 0;
1222
+ padding-left: 1.75rem;
1223
+ }
1224
+
1225
+ .command-body ul {
1226
+ list-style-type: disc;
1227
+ }
1228
+
1229
+ .command-body ol {
1230
+ list-style-type: decimal;
1231
+ }
1232
+
1233
+ .command-body li {
1234
+ margin-bottom: 0.5rem;
1235
+ color: var(--text);
1236
+ line-height: 1.6;
1237
+ }
1238
+
1239
+ .command-body li::marker {
1240
+ color: var(--primary-light);
1241
+ }
1242
+
1243
+ /* Badges (for command cards) */
1244
+ .badge {
1245
+ display: inline-block;
1246
+ padding: 0.25rem 0.6rem;
1247
+ border-radius: 9999px;
1248
+ font-size: 0.7rem;
1249
+ font-weight: 600;
1250
+ text-transform: uppercase;
1251
+ letter-spacing: 0.03em;
1252
+ }
1253
+
1254
+ /* Workflow colors: WHAT (Blue), HOW (Teal), DOC (Purple) */
1255
+ .badge-blue {
1256
+ background: rgba(59, 130, 246, 0.15);
1257
+ color: #60a5fa;
1258
+ border: 1px solid rgba(59, 130, 246, 0.3);
1259
+ }
1260
+
1261
+ .badge-teal {
1262
+ background: rgba(13, 148, 136, 0.15);
1263
+ color: #2dd4bf;
1264
+ border: 1px solid rgba(13, 148, 136, 0.3);
1265
+ }
1266
+
1267
+ .badge-purple {
1268
+ background: rgba(139, 92, 246, 0.15);
1269
+ color: #a78bfa;
1270
+ border: 1px solid rgba(139, 92, 246, 0.3);
1271
+ }
1272
+
1273
+ /* Additional badge variants */
1274
+ .badge-pink {
1275
+ background: rgba(236, 72, 153, 0.15);
1276
+ color: #f472b6;
1277
+ border: 1px solid rgba(236, 72, 153, 0.3);
1278
+ }
1279
+
1280
+ .badge-green {
1281
+ background: rgba(34, 197, 94, 0.15);
1282
+ color: #4ade80;
1283
+ border: 1px solid rgba(34, 197, 94, 0.3);
1284
+ }
1285
+
1286
+ .badge-orange {
1287
+ background: rgba(249, 115, 22, 0.15);
1288
+ color: #fb923c;
1289
+ border: 1px solid rgba(249, 115, 22, 0.3);
1290
+ }
1291
+
1292
+ .badge-red {
1293
+ background: rgba(239, 68, 68, 0.15);
1294
+ color: #f87171;
1295
+ border: 1px solid rgba(239, 68, 68, 0.3);
1296
+ }
1297
+
1298
+ .badge-yellow {
1299
+ background: rgba(234, 179, 8, 0.15);
1300
+ color: #facc15;
1301
+ border: 1px solid rgba(234, 179, 8, 0.3);
1302
+ }
1303
+
1304
+ /* Prompt Details (Collapsible) */
1305
+ .prompt-details {
1306
+ margin-top: 1.25rem;
1307
+ border: 1px solid var(--border);
1308
+ border-radius: 8px;
1309
+ overflow: hidden;
1310
+ }
1311
+
1312
+ .prompt-details summary {
1313
+ display: flex;
1314
+ align-items: center;
1315
+ padding: 0.875rem 1rem;
1316
+ background: var(--bg-hover);
1317
+ cursor: pointer;
1318
+ font-weight: 500;
1319
+ color: var(--text-muted);
1320
+ transition: all var(--transition-fast);
1321
+ list-style: none;
1322
+ }
1323
+
1324
+ .prompt-details summary::-webkit-details-marker {
1325
+ display: none;
1326
+ }
1327
+
1328
+ .prompt-details summary::before {
1329
+ content: '▶';
1330
+ margin-right: 0.75rem;
1331
+ font-size: 0.75rem;
1332
+ transition: transform var(--transition-fast);
1333
+ }
1334
+
1335
+ .prompt-details[open] summary::before {
1336
+ transform: rotate(90deg);
1337
+ }
1338
+
1339
+ .prompt-details summary:hover {
1340
+ color: var(--text);
1341
+ background: var(--bg-card);
1342
+ }
1343
+
1344
+ .prompt-content {
1345
+ background: var(--bg-code);
1346
+ border-top: 1px solid var(--border);
1347
+ }
1348
+
1349
+ .prompt-content pre {
1350
+ margin: 0;
1351
+ border: none;
1352
+ border-radius: 0;
1353
+ max-height: 500px;
1354
+ overflow-y: auto;
1355
+ }
1356
+
1357
+ .prompt-content pre code {
1358
+ font-size: 0.8rem;
1359
+ line-height: 1.5;
1360
+ }
1361
+
1362
+ /* Danger Tag */
1363
+ .tag-danger {
1364
+ background: var(--error);
1365
+ color: white;
1366
+ }
1367
+
1368
+ /* Code block with position */
1369
+ .code-block {
1370
+ position: relative;
1371
+ margin: 1rem 0;
1372
+ }
1373
+
1374
+ .code-block pre {
1375
+ padding-right: 4.5rem; /* Space for copy button */
1376
+ }
1377
+
1378
+ .code-block .copy-btn {
1379
+ position: absolute;
1380
+ top: 0.5rem;
1381
+ right: 0.5rem;
1382
+ z-index: 10;
1383
+ background: var(--bg-hover);
1384
+ border: 1px solid var(--border-light);
1385
+ opacity: 0.8;
1386
+ transition: opacity var(--transition-fast), background var(--transition-fast);
1387
+ }
1388
+
1389
+ .code-block:hover .copy-btn {
1390
+ opacity: 1;
1391
+ }
1392
+
1393
+ .code-block .copy-btn:hover {
1394
+ background: var(--primary);
1395
+ color: white;
1396
+ border-color: var(--primary);
1397
+ opacity: 1;
1398
+ }
1399
+
1400
+ /* Best Practice improvements */
1401
+ .best-practice h4 {
1402
+ display: flex;
1403
+ align-items: center;
1404
+ gap: 0.5rem;
1405
+ margin-bottom: 0.75rem;
1406
+ color: var(--text-bright);
1407
+ }
1408
+
1409
+ .bp-icon {
1410
+ font-size: 1.25rem;
1411
+ }
1412
+
1413
+ /* Table inside commands */
1414
+ .command-body .table-container {
1415
+ margin: 1rem 0;
1416
+ }
1417
+
1418
+ /* ============================================
1419
+ SIDEBAR PAGE TOC (Sub-navigation)
1420
+ ============================================ */
1421
+
1422
+ .nav-item-with-toc {
1423
+ flex-direction: column;
1424
+ align-items: stretch;
1425
+ }
1426
+
1427
+ .nav-item-with-toc > a {
1428
+ display: flex;
1429
+ align-items: center;
1430
+ gap: 0.75rem;
1431
+ padding: 0.625rem 1.5rem;
1432
+ color: var(--text-muted);
1433
+ text-decoration: none;
1434
+ transition: all var(--transition-fast);
1435
+ border-left: 3px solid transparent;
1436
+ }
1437
+
1438
+ .nav-item-with-toc > a:hover {
1439
+ background: var(--bg-hover);
1440
+ color: var(--text);
1441
+ }
1442
+
1443
+ .nav-item-with-toc > a.active {
1444
+ background: rgba(99, 102, 241, 0.1);
1445
+ color: var(--primary-light);
1446
+ border-left-color: var(--primary);
1447
+ }
1448
+
1449
+ /* Sidebar TOC submenu */
1450
+ .sidebar-toc {
1451
+ display: none;
1452
+ flex-direction: column;
1453
+ padding: 0.5rem 0 0.5rem 2.5rem;
1454
+ background: rgba(0, 0, 0, 0.15);
1455
+ border-left: 3px solid var(--primary);
1456
+ margin-left: 0;
1457
+ }
1458
+
1459
+ .sidebar-toc.open {
1460
+ display: flex;
1461
+ }
1462
+
1463
+ .sidebar-toc-link {
1464
+ display: block;
1465
+ font-size: 0.8rem;
1466
+ color: var(--text-muted);
1467
+ text-decoration: none;
1468
+ padding: 0.375rem 0.75rem;
1469
+ border-radius: 4px;
1470
+ transition: all var(--transition-fast);
1471
+ position: relative;
1472
+ }
1473
+
1474
+ .sidebar-toc-link::before {
1475
+ content: '';
1476
+ position: absolute;
1477
+ left: 0;
1478
+ top: 50%;
1479
+ transform: translateY(-50%);
1480
+ width: 4px;
1481
+ height: 4px;
1482
+ background: var(--border-light);
1483
+ border-radius: 50%;
1484
+ opacity: 0;
1485
+ transition: opacity var(--transition-fast);
1486
+ }
1487
+
1488
+ .sidebar-toc-link:hover {
1489
+ color: var(--text);
1490
+ background: var(--bg-hover);
1491
+ }
1492
+
1493
+ .sidebar-toc-link:hover::before {
1494
+ opacity: 1;
1495
+ }
1496
+
1497
+ .sidebar-toc-link.active {
1498
+ color: var(--primary-light);
1499
+ background: rgba(99, 102, 241, 0.15);
1500
+ }
1501
+
1502
+ .sidebar-toc-link.active::before {
1503
+ opacity: 1;
1504
+ background: var(--primary);
1505
+ width: 6px;
1506
+ height: 6px;
1507
+ }
1508
+
1509
+ /* TOC toggle button */
1510
+ .toc-toggle {
1511
+ margin-left: auto;
1512
+ background: none;
1513
+ border: none;
1514
+ color: var(--text-muted);
1515
+ cursor: pointer;
1516
+ padding: 0.25rem;
1517
+ font-size: 0.7rem;
1518
+ transition: transform var(--transition-fast);
1519
+ }
1520
+
1521
+ .toc-toggle.open {
1522
+ transform: rotate(90deg);
1523
+ }
1524
+
1525
+ /* Hide sidebar TOC when sidebar is collapsed */
1526
+ .sidebar.collapsed .sidebar-toc {
1527
+ display: none !important;
1528
+ }
1529
+
1530
+ .sidebar.collapsed .toc-toggle {
1531
+ display: none;
1532
+ }
1533
+
1534
+ /* Full width content (no inline TOC) */
1535
+ .content-full {
1536
+ max-width: none;
1537
+ width: 100%;
1538
+ padding: 2rem 2.5rem;
1539
+ }
1540
+
1541
+ @media (max-width: 768px) {
1542
+ .content-full {
1543
+ padding: 1.5rem 1rem;
1544
+ }
1545
+ }
1546
+
1547
+ /* Wide content (no TOC) */
1548
+ .content-wide {
1549
+ max-width: none;
1550
+ width: 100%;
1551
+ padding: 2rem 2.5rem;
1552
+ }
1553
+
1554
+ /* ============================================
1555
+ SVG DIAGRAMS
1556
+ ============================================ */
1557
+
1558
+ .svg-diagram {
1559
+ background: transparent;
1560
+ border: none;
1561
+ padding: 1rem 0;
1562
+ margin: 2rem 0;
1563
+ overflow-x: auto;
1564
+ display: flex;
1565
+ justify-content: center;
1566
+ }
1567
+
1568
+ .svg-diagram svg {
1569
+ max-width: 100%;
1570
+ height: auto;
1571
+ }
1572
+
1573
+ /* GitFlow branch colors */
1574
+ .branch-main { fill: #ef4444; }
1575
+ .branch-develop { fill: #f97316; }
1576
+ .branch-feature { fill: #22c55e; }
1577
+ .branch-release { fill: #eab308; }
1578
+ .branch-hotfix { fill: #ec4899; }
1579
+
1580
+ .branch-line-main { stroke: #ef4444; }
1581
+ .branch-line-develop { stroke: #f97316; }
1582
+ .branch-line-feature { stroke: #22c55e; }
1583
+ .branch-line-release { stroke: #eab308; }
1584
+ .branch-line-hotfix { stroke: #ec4899; }
1585
+
1586
+ /* Diagram legend */
1587
+ .diagram-legend {
1588
+ display: flex;
1589
+ flex-wrap: wrap;
1590
+ gap: 1.5rem;
1591
+ justify-content: center;
1592
+ margin-top: 1.5rem;
1593
+ padding-top: 1.5rem;
1594
+ border-top: 1px solid var(--border);
1595
+ }
1596
+
1597
+ .legend-item {
1598
+ display: flex;
1599
+ align-items: center;
1600
+ gap: 0.5rem;
1601
+ font-size: 0.875rem;
1602
+ color: var(--text-muted);
1603
+ }
1604
+
1605
+ .legend-color {
1606
+ width: 16px;
1607
+ height: 16px;
1608
+ border-radius: 50%;
1609
+ }
1610
+
1611
+ .legend-color.main { background: #ef4444; }
1612
+ .legend-color.develop { background: #f97316; }
1613
+ .legend-color.feature { background: #22c55e; }
1614
+ .legend-color.release { background: #eab308; }
1615
+ .legend-color.hotfix { background: #ec4899; }
1616
+
1617
+ /* EF Core structure diagram */
1618
+ .efcore-structure {
1619
+ display: flex;
1620
+ flex-direction: column;
1621
+ gap: 1rem;
1622
+ }
1623
+
1624
+ /* Interactive diagram hover */
1625
+ .svg-diagram svg g[data-tooltip]:hover {
1626
+ cursor: pointer;
1627
+ filter: brightness(1.2);
1628
+ }
1629
+
1630
+ /* Tooltip for SVG */
1631
+ .svg-tooltip {
1632
+ position: absolute;
1633
+ background: var(--bg-dark);
1634
+ border: 1px solid var(--border);
1635
+ padding: 0.5rem 0.75rem;
1636
+ border-radius: 6px;
1637
+ font-size: 0.8rem;
1638
+ color: var(--text);
1639
+ pointer-events: none;
1640
+ z-index: 1000;
1641
+ max-width: 250px;
1642
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
1643
+ }
1644
+
1645
+ /* Responsive adjustments for diagrams */
1646
+ @media (max-width: 768px) {
1647
+ .svg-diagram {
1648
+ padding: 1rem;
1649
+ }
1650
+
1651
+ .diagram-legend {
1652
+ gap: 1rem;
1653
+ }
1654
+
1655
+ .legend-item {
1656
+ font-size: 0.75rem;
1657
+ }
1658
+ }
1659
+
1660
+ /* ============================================
1661
+ INTERACTIVE DIAGRAM TOOLTIP
1662
+ ============================================ */
1663
+
1664
+ .svg-diagram {
1665
+ position: relative;
1666
+ flex-direction: column;
1667
+ align-items: center;
1668
+ }
1669
+
1670
+ .diagram-hint {
1671
+ text-align: center;
1672
+ font-size: 0.85rem;
1673
+ color: var(--text-muted);
1674
+ margin-top: 1rem;
1675
+ padding: 0.5rem 1rem;
1676
+ background: rgba(99, 102, 241, 0.1);
1677
+ border-radius: 6px;
1678
+ border: 1px dashed var(--primary);
1679
+ }
1680
+
1681
+ /* Clickable SVG elements */
1682
+ .clickable-element {
1683
+ cursor: pointer;
1684
+ transition: filter 0.2s ease, opacity 0.2s ease;
1685
+ }
1686
+
1687
+ .clickable-element:hover {
1688
+ filter: url(#highlight) brightness(1.15);
1689
+ }
1690
+
1691
+ .clickable-element.active {
1692
+ filter: url(#highlight) brightness(1.25);
1693
+ }
1694
+
1695
+ .clickable-element .hit-area {
1696
+ pointer-events: all;
1697
+ }
1698
+
1699
+ /* Diagram tooltip */
1700
+ .diagram-tooltip {
1701
+ position: absolute;
1702
+ background: var(--bg-dark);
1703
+ border: 1px solid var(--primary);
1704
+ border-radius: 10px;
1705
+ padding: 1rem 1.25rem;
1706
+ max-width: 350px;
1707
+ min-width: 250px;
1708
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(99, 102, 241, 0.2);
1709
+ z-index: 1000;
1710
+ opacity: 0;
1711
+ visibility: hidden;
1712
+ transform: translateY(10px);
1713
+ transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
1714
+ pointer-events: none;
1715
+ }
1716
+
1717
+ .diagram-tooltip.visible {
1718
+ opacity: 1;
1719
+ visibility: visible;
1720
+ transform: translateY(0);
1721
+ pointer-events: auto;
1722
+ }
1723
+
1724
+ .diagram-tooltip .tooltip-title {
1725
+ font-weight: 600;
1726
+ font-size: 0.95rem;
1727
+ color: var(--primary-light);
1728
+ margin-bottom: 0.5rem;
1729
+ padding-bottom: 0.5rem;
1730
+ border-bottom: 1px solid var(--border);
1731
+ }
1732
+
1733
+ .diagram-tooltip .tooltip-desc {
1734
+ font-size: 0.85rem;
1735
+ color: var(--text);
1736
+ line-height: 1.6;
1737
+ }
1738
+
1739
+ .diagram-tooltip .tooltip-cmd {
1740
+ display: inline-block;
1741
+ background: var(--bg-code);
1742
+ color: var(--secondary);
1743
+ padding: 0.15rem 0.4rem;
1744
+ border-radius: 4px;
1745
+ font-family: 'Fira Code', 'Cascadia Code', monospace;
1746
+ font-size: 0.8rem;
1747
+ margin-top: 0.5rem;
1748
+ }
1749
+
1750
+ /* Close hint for tooltip */
1751
+ .diagram-tooltip::after {
1752
+ content: 'Cliquez ailleurs pour fermer';
1753
+ display: block;
1754
+ font-size: 0.7rem;
1755
+ color: var(--text-muted);
1756
+ text-align: center;
1757
+ margin-top: 0.75rem;
1758
+ padding-top: 0.5rem;
1759
+ border-top: 1px solid var(--border);
1760
+ }
1761
+
1762
+ body.lang-en .diagram-tooltip::after {
1763
+ content: 'Click outside to close';
1764
+ }
1765
+
1766
+ /* Responsive tooltip */
1767
+ @media (max-width: 768px) {
1768
+ .diagram-tooltip {
1769
+ max-width: 280px;
1770
+ min-width: 200px;
1771
+ padding: 0.875rem 1rem;
1772
+ }
1773
+
1774
+ .diagram-tooltip .tooltip-title {
1775
+ font-size: 0.9rem;
1776
+ }
1777
+
1778
+ .diagram-tooltip .tooltip-desc {
1779
+ font-size: 0.8rem;
1780
+ }
1781
+ }
1782
+
1783
+ /* ============================================
1784
+ WORKFLOW STEPPER (Visual Steps)
1785
+ ============================================ */
1786
+
1787
+ .workflow-stepper {
1788
+ display: flex;
1789
+ flex-wrap: wrap;
1790
+ gap: 0.5rem;
1791
+ margin: 1.5rem 0;
1792
+ padding: 1.25rem;
1793
+ background: var(--bg-card);
1794
+ border: 1px solid var(--border);
1795
+ border-radius: 12px;
1796
+ }
1797
+
1798
+ .workflow-stepper-item {
1799
+ display: flex;
1800
+ align-items: center;
1801
+ gap: 0.5rem;
1802
+ }
1803
+
1804
+ .step-number {
1805
+ width: 28px;
1806
+ height: 28px;
1807
+ background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
1808
+ border-radius: 50%;
1809
+ display: flex;
1810
+ align-items: center;
1811
+ justify-content: center;
1812
+ font-weight: 700;
1813
+ font-size: 0.75rem;
1814
+ color: white;
1815
+ flex-shrink: 0;
1816
+ box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
1817
+ }
1818
+
1819
+ .step-label {
1820
+ font-size: 0.85rem;
1821
+ font-weight: 500;
1822
+ color: var(--text);
1823
+ white-space: nowrap;
1824
+ }
1825
+
1826
+ .step-arrow {
1827
+ color: var(--text-muted);
1828
+ font-size: 1rem;
1829
+ margin: 0 0.25rem;
1830
+ opacity: 0.5;
1831
+ }
1832
+
1833
+ /* Workflow Stepper Vertical (for longer workflows) */
1834
+ .workflow-stepper-vertical {
1835
+ display: grid;
1836
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1837
+ gap: 0.75rem;
1838
+ margin: 1.5rem 0;
1839
+ padding: 1rem;
1840
+ background: var(--bg-card);
1841
+ border: 1px solid var(--border);
1842
+ border-radius: 12px;
1843
+ }
1844
+
1845
+ .workflow-stepper-vertical .step-item {
1846
+ display: flex;
1847
+ align-items: center;
1848
+ gap: 0.75rem;
1849
+ padding: 0.75rem;
1850
+ background: var(--bg-dark);
1851
+ border-radius: 8px;
1852
+ border: 1px solid var(--border);
1853
+ transition: all var(--transition-fast);
1854
+ }
1855
+
1856
+ .workflow-stepper-vertical .step-item:hover {
1857
+ border-color: var(--primary);
1858
+ transform: translateY(-1px);
1859
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.15);
1860
+ }
1861
+
1862
+ .workflow-stepper-vertical .step-number {
1863
+ width: 32px;
1864
+ height: 32px;
1865
+ font-size: 0.85rem;
1866
+ }
1867
+
1868
+ .workflow-stepper-vertical .step-content {
1869
+ flex: 1;
1870
+ min-width: 0;
1871
+ }
1872
+
1873
+ .workflow-stepper-vertical .step-title {
1874
+ font-weight: 600;
1875
+ font-size: 0.85rem;
1876
+ color: var(--text-bright);
1877
+ margin-bottom: 0.15rem;
1878
+ }
1879
+
1880
+ .workflow-stepper-vertical .step-desc {
1881
+ font-size: 0.75rem;
1882
+ color: var(--text-muted);
1883
+ white-space: nowrap;
1884
+ overflow: hidden;
1885
+ text-overflow: ellipsis;
1886
+ }
1887
+
1888
+ /* Workflow Colors by type */
1889
+ .step-number.step-validate { background: linear-gradient(135deg, var(--info) 0%, #1d4ed8 100%); }
1890
+ .step-number.step-analyze { background: linear-gradient(135deg, var(--accent) 0%, #0891b2 100%); }
1891
+ .step-number.step-detect { background: linear-gradient(135deg, var(--success) 0%, #15803d 100%); }
1892
+ .step-number.step-search { background: linear-gradient(135deg, var(--warning) 0%, #ca8a04 100%); }
1893
+ .step-number.step-decision { background: linear-gradient(135deg, var(--secondary) 0%, #c2410c 100%); }
1894
+ .step-number.step-input { background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%); }
1895
+ .step-number.step-generate { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); }
1896
+ .step-number.step-create { background: linear-gradient(135deg, var(--success) 0%, #15803d 100%); }
1897
+ .step-number.step-confirm { background: linear-gradient(135deg, var(--accent) 0%, #0891b2 100%); }
1898
+
1899
+ /* Responsive */
1900
+ @media (max-width: 768px) {
1901
+ .workflow-stepper {
1902
+ flex-direction: column;
1903
+ gap: 0.75rem;
1904
+ }
1905
+
1906
+ .workflow-stepper-item {
1907
+ width: 100%;
1908
+ }
1909
+
1910
+ .step-arrow {
1911
+ display: none;
1912
+ }
1913
+
1914
+ .workflow-stepper-vertical {
1915
+ grid-template-columns: 1fr;
1916
+ }
1917
+ }
1918
+
1919
+ /* ============================================
1920
+ TEMPLATE SECTIONS (Collapsible)
1921
+ ============================================ */
1922
+
1923
+ .template-section {
1924
+ margin-top: 1.5rem;
1925
+ border: 1px solid var(--border);
1926
+ border-radius: 8px;
1927
+ background: var(--bg-dark);
1928
+ overflow: hidden;
1929
+ }
1930
+
1931
+ .template-section summary {
1932
+ display: flex;
1933
+ align-items: center;
1934
+ gap: 0.75rem;
1935
+ padding: 1rem 1.25rem;
1936
+ cursor: pointer;
1937
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(249, 115, 22, 0.1) 100%);
1938
+ border-bottom: 1px solid transparent;
1939
+ transition: all var(--transition-fast);
1940
+ }
1941
+
1942
+ .template-section summary:hover {
1943
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.15) 0%, rgba(249, 115, 22, 0.15) 100%);
1944
+ }
1945
+
1946
+ .template-section[open] summary {
1947
+ border-bottom-color: var(--border);
1948
+ }
1949
+
1950
+ .template-section summary::marker,
1951
+ .template-section summary::-webkit-details-marker {
1952
+ display: none;
1953
+ }
1954
+
1955
+ .template-section summary::before {
1956
+ content: '\25B6';
1957
+ font-size: 0.7rem;
1958
+ color: var(--primary);
1959
+ transition: transform var(--transition-fast);
1960
+ }
1961
+
1962
+ .template-section[open] summary::before {
1963
+ transform: rotate(90deg);
1964
+ }
1965
+
1966
+ .template-section summary h4 {
1967
+ font-size: 0.95rem;
1968
+ color: var(--text-bright);
1969
+ font-weight: 600;
1970
+ }
1971
+
1972
+ .template-badge {
1973
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
1974
+ color: white;
1975
+ padding: 0.2rem 0.6rem;
1976
+ border-radius: 4px;
1977
+ font-size: 0.75rem;
1978
+ font-family: 'JetBrains Mono', 'Fira Code', monospace;
1979
+ font-weight: 500;
1980
+ }
1981
+
1982
+ .template-content {
1983
+ padding: 1rem 1.25rem;
1984
+ }
1985
+
1986
+ .template-path {
1987
+ margin-bottom: 1rem;
1988
+ font-size: 0.85rem;
1989
+ color: var(--text-muted);
1990
+ }
1991
+
1992
+ .template-path code {
1993
+ background: var(--bg-hover);
1994
+ padding: 0.25rem 0.5rem;
1995
+ border-radius: 4px;
1996
+ font-size: 0.8rem;
1997
+ }
1998
+
1999
+ .template-code {
2000
+ max-height: 500px;
2001
+ overflow-y: auto;
2002
+ }
2003
+
2004
+ .template-code pre {
2005
+ font-size: 0.8rem !important;
2006
+ line-height: 1.5 !important;
2007
+ }
2008
+
2009
+ .template-code code {
2010
+ white-space: pre-wrap;
2011
+ word-break: break-word;
2012
+ }
2013
+
2014
+ /* ============================================
2015
+ COPYABLE COMMAND BLOCKS
2016
+ ============================================ */
2017
+
2018
+ .cmd-copy {
2019
+ display: inline-flex;
2020
+ align-items: center;
2021
+ gap: 0.5rem;
2022
+ background: var(--bg-code);
2023
+ border: 1px solid var(--border);
2024
+ border-radius: 6px;
2025
+ padding: 0.5rem 0.75rem;
2026
+ margin: 0.25rem 0;
2027
+ font-family: 'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace;
2028
+ font-size: 0.875rem;
2029
+ color: var(--secondary);
2030
+ cursor: pointer;
2031
+ transition: all var(--transition-fast);
2032
+ position: relative;
2033
+ }
2034
+
2035
+ .cmd-copy:hover {
2036
+ border-color: var(--primary);
2037
+ background: var(--bg-hover);
2038
+ }
2039
+
2040
+ .cmd-copy::after {
2041
+ content: '📋';
2042
+ font-size: 0.75rem;
2043
+ opacity: 0;
2044
+ transition: opacity var(--transition-fast);
2045
+ margin-left: 0.5rem;
2046
+ }
2047
+
2048
+ .cmd-copy:hover::after {
2049
+ opacity: 0.7;
2050
+ }
2051
+
2052
+ .cmd-copy.copied {
2053
+ border-color: var(--success);
2054
+ background: rgba(34, 197, 94, 0.1);
2055
+ }
2056
+
2057
+ .cmd-copy.copied::after {
2058
+ content: '✓';
2059
+ opacity: 1;
2060
+ color: var(--success);
2061
+ }
2062
+
2063
+ /* Block variant for standalone commands */
2064
+ .cmd-copy-block {
2065
+ display: flex;
2066
+ align-items: center;
2067
+ justify-content: space-between;
2068
+ background: var(--bg-code);
2069
+ border: 1px solid var(--border);
2070
+ border-radius: 8px;
2071
+ padding: 0.75rem 1rem;
2072
+ margin: 0.75rem 0;
2073
+ font-family: 'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace;
2074
+ font-size: 0.9rem;
2075
+ color: var(--secondary);
2076
+ cursor: pointer;
2077
+ transition: all var(--transition-fast);
2078
+ }
2079
+
2080
+ .cmd-copy-block:hover {
2081
+ border-color: var(--primary);
2082
+ background: var(--bg-hover);
2083
+ box-shadow: 0 2px 8px rgba(99, 102, 241, 0.15);
2084
+ }
2085
+
2086
+ .cmd-copy-block .cmd-text {
2087
+ flex: 1;
2088
+ user-select: all;
2089
+ }
2090
+
2091
+ .cmd-copy-block .cmd-copy-btn {
2092
+ background: var(--bg-card);
2093
+ border: 1px solid var(--border);
2094
+ color: var(--text-muted);
2095
+ padding: 0.35rem 0.75rem;
2096
+ border-radius: 4px;
2097
+ font-size: 0.75rem;
2098
+ cursor: pointer;
2099
+ transition: all var(--transition-fast);
2100
+ white-space: nowrap;
2101
+ margin-left: 1rem;
2102
+ }
2103
+
2104
+ .cmd-copy-block .cmd-copy-btn:hover {
2105
+ background: var(--primary);
2106
+ color: white;
2107
+ border-color: var(--primary);
2108
+ }
2109
+
2110
+ .cmd-copy-block.copied {
2111
+ border-color: var(--success);
2112
+ }
2113
+
2114
+ .cmd-copy-block.copied .cmd-copy-btn {
2115
+ background: var(--success);
2116
+ color: white;
2117
+ border-color: var(--success);
2118
+ }
2119
+
2120
+ /* Table cell variant */
2121
+ td .cmd-copy {
2122
+ display: flex;
2123
+ margin: 0;
2124
+ }
2125
+
2126
+ /* Step content variant */
2127
+ .step-content .cmd-copy-block {
2128
+ margin-top: 0.5rem;
2129
+ }
2130
+
2131
+ /* ============================================
2132
+ FILE LINKS (clickable file paths)
2133
+ ============================================ */
2134
+
2135
+ .file-link {
2136
+ color: var(--accent);
2137
+ text-decoration: none;
2138
+ transition: all var(--transition-fast);
2139
+ border-bottom: 1px dotted var(--accent);
2140
+ }
2141
+
2142
+ .file-link:hover {
2143
+ color: var(--primary-light);
2144
+ border-bottom-color: var(--primary-light);
2145
+ text-decoration: none;
2146
+ }
2147
+
2148
+ .file-link code {
2149
+ color: inherit;
2150
+ background: transparent;
2151
+ }
2152
+
2153
+ /* File links in code blocks */
2154
+ pre .file-link {
2155
+ border-bottom: none;
2156
+ }
2157
+
2158
+ pre .file-link:hover {
2159
+ text-decoration: underline;
2160
+ }
2161
+
2162
+ /* ============================================
2163
+ HOME PAGE - HERO & ECOSYSTEM
2164
+ ============================================ */
2165
+
2166
+ .hero-section {
2167
+ margin-bottom: 2.5rem;
2168
+ padding: 2rem 0;
2169
+ }
2170
+
2171
+ .hero-tagline {
2172
+ font-size: 1.5rem;
2173
+ font-weight: 700;
2174
+ color: var(--text-bright);
2175
+ margin-bottom: 0.75rem;
2176
+ line-height: 1.3;
2177
+ }
2178
+
2179
+ .hero-tagline .highlight {
2180
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
2181
+ -webkit-background-clip: text;
2182
+ -webkit-text-fill-color: transparent;
2183
+ background-clip: text;
2184
+ }
2185
+
2186
+ .hero-description {
2187
+ font-size: 1.05rem;
2188
+ color: var(--text-muted);
2189
+ line-height: 1.7;
2190
+ max-width: 720px;
2191
+ margin-bottom: 0;
2192
+ }
2193
+
2194
+ /* Ecosystem diagram */
2195
+ .ecosystem-grid {
2196
+ display: grid;
2197
+ grid-template-columns: repeat(3, 1fr);
2198
+ gap: 1rem;
2199
+ margin: 2rem 0;
2200
+ }
2201
+
2202
+ .ecosystem-card {
2203
+ background: var(--bg-card);
2204
+ border: 1px solid var(--border);
2205
+ border-radius: 10px;
2206
+ padding: 1.25rem;
2207
+ text-align: center;
2208
+ transition: all var(--transition-fast);
2209
+ position: relative;
2210
+ }
2211
+
2212
+ .ecosystem-card:hover {
2213
+ border-color: var(--primary);
2214
+ transform: translateY(-2px);
2215
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
2216
+ }
2217
+
2218
+ .ecosystem-card .eco-icon {
2219
+ width: 48px;
2220
+ height: 48px;
2221
+ border-radius: 12px;
2222
+ display: flex;
2223
+ align-items: center;
2224
+ justify-content: center;
2225
+ font-size: 1.5rem;
2226
+ margin: 0 auto 0.75rem;
2227
+ }
2228
+
2229
+ .ecosystem-card .eco-icon.eco-app {
2230
+ background: linear-gradient(135deg, #ef4444 0%, #f97316 100%);
2231
+ }
2232
+
2233
+ .ecosystem-card .eco-icon.eco-cli {
2234
+ background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
2235
+ }
2236
+
2237
+ .ecosystem-card .eco-icon.eco-mcp {
2238
+ background: linear-gradient(135deg, var(--success) 0%, #0d9488 100%);
2239
+ }
2240
+
2241
+ .ecosystem-card .eco-name {
2242
+ font-size: 0.95rem;
2243
+ font-weight: 600;
2244
+ color: var(--text-bright);
2245
+ margin-bottom: 0.25rem;
2246
+ }
2247
+
2248
+ .ecosystem-card .eco-role {
2249
+ font-size: 0.8rem;
2250
+ color: var(--text-muted);
2251
+ line-height: 1.5;
2252
+ }
2253
+
2254
+ /* Ecosystem connectors (arrows between cards) */
2255
+ .ecosystem-connector {
2256
+ display: flex;
2257
+ align-items: center;
2258
+ justify-content: center;
2259
+ gap: 2rem;
2260
+ margin: -0.5rem 0;
2261
+ color: var(--text-muted);
2262
+ font-size: 0.75rem;
2263
+ }
2264
+
2265
+ .ecosystem-connector .arrow {
2266
+ color: var(--primary-light);
2267
+ font-size: 1.25rem;
2268
+ }
2269
+
2270
+ /* Stats bar */
2271
+ .stats-bar {
2272
+ display: grid;
2273
+ grid-template-columns: repeat(4, 1fr);
2274
+ gap: 1rem;
2275
+ margin: 1.5rem 0 2rem;
2276
+ }
2277
+
2278
+ .stat-item {
2279
+ background: var(--bg-card);
2280
+ border: 1px solid var(--border);
2281
+ border-radius: 10px;
2282
+ padding: 1.25rem 1rem;
2283
+ text-align: center;
2284
+ transition: all var(--transition-fast);
2285
+ }
2286
+
2287
+ .stat-item:hover {
2288
+ border-color: var(--primary);
2289
+ }
2290
+
2291
+ .stat-number {
2292
+ font-size: 1.75rem;
2293
+ font-weight: 700;
2294
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
2295
+ -webkit-background-clip: text;
2296
+ -webkit-text-fill-color: transparent;
2297
+ background-clip: text;
2298
+ line-height: 1.2;
2299
+ margin-bottom: 0.25rem;
2300
+ }
2301
+
2302
+ .stat-label {
2303
+ font-size: 0.8rem;
2304
+ color: var(--text-muted);
2305
+ font-weight: 500;
2306
+ }
2307
+
2308
+ @media (max-width: 768px) {
2309
+ .ecosystem-grid {
2310
+ grid-template-columns: 1fr;
2311
+ }
2312
+
2313
+ .stats-bar {
2314
+ grid-template-columns: repeat(2, 1fr);
2315
+ }
2316
+
2317
+ .hero-tagline {
2318
+ font-size: 1.25rem;
2319
+ }
2320
+ }