repo-wrapped 0.0.7 → 0.0.9

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 (172) hide show
  1. package/.github/agents/complete.agent.md +257 -0
  2. package/.github/agents/feature-scaffold.agent.md +248 -0
  3. package/.github/agents/jsdoc.agent.md +243 -0
  4. package/.github/agents/plan.agent.md +202 -0
  5. package/.github/agents/spec-writer.agent.md +169 -0
  6. package/.github/agents/test-writer.agent.md +169 -0
  7. package/.stylelintrc.json +27 -0
  8. package/README.md +94 -94
  9. package/coverage/base.css +224 -0
  10. package/coverage/block-navigation.js +87 -0
  11. package/coverage/favicon.png +0 -0
  12. package/coverage/index.html +446 -0
  13. package/coverage/lcov-report/base.css +224 -0
  14. package/coverage/lcov-report/block-navigation.js +87 -0
  15. package/coverage/lcov-report/favicon.png +0 -0
  16. package/coverage/lcov-report/index.html +446 -0
  17. package/coverage/lcov-report/prettify.css +1 -0
  18. package/coverage/lcov-report/prettify.js +2 -0
  19. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  20. package/coverage/lcov-report/sorter.js +210 -0
  21. package/coverage/lcov.info +7039 -0
  22. package/coverage/prettify.css +1 -0
  23. package/coverage/prettify.js +2 -0
  24. package/coverage/sort-arrow-sprite.png +0 -0
  25. package/coverage/sorter.js +210 -0
  26. package/dist/commands/generate.js +56 -56
  27. package/dist/config/defaults.js +158 -0
  28. package/dist/config/index.js +10 -0
  29. package/dist/features/achievements/data/achievements.json +284 -0
  30. package/dist/features/achievements/engine.js +140 -0
  31. package/dist/features/achievements/evaluators.js +246 -0
  32. package/dist/features/achievements/helpers.js +58 -0
  33. package/dist/features/achievements/index.js +57 -0
  34. package/dist/features/achievements/loader.js +88 -0
  35. package/dist/features/achievements/template.js +155 -0
  36. package/dist/features/achievements/types.js +7 -0
  37. package/dist/features/commit-quality/analyzer.js +378 -0
  38. package/dist/features/commit-quality/analyzer.test.js +484 -0
  39. package/dist/features/commit-quality/index.js +28 -0
  40. package/dist/features/commit-quality/template.js +114 -0
  41. package/dist/features/commit-quality/types.js +2 -0
  42. package/dist/features/comparison/analyzer.js +222 -0
  43. package/dist/features/comparison/index.js +28 -0
  44. package/dist/features/comparison/template.js +119 -0
  45. package/dist/features/comparison/types.js +2 -0
  46. package/dist/features/contribution-graph/index.js +9 -0
  47. package/dist/features/contribution-graph/template.js +89 -0
  48. package/dist/features/events/index.js +31 -0
  49. package/dist/features/events/parser.js +253 -0
  50. package/dist/features/events/template.js +113 -0
  51. package/dist/features/events/types.js +2 -0
  52. package/dist/features/executive-summary/generator.js +275 -0
  53. package/dist/features/executive-summary/index.js +27 -0
  54. package/dist/features/executive-summary/template.js +80 -0
  55. package/dist/features/executive-summary/types.js +2 -0
  56. package/dist/features/gaps/analyzer.js +298 -0
  57. package/dist/features/gaps/analyzer.test.js +517 -0
  58. package/dist/features/gaps/index.js +27 -0
  59. package/dist/features/gaps/template.js +190 -0
  60. package/dist/features/gaps/types.js +2 -0
  61. package/dist/features/impact/analyzer.js +248 -0
  62. package/dist/features/impact/index.js +26 -0
  63. package/dist/features/impact/template.js +118 -0
  64. package/dist/features/impact/types.js +2 -0
  65. package/dist/features/index.js +40 -0
  66. package/dist/features/knowledge/analyzer.js +385 -0
  67. package/dist/features/knowledge/index.js +26 -0
  68. package/dist/features/knowledge/template.js +239 -0
  69. package/dist/features/knowledge/types.js +2 -0
  70. package/dist/features/streaks/calculator.js +184 -0
  71. package/dist/features/streaks/calculator.test.js +366 -0
  72. package/dist/features/streaks/index.js +36 -0
  73. package/dist/features/streaks/template.js +41 -0
  74. package/dist/features/streaks/types.js +9 -0
  75. package/dist/features/team/analyzer.js +316 -0
  76. package/dist/features/team/index.js +30 -0
  77. package/dist/features/team/template.js +146 -0
  78. package/dist/features/team/types.js +2 -0
  79. package/dist/features/time-patterns/analyzer.js +319 -0
  80. package/dist/features/time-patterns/analyzer.test.js +278 -0
  81. package/dist/features/time-patterns/index.js +37 -0
  82. package/dist/features/time-patterns/template.js +109 -0
  83. package/dist/features/time-patterns/types.js +9 -0
  84. package/dist/features/velocity/analyzer.js +257 -0
  85. package/dist/features/velocity/analyzer.test.js +383 -0
  86. package/dist/features/velocity/index.js +27 -0
  87. package/dist/features/velocity/template.js +189 -0
  88. package/dist/features/velocity/types.js +2 -0
  89. package/dist/generators/html/scripts/knowledge.js +17 -0
  90. package/dist/generators/html/styles/base.css +8 -3
  91. package/dist/generators/html/styles/components.css +121 -1
  92. package/dist/generators/html/styles/knowledge.css +21 -0
  93. package/dist/generators/html/styles/leaddev.css +108 -48
  94. package/dist/generators/html/styles/strategic-insights.css +1337 -0
  95. package/dist/generators/html/templates/commitQualitySection.js +28 -2
  96. package/dist/generators/html/templates/executiveSummarySection.js +0 -4
  97. package/dist/generators/html/templates/impactSection.js +8 -6
  98. package/dist/generators/html/templates/knowledgeSection.js +16 -2
  99. package/dist/generators/html/templates/velocitySection.js +2 -2
  100. package/dist/generators/html/types.js +7 -0
  101. package/dist/generators/html/utils/analysisRunner.js +93 -0
  102. package/dist/generators/html/utils/cardBuilder.js +47 -0
  103. package/dist/generators/html/utils/contextBuilder.js +54 -0
  104. package/dist/generators/html/utils/htmlDocumentBuilder.js +396 -0
  105. package/dist/generators/html/utils/kpiBuilder.js +76 -0
  106. package/dist/generators/html/utils/sectionWrapper.js +71 -0
  107. package/dist/generators/html/utils/styleLoader.js +2 -2
  108. package/dist/html/analysisRunner.js +93 -0
  109. package/dist/html/htmlDocumentBuilder.js +396 -0
  110. package/dist/html/index.js +29 -0
  111. package/dist/html/shared/colorUtils.js +61 -0
  112. package/dist/html/shared/commitMapBuilder.js +23 -0
  113. package/dist/html/shared/components/cardBuilder.js +47 -0
  114. package/dist/html/shared/components/index.js +18 -0
  115. package/dist/html/shared/components/kpiBuilder.js +76 -0
  116. package/dist/html/shared/components/sectionWrapper.js +71 -0
  117. package/dist/html/shared/contextBuilder.js +54 -0
  118. package/dist/html/shared/dateRangeCalculator.js +56 -0
  119. package/dist/html/shared/developerStatsCalculator.js +28 -0
  120. package/dist/html/shared/index.js +39 -0
  121. package/dist/html/shared/scriptLoader.js +15 -0
  122. package/dist/html/shared/scripts/export.js +125 -0
  123. package/dist/html/shared/scripts/knowledge.js +137 -0
  124. package/dist/html/shared/scripts/modal.js +68 -0
  125. package/dist/html/shared/scripts/navigation.js +156 -0
  126. package/dist/html/shared/scripts/tabs.js +18 -0
  127. package/dist/html/shared/scripts/tooltip.js +21 -0
  128. package/dist/html/shared/styleLoader.js +18 -0
  129. package/dist/html/shared/styles/achievements.css +387 -0
  130. package/dist/html/shared/styles/base.css +822 -0
  131. package/dist/html/shared/styles/components.css +1511 -0
  132. package/dist/html/shared/styles/knowledge.css +242 -0
  133. package/dist/html/shared/styles/strategic-insights.css +1337 -0
  134. package/dist/html/shared/weekGrouper.js +27 -0
  135. package/dist/html/types.js +7 -0
  136. package/dist/index.js +39 -39
  137. package/dist/test/helpers/commitFactory.js +166 -0
  138. package/dist/test/helpers/dateUtils.js +101 -0
  139. package/dist/test/helpers/index.js +29 -0
  140. package/dist/test/setup.js +17 -0
  141. package/dist/test/smoke.test.js +94 -0
  142. package/dist/types/achievements.js +7 -0
  143. package/dist/types/analysis.js +7 -0
  144. package/dist/types/core.js +7 -0
  145. package/dist/types/index.js +38 -0
  146. package/dist/types/options.js +7 -0
  147. package/dist/types/shared.js +7 -0
  148. package/dist/types/strategic.js +7 -0
  149. package/dist/types/summary.js +7 -0
  150. package/dist/utils/achievementDefinitions.js +22 -22
  151. package/dist/utils/analyzerContextBuilder.js +124 -0
  152. package/dist/utils/commitQualityAnalyzer.js +13 -2
  153. package/dist/utils/emptyResults.js +95 -0
  154. package/dist/utils/fileHotspotAnalyzer.js +4 -12
  155. package/dist/utils/gapAnalyzer.js +26 -28
  156. package/dist/utils/gitParser.test.js +363 -0
  157. package/dist/utils/htmlGenerator.js +62 -466
  158. package/dist/utils/impactAnalyzer.js +20 -19
  159. package/dist/utils/knowledgeDistributionAnalyzer.js +32 -27
  160. package/dist/utils/matrixGenerator.js +13 -13
  161. package/dist/utils/rangeComparisonAnalyzer.js +2 -2
  162. package/dist/utils/streakCalculator.js +77 -27
  163. package/dist/utils/teamAnalyzer.js +20 -1
  164. package/dist/utils/timePatternAnalyzer.js +18 -3
  165. package/dist/utils/velocityAnalyzer.js +23 -18
  166. package/dist/utils/wrappedGenerator.js +8 -8
  167. package/package.json +74 -64
  168. package/vitest.config.ts +46 -0
  169. package/SPECS.md +0 -490
  170. package/dist/cli.js +0 -24
  171. package/dist/commands/index.js +0 -24
  172. package/test-team.txt +0 -2
