@jjlmoya/utils-finance 1.30.0 → 1.32.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 (215) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/en.ts +1 -1
  3. package/src/category/i18n/es.ts +4 -4
  4. package/src/category/i18n/fr.ts +159 -159
  5. package/src/category/i18n/pl.ts +1 -1
  6. package/src/category/i18n/ru.ts +158 -158
  7. package/src/category/index.ts +39 -38
  8. package/src/category/seo.astro +1 -1
  9. package/src/components/PreviewNavSidebar.astro +1 -1
  10. package/src/components/PreviewToolbar.astro +1 -1
  11. package/src/data.ts +1 -1
  12. package/src/entries.ts +4 -1
  13. package/src/env.d.ts +1 -1
  14. package/src/index.ts +1 -0
  15. package/src/layouts/PreviewLayout.astro +113 -113
  16. package/src/pages/index.astro +1 -1
  17. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  18. package/src/tests/category_seo_quality.test.ts +76 -0
  19. package/src/tests/faq_count.test.ts +1 -1
  20. package/src/tests/locale_completeness.test.ts +2 -2
  21. package/src/tests/mocks/astro_mock.js +1 -1
  22. package/src/tests/no_h1_in_components.test.ts +1 -1
  23. package/src/tests/script_density.test.ts +94 -94
  24. package/src/tests/seo_length.test.ts +23 -23
  25. package/src/tests/seo_translation_completeness.test.ts +69 -0
  26. package/src/tests/seo_wellformed_export.test.ts +65 -0
  27. package/src/tests/tool_validation.test.ts +17 -17
  28. package/src/tool/compoundInterest/compound-interest-calculator.css +236 -236
  29. package/src/tool/compoundInterest/entry.ts +32 -32
  30. package/src/tool/compoundInterest/i18n/de.ts +195 -195
  31. package/src/tool/compoundInterest/i18n/fr.ts +195 -195
  32. package/src/tool/compoundInterest/i18n/it.ts +195 -195
  33. package/src/tool/compoundInterest/i18n/pl.ts +194 -194
  34. package/src/tool/compoundInterest/i18n/ru.ts +195 -195
  35. package/src/tool/compoundInterest/i18n/tr.ts +195 -195
  36. package/src/tool/compoundInterest/i18n/zh.ts +189 -189
  37. package/src/tool/compoundInterest/seo.astro +15 -15
  38. package/src/tool/courtFeeCalculator/i18n/it.ts +158 -158
  39. package/src/tool/courtFeeCalculator/i18n/ru.ts +158 -158
  40. package/src/tool/courtFeeCalculator/i18n/tr.ts +158 -158
  41. package/src/tool/courtFeeCalculator/seo.astro +15 -15
  42. package/src/tool/courtFeeCalculator/spanish-court-fees-calculator.css +197 -197
  43. package/src/tool/debtSnowball/bibliography.ts +12 -12
  44. package/src/tool/debtSnowball/i18n/de.ts +16 -16
  45. package/src/tool/debtSnowball/i18n/id.ts +16 -16
  46. package/src/tool/debtSnowball/i18n/it.ts +168 -168
  47. package/src/tool/debtSnowball/i18n/nl.ts +16 -16
  48. package/src/tool/debtSnowball/i18n/pl.ts +168 -168
  49. package/src/tool/debtSnowball/i18n/pt.ts +1 -1
  50. package/src/tool/debtSnowball/i18n/ru.ts +1 -1
  51. package/src/tool/debtSnowball/i18n/sv.ts +22 -29
  52. package/src/tool/debtSnowball/i18n/tr.ts +168 -168
  53. package/src/tool/debtSnowball/i18n/zh.ts +168 -168
  54. package/src/tool/debtSnowball/seo.astro +15 -15
  55. package/src/tool/dividendYield/bibliography.astro +14 -0
  56. package/src/tool/dividendYield/bibliography.ts +12 -0
  57. package/src/tool/dividendYield/component.astro +83 -0
  58. package/src/tool/dividendYield/controller.ts +85 -0
  59. package/src/tool/dividendYield/dividend-yield-calculator.css +352 -0
  60. package/src/tool/dividendYield/dom-views.ts +58 -0
  61. package/src/tool/dividendYield/entry.ts +29 -0
  62. package/src/tool/dividendYield/evaluator.ts +16 -0
  63. package/src/tool/dividendYield/i18n/de.ts +53 -0
  64. package/src/tool/dividendYield/i18n/en.ts +138 -0
  65. package/src/tool/dividendYield/i18n/es.ts +49 -0
  66. package/src/tool/dividendYield/i18n/fr.ts +49 -0
  67. package/src/tool/dividendYield/i18n/id.ts +49 -0
  68. package/src/tool/dividendYield/i18n/it.ts +49 -0
  69. package/src/tool/dividendYield/i18n/ja.ts +49 -0
  70. package/src/tool/dividendYield/i18n/ko.ts +25 -0
  71. package/src/tool/dividendYield/i18n/nl.ts +25 -0
  72. package/src/tool/dividendYield/i18n/pl.ts +25 -0
  73. package/src/tool/dividendYield/i18n/pt.ts +25 -0
  74. package/src/tool/dividendYield/i18n/ru.ts +25 -0
  75. package/src/tool/dividendYield/i18n/sv.ts +25 -0
  76. package/src/tool/dividendYield/i18n/tr.ts +25 -0
  77. package/src/tool/dividendYield/i18n/zh.ts +25 -0
  78. package/src/tool/dividendYield/index.ts +11 -0
  79. package/src/tool/dividendYield/logic.test.ts +73 -0
  80. package/src/tool/dividendYield/logic.ts +55 -0
  81. package/src/tool/dividendYield/seo.astro +14 -0
  82. package/src/tool/dividendYield/storage.ts +24 -0
  83. package/src/tool/dividendYield/ui.ts +33 -0
  84. package/src/tool/financialFreedom/financial-freedom-calculator.css +311 -311
  85. package/src/tool/financialFreedom/i18n/en.ts +182 -182
  86. package/src/tool/financialFreedom/i18n/fr.ts +128 -128
  87. package/src/tool/financialFreedom/i18n/id.ts +24 -7
  88. package/src/tool/financialFreedom/i18n/it.ts +24 -7
  89. package/src/tool/financialFreedom/i18n/ja.ts +1 -1
  90. package/src/tool/financialFreedom/i18n/nl.ts +24 -7
  91. package/src/tool/financialFreedom/i18n/pl.ts +24 -7
  92. package/src/tool/financialFreedom/i18n/pt.ts +24 -7
  93. package/src/tool/financialFreedom/i18n/ru.ts +128 -128
  94. package/src/tool/financialFreedom/i18n/sv.ts +1 -1
  95. package/src/tool/financialFreedom/i18n/tr.ts +2 -2
  96. package/src/tool/financialFreedom/i18n/zh.ts +128 -128
  97. package/src/tool/fireCalculator/i18n/it.ts +241 -241
  98. package/src/tool/fireCalculator/i18n/ru.ts +241 -241
  99. package/src/tool/fireCalculator/i18n/tr.ts +241 -241
  100. package/src/tool/fireCalculator/i18n/zh.ts +241 -241
  101. package/src/tool/fireCalculator/seo.astro +15 -15
  102. package/src/tool/ibanBicSwiftConverter/i18n/fr.ts +151 -151
  103. package/src/tool/ibanBicSwiftConverter/i18n/it.ts +118 -118
  104. package/src/tool/ibanBicSwiftConverter/i18n/ru.ts +118 -118
  105. package/src/tool/ibanBicSwiftConverter/i18n/tr.ts +118 -118
  106. package/src/tool/ibanBicSwiftConverter/iban-to-bic-swift-converter.css +366 -366
  107. package/src/tool/ibanBicSwiftConverter/seo.astro +15 -15
  108. package/src/tool/inflation/bibliography.ts +20 -20
  109. package/src/tool/inflation/entry.ts +32 -32
  110. package/src/tool/inflation/i18n/de.ts +284 -284
  111. package/src/tool/inflation/i18n/fr.ts +284 -284
  112. package/src/tool/inflation/i18n/it.ts +284 -284
  113. package/src/tool/inflation/i18n/nl.ts +284 -284
  114. package/src/tool/inflation/i18n/pl.ts +284 -284
  115. package/src/tool/inflation/i18n/pt.ts +284 -284
  116. package/src/tool/inflation/i18n/ru.ts +284 -284
  117. package/src/tool/inflation/i18n/sv.ts +284 -284
  118. package/src/tool/inflation/i18n/tr.ts +284 -284
  119. package/src/tool/inflation/i18n/zh.ts +284 -284
  120. package/src/tool/inflation/seo.astro +15 -15
  121. package/src/tool/lateInterest/bibliography.ts +16 -16
  122. package/src/tool/lateInterest/entry.ts +32 -32
  123. package/src/tool/lateInterest/i18n/de.ts +213 -213
  124. package/src/tool/lateInterest/i18n/es.ts +213 -213
  125. package/src/tool/lateInterest/i18n/it.ts +213 -213
  126. package/src/tool/lateInterest/i18n/nl.ts +213 -213
  127. package/src/tool/lateInterest/i18n/pl.ts +213 -213
  128. package/src/tool/lateInterest/i18n/pt.ts +213 -213
  129. package/src/tool/lateInterest/i18n/ru.ts +213 -213
  130. package/src/tool/lateInterest/i18n/sv.ts +213 -213
  131. package/src/tool/lateInterest/i18n/tr.ts +213 -213
  132. package/src/tool/lateInterest/i18n/zh.ts +213 -213
  133. package/src/tool/lateInterest/seo.astro +15 -15
  134. package/src/tool/legalInterestRate/i18n/it.ts +129 -129
  135. package/src/tool/legalInterestRate/i18n/ru.ts +129 -129
  136. package/src/tool/legalInterestRate/i18n/tr.ts +128 -121
  137. package/src/tool/legalInterestRate/i18n/zh.ts +11 -4
  138. package/src/tool/legalInterestRate/seo.astro +15 -15
  139. package/src/tool/lotteryOptimizer/i18n/it.ts +163 -163
  140. package/src/tool/lotteryOptimizer/i18n/pl.ts +163 -163
  141. package/src/tool/lotteryOptimizer/i18n/ru.ts +163 -163
  142. package/src/tool/lotteryOptimizer/i18n/tr.ts +163 -163
  143. package/src/tool/lotteryOptimizer/i18n/zh.ts +162 -155
  144. package/src/tool/lotteryOptimizer/seo.astro +15 -15
  145. package/src/tool/mortgage/bibliography.ts +20 -20
  146. package/src/tool/mortgage/entry.ts +32 -32
  147. package/src/tool/mortgage/i18n/de.ts +210 -210
  148. package/src/tool/mortgage/i18n/es.ts +210 -210
  149. package/src/tool/mortgage/i18n/fr.ts +210 -210
  150. package/src/tool/mortgage/i18n/id.ts +210 -210
  151. package/src/tool/mortgage/i18n/it.ts +210 -210
  152. package/src/tool/mortgage/i18n/nl.ts +210 -210
  153. package/src/tool/mortgage/i18n/pl.ts +210 -210
  154. package/src/tool/mortgage/i18n/ru.ts +210 -210
  155. package/src/tool/mortgage/i18n/tr.ts +210 -210
  156. package/src/tool/mortgage/i18n/zh.ts +210 -210
  157. package/src/tool/mortgage/mortgage-calculator.css +595 -595
  158. package/src/tool/mortgage/seo.astro +15 -15
  159. package/src/tool/percentageCalculator/bibliography.ts +16 -16
  160. package/src/tool/percentageCalculator/entry.ts +32 -32
  161. package/src/tool/percentageCalculator/i18n/de.ts +220 -220
  162. package/src/tool/percentageCalculator/i18n/en.ts +220 -220
  163. package/src/tool/percentageCalculator/i18n/es.ts +220 -220
  164. package/src/tool/percentageCalculator/i18n/fr.ts +220 -220
  165. package/src/tool/percentageCalculator/i18n/it.ts +220 -220
  166. package/src/tool/percentageCalculator/i18n/pl.ts +220 -220
  167. package/src/tool/percentageCalculator/i18n/ru.ts +220 -220
  168. package/src/tool/percentageCalculator/i18n/tr.ts +220 -220
  169. package/src/tool/percentageCalculator/i18n/zh.ts +220 -220
  170. package/src/tool/percentageCalculator/seo.astro +15 -15
  171. package/src/tool/profitability/i18n/de.ts +24 -7
  172. package/src/tool/profitability/i18n/fr.ts +121 -104
  173. package/src/tool/profitability/i18n/id.ts +2 -2
  174. package/src/tool/profitability/i18n/it.ts +24 -7
  175. package/src/tool/profitability/i18n/ja.ts +1 -1
  176. package/src/tool/profitability/i18n/nl.ts +24 -7
  177. package/src/tool/profitability/i18n/pl.ts +1 -1
  178. package/src/tool/profitability/i18n/pt.ts +24 -7
  179. package/src/tool/profitability/i18n/ru.ts +118 -118
  180. package/src/tool/profitability/i18n/sv.ts +1 -1
  181. package/src/tool/profitability/i18n/tr.ts +1 -1
  182. package/src/tool/profitability/i18n/zh.ts +118 -118
  183. package/src/tool/profitability/profitability-calculator.css +229 -229
  184. package/src/tool/rentIncreaseCalculator/i18n/it.ts +125 -125
  185. package/src/tool/rentIncreaseCalculator/i18n/tr.ts +125 -125
  186. package/src/tool/rentIncreaseCalculator/rent-increase-calculator.css +326 -326
  187. package/src/tool/rentIncreaseCalculator/seo.astro +15 -15
  188. package/src/tool/revolvingCardCalculator/i18n/de.ts +38 -20
  189. package/src/tool/revolvingCardCalculator/i18n/es.ts +19 -18
  190. package/src/tool/revolvingCardCalculator/i18n/fr.ts +32 -28
  191. package/src/tool/revolvingCardCalculator/i18n/id.ts +18 -18
  192. package/src/tool/revolvingCardCalculator/i18n/it.ts +18 -18
  193. package/src/tool/revolvingCardCalculator/i18n/ja.ts +2 -2
  194. package/src/tool/revolvingCardCalculator/i18n/ko.ts +2 -2
  195. package/src/tool/revolvingCardCalculator/i18n/nl.ts +22 -19
  196. package/src/tool/revolvingCardCalculator/i18n/pl.ts +2 -2
  197. package/src/tool/revolvingCardCalculator/i18n/pt.ts +2 -2
  198. package/src/tool/revolvingCardCalculator/i18n/ru.ts +2 -2
  199. package/src/tool/revolvingCardCalculator/i18n/sv.ts +2 -2
  200. package/src/tool/revolvingCardCalculator/i18n/tr.ts +2 -2
  201. package/src/tool/revolvingCardCalculator/i18n/zh.ts +6 -6
  202. package/src/tool/salaryEmployerCost/i18n/de.ts +10 -10
  203. package/src/tool/salaryEmployerCost/i18n/fr.ts +9 -9
  204. package/src/tool/salaryEmployerCost/i18n/id.ts +9 -9
  205. package/src/tool/salaryEmployerCost/i18n/it.ts +9 -9
  206. package/src/tool/salaryEmployerCost/i18n/ja.ts +1 -1
  207. package/src/tool/salaryEmployerCost/i18n/ko.ts +1 -1
  208. package/src/tool/salaryEmployerCost/i18n/nl.ts +2 -2
  209. package/src/tool/salaryEmployerCost/i18n/pl.ts +2 -2
  210. package/src/tool/salaryEmployerCost/i18n/pt.ts +2 -2
  211. package/src/tool/salaryEmployerCost/i18n/ru.ts +2 -2
  212. package/src/tool/salaryEmployerCost/i18n/sv.ts +2 -2
  213. package/src/tool/salaryEmployerCost/i18n/tr.ts +2 -2
  214. package/src/tool/salaryEmployerCost/i18n/zh.ts +2 -2
  215. package/src/tools.ts +2 -1
