adp-web-components 0.3.18 → 0.3.19

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 (302) hide show
  1. package/dist/cjs/branch-slot-dropdown_15.cjs.entry.js +31 -31
  2. package/dist/cjs/dead-stock-lookup_3.cjs.entry.js +9 -9
  3. package/dist/cjs/flexible-container.cjs.entry.js +3 -3
  4. package/dist/cjs/form-checkbox.cjs.entry.js +2 -2
  5. package/dist/cjs/form-date-picker.cjs.entry.js +5 -5
  6. package/dist/cjs/form-input_7.cjs.entry.js +17 -17
  7. package/dist/cjs/form-switch.cjs.entry.js +2 -2
  8. package/dist/cjs/form-time-picker.cjs.entry.js +6 -6
  9. package/dist/cjs/{functions-C9XsBzrL.js → functions-DL7oNhTD.js} +1 -1
  10. package/dist/cjs/general-form.cjs.entry.js +4 -4
  11. package/dist/cjs/general-inquiry-form.cjs.entry.js +4 -4
  12. package/dist/cjs/{get-local-language-BnUadlVY.js → get-local-language-BuK1vyX4.js} +1 -1
  13. package/dist/cjs/{get-mock-files-Dr5dpq1N.js → get-mock-files-D0TNQtTV.js} +1 -1
  14. package/dist/cjs/information-table.cjs.entry.js +1 -1
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/loading-spinner.cjs.entry.js +2 -2
  17. package/dist/cjs/manufacturer-part-lookup.cjs.entry.js +3 -3
  18. package/dist/cjs/part-lookup.cjs.entry.js +2 -2
  19. package/dist/cjs/service-booking-form.cjs.entry.js +4 -4
  20. package/dist/cjs/shift-accordion.cjs.entry.js +1 -1
  21. package/dist/cjs/shift-checkbox.cjs.entry.js +1 -1
  22. package/dist/cjs/shift-components.cjs.js +1 -1
  23. package/dist/cjs/shift-slider.cjs.entry.js +2 -2
  24. package/dist/cjs/shift-switch.cjs.entry.js +1 -1
  25. package/dist/cjs/shift-tab-content.cjs.entry.js +2 -2
  26. package/dist/cjs/shift-tabs_2.cjs.entry.js +92 -34
  27. package/dist/cjs/ssc-lookup-form.cjs.entry.js +4 -4
  28. package/dist/cjs/test-drive-form.cjs.entry.js +4 -4
  29. package/dist/cjs/triangle-alert-CTvU1eGY.js +248 -0
  30. package/dist/cjs/vehicle-accessories_8.cjs.entry.js +177 -117
  31. package/dist/cjs/vehicle-lookup.cjs.entry.js +3 -3
  32. package/dist/cjs/vehicle-quotation-form.cjs.entry.js +4 -4
  33. package/dist/collection/components/components/flexible-container.css +1 -1
  34. package/dist/collection/components/components/flexible-container.js +2 -2
  35. package/dist/collection/components/components/information-table.css +1 -1
  36. package/dist/collection/components/components/loading-spinner.css +1 -1
  37. package/dist/collection/components/components/loading-spinner.js +1 -1
  38. package/dist/collection/components/components/shift-accordion.js +1 -1
  39. package/dist/collection/components/components/shift-checkbox.js +1 -1
  40. package/dist/collection/components/components/shift-portal.css +1 -1
  41. package/dist/collection/components/components/shift-select-dropdown.css +1 -1
  42. package/dist/collection/components/components/shift-select-dropdown.js +2 -2
  43. package/dist/collection/components/components/shift-select.css +1 -1
  44. package/dist/collection/components/components/shift-select.js +3 -3
  45. package/dist/collection/components/components/shift-slider.css +1 -1
  46. package/dist/collection/components/components/shift-slider.js +1 -1
  47. package/dist/collection/components/components/shift-switch.js +1 -1
  48. package/dist/collection/components/components/shift-tab-content.css +1 -1
  49. package/dist/collection/components/components/shift-tab-content.js +1 -1
  50. package/dist/collection/components/components/shift-tabs.css +1 -1
  51. package/dist/collection/components/components/shift-tabs.js +2 -2
  52. package/dist/collection/components/form-elements/branch-slot-dropdown.js +1 -1
  53. package/dist/collection/components/form-elements/branch-slot-picker.js +2 -2
  54. package/dist/collection/components/form-elements/form-checkbox.js +1 -1
  55. package/dist/collection/components/form-elements/form-date-picker-legacy.js +4 -4
  56. package/dist/collection/components/form-elements/form-dialog.js +1 -1
  57. package/dist/collection/components/form-elements/form-file.js +2 -2
  58. package/dist/collection/components/form-elements/form-input.js +2 -2
  59. package/dist/collection/components/form-elements/form-inputs.css +1 -1
  60. package/dist/collection/components/form-elements/form-picker-input.js +2 -2
  61. package/dist/collection/components/form-elements/form-shadow-input.js +1 -1
  62. package/dist/collection/components/form-elements/form-stepper-control.js +2 -2
  63. package/dist/collection/components/form-elements/form-stepper-submit.js +2 -2
  64. package/dist/collection/components/form-elements/form-stepper.js +1 -1
  65. package/dist/collection/components/form-elements/form-structure-error.js +1 -1
  66. package/dist/collection/components/form-elements/form-submit.js +2 -2
  67. package/dist/collection/components/form-elements/form-switch.js +1 -1
  68. package/dist/collection/components/form-elements/form-text-area.js +2 -2
  69. package/dist/collection/components/form-elements/form-time-picker-legacy.js +5 -5
  70. package/dist/collection/components/form-elements/form-vin-input.js +2 -2
  71. package/dist/collection/components/forms/general-form.js +2 -2
  72. package/dist/collection/components/forms/general-inquiry.js +2 -2
  73. package/dist/collection/components/forms/service-booking.js +2 -2
  74. package/dist/collection/components/forms/ssc-lookup.js +2 -2
  75. package/dist/collection/components/forms/test-drive.js +2 -2
  76. package/dist/collection/components/forms/vehicle-quotation.js +2 -2
  77. package/dist/collection/components/part-lookup/dead-stock-lookup.css +1 -1
  78. package/dist/collection/components/part-lookup/dead-stock-lookup.js +2 -2
  79. package/dist/collection/components/part-lookup/distributor-lookup.css +1 -1
  80. package/dist/collection/components/part-lookup/distributor-lookup.js +2 -2
  81. package/dist/collection/components/part-lookup/manufacturer-lookup.css +1 -1
  82. package/dist/collection/components/part-lookup/manufacturer-part-lookup.css +1 -1
  83. package/dist/collection/components/part-lookup/manufacturer-part-lookup.js +1 -1
  84. package/dist/collection/components/part-lookup/part-lookup.css +1 -1
  85. package/dist/collection/components/vehicle-lookup/components/claimable-item-popover.js +37 -29
  86. package/dist/collection/components/vehicle-lookup/components/claimable-trace-modal.js +6 -2
  87. package/dist/collection/components/vehicle-lookup/components/service-history-sub-row.js +3 -3
  88. package/dist/collection/components/vehicle-lookup/vehicle-accessories.css +1 -1
  89. package/dist/collection/components/vehicle-lookup/vehicle-accessories.js +2 -2
  90. package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.css +1 -1
  91. package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.js +121 -70
  92. package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.css +1 -1
  93. package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.js +89 -29
  94. package/dist/collection/components/vehicle-lookup/vehicle-lookup.css +1 -1
  95. package/dist/collection/components/vehicle-lookup/vehicle-paint-thickness.css +1 -1
  96. package/dist/collection/components/vehicle-lookup/vehicle-sale-information.css +1 -1
  97. package/dist/collection/components/vehicle-lookup/vehicle-sale-information.js +2 -2
  98. package/dist/collection/components/vehicle-lookup/vehicle-service-history.css +1 -1
  99. package/dist/collection/components/vehicle-lookup/vehicle-service-history.js +1 -1
  100. package/dist/collection/components/vehicle-lookup/vehicle-specification.css +1 -1
  101. package/dist/collection/components/vehicle-lookup/vehicle-specification.js +1 -1
  102. package/dist/collection/components/vehicle-lookup/vehicle-warranty-details.css +1 -1
  103. package/dist/collection/components/vehicle-lookup/vehicle-warranty-timeline.css +1 -1
  104. package/dist/collection/components/vehicle-lookup/vehicle-warranty-timeline.js +1 -1
  105. package/dist/collection/components/vin-extractor/vin-extractor.js +1 -1
  106. package/dist/collection/global/lib/overlay.js +154 -0
  107. package/dist/collection/templates/assets/adp-wordmark.svg +1 -0
  108. package/dist/collection/templates/harness-theme.js +44 -0
  109. package/dist/collection/templates/harness.js +264 -0
  110. package/dist/components/branch-slot-dropdown.js +1 -1
  111. package/dist/components/branch-slot-picker.js +1 -1
  112. package/dist/components/dead-stock-lookup.js +1 -1
  113. package/dist/components/distributor-lookup.js +1 -1
  114. package/dist/components/flexible-container.js +1 -1
  115. package/dist/components/form-checkbox.js +1 -1
  116. package/dist/components/form-date-picker.js +1 -1
  117. package/dist/components/form-dialog.js +1 -1
  118. package/dist/components/form-file.js +1 -1
  119. package/dist/components/form-input-preview.js +1 -1
  120. package/dist/components/form-input.js +1 -1
  121. package/dist/components/form-phone-number.js +1 -1
  122. package/dist/components/form-picker-input.js +1 -1
  123. package/dist/components/form-select.js +1 -1
  124. package/dist/components/form-shadow-input.js +1 -1
  125. package/dist/components/form-stepper-control.js +1 -1
  126. package/dist/components/form-stepper-submit.js +1 -1
  127. package/dist/components/form-stepper.js +1 -1
  128. package/dist/components/form-structure-error.js +1 -1
  129. package/dist/components/form-structure.js +1 -1
  130. package/dist/components/form-submit.js +1 -1
  131. package/dist/components/form-switch.js +1 -1
  132. package/dist/components/form-text-area.js +1 -1
  133. package/dist/components/form-time-picker.js +1 -1
  134. package/dist/components/form-vin-input.js +1 -1
  135. package/dist/components/general-form.js +1 -1
  136. package/dist/components/general-inquiry-form.js +1 -1
  137. package/dist/components/information-table.js +1 -1
  138. package/dist/components/loading-spinner.js +1 -1
  139. package/dist/components/manufacturer-lookup.js +1 -1
  140. package/dist/components/manufacturer-part-lookup.js +1 -1
  141. package/dist/components/{p-Dseg250d.js → p-1fzw9lBq.js} +1 -1
  142. package/dist/components/{p-BVdlf8rx.js → p-6RmAcc2q.js} +1 -1
  143. package/dist/components/p-7Gq_FyNj.js +5 -0
  144. package/dist/components/p-8jIkK-Kb.js +5 -0
  145. package/dist/components/{p-DG-IgRFW.js → p-B2w49gNR.js} +1 -1
  146. package/dist/components/{p-B0lK-5c_.js → p-B7G2HjX0.js} +1 -1
  147. package/dist/components/{p-BMnQwtNn.js → p-B8hl68AM.js} +1 -1
  148. package/dist/components/{p-TtDq4UV5.js → p-B9xLzbPr.js} +1 -1
  149. package/dist/components/{p-Bs5AIefE.js → p-BKzXBxxc.js} +1 -1
  150. package/dist/components/{p-Cg4l7ICV.js → p-BUepGDZV.js} +1 -1
  151. package/dist/components/{p-Ci6LbIzY.js → p-B__72-PA.js} +1 -1
  152. package/dist/components/{p-DgJ9CCPI.js → p-BaZAgTxG.js} +1 -1
  153. package/dist/components/p-Bb2xDuqh.js +5 -0
  154. package/dist/components/{p-DTdm5I7a.js → p-BbQAkWw4.js} +1 -1
  155. package/dist/components/{p-BmQrqnnJ.js → p-BdPZ7u2w.js} +1 -1
  156. package/dist/components/{p-k8G1hnHC.js → p-Bj3cvdzl.js} +1 -1
  157. package/dist/components/{p-Bb4mauUH.js → p-BvMcY9Sk.js} +1 -1
  158. package/dist/components/p-C-yTwaAA.js +5 -0
  159. package/dist/components/{p-C31A3MHr.js → p-C6U9Fs9H.js} +1 -1
  160. package/dist/components/{p-CNqcMKLv.js → p-C8B9jarP.js} +1 -1
  161. package/dist/components/p-C8S2P4sw.js +5 -0
  162. package/dist/components/{p-B6EgLMus.js → p-CC16uGpN.js} +1 -1
  163. package/dist/components/p-CCounVqq.js +5 -0
  164. package/dist/components/{p-Dhi7g1w3.js → p-CIPh05sT.js} +1 -1
  165. package/dist/components/{p-CCuYl9VQ.js → p-CKwgX_v0.js} +1 -1
  166. package/dist/components/{p-Be01Kv65.js → p-CL5G_ZDE.js} +1 -1
  167. package/dist/components/{p-C2trAVtF.js → p-CPBmhspv.js} +1 -1
  168. package/dist/components/p-ClT5CzCZ.js +5 -0
  169. package/dist/components/{p-gzdpekMI.js → p-Cm94OAx9.js} +1 -1
  170. package/dist/components/{p-l738xIxs.js → p-CwbJMZVZ.js} +1 -1
  171. package/dist/components/{p-oZMLGlUq.js → p-D7Sj02XY.js} +1 -1
  172. package/dist/components/{p-BogCz_yJ.js → p-DWjIts4C.js} +1 -1
  173. package/dist/components/p-DbnN292R.js +5 -0
  174. package/dist/components/{p-D9pKibY5.js → p-DcMgXNpe.js} +1 -1
  175. package/dist/components/{p-B_jDD5xI.js → p-Dd_Xnn2b.js} +1 -1
  176. package/dist/components/{p-CuTemmgW.js → p-DeipsN8N.js} +1 -1
  177. package/dist/components/{p-Bl_BMBad.js → p-DkagL-e-.js} +1 -1
  178. package/dist/components/{p-DlqfD7uh.js → p-DpXLfNHS.js} +1 -1
  179. package/dist/components/{p-BiaT4YFg.js → p-Dsk1SNut.js} +1 -1
  180. package/dist/components/{p-uPiGNvhQ.js → p-DtZM3yHS.js} +1 -1
  181. package/dist/components/p-G7teNuSi.js +5 -0
  182. package/dist/components/{p-Ci6k5mSb.js → p-LkNhSGDO.js} +1 -1
  183. package/dist/components/{p-B0tcNl8W.js → p-Qh1y1RV2.js} +1 -1
  184. package/dist/components/{p-DcB3e3j1.js → p-R_rAJ4hF.js} +1 -1
  185. package/dist/components/p-_apNp6J3.js +5 -0
  186. package/dist/components/{p-D7wRHBb3.js → p-l2FHTMzv.js} +1 -1
  187. package/dist/components/part-lookup.js +1 -1
  188. package/dist/components/service-booking-form.js +1 -1
  189. package/dist/components/shift-accordion.js +1 -1
  190. package/dist/components/shift-checkbox.js +1 -1
  191. package/dist/components/shift-portal.js +1 -1
  192. package/dist/components/shift-select-dropdown.js +1 -1
  193. package/dist/components/shift-select.js +1 -1
  194. package/dist/components/shift-slider.js +1 -1
  195. package/dist/components/shift-switch.js +1 -1
  196. package/dist/components/shift-tab-content.js +1 -1
  197. package/dist/components/shift-tabs.js +1 -1
  198. package/dist/components/ssc-lookup-form.js +1 -1
  199. package/dist/components/test-drive-form.js +1 -1
  200. package/dist/components/vehicle-accessories.js +1 -1
  201. package/dist/components/vehicle-claimable-items.js +1 -1
  202. package/dist/components/vehicle-item-claim-form.js +1 -1
  203. package/dist/components/vehicle-lookup.js +1 -1
  204. package/dist/components/vehicle-paint-thickness.js +1 -1
  205. package/dist/components/vehicle-quotation-form.js +1 -1
  206. package/dist/components/vehicle-sale-information.js +1 -1
  207. package/dist/components/vehicle-service-history.js +1 -1
  208. package/dist/components/vehicle-specification.js +1 -1
  209. package/dist/components/vehicle-warranty-details.js +1 -1
  210. package/dist/components/vehicle-warranty-timeline.js +1 -1
  211. package/dist/components/vin-extractor.js +1 -1
  212. package/dist/esm/branch-slot-dropdown_15.entry.js +31 -31
  213. package/dist/esm/dead-stock-lookup_3.entry.js +9 -9
  214. package/dist/esm/flexible-container.entry.js +3 -3
  215. package/dist/esm/form-checkbox.entry.js +2 -2
  216. package/dist/esm/form-date-picker.entry.js +5 -5
  217. package/dist/esm/form-input_7.entry.js +17 -17
  218. package/dist/esm/form-switch.entry.js +2 -2
  219. package/dist/esm/form-time-picker.entry.js +6 -6
  220. package/dist/esm/{functions-COLiDjnd.js → functions-Ccrile_u.js} +1 -1
  221. package/dist/esm/general-form.entry.js +4 -4
  222. package/dist/esm/general-inquiry-form.entry.js +4 -4
  223. package/dist/esm/{get-local-language-CACck9dv.js → get-local-language-oNw84Rsz.js} +1 -1
  224. package/dist/esm/{get-mock-files-BEIYZlS_.js → get-mock-files-C26lznN1.js} +1 -1
  225. package/dist/esm/information-table.entry.js +1 -1
  226. package/dist/esm/loader.js +1 -1
  227. package/dist/esm/loading-spinner.entry.js +2 -2
  228. package/dist/esm/manufacturer-part-lookup.entry.js +3 -3
  229. package/dist/esm/part-lookup.entry.js +2 -2
  230. package/dist/esm/service-booking-form.entry.js +4 -4
  231. package/dist/esm/shift-accordion.entry.js +1 -1
  232. package/dist/esm/shift-checkbox.entry.js +1 -1
  233. package/dist/esm/shift-components.js +1 -1
  234. package/dist/esm/shift-slider.entry.js +2 -2
  235. package/dist/esm/shift-switch.entry.js +1 -1
  236. package/dist/esm/shift-tab-content.entry.js +2 -2
  237. package/dist/esm/shift-tabs_2.entry.js +92 -34
  238. package/dist/esm/ssc-lookup-form.entry.js +4 -4
  239. package/dist/esm/test-drive-form.entry.js +4 -4
  240. package/dist/esm/triangle-alert-BlnfPzWh.js +237 -0
  241. package/dist/esm/vehicle-accessories_8.entry.js +177 -117
  242. package/dist/esm/vehicle-lookup.entry.js +3 -3
  243. package/dist/esm/vehicle-quotation-form.entry.js +4 -4
  244. package/dist/integration-manifest.json +1 -1
  245. package/dist/locales/vehicleLookup/serviceHistory/en.json +2 -2
  246. package/dist/shift-components/{p-65aad39b.entry.js → p-09a0fd99.entry.js} +1 -1
  247. package/dist/shift-components/{p-6263bc0c.entry.js → p-0da97a29.entry.js} +1 -1
  248. package/dist/shift-components/{p-782fe0e1.entry.js → p-12e295ba.entry.js} +1 -1
  249. package/dist/shift-components/{p-48a9feb9.entry.js → p-1355934b.entry.js} +1 -1
  250. package/dist/shift-components/{p-e7a99998.entry.js → p-138af7f3.entry.js} +1 -1
  251. package/dist/shift-components/{p-bb172fc4.entry.js → p-30e84a3b.entry.js} +1 -1
  252. package/dist/shift-components/{p-829f24b9.entry.js → p-31718ec2.entry.js} +1 -1
  253. package/dist/shift-components/p-323ffb6e.entry.js +5 -0
  254. package/dist/shift-components/{p-c66b18c9.entry.js → p-327fddd8.entry.js} +1 -1
  255. package/dist/shift-components/p-34e9053b.entry.js +5 -0
  256. package/dist/shift-components/{p-a0d13479.entry.js → p-3aad8840.entry.js} +1 -1
  257. package/dist/shift-components/{p-cfcfdb20.entry.js → p-53cd54e8.entry.js} +1 -1
  258. package/dist/shift-components/{p-ec2a7d65.entry.js → p-63713eae.entry.js} +1 -1
  259. package/dist/shift-components/{p-fdf94f65.entry.js → p-68722c7b.entry.js} +1 -1
  260. package/dist/shift-components/{p-c4cf0a18.entry.js → p-729d8d4b.entry.js} +1 -1
  261. package/dist/shift-components/p-8374f629.entry.js +5 -0
  262. package/dist/shift-components/p-9b13a82b.entry.js +5 -0
  263. package/dist/shift-components/p-BkVfhjgg.js +5 -0
  264. package/dist/shift-components/{p-jmNTa9tM.js → p-BugYpTL6.js} +1 -1
  265. package/dist/shift-components/{p-f2b86186.entry.js → p-a15fdf1e.entry.js} +1 -1
  266. package/dist/shift-components/{p-D0Md1Xf7.js → p-awXOnuq1.js} +1 -1
  267. package/dist/shift-components/p-c25a6c0d.entry.js +5 -0
  268. package/dist/shift-components/{p-b1270d98.entry.js → p-c9ba7fd5.entry.js} +1 -1
  269. package/dist/shift-components/{p-537507ee.entry.js → p-d58404bd.entry.js} +1 -1
  270. package/dist/shift-components/{p-1923fdb9.entry.js → p-d59276b6.entry.js} +1 -1
  271. package/dist/shift-components/p-dacdff2a.entry.js +5 -0
  272. package/dist/shift-components/{p-853f1b8b.entry.js → p-e90c354a.entry.js} +1 -1
  273. package/dist/shift-components/{p-ac91d4ce.entry.js → p-eb265a3e.entry.js} +1 -1
  274. package/dist/shift-components/{p-b2048d87.entry.js → p-f2a546db.entry.js} +1 -1
  275. package/dist/shift-components/{p--JyU3LyU.js → p-urLq-GEs.js} +1 -1
  276. package/dist/shift-components/shift-components.esm.js +1 -1
  277. package/dist/stencil-docs.json +1 -1
  278. package/dist/types/components/vehicle-lookup/components/claimable-item-popover.d.ts +10 -1
  279. package/dist/types/components/vehicle-lookup/components/claimable-trace-modal.d.ts +3 -0
  280. package/dist/types/components/vehicle-lookup/vehicle-claimable-items.d.ts +14 -4
  281. package/dist/types/components/vehicle-lookup/vehicle-item-claim-form.d.ts +23 -3
  282. package/dist/types/global/lib/overlay.d.ts +61 -0
  283. package/package.json +10 -3
  284. package/dist/cjs/triangle-alert-BjQBwsRv.js +0 -92
  285. package/dist/components/p-BQHywBX6.js +0 -5
  286. package/dist/components/p-BUczNscD.js +0 -5
  287. package/dist/components/p-BvFDjUZZ.js +0 -5
  288. package/dist/components/p-CZWmJ1vV.js +0 -5
  289. package/dist/components/p-D0oXezbg.js +0 -5
  290. package/dist/components/p-DBKG_o1-.js +0 -5
  291. package/dist/components/p-Dlm9wHfQ.js +0 -5
  292. package/dist/components/p-DsMy6H9e.js +0 -5
  293. package/dist/components/p-EVz84xxv.js +0 -5
  294. package/dist/components/p-SnXklPq9.js +0 -5
  295. package/dist/esm/triangle-alert-Brtqhx2d.js +0 -86
  296. package/dist/shift-components/p-34dffc00.entry.js +0 -5
  297. package/dist/shift-components/p-6fa1121c.entry.js +0 -5
  298. package/dist/shift-components/p-9a6450f6.entry.js +0 -5
  299. package/dist/shift-components/p-B9kqtQjS.js +0 -5
  300. package/dist/shift-components/p-a91ed0fc.entry.js +0 -5
  301. package/dist/shift-components/p-c9a7e5ab.entry.js +0 -5
  302. package/dist/shift-components/p-fa7a961c.entry.js +0 -5
