mantenimento-app 2.1.6 → 2.1.8

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.
package/app.js CHANGED
@@ -4193,10 +4193,30 @@ const defaultExpenseItems = [
4193
4193
  resultDetail = tr("spiegDetailResultTransfer");
4194
4194
  } else {
4195
4195
  const benefitRows = getCompensativeBenefitRows(m, c1n(), c2n());
4196
- const benefitsHtml = benefitRows.length
4197
- ? `<div class="spieg-line" style="margin-top:6px"><strong>${tr("calcCompBenefitsLabel")}:</strong> ${benefitRows.map((row) => `${escapeHtml(row.label)} (${eur(row.amount)})`).join(" | ")}</div>`
4198
- : "";
4199
- resultHtml = `<div class="spieg-result-empty ok">${tr("calcNoTransferSuggested")}</div>${benefitsHtml}`;
4196
+ if (benefitRows.length) {
4197
+ const rawBenefs = Array.isArray(m.compensativeBenefits)
4198
+ ? m.compensativeBenefits.filter((r) => r && Number(r.amount || 0) > 0.005)
4199
+ : [];
4200
+ const typeIcons = { family: "\uD83C\uDFDB", "primary-home-mortgage": "\uD83C\uDFE1" };
4201
+ const cardsHtml = benefitRows
4202
+ .map((row, i) => {
4203
+ const icon = (rawBenefs[i] && typeIcons[rawBenefs[i].type]) || "\u2726";
4204
+ return `<li class="spieg-benefit-card"><span class="spieg-benefit-icon">${icon}</span><span class="spieg-benefit-label">${escapeHtml(row.label)}</span><strong class="spieg-benefit-amount">${eur(row.amount)}</strong></li>`;
4205
+ })
4206
+ .join("");
4207
+ const total = benefitRows.reduce((s, r) => s + r.amount, 0);
4208
+ const totalLabel = currentLang === "en" ? "Total allocated benefits" : "Totale benefici allocati";
4209
+ resultHtml = `
4210
+ <div class="spieg-no-transfer-badge">&#9878;&#65039;&ensp;${escapeHtml(tr("calcNoTransferSuggested"))}</div>
4211
+ <div class="spieg-benefits-section">
4212
+ <div class="spieg-benefits-label">&#127873;&ensp;${escapeHtml(tr("calcCompBenefitsLabel"))}</div>
4213
+ <ul class="spieg-benefits-cards">${cardsHtml}</ul>
4214
+ <div class="spieg-benefits-total"><span>${escapeHtml(totalLabel)}</span><strong>${eur(total)}</strong></div>
4215
+ </div>
4216
+ `;
4217
+ } else {
4218
+ resultHtml = `<div class="spieg-result-empty ok">${tr("calcNoTransferSuggested")}</div>`;
4219
+ }
4200
4220
  resultDetail = tr("spiegDetailResultNoTransfer");
4201
4221
  }
4202
4222
 