@@ -223,6 +223,49 @@
223
223
  color: var(--text-link);
224
224
  }
225
225
 
226
+ /* === Reusable Stat Card Base === */
227
+ .stat-card-base {
228
+ display: flex;
229
+ flex-direction: column;
230
+ align-items: center;
231
+ justify-content: center;
232
+ text-align: center;
233
+ gap: var(--spacing-sm);
234
+ padding: var(--spacing-md);
235
+ background: var(--bg-primary);
236
+ border: 1px solid var(--border-default);
237
+ border-radius: var(--radius-md);
238
+ transition: border-color var(--transition-fast);
239
+ }
240
+
241
+ .stat-card-base:hover {
242
+ border-color: var(--border-emphasis);
243
+ }
244
+
245
+ .stat-card-base .stat-icon {
246
+ font-size: 32px;
247
+ line-height: 1;
248
+ }
249
+
250
+ .stat-card-base .stat-label {
251
+ font-size: var(--font-size-sm);
252
+ color: var(--text-secondary);
253
+ text-transform: uppercase;
254
+ letter-spacing: 0.5px;
255
+ font-weight: var(--font-weight-medium);
256
+ }
257
+
258
+ .stat-card-base .stat-value {
259
+ font-size: 24px;
260
+ font-weight: var(--font-weight-semibold);
261
+ color: var(--text-primary);
262
+ }
263
+
264
+ .stat-card-base .stat-detail {
265
+ font-size: var(--font-size-sm);
266
+ color: var(--text-secondary);
267
+ }
268
+
226
269
  /* === Streak Section === */