@@ -1,95 +1,95 @@
1
- :root {
2
- --ric-bg-card: #fff;
3
- --ric-border-card: #eef2f6;
4
- --ric-shadow-card: 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 20px 40px -8px rgba(0, 0, 0, 0.05);
5
- --ric-header-bg: linear-gradient(90deg, #10b981, #14b8a6);
6
- --ric-text-title: #0f172a;
7
- --ric-text-secondary: #64748b;
8
- --ric-text-primary: #1e293b;
9
- --ric-bg-input-section: #f8fafc;
10
- --ric-border-input-section: #f1f5f9;
11
- --ric-bg-input: #fff;
12
- --ric-text-input: #1e293b;
13
- --ric-border-input: transparent;
14
- --ric-focus-border: #10b981;
15
- --ric-focus-ring: rgba(16, 185, 129, 0.15);
16
- --ric-icon-color: #10b981;
17
- --ric-bg-result: #fff;
18
- --ric-border-result: #eef2f6;
19
- --ric-text-result-value: #0f172a;
20
- --ric-text-result-label: #94a3b8;
21
- --ric-bg-bar: #f1f5f9;
22
- --ric-bg-bar-fill: #10b981;
23
- --ric-text-bar: #64748b;
24
- --ric-bg-badge: #d1fae5;
25
- --ric-text-badge: #059669;
26
- --ric-bg-button: #0f172a;
27
- --ric-text-button: #fff;
28
- --ric-bg-button-hover: #1e293b;
29
- --ric-highlight-color: #10b981;
30
- }
31
-
32
- .theme-dark {
33
- --ric-bg-card: #0f172a;
34
- --ric-border-card: rgba(255, 255, 255, 0.05);
35
- --ric-text-title: #f8fafc;
36
- --ric-text-secondary: #94a3b8;
37
- --ric-text-primary: #f8fafc;
38
- --ric-bg-input-section: rgba(30, 41, 59, 0.5);
39
- --ric-border-input-section: rgba(255, 255, 255, 0.05);
40
- --ric-bg-input: #1e293b;
41
- --ric-text-input: #f8fafc;
42
- --ric-border-input: #334155;
43
- --ric-focus-border: #10b981;
44
- --ric-focus-ring: rgba(16, 185, 129, 0.15);
45
- --ric-icon-color: #34d399;
46
- --ric-bg-result: #1e293b;
47
- --ric-border-result: rgba(255, 255, 255, 0.05);
48
- --ric-text-result-value: #f8fafc;
49
- --ric-text-result-label: #94a3b8;
50
- --ric-bg-bar: #1e293b;
51
- --ric-bg-bar-fill: #10b981;
52
- --ric-text-bar: #cbd5e1;
53
- --ric-bg-badge: rgba(16, 185, 129, 0.1);
54
- --ric-text-badge: #6ee7b7;
55
- --ric-bg-button: #10b981;
56
- --ric-text-button: #fff;
57
- --ric-bg-button-hover: #059669;
58
- --ric-highlight-color: #34d399;
59
- }
60
-
61
- [data-theme='dark'] {
62
- --ric-bg-card: #0f172a;
63
- --ric-border-card: rgba(255, 255, 255, 0.05);
64
- --ric-text-title: #f8fafc;
65
- --ric-text-secondary: #94a3b8;
66
- --ric-text-primary: #f8fafc;
67
- --ric-bg-input-section: rgba(30, 41, 59, 0.5);
68
- --ric-border-input-section: rgba(255, 255, 255, 0.05);
69
- --ric-bg-input: #1e293b;
70
- --ric-text-input: #f8fafc;
71
- --ric-border-input: #334155;
72
- --ric-focus-border: #10b981;
73
- --ric-focus-ring: rgba(16, 185, 129, 0.15);
74
- --ric-icon-color: #34d399;
75
- --ric-bg-result: #1e293b;
76
- --ric-border-result: rgba(255, 255, 255, 0.05);
77
- --ric-text-result-value: #f8fafc;
78
- --ric-text-result-label: #94a3b8;
79
- --ric-bg-bar: #1e293b;
80
- --ric-bg-bar-fill: #10b981;
81
- --ric-text-bar: #cbd5e1;
82
- --ric-bg-badge: rgba(16, 185, 129, 0.1);
83
- --ric-text-badge: #6ee7b7;
84
- --ric-bg-button: #10b981;
85
- --ric-text-button: #fff;
86
- --ric-bg-button-hover: #059669;
87
- --ric-highlight-color: #34d399;
88
- }
89
-
90
- .ric-container {
91
- width: 100%;
92
- max-width: 900px;
1
+ :root {
2
+ --ric-bg-card: #fff;
3
+ --ric-border-card: #eef2f6;
4
+ --ric-shadow-card: 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 20px 40px -8px rgba(0, 0, 0, 0.05);
5
+ --ric-header-bg: linear-gradient(90deg, #10b981, #14b8a6);
6
+ --ric-text-title: #0f172a;
7
+ --ric-text-secondary: #64748b;
8
+ --ric-text-primary: #1e293b;
9
+ --ric-bg-input-section: #f8fafc;
10
+ --ric-border-input-section: #f1f5f9;
11
+ --ric-bg-input: #fff;
12
+ --ric-text-input: #1e293b;
13
+ --ric-border-input: transparent;
14
+ --ric-focus-border: #10b981;
15
+ --ric-focus-ring: rgba(16, 185, 129, 0.15);
16
+ --ric-icon-color: #10b981;
17
+ --ric-bg-result: #fff;
18
+ --ric-border-result: #eef2f6;
19
+ --ric-text-result-value: #0f172a;
20
+ --ric-text-result-label: #94a3b8;
21
+ --ric-bg-bar: #f1f5f9;
22
+ --ric-bg-bar-fill: #10b981;
23
+ --ric-text-bar: #64748b;
24
+ --ric-bg-badge: #d1fae5;
25
+ --ric-text-badge: #059669;
26
+ --ric-bg-button: #0f172a;
27
+ --ric-text-button: #fff;
28
+ --ric-bg-button-hover: #1e293b;
29
+ --ric-highlight-color: #10b981;
30
+ }
31
+
32
+ .theme-dark {
33
+ --ric-bg-card: #0f172a;
34
+ --ric-border-card: rgba(255, 255, 255, 0.05);
35
+ --ric-text-title: #f8fafc;
36
+ --ric-text-secondary: #94a3b8;
37
+ --ric-text-primary: #f8fafc;
38
+ --ric-bg-input-section: rgba(30, 41, 59, 0.5);
39
+ --ric-border-input-section: rgba(255, 255, 255, 0.05);
40
+ --ric-bg-input: #1e293b;
41
+ --ric-text-input: #f8fafc;
42
+ --ric-border-input: #334155;
43
+ --ric-focus-border: #10b981;
44
+ --ric-focus-ring: rgba(16, 185, 129, 0.15);
45
+ --ric-icon-color: #34d399;
46
+ --ric-bg-result: #1e293b;
47
+ --ric-border-result: rgba(255, 255, 255, 0.05);
48
+ --ric-text-result-value: #f8fafc;
49
+ --ric-text-result-label: #94a3b8;
50
+ --ric-bg-bar: #1e293b;
51
+ --ric-bg-bar-fill: #10b981;
52
+ --ric-text-bar: #cbd5e1;
53
+ --ric-bg-badge: rgba(16, 185, 129, 0.1);
54
+ --ric-text-badge: #6ee7b7;
55
+ --ric-bg-button: #10b981;
56
+ --ric-text-button: #fff;
57
+ --ric-bg-button-hover: #059669;
58
+ --ric-highlight-color: #34d399;
59
+ }
60
+
61
+ [data-theme='dark'] {
62
+ --ric-bg-card: #0f172a;
63
+ --ric-border-card: rgba(255, 255, 255, 0.05);
64
+ --ric-text-title: #f8fafc;
65
+ --ric-text-secondary: #94a3b8;
66
+ --ric-text-primary: #f8fafc;
67
+ --ric-bg-input-section: rgba(30, 41, 59, 0.5);
68
+ --ric-border-input-section: rgba(255, 255, 255, 0.05);
69
+ --ric-bg-input: #1e293b;
70
+ --ric-text-input: #f8fafc;
71
+ --ric-border-input: #334155;
72
+ --ric-focus-border: #10b981;
73
+ --ric-focus-ring: rgba(16, 185, 129, 0.15);
74
+ --ric-icon-color: #34d399;
75
+ --ric-bg-result: #1e293b;
76
+ --ric-border-result: rgba(255, 255, 255, 0.05);
77
+ --ric-text-result-value: #f8fafc;
78
+ --ric-text-result-label: #94a3b8;
79
+ --ric-bg-bar: #1e293b;
80
+ --ric-bg-bar-fill: #10b981;
81
+ --ric-text-bar: #cbd5e1;
82
+ --ric-bg-badge: rgba(16, 185, 129, 0.1);
83
+ --ric-text-badge: #6ee7b7;
84
+ --ric-bg-button: #10b981;
85
+ --ric-text-button: #fff;
86
+ --ric-bg-button-hover: #059669;
87
+ --ric-highlight-color: #34d399;
88
+ }
89
+
90
+ .ric-container {
91
+ width: 100%;
92
+ max-width: 900px;
93
93
  margin: 0 auto;
94
94
  perspective: 1000px;
95
95
  padding: 2rem 1rem;
@@ -102,259 +102,259 @@
102
102
  .ric-container *::after {
103
103
  box-sizing: border-box;
104
104
  }
105
-
106
- .ric-card {
107
- background: var(--ric-bg-card);
108
- border: 1px solid var(--ric-border-card);
109
- border-radius: 32px;
110
- padding: 3rem;
111
- box-shadow: var(--ric-shadow-card);
105
+
106
+ .ric-card {
107
+ background: var(--ric-bg-card);
108
+ border: 1px solid var(--ric-border-card);
109
+ border-radius: 32px;
110
+ padding: 3rem;
111
+ box-shadow: var(--ric-shadow-card);
112
112
  position: relative;
113
113
  overflow: hidden;
114
114
  color-scheme: light;
115
115
  min-width: 0;
116
116
  }
117
-
118
- .theme-dark .ric-card,
119
- [data-theme='dark'] .ric-card {
120
- color-scheme: dark;
121
- }
122
-
123
- .ric-card::before {
124
- content: '';
125
- position: absolute;
126
- top: 0;
127
- left: 0;
128
- right: 0;
129
- height: 6px;
130
- background: var(--ric-header-bg);
131
- }
132
-
133
- .ric-header {
134
- text-align: left;
135
- margin-bottom: 3rem;
136
- }
137
-
138
- .ric-header h3 {
139
- font-size: 2.25rem;
140
- font-weight: 950;
141
- color: var(--ric-text-title);
142
- letter-spacing: -0.04em;
143
- margin-bottom: 0.75rem;
144
- line-height: 1;
145
- }
146
-
147
- .ric-header p {
148
- color: var(--ric-text-secondary);
149
- font-size: 1.1rem;
150
- max-width: 500px;
151
- }
152
-
153
- .ric-layout {
154
- display: grid;
117
+
118
+ .theme-dark .ric-card,
119
+ [data-theme='dark'] .ric-card {
120
+ color-scheme: dark;
121
+ }
122
+
123
+ .ric-card::before {
124
+ content: '';
125
+ position: absolute;
126
+ top: 0;
127
+ left: 0;
128
+ right: 0;
129
+ height: 6px;
130
+ background: var(--ric-header-bg);
131
+ }
132
+
133
+ .ric-header {
134
+ text-align: left;
135
+ margin-bottom: 3rem;
136
+ }
137
+
138
+ .ric-header h3 {
139
+ font-size: 2.25rem;
140
+ font-weight: 950;
141
+ color: var(--ric-text-title);
142
+ letter-spacing: -0.04em;
143
+ margin-bottom: 0.75rem;
144
+ line-height: 1;
145
+ }
146
+
147
+ .ric-header p {
148
+ color: var(--ric-text-secondary);
149
+ font-size: 1.1rem;
150
+ max-width: 500px;
151
+ }
152
+
153
+ .ric-layout {
154
+ display: grid;
155
155
  grid-template-columns: 1fr 1fr;
156
156
  gap: 2rem;
157
157
  margin-bottom: 2rem;
158
158
  min-width: 0;
159
159
  }
160
-
161
- .ric-inputs-section {
162
- display: flex;
163
- flex-direction: column;
164
- gap: 1.5rem;
165
- }
166
-
167
- .ric-input-group {
168
- display: flex;
169
- flex-direction: column;
170
- gap: 0.75rem;
171
- }
172
-
173
- .ric-input-group label {
174
- font-size: 0.875rem;
175
- font-weight: 600;
176
- color: var(--ric-text-primary);
177
- text-transform: uppercase;
178
- letter-spacing: 0.05em;
179
- }
180
-
181
- .ric-input-wrapper {
182
- position: relative;
183
- display: flex;
184
- align-items: center;
185
- }
186
-
187
- .ric-input-wrapper input,
188
- .ric-input-wrapper select {
189
- width: 100%;
190
- padding: 0.875rem 1rem;
191
- padding-left: 1rem;
192
- border: 1px solid var(--ric-border-input);
193
- border-radius: 12px;
194
- background: var(--ric-bg-input);
160
+
161
+ .ric-inputs-section {
162
+ display: flex;
163
+ flex-direction: column;
164
+ gap: 1.5rem;
165
+ }
166
+
167
+ .ric-input-group {
168
+ display: flex;
169
+ flex-direction: column;
170
+ gap: 0.75rem;
171
+ }
172
+
173
+ .ric-input-group label {
174
+ font-size: 0.875rem;
175
+ font-weight: 600;
176
+ color: var(--ric-text-primary);
177
+ text-transform: uppercase;
178
+ letter-spacing: 0.05em;
179
+ }
180
+
181
+ .ric-input-wrapper {
182
+ position: relative;
183
+ display: flex;
184
+ align-items: center;
185
+ }
186
+
187
+ .ric-input-wrapper input,
188
+ .ric-input-wrapper select {
189
+ width: 100%;
190
+ padding: 0.875rem 1rem;
191
+ padding-left: 1rem;
192
+ border: 1px solid var(--ric-border-input);
193
+ border-radius: 12px;
194
+ background: var(--ric-bg-input);
195
195
  color: var(--ric-text-input);
196
196
  font-size: 1rem;
197
197
  transition: all 0.2s;
198
198
  min-width: 0;
199
199
  }
200
-
201
- .ric-input-wrapper input:focus,
202
- .ric-input-wrapper select:focus {
203
- outline: none;
204
- border-color: var(--ric-focus-border);
205
- box-shadow: 0 0 0 3px var(--ric-focus-ring);
206
- }
207
-
208
- .ric-input-unit {
209
- position: absolute;
210
- right: 1rem;
211
- font-size: 0.875rem;
212
- font-weight: 600;
213
- color: var(--ric-text-secondary);
214
- pointer-events: none;
215
- }
216
-
217
- .ric-results-section {
200
+
201
+ .ric-input-wrapper input:focus,
202
+ .ric-input-wrapper select:focus {
203
+ outline: none;
204
+ border-color: var(--ric-focus-border);
205
+ box-shadow: 0 0 0 3px var(--ric-focus-ring);
206
+ }
207
+
208
+ .ric-input-unit {
209
+ position: absolute;
210
+ right: 1rem;
211
+ font-size: 0.875rem;
212
+ font-weight: 600;
213
+ color: var(--ric-text-secondary);
214
+ pointer-events: none;
215
+ }
216
+
217
+ .ric-results-section {
218
218
  display: flex;
219
219
  flex-direction: column;
220
220
  gap: 1.5rem;
221
221
  min-width: 0;
222
222
  }
223
-
224
- .ric-result-header {
225
- display: flex;
226
- flex-direction: column;
227
- gap: 0.5rem;
228
- }
229
-
230
- .ric-result-label {
231
- font-size: 0.875rem;
232
- font-weight: 600;
233
- color: var(--ric-text-result-label);
234
- text-transform: uppercase;
235
- letter-spacing: 0.05em;
236
- }
237
-
238
- .ric-result-main-value {
239
- font-size: 2.5rem;
240
- font-weight: 900;
223
+
224
+ .ric-result-header {
225
+ display: flex;
226
+ flex-direction: column;
227
+ gap: 0.5rem;
228
+ }
229
+
230
+ .ric-result-label {
231
+ font-size: 0.875rem;
232
+ font-weight: 600;
233
+ color: var(--ric-text-result-label);
234
+ text-transform: uppercase;
235
+ letter-spacing: 0.05em;
236
+ }
237
+
238
+ .ric-result-main-value {
239
+ font-size: 2.5rem;
240
+ font-weight: 900;
241
241
  color: var(--ric-text-result-value);
242
242
  letter-spacing: -0.02em;
243
243
  overflow-wrap: anywhere;
244
244
  }
245
-
246
- .ric-comparison-bar {
247
- display: flex;
248
- flex-direction: column;
249
- gap: 0.75rem;
250
- }
251
-
252
- .ric-bar-base {
253
- width: 100%;
254
- height: 24px;
255
- background: var(--ric-bg-bar);
256
- border-radius: 12px;
257
- overflow: hidden;
258
- }
259
-
260
- .ric-bar-fill {
261
- height: 100%;
262
- background: var(--ric-bg-bar-fill);
263
- transition: width 0.3s ease;
264
- }
265
-
266
- .ric-bar-labels {
267
- display: flex;
268
- justify-content: space-between;
245
+
246
+ .ric-comparison-bar {
247
+ display: flex;
248
+ flex-direction: column;
249
+ gap: 0.75rem;
250
+ }
251
+
252
+ .ric-bar-base {
253
+ width: 100%;
254
+ height: 24px;
255
+ background: var(--ric-bg-bar);
256
+ border-radius: 12px;
257
+ overflow: hidden;
258
+ }
259
+
260
+ .ric-bar-fill {
261
+ height: 100%;
262
+ background: var(--ric-bg-bar-fill);
263
+ transition: width 0.3s ease;
264
+ }
265
+
266
+ .ric-bar-labels {
267
+ display: flex;
268
+ justify-content: space-between;
269
269
  font-size: 0.875rem;
270
270
  font-weight: 600;
271
271
  color: var(--ric-text-bar);
272
272
  gap: 0.75rem;
273
273
  }
274
-
275
- .ric-summary-details {
276
- display: grid;
277
- grid-template-columns: 1fr 1fr;
278
- gap: 1rem;
279
- }
280
-
281
- .ric-detail-item {
282
- display: flex;
283
- flex-direction: column;
284
- gap: 0.5rem;
285
- padding: 1rem;
286
- background: var(--ric-bg-result);
287
- border: 1px solid var(--ric-border-result);
288
- border-radius: 12px;
289
- }
290
-
291
- .ric-detail-label {
292
- font-size: 0.75rem;
293
- font-weight: 700;
294
- color: var(--ric-text-result-label);
295
- text-transform: uppercase;
296
- }
297
-
298
- .ric-detail-value {
274
+
275
+ .ric-summary-details {
276
+ display: grid;
277
+ grid-template-columns: 1fr 1fr;
278
+ gap: 1rem;
279
+ }
280
+
281
+ .ric-detail-item {
282
+ display: flex;
283
+ flex-direction: column;
284
+ gap: 0.5rem;
285
+ padding: 1rem;
286
+ background: var(--ric-bg-result);
287
+ border: 1px solid var(--ric-border-result);
288
+ border-radius: 12px;
289
+ }
290
+
291
+ .ric-detail-label {
292
+ font-size: 0.75rem;
293
+ font-weight: 700;
294
+ color: var(--ric-text-result-label);
295
+ text-transform: uppercase;
296
+ }
297
+
298
+ .ric-detail-value {
299
299
  font-size: 1.25rem;
300
300
  font-weight: 800;
301
301
  color: var(--ric-text-result-value);
302
302
  overflow-wrap: anywhere;
303
303
  }
304
-
305
- .ric-highlight {
306
- color: var(--ric-highlight-color);
307
- }
308
-
309
- .ric-info-footer {
310
- display: flex;
311
- justify-content: space-between;
312
- align-items: center;
313
- padding-top: 2rem;
314
- border-top: 1px solid var(--ric-border-card);
315
- gap: 1rem;
316
- }
317
-
318
- .ric-legal-badge {
319
- display: flex;
320
- align-items: center;
321
- gap: 0.75rem;
322
- padding: 0.875rem 1.25rem;
323
- background: var(--ric-bg-badge);
324
- color: var(--ric-text-badge);
325
- border-radius: 12px;
326
- font-size: 0.875rem;
327
- font-weight: 600;
328
- }
329
-
330
- .ric-action-btn {
331
- display: flex;
332
- align-items: center;
333
- gap: 0.75rem;
334
- padding: 0.875rem 1.5rem;
335
- background: var(--ric-bg-button);
336
- color: var(--ric-text-button);
337
- border: none;
338
- border-radius: 12px;
339
- font-size: 0.875rem;
340
- font-weight: 600;
341
- cursor: pointer;
342
- transition: all 0.2s;
343
- }
344
-
345
- .ric-action-btn:hover {
346
- background: var(--ric-bg-button-hover);
347
- transform: translateY(-2px);
348
- }
349
-
350
- .ric-results-section.ric-hidden {
351
- display: none;
352
- }
353
-
354
- .ric-input-group.ric-hidden {
355
- display: none;
356
- }
357
-
304
+
305
+ .ric-highlight {
306
+ color: var(--ric-highlight-color);
307
+ }
308
+
309
+ .ric-info-footer {
310
+ display: flex;
311
+ justify-content: space-between;
312
+ align-items: center;
313
+ padding-top: 2rem;
314
+ border-top: 1px solid var(--ric-border-card);
315
+ gap: 1rem;
316
+ }
317
+
318
+ .ric-legal-badge {
319
+ display: flex;
320
+ align-items: center;
321
+ gap: 0.75rem;
322
+ padding: 0.875rem 1.25rem;
323
+ background: var(--ric-bg-badge);
324
+ color: var(--ric-text-badge);
325
+ border-radius: 12px;
326
+ font-size: 0.875rem;
327
+ font-weight: 600;
328
+ }
329
+
330
+ .ric-action-btn {
331
+ display: flex;
332
+ align-items: center;
333
+ gap: 0.75rem;
334
+ padding: 0.875rem 1.5rem;
335
+ background: var(--ric-bg-button);
336
+ color: var(--ric-text-button);
337
+ border: none;
338
+ border-radius: 12px;
339
+ font-size: 0.875rem;
340
+ font-weight: 600;
341
+ cursor: pointer;
342
+ transition: all 0.2s;
343
+ }
344
+
345
+ .ric-action-btn:hover {
346
+ background: var(--ric-bg-button-hover);
347
+ transform: translateY(-2px);
348
+ }
349
+
350
+ .ric-results-section.ric-hidden {
351
+ display: none;
352
+ }
353
+
354
+ .ric-input-group.ric-hidden {
355
+ display: none;
356
+ }
357
+
358
358
  @media (max-width: 768px) {
359
359
  .ric-container {
360
360
  padding: 1rem 0;
@@ -369,25 +369,25 @@
369
369
  grid-template-columns: 1fr;
370
370
  gap: 1.5rem;
371
371
  }
372
-
373
- .ric-header h3 {
374
- font-size: 1.75rem;
375
- }
376
-
377
- .ric-result-main-value {
378
- font-size: 2rem;
379
- }
380
-
372
+
373
+ .ric-header h3 {
374
+ font-size: 1.75rem;
375
+ }
376
+
377
+ .ric-result-main-value {
378
+ font-size: 2rem;
379
+ }
380
+
381
381
  .ric-info-footer {
382
382
  flex-direction: column;
383
383
  align-items: stretch;
384
384
  }
385
-
386
- .ric-action-btn {
387
- width: 100%;
388
- justify-content: center;
389
- }
390
-
385
+
386
+ .ric-action-btn {
387
+ width: 100%;
388
+ justify-content: center;
389
+ }
390
+
391
391
  .ric-legal-badge {
392
392
  width: 100%;
393
393
  justify-content: center;