@@ -4356,33 +4376,54 @@ const defaultExpenseItems = [
4356
4376
  ${m.incomeMode === "cu" ? `<br /><strong>${tr("calcIncomeBaseNote")}</strong> ${tr("cuNetNoteText")}` : ""}
4357
4377
  `;
4358
4378
 
4359
- let mainHtml = `<span class="result-main-line">${escapeHtml(tr("calcNoTransferSuggested"))}</span>`;
4379
+ let mainHtml;
4360
4380
  if (m.assegnoDa1a2 > 0.005) {
4381
+ const perChild = m.figli > 1 ? `<div class="result-transfer-child">${eur(m.assegnoDa1a2 / m.figli)}&thinsp;${escapeHtml(currentLang === "en" ? "per child" : "per figlio")}</div>` : "";
4361
4382
  mainHtml = `
4362
- <span class="result-main-flow">${escapeHtml(c1n())} &rarr; ${escapeHtml(c2n())}</span>
4363
- <span class="result-main-amount">${eur(m.assegnoDa1a2)} ${escapeHtml(tr("pdfPerMonth"))}</span>
4383
+ <div class="result-transfer-dir">
4384
+ <span class="result-chip-name">${escapeHtml(c1n())}</span>
4385
+ <span class="result-chip-arr">&rarr;</span>
4386
+ <span class="result-chip-name">${escapeHtml(c2n())}</span>
4387
+ </div>
4388
+ <div class="result-transfer-value">${eur(m.assegnoDa1a2)}<span class="result-transfer-per">&thinsp;${escapeHtml(tr("pdfPerMonth"))}</span></div>
4389
+ ${perChild}
4364
4390
  `;
4365
4391
  } else if (m.assegnoDa2a1 > 0.005) {
4392
+ const perChild = m.figli > 1 ? `<div class="result-transfer-child">${eur(m.assegnoDa2a1 / m.figli)}&thinsp;${escapeHtml(currentLang === "en" ? "per child" : "per figlio")}</div>` : "";
4366
4393
  mainHtml = `
4367
- <span class="result-main-flow">${escapeHtml(c2n())} &rarr; ${escapeHtml(c1n())}</span>
4368
- <span class="result-main-amount">${eur(m.assegnoDa2a1)} ${escapeHtml(tr("pdfPerMonth"))}</span>
4394
+ <div class="result-transfer-dir">
4395
+ <span class="result-chip-name">${escapeHtml(c2n())}</span>
4396
+ <span class="result-chip-arr">&rarr;</span>
4397
+ <span class="result-chip-name">${escapeHtml(c1n())}</span>
4398
+ </div>
4399
+ <div class="result-transfer-value">${eur(m.assegnoDa2a1)}<span class="result-transfer-per">&thinsp;${escapeHtml(tr("pdfPerMonth"))}</span></div>
4400
+ ${perChild}
4369
4401
  `;
4370
4402
  } else {
4371
4403
  const benefitRows = getCompensativeBenefitRows(m, c1n(), c2n());
4404
+ let benefitCardsHtml = "";
4372
4405
  if (benefitRows.length) {
4373
- const benefitsHtml = benefitRows
4374
- .map((row) => `<li><span>${escapeHtml(row.label)}</span><strong>${eur(row.amount)}</strong></li>`)
4406
+ const rawBenefs = Array.isArray(m.compensativeBenefits)
4407
+ ? m.compensativeBenefits.filter((r) => r && Number(r.amount || 0) > 0.005)
4408
+ : [];
4409
+ const typeIcons = { family: "\uD83C\uDFDB", "primary-home-mortgage": "\uD83C\uDFE1" };
4410
+ const cardsHtml = benefitRows
4411
+ .map((row, i) => {
4412
+ const icon = (rawBenefs[i] && typeIcons[rawBenefs[i].type]) || "\u2726";
4413
+ return `<li class="spieg-benefit-card"><span class="spieg-benefit-icon">${icon}</span><span class="spieg-benefit-label">${escapeHtml(row.label)}</span><strong class="spieg-benefit-amount">${eur(row.amount)}</strong></li>`;
4414
+ })
4375
4415
  .join("");
4376
- mainHtml = `
4377
- <span class="result-main-line">${escapeHtml(tr("calcNoTransferSuggested"))}</span>
4416
+ const total = benefitRows.reduce((s, r) => s + r.amount, 0);
4417
+ const totalLabel = currentLang === "en" ? "Total allocated benefits" : "Totale benefici allocati";
4418
+ benefitCardsHtml = `
4378
4419
  <div class="result-benefits-box">
4379
- <span class="result-main-sub">${escapeHtml(tr("calcCompBenefitsLabel"))}</span>
4380
- <ul class="result-benefits-list">${benefitsHtml}</ul>
4420
+ <div class="spieg-benefits-label">&#127873;&ensp;${escapeHtml(tr("calcCompBenefitsLabel"))}</div>
4421
+ <ul class="spieg-benefits-cards">${cardsHtml}</ul>
4422
+ <div class="spieg-benefits-total"><span>${escapeHtml(totalLabel)}</span><strong>${eur(total)}</strong></div>
4381
4423
  </div>
4382
4424
  `;
4383
- } else if (benefitsInline) {
4384
- mainHtml = `<span class="result-main-line">${escapeHtml(msg("calcNoTransferWithBenefits", { benefits: benefitsInline }))}</span>`;
4385
4425
  }
4426
+ mainHtml = `<div class="spieg-no-transfer-badge">&#9878;&#65039;&ensp;${escapeHtml(tr("calcNoTransferSuggested"))}</div>${benefitCardsHtml}`;
4386
4427
  }
4387
4428
  resultMain.innerHTML = mainHtml;
4388
4429
 