227
270
  .streak-section {
228
271
  margin-top: var(--spacing-xl);
@@ -624,7 +667,51 @@
624
667
  font-weight: var(--font-weight-semibold);
625
668
  background: var(--border-subtle);
626
669
  padding: var(--spacing-xs) var(--spacing-sm);
627
- border-radius: 12px;
670
+ border-radius: var(--radius-xl);
671
+ }
672
+
673
+ /* Subject Quality Breakdown */
674
+ .subject-quality-breakdown {
675
+ margin: var(--spacing-lg) 0;
676
+ padding: var(--spacing-md);
677
+ background: var(--bg-primary);
678
+ border: 1px solid var(--border-default);
679
+ border-radius: var(--radius-md);
680
+ }
681
+
682
+ .subject-quality-breakdown h3 {
683
+ margin-top: 0;
684
+ margin-bottom: var(--spacing-md);
685
+ }
686
+
687
+ .subject-metrics-grid {
688
+ display: grid;
689
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
690
+ gap: var(--spacing-md);
691
+ }
692
+
693
+ .subject-metric {
694
+ display: flex;
695
+ flex-direction: column;
696
+ gap: var(--spacing-xs);
697
+ padding: var(--spacing-sm);
698
+ background: var(--bg-secondary);
699
+ border-radius: var(--radius-sm);
700
+ }
701
+
702
+ .subject-metric .metric-icon {
703
+ font-size: var(--font-size-lg);
704
+ }
705
+
706
+ .subject-metric .metric-name {
707
+ font-size: var(--font-size-sm);
708
+ font-weight: var(--font-weight-medium);
709
+ color: var(--text-primary);
710
+ }
711
+
712
+ .subject-metric .metric-detail {
713
+ font-size: var(--font-size-xs);
714
+ color: var(--text-muted);
628
715
  }