@@ -5,6 +5,7 @@
5
5
  import { Host, h } from "@stencil/core";
6
6
  import cn from "../../global/lib/cn";
7
7
  import { scrollIntoContainerView } from "../../global/lib/scroll-into-container-view";
8
+ import { bindEscapeFallback, closeModalOverlay, demoteOverlay, openModalOverlay, promoteOverlayIfCaged } from "../../global/lib/overlay";
8
9
  import { VehicleInfoLayout } from "../../features/vehicle-info-layout/index";
9
10
  import { smartInvokable } from "../../features/blazor-ref/index";
10
11
  import { setVehicleLookupData, setVehicleLookupErrorState } from "../../features/vehicle-lookup-component/index";
@@ -13,6 +14,9 @@ import { ClaimableItem } from "./components/claimable-item";
13
14
  import { ClaimableItemPopover } from "./components/claimable-item-popover";
14
15
  import { ClaimableTraceModal } from "./components/claimable-trace-modal";
15
16
  import dynamicClaimSchema from "../../locales/vehicleLookup/claimableItems/type";
17
+ import { PrintIcon } from "../../global/assets/print-icon";
18
+ import { ActivationIcon } from "../../global/assets/activation-icon";
19
+ import { EmptyTableIcon } from "../../global/assets/empty-table-icon";
16
20
  /**
17
21
  * Whether an item is genuinely waiting to be claimed.
18
22
  *
@@ -22,9 +26,6 @@ import dynamicClaimSchema from "../../locales/vehicleLookup/claimableItems/type"
22
26
  * true of an item the customer was never able to claim.
23
27
  */
24
28
  const isAwaitingClaim = (item) => item.status === 'pending' && !item.lock;