@@ -4193,10 +4193,30 @@ const defaultExpenseItems = [
4193
4193
  resultDetail = tr("spiegDetailResultTransfer");
4194
4194
  } else {
4195
4195
  const benefitRows = getCompensativeBenefitRows(m, c1n(), c2n());
4196
- const benefitsHtml = benefitRows.length
4197
- ? `<div class="spieg-line" style="margin-top:6px"><strong>${tr("calcCompBenefitsLabel")}:</strong> ${benefitRows.map((row) => `${escapeHtml(row.label)} (${eur(row.amount)})`).join(" | ")}</div>`
4198
- : "";
4199
- resultHtml = `<div class="spieg-result-empty ok">${tr("calcNoTransferSuggested")}</div>${benefitsHtml}`;
4196
+ if (benefitRows.length) {
4197
+ const rawBenefs = Array.isArray(m.compensativeBenefits)
4198
+ ? m.compensativeBenefits.filter((r) => r && Number(r.amount || 0) > 0.005)
4199
+ : [];
4200
+ const typeIcons = { family: "\uD83C\uDFDB", "primary-home-mortgage": "\uD83C\uDFE1" };
4201
+ const cardsHtml = benefitRows
4202
+ .map((row, i) => {
4203
+ const icon = (rawBenefs[i] && typeIcons[rawBenefs[i].type]) || "\u2726";
4204
+ return `<li class="spieg-benefit-card"><span class="spieg-benefit-icon">${icon}</span><span class="spieg-benefit-label">${escapeHtml(row.label)}</span><strong class="spieg-benefit-amount">${eur(row.amount)}</strong></li>`;
4205
+ })
4206
+ .join("");
4207
+ const total = benefitRows.reduce((s, r) => s + r.amount, 0);
4208
+ const totalLabel = currentLang === "en" ? "Total allocated benefits" : "Totale benefici allocati";
4209
+ resultHtml = `
4210
+ <div class="spieg-no-transfer-badge">&#9878;&#65039;&ensp;${escapeHtml(tr("calcNoTransferSuggested"))}</div>
4211
+ <div class="spieg-benefits-section">
4212
+ <div class="spieg-benefits-label">&#127873;&ensp;${escapeHtml(tr("calcCompBenefitsLabel"))}</div>
4213
+ <ul class="spieg-benefits-cards">${cardsHtml}</ul>
4214
+ <div class="spieg-benefits-total"><span>${escapeHtml(totalLabel)}</span><strong>${eur(total)}</strong></div>
4215
+ </div>
4216
+ `;
4217
+ } else {
4218
+ resultHtml = `<div class="spieg-result-empty ok">${tr("calcNoTransferSuggested")}</div>`;
4219
+ }
4200
4220
  resultDetail = tr("spiegDetailResultNoTransfer");
4201
4221
  }
4202
4222
 