629
716
 
630
717
  .types-grid {
@@ -1062,6 +1149,12 @@
1062
1149
  color: var(--text-primary);
1063
1150
  }
1064
1151
 
1152
+ .impact-content {
1153
+ display: flex;
1154
+ flex-direction: column;
1155
+ gap: 8px;
1156
+ }
1157
+
1065
1158
  .impact-overview {
1066
1159
  display: flex;
1067
1160
  gap: var(--spacing-xl);
@@ -1124,12 +1217,18 @@
1124
1217
  .impact-breakdown {
1125
1218
  flex: 1;
1126
1219
  min-width: 250px;
1220
+ margin-top: 0;
1221
+ }
1222
+
1223
+ .impact-breakdown h3 {
1224
+ margin-top: 0;
1127
1225
  }
1128
1226
 
1129
1227
  .breakdown-items {
1130
1228
  display: flex;
1131
1229
  flex-direction: column;
1132
1230
  gap: var(--spacing-md);
1231
+ margin-top: var(--spacing-sm);
1133
1232
  }
1134
1233
 
1135
1234
  .breakdown-item {
@@ -1147,6 +1246,19 @@
1147
1246
  .breakdown-label { color: var(--text-secondary); }
1148
1247
  .breakdown-value { color: var(--text-primary); font-weight: var(--font-weight-medium); }
1149
1248
 
1249
+ .info-tooltip {
1250
+ color: var(--text-muted);
1251
+ cursor: help;
1252
+ font-size: 0.85em;
1253
+ margin-left: 4px;
1254
+ opacity: 0.6;
1255
+ transition: opacity 0.2s;
1256
+ }
1257
+
1258
+ .info-tooltip:hover {
1259
+ opacity: 1;
1260
+ }
1261
+
1150
1262
  .breakdown-bar {
1151
1263
  height: 8px;
1152
1264
  background: var(--border-subtle);
@@ -1225,6 +1337,14 @@
1225
1337
  color: var(--accent-blue);
1226
1338
  }
1227
1339
 
1340
+ .impact-files {
1341
+ margin-top: var(--spacing-lg);
1342
+ }
1343
+
1344
+ .impact-files h3 {
1345
+ margin-bottom: var(--spacing-sm);
1346
+ }
1347
+
1228
1348
  .insights-list,
1229
1349
  .recommendations {
1230
1350
  margin-top: var(--spacing-lg);
@@ -214,6 +214,27 @@
214
214
  text-align: center;
215
215
  }
216
216
 
217
+ .more-files-btn {
218
+ display: block;
219
+ width: 100%;
220
+ padding: var(--spacing-sm) var(--spacing-md);
221
+ margin-top: var(--spacing-sm);
222
+ background: var(--bg-tertiary);
223
+ border: 1px solid var(--border-default);
224
+ border-radius: var(--radius-sm);
225
+ color: var(--text-secondary);
226
+ font-size: var(--font-size-sm);
227
+ cursor: pointer;
228
+ transition: all 0.2s ease;
229
+ text-align: center;
230
+ }
231
+
232
+ .more-files-btn:hover {
233
+ background: var(--bg-secondary);
234
+ color: var(--text-primary);
235
+ border-color: var(--border-emphasis);
236
+ }
237
+
217
238
  /* Risk Badge Enhancement for Files */
218
239
  .file-table .risk-badge {
219
240
  font-size: var(--font-size-xs);
@@ -2,62 +2,81 @@
2
2
 
3
3
  /* ===== Velocity Section ===== */
4
4
  .velocity-section {
5
- margin-bottom: 2rem;
5
+ margin-bottom: var(--spacing-xl);
6
6
  }
7
7
 
8
8
  .velocity-stats {
9
9
  display: grid;
10
10
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
11
- gap: 1rem;
12
- margin-bottom: 1.5rem;
11
+ gap: var(--spacing-md);
12
+ margin-bottom: var(--spacing-lg);
13
13
  }
14
14
 
15
15
  .velocity-stat-card {
16
- background: var(--card-bg);
17
- border-radius: 12px;
18
- padding: 1rem;
19
16
  display: flex;
17
+ flex-direction: column;
20
18
  align-items: center;
21
- gap: 1rem;
22
- border: 1px solid var(--border-color);
19
+ justify-content: center;
20
+ text-align: center;
21
+ gap: var(--spacing-sm);
22
+ padding: var(--spacing-md);
23
+ background: var(--bg-primary);
24
+ border: 1px solid var(--border-default);
25
+ border-radius: var(--radius-md);
26
+ transition: border-color var(--transition-fast);
27
+ }
28
+
29
+ .velocity-stat-card:hover {
30
+ border-color: var(--border-emphasis);
23
31
  }
24
32
 
25
33
  .velocity-stat-card .stat-icon {
26
- font-size: 2rem;
34
+ font-size: 32px;
35
+ line-height: 1;
36
+ }
37
+
38
+ .velocity-stat-card .stat-info {
39
+ display: flex;
40
+ flex-direction: column;
41
+ align-items: center;
27
42
  }
28
43
 
29
44
  .velocity-stat-card .stat-label {
30
- font-size: 0.75rem;
31
- color: var(--text-muted);
45
+ font-size: var(--font-size-sm);
46
+ color: var(--text-secondary);
32
47
  text-transform: uppercase;
33
48
  letter-spacing: 0.5px;
49
+ font-weight: var(--font-weight-medium);
50
+ margin-bottom: var(--spacing-xs);
34
51
  }
35
52
 
36
53
  .velocity-stat-card .stat-value {
37
- font-size: 1.5rem;
38
- font-weight: 700;
54
+ font-size: 24px;
55
+ font-weight: var(--font-weight-semibold);
56
+ color: var(--text-primary);
57
+ margin-bottom: var(--spacing-xs);
39
58
  }
40
59
 
41
60
  .velocity-stat-card .stat-value.positive { color: #69db7c; }
42
61
  .velocity-stat-card .stat-value.negative { color: #ff6b6b; }
43
- .velocity-stat-card .stat-value.neutral { color: var(--text-muted); }
62
+ .velocity-stat-card .stat-value.neutral { color: var(--text-secondary); }
44
63
 
45
64
  .velocity-stat-card .stat-detail {
46
- font-size: 0.8rem;
47
- color: var(--text-muted);
65
+ font-size: var(--font-size-sm);
66
+ color: var(--text-secondary);
48
67
  }
49
68
 
50
69
  .velocity-chart-container {
51
- background: var(--card-bg);
52
- border-radius: 12px;
53
- padding: 1.5rem;
54
- border: 1px solid var(--border-color);
55
- margin-bottom: 1.5rem;
70
+ background: var(--bg-primary);
71
+ border-radius: var(--radius-md);
72
+ padding: var(--spacing-lg);
73
+ border: 1px solid var(--border-default);
74
+ margin-bottom: var(--spacing-lg);
56
75
  }
57
76
 
58
77
  .velocity-chart-container h3 {
59
78
  margin-top: 0;
60
- margin-bottom: 1rem;
79
+ margin-bottom: var(--spacing-md);
61
80
  }
62
81
 
63
82
  .velocity-chart {
@@ -77,8 +96,9 @@
77
96
  }
78
97
 
79
98
  .velocity-chart .legend-label {
80
- fill: var(--text-color);
81
- font-size: 10px;
99
+ fill: var(--text-primary);
100
+ font-size: 12px;
101
+ font-weight: 500;
82
102
  }
83
103
 
84
104
  .velocity-chart .anomaly-marker {
@@ -158,47 +178,87 @@
158
178
 
159
179
  /* ===== Gap Section ===== */
160
180
  .gap-section {
161
- margin-bottom: 2rem;
181
+ margin-bottom: var(--spacing-xl);
162
182
  }
163
183
 
164
184
  .gap-stats {
165
185
  display: grid;
166
186
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
167
- gap: 1rem;
168
- margin-bottom: 1.5rem;
187
+ gap: var(--spacing-md);
188
+ margin-bottom: var(--spacing-lg);
169
189
  }
170
190
 
171
191
  .gap-stat-card {
172
- background: var(--card-bg);
173
- border-radius: 12px;
174
- padding: 1rem;
175
192
  display: flex;
193
+ flex-direction: column;
176
194
  align-items: center;
177
- gap: 1rem;
178
- border: 1px solid var(--border-color);
195
+ justify-content: center;
196
+ text-align: center;
197
+ gap: var(--spacing-sm);
198
+ padding: var(--spacing-md);
199
+ background: var(--bg-primary);
200
+ border: 1px solid var(--border-default);
201
+ border-radius: var(--radius-md);
202
+ transition: border-color var(--transition-fast);
203
+ }
204
+
205
+ .gap-stat-card:hover {
206
+ border-color: var(--border-emphasis);
179
207
  }
180
208
 
181
209
  .gap-stat-card.risk-card {
182
210
  border-left: 4px solid var(--risk-color);
183
211
  }
184
212
 
213
+ .gap-stat-card .stat-icon {
214
+ font-size: 32px;
215
+ line-height: 1;
216
+ }
217
+
218
+ .gap-stat-card .stat-info {
219
+ display: flex;
220
+ flex-direction: column;
221
+ align-items: center;
222
+ }
223
+
224
+ .gap-stat-card .stat-label {
225
+ font-size: var(--font-size-sm);
226
+ color: var(--text-secondary);
227
+ text-transform: uppercase;
228
+ letter-spacing: 0.5px;
229
+ font-weight: var(--font-weight-medium);
230
+ margin-bottom: var(--spacing-xs);
231
+ }
232
+
233
+ .gap-stat-card .stat-value {
234
+ font-size: 24px;
235
+ font-weight: var(--font-weight-semibold);
236
+ color: var(--text-primary);
237
+ margin-bottom: var(--spacing-xs);
238
+ }
239
+
240
+ .gap-stat-card .stat-detail {
241
+ font-size: var(--font-size-sm);
242
+ color: var(--text-secondary);
243
+ }
244
+
185
245
  .gap-stat-card .stat-value.risk-low { color: #69db7c; }
186
246
  .gap-stat-card .stat-value.risk-medium { color: #ffd43b; }
187
247
  .gap-stat-card .stat-value.risk-high { color: #ff922b; }
188
248
  .gap-stat-card .stat-value.risk-critical { color: #ff6b6b; }
189
249
 
190
250
  .risk-factors {
191
- background: var(--card-bg);
192
- border-radius: 12px;
193
- padding: 1rem 1.5rem;
194
- border: 1px solid var(--border-color);
195
- margin-bottom: 1.5rem;
251
+ background: var(--bg-primary);
252
+ border-radius: var(--radius-md);
253
+ padding: var(--spacing-md) var(--spacing-lg);
254
+ border: 1px solid var(--border-default);
255
+ margin-bottom: var(--spacing-lg);
196
256
  }
197
257
 
198
258
  .risk-factors h4 {
199
- margin: 0 0 0.5rem 0;
200
- font-size: 0.9rem;
201
- color: var(--text-muted);
259
+ margin: 0 0 var(--spacing-sm) 0;
260
+ font-size: var(--font-size-sm);
261
+ color: var(--text-secondary);
202
262
  }
203
263
 
204
264
  .risk-factors ul {
@@ -207,16 +267,16 @@
207
267
  }
208
268
 
209
269
  .risk-factors li {
210
- margin-bottom: 0.25rem;
211
- font-size: 0.9rem;
270
+ margin-bottom: var(--spacing-xs);
271
+ font-size: var(--font-size-sm);
212
272
  }
213
273
 
214
274
  .gap-timeline-container {
215
- background: var(--card-bg);
216
- border-radius: 12px;
217
- padding: 1.5rem;
218
- border: 1px solid var(--border-color);
219
- margin-bottom: 1.5rem;
275
+ background: var(--bg-primary);
276
+ border-radius: var(--radius-md);
277
+ padding: var(--spacing-lg);
278
+ border: 1px solid var(--border-default);
279
+ margin-bottom: var(--spacing-lg);
220
280
  }
221
281
 
222
282
  .gap-timeline-container h3 {
@@ -1027,7 +1087,7 @@
1027
1087
 
1028
1088
  .insights-list {
1029
1089
  list-style: none;
1030
- padding: 0;
1090
+ padding: var(--spacing-md);
1031
1091
  margin: 0;
1032
1092
  }
1033
1093