25
- import { PrintIcon } from "../../global/assets/print-icon";
26
- import { ActivationIcon } from "../../global/assets/activation-icon";
27
- import { EmptyTableIcon } from "../../global/assets/empty-table-icon";
28
29
  export class VehicleClaimableItems {
29
30
  constructor() {
30
31
  // #region Localization
@@ -51,7 +52,8 @@ export class VehicleClaimableItems {
51
52
  this.popoverTarget = { centerX: 0, topY: 0, bottomY: 0 };
52
53
  this.popoverHeight = 0;
53
54
  this.popoverBodyContentHeight = 0;
54
- this.popoverContentFading = false;
55
+ this.popoverSwapping = false;
56
+ this.popoverLayerKey = 0;
55
57
  this.popoverFadingOut = false;
56
58
  this.showTraceModal = false;
57
59
  this.traceModalFadingOut = false;
@@ -210,20 +212,38 @@ export class VehicleClaimableItems {
210
212
  if (!this.popoverAnchorEl)
211
213
  return;
212
214
  const { left, right, top, bottom } = this.popoverAnchorEl.getBoundingClientRect();
213
- this.popoverTarget = { centerX: (left + right) / 2, topY: top, bottomY: bottom };
215
+ const centerX = (left + right) / 2;
216
+ // Writing @State re-renders the whole component, and scroll fires far more often than the anchor
217
+ // actually moves — most notably not at all while the popover is parked over a still page.
218
+ if (this.popoverTarget.centerX === centerX && this.popoverTarget.topY === top && this.popoverTarget.bottomY === bottom)
219
+ return;
220
+ this.popoverTarget = { centerX, topY: top, bottomY: bottom };
221
+ };
222
+ // The anchor outlives the popover, so scroll and resize would otherwise keep measuring it long
223
+ // after the card closed.
224
+ this.onViewportChange = () => {
225
+ if (!this.showClaimableItemPopover && !this.popoverFadingOut)
226
+ return;
227
+ this.updatePopoverLocation();
214
228
  };
215
229
  this.measurePopoverHeight = () => {
216
- var _a;
230
+ var _a, _b;
217
231
  const body = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.popover-body');
218
- // scrollHeight, not offsetHeight: the body carries a max-height derived from this measurement,
219
- // so reading its rendered height would feed the cap back into the decision that set it and the
220
- // popover would conclude it fits anywhere. scrollHeight is the content's own height either way.
221
- if (body && body.scrollHeight > 0)
222
- this.popoverHeight = body.scrollHeight;
232
+ const content = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.popover-body-content');
233
+ const inner = this.currentPopoverInner();
234
+ if (!body || !content || !inner)
235
+ return;
236
+ // Mid-swap the content box is pinned to an animating height and the outgoing layer is still
237
+ // stacked behind the incoming one, so the body's own size is neither where it started nor where
238
+ // it is going. Take the chrome (padding + border) from the live box and the content height from
239
+ // the layer that will remain, which off a swap is exactly the body's scrollHeight anyway.
240
+ this.popoverHeight = Math.ceil(inner.getBoundingClientRect().height) + (body.offsetHeight - content.offsetHeight);
223
241
  };
242
+ // Scoped to the current layer: during a cross-fade an outgoing copy of the card is mounted too,
243
+ // and an unscoped lookup would measure whichever of the two the vdom happened to put first.
244
+ this.currentPopoverInner = () => { var _a; return (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.popover-layer-current .popover-body-inner'); };
224
245
  this.measurePopoverContentHeight = () => {
225
- var _a;
226
- const inner = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.popover-body-inner');
246
+ const inner = this.currentPopoverInner();
227
247
  if (!inner)
228
248
  return 0;
229
249
  // Use getBoundingClientRect for sub-pixel precision and ceil to avoid undershooting at
@@ -252,45 +272,65 @@ export class VehicleClaimableItems {
252
272
  this.showClaimableItemPopover = true;
253
273
  return;
254
274
  }
255
- clearTimeout(this.popoverContentSwapTimeoutRef);
275
+ clearTimeout(this.popoverSwapEndTimeoutRef);
256
276
  if (wasActive) {
257
- // Switching to a different item while still active: slide + cross-fade content.
277
+ // Switching to a different item while still active. Both cards are mounted at once, stacked
278
+ // in one grid cell: pin the box to the height it has now, mount the incoming layer hidden,
279
+ // then release everything together next frame so the fade-out, the fade-in and the resize
280
+ // run on the same clock. The previous version faded the values out, swapped the DOM, and
281
+ // only then started resizing — which is what made the move read as two separate jerks, left
282
+ // labels and whole rows hard-swapping, and mounted/unmounted a claim button mid-move.
258
283
  this.popoverBodyContentHeight = this.measurePopoverContentHeight();
259
- this.popoverContentFading = true;
284
+ this.outgoingClaimItem = this.selectedClaimItem;
285
+ this.selectedClaimItem = claimableItem;
286
+ this.popoverLayerKey += 1;
287
+ this.popoverSwapping = true;
260
288
  this.popoverFadingOut = false;
261
289
  this.showClaimableItemPopover = true;
262
290
  this.updatePopoverLocation();
263
- this.popoverContentSwapTimeoutRef = setTimeout(() => {
264
- this.selectedClaimItem = claimableItem;
265
- requestAnimationFrame(() => {
266
- this.popoverBodyContentHeight = this.measurePopoverContentHeight();
267
- this.popoverContentFading = false;
268
- this.measurePopoverHeight();
269
- });
270
- }, VehicleClaimableItems.POPOVER_CONTENT_FADE_MS);
291
+ // Two frames: the first lets Stencil render the incoming layer, the second lets the browser
292
+ // adopt its opacity:0 starting style. Flipping in the first frame would skip the transition.
293
+ requestAnimationFrame(() => requestAnimationFrame(() => {
294
+ this.popoverBodyContentHeight = this.measurePopoverContentHeight();
295
+ this.popoverSwapping = false;
296
+ this.measurePopoverHeight();
297
+ }));
298
+ this.popoverSwapEndTimeoutRef = setTimeout(() => {
299
+ this.outgoingClaimItem = undefined;
300
+ // Hand the height back to the content, so anything that changes it later (a claim landing,
301
+ // a resize) reflows instead of staying pinned to a stale measurement.
302
+ this.popoverBodyContentHeight = 0;
303
+ }, VehicleClaimableItems.POPOVER_SWAP_MS);
271
304
  }
272
305
  else {
273
306
  // Truly fresh open. Two-frame dance: set position while still hidden, then flip aria-expanded
274
307
  // next frame so the opacity fade-in doesn't drag a position transition along with it.
275
- this.popoverContentFading = false;
308
+ this.popoverSwapping = false;
309
+ this.outgoingClaimItem = undefined;
276
310
  this.popoverBodyContentHeight = 0;
277
311
  this.selectedClaimItem = claimableItem;
278
312
  this.updatePopoverLocation();
279
313
  requestAnimationFrame(() => {
280
314
  this.showClaimableItemPopover = true;
315
+ // Non-modal, and only when an ancestor would otherwise clip it: a hover card that took the
316
+ // top layer unconditionally would outrank the host's own toasts and nav for no reason, and
317
+ // a modal one would inert the very cards it is meant to be hovered between.
318
+ promoteOverlayIfCaged(this.popoverEl);
281
319
  requestAnimationFrame(() => this.measurePopoverHeight());
282
320
  });
283
321
  }
284
322
  }
285
323
  else {
286
324
  this.popoverCloseTimeoutRef = setTimeout(() => {
287
- clearTimeout(this.popoverContentSwapTimeoutRef);
325
+ clearTimeout(this.popoverSwapEndTimeoutRef);
288
326
  this.showClaimableItemPopover = false;
289
327
  this.popoverFadingOut = true;
290
- this.popoverContentFading = false;
328
+ this.popoverSwapping = false;
329
+ this.outgoingClaimItem = undefined;
291
330
  this.popoverHideTimeoutRef = setTimeout(() => {
292
331
  this.popoverFadingOut = false;
293
332
  this.popoverBodyContentHeight = 0;
333
+ demoteOverlay(this.popoverEl);
294
334
  }, VehicleClaimableItems.POPOVER_FADE_OUT_MS);
295
335
  }, VehicleClaimableItems.POPOVER_CLOSE_DELAY_MS);
296
336
  }
@@ -312,13 +352,18 @@ export class VehicleClaimableItems {
312
352
  this.isLoadingTrace = true;
313
353
  this.traceError = undefined;
314
354
  this.traceHtml = undefined;
315
- // Match the claim-form pattern: lock host page scroll so the only scrollbar is the iframe's.
316
- document.body.style.overflow = 'hidden';
317
- this.traceCloseListener = (event) => {
318
- if (event.key === 'Escape')
319
- this.closeTraceModal();
320
- };
321
- window.addEventListener('keydown', this.traceCloseListener);
355
+ // Match the claim-form pattern: the top layer clears the host page's stacking contexts and
356
+ // inerts everything behind it, so the only scrollbar is the iframe's.
357
+ const inTopLayer = openModalOverlay(this.traceDialogEl);
358
+ // What the top layer supplies for free, supplied by hand where it is unavailable.
359
+ if (!inTopLayer) {
360
+ document.body.style.overflow = 'hidden';
361
+ const release = bindEscapeFallback(this.onTraceCancel);
362
+ this.releaseTraceFallbacks = () => {
363
+ release();
364
+ document.body.style.overflow = '';
365
+ };
366
+ }
322
367
  (_b = this.traceAbortController) === null || _b === void 0 ? void 0 : _b.abort();
323
368
  this.traceAbortController = new AbortController();
324
369
  try {
@@ -352,19 +397,26 @@ export class VehicleClaimableItems {
352
397
  (_a = this.traceAbortController) === null || _a === void 0 ? void 0 : _a.abort();
353
398
  this.showTraceModal = false;
354
399
  this.traceModalFadingOut = true;
355
- document.body.style.overflow = 'auto';
356
- if (this.traceCloseListener) {
357
- window.removeEventListener('keydown', this.traceCloseListener);
358
- this.traceCloseListener = undefined;
359
- }
360
400
  clearTimeout(this.traceFadeOutTimeoutRef);
361
401
  this.traceFadeOutTimeoutRef = setTimeout(() => {
402
+ var _a;
362
403
  this.traceModalFadingOut = false;
363
404
  this.isLoadingTrace = false;
364
405
  this.traceError = undefined;
365
406
  this.traceHtml = undefined;
407
+ // Last, so the panel is fully faded before it leaves the top layer.
408
+ if (this.showTraceModal)
409
+ return;
410
+ closeModalOverlay(this.traceDialogEl);
411
+ (_a = this.releaseTraceFallbacks) === null || _a === void 0 ? void 0 : _a.call(this);
412
+ this.releaseTraceFallbacks = undefined;
366
413
  }, VehicleClaimableItems.TRACE_FADE_OUT_MS);
367
414
  };
415
+ /** Escape would drop the panel out of the top layer in one frame; close it through the fade. */
416
+ this.onTraceCancel = (event) => {
417
+ event.preventDefault();
418
+ this.closeTraceModal();
419
+ };
368
420
  this.handleClaim = async (documents, payload) => {
369
421
  try {
370
422
  const formData = new FormData();
@@ -404,7 +456,6 @@ export class VehicleClaimableItems {
404
456
  });
405
457
  reject(new Error('Upload succeeded but response is not valid JSON'));
406
458
  }
407
- resolve();
408
459
  }
409
460
  else {
410
461
  try {
@@ -418,10 +469,7 @@ export class VehicleClaimableItems {
418
469
  }
419
470
  }
420
471
  };
421
- xhr.onerror = e => {
422
- console.log(e);
423
- reject(new Error('Network error'));
424
- };
472
+ xhr.onerror = () => reject(new Error('Network error'));
425
473
  xhr.send(formData);
426
474
  });
427
475
  }
@@ -429,7 +477,7 @@ export class VehicleClaimableItems {
429
477
  // Show the claim-failure dialog, then re-throw: the rejection resets the
430
478
  // claim form's loading state and keeps it open for retry.
431
479
  this.claimForm.showError((error === null || error === void 0 ? void 0 : error.serverMessage) || this.locale.sharedLocales.errors.requestFailedPleaseTryAgainLater);
432
- throw new Error(error);
480
+ throw error;
433
481
  }
434
482
  };
435
483
  this.handleDevClaim = async (documents) => {
@@ -448,7 +496,7 @@ export class VehicleClaimableItems {
448
496
  }
449
497
  catch (error) {
450
498
  this.claimForm.showError(this.locale.sharedLocales.errors.requestFailedPleaseTryAgainLater);
451
- throw new Error(error);
499
+ throw error;
452
500
  }
453
501
  };
454
502
  }
@@ -486,9 +534,9 @@ export class VehicleClaimableItems {
486
534
  window.addEventListener('resize', this.onWindowResize);
487
535
  document.addEventListener('visibilitychange', this.onVisibilityChange);
488
536
  if (this.claimableItemsBox)
489
- this.claimableItemsBox.addEventListener('scroll', this.updatePopoverLocation);
490
- window.addEventListener('scroll', this.updatePopoverLocation);
491
- window.addEventListener('resize', this.updatePopoverLocation);
537
+ this.claimableItemsBox.addEventListener('scroll', this.onViewportChange);
538
+ window.addEventListener('scroll', this.onViewportChange);
539
+ window.addEventListener('resize', this.onViewportChange);
492
540
  requestAnimationFrame(() => this.measurePopoverHeight());
493
541
  // A lookup can land before the component has finished loading, in which case the measurement
494
542
  // it asked for is still owed.
@@ -498,22 +546,20 @@ export class VehicleClaimableItems {
498
546
  this.takePendingProgressBarUpdate();
499
547
  }
500
548
  async disconnectedCallback() {
501
- var _a;
549
+ var _a, _b;
502
550
  window.removeEventListener('resize', this.onWindowResize);
503
551
  document.removeEventListener('visibilitychange', this.onVisibilityChange);
504
552
  if (this.claimableItemsBox)
505
- this.claimableItemsBox.removeEventListener('scroll', this.updatePopoverLocation);
506
- window.removeEventListener('scroll', this.updatePopoverLocation);
507
- window.removeEventListener('resize', this.updatePopoverLocation);
553
+ this.claimableItemsBox.removeEventListener('scroll', this.onViewportChange);
554
+ window.removeEventListener('scroll', this.onViewportChange);
555
+ window.removeEventListener('resize', this.onViewportChange);
508
556
  clearTimeout(this.popoverCloseTimeoutRef);
509
557
  clearTimeout(this.popoverHideTimeoutRef);
510
- clearTimeout(this.popoverContentSwapTimeoutRef);
558
+ clearTimeout(this.popoverSwapEndTimeoutRef);
511
559
  clearTimeout(this.traceFadeOutTimeoutRef);
512
- if (this.traceCloseListener)
513
- window.removeEventListener('keydown', this.traceCloseListener);
514
560
  (_a = this.traceAbortController) === null || _a === void 0 ? void 0 : _a.abort();
515
- if (this.showTraceModal || this.traceModalFadingOut)
516
- document.body.style.overflow = 'auto';
561
+ (_b = this.releaseTraceFallbacks) === null || _b === void 0 ? void 0 : _b.call(this);
562
+ demoteOverlay(this.popoverEl);
517
563
  }
518
564
  async onVehicleChange() {
519
565
  this.progressBarUpdatePending = true;
@@ -529,12 +575,10 @@ export class VehicleClaimableItems {
529
575
  const pendingItemsBefore = serviceDataClone.slice(0, index).filter(x => isAwaitingClaim(x));
530
576
  serviceDataClone[index].claimable = false;
531
577
  serviceDataClone[index].status = 'processed';
532
- pendingItemsBefore.forEach(function (otherItem) {
533
- otherItem.status = 'cancelled';
534
- });
578
+ pendingItemsBefore.forEach(otherItem => (otherItem.status = 'cancelled'));
535
579
  const vehicleDataClone = JSON.parse(JSON.stringify(this.vehicleLookup));
536
580
  vehicleDataClone.serviceItems = serviceDataClone;
537
- this.vehicleLookup = JSON.parse(JSON.stringify(vehicleDataClone));
581
+ this.vehicleLookup = vehicleDataClone;
538
582
  if (response.PrintURL)
539
583
  this.showPrintBox = true;
540
584
  this.lastSuccessfulClaimResponse = response;
@@ -551,6 +595,9 @@ export class VehicleClaimableItems {
551
595
  render() {
552
596
  var _a, _b, _c, _d, _e;
553
597
  const serviceItems = this.getServiceItems();
598
+ // Only the first item still awaiting a claim wears its status colour; the rest are drawn plain.
599
+ // Hoisted out of the map below, where it used to be a findIndex per card.
600
+ const firstAwaitingIndex = serviceItems.findIndex(isAwaitingClaim);
554
601
  const isNoServicesAvailable = !this.isLoading && this.vehicleLookup && !serviceItems.length;
555
602
  const hideTabs = this.isLoading || this.isError || !this.tabs.length || !serviceItems.length;
556
603
  const tabs = this.tabs.map(group => group.name);
@@ -560,19 +607,19 @@ export class VehicleClaimableItems {
560
607
  const showActivationBox = showActivationRequired || showActivationBlocked || this.showPrintBox;
561
608
  const isBlockedBox = showActivationBlocked && !this.showPrintBox;
562
609
  const showActionButton = this.showPrintBox || showActivationRequired;
563
- return (h(Host, { key: '0bda5a9f936bbd61a649172df165cf22a7bf911b', translate: "no" }, h("vehicle-item-claim-form", { key: 'da344a51a08985fa1bab0d4d773103ab11d8aa6b', class: "vehicle-item-claim-form", maximumDocumentFileSizeInMb: this.maximumDocumentFileSizeInMb, uploadMultipleDocuments: this.uploadMultipleDocumentsAtTheForm, locale: Object.assign({ sharedLocales: this.locale.sharedLocales }, this.locale.claimForm) }), h(ClaimableItemPopover, { key: '3525ec7fc69a18eb40f55c5e0690c2d2db032135', locale: this.locale, claim: this.claim.bind(this), item: this.selectedClaimItem, showPopover: this.showClaimableItemPopover, target: this.popoverTarget, popoverHeight: this.popoverHeight, fadingOut: this.popoverFadingOut, contentFading: this.popoverContentFading, bodyContentHeight: this.popoverBodyContentHeight, onMouseEnter: this.onPopoverMouseEnter, onMouseLeave: this.onPopoverMouseLeave }), h(ClaimableTraceModal, { key: 'cd45c395b1d017fd9387f88064bfcdd5f49976ae', isOpen: this.showTraceModal, fadingOut: this.traceModalFadingOut, isLoading: this.isLoadingTrace, errorMessage: this.traceError, vin: (_d = this.vehicleLookup) === null || _d === void 0 ? void 0 : _d.vin, traceHtml: this.traceHtml, locale: this.locale, onClose: this.closeTraceModal }), h(VehicleInfoLayout, { key: 'eac55fca7d51f52f8f0acb58e2c894642c1eb8e7', isError: this.isError, coreOnly: this.coreOnly, header: (_e = this.vehicleLookup) === null || _e === void 0 ? void 0 : _e.vin, direction: this.locale.sharedLocales.direction, isLoading: this.isLoading || this.tabAnimationLoading, errorMessage: this.locale.sharedLocales.errors[this.errorMessage] || this.locale.sharedLocales.errors.wildCard, headerRight: this.showTrace && this.vehicleLookup && !this.isLoading && !this.tabAnimationLoading && !this.isError ? (h("button", { type: "button", class: "trace-trigger-button", title: this.locale.viewTrace, "aria-label": this.locale.viewTrace, onClick: this.openTraceModal }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("circle", { cx: "6", cy: "19", r: "3" }), h("path", { d: "M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15" }), h("circle", { cx: "18", cy: "5", r: "3" })))) : null }, h("div", { key: '52394c8186c3395e8ca9a177d23152a4bfc8af29', dir: "ltr", class: cn('relative flex items-center h-[320px] transition-all duration-300', { loading: this.isLoading || this.tabAnimationLoading }) }, h("div", { key: 'a2d63abefd27ee76abe0dafee419b5bd61067f15', dir: this.locale.sharedLocales.direction, class: "absolute top-0 z-10 w-full pt-[16px]" }, h("div", { key: 'e33a7de120cab74faed91f1511a1306167668042', class: cn('duration-300', { 'translate-y-[-50%] opacity-0': hideTabs }) }, h("shift-tabs", { key: 'b987887a14c2e0a4808333dd3c732e338f30eb72', activeTabLabel: this.activeTab, changeActiveTab: this.onActiveTabChange, tabs: tabs }))), h("div", { key: '9f3c40832616d9e12c6d3772f87503cae6cc805d', class: cn('absolute w-[calc(100%-60px)] left-[30px] progress-container-style opacity-0', { 'opacity-100': this.isLoading || this.tabAnimationLoading }) }, h("div", { key: '1975e0f1b965420e74d25c887656336415d11d70', class: "w-full h-full rounded-[4px] overflow-x-hidden absolute left-0 top-0" }, h("div", { key: '8a77fa2e7149fd3ef9dc40c4f44a25b3d02252b0', class: "absolute opacity-0 bg-[#1a1a1a] w-[150%] h-full" }), h("div", { key: '355fcb2bb47931b48f0e62a21473873f012afda6', class: "absolute h-full bg-[linear-gradient(to_bottom,_#428bca_0%,_#3071a9_100%)] lane-inc" }), h("div", { key: 'ba3943d8a01533b0e8b17f6527fdb9ff769b57fa', class: "absolute h-full bg-[linear-gradient(to_bottom,_#428bca_0%,_#3071a9_100%)] lane-dec" }))), h("div", { key: '645f00ff3f247d919056e2d84f11390ead2075b1', dir: this.locale.sharedLocales.direction, class: cn('absolute w-[90%] z-10 pointer-events-none border opacity-0 translate-y-[-5px] scale-[70%] p-[25px] text-[16px] rounded-[6px] flex items-center justify-between left-1/2 -translate-x-1/2 h-10 bottom-[40px] transition duration-500', {
610
+ return (h(Host, { key: 'ffd120d827fdc348b24d50e698cfa1a5333170d7', translate: "no" }, h("vehicle-item-claim-form", { key: '648752a155603a255b4559c050e0f9acbfb63d7e', class: "vehicle-item-claim-form", maximumDocumentFileSizeInMb: this.maximumDocumentFileSizeInMb, uploadMultipleDocuments: this.uploadMultipleDocumentsAtTheForm, locale: Object.assign({ sharedLocales: this.locale.sharedLocales }, this.locale.claimForm) }), h(ClaimableItemPopover, { key: 'e8688af0517fcb6dd36781dd461994432fdbcbe7', locale: this.locale, claim: this.claim.bind(this), item: this.selectedClaimItem, showPopover: this.showClaimableItemPopover, target: this.popoverTarget, popoverHeight: this.popoverHeight, fadingOut: this.popoverFadingOut, swapping: this.popoverSwapping, outgoingItem: this.outgoingClaimItem, layerKey: this.popoverLayerKey, swapMs: VehicleClaimableItems.POPOVER_SWAP_MS, bodyContentHeight: this.popoverBodyContentHeight, onMouseEnter: this.onPopoverMouseEnter, onMouseLeave: this.onPopoverMouseLeave, rootRef: el => (this.popoverEl = el) }), h(ClaimableTraceModal, { key: 'afdf434f12639e8f43ccdc80133348f2103d2c79', isOpen: this.showTraceModal, fadingOut: this.traceModalFadingOut, isLoading: this.isLoadingTrace, errorMessage: this.traceError, vin: (_d = this.vehicleLookup) === null || _d === void 0 ? void 0 : _d.vin, traceHtml: this.traceHtml, locale: this.locale, onClose: this.closeTraceModal, onCancel: this.onTraceCancel, dialogRef: el => (this.traceDialogEl = el) }), h(VehicleInfoLayout, { key: 'f91fadc6f434933f85a6ea172f65bb428a670b08', isError: this.isError, coreOnly: this.coreOnly, header: (_e = this.vehicleLookup) === null || _e === void 0 ? void 0 : _e.vin, direction: this.locale.sharedLocales.direction, isLoading: this.isLoading || this.tabAnimationLoading, errorMessage: this.locale.sharedLocales.errors[this.errorMessage] || this.locale.sharedLocales.errors.wildCard, headerRight: this.showTrace && this.vehicleLookup && !this.isLoading && !this.tabAnimationLoading && !this.isError ? (h("button", { type: "button", class: "trace-trigger-button", title: this.locale.viewTrace, "aria-label": this.locale.viewTrace, onClick: this.openTraceModal }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("circle", { cx: "6", cy: "19", r: "3" }), h("path", { d: "M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15" }), h("circle", { cx: "18", cy: "5", r: "3" })))) : null }, h("div", { key: '32013b1f197121fa14cbdf34a3516f0877dbe0fe', dir: "ltr", class: cn('relative flex items-center h-[320px] transition-all duration-300', { loading: this.isLoading || this.tabAnimationLoading }) }, h("div", { key: '3dd20b19c8d3d023a6bf9a8ed08b9ae0ee7216e3', dir: this.locale.sharedLocales.direction, class: "absolute top-0 z-10 w-full pt-[16px]" }, h("div", { key: '729a58cf85cd80c126469c9056c14ccd2e576920', class: cn('duration-300', { 'translate-y-[-50%] opacity-0': hideTabs }) }, h("shift-tabs", { key: 'ef0606132214cec5544908c9f898fbc7c99cacf7', activeTabLabel: this.activeTab, changeActiveTab: this.onActiveTabChange, tabs: tabs }))), h("div", { key: '15706449382df4aa49f86bc18e23f01582319ad5', class: cn('absolute w-[calc(100%-60px)] left-[30px] progress-container-style opacity-0', { 'opacity-100': this.isLoading || this.tabAnimationLoading }) }, h("div", { key: '321fd03a11953e56da71ee07bb8757d033b69db1', class: "w-full h-full rounded-[4px] overflow-x-hidden absolute left-0 top-0" }, h("div", { key: 'b5796de2ea49e129f24efc21057771b173e39469', class: "absolute opacity-0 bg-[#1a1a1a] w-[150%] h-full" }), h("div", { key: 'e06bdaeb4c29414b5483f1e401c2e43b549428fb', class: "absolute h-full bg-[linear-gradient(to_bottom,_#428bca_0%,_#3071a9_100%)] lane-inc" }), h("div", { key: '1751fe5acdc2c801c4f73623e36340e414cef46c', class: "absolute h-full bg-[linear-gradient(to_bottom,_#428bca_0%,_#3071a9_100%)] lane-dec" }))), h("div", { key: 'dd1acad43036102e1e6586e90c4bc2c743b25c1b', dir: this.locale.sharedLocales.direction, class: cn('absolute w-[90%] z-10 pointer-events-none border opacity-0 translate-y-[-5px] scale-[70%] p-[25px] text-[16px] rounded-[6px] flex items-center justify-between left-1/2 -translate-x-1/2 h-10 bottom-[40px] transition duration-500', {
564
611
  'text-[#8a6d3b] bg-[#fcf8e3] border-[#faebcc]': !isBlockedBox,
565
612
  'text-[#58151c] bg-[#f7d7d8] border-[#f2aeb5]': isBlockedBox,
566
613
  'opacity-100 pointer-events-auto translate-y-0 scale-100': !this.isLoading && this.vehicleLookup && !this.tabAnimationLoading && showActivationBox,
567
- }) }, h("span", { key: 'd8ad99d2a5950fcbc3373acf6d675dca2967aa52', class: "font-semibold" }, this.showPrintBox
614
+ }) }, h("span", { key: 'a9fed56b091b460e85a0d82733ed48e49265de83', class: "font-semibold" }, this.showPrintBox
568
615
  ? this.locale.successFulClaimMessage
569
616
  : showActivationBlocked
570
617
  ? this.locale.activationBlockedNotAllocated
571
- : this.locale.warrantyAndServicesNotActivated), showActionButton && (h("button", { key: 'f05d7db72b4930c81427ebef21eb8508e4a85bf6', class: "claim-button", onClick: this.showPrintBox ? this.printLastClaimResponse : this.activateClaimItem }, this.showPrintBox ? h(PrintIcon, { class: "size-[30px] duration-200" }) : h(ActivationIcon, { class: "size-[30px] duration-200" }), h("span", { key: 'e4b77c5faa41859a38516730b3bdf5f19c4c487a' }, this.showPrintBox ? this.locale.print : this.locale.activateNow)))), h("div", { key: '0e247a0ec1dd256e8ed8d71b5c95430d5ee33035', class: "claimable-items-box px-[30px] min-w-full relative overflow-x-scroll h-full overflow-y-hidden" }, h("div", { key: 'fb3554eaefe010e795b28bfae81c021bd943a67b', class: "flex relative w-fit min-w-full items-center h-full [&_*]:shrink-0 gap-[250px] justify-between" }, h("div", { key: '00a40f495e0ef101633c6672f4ae38c01ce2095e', class: cn('progress-container-style progress-lane absolute overflow-hidden w-[calc(100%-0px)] translate-y-0 opacity-100', {
618
+ : this.locale.warrantyAndServicesNotActivated), showActionButton && (h("button", { key: '32928643bebdd6b59b55cc5663838ca80e209437', class: "claim-button", onClick: this.showPrintBox ? this.printLastClaimResponse : this.activateClaimItem }, this.showPrintBox ? h(PrintIcon, { class: "size-[30px] duration-200" }) : h(ActivationIcon, { class: "size-[30px] duration-200" }), h("span", { key: '391139de4bec49d77883382911e7aefa0c65af59' }, this.showPrintBox ? this.locale.print : this.locale.activateNow)))), h("div", { key: 'd72ba857a0533009546afc29420d7cce2beef704', class: "claimable-items-box px-[30px] min-w-full relative overflow-x-scroll h-full overflow-y-hidden" }, h("div", { key: 'a1c69785f477216d88bfe961d693650bd4c86f57', class: "flex relative w-fit min-w-full items-center h-full [&_*]:shrink-0 gap-[250px] justify-between" }, h("div", { key: 'ff1abe3a3e66f2266492a189b9c1116d0dfd2ad0', class: cn('progress-container-style progress-lane absolute overflow-hidden w-[calc(100%-0px)] translate-y-0 opacity-100', {
572
619
  'opacity-0': this.isLoading || this.tabAnimationLoading || isNoServicesAvailable || !this.vehicleLookup,
573
- }) }, h("div", { key: '099568010a2a6d44846732ca1279d5e9b24ad4a6', part: "progress-bar", class: "progress-bar transition-all w-1/2 h-full bg-[linear-gradient(to_bottom,_#428bca_0%,_#3071a9_100%)]" })), h("div", { key: '8796a55b5ba74abbe13c9a83591dfd5c514dd4e9', class: "ml-[-125px]" }), serviceItems.map((item, idx) => (h(ClaimableItem, { item: item, locale: this.locale, setClaimableItemPopover: this.setClaimableItemPopover, addStatusClass: !isAwaitingClaim(item) || serviceItems.findIndex(i => isAwaitingClaim(i)) === idx }))), h("div", { key: 'f8e1485323e48031134123d2c6cfb6d908bacfd0', class: "ml-[-125px]" })), h("div", { key: '99b953f590dd8f3ca0466b55f4c3c1e0d6207799', dir: this.locale.sharedLocales.direction, class: cn('absolute top-0 left-0 pointer-events-none size-full box-content flex flex-col justify-center opacity-0 transition duration-500 items-center text-slate-700', {
620
+ }) }, h("div", { key: '21ab92a76e0b31075beba8f86c1a86d5845c3561', part: "progress-bar", class: "progress-bar transition-all w-1/2 h-full bg-[linear-gradient(to_bottom,_#428bca_0%,_#3071a9_100%)]" })), h("div", { key: '7939a72a28327c2f9614b2adc0fbfaedbf148393', class: "ml-[-125px]" }), serviceItems.map((item, idx) => (h(ClaimableItem, { item: item, locale: this.locale, setClaimableItemPopover: this.setClaimableItemPopover, addStatusClass: !isAwaitingClaim(item) || firstAwaitingIndex === idx }))), h("div", { key: '3e6a6a4fb68e2b16e375cc455d2da729f1461cc8', class: "ml-[-125px]" })), h("div", { key: '57e981019a148880047186c45ee9a7dc9a630325', dir: this.locale.sharedLocales.direction, class: cn('absolute top-0 left-0 pointer-events-none size-full box-content flex flex-col justify-center opacity-0 transition duration-500 items-center text-slate-700', {
574
621
  'opacity-100 scale-100': isNoServicesAvailable,
575
- }) }, h(EmptyTableIcon, { key: 'cf036d60fe923f874ac52bea7c930543ae653dbe', class: "size-[90px]" }), h("div", { key: 'ca65f59a1578e74e075cfcf10b9822ac5e20f362', class: "text-[22px]" }, this.locale.sharedLocales.errors.noServiceAvailable)))))));
622
+ }) }, h(EmptyTableIcon, { key: '57b4187e1aee59d698305ac57fabdd60412c0f7a', class: "size-[90px]" }), h("div", { key: '40e478a35b70db2f417cea0f5b8db956f727d69f', class: "text-[22px]" }, this.locale.sharedLocales.errors.noServiceAvailable)))))));
576
623
  }
577
624
  static get is() { return "vehicle-claimable-items"; }
578
625
  static get encapsulation() { return "shadow"; }
@@ -962,7 +1009,9 @@ export class VehicleClaimableItems {
962
1009
  "popoverTarget": {},
963
1010
  "popoverHeight": {},
964
1011
  "popoverBodyContentHeight": {},
965
- "popoverContentFading": {},
1012
+ "popoverSwapping": {},
1013
+ "outgoingClaimItem": {},
1014
+ "popoverLayerKey": {},
966
1015
  "popoverFadingOut": {},
967
1016
  "showTraceModal": {},
968
1017
  "traceModalFadingOut": {},
@@ -1174,5 +1223,7 @@ export class VehicleClaimableItems {
1174
1223
  }
1175
1224
  VehicleClaimableItems.POPOVER_CLOSE_DELAY_MS = 200;
1176
1225
  VehicleClaimableItems.POPOVER_FADE_OUT_MS = 500;
1177
- VehicleClaimableItems.POPOVER_CONTENT_FADE_MS = 150;
1178
- VehicleClaimableItems.TRACE_FADE_OUT_MS = 300;
1226
+ /** Cross-fade + resize duration. Handed to the popover as --popover-swap, so this one number
1227
+ * drives both the CSS transitions and the timer that drops the outgoing layer. */
1228
+ VehicleClaimableItems.POPOVER_SWAP_MS = 500;
1229
+ VehicleClaimableItems.TRACE_FADE_OUT_MS = 420;
@@ -1 +1 @@
1
- *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-wrap{flex-wrap:wrap}.border{border-width:1px}.uppercase{text-transform:uppercase}.outline{outline-style:solid}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter}.ease-in-out,.transition{transition-timing-function:cubic-bezier(.4,0,.2,1)}.image-viewer-overlay{background-color:rgba(0,0,0,.4);height:100dvh;left:0;opacity:0;pointer-events:none;position:fixed;top:0;transition-duration:.4s;transition-property:all;width:100dvw;z-index:50}.image-viewer-overlay.active{opacity:1;pointer-events:auto;transition-delay:.2s}.image-viewer-close-btn{align-items:center;cursor:pointer;display:flex;flex-direction:column;float:right;height:3rem;justify-content:center;margin-right:16px;margin-top:16px;width:3rem}.image-viewer-close-line{background-color:#fff;border-radius:9999px;height:.25rem;position:absolute;width:3rem}.image-viewer-close-line.first{transform:rotate(45deg)}.image-viewer-close-line.second{transform:rotate(-45deg)}.image-viewer-expanded-image{border-radius:.5rem;opacity:0;position:fixed;transition-property:all;z-index:50}:host{all:initial!important;display:block;font-family:inherit!important;font-family:Noto Kufi Arabic,Nunito,Roboto,Arial,sans-serif!important}*,:host *{font-family:inherit!important}.claim-scrim{--primary:#3071a9;--primary-dark:#275e8f;--primary-tint:#e8f1f8;--warn:#ff9100;--warn-tint:#fff4e5;--warn-border:#ffd28f;--warn-text:#663c00;--danger:#d92d20;--danger-tint:#fef3f2;--danger-border:#fda29b;--danger-text:#912018;--green:#32b267;--green-dark:#27ae60;--text:#1f2937;--muted:#6b7280;--hair:#ececec;--paper:#fff;--tear:#d9d2c6;--punch:#aab0b8;background:rgba(31,41,55,.38);color:var(--text);font-size:14px}.claim-scrim,.claim-scrim *{box-sizing:border-box}.stage{display:grid;min-height:100%;padding:18px;place-items:center}.voucher{background:var(--paper);border-radius:8px;box-shadow:0 10px 30px rgba(16,24,40,.16);max-width:100%;overflow:hidden;position:relative;width:1040px}.voucher.side{display:grid;grid-template-columns:1fr 372px}.voucher.bottom{width:700px}.btn-close{background:transparent;border:none;border-radius:50%;color:#9aa3ad;cursor:pointer;display:grid;height:28px;inset-inline-end:10px;padding:0;place-items:center;position:absolute;top:10px;transition:background .15s,color .15s,opacity .3s;width:28px;z-index:5}.btn-close:hover{background:#fde8e8;color:#c0392b}.btn-close:disabled{opacity:.4;pointer-events:none}.btn-close svg{height:22px;transform:rotate(45deg);width:22px}.v-body{display:flex;flex-direction:column;min-width:0;padding-block:22px 24px;padding-inline:28px 26px;position:relative}.voucher.bottom .v-body{padding-block-end:20px}.item-row{align-items:flex-start;border-bottom:1px solid var(--hair);display:grid;gap:12px;grid-template-columns:1fr auto;padding:4px 0 12px}.item-type{background:var(--primary-tint);border:1px solid #cfe0ef;border-radius:4px;color:var(--primary-dark);display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:5px;padding:2px 7px;text-transform:uppercase}.item-name{font-size:17px;font-weight:700;letter-spacing:.005em;line-height:1.2;overflow-wrap:anywhere}.vin-stamp{text-align:end}.voucher.bottom .vin-stamp{padding-inline-end:26px}.vin-stamp .lab{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.vin-stamp .vin{color:var(--text);font-size:15px;font-weight:600;letter-spacing:.03em}.btn-print{align-items:center;background:var(--warn-tint);border:1px solid var(--warn-border);border-radius:6px;color:var(--warn-text);cursor:pointer;display:inline-flex;font:inherit;font-size:11px;font-weight:600;gap:6px;margin-top:7px;padding:4px 12px;transition:background .15s,border-color .15s}.btn-print:hover{background:#ffe9cc;border-color:var(--warn)}.btn-print svg{height:13px;width:13px}.specs{border-bottom:1.5px dashed var(--tear);display:grid;grid-template-columns:repeat(3,1fr);padding:10px 0 12px}.spec{min-width:0;padding-inline-end:14px}.spec+.spec{border-inline-start:1px solid var(--hair);padding-inline-start:14px}.spec .lab{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.spec .val{color:var(--text);font-size:14px;font-variant-numeric:tabular-nums;font-weight:600;margin-top:3px;overflow-wrap:anywhere}.spec.pkg .val{color:var(--primary-dark);letter-spacing:.03em}.notices{display:flex;flex-direction:column;gap:10px;margin-top:12px}.notice{background:#fff6f5;border:1px solid var(--hair);border-end-end-radius:5px;border-inline-start:3px solid var(--danger);border-start-end-radius:5px;padding-block:10px;padding-inline:13px 12px;position:relative}.notice.info{background:#fbfcfd;border-inline-start-color:#b9c4d0}.ntc-body{color:#44403c;flex:1;font-size:13px;line-height:1.5;min-width:0;overflow-wrap:anywhere}.notice.info .ntc-body{color:#475569}.ntc-body strong{color:var(--text);font-weight:700}.notice .ntc-body ul{display:flex;flex-wrap:wrap;gap:5px;list-style:none;margin:6px 0 0;padding:0}.notice .ntc-body ul li{align-items:center;background:var(--danger-tint);border:1px dashed var(--danger-border);border-radius:4px;color:var(--danger-text);display:inline-flex;font-size:12px;font-weight:600;gap:5px;letter-spacing:.03em;padding:2px 8px}.notice .ntc-body ul li:before{background:var(--danger);border-radius:50%;content:"";height:5px;width:5px}.notice.info .ntc-body ul{display:block;list-style:disc;margin:4px 0;padding:0;padding-inline-start:24px}.notice.info .ntc-body ul li{background:none;border:none;border-radius:0;color:inherit;display:list-item;font-size:inherit;font-weight:inherit;padding:0}.notice.info .ntc-body ul li:before{content:none}.ntc-body ol{list-style:decimal;margin:4px 0;padding:0;padding-inline-start:24px}.confirm{border-top:1px dashed var(--danger-border);margin-top:8px;padding-top:8px}.confirm label{align-items:center;color:var(--danger-text);cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:9px;transition:opacity .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.confirm label.disabled{opacity:.5;pointer-events:none}.cbx-face{background:#fff;border:1.5px solid var(--danger-border);border-radius:4px;color:#fff;display:grid;flex:0 0 auto;height:17px;place-items:center;width:17px}.cbx-face,.cbx-face svg{transition:all .14s ease}.cbx-face svg{height:12px;opacity:0;transform:scale(.6);width:12px}.confirm input:checked~.cbx-face{background:var(--danger);border-color:var(--danger)}.confirm input:checked~.cbx-face svg{opacity:1;transform:scale(1)}.confirm input:focus-visible~.cbx-face{box-shadow:0 0 0 3px rgba(217,45,32,.28)}.doc-row{align-items:flex-start;display:flex;gap:12px}.doc-thumb-btn{align-self:center;background:none;border:none;cursor:zoom-in;flex:0 0 auto;padding:0;position:relative}.doc-thumb{background:#fff;border:1px solid #e2ddd3;border-radius:4px;box-shadow:0 1px 2px rgba(16,24,40,.05);display:block;height:auto;max-height:112px;max-width:170px;padding:3px;transition:box-shadow .15s;width:auto}.doc-thumb-btn:hover .doc-thumb{box-shadow:0 3px 10px rgba(16,24,40,.18)}.thumb-overlay{align-items:center;background:rgba(0,0,0,.4);border-radius:4px;color:#fff;display:flex;flex-direction:column;font-size:11px;gap:4px;inset:0;justify-content:center;opacity:0;pointer-events:none;position:absolute;transition:opacity .2s}.doc-thumb-btn:hover .thumb-overlay{opacity:1}.thumb-overlay img{width:22px}.stub{background:#f4f4f4;display:flex;flex-direction:column;position:relative}.voucher.side .stub{border-inline-start:1px dashed #cdc6ba;padding:24px 24px 22px}.voucher.bottom .stub{border-top:1px dashed #cdc6ba;padding-block:16px 18px;padding-inline:28px 26px}.perf{background-image:radial-gradient(circle at center,var(--tear) 1.4px,transparent 1.6px);position:absolute}.voucher.side .perf{background-repeat:repeat-y;background-size:2px 11px;bottom:0;inset-inline-start:-1px;top:0;width:2px}.voucher.bottom .perf{background-repeat:repeat-x;background-size:11px 2px;height:2px;inset-inline:0;top:-1px}.punch{background:var(--punch);border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);height:16px;position:absolute;width:16px;z-index:1}.voucher.side .punch{inset-inline-start:-8px}.voucher.side .punch.p1{top:-8px}.voucher.side .punch.p2{bottom:-8px}.voucher.bottom .punch{top:-8px}.voucher.bottom .punch.p1{inset-inline-start:-8px}.voucher.bottom .punch.p2{inset-inline-end:-8px}.field{min-width:0}.voucher.side .field{margin-bottom:12px}.voucher.bottom .field{flex:1}.field label,.field-label{color:var(--muted);display:block;font-size:11px;font-weight:500;letter-spacing:.06em;margin-bottom:5px;text-transform:uppercase}.field input{background:#fff;border:1px solid #d6dbe0;border-radius:6px;color:var(--text);font:inherit;font-size:13.5px;height:38px;padding:0 11px;transition:border-color .15s,opacity .3s;width:100%}.field input::-moz-placeholder{color:#aeb4bc}.field input::placeholder{color:#aeb4bc}.field input:focus{border-color:var(--primary);outline:none}.field input:disabled{background:#fafafa;opacity:.55}.claim-area{display:flex;min-width:0}.voucher.side .claim-area{align-items:stretch;flex:1;flex-direction:column}.voucher.bottom .claim-area{align-items:flex-end;flex-direction:row;flex-wrap:wrap;gap:14px}.scanzone{background:#fff;border:1.5px solid var(--primary);border-radius:8px;padding:14px 14px 12px;transition:opacity .3s}.voucher.side .scanzone{margin-bottom:12px}.voucher.bottom .scanzone{flex:1;min-width:240px}.scanzone.disabled{opacity:.55}.sz-row{align-items:center;display:flex;gap:11px}.qr-ic{background:var(--primary-tint);border-radius:7px;color:var(--primary-dark);display:grid;flex:0 0 auto;height:38px;place-items:center;width:38px}.qr-ic svg{height:22px;width:22px}.scanzone input{background:transparent;border:none;border-bottom:1.5px solid var(--primary);border-radius:0;color:var(--text);flex:1;font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:.03em;min-width:0;padding:7px 2px;width:100%}.scanzone input::-moz-placeholder{color:#aeb4bc}.scanzone input::placeholder{color:#aeb4bc}.scanzone input:focus{outline:none}.scan-hint{align-items:center;color:var(--primary-dark);display:flex;font-size:12px;gap:7px;margin-top:10px}.scan-hint .dot{animation:scan-pulse 1.6s ease-in-out infinite;background:var(--green);border-radius:50%;flex:0 0 auto;height:7px;width:7px}@keyframes scan-pulse{0%,to{box-shadow:0 0 0 2px rgba(50,178,103,.25)}50%{box-shadow:0 0 0 5px rgba(50,178,103,.08)}}.upload-wrap{display:flex;flex-direction:column}.upload{align-items:center;background:#fff;border:1.5px dashed #b9c4d0;border-radius:7px;cursor:pointer;display:flex;gap:10px;padding:11px 12px;transition:border-color .15s,background .15s,opacity .3s}.upload:hover{background:var(--primary-tint);border-color:var(--primary)}.upload.disabled{opacity:.55;pointer-events:none}.upload .ic{background:var(--primary-tint);border-radius:6px;color:var(--primary-dark);display:grid;flex:0 0 auto;height:30px;place-items:center;width:30px}.upload .ic svg{height:16px;width:16px}.upload-text{flex:1;min-width:0}.upload .ut{color:var(--text);display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload .ut .req{color:#c0392b;padding-inline-start:4px}.upload .us{color:var(--muted);display:block;font-size:12px;margin-top:1px}.upload-clear{background:transparent;border:none;border-radius:50%;color:var(--muted);cursor:pointer;display:grid;flex:0 0 auto;height:26px;place-items:center;transition:background .15s,color .15s;width:26px}.upload-clear:hover{background:#fde8e8;color:#c0392b}.upload-clear svg{height:18px;transform:rotate(45deg);width:18px}.upload-error{color:#c0392b;font-size:12.5px;padding-top:6px}.chips{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px}.chip{align-items:center;background:#fff;border:1px solid var(--hair);border-radius:4px;color:#475569;display:inline-flex;font-size:12.5px;gap:4px;max-width:100%;overflow:hidden;padding-inline-start:8px;transition:opacity .3s}.chip.disabled{opacity:.55;pointer-events:none}.chip span{overflow:hidden;padding-block:4px;text-overflow:ellipsis;white-space:nowrap}.chip button{background:transparent;border:none;color:var(--muted);cursor:pointer;display:grid;flex:0 0 auto;height:22px;place-items:center;transition:background .15s,color .15s;width:22px}.chip button:hover{background:#fde8e8;color:#c0392b}.chip button svg{height:14px;transform:rotate(45deg);width:14px}.stub-spacer{flex:1;min-height:18px}.voucher.bottom .stub-spacer{display:none}.btn-claim{align-items:center;background:var(--green);border:1px solid var(--green-dark);border-radius:5px;box-shadow:0 1px 2px rgba(16,24,40,.1);color:#fff;cursor:pointer;display:flex;font:inherit;font-size:15px;font-weight:700;height:38px;justify-content:center;letter-spacing:.04em;overflow:hidden;position:relative;text-transform:uppercase;transition:background .15s,transform .06s,opacity .3s}.voucher.side .btn-claim{padding:0 13px;width:100%}.voucher.bottom .btn-claim{flex:0 0 auto;padding:0 30px}.btn-claim:enabled:hover{background:var(--green-dark)}.btn-claim:enabled:active{transform:translateY(1px)}.btn-claim:disabled{cursor:default;opacity:.5}.btn-claim.loading{background:var(--green-dark);cursor:progress;opacity:1}.btn-claim .claim-label{align-items:center;display:flex;gap:9px;justify-content:center;position:relative;z-index:1}.btn-claim .claim-label svg{height:17px;width:17px}.claim-progress{background:hsla(0,0%,100%,.28);inset-block:0;inset-inline-start:0;position:absolute;transition:width .5s ease-out}.err-scrim{animation:err-fade .14s ease;background:rgba(31,41,55,.38);display:grid;inset:0;padding:24px;place-items:center;position:fixed;z-index:20}.err-card{animation:err-pop .18s cubic-bezier(.2,.85,.3,1.18);background:var(--paper);border-end-end-radius:8px;border-inline-start:3px solid #c0392b;border-start-end-radius:8px;box-shadow:0 2px 6px rgba(16,24,40,.14),0 18px 44px rgba(16,24,40,.26);max-width:100%;padding:16px 18px 14px;position:relative;width:432px}@keyframes err-fade{0%{opacity:0}}@keyframes err-pop{0%{opacity:0;transform:translateY(7px) scale(.97)}}.err-head{align-items:center;border-bottom:1px dashed #ecc8c2;display:flex;gap:10px;margin-bottom:11px;padding-bottom:10px;padding-inline-end:26px}.err-ic{background:#fdecea;border-radius:50%;color:#c0392b;display:grid;flex:0 0 auto;height:31px;place-items:center;width:31px}.err-ic svg{height:17px;width:17px}.err-title{font-size:14.5px;font-weight:700;letter-spacing:.01em}.err-msg{color:#44403c;font-size:13px;line-height:1.55;overflow-wrap:anywhere}.err-foot{display:flex;justify-content:flex-end;margin-top:14px}.btn-err-ok{background:#fdecea;border:1px solid #f1b8b0;border-radius:6px;color:#7f1d1d;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;padding:7px 26px;transition:background .15s,border-color .15s}.btn-err-ok:hover{background:#fbdbd7;border-color:#c0392b}.btn-err-ok:focus-visible{box-shadow:0 0 0 3px rgba(192,57,43,.22);outline:none}.compact .stage{padding:10px}.compact .v-body{padding-block:12px 14px;padding-inline:20px 18px}.compact .item-row{gap:10px;padding:2px 0 8px}.compact .item-name{font-size:15.5px}.compact .btn-print{margin-top:5px;padding:3px 10px}.compact .specs{padding:7px 0 8px}.compact .spec .val{font-size:13.5px;margin-top:2px}.compact .notices{gap:7px;margin-top:8px}.compact .notice{padding-block:7px;padding-inline:11px 10px}.compact .ntc-body{font-size:12.5px;line-height:1.45}.compact .ntc-body br+br{display:none}.compact .notice .ntc-body ul{margin-top:4px}.compact .confirm{margin-top:6px;padding-top:6px}.compact .doc-thumb{max-height:68px;max-width:120px}.compact .voucher.side .stub{padding:14px 16px}.compact .voucher.bottom .stub{padding-block:10px 12px;padding-inline:20px 18px}.compact .voucher.side .field{margin-bottom:8px}.compact .field label,.compact .field-label{margin-bottom:3px}.compact .field input{height:34px;padding:0 10px}.compact .scanzone{padding:9px 10px 8px}.compact .voucher.side .scanzone{margin-bottom:10px}.compact .qr-ic{height:30px;width:30px}.compact .qr-ic svg{height:17px;width:17px}.compact .scanzone input{font-size:14.5px;padding:5px 2px}.compact .scan-hint{margin-top:6px}.compact .upload{padding:8px 10px}.compact .stub-spacer{min-height:10px}.compact .btn-claim{font-size:14px;height:34px}.compact .voucher.side .btn-claim{padding:0 10px}.compact .voucher.bottom .btn-claim{padding:0 26px}@media (max-width:900px){.voucher.side{display:block;width:700px}.voucher.side .stub{border-inline-start:none;border-top:1px dashed #cdc6ba;padding-block:16px 18px;padding-inline:28px 26px}.voucher.side .perf{background-repeat:repeat-x;background-size:11px 2px;inset-inline:0;bottom:auto;height:2px;top:-1px;width:auto}.voucher.side .punch{bottom:auto;top:-8px}.voucher.side .punch.p1{inset-inline-start:-8px}.voucher.side .punch.p2{inset-inline-end:-8px;inset-inline-start:auto}}@media (max-width:560px){.doc-row{flex-direction:column}.doc-thumb-btn{align-self:center}.voucher.bottom .btn-claim{flex:1 1 100%}}.static{position:static}.h-\[200px\]{height:200px}.w-full{width:100%}.items-center{align-items:center}.justify-center{justify-content:center}.text-\[26px\]{font-size:26px}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.bottom-\[40px\]{bottom:40px}.left-0{left:0}.left-1\/2{left:50%}.left-\[30px\]{left:30px}.top-0{top:0}.z-10{z-index:10}.ml-\[-125px\]{margin-left:-125px}.box-content{box-sizing:content-box}.size-\[30px\]{height:30px;width:30px}.size-\[90px\]{height:90px;width:90px}.size-full{height:100%;width:100%}.h-10{height:2.5rem}.h-\[320px\]{height:320px}.h-full{height:100%}.w-1\/2{width:50%}.w-\[150\%\]{width:150%}.w-\[90\%\]{width:90%}.w-\[calc\(100\%-0px\)\]{width:100%}.w-\[calc\(100\%-60px\)\]{width:calc(100% - 60px)}.w-fit{width:fit-content}.min-w-full{min-width:100%}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.translate-y-\[-50\%\],.translate-y-\[-5px\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-5px\]{--tw-translate-y:-5px}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-\[70\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[70\%\]{--tw-scale-x:70%;--tw-scale-y:70%}.resize{resize:both}.flex-col{flex-direction:column}.justify-between{justify-content:space-between}.gap-\[250px\]{gap:250px}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.border-\[\#f2aeb5\]{--tw-border-opacity:1;border-color:rgb(242 174 181/var(--tw-border-opacity,1))}.border-\[\#faebcc\]{--tw-border-opacity:1;border-color:rgb(250 235 204/var(--tw-border-opacity,1))}.bg-\[\#1a1a1a\]{--tw-bg-opacity:1;background-color:rgb(26 26 26/var(--tw-bg-opacity,1))}.bg-\[\#f7d7d8\]{--tw-bg-opacity:1;background-color:rgb(247 215 216/var(--tw-bg-opacity,1))}.bg-\[\#fcf8e3\]{--tw-bg-opacity:1;background-color:rgb(252 248 227/var(--tw-bg-opacity,1))}.bg-\[linear-gradient\(to_bottom\2c _\#428bca_0\%\2c _\#3071a9_100\%\)\]{background-image:linear-gradient(180deg,#428bca,#3071a9)}.p-\[25px\]{padding:25px}.px-\[30px\]{padding-left:30px;padding-right:30px}.pt-\[16px\]{padding-top:16px}.text-\[16px\]{font-size:16px}.text-\[22px\]{font-size:22px}.font-semibold{font-weight:600}.text-\[\#58151c\]{--tw-text-opacity:1;color:rgb(88 21 28/var(--tw-text-opacity,1))}.text-\[\#8a6d3b\]{--tw-text-opacity:1;color:rgb(138 109 59/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.\[\&_\*\]\:shrink-0 *{flex-shrink:0}.mx-auto{margin-left:auto;margin-right:auto}.mt-\[4px\]{margin-top:4px}.max-w-\[460px\]{max-width:460px}.max-w-\[520px\]{max-width:520px}.translate-y-\[-4px\]{--tw-translate-y:-4px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.select-none{user-select:none}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.gap-\[12px\]{gap:12px}.gap-\[16px\]{gap:16px}.gap-\[2px\]{gap:2px}.overflow-auto{overflow:auto}.\!rounded-\[12px\]{border-radius:12px!important}.rounded-\[14px\]{border-radius:14px}.p-\[12px\]{padding:12px}.p-\[16px\]{padding:16px}.px-\[12px\]{padding-left:12px;padding-right:12px}.px-\[14px\]{padding-left:14px;padding-right:14px}.py-\[12px\]{padding-bottom:12px;padding-top:12px}.\!pb-0{padding-bottom:0!important}.text-center{text-align:center}.text-\[13\.5px\]{font-size:13.5px}.leading-\[1\.35\]{line-height:1.35}.text-amber-900\/90{color:rgba(120,53,15,.9)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:768px){.md\:justify-between{justify-content:space-between}}.\[\&\>div\]\:grow>div{flex-grow:1}.end-0{inset-inline-end:0}.top-full{top:100%}.my-auto{margin-bottom:auto;margin-top:auto}.me-\[16px\]{margin-inline-end:16px}.size-\[16px\]{height:16px;width:16px}.size-\[18px\]{height:18px;width:18px}.h-\[150px\]{height:150px}.w-\[84px\]{width:84px}.min-w-0{min-width:0}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.gap-\[4px\]{gap:4px}.gap-\[6px\]{gap:6px}.gap-\[8px\]{gap:8px}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.rounded-lg{border-radius:.5rem}.border-b{border-bottom-width:1px}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black\/40{background-color:rgba(0,0,0,.4)}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.p-\[6px\]{padding:6px}.px-\[16px\]{padding-left:16px;padding-right:16px}.px-\[24px\]{padding-left:24px;padding-right:24px}.py-\[10px\]{padding-bottom:10px;padding-top:10px}.py-\[15px\]{padding-bottom:15px;padding-top:15px}.py-\[16px\]{padding-bottom:16px;padding-top:16px}.py-\[6px\]{padding-bottom:6px;padding-top:6px}.py-\[8px\]{padding-bottom:8px;padding-top:8px}.text-\[17px\]{font-size:17px}.font-medium{font-weight:500}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.no-underline{text-decoration-line:none}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:border-amber-600:hover{--tw-border-opacity:1;border-color:rgb(217 119 6/var(--tw-border-opacity,1))}.hover\:bg-amber-50:hover{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.hover\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.hover\:bg-sky-100\/50:hover{background-color:rgba(224,242,254,.5)}.hover\:opacity-100:hover{opacity:1}.\[\&_div\]\:hover\:\!opacity-100:hover div{opacity:1!important}.\[\&_img\]\:hover\:shadow-lg:hover img{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.my-2{margin-bottom:.5rem;margin-top:.5rem}.grow{flex-grow:1}.mt-\[32px\]{margin-top:32px}.h-\[25px\]{height:25px}.h-\[50px\]{height:50px}.h-\[8px\]{height:8px}.bg-\[\#f6f6f6\]{--tw-bg-opacity:1;background-color:rgb(246 246 246/var(--tw-bg-opacity,1))}.pt-\[40px\]{padding-top:40px}.text-\[18px\]{font-size:18px}.font-bold{font-weight:700}.success-card{background-color:#d0e7de;border-color:#a2d0bb;color:#0b3521}.reject-card{background-color:#f7d7d8;border-color:#f2aeb5;color:#58151c}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.z-\[999\]{z-index:999}.h-\[100dvh\]{height:100dvh}.w-\[100dvw\]{width:100dvw}.scale-100,.scale-\[110\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[110\%\]{--tw-scale-x:110%;--tw-scale-y:110%}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.stroke-\[1\.5px\]{stroke-width:1.5px}.size-\[40px\]{height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.text-\[\#3071a9\]{--tw-text-opacity:1;color:rgb(48 113 169/var(--tw-text-opacity,1))}.visible{visibility:visible}
1
+ *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-width:1px}.uppercase{text-transform:uppercase}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter}.ease-in-out,.transition{transition-timing-function:cubic-bezier(.4,0,.2,1)}.image-viewer-overlay{background-color:rgba(0,0,0,.4);height:100dvh;left:0;opacity:0;pointer-events:none;position:fixed;top:0;transition-duration:.4s;transition-property:all;width:100dvw;z-index:50}.image-viewer-overlay.active{opacity:1;pointer-events:auto;transition-delay:.2s}.image-viewer-close-btn{align-items:center;cursor:pointer;display:flex;flex-direction:column;float:right;height:3rem;justify-content:center;margin-right:16px;margin-top:16px;width:3rem}.image-viewer-close-line{background-color:#fff;border-radius:9999px;height:.25rem;position:absolute;width:3rem}.image-viewer-close-line.first{transform:rotate(45deg)}.image-viewer-close-line.second{transform:rotate(-45deg)}.image-viewer-expanded-image{border-radius:.5rem;opacity:0;position:fixed;transition-property:all;z-index:50}:host{all:initial!important;display:block;font-family:inherit!important;font-family:Noto Kufi Arabic,Nunito,Roboto,Arial,sans-serif!important}*,:host *{font-family:inherit!important}.claim-dialog:not([open]){display:none}.claim-dialog{background:transparent;border:none;height:100%;inset:0;margin:0;max-height:none;max-width:none;overflow:visible;padding:0;pointer-events:none;position:fixed;width:100%}.claim-dialog::backdrop{background:transparent}.claim-scrim{--primary:#3071a9;--primary-dark:#275e8f;--primary-tint:#e8f1f8;--warn:#ff9100;--warn-tint:#fff4e5;--warn-border:#ffd28f;--warn-text:#663c00;--danger:#d92d20;--danger-tint:#fef3f2;--danger-border:#fda29b;--danger-text:#912018;--green:#32b267;--green-dark:#27ae60;--text:#1f2937;--muted:#6b7280;--hair:#ececec;--paper:#fff;--tear:#d9d2c6;background:rgba(31,41,55,.38);color:var(--text);font-size:14px}.claim-scrim,.claim-scrim *{box-sizing:border-box}.stage{display:grid;min-height:100%;padding:18px;place-items:center}.voucher{--punch-r:8px;--punch-edge:transparent calc(var(--punch-r) - 0.5px),#000 calc(var(--punch-r) + 0.5px);background:transparent;border-radius:8px;box-shadow:0 10px 30px rgba(16,24,40,.16);max-width:100%;overflow:hidden;position:relative;width:1040px}.voucher.side{display:grid;grid-template-columns:1fr 372px}.voucher.bottom{width:700px}.btn-close{background:transparent;border:none;border-radius:50%;color:#9aa3ad;cursor:pointer;display:grid;height:28px;inset-inline-end:10px;padding:0;place-items:center;position:absolute;top:10px;transition:background .15s,color .15s,opacity .3s;width:28px;z-index:5}.btn-close:hover{background:#fde8e8;color:#c0392b}.btn-close:disabled{opacity:.4;pointer-events:none}.btn-close svg{height:22px;transform:rotate(45deg);width:22px}.v-body{background:var(--paper);display:flex;flex-direction:column;min-width:0;padding-block:22px 24px;padding-inline:28px 26px;position:relative}.voucher.bottom .v-body{--punch-size:50% 100%;--punch-pos:left top,right top;--punch-a:left bottom;--punch-b:right bottom;padding-block-end:20px}.item-row{align-items:flex-start;border-bottom:1px solid var(--hair);display:grid;gap:12px;grid-template-columns:1fr auto;padding:4px 0 12px}.item-type{background:var(--primary-tint);border:1px solid #cfe0ef;border-radius:4px;color:var(--primary-dark);display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:5px;padding:2px 7px;text-transform:uppercase}.item-name{font-size:17px;font-weight:700;letter-spacing:.005em;line-height:1.2;overflow-wrap:anywhere}.vin-stamp{text-align:end}.voucher.bottom .vin-stamp{padding-inline-end:26px}.vin-stamp .lab{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.vin-stamp .vin{color:var(--text);font-size:15px;font-weight:600;letter-spacing:.03em}.btn-print{align-items:center;background:var(--warn-tint);border:1px solid var(--warn-border);border-radius:6px;color:var(--warn-text);cursor:pointer;display:inline-flex;font:inherit;font-size:11px;font-weight:600;gap:6px;margin-top:7px;padding:4px 12px;transition:background .15s,border-color .15s}.btn-print:hover{background:#ffe9cc;border-color:var(--warn)}.btn-print svg{height:13px;width:13px}.specs{border-bottom:1.5px dashed var(--tear);display:grid;grid-template-columns:repeat(3,1fr);padding:10px 0 12px}.spec{min-width:0;padding-inline-end:14px}.spec+.spec{border-inline-start:1px solid var(--hair);padding-inline-start:14px}.spec .lab{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.spec .val{color:var(--text);font-size:14px;font-variant-numeric:tabular-nums;font-weight:600;margin-top:3px;overflow-wrap:anywhere}.spec.pkg .val{color:var(--primary-dark);letter-spacing:.03em}.notices{display:flex;flex-direction:column;gap:10px;margin-top:12px}.notice{background:#fff6f5;border:1px solid var(--hair);border-end-end-radius:5px;border-inline-start:3px solid var(--danger);border-start-end-radius:5px;padding-block:10px;padding-inline:13px 12px;position:relative}.notice.info{background:#fbfcfd;border-inline-start-color:#b9c4d0}.ntc-body{color:#44403c;flex:1;font-size:13px;line-height:1.5;min-width:0;overflow-wrap:anywhere}.notice.info .ntc-body{color:#475569}.ntc-body strong{color:var(--text);font-weight:700}.notice .ntc-body ul{display:flex;flex-wrap:wrap;gap:5px;list-style:none;margin:6px 0 0;padding:0}.notice .ntc-body ul li{align-items:center;background:var(--danger-tint);border:1px dashed var(--danger-border);border-radius:4px;color:var(--danger-text);display:inline-flex;font-size:12px;font-weight:600;gap:5px;letter-spacing:.03em;padding:2px 8px}.notice .ntc-body ul li:before{background:var(--danger);border-radius:50%;content:"";height:5px;width:5px}.notice.info .ntc-body ul{display:block;list-style:disc;margin:4px 0;padding:0;padding-inline-start:24px}.notice.info .ntc-body ul li{background:none;border:none;border-radius:0;color:inherit;display:list-item;font-size:inherit;font-weight:inherit;padding:0}.notice.info .ntc-body ul li:before{content:none}.ntc-body ol{list-style:decimal;margin:4px 0;padding:0;padding-inline-start:24px}.confirm{border-top:1px dashed var(--danger-border);margin-top:8px;padding-top:8px}.confirm label{align-items:center;color:var(--danger-text);cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:9px;transition:opacity .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.confirm label.disabled{opacity:.5;pointer-events:none}.cbx-face{background:#fff;border:1.5px solid var(--danger-border);border-radius:4px;color:#fff;display:grid;flex:0 0 auto;height:17px;place-items:center;width:17px}.cbx-face,.cbx-face svg{transition:all .14s ease}.cbx-face svg{height:12px;opacity:0;transform:scale(.6);width:12px}.confirm input:checked~.cbx-face{background:var(--danger);border-color:var(--danger)}.confirm input:checked~.cbx-face svg{opacity:1;transform:scale(1)}.confirm input:focus-visible~.cbx-face{box-shadow:0 0 0 3px rgba(217,45,32,.28)}.doc-row{align-items:flex-start;display:flex;gap:12px}.doc-thumb-btn{align-self:center;background:none;border:none;cursor:zoom-in;flex:0 0 auto;padding:0;position:relative}.doc-thumb{background:#fff;border:1px solid #e2ddd3;border-radius:4px;box-shadow:0 1px 2px rgba(16,24,40,.05);display:block;height:auto;max-height:112px;max-width:170px;padding:3px;transition:box-shadow .15s;width:auto}.doc-thumb-btn:hover .doc-thumb{box-shadow:0 3px 10px rgba(16,24,40,.18)}.thumb-overlay{align-items:center;background:rgba(0,0,0,.4);border-radius:4px;color:#fff;display:flex;flex-direction:column;font-size:11px;gap:4px;inset:0;justify-content:center;opacity:0;pointer-events:none;position:absolute;transition:opacity .2s}.doc-thumb-btn:hover .thumb-overlay{opacity:1}.thumb-overlay img{width:22px}.stub{background:#f4f4f4;display:flex;flex-direction:column;position:relative}.voucher.side .stub{--punch-size:calc(100% + 2px) 50%;--punch-pos:right top,right bottom;--punch-a:2px top;--punch-b:2px bottom;border-inline-start:1px dashed #cdc6ba;padding:24px 24px 22px}.voucher.bottom .stub{--punch-size:50% calc(100% + 2px);--punch-pos:left bottom,right bottom;--punch-a:left 2px;--punch-b:right 2px;border-top:1px dashed #cdc6ba;padding-block:16px 18px;padding-inline:28px 26px}.perf{background-image:radial-gradient(circle at center,var(--tear) 1.4px,transparent 1.6px);position:absolute}.voucher.side .perf{background-repeat:repeat-y;background-size:2px 11px;bottom:0;inset-inline-start:-1px;top:0;width:2px}.voucher.bottom .perf{background-repeat:repeat-x;background-size:11px 2px;height:2px;inset-inline:0;top:-1px}.stub,.v-body{-webkit-mask-image:radial-gradient(circle var(--punch-r) at var(--punch-a),var(--punch-edge)),radial-gradient(circle var(--punch-r) at var(--punch-b),var(--punch-edge));mask-image:radial-gradient(circle var(--punch-r) at var(--punch-a),var(--punch-edge)),radial-gradient(circle var(--punch-r) at var(--punch-b),var(--punch-edge));-webkit-mask-position:var(--punch-pos);mask-position:var(--punch-pos);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:var(--punch-size);mask-size:var(--punch-size)}.voucher.side .v-body{--punch-size:100% 50%;--punch-pos:left top,left bottom;--punch-a:right top;--punch-b:right bottom}[dir=rtl] .voucher.side .v-body{--punch-a:left top;--punch-b:left bottom}[dir=rtl] .voucher.side .stub{--punch-pos:left top,left bottom;--punch-a:right 2px top 0;--punch-b:right 2px bottom 0}.field{min-width:0}.voucher.side .field{margin-bottom:12px}.voucher.bottom .field{flex:1}.field label,.field-label{color:var(--muted);display:block;font-size:11px;font-weight:500;letter-spacing:.06em;margin-bottom:5px;text-transform:uppercase}.field input{background:#fff;border:1px solid #d6dbe0;border-radius:6px;color:var(--text);font:inherit;font-size:13.5px;height:38px;padding:0 11px;transition:border-color .15s,opacity .3s;width:100%}.field input::-moz-placeholder{color:#aeb4bc}.field input::placeholder{color:#aeb4bc}.field input:focus{border-color:var(--primary);outline:none}.field input:disabled{background:#fafafa;opacity:.55}.claim-area{display:flex;min-width:0}.voucher.side .claim-area{align-items:stretch;flex:1;flex-direction:column}.voucher.bottom .claim-area{align-items:flex-end;flex-direction:row;flex-wrap:wrap;gap:14px}.scanzone{background:#fff;border:1.5px solid var(--primary);border-radius:8px;padding:14px 14px 12px;transition:opacity .3s}.voucher.side .scanzone{margin-bottom:12px}.voucher.bottom .scanzone{flex:1;min-width:240px}.scanzone.disabled{opacity:.55}.sz-row{align-items:center;display:flex;gap:11px}.qr-ic{background:var(--primary-tint);border-radius:7px;color:var(--primary-dark);display:grid;flex:0 0 auto;height:38px;place-items:center;width:38px}.qr-ic svg{height:22px;width:22px}.scanzone input{background:transparent;border:none;border-bottom:1.5px solid var(--primary);border-radius:0;color:var(--text);flex:1;font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:.03em;min-width:0;padding:7px 2px;width:100%}.scanzone input::-moz-placeholder{color:#aeb4bc}.scanzone input::placeholder{color:#aeb4bc}.scanzone input:focus{outline:none}.scan-hint{align-items:center;color:var(--primary-dark);display:flex;font-size:12px;gap:7px;margin-top:10px}.scan-hint .dot{animation:scan-pulse 1.6s ease-in-out infinite;background:var(--green);border-radius:50%;flex:0 0 auto;height:7px;width:7px}@keyframes scan-pulse{0%,to{box-shadow:0 0 0 2px rgba(50,178,103,.25)}50%{box-shadow:0 0 0 5px rgba(50,178,103,.08)}}.upload-wrap{display:flex;flex-direction:column}.upload{align-items:center;background:#fff;border:1.5px dashed #b9c4d0;border-radius:7px;cursor:pointer;display:flex;gap:10px;padding:11px 12px;transition:border-color .15s,background .15s,opacity .3s}.upload:hover{background:var(--primary-tint);border-color:var(--primary)}.upload.disabled{opacity:.55;pointer-events:none}.upload .ic{background:var(--primary-tint);border-radius:6px;color:var(--primary-dark);display:grid;flex:0 0 auto;height:30px;place-items:center;width:30px}.upload .ic svg{height:16px;width:16px}.upload-text{flex:1;min-width:0}.upload .ut{color:var(--text);display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload .ut .req{color:#c0392b;padding-inline-start:4px}.upload .us{color:var(--muted);display:block;font-size:12px;margin-top:1px}.upload-clear{background:transparent;border:none;border-radius:50%;color:var(--muted);cursor:pointer;display:grid;flex:0 0 auto;height:26px;overflow:hidden;place-items:center;transition:background .15s,color .15s,width .35s ease,opacity .35s ease,margin-inline-start .35s ease;width:26px}.upload-clear.is-hidden{margin-inline-start:-10px;opacity:0;pointer-events:none;width:0}.upload-clear:hover{background:#fde8e8;color:#c0392b}.upload-clear svg{height:18px;transform:rotate(45deg);width:18px}.upload-error{color:#c0392b;font-size:12.5px;padding-top:6px}.chips{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px}.chip{align-items:center;background:#fff;border:1px solid var(--hair);border-radius:4px;color:#475569;display:inline-flex;font-size:12.5px;gap:4px;max-width:100%;overflow:hidden;padding-inline-start:8px;transition:opacity .3s}.chip.disabled{opacity:.55;pointer-events:none}.chip span{overflow:hidden;padding-block:4px;text-overflow:ellipsis;white-space:nowrap}.chip button{background:transparent;border:none;color:var(--muted);cursor:pointer;display:grid;flex:0 0 auto;height:22px;place-items:center;transition:background .15s,color .15s;width:22px}.chip button:hover{background:#fde8e8;color:#c0392b}.chip button svg{height:14px;transform:rotate(45deg);width:14px}.stub-spacer{flex:1;min-height:18px}.voucher.bottom .stub-spacer{display:none}.btn-claim{align-items:center;background:var(--green);border:1px solid var(--green-dark);border-radius:5px;box-shadow:0 1px 2px rgba(16,24,40,.1);color:#fff;cursor:pointer;display:flex;font:inherit;font-size:15px;font-weight:700;height:38px;justify-content:center;letter-spacing:.04em;overflow:hidden;position:relative;text-transform:uppercase;transition:background .15s,transform .06s,opacity .3s}.voucher.side .btn-claim{padding:0 13px;width:100%}.voucher.bottom .btn-claim{flex:0 0 auto;padding:0 30px}.btn-claim:enabled:hover{background:var(--green-dark)}.btn-claim:enabled:active{transform:translateY(1px)}.btn-claim:disabled{cursor:default;opacity:.5}.btn-claim.loading{background:var(--green-dark);cursor:progress;opacity:1}.btn-claim .claim-label-stack{overflow:hidden;position:relative;transition:width .42s ease;z-index:1}.btn-claim .claim-label,.btn-claim .claim-label-stack{align-items:center;display:flex;justify-content:center}.btn-claim .claim-label{bottom:0;gap:9px;left:50%;opacity:0;position:absolute;top:0;transform:translateX(-50%);transition:opacity .28s ease;white-space:nowrap}.btn-claim .claim-label.active{bottom:auto;left:auto;opacity:1;position:relative;top:auto;transform:none}.btn-claim .claim-label svg{height:17px;width:17px}.btn-claim .claim-pct{font-variant-numeric:tabular-nums;padding-inline-start:.4em}.btn-claim .claim-pct-slot{display:inline-grid;justify-items:end}.btn-claim .claim-pct-slot>*{grid-area:1/1}.btn-claim .claim-pct-ghost{visibility:hidden}.claim-progress{background:hsla(0,0%,100%,.28);inset-block:0;inset-inline-start:0;position:absolute;transition:width .5s ease-out}.err-scrim{animation:err-fade .14s ease;background:rgba(31,41,55,.38);display:grid;inset:0;padding:24px;place-items:center;position:fixed;z-index:20}.err-card{animation:err-pop .18s cubic-bezier(.2,.85,.3,1.18);background:var(--paper);border-end-end-radius:8px;border-inline-start:3px solid #c0392b;border-start-end-radius:8px;box-shadow:0 2px 6px rgba(16,24,40,.14),0 18px 44px rgba(16,24,40,.26);max-width:100%;padding:16px 18px 14px;position:relative;width:432px}@keyframes err-fade{0%{opacity:0}}@keyframes err-pop{0%{opacity:0;transform:translateY(7px) scale(.97)}}.err-head{align-items:center;border-bottom:1px dashed #ecc8c2;display:flex;gap:10px;margin-bottom:11px;padding-bottom:10px;padding-inline-end:26px}.err-ic{background:#fdecea;border-radius:50%;color:#c0392b;display:grid;flex:0 0 auto;height:31px;place-items:center;width:31px}.err-ic svg{height:17px;width:17px}.err-title{font-size:14.5px;font-weight:700;letter-spacing:.01em}.err-msg{color:#44403c;font-size:13px;line-height:1.55;overflow-wrap:anywhere}.err-foot{display:flex;justify-content:flex-end;margin-top:14px}.btn-err-ok{background:#fdecea;border:1px solid #f1b8b0;border-radius:6px;color:#7f1d1d;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;padding:7px 26px;transition:background .15s,border-color .15s}.btn-err-ok:hover{background:#fbdbd7;border-color:#c0392b}.btn-err-ok:focus-visible{box-shadow:0 0 0 3px rgba(192,57,43,.22);outline:none}.compact .stage{padding:10px}.compact .v-body{padding-block:12px 14px;padding-inline:20px 18px}.compact .item-row{gap:10px;padding:2px 0 8px}.compact .item-name{font-size:15.5px}.compact .btn-print{margin-top:5px;padding:3px 10px}.compact .specs{padding:7px 0 8px}.compact .spec .val{font-size:13.5px;margin-top:2px}.compact .notices{gap:7px;margin-top:8px}.compact .notice{padding-block:7px;padding-inline:11px 10px}.compact .ntc-body{font-size:12.5px;line-height:1.45}.compact .ntc-body br+br{display:none}.compact .notice .ntc-body ul{margin-top:4px}.compact .confirm{margin-top:6px;padding-top:6px}.compact .doc-thumb{max-height:68px;max-width:120px}.compact .voucher.side .stub{padding:14px 16px}.compact .voucher.bottom .stub{padding-block:10px 12px;padding-inline:20px 18px}.compact .voucher.side .field{margin-bottom:8px}.compact .field label,.compact .field-label{margin-bottom:3px}.compact .field input{height:34px;padding:0 10px}.compact .scanzone{padding:9px 10px 8px}.compact .voucher.side .scanzone{margin-bottom:10px}.compact .qr-ic{height:30px;width:30px}.compact .qr-ic svg{height:17px;width:17px}.compact .scanzone input{font-size:14.5px;padding:5px 2px}.compact .scan-hint{margin-top:6px}.compact .upload{padding:8px 10px}.compact .stub-spacer{min-height:10px}.compact .btn-claim{font-size:14px;height:34px}.compact .voucher.side .btn-claim{padding:0 10px}.compact .voucher.bottom .btn-claim{padding:0 26px}@media (max-width:900px){.voucher.side{display:block;width:700px}.voucher.side .stub{border-inline-start:none;border-top:1px dashed #cdc6ba;padding-block:16px 18px;padding-inline:28px 26px}.voucher.side .perf{background-repeat:repeat-x;background-size:11px 2px;inset-inline:0;bottom:auto;height:2px;top:-1px;width:auto}.voucher.side .v-body,[dir=rtl] .voucher.side .v-body{--punch-size:50% 100%;--punch-pos:left top,right top;--punch-a:left bottom;--punch-b:right bottom}.voucher.side .stub,[dir=rtl] .voucher.side .stub{--punch-size:50% calc(100% + 2px);--punch-pos:left bottom,right bottom;--punch-a:left 2px;--punch-b:right 2px}}@media (max-width:560px){.doc-row{flex-direction:column}.doc-thumb-btn{align-self:center}.voucher.bottom .btn-claim{flex:1 1 100%}}.static{position:static}.h-\[200px\]{height:200px}.w-full{width:100%}.items-center{align-items:center}.justify-center{justify-content:center}.text-\[26px\]{font-size:26px}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.pointer-events-none{pointer-events:none}.mx-auto{margin-left:auto;margin-right:auto}.size-\[100px\]{height:100px;width:100px}.size-full{height:100%;width:100%}.h-auto{height:auto}.max-h-\[100px\]{max-height:100px}.w-auto{width:auto}.w-fit{width:fit-content}.max-w-\[100px\]{max-width:100px}.shrink-0{flex-shrink:0}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.gap-\[4px\]{gap:4px}.overflow-x-auto{overflow-x:auto}.rounded-lg{border-radius:.5rem}.bg-black\/40{background-color:rgba(0,0,0,.4)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.hover\:opacity-100:hover{opacity:1}.\[\&_div\]\:hover\:\!opacity-100:hover div{opacity:1!important}.\[\&_img\]\:hover\:shadow-lg:hover img{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.end-0{inset-inline-end:0}.top-full{top:100%}.z-10{z-index:10}.my-auto{margin-bottom:auto;margin-top:auto}.me-\[16px\]{margin-inline-end:16px}.mt-\[4px\]{margin-top:4px}.size-\[16px\]{height:16px;width:16px}.size-\[18px\]{height:18px;width:18px}.h-\[150px\]{height:150px}.w-\[84px\]{width:84px}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.gap-\[16px\]{gap:16px}.gap-\[6px\]{gap:6px}.gap-\[8px\]{gap:8px}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-\[4px\]{border-radius:4px}.border-b{border-bottom-width:1px}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.p-\[12px\]{padding:12px}.p-\[6px\]{padding:6px}.px-\[16px\]{padding-left:16px;padding-right:16px}.px-\[24px\]{padding-left:24px;padding-right:24px}.py-\[10px\]{padding-bottom:10px;padding-top:10px}.py-\[15px\]{padding-bottom:15px;padding-top:15px}.py-\[16px\]{padding-bottom:16px;padding-top:16px}.py-\[6px\]{padding-bottom:6px;padding-top:6px}.py-\[8px\]{padding-bottom:8px;padding-top:8px}.text-center{text-align:center}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.no-underline{text-decoration-line:none}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:border-amber-600:hover{--tw-border-opacity:1;border-color:rgb(217 119 6/var(--tw-border-opacity,1))}.hover\:bg-amber-50:hover{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.hover\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.hover\:bg-sky-100\/50:hover{background-color:rgba(224,242,254,.5)}.pointer-events-auto{pointer-events:auto}.bottom-\[40px\]{bottom:40px}.left-0{left:0}.left-1\/2{left:50%}.left-\[30px\]{left:30px}.top-0{top:0}.ml-\[-125px\]{margin-left:-125px}.box-content{box-sizing:content-box}.size-\[30px\]{height:30px;width:30px}.size-\[90px\]{height:90px;width:90px}.h-10{height:2.5rem}.h-\[320px\]{height:320px}.h-full{height:100%}.w-1\/2{width:50%}.w-\[150\%\]{width:150%}.w-\[90\%\]{width:90%}.w-\[calc\(100\%-0px\)\]{width:100%}.w-\[calc\(100\%-60px\)\]{width:calc(100% - 60px)}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.translate-y-\[-50\%\],.translate-y-\[-5px\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-5px\]{--tw-translate-y:-5px}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-\[70\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[70\%\]{--tw-scale-x:70%;--tw-scale-y:70%}.justify-between{justify-content:space-between}.gap-\[250px\]{gap:250px}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.rounded-\[6px\]{border-radius:6px}.border-\[\#f2aeb5\]{--tw-border-opacity:1;border-color:rgb(242 174 181/var(--tw-border-opacity,1))}.border-\[\#faebcc\]{--tw-border-opacity:1;border-color:rgb(250 235 204/var(--tw-border-opacity,1))}.bg-\[\#1a1a1a\]{--tw-bg-opacity:1;background-color:rgb(26 26 26/var(--tw-bg-opacity,1))}.bg-\[\#f7d7d8\]{--tw-bg-opacity:1;background-color:rgb(247 215 216/var(--tw-bg-opacity,1))}.bg-\[\#fcf8e3\]{--tw-bg-opacity:1;background-color:rgb(252 248 227/var(--tw-bg-opacity,1))}.bg-\[linear-gradient\(to_bottom\2c _\#428bca_0\%\2c _\#3071a9_100\%\)\]{background-image:linear-gradient(180deg,#428bca,#3071a9)}.p-\[25px\]{padding:25px}.px-\[30px\]{padding-left:30px;padding-right:30px}.pt-\[16px\]{padding-top:16px}.text-\[22px\]{font-size:22px}.text-\[\#58151c\]{--tw-text-opacity:1;color:rgb(88 21 28/var(--tw-text-opacity,1))}.text-\[\#8a6d3b\]{--tw-text-opacity:1;color:rgb(138 109 59/var(--tw-text-opacity,1))}.opacity-100{opacity:1}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.\[\&_\*\]\:shrink-0 *{flex-shrink:0}.max-w-\[460px\]{max-width:460px}.max-w-\[520px\]{max-width:520px}.translate-y-\[-4px\]{--tw-translate-y:-4px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.select-none{user-select:none}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.gap-\[12px\]{gap:12px}.gap-\[2px\]{gap:2px}.overflow-auto{overflow:auto}.\!rounded-\[12px\]{border-radius:12px!important}.rounded-\[14px\]{border-radius:14px}.p-\[16px\]{padding:16px}.px-\[12px\]{padding-left:12px;padding-right:12px}.px-\[14px\]{padding-left:14px;padding-right:14px}.py-\[12px\]{padding-bottom:12px;padding-top:12px}.\!pb-0{padding-bottom:0!important}.text-\[13\.5px\]{font-size:13.5px}.leading-\[1\.35\]{line-height:1.35}.text-amber-900\/90{color:rgba(120,53,15,.9)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:768px){.md\:justify-between{justify-content:space-between}}.\[\&\>div\]\:grow>div{flex-grow:1}.my-2{margin-bottom:.5rem;margin-top:.5rem}.grow{flex-grow:1}.mt-\[32px\]{margin-top:32px}.h-\[25px\]{height:25px}.h-\[50px\]{height:50px}.h-\[8px\]{height:8px}.bg-\[\#f6f6f6\]{--tw-bg-opacity:1;background-color:rgb(246 246 246/var(--tw-bg-opacity,1))}.pt-\[40px\]{padding-top:40px}.text-\[18px\]{font-size:18px}.font-bold{font-weight:700}.success-card{background-color:#d0e7de;border-color:#a2d0bb;color:#0b3521}.reject-card{background-color:#f7d7d8;border-color:#f2aeb5;color:#58151c}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.z-\[999\]{z-index:999}.h-\[100dvh\]{height:100dvh}.w-\[100dvw\]{width:100dvw}.scale-100,.scale-\[110\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[110\%\]{--tw-scale-x:110%;--tw-scale-y:110%}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.stroke-\[1\.5px\]{stroke-width:1.5px}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.size-\[40px\]{height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.text-\[\#3071a9\]{--tw-text-opacity:1;color:rgb(48 113 169/var(--tw-text-opacity,1))}