@@ -4356,33 +4376,54 @@ const defaultExpenseItems = [
4356
4376
  ${m.incomeMode === "cu" ? `<br /><strong>${tr("calcIncomeBaseNote")}</strong> ${tr("cuNetNoteText")}` : ""}
4357
4377
  `;
4358
4378
 
4359
- let mainHtml = `<span class="result-main-line">${escapeHtml(tr("calcNoTransferSuggested"))}</span>`;
4379
+ let mainHtml;
4360
4380
  if (m.assegnoDa1a2 > 0.005) {
4381
+ const perChild = m.figli > 1 ? `<div class="result-transfer-child">${eur(m.assegnoDa1a2 / m.figli)}&thinsp;${escapeHtml(currentLang === "en" ? "per child" : "per figlio")}</div>` : "";
4361
4382
  mainHtml = `
4362
- <span class="result-main-flow">${escapeHtml(c1n())} &rarr; ${escapeHtml(c2n())}</span>
4363
- <span class="result-main-amount">${eur(m.assegnoDa1a2)} ${escapeHtml(tr("pdfPerMonth"))}</span>
4383
+ <div class="result-transfer-dir">
4384
+ <span class="result-chip-name">${escapeHtml(c1n())}</span>
4385
+ <span class="result-chip-arr">&rarr;</span>
4386
+ <span class="result-chip-name">${escapeHtml(c2n())}</span>
4387
+ </div>
4388
+ <div class="result-transfer-value">${eur(m.assegnoDa1a2)}<span class="result-transfer-per">&thinsp;${escapeHtml(tr("pdfPerMonth"))}</span></div>
4389
+ ${perChild}
4364
4390
  `;
4365
4391
  } else if (m.assegnoDa2a1 > 0.005) {
4392
+ const perChild = m.figli > 1 ? `<div class="result-transfer-child">${eur(m.assegnoDa2a1 / m.figli)}&thinsp;${escapeHtml(currentLang === "en" ? "per child" : "per figlio")}</div>` : "";
4366
4393
  mainHtml = `
4367
- <span class="result-main-flow">${escapeHtml(c2n())} &rarr; ${escapeHtml(c1n())}</span>
4368
- <span class="result-main-amount">${eur(m.assegnoDa2a1)} ${escapeHtml(tr("pdfPerMonth"))}</span>
4394
+ <div class="result-transfer-dir">
4395
+ <span class="result-chip-name">${escapeHtml(c2n())}</span>
4396
+ <span class="result-chip-arr">&rarr;</span>
4397
+ <span class="result-chip-name">${escapeHtml(c1n())}</span>
4398
+ </div>
4399
+ <div class="result-transfer-value">${eur(m.assegnoDa2a1)}<span class="result-transfer-per">&thinsp;${escapeHtml(tr("pdfPerMonth"))}</span></div>
4400
+ ${perChild}
4369
4401
  `;
4370
4402
  } else {
4371
4403
  const benefitRows = getCompensativeBenefitRows(m, c1n(), c2n());
4404
+ let benefitCardsHtml = "";
4372
4405
  if (benefitRows.length) {
4373
- const benefitsHtml = benefitRows
4374
- .map((row) => `<li><span>${escapeHtml(row.label)}</span><strong>${eur(row.amount)}</strong></li>`)
4406
+ const rawBenefs = Array.isArray(m.compensativeBenefits)
4407
+ ? m.compensativeBenefits.filter((r) => r && Number(r.amount || 0) > 0.005)
4408
+ : [];
4409
+ const typeIcons = { family: "\uD83C\uDFDB", "primary-home-mortgage": "\uD83C\uDFE1" };
4410
+ const cardsHtml = benefitRows
4411
+ .map((row, i) => {
4412
+ const icon = (rawBenefs[i] && typeIcons[rawBenefs[i].type]) || "\u2726";
4413
+ return `<li class="spieg-benefit-card"><span class="spieg-benefit-icon">${icon}</span><span class="spieg-benefit-label">${escapeHtml(row.label)}</span><strong class="spieg-benefit-amount">${eur(row.amount)}</strong></li>`;
4414
+ })
4375
4415
  .join("");
4376
- mainHtml = `
4377
- <span class="result-main-line">${escapeHtml(tr("calcNoTransferSuggested"))}</span>
4416
+ const total = benefitRows.reduce((s, r) => s + r.amount, 0);
4417
+ const totalLabel = currentLang === "en" ? "Total allocated benefits" : "Totale benefici allocati";
4418
+ benefitCardsHtml = `
4378
4419
  <div class="result-benefits-box">
4379
- <span class="result-main-sub">${escapeHtml(tr("calcCompBenefitsLabel"))}</span>
4380
- <ul class="result-benefits-list">${benefitsHtml}</ul>
4420
+ <div class="spieg-benefits-label">&#127873;&ensp;${escapeHtml(tr("calcCompBenefitsLabel"))}</div>
4421
+ <ul class="spieg-benefits-cards">${cardsHtml}</ul>
4422
+ <div class="spieg-benefits-total"><span>${escapeHtml(totalLabel)}</span><strong>${eur(total)}</strong></div>
4381
4423
  </div>
4382
4424
  `;
4383
- } else if (benefitsInline) {
4384
- mainHtml = `<span class="result-main-line">${escapeHtml(msg("calcNoTransferWithBenefits", { benefits: benefitsInline }))}</span>`;
4385
4425
  }
4426
+ mainHtml = `<div class="spieg-no-transfer-badge">&#9878;&#65039;&ensp;${escapeHtml(tr("calcNoTransferSuggested"))}</div>${benefitCardsHtml}`;
4386
4427
  }
4387
4428
  resultMain.innerHTML = mainHtml;
4388
4429
 
@@ -475,8 +475,8 @@
475
475
  <div class="live-title">⚡ Impatto in Tempo Reale sul Netto</div>
476
476
  <div class="live-grid" id="liveNet"></div>
477
477
  <div class="result-pill">
478
- <div>🎯 Assegno suggerito</div>
479
- <div id="risultatoMain" class="big">Calcolo in tempo reale</div>
478
+ <div class="result-pill-head"><span>🎯</span><span>Assegno suggerito</span></div>
479
+ <div id="risultatoMain">Calcolo in tempo reale</div>
480
480
  </div>
481
481
  <div id="liveBreakdown"></div>
482
482
  </div>
@@ -583,7 +583,7 @@
583
583
  <script src="supabase.min.js"></script>
584
584
  <script src="fabric.min.js"></script>
585
585
  <script src="html2pdf.bundle.min.js"></script>
586
- <script src="app.js?v=2.1.6"></script>
586
+ <script src="app.js?v=2.1.8"></script>
587
587
  </body>
588
588
  </html>
589
589
 
@@ -1648,11 +1648,11 @@
1648
1648
  }
1649
1649
 
1650
1650
  .spieg-item-body--result {
1651
- background: #ffffff;
1652
- border: 1px dashed #9fceb9;
1653
- border-radius: 10px;
1654
- padding: 10px 12px;
1655
- gap: 6px;
1651
+ background: transparent;
1652
+ border: none;
1653
+ border-radius: 0;
1654
+ padding: 0;
1655
+ gap: 8px;
1656
1656
  }
1657
1657
 
1658
1658
  .spieg-result-flow {
@@ -1681,6 +1681,113 @@
1681
1681
  color: #0f6a61;
1682
1682
  }
1683
1683
 
1684
+ .spieg-no-transfer-badge {
1685
+ display: flex;
1686
+ align-items: center;
1687
+ justify-content: center;
1688
+ gap: 8px;
1689
+ font-size: 1.0rem;
1690
+ font-weight: 900;
1691
+ color: #0a5a52;
1692
+ background: linear-gradient(135deg, #dbf5ed, #c5eedf);
1693
+ border: 1.5px solid #7ec4b2;
1694
+ border-radius: 999px;
1695
+ padding: 9px 20px;
1696
+ letter-spacing: 0.1px;
1697
+ box-shadow: 0 2px 10px rgba(14, 90, 82, 0.14), inset 0 1px 0 rgba(255,255,255,0.7);
1698
+ margin-bottom: 10px;
1699
+ }
1700
+
1701
+ .spieg-benefits-section {
1702
+ display: grid;
1703
+ gap: 6px;
1704
+ }
1705
+
1706
+ .spieg-benefits-label {
1707
+ font-size: 0.71rem;
1708
+ font-weight: 800;
1709
+ text-transform: uppercase;
1710
+ letter-spacing: 0.06em;
1711
+ color: #4e7068;
1712
+ display: flex;
1713
+ align-items: center;
1714
+ gap: 5px;
1715
+ padding-left: 2px;
1716
+ }
1717
+
1718
+ .spieg-benefits-cards {
1719
+ margin: 0;
1720
+ padding: 0;
1721
+ list-style: none;
1722
+ display: grid;
1723
+ gap: 5px;
1724
+ }
1725
+
1726
+ .spieg-benefit-card {
1727
+ display: grid;
1728
+ grid-template-columns: 28px 1fr auto;
1729
+ align-items: center;
1730
+ gap: 8px;
1731
+ padding: 8px 10px;
1732
+ border-radius: 10px;
1733
+ border: 1px solid #b8d9cf;
1734
+ background: linear-gradient(135deg, rgba(255,255,255,0.97), rgba(240,250,246,0.92));
1735
+ font-size: 0.83rem;
1736
+ line-height: 1.35;
1737
+ box-shadow: 0 1px 4px rgba(16, 74, 68, 0.08);
1738
+ }
1739
+
1740
+ .spieg-benefit-icon {
1741
+ display: flex;
1742
+ align-items: center;
1743
+ justify-content: center;
1744
+ width: 28px;
1745
+ height: 28px;
1746
+ border-radius: 50%;
1747
+ background: linear-gradient(135deg, #e3f5ef, #d0ede5);
1748
+ border: 1px solid #b6d9cf;
1749
+ font-size: 1.0em;
1750
+ flex-shrink: 0;
1751
+ }
1752
+
1753
+ .spieg-benefit-label {
1754
+ font-weight: 600;
1755
+ color: #1f4642;
1756
+ word-break: break-word;
1757
+ }
1758
+
1759
+ .spieg-benefit-amount {
1760
+ white-space: nowrap;
1761
+ font-size: 0.94rem;
1762
+ font-weight: 900;
1763
+ color: #0c5e55;
1764
+ font-variant-numeric: tabular-nums;
1765
+ background: rgba(11, 98, 88, 0.09);
1766
+ border-radius: 7px;
1767
+ padding: 2px 8px;
1768
+ border: 1px solid rgba(11, 98, 88, 0.14);
1769
+ }
1770
+
1771
+ .spieg-benefits-total {
1772
+ display: flex;
1773
+ justify-content: space-between;
1774
+ align-items: center;
1775
+ padding: 7px 12px;
1776
+ border-radius: 9px;
1777
+ background: linear-gradient(135deg, #c8eee3, #aee3d4);
1778
+ border: 1.5px solid #7ec9b6;
1779
+ font-size: 0.8rem;
1780
+ font-weight: 700;
1781
+ color: #0a4c47;
1782
+ }
1783
+
1784
+ .spieg-benefits-total strong {
1785
+ font-size: 1.05rem;
1786
+ font-weight: 900;
1787
+ color: #073e3a;
1788
+ font-variant-numeric: tabular-nums;
1789
+ }
1790
+
1684
1791
  @page {
1685
1792
  size: A4 landscape;
1686
1793
  margin: 8mm;
@@ -2125,6 +2232,79 @@
2125
2232
  color: #123b38;
2126
2233
  }
2127
2234
 
2235
+ .result-pill-head {
2236
+ display: flex;
2237
+ align-items: center;
2238
+ gap: 7px;
2239
+ font-size: 0.71rem;
2240
+ font-weight: 800;
2241
+ text-transform: uppercase;
2242
+ letter-spacing: 0.07em;
2243
+ color: #3a6560;
2244
+ padding-bottom: 9px;
2245
+ margin-bottom: 9px;
2246
+ border-bottom: 1px solid rgba(0,0,0,0.08);
2247
+ }
2248
+
2249
+ .result-transfer-dir {
2250
+ display: inline-flex;
2251
+ align-items: center;
2252
+ gap: 8px;
2253
+ background: linear-gradient(135deg, rgba(27, 110, 100, 0.11), rgba(27, 110, 100, 0.05));
2254
+ border: 1.5px solid rgba(27, 110, 100, 0.24);
2255
+ border-radius: 999px;
2256
+ padding: 6px 16px;
2257
+ margin-bottom: 10px;
2258
+ max-width: 100%;
2259
+ }
2260
+
2261
+ .result-chip-name {
2262
+ font-weight: 800;
2263
+ font-size: 0.9rem;
2264
+ color: #124741;
2265
+ overflow-wrap: anywhere;
2266
+ }
2267
+
2268
+ .result-chip-arr {
2269
+ font-size: 1.1rem;
2270
+ color: #1d7d72;
2271
+ font-weight: 900;
2272
+ flex-shrink: 0;
2273
+ }
2274
+
2275
+ .result-transfer-value {
2276
+ display: block;
2277
+ font-size: 2.0rem;
2278
+ font-weight: 900;
2279
+ color: #0b5e57;
2280
+ line-height: 1.15;
2281
+ letter-spacing: -0.3px;
2282
+ text-shadow: 0 1px 0 rgba(255,255,255,0.75);
2283
+ font-variant-numeric: tabular-nums;
2284
+ margin-bottom: 4px;
2285
+ }
2286
+
2287
+ .result-transfer-per {
2288
+ font-size: 0.48em;
2289
+ font-weight: 700;
2290
+ color: #2d7068;
2291
+ vertical-align: middle;
2292
+ margin-left: 2px;
2293
+ }
2294
+
2295
+ .result-transfer-child {
2296
+ display: inline-block;
2297
+ margin-top: 2px;
2298
+ font-size: 0.78rem;
2299
+ color: #3d6b63;
2300
+ font-weight: 600;
2301
+ font-variant-numeric: tabular-nums;
2302
+ background: rgba(0,0,0,0.045);
2303
+ border-radius: 8px;
2304
+ padding: 3px 10px;
2305
+ border: 1px solid rgba(0,0,0,0.08);
2306
+ }
2307
+
2128
2308
  .result-main-flow {
2129
2309
  display: block;
2130
2310
  font-size: 1.02rem;
@@ -2168,12 +2348,9 @@
2168
2348
  }
2169
2349
 
2170
2350
  .result-benefits-box {
2171
- border: 1px solid #bdd6cf;
2172
- border-radius: 12px;
2173
- background: linear-gradient(180deg, rgba(249, 253, 252, 0.92), rgba(241, 249, 246, 0.92));
2174
- padding: 8px;
2175
2351
  display: grid;
2176
- gap: 8px;
2352
+ gap: 6px;
2353
+ margin-top: 8px;
2177
2354
  }
2178
2355
 
2179
2356
  .result-benefits-list {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mantenimento-app",
3
- "version": "2.1.6",
3
+ "version": "2.1.8",
4
4
  "description": "Frontend + backend architecture for the mantenimento calculator",
5
5
  "type": "commonjs",
6
6
  "main": "backend/calculate-model.js",