charts.css 83 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462
  1. /*
  2. * Charts.css v1.2.0 (https://ChartsCSS.org/)
  3. * Copyright 2020 Rami Yushuvaev
  4. * Licensed under MIT
  5. */
  6. /*
  7. * Chart custom properties
  8. */
  9. @property --color-1 {
  10. syntax: "<color>";
  11. initial-value: transparent;
  12. inherits: true;
  13. }
  14. @property --color-2 {
  15. syntax: "<color>";
  16. initial-value: transparent;
  17. inherits: true;
  18. }
  19. @property --color-3 {
  20. syntax: "<color>";
  21. initial-value: transparent;
  22. inherits: true;
  23. }
  24. @property --color-4 {
  25. syntax: "<color>";
  26. initial-value: transparent;
  27. inherits: true;
  28. }
  29. @property --color-5 {
  30. syntax: "<color>";
  31. initial-value: transparent;
  32. inherits: true;
  33. }
  34. @property --color-6 {
  35. syntax: "<color>";
  36. initial-value: transparent;
  37. inherits: true;
  38. }
  39. @property --color-7 {
  40. syntax: "<color>";
  41. initial-value: transparent;
  42. inherits: true;
  43. }
  44. @property --color-8 {
  45. syntax: "<color>";
  46. initial-value: transparent;
  47. inherits: true;
  48. }
  49. @property --color-9 {
  50. syntax: "<color>";
  51. initial-value: transparent;
  52. inherits: true;
  53. }
  54. @property --color-10 {
  55. syntax: "<color>";
  56. initial-value: transparent;
  57. inherits: true;
  58. }
  59. @property --color {
  60. syntax: "<color>";
  61. inherits: true;
  62. }
  63. @property --chart-bg-color {
  64. syntax: "<color>";
  65. inherits: true;
  66. }
  67. @property --aspect-ratio {
  68. syntax: "<ratio>";
  69. initial-value: auto;
  70. inherits: true;
  71. }
  72. @property --data-position {
  73. syntax: "<content-position>";
  74. inherits: true;
  75. }
  76. @property --labels-size {
  77. syntax: "<length>";
  78. initial-value: 0;
  79. inherits: true;
  80. }
  81. @property --labels-align-block {
  82. syntax: "<string>";
  83. inherits: true;
  84. }
  85. @property --labels-align-inline {
  86. syntax: "<string>";
  87. inherits: true;
  88. }
  89. @property --primary-axis-width {
  90. syntax: "<length>";
  91. initial-value: 1px;
  92. inherits: true;
  93. }
  94. @property --secondary-axes-width {
  95. syntax: "<length>";
  96. initial-value: 1px;
  97. inherits: true;
  98. }
  99. @property --data-axes-width {
  100. syntax: "<length>";
  101. initial-value: 1px;
  102. inherits: true;
  103. }
  104. @property --legend-border-width {
  105. syntax: "<length>";
  106. initial-value: 1px;
  107. inherits: true;
  108. }
  109. @property --primary-axis-style {
  110. syntax: "<line-style>";
  111. initial-value: solid;
  112. inherits: true;
  113. }
  114. @property --secondary-axes-style {
  115. syntax: "<line-style>";
  116. initial-value: solid;
  117. inherits: true;
  118. }
  119. @property --data-axes-style {
  120. syntax: "<line-style>";
  121. initial-value: solid;
  122. inherits: true;
  123. }
  124. @property --legend-border-style {
  125. syntax: "<line-style>";
  126. initial-value: solid;
  127. inherits: true;
  128. }
  129. @property --primary-axis-color {
  130. syntax: "<color>";
  131. initial-value: transparent;
  132. inherits: true;
  133. }
  134. @property --secondary-axes-color {
  135. syntax: "<color>";
  136. initial-value: transparent;
  137. inherits: true;
  138. }
  139. @property --data-axes-color {
  140. syntax: "<color>";
  141. initial-value: transparent;
  142. inherits: true;
  143. }
  144. @property --legend-border-color {
  145. syntax: "<color>";
  146. initial-value: transparent;
  147. inherits: true;
  148. }
  149. @property --start {
  150. syntax: "<number>";
  151. inherits: true;
  152. }
  153. @property --end {
  154. syntax: "<number>";
  155. inherits: true;
  156. }
  157. @property --size {
  158. syntax: "<number>";
  159. inherits: true;
  160. }
  161. @property --line-size {
  162. syntax: "<number>";
  163. inherits: true;
  164. }
  165. /*
  166. * Chart wrapper element
  167. */
  168. .charts-css {
  169. --color-1: rgba(240, 50, 50, 0.75);
  170. --color-2: rgba(255, 180, 50, 0.75);
  171. --color-3: rgba(255, 220, 90, 0.75);
  172. --color-4: rgba(100, 210, 80, 0.75);
  173. --color-5: rgba(90, 165, 255, 0.75);
  174. --color-6: rgba(170, 90, 240, 0.75);
  175. --color-7: rgba(180, 180, 180, 0.75);
  176. --color-8: rgba(110, 110, 110, 0.75);
  177. --color-9: rgba(170, 150, 110, 0.75);
  178. --color-10: rgba(130, 50, 20, 0.75);
  179. --chart-bg-color: rgb(245 245 245);
  180. --primary-axis-color: rgba(0 0 0 / 100%);
  181. --primary-axis-style: solid;
  182. --primary-axis-width: 1px;
  183. --secondary-axes-color: rgba(0 0 0 / 15%);
  184. --secondary-axes-style: solid;
  185. --secondary-axes-width: 1px;
  186. --data-axes-color: rgba(0 0 0 / 15%);
  187. --data-axes-style: solid;
  188. --data-axes-width: 1px;
  189. --legend-border-color: rgb(200 200 200);
  190. --legend-border-style: solid;
  191. --legend-border-width: 1px;
  192. position: relative;
  193. display: block;
  194. width: 100%;
  195. height: 100%;
  196. margin: 0 auto;
  197. padding: 0;
  198. border: 0;
  199. -webkit-print-color-adjust: exact;
  200. print-color-adjust: exact;
  201. }
  202. .charts-css, .charts-css::after, .charts-css::before, .charts-css *, .charts-css *::after, .charts-css *::before {
  203. box-sizing: border-box;
  204. }
  205. /*
  206. * Reset table element
  207. */
  208. table.charts-css {
  209. border-collapse: collapse;
  210. border-spacing: 0;
  211. empty-cells: show;
  212. overflow: initial;
  213. background-color: transparent;
  214. }
  215. table.charts-css caption,
  216. table.charts-css colgroup,
  217. table.charts-css thead,
  218. table.charts-css tbody,
  219. table.charts-css tr,
  220. table.charts-css th,
  221. table.charts-css td {
  222. display: block;
  223. margin: 0;
  224. padding: 0;
  225. border: 0;
  226. background-color: transparent;
  227. }
  228. table.charts-css colgroup, table.charts-css thead, table.charts-css tfoot, .charts-css:not(.show-heading) caption, .charts-css.hide-data .data, .charts-css.hide-data .data:not(:focus):not(:focus-within), .charts-css.bar:not(.show-labels) tbody tr th, .charts-css.bar.show-labels tr.hide-label th, .charts-css.bar.show-labels th.hide-label, .charts-css.column:not(.show-labels) tbody tr th, .charts-css.area:not(.show-labels) tbody tr th, .charts-css.line:not(.show-labels) tbody tr th, .charts-css.column.show-labels tr.hide-label th, .charts-css.column.show-labels th.hide-label, .charts-css.area.show-labels tr.hide-label th, .charts-css.area.show-labels th.hide-label, .charts-css.line.show-labels tr.hide-label th, .charts-css.line.show-labels th.hide-label, .charts-css.radial tbody tr, .charts-css.pie tbody tr th, .charts-css.polar tbody tr, .charts-css.radar tbody tr {
  229. position: absolute;
  230. width: 1px;
  231. height: 1px;
  232. margin: -1px;
  233. padding: 0;
  234. border: 0;
  235. overflow: hidden;
  236. clip: rect(0, 0, 0, 0);
  237. clip-path: inset(50%);
  238. white-space: nowrap;
  239. }
  240. table.charts-css tbody {
  241. position: relative;
  242. }
  243. /*
  244. * Reset list elements
  245. */
  246. ul.charts-css,
  247. ol.charts-css {
  248. list-style-type: none;
  249. }
  250. ul.charts-css li,
  251. ol.charts-css li {
  252. margin: 0;
  253. padding: 0;
  254. border: 0;
  255. }
  256. /*
  257. * Chart heading
  258. */
  259. .charts-css.show-heading caption {
  260. display: block;
  261. width: 100%;
  262. }
  263. /*
  264. * Chart colors
  265. */
  266. .charts-css.bar tbody tr:nth-of-type(10n + 1) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 1), .charts-css.column tbody tr:nth-of-type(10n + 1) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 1), .charts-css.area tbody tr td:nth-of-type(10n + 1)::before, .charts-css.line tbody tr td:nth-of-type(10n + 1)::before {
  267. background: var(--color, var(--color-1));
  268. }
  269. .charts-css.pie tbody tr:nth-of-type(10n + 1) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 1) {
  270. --c: var(--color, var(--color-1, transparent));
  271. }
  272. .charts-css.bar tbody tr:nth-of-type(10n + 2) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 2), .charts-css.column tbody tr:nth-of-type(10n + 2) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 2), .charts-css.area tbody tr td:nth-of-type(10n + 2)::before, .charts-css.line tbody tr td:nth-of-type(10n + 2)::before {
  273. background: var(--color, var(--color-2));
  274. }
  275. .charts-css.pie tbody tr:nth-of-type(10n + 2) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 2) {
  276. --c: var(--color, var(--color-2, transparent));
  277. }
  278. .charts-css.bar tbody tr:nth-of-type(10n + 3) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 3), .charts-css.column tbody tr:nth-of-type(10n + 3) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 3), .charts-css.area tbody tr td:nth-of-type(10n + 3)::before, .charts-css.line tbody tr td:nth-of-type(10n + 3)::before {
  279. background: var(--color, var(--color-3));
  280. }
  281. .charts-css.pie tbody tr:nth-of-type(10n + 3) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 3) {
  282. --c: var(--color, var(--color-3, transparent));
  283. }
  284. .charts-css.bar tbody tr:nth-of-type(10n + 4) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 4), .charts-css.column tbody tr:nth-of-type(10n + 4) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 4), .charts-css.area tbody tr td:nth-of-type(10n + 4)::before, .charts-css.line tbody tr td:nth-of-type(10n + 4)::before {
  285. background: var(--color, var(--color-4));
  286. }
  287. .charts-css.pie tbody tr:nth-of-type(10n + 4) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 4) {
  288. --c: var(--color, var(--color-4, transparent));
  289. }
  290. .charts-css.bar tbody tr:nth-of-type(10n + 5) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 5), .charts-css.column tbody tr:nth-of-type(10n + 5) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 5), .charts-css.area tbody tr td:nth-of-type(10n + 5)::before, .charts-css.line tbody tr td:nth-of-type(10n + 5)::before {
  291. background: var(--color, var(--color-5));
  292. }
  293. .charts-css.pie tbody tr:nth-of-type(10n + 5) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 5) {
  294. --c: var(--color, var(--color-5, transparent));
  295. }
  296. .charts-css.bar tbody tr:nth-of-type(10n + 6) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 6), .charts-css.column tbody tr:nth-of-type(10n + 6) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 6), .charts-css.area tbody tr td:nth-of-type(10n + 6)::before, .charts-css.line tbody tr td:nth-of-type(10n + 6)::before {
  297. background: var(--color, var(--color-6));
  298. }
  299. .charts-css.pie tbody tr:nth-of-type(10n + 6) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 6) {
  300. --c: var(--color, var(--color-6, transparent));
  301. }
  302. .charts-css.bar tbody tr:nth-of-type(10n + 7) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 7), .charts-css.column tbody tr:nth-of-type(10n + 7) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 7), .charts-css.area tbody tr td:nth-of-type(10n + 7)::before, .charts-css.line tbody tr td:nth-of-type(10n + 7)::before {
  303. background: var(--color, var(--color-7));
  304. }
  305. .charts-css.pie tbody tr:nth-of-type(10n + 7) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 7) {
  306. --c: var(--color, var(--color-7, transparent));
  307. }
  308. .charts-css.bar tbody tr:nth-of-type(10n + 8) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 8), .charts-css.column tbody tr:nth-of-type(10n + 8) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 8), .charts-css.area tbody tr td:nth-of-type(10n + 8)::before, .charts-css.line tbody tr td:nth-of-type(10n + 8)::before {
  309. background: var(--color, var(--color-8));
  310. }
  311. .charts-css.pie tbody tr:nth-of-type(10n + 8) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 8) {
  312. --c: var(--color, var(--color-8, transparent));
  313. }
  314. .charts-css.bar tbody tr:nth-of-type(10n + 9) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 9), .charts-css.column tbody tr:nth-of-type(10n + 9) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 9), .charts-css.area tbody tr td:nth-of-type(10n + 9)::before, .charts-css.line tbody tr td:nth-of-type(10n + 9)::before {
  315. background: var(--color, var(--color-9));
  316. }
  317. .charts-css.pie tbody tr:nth-of-type(10n + 9) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 9) {
  318. --c: var(--color, var(--color-9, transparent));
  319. }
  320. .charts-css.bar tbody tr:nth-of-type(10n + 10) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 10), .charts-css.column tbody tr:nth-of-type(10n + 10) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 10), .charts-css.area tbody tr td:nth-of-type(10n + 10)::before, .charts-css.line tbody tr td:nth-of-type(10n + 10)::before {
  321. background: var(--color, var(--color-10));
  322. }
  323. .charts-css.pie tbody tr:nth-of-type(10n + 10) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 10) {
  324. --c: var(--color, var(--color-10, transparent));
  325. }
  326. /*
  327. * Chart data
  328. */
  329. .charts-css .data {
  330. display: flex;
  331. }
  332. .charts-css.show-data-on-hover .data {
  333. transition-duration: 0.3s;
  334. opacity: 0;
  335. }
  336. .charts-css.show-data-on-hover tr:hover .data, .charts-css.radial.show-data-on-hover tbody:hover .data, .charts-css.pie.show-data-on-hover tbody:hover .data, .charts-css.polar.show-data-on-hover tbody:hover .data, .charts-css.radar.show-data-on-hover tbody:hover .data {
  337. transition-duration: 0.3s;
  338. opacity: 1;
  339. }
  340. .charts-css.bar.data-center tbody tr td, .charts-css.column.data-center tbody tr td {
  341. --data-position: center;
  342. }
  343. .charts-css.bar.data-start:not(.reverse) tbody tr td, .charts-css.bar.data-end.reverse tbody tr td, .charts-css.bar.data-outside.reverse tbody tr td, .charts-css.column.data-start.reverse tbody tr td, .charts-css.column.data-end:not(.reverse) tbody tr td, .charts-css.column.data-outside:not(.reverse) tbody tr td {
  344. --data-position: flex-start;
  345. }
  346. .charts-css.bar.data-start.reverse tbody tr td, .charts-css.bar.data-end:not(.reverse) tbody tr td, .charts-css.bar.data-outside:not(.reverse) tbody tr td, .charts-css.column.data-start:not(.reverse) tbody tr td, .charts-css.column.data-end.reverse tbody tr td, .charts-css.column.data-outside.reverse tbody tr td {
  347. --data-position: flex-end;
  348. }
  349. .charts-css.bar.data-outside:not(.reverse) tbody tr td .data:dir(ltr), .charts-css.bar.data-outside.reverse tbody tr td .data:dir(rtl), .charts-css.bar:not(.reverse) tbody tr td .data.outside:dir(ltr), .charts-css.bar.reverse tbody tr td .data.outside:dir(rtl) {
  350. transform: translateX(100%);
  351. }
  352. .charts-css.bar.data-outside:not(.reverse) tbody tr td .data:dir(rtl), .charts-css.bar.data-outside.reverse tbody tr td .data:dir(ltr), .charts-css.bar:not(.reverse) tbody tr td .data.outside:dir(rtl), .charts-css.bar.reverse tbody tr td .data.outside:dir(ltr) {
  353. transform: translateX(-100%);
  354. }
  355. .charts-css.column.data-outside:not(.reverse) tbody tr td .data, .charts-css.column:not(.reverse) tbody tr td .data.outside {
  356. transform: translateY(-100%);
  357. }
  358. .charts-css.column.data-outside.reverse tbody tr td .data, .charts-css.column.reverse tbody tr td .data.outside {
  359. transform: translateY(100%);
  360. }
  361. .charts-css.bar.reverse tbody tr td.inside .data,
  362. .charts-css.bar.reverse tbody tr td .data.inside, .charts-css.bar:not(.reverse) tbody tr td.inside .data,
  363. .charts-css.bar:not(.reverse) tbody tr td .data.inside, .charts-css.column.reverse tbody tr td.inside .data,
  364. .charts-css.column.reverse tbody tr td .data.inside, .charts-css.column:not(.reverse) tbody tr td.inside .data,
  365. .charts-css.column:not(.reverse) tbody tr td .data.inside, .charts-css.area.reverse tbody tr td.inside .data,
  366. .charts-css.area.reverse tbody tr td .data.inside, .charts-css.area:not(.reverse) tbody tr td.inside .data,
  367. .charts-css.area:not(.reverse) tbody tr td .data.inside, .charts-css.line.reverse tbody tr td.inside .data,
  368. .charts-css.line.reverse tbody tr td .data.inside, .charts-css.line:not(.reverse) tbody tr td.inside .data,
  369. .charts-css.line:not(.reverse) tbody tr td .data.inside {
  370. transform: unset;
  371. }
  372. /*
  373. * Chart labels
  374. */
  375. .charts-css.bar {
  376. --labels-size: 80px;
  377. }
  378. .charts-css.bar:not(.show-labels), .charts-css.column:not(.show-labels), .charts-css.area:not(.show-labels), .charts-css.line:not(.show-labels) {
  379. --labels-size: 0;
  380. }
  381. .charts-css.bar.show-labels tbody tr th {
  382. display: flex;
  383. flex-direction: row;
  384. gap: 5px;
  385. align-items: var(--labels-align-block, center);
  386. }
  387. .charts-css.bar.show-labels:not(.reverse):not(.reverse-labels) tbody tr th, .charts-css.bar.show-labels.reverse.reverse-labels tbody tr th {
  388. justify-content: var(--labels-align-inline, flex-start);
  389. }
  390. .charts-css.bar.show-labels:not(.reverse).reverse-labels tbody tr th, .charts-css.bar.show-labels.reverse:not(.reverse-labels) tbody tr th {
  391. justify-content: var(--labels-align-inline, flex-end);
  392. }
  393. .charts-css.column, .charts-css.area, .charts-css.line {
  394. --labels-size: 1.5rem;
  395. }
  396. .charts-css.column.show-labels tbody tr th, .charts-css.area.show-labels tbody tr th, .charts-css.line.show-labels tbody tr th {
  397. display: flex;
  398. flex-direction: column;
  399. align-items: var(--labels-align-inline, center);
  400. }
  401. .charts-css.column.show-labels:not(.reverse):not(.reverse-labels) tbody tr th, .charts-css.area.show-labels:not(.reverse):not(.reverse-labels) tbody tr th, .charts-css.line.show-labels:not(.reverse):not(.reverse-labels) tbody tr th, .charts-css.column.show-labels.reverse.reverse-labels tbody tr th, .charts-css.area.show-labels.reverse.reverse-labels tbody tr th, .charts-css.line.show-labels.reverse.reverse-labels tbody tr th {
  402. justify-content: var(--labels-align-block, flex-end);
  403. }
  404. .charts-css.column.show-labels:not(.reverse).reverse-labels tbody tr th, .charts-css.area.show-labels:not(.reverse).reverse-labels tbody tr th, .charts-css.line.show-labels:not(.reverse).reverse-labels tbody tr th, .charts-css.column.show-labels.reverse:not(.reverse-labels) tbody tr th, .charts-css.area.show-labels.reverse:not(.reverse-labels) tbody tr th, .charts-css.line.show-labels.reverse:not(.reverse-labels) tbody tr th {
  405. justify-content: var(--labels-align-block, flex-start);
  406. }
  407. .charts-css.bar.labels-align-inline-start tbody tr th, .charts-css.column.labels-align-inline-start tbody tr th, .charts-css.area.labels-align-inline-start tbody tr th, .charts-css.line.labels-align-inline-start tbody tr th {
  408. --labels-align-inline: flex-start;
  409. }
  410. .charts-css.bar.labels-align-inline-end tbody tr th, .charts-css.column.labels-align-inline-end tbody tr th, .charts-css.area.labels-align-inline-end tbody tr th, .charts-css.line.labels-align-inline-end tbody tr th {
  411. --labels-align-inline: flex-end;
  412. }
  413. .charts-css.bar.labels-align-inline-center tbody tr th, .charts-css.column.labels-align-inline-center tbody tr th, .charts-css.area.labels-align-inline-center tbody tr th, .charts-css.line.labels-align-inline-center tbody tr th {
  414. --labels-align-inline: center;
  415. }
  416. .charts-css.bar.labels-align-block-start tbody tr th, .charts-css.column.labels-align-block-start tbody tr th, .charts-css.area.labels-align-block-start tbody tr th, .charts-css.line.labels-align-block-start tbody tr th {
  417. --labels-align-block: flex-start;
  418. }
  419. .charts-css.bar.labels-align-block-end tbody tr th, .charts-css.column.labels-align-block-end tbody tr th, .charts-css.area.labels-align-block-end tbody tr th, .charts-css.line.labels-align-block-end tbody tr th {
  420. --labels-align-block: flex-end;
  421. }
  422. .charts-css.bar.labels-align-block-center tbody tr th, .charts-css.column.labels-align-block-center tbody tr th, .charts-css.area.labels-align-block-center tbody tr th, .charts-css.line.labels-align-block-center tbody tr th {
  423. --labels-align-block: center;
  424. }
  425. /*
  426. * Chart axes
  427. */
  428. .charts-css.column.show-primary-axis:not(.reverse) tbody tr, .charts-css.area.show-primary-axis:not(.reverse) tbody tr, .charts-css.line.show-primary-axis:not(.reverse) tbody tr {
  429. border-block-end: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
  430. }
  431. .charts-css.column.show-primary-axis.reverse tbody tr, .charts-css.area.show-primary-axis.reverse tbody tr, .charts-css.line.show-primary-axis.reverse tbody tr {
  432. border-block-start: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
  433. }
  434. .charts-css.column.show-1-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-1-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-1-secondary-axes:not(.reverse) tbody tr {
  435. background-size: 100% calc(100% / 1);
  436. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  437. }
  438. .charts-css.column.show-1-secondary-axes.reverse tbody tr, .charts-css.area.show-1-secondary-axes.reverse tbody tr, .charts-css.line.show-1-secondary-axes.reverse tbody tr {
  439. background-size: 100% calc(100% / 1);
  440. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  441. }
  442. .charts-css.column.show-2-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-2-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-2-secondary-axes:not(.reverse) tbody tr {
  443. background-size: 100% calc(100% / 2);
  444. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  445. }
  446. .charts-css.column.show-2-secondary-axes.reverse tbody tr, .charts-css.area.show-2-secondary-axes.reverse tbody tr, .charts-css.line.show-2-secondary-axes.reverse tbody tr {
  447. background-size: 100% calc(100% / 2);
  448. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  449. }
  450. .charts-css.column.show-3-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-3-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-3-secondary-axes:not(.reverse) tbody tr {
  451. background-size: 100% calc(100% / 3);
  452. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  453. }
  454. .charts-css.column.show-3-secondary-axes.reverse tbody tr, .charts-css.area.show-3-secondary-axes.reverse tbody tr, .charts-css.line.show-3-secondary-axes.reverse tbody tr {
  455. background-size: 100% calc(100% / 3);
  456. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  457. }
  458. .charts-css.column.show-4-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-4-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-4-secondary-axes:not(.reverse) tbody tr {
  459. background-size: 100% calc(100% / 4);
  460. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  461. }
  462. .charts-css.column.show-4-secondary-axes.reverse tbody tr, .charts-css.area.show-4-secondary-axes.reverse tbody tr, .charts-css.line.show-4-secondary-axes.reverse tbody tr {
  463. background-size: 100% calc(100% / 4);
  464. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  465. }
  466. .charts-css.column.show-5-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-5-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-5-secondary-axes:not(.reverse) tbody tr {
  467. background-size: 100% calc(100% / 5);
  468. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  469. }
  470. .charts-css.column.show-5-secondary-axes.reverse tbody tr, .charts-css.area.show-5-secondary-axes.reverse tbody tr, .charts-css.line.show-5-secondary-axes.reverse tbody tr {
  471. background-size: 100% calc(100% / 5);
  472. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  473. }
  474. .charts-css.column.show-6-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-6-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-6-secondary-axes:not(.reverse) tbody tr {
  475. background-size: 100% calc(100% / 6);
  476. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  477. }
  478. .charts-css.column.show-6-secondary-axes.reverse tbody tr, .charts-css.area.show-6-secondary-axes.reverse tbody tr, .charts-css.line.show-6-secondary-axes.reverse tbody tr {
  479. background-size: 100% calc(100% / 6);
  480. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  481. }
  482. .charts-css.column.show-7-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-7-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-7-secondary-axes:not(.reverse) tbody tr {
  483. background-size: 100% calc(100% / 7);
  484. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  485. }
  486. .charts-css.column.show-7-secondary-axes.reverse tbody tr, .charts-css.area.show-7-secondary-axes.reverse tbody tr, .charts-css.line.show-7-secondary-axes.reverse tbody tr {
  487. background-size: 100% calc(100% / 7);
  488. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  489. }
  490. .charts-css.column.show-8-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-8-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-8-secondary-axes:not(.reverse) tbody tr {
  491. background-size: 100% calc(100% / 8);
  492. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  493. }
  494. .charts-css.column.show-8-secondary-axes.reverse tbody tr, .charts-css.area.show-8-secondary-axes.reverse tbody tr, .charts-css.line.show-8-secondary-axes.reverse tbody tr {
  495. background-size: 100% calc(100% / 8);
  496. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  497. }
  498. .charts-css.column.show-9-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-9-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-9-secondary-axes:not(.reverse) tbody tr {
  499. background-size: 100% calc(100% / 9);
  500. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  501. }
  502. .charts-css.column.show-9-secondary-axes.reverse tbody tr, .charts-css.area.show-9-secondary-axes.reverse tbody tr, .charts-css.line.show-9-secondary-axes.reverse tbody tr {
  503. background-size: 100% calc(100% / 9);
  504. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  505. }
  506. .charts-css.column.show-10-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-10-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-10-secondary-axes:not(.reverse) tbody tr {
  507. background-size: 100% calc(100% / 10);
  508. background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  509. }
  510. .charts-css.column.show-10-secondary-axes.reverse tbody tr, .charts-css.area.show-10-secondary-axes.reverse tbody tr, .charts-css.line.show-10-secondary-axes.reverse tbody tr {
  511. background-size: 100% calc(100% / 10);
  512. background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  513. }
  514. .charts-css.column.show-data-axes tbody tr, .charts-css.area.show-data-axes tbody tr, .charts-css.line.show-data-axes tbody tr, .charts-css.column.show-dataset-axes tbody tr td, .charts-css.area.show-dataset-axes tbody tr td, .charts-css.line.show-dataset-axes tbody tr td {
  515. border-inline-end: var(--data-axes-width) var(--data-axes-style) var(--data-axes-color);
  516. }
  517. .charts-css.column.show-data-axes:not(.reverse-data) tbody tr:first-of-type, .charts-css.area.show-data-axes:not(.reverse-data) tbody tr:first-of-type, .charts-css.line.show-data-axes:not(.reverse-data) tbody tr:first-of-type, .charts-css.column.show-data-axes.reverse-data tbody tr:last-of-type, .charts-css.area.show-data-axes.reverse-data tbody tr:last-of-type, .charts-css.line.show-data-axes.reverse-data tbody tr:last-of-type, .charts-css.column.show-dataset-axes:not(.reverse-data) tbody tr:first-of-type td, .charts-css.area.show-dataset-axes:not(.reverse-data) tbody tr:first-of-type td, .charts-css.line.show-dataset-axes:not(.reverse-data) tbody tr:first-of-type td, .charts-css.column.show-dataset-axes.reverse-data tbody tr:last-of-type td, .charts-css.area.show-dataset-axes.reverse-data tbody tr:last-of-type td, .charts-css.line.show-dataset-axes.reverse-data tbody tr:last-of-type td {
  518. border-inline-start: var(--data-axes-width) var(--data-axes-style) var(--data-axes-color);
  519. }
  520. .charts-css.bar.show-primary-axis:not(.reverse) tbody tr {
  521. border-inline-start: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
  522. }
  523. .charts-css.bar.show-primary-axis.reverse tbody tr {
  524. border-inline-end: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
  525. }
  526. .charts-css.bar.show-1-secondary-axes:not(.reverse) tbody tr {
  527. background-size: calc(100% / 1) 100%;
  528. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  529. }
  530. .charts-css.bar.show-1-secondary-axes.reverse tbody tr {
  531. background-size: calc(100% / 1) 100%;
  532. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  533. }
  534. .charts-css.bar.show-2-secondary-axes:not(.reverse) tbody tr {
  535. background-size: calc(100% / 2) 100%;
  536. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  537. }
  538. .charts-css.bar.show-2-secondary-axes.reverse tbody tr {
  539. background-size: calc(100% / 2) 100%;
  540. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  541. }
  542. .charts-css.bar.show-3-secondary-axes:not(.reverse) tbody tr {
  543. background-size: calc(100% / 3) 100%;
  544. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  545. }
  546. .charts-css.bar.show-3-secondary-axes.reverse tbody tr {
  547. background-size: calc(100% / 3) 100%;
  548. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  549. }
  550. .charts-css.bar.show-4-secondary-axes:not(.reverse) tbody tr {
  551. background-size: calc(100% / 4) 100%;
  552. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  553. }
  554. .charts-css.bar.show-4-secondary-axes.reverse tbody tr {
  555. background-size: calc(100% / 4) 100%;
  556. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  557. }
  558. .charts-css.bar.show-5-secondary-axes:not(.reverse) tbody tr {
  559. background-size: calc(100% / 5) 100%;
  560. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  561. }
  562. .charts-css.bar.show-5-secondary-axes.reverse tbody tr {
  563. background-size: calc(100% / 5) 100%;
  564. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  565. }
  566. .charts-css.bar.show-6-secondary-axes:not(.reverse) tbody tr {
  567. background-size: calc(100% / 6) 100%;
  568. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  569. }
  570. .charts-css.bar.show-6-secondary-axes.reverse tbody tr {
  571. background-size: calc(100% / 6) 100%;
  572. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  573. }
  574. .charts-css.bar.show-7-secondary-axes:not(.reverse) tbody tr {
  575. background-size: calc(100% / 7) 100%;
  576. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  577. }
  578. .charts-css.bar.show-7-secondary-axes.reverse tbody tr {
  579. background-size: calc(100% / 7) 100%;
  580. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  581. }
  582. .charts-css.bar.show-8-secondary-axes:not(.reverse) tbody tr {
  583. background-size: calc(100% / 8) 100%;
  584. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  585. }
  586. .charts-css.bar.show-8-secondary-axes.reverse tbody tr {
  587. background-size: calc(100% / 8) 100%;
  588. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  589. }
  590. .charts-css.bar.show-9-secondary-axes:not(.reverse) tbody tr {
  591. background-size: calc(100% / 9) 100%;
  592. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  593. }
  594. .charts-css.bar.show-9-secondary-axes.reverse tbody tr {
  595. background-size: calc(100% / 9) 100%;
  596. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  597. }
  598. .charts-css.bar.show-10-secondary-axes:not(.reverse) tbody tr {
  599. background-size: calc(100% / 10) 100%;
  600. background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  601. }
  602. .charts-css.bar.show-10-secondary-axes.reverse tbody tr {
  603. background-size: calc(100% / 10) 100%;
  604. background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
  605. }
  606. .charts-css.bar.show-data-axes tbody tr, .charts-css.bar.show-dataset-axes tbody tr td {
  607. border-block-end: var(--data-axes-width) var(--data-axes-style) var(--data-axes-color);
  608. }
  609. .charts-css.bar.show-data-axes:not(.reverse-data) tbody tr:first-of-type, .charts-css.bar.show-data-axes.reverse-data tbody tr:last-of-type, .charts-css.bar.show-dataset-axes:not(.reverse-data) tbody tr:first-of-type td, .charts-css.bar.show-dataset-axes.reverse-data tbody tr:last-of-type td {
  610. border-block-start: var(--data-axes-width) var(--data-axes-style) var(--data-axes-color);
  611. }
  612. .charts-css.radial.show-primary-axis tbody, .charts-css.pie.show-primary-axis tbody, .charts-css.polar.show-primary-axis tbody, .charts-css.radar.show-primary-axis tbody {
  613. border: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
  614. }
  615. .charts-css.radial.show-1-secondary-axes tbody::after, .charts-css.pie.show-1-secondary-axes tbody::after, .charts-css.polar.show-1-secondary-axes tbody::after, .charts-css.radar.show-1-secondary-axes tbody::after {
  616. content: "";
  617. position: absolute;
  618. width: 100%;
  619. height: 100%;
  620. inset: 0;
  621. z-index: 2;
  622. border-radius: 50%;
  623. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 2 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 2 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 2), transparent calc(100% / 2 + var(--secondary-axes-width)), transparent calc(100% / 2 + var(--secondary-axes-width)));
  624. }
  625. .charts-css.radial.show-2-secondary-axes tbody::after, .charts-css.pie.show-2-secondary-axes tbody::after, .charts-css.polar.show-2-secondary-axes tbody::after, .charts-css.radar.show-2-secondary-axes tbody::after {
  626. content: "";
  627. position: absolute;
  628. width: 100%;
  629. height: 100%;
  630. inset: 0;
  631. z-index: 2;
  632. border-radius: 50%;
  633. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 3 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 3 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 3), transparent calc(100% / 3 + var(--secondary-axes-width)), transparent calc(100% / 3 + var(--secondary-axes-width)));
  634. }
  635. .charts-css.radial.show-3-secondary-axes tbody::after, .charts-css.pie.show-3-secondary-axes tbody::after, .charts-css.polar.show-3-secondary-axes tbody::after, .charts-css.radar.show-3-secondary-axes tbody::after {
  636. content: "";
  637. position: absolute;
  638. width: 100%;
  639. height: 100%;
  640. inset: 0;
  641. z-index: 2;
  642. border-radius: 50%;
  643. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 4 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 4 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 4), transparent calc(100% / 4 + var(--secondary-axes-width)), transparent calc(100% / 4 + var(--secondary-axes-width)));
  644. }
  645. .charts-css.radial.show-4-secondary-axes tbody::after, .charts-css.pie.show-4-secondary-axes tbody::after, .charts-css.polar.show-4-secondary-axes tbody::after, .charts-css.radar.show-4-secondary-axes tbody::after {
  646. content: "";
  647. position: absolute;
  648. width: 100%;
  649. height: 100%;
  650. inset: 0;
  651. z-index: 2;
  652. border-radius: 50%;
  653. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 5 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 5 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 5), transparent calc(100% / 5 + var(--secondary-axes-width)), transparent calc(100% / 5 + var(--secondary-axes-width)));
  654. }
  655. .charts-css.radial.show-5-secondary-axes tbody::after, .charts-css.pie.show-5-secondary-axes tbody::after, .charts-css.polar.show-5-secondary-axes tbody::after, .charts-css.radar.show-5-secondary-axes tbody::after {
  656. content: "";
  657. position: absolute;
  658. width: 100%;
  659. height: 100%;
  660. inset: 0;
  661. z-index: 2;
  662. border-radius: 50%;
  663. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 6 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 6 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 6), transparent calc(100% / 6 + var(--secondary-axes-width)), transparent calc(100% / 6 + var(--secondary-axes-width)));
  664. }
  665. .charts-css.radial.show-6-secondary-axes tbody::after, .charts-css.pie.show-6-secondary-axes tbody::after, .charts-css.polar.show-6-secondary-axes tbody::after, .charts-css.radar.show-6-secondary-axes tbody::after {
  666. content: "";
  667. position: absolute;
  668. width: 100%;
  669. height: 100%;
  670. inset: 0;
  671. z-index: 2;
  672. border-radius: 50%;
  673. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 7 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 7 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 7), transparent calc(100% / 7 + var(--secondary-axes-width)), transparent calc(100% / 7 + var(--secondary-axes-width)));
  674. }
  675. .charts-css.radial.show-7-secondary-axes tbody::after, .charts-css.pie.show-7-secondary-axes tbody::after, .charts-css.polar.show-7-secondary-axes tbody::after, .charts-css.radar.show-7-secondary-axes tbody::after {
  676. content: "";
  677. position: absolute;
  678. width: 100%;
  679. height: 100%;
  680. inset: 0;
  681. z-index: 2;
  682. border-radius: 50%;
  683. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 8 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 8 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 8), transparent calc(100% / 8 + var(--secondary-axes-width)), transparent calc(100% / 8 + var(--secondary-axes-width)));
  684. }
  685. .charts-css.radial.show-8-secondary-axes tbody::after, .charts-css.pie.show-8-secondary-axes tbody::after, .charts-css.polar.show-8-secondary-axes tbody::after, .charts-css.radar.show-8-secondary-axes tbody::after {
  686. content: "";
  687. position: absolute;
  688. width: 100%;
  689. height: 100%;
  690. inset: 0;
  691. z-index: 2;
  692. border-radius: 50%;
  693. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 9 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 9 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 9), transparent calc(100% / 9 + var(--secondary-axes-width)), transparent calc(100% / 9 + var(--secondary-axes-width)));
  694. }
  695. .charts-css.radial.show-9-secondary-axes tbody::after, .charts-css.pie.show-9-secondary-axes tbody::after, .charts-css.polar.show-9-secondary-axes tbody::after, .charts-css.radar.show-9-secondary-axes tbody::after {
  696. content: "";
  697. position: absolute;
  698. width: 100%;
  699. height: 100%;
  700. inset: 0;
  701. z-index: 2;
  702. border-radius: 50%;
  703. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 10 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 10 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 10), transparent calc(100% / 10 + var(--secondary-axes-width)), transparent calc(100% / 10 + var(--secondary-axes-width)));
  704. }
  705. .charts-css.radial.show-10-secondary-axes tbody::after, .charts-css.pie.show-10-secondary-axes tbody::after, .charts-css.polar.show-10-secondary-axes tbody::after, .charts-css.radar.show-10-secondary-axes tbody::after {
  706. content: "";
  707. position: absolute;
  708. width: 100%;
  709. height: 100%;
  710. inset: 0;
  711. z-index: 2;
  712. border-radius: 50%;
  713. background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 11 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 11 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 11), transparent calc(100% / 11 + var(--secondary-axes-width)), transparent calc(100% / 11 + var(--secondary-axes-width)));
  714. }
  715. /*
  716. * Chart legend
  717. */
  718. .charts-css.legend {
  719. padding: 1rem;
  720. border: var(--legend-border-width) var(--legend-border-style) var(--legend-border-color);
  721. list-style: none;
  722. font-size: 1rem;
  723. }
  724. .charts-css.legend li {
  725. line-height: 2;
  726. display: flex;
  727. align-items: center;
  728. }
  729. .charts-css.legend li::before {
  730. content: "";
  731. display: inline-block;
  732. vertical-align: middle;
  733. margin-inline-end: 0.5rem;
  734. border-width: 2px;
  735. border-style: solid;
  736. }
  737. .charts-css.legend li:nth-child(10n+1)::before {
  738. background-color: var(--color-1, transparent);
  739. border-color: var(--border-color-1, var(--border-color, #000));
  740. }
  741. .charts-css.legend li:nth-child(10n+2)::before {
  742. background-color: var(--color-2, transparent);
  743. border-color: var(--border-color-2, var(--border-color, #000));
  744. }
  745. .charts-css.legend li:nth-child(10n+3)::before {
  746. background-color: var(--color-3, transparent);
  747. border-color: var(--border-color-3, var(--border-color, #000));
  748. }
  749. .charts-css.legend li:nth-child(10n+4)::before {
  750. background-color: var(--color-4, transparent);
  751. border-color: var(--border-color-4, var(--border-color, #000));
  752. }
  753. .charts-css.legend li:nth-child(10n+5)::before {
  754. background-color: var(--color-5, transparent);
  755. border-color: var(--border-color-5, var(--border-color, #000));
  756. }
  757. .charts-css.legend li:nth-child(10n+6)::before {
  758. background-color: var(--color-6, transparent);
  759. border-color: var(--border-color-6, var(--border-color, #000));
  760. }
  761. .charts-css.legend li:nth-child(10n+7)::before {
  762. background-color: var(--color-7, transparent);
  763. border-color: var(--border-color-7, var(--border-color, #000));
  764. }
  765. .charts-css.legend li:nth-child(10n+8)::before {
  766. background-color: var(--color-8, transparent);
  767. border-color: var(--border-color-8, var(--border-color, #000));
  768. }
  769. .charts-css.legend li:nth-child(10n+9)::before {
  770. background-color: var(--color-9, transparent);
  771. border-color: var(--border-color-9, var(--border-color, #000));
  772. }
  773. .charts-css.legend li:nth-child(10n+10)::before {
  774. background-color: var(--color-10, transparent);
  775. border-color: var(--border-color-10, var(--border-color, #000));
  776. }
  777. .charts-css.legend:not(.legend-inline) {
  778. display: flex;
  779. flex-direction: column;
  780. flex-wrap: nowrap;
  781. }
  782. .charts-css.legend.legend-inline {
  783. display: flex;
  784. flex-direction: row;
  785. flex-wrap: wrap;
  786. }
  787. .charts-css.legend.legend-inline li {
  788. margin-inline-end: 1rem;
  789. }
  790. .charts-css.legend.legend-circle li::before {
  791. width: 1rem;
  792. height: 1rem;
  793. border-radius: 50%;
  794. }
  795. .charts-css.legend.legend-ellipse li::before {
  796. width: 2rem;
  797. height: 1rem;
  798. border-radius: 50%;
  799. }
  800. .charts-css.legend.legend-square li::before {
  801. width: 1rem;
  802. height: 1rem;
  803. border-radius: 3px;
  804. }
  805. .charts-css.legend.legend-rhombus li::before {
  806. width: 1rem;
  807. height: 1rem;
  808. border-radius: 3px;
  809. transform: rotate(45deg) scale(0.85);
  810. }
  811. .charts-css.legend.legend-rectangle li::before {
  812. width: 2rem;
  813. height: 1rem;
  814. border-radius: 3px;
  815. }
  816. .charts-css.legend.legend-line li::before {
  817. width: 2rem;
  818. height: 3px;
  819. border-radius: 2px;
  820. box-sizing: content-box;
  821. }
  822. /*
  823. * Chart tooltips
  824. */
  825. .charts-css .tooltip {
  826. position: absolute;
  827. z-index: 1;
  828. inset-block-end: 50%;
  829. inset-inline-start: 50%;
  830. width: max-content;
  831. padding: 5px 10px;
  832. border-radius: 6px;
  833. visibility: hidden;
  834. opacity: 0;
  835. transition: opacity 0.3s;
  836. background-color: #555;
  837. color: #fff;
  838. text-align: center;
  839. font-size: 0.9rem;
  840. }
  841. .charts-css .tooltip:dir(ltr), .charts-css.area:not(.reverse):not(.reverse-data) tbody tr td .data:dir(rtl), .charts-css.area:not(.reverse).reverse-data tbody tr td .data:dir(ltr), .charts-css.area.reverse:not(.reverse-data) tbody tr td .data:dir(rtl), .charts-css.area.reverse.reverse-data tbody tr td .data:dir(ltr), .charts-css.line:not(.reverse):not(.reverse-data) tbody tr td .data:dir(rtl), .charts-css.line:not(.reverse).reverse-data tbody tr td .data:dir(ltr), .charts-css.line.reverse:not(.reverse-data) tbody tr td .data:dir(rtl), .charts-css.line.reverse.reverse-data tbody tr td .data:dir(ltr) {
  842. transform: translateX(-50%);
  843. }
  844. .charts-css .tooltip:dir(rtl), .charts-css.area:not(.reverse):not(.reverse-data) tbody tr td .data:dir(ltr), .charts-css.area:not(.reverse).reverse-data tbody tr td .data:dir(rtl), .charts-css.area.reverse:not(.reverse-data) tbody tr td .data:dir(ltr), .charts-css.area.reverse.reverse-data tbody tr td .data:dir(rtl), .charts-css.line:not(.reverse):not(.reverse-data) tbody tr td .data:dir(ltr), .charts-css.line:not(.reverse).reverse-data tbody tr td .data:dir(rtl), .charts-css.line.reverse:not(.reverse-data) tbody tr td .data:dir(ltr), .charts-css.line.reverse.reverse-data tbody tr td .data:dir(rtl) {
  845. transform: translateX(50%);
  846. }
  847. .charts-css .tooltip::after {
  848. content: "";
  849. position: absolute;
  850. inset-block-start: 100%;
  851. inset-inline-start: 50%;
  852. margin-inline-start: -5px;
  853. border-width: 5px;
  854. border-style: solid;
  855. border-color: #555 transparent transparent;
  856. }
  857. .charts-css td:hover .tooltip {
  858. visibility: visible;
  859. opacity: 1;
  860. }
  861. /*
  862. * Bar Chart
  863. */
  864. .charts-css.bar tbody {
  865. display: flex;
  866. justify-content: space-between;
  867. align-items: stretch;
  868. width: 100%;
  869. aspect-ratio: var(--aspect-ratio, auto);
  870. }
  871. .charts-css.bar tbody tr, .charts-css.column tbody tr, .charts-css.area tbody tr, .charts-css.line tbody tr {
  872. position: relative;
  873. display: flex;
  874. justify-content: flex-start;
  875. flex-grow: 1;
  876. flex-shrink: 1;
  877. flex-basis: 0;
  878. overflow-wrap: anywhere;
  879. }
  880. .charts-css.bar tbody tr th {
  881. position: absolute;
  882. inset: 0;
  883. width: var(--labels-size);
  884. }
  885. .charts-css.bar tbody tr td {
  886. display: flex;
  887. align-items: center;
  888. width: calc(100% * var(--end, var(--size, 1)));
  889. height: 100%;
  890. min-height: 1rem;
  891. padding-block-start: 10px;
  892. padding-block-end: 10px;
  893. position: relative;
  894. }
  895. .charts-css.bar:not(.reverse) tbody tr td {
  896. justify-content: var(--data-position, flex-end);
  897. }
  898. .charts-css.bar:not(.reverse) tbody tr td .data.outside, .charts-css.bar.reverse tbody tr td .data.outside {
  899. white-space: nowrap;
  900. }
  901. .charts-css.bar.reverse tbody tr td {
  902. justify-content: var(--data-position, flex-start);
  903. }
  904. .charts-css.bar:not(.reverse) tbody tr, .charts-css.column.reverse tbody tr, .charts-css.area:not(.reverse) tbody tr td .data, .charts-css.area.reverse tbody tr, .charts-css.line:not(.reverse) tbody tr td .data, .charts-css.line.reverse tbody tr {
  905. align-items: flex-start;
  906. }
  907. .charts-css.bar.reverse tbody tr, .charts-css.column:not(.reverse) tbody tr, .charts-css.area:not(.reverse) tbody tr, .charts-css.area.reverse tbody tr td .data, .charts-css.line:not(.reverse) tbody tr, .charts-css.line.reverse tbody tr td .data {
  908. align-items: flex-end;
  909. }
  910. .charts-css.bar:not(.reverse-labels):not(.reverse) tbody tr, .charts-css.bar.reverse-labels.reverse tbody tr {
  911. margin-inline-start: var(--labels-size);
  912. }
  913. .charts-css.bar:not(.reverse-labels):not(.reverse) tbody tr th {
  914. margin-inline-end: auto;
  915. margin-inline-start: calc(-1 * var(--labels-size) - var(--primary-axis-width));
  916. }
  917. .charts-css.bar:not(.reverse-labels).reverse tbody tr, .charts-css.bar.reverse-labels:not(.reverse) tbody tr {
  918. margin-inline-end: var(--labels-size);
  919. }
  920. .charts-css.bar:not(.reverse-labels).reverse tbody tr th {
  921. margin-inline-start: auto;
  922. margin-inline-end: calc(-1 * var(--labels-size) - var(--primary-axis-width));
  923. }
  924. .charts-css.bar.reverse-labels:not(.reverse) tbody tr th {
  925. margin-inline-start: auto;
  926. margin-inline-end: calc(-1 * var(--labels-size));
  927. }
  928. .charts-css.bar.reverse-labels.reverse tbody tr th {
  929. margin-inline-end: auto;
  930. margin-inline-start: calc(-1 * var(--labels-size));
  931. }
  932. .charts-css.bar:not(.stacked) tbody tr td, .charts-css.column:not(.stacked) tbody tr td {
  933. flex-grow: 1;
  934. flex-shrink: 1;
  935. flex-basis: 0;
  936. }
  937. .charts-css.bar.stacked tbody tr td, .charts-css.column.stacked tbody tr td {
  938. flex-grow: unset;
  939. flex-shrink: unset;
  940. flex-basis: unset;
  941. }
  942. .charts-css.bar.stacked.reverse-datasets tbody tr, .charts-css.column:not(.reverse) tbody tr th, .charts-css.column.stacked.reverse-datasets tbody tr, .charts-css.area:not(.reverse) tbody tr th, .charts-css.line:not(.reverse) tbody tr th {
  943. justify-content: flex-end;
  944. }
  945. .charts-css.bar:not(.reverse-data) tbody, .charts-css.bar:not(.reverse-datasets):not(.stacked) tbody tr, .charts-css.column:not(.reverse-datasets).stacked.reverse tbody tr, .charts-css.column.reverse-datasets.stacked:not(.reverse) tbody tr {
  946. flex-direction: column;
  947. }
  948. .charts-css.bar.reverse-data tbody, .charts-css.bar.reverse-datasets:not(.stacked) tbody tr, .charts-css.column:not(.reverse-datasets).stacked:not(.reverse) tbody tr, .charts-css.column.reverse-datasets.stacked.reverse tbody tr {
  949. flex-direction: column-reverse;
  950. }
  951. .charts-css.bar:not(.reverse-datasets).stacked:not(.reverse) tbody tr, .charts-css.bar.reverse-datasets.stacked.reverse tbody tr, .charts-css.column:not(.reverse-labels):not(.reverse-data) tbody, .charts-css.column.reverse-labels.reverse-data tbody, .charts-css.column:not(.reverse-datasets):not(.stacked) tbody tr, .charts-css.area:not(.reverse-data) tbody, .charts-css.area:not(.reverse-datasets) tbody tr, .charts-css.line:not(.reverse-data) tbody, .charts-css.line:not(.reverse-datasets) tbody tr {
  952. flex-direction: row;
  953. }
  954. .charts-css.bar:not(.reverse-datasets).stacked.reverse tbody tr, .charts-css.bar.reverse-datasets.stacked:not(.reverse) tbody tr, .charts-css.column:not(.reverse-labels).reverse-data tbody, .charts-css.column.reverse-labels:not(.reverse-data) tbody, .charts-css.column.reverse-datasets:not(.stacked) tbody tr, .charts-css.area.reverse-data tbody, .charts-css.area.reverse-datasets tbody tr, .charts-css.line.reverse-data tbody, .charts-css.line.reverse-datasets tbody tr {
  955. flex-direction: row-reverse;
  956. }
  957. .charts-css.bar.data-spacing-1 tbody tr {
  958. padding-block-start: 1px;
  959. padding-block-end: 1px;
  960. }
  961. .charts-css.bar.data-spacing-2 tbody tr {
  962. padding-block-start: 2px;
  963. padding-block-end: 2px;
  964. }
  965. .charts-css.bar.data-spacing-3 tbody tr {
  966. padding-block-start: 3px;
  967. padding-block-end: 3px;
  968. }
  969. .charts-css.bar.data-spacing-4 tbody tr {
  970. padding-block-start: 4px;
  971. padding-block-end: 4px;
  972. }
  973. .charts-css.bar.data-spacing-5 tbody tr {
  974. padding-block-start: 5px;
  975. padding-block-end: 5px;
  976. }
  977. .charts-css.bar.data-spacing-6 tbody tr {
  978. padding-block-start: 6px;
  979. padding-block-end: 6px;
  980. }
  981. .charts-css.bar.data-spacing-7 tbody tr {
  982. padding-block-start: 7px;
  983. padding-block-end: 7px;
  984. }
  985. .charts-css.bar.data-spacing-8 tbody tr {
  986. padding-block-start: 8px;
  987. padding-block-end: 8px;
  988. }
  989. .charts-css.bar.data-spacing-9 tbody tr {
  990. padding-block-start: 9px;
  991. padding-block-end: 9px;
  992. }
  993. .charts-css.bar.data-spacing-10 tbody tr {
  994. padding-block-start: 10px;
  995. padding-block-end: 10px;
  996. }
  997. .charts-css.bar.data-spacing-11 tbody tr {
  998. padding-block-start: 11px;
  999. padding-block-end: 11px;
  1000. }
  1001. .charts-css.bar.data-spacing-12 tbody tr {
  1002. padding-block-start: 12px;
  1003. padding-block-end: 12px;
  1004. }
  1005. .charts-css.bar.data-spacing-13 tbody tr {
  1006. padding-block-start: 13px;
  1007. padding-block-end: 13px;
  1008. }
  1009. .charts-css.bar.data-spacing-14 tbody tr {
  1010. padding-block-start: 14px;
  1011. padding-block-end: 14px;
  1012. }
  1013. .charts-css.bar.data-spacing-15 tbody tr {
  1014. padding-block-start: 15px;
  1015. padding-block-end: 15px;
  1016. }
  1017. .charts-css.bar.data-spacing-16 tbody tr {
  1018. padding-block-start: 16px;
  1019. padding-block-end: 16px;
  1020. }
  1021. .charts-css.bar.data-spacing-17 tbody tr {
  1022. padding-block-start: 17px;
  1023. padding-block-end: 17px;
  1024. }
  1025. .charts-css.bar.data-spacing-18 tbody tr {
  1026. padding-block-start: 18px;
  1027. padding-block-end: 18px;
  1028. }
  1029. .charts-css.bar.data-spacing-19 tbody tr {
  1030. padding-block-start: 19px;
  1031. padding-block-end: 19px;
  1032. }
  1033. .charts-css.bar.data-spacing-20 tbody tr {
  1034. padding-block-start: 20px;
  1035. padding-block-end: 20px;
  1036. }
  1037. .charts-css.bar.datasets-spacing-1 tbody tr td {
  1038. margin-block-start: 1px;
  1039. margin-block-end: 1px;
  1040. }
  1041. .charts-css.bar.datasets-spacing-2 tbody tr td {
  1042. margin-block-start: 2px;
  1043. margin-block-end: 2px;
  1044. }
  1045. .charts-css.bar.datasets-spacing-3 tbody tr td {
  1046. margin-block-start: 3px;
  1047. margin-block-end: 3px;
  1048. }
  1049. .charts-css.bar.datasets-spacing-4 tbody tr td {
  1050. margin-block-start: 4px;
  1051. margin-block-end: 4px;
  1052. }
  1053. .charts-css.bar.datasets-spacing-5 tbody tr td {
  1054. margin-block-start: 5px;
  1055. margin-block-end: 5px;
  1056. }
  1057. .charts-css.bar.datasets-spacing-6 tbody tr td {
  1058. margin-block-start: 6px;
  1059. margin-block-end: 6px;
  1060. }
  1061. .charts-css.bar.datasets-spacing-7 tbody tr td {
  1062. margin-block-start: 7px;
  1063. margin-block-end: 7px;
  1064. }
  1065. .charts-css.bar.datasets-spacing-8 tbody tr td {
  1066. margin-block-start: 8px;
  1067. margin-block-end: 8px;
  1068. }
  1069. .charts-css.bar.datasets-spacing-9 tbody tr td {
  1070. margin-block-start: 9px;
  1071. margin-block-end: 9px;
  1072. }
  1073. .charts-css.bar.datasets-spacing-10 tbody tr td {
  1074. margin-block-start: 10px;
  1075. margin-block-end: 10px;
  1076. }
  1077. .charts-css.bar.datasets-spacing-11 tbody tr td {
  1078. margin-block-start: 11px;
  1079. margin-block-end: 11px;
  1080. }
  1081. .charts-css.bar.datasets-spacing-12 tbody tr td {
  1082. margin-block-start: 12px;
  1083. margin-block-end: 12px;
  1084. }
  1085. .charts-css.bar.datasets-spacing-13 tbody tr td {
  1086. margin-block-start: 13px;
  1087. margin-block-end: 13px;
  1088. }
  1089. .charts-css.bar.datasets-spacing-14 tbody tr td {
  1090. margin-block-start: 14px;
  1091. margin-block-end: 14px;
  1092. }
  1093. .charts-css.bar.datasets-spacing-15 tbody tr td {
  1094. margin-block-start: 15px;
  1095. margin-block-end: 15px;
  1096. }
  1097. .charts-css.bar.datasets-spacing-16 tbody tr td {
  1098. margin-block-start: 16px;
  1099. margin-block-end: 16px;
  1100. }
  1101. .charts-css.bar.datasets-spacing-17 tbody tr td {
  1102. margin-block-start: 17px;
  1103. margin-block-end: 17px;
  1104. }
  1105. .charts-css.bar.datasets-spacing-18 tbody tr td {
  1106. margin-block-start: 18px;
  1107. margin-block-end: 18px;
  1108. }
  1109. .charts-css.bar.datasets-spacing-19 tbody tr td {
  1110. margin-block-start: 19px;
  1111. margin-block-end: 19px;
  1112. }
  1113. .charts-css.bar.datasets-spacing-20 tbody tr td {
  1114. margin-block-start: 20px;
  1115. margin-block-end: 20px;
  1116. }
  1117. /*
  1118. * Column Chart
  1119. */
  1120. .charts-css.column tbody, .charts-css.area tbody, .charts-css.line tbody {
  1121. display: flex;
  1122. justify-content: space-between;
  1123. align-items: stretch;
  1124. width: 100%;
  1125. aspect-ratio: var(--aspect-ratio, 21/9);
  1126. }
  1127. .charts-css.column tbody tr th, .charts-css.area tbody tr th, .charts-css.line tbody tr th {
  1128. position: absolute;
  1129. inset: 0;
  1130. height: var(--labels-size);
  1131. }
  1132. .charts-css.column tbody tr td {
  1133. display: flex;
  1134. justify-content: center;
  1135. width: 100%;
  1136. height: calc(100% * var(--end, var(--size, 1)));
  1137. position: relative;
  1138. }
  1139. .charts-css.column:not(.reverse) tbody tr td {
  1140. align-items: var(--data-position, flex-start);
  1141. }
  1142. .charts-css.column.reverse tbody tr td {
  1143. align-items: var(--data-position, flex-end);
  1144. }
  1145. .charts-css.column:not(.reverse) tbody tr td, .charts-css.column.reverse tbody tr td, .charts-css.area:not(.reverse) tbody tr td, .charts-css.area.reverse tbody tr td, .charts-css.line:not(.reverse) tbody tr td, .charts-css.line.reverse tbody tr td {
  1146. justify-content: center;
  1147. }
  1148. .charts-css.column.reverse tbody tr th, .charts-css.area.reverse tbody tr th, .charts-css.line.reverse tbody tr th {
  1149. justify-content: flex-start;
  1150. }
  1151. .charts-css.column:not(.reverse-labels):not(.reverse) tbody tr, .charts-css.column.reverse-labels.reverse tbody tr, .charts-css.area:not(.reverse-labels):not(.reverse) tbody tr, .charts-css.area.reverse-labels.reverse tbody tr, .charts-css.line:not(.reverse-labels):not(.reverse) tbody tr, .charts-css.line.reverse-labels.reverse tbody tr {
  1152. margin-block-end: var(--labels-size);
  1153. }
  1154. .charts-css.column:not(.reverse-labels):not(.reverse) tbody tr th, .charts-css.area:not(.reverse-labels):not(.reverse) tbody tr th, .charts-css.line:not(.reverse-labels):not(.reverse) tbody tr th {
  1155. margin-block-start: auto;
  1156. margin-block-end: calc(-1 * var(--labels-size) - var(--primary-axis-width));
  1157. }
  1158. .charts-css.column:not(.reverse-labels).reverse tbody tr, .charts-css.column.reverse-labels:not(.reverse) tbody tr, .charts-css.area:not(.reverse-labels).reverse tbody tr, .charts-css.area.reverse-labels:not(.reverse) tbody tr, .charts-css.line:not(.reverse-labels).reverse tbody tr, .charts-css.line.reverse-labels:not(.reverse) tbody tr {
  1159. margin-block-start: var(--labels-size);
  1160. }
  1161. .charts-css.column:not(.reverse-labels).reverse tbody tr th, .charts-css.area:not(.reverse-labels).reverse tbody tr th, .charts-css.line:not(.reverse-labels).reverse tbody tr th {
  1162. margin-block-end: auto;
  1163. margin-block-start: calc(-1 * var(--labels-size) - var(--primary-axis-width));
  1164. }
  1165. .charts-css.column.reverse-labels:not(.reverse) tbody tr th, .charts-css.area.reverse-labels:not(.reverse) tbody tr th, .charts-css.line.reverse-labels:not(.reverse) tbody tr th {
  1166. margin-block-end: auto;
  1167. margin-block-start: calc(-1 * var(--labels-size));
  1168. }
  1169. .charts-css.column.reverse-labels.reverse tbody tr th, .charts-css.area.reverse-labels.reverse tbody tr th, .charts-css.line.reverse-labels.reverse tbody tr th {
  1170. margin-block-start: auto;
  1171. margin-block-end: calc(-1 * var(--labels-size));
  1172. }
  1173. .charts-css.column.data-spacing-1 tbody tr {
  1174. padding-inline-start: 1px;
  1175. padding-inline-end: 1px;
  1176. }
  1177. .charts-css.column.data-spacing-2 tbody tr {
  1178. padding-inline-start: 2px;
  1179. padding-inline-end: 2px;
  1180. }
  1181. .charts-css.column.data-spacing-3 tbody tr {
  1182. padding-inline-start: 3px;
  1183. padding-inline-end: 3px;
  1184. }
  1185. .charts-css.column.data-spacing-4 tbody tr {
  1186. padding-inline-start: 4px;
  1187. padding-inline-end: 4px;
  1188. }
  1189. .charts-css.column.data-spacing-5 tbody tr {
  1190. padding-inline-start: 5px;
  1191. padding-inline-end: 5px;
  1192. }
  1193. .charts-css.column.data-spacing-6 tbody tr {
  1194. padding-inline-start: 6px;
  1195. padding-inline-end: 6px;
  1196. }
  1197. .charts-css.column.data-spacing-7 tbody tr {
  1198. padding-inline-start: 7px;
  1199. padding-inline-end: 7px;
  1200. }
  1201. .charts-css.column.data-spacing-8 tbody tr {
  1202. padding-inline-start: 8px;
  1203. padding-inline-end: 8px;
  1204. }
  1205. .charts-css.column.data-spacing-9 tbody tr {
  1206. padding-inline-start: 9px;
  1207. padding-inline-end: 9px;
  1208. }
  1209. .charts-css.column.data-spacing-10 tbody tr {
  1210. padding-inline-start: 10px;
  1211. padding-inline-end: 10px;
  1212. }
  1213. .charts-css.column.data-spacing-11 tbody tr {
  1214. padding-inline-start: 11px;
  1215. padding-inline-end: 11px;
  1216. }
  1217. .charts-css.column.data-spacing-12 tbody tr {
  1218. padding-inline-start: 12px;
  1219. padding-inline-end: 12px;
  1220. }
  1221. .charts-css.column.data-spacing-13 tbody tr {
  1222. padding-inline-start: 13px;
  1223. padding-inline-end: 13px;
  1224. }
  1225. .charts-css.column.data-spacing-14 tbody tr {
  1226. padding-inline-start: 14px;
  1227. padding-inline-end: 14px;
  1228. }
  1229. .charts-css.column.data-spacing-15 tbody tr {
  1230. padding-inline-start: 15px;
  1231. padding-inline-end: 15px;
  1232. }
  1233. .charts-css.column.data-spacing-16 tbody tr {
  1234. padding-inline-start: 16px;
  1235. padding-inline-end: 16px;
  1236. }
  1237. .charts-css.column.data-spacing-17 tbody tr {
  1238. padding-inline-start: 17px;
  1239. padding-inline-end: 17px;
  1240. }
  1241. .charts-css.column.data-spacing-18 tbody tr {
  1242. padding-inline-start: 18px;
  1243. padding-inline-end: 18px;
  1244. }
  1245. .charts-css.column.data-spacing-19 tbody tr {
  1246. padding-inline-start: 19px;
  1247. padding-inline-end: 19px;
  1248. }
  1249. .charts-css.column.data-spacing-20 tbody tr {
  1250. padding-inline-start: 20px;
  1251. padding-inline-end: 20px;
  1252. }
  1253. .charts-css.column.datasets-spacing-1 tbody tr td {
  1254. margin-inline-start: 1px;
  1255. margin-inline-end: 1px;
  1256. }
  1257. .charts-css.column.datasets-spacing-2 tbody tr td {
  1258. margin-inline-start: 2px;
  1259. margin-inline-end: 2px;
  1260. }
  1261. .charts-css.column.datasets-spacing-3 tbody tr td {
  1262. margin-inline-start: 3px;
  1263. margin-inline-end: 3px;
  1264. }
  1265. .charts-css.column.datasets-spacing-4 tbody tr td {
  1266. margin-inline-start: 4px;
  1267. margin-inline-end: 4px;
  1268. }
  1269. .charts-css.column.datasets-spacing-5 tbody tr td {
  1270. margin-inline-start: 5px;
  1271. margin-inline-end: 5px;
  1272. }
  1273. .charts-css.column.datasets-spacing-6 tbody tr td {
  1274. margin-inline-start: 6px;
  1275. margin-inline-end: 6px;
  1276. }
  1277. .charts-css.column.datasets-spacing-7 tbody tr td {
  1278. margin-inline-start: 7px;
  1279. margin-inline-end: 7px;
  1280. }
  1281. .charts-css.column.datasets-spacing-8 tbody tr td {
  1282. margin-inline-start: 8px;
  1283. margin-inline-end: 8px;
  1284. }
  1285. .charts-css.column.datasets-spacing-9 tbody tr td {
  1286. margin-inline-start: 9px;
  1287. margin-inline-end: 9px;
  1288. }
  1289. .charts-css.column.datasets-spacing-10 tbody tr td {
  1290. margin-inline-start: 10px;
  1291. margin-inline-end: 10px;
  1292. }
  1293. .charts-css.column.datasets-spacing-11 tbody tr td {
  1294. margin-inline-start: 11px;
  1295. margin-inline-end: 11px;
  1296. }
  1297. .charts-css.column.datasets-spacing-12 tbody tr td {
  1298. margin-inline-start: 12px;
  1299. margin-inline-end: 12px;
  1300. }
  1301. .charts-css.column.datasets-spacing-13 tbody tr td {
  1302. margin-inline-start: 13px;
  1303. margin-inline-end: 13px;
  1304. }
  1305. .charts-css.column.datasets-spacing-14 tbody tr td {
  1306. margin-inline-start: 14px;
  1307. margin-inline-end: 14px;
  1308. }
  1309. .charts-css.column.datasets-spacing-15 tbody tr td {
  1310. margin-inline-start: 15px;
  1311. margin-inline-end: 15px;
  1312. }
  1313. .charts-css.column.datasets-spacing-16 tbody tr td {
  1314. margin-inline-start: 16px;
  1315. margin-inline-end: 16px;
  1316. }
  1317. .charts-css.column.datasets-spacing-17 tbody tr td {
  1318. margin-inline-start: 17px;
  1319. margin-inline-end: 17px;
  1320. }
  1321. .charts-css.column.datasets-spacing-18 tbody tr td {
  1322. margin-inline-start: 18px;
  1323. margin-inline-end: 18px;
  1324. }
  1325. .charts-css.column.datasets-spacing-19 tbody tr td {
  1326. margin-inline-start: 19px;
  1327. margin-inline-end: 19px;
  1328. }
  1329. .charts-css.column.datasets-spacing-20 tbody tr td {
  1330. margin-inline-start: 20px;
  1331. margin-inline-end: 20px;
  1332. }
  1333. /*
  1334. * Area Chart
  1335. */
  1336. .charts-css.area tbody tr td, .charts-css.line tbody tr td {
  1337. display: flex;
  1338. flex-flow: column;
  1339. position: absolute;
  1340. width: 100%;
  1341. height: 100%;
  1342. inset: 0;
  1343. z-index: 0;
  1344. }
  1345. .charts-css.area tbody tr td::before, .charts-css.line tbody tr td::before {
  1346. content: "";
  1347. position: absolute;
  1348. inset: 0;
  1349. z-index: -1;
  1350. }
  1351. .charts-css.area tbody tr td::after, .charts-css.line tbody tr td::after, .charts-css.pie tbody tr td::after {
  1352. content: "";
  1353. width: 100%;
  1354. }
  1355. .charts-css.area:not(.reverse):not(.reverse-data) tbody tr td, .charts-css.area.reverse:not(.reverse-data) tbody tr td, .charts-css.line:not(.reverse):not(.reverse-data) tbody tr td, .charts-css.line.reverse:not(.reverse-data) tbody tr td {
  1356. justify-content: flex-end;
  1357. align-items: flex-end;
  1358. }
  1359. .charts-css.area:not(.reverse):not(.reverse-data) tbody tr td::before {
  1360. clip-path: polygon(0% calc(100% * (1 - var(--start, var(--end, var(--size))))), 100% calc(100% * (1 - var(--end, var(--size)))), 100% 100%, 0% 100%);
  1361. }
  1362. .charts-css.area:not(.reverse):not(.reverse-data) tbody tr td::after, .charts-css.area:not(.reverse).reverse-data tbody tr td::after, .charts-css.line:not(.reverse):not(.reverse-data) tbody tr td::after, .charts-css.line:not(.reverse).reverse-data tbody tr td::after {
  1363. height: calc(100% * var(--end, var(--size)));
  1364. }
  1365. .charts-css.area:not(.reverse).reverse-data tbody tr td, .charts-css.area.reverse.reverse-data tbody tr td, .charts-css.line:not(.reverse).reverse-data tbody tr td, .charts-css.line.reverse.reverse-data tbody tr td {
  1366. justify-content: flex-end;
  1367. align-items: flex-start;
  1368. }
  1369. .charts-css.area:not(.reverse).reverse-data tbody tr td::before {
  1370. clip-path: polygon(0% calc(100% * (1 - var(--end, var(--size)))), 100% calc(100% * (1 - var(--start, var(--end, var(--size))))), 100% 100%, 0% 100%);
  1371. }
  1372. .charts-css.area.reverse:not(.reverse-data) tbody tr td::before {
  1373. clip-path: polygon(0% 0%, 100% 0%, 100% calc(100% * var(--end, var(--size))), 0% calc(100% * var(--start, var(--end, var(--size)))));
  1374. }
  1375. .charts-css.area.reverse:not(.reverse-data) tbody tr td::after, .charts-css.area.reverse.reverse-data tbody tr td::after, .charts-css.line.reverse:not(.reverse-data) tbody tr td::after, .charts-css.line.reverse.reverse-data tbody tr td::after {
  1376. height: calc(100% * (1 - var(--end, var(--size))));
  1377. }
  1378. .charts-css.area.reverse.reverse-data tbody tr td::before {
  1379. clip-path: polygon(0% 0%, 100% 0%, 100% calc(100% * var(--start, var(--end, var(--size)))), 0% calc(100% * var(--end, var(--size))));
  1380. }
  1381. /*
  1382. * Line Chart
  1383. */
  1384. .charts-css.line {
  1385. --line-size: 3px;
  1386. }
  1387. .charts-css.line:not(.reverse):not(.reverse-data) tbody tr td::before {
  1388. clip-path: polygon(0% calc(100% * (1 - var(--start, var(--end, var(--size))))), 100% calc(100% * (1 - var(--end, var(--size)))), 100% calc(100% * (1 - var(--end, var(--size))) - var(--line-size)), 0% calc(100% * (1 - var(--start, var(--end, var(--size)))) - var(--line-size)));
  1389. }
  1390. .charts-css.line:not(.reverse).reverse-data tbody tr td::before {
  1391. clip-path: polygon(0% calc(100% * (1 - var(--end, var(--size)))), 100% calc(100% * (1 - var(--start, var(--end, var(--size))))), 100% calc(100% * (1 - var(--start, var(--end, var(--size)))) - var(--line-size)), 0% calc(100% * (1 - var(--end, var(--size))) - var(--line-size)));
  1392. }
  1393. .charts-css.line.reverse:not(.reverse-data) tbody tr td::before {
  1394. clip-path: polygon(0% calc(100% * var(--start, var(--end, var(--size))) - var(--line-size)), 100% calc(100% * var(--end, var(--size)) - var(--line-size)), 100% calc(100% * var(--end, var(--size))), 0% calc(100% * var(--start, var(--end, var(--size)))));
  1395. }
  1396. .charts-css.line.reverse.reverse-data tbody tr td::before {
  1397. clip-path: polygon(0% calc(100% * var(--end, var(--size)) - var(--line-size)), 100% calc(100% * var(--start, var(--end, var(--size))) - var(--line-size)), 100% calc(100% * var(--start, var(--end, var(--size)))), 0% calc(100% * var(--end, var(--size))));
  1398. }
  1399. /*
  1400. * Radial Chart
  1401. */
  1402. .charts-css.radial tbody, .charts-css.pie tbody, .charts-css.polar tbody, .charts-css.radar tbody {
  1403. display: block;
  1404. width: 100%;
  1405. aspect-ratio: 1;
  1406. border-radius: 50%;
  1407. background-color: var(--chart-bg-color);
  1408. }
  1409. /*
  1410. * Pie Chart
  1411. */
  1412. .charts-css.pie tbody tr td {
  1413. display: flex;
  1414. justify-content: center;
  1415. border-radius: 50%;
  1416. position: absolute;
  1417. width: 100%;
  1418. height: 100%;
  1419. inset: 0;
  1420. background: conic-gradient(transparent 0 calc(1turn * var(--start)), var(--c, transparent) calc(1turn * var(--start, 0)) calc(1turn * var(--end)), transparent calc(1turn * var(--end)) 1turn);
  1421. }
  1422. .charts-css.pie tbody tr td::before {
  1423. content: "";
  1424. position: absolute;
  1425. width: 100%;
  1426. height: 100%;
  1427. inset: 0;
  1428. }
  1429. .charts-css.pie tbody tr td .data {
  1430. display: flex;
  1431. justify-content: center;
  1432. border-radius: 50%;
  1433. position: absolute;
  1434. width: 100%;
  1435. height: 100%;
  1436. inset: 0;
  1437. transform: rotate(calc(0.5turn * var(--start, 0) + 0.5turn * var(--end, 0)));
  1438. }
  1439. /*
  1440. * Polar Chart
  1441. */
  1442. /*
  1443. * Radar Chart
  1444. */
  1445. /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGFydHMuc2NzcyIsIi4uL3NyYy9nZW5lcmFsL19wcm9wZXJ0aWVzLnNjc3MiLCIuLi9zcmMvZ2VuZXJhbC9fbWl4aW5zLnNjc3MiLCJjaGFydHMuY3NzIiwiLi4vc3JjL2NvbXBvbmVudHMvX3dyYXBwZXIuc2NzcyIsIi4uL3NyYy9jb21wb25lbnRzL19oZWFkaW5nLnNjc3MiLCIuLi9zcmMvY29tcG9uZW50cy9fY29sb3JzLnNjc3MiLCIuLi9zcmMvY29tcG9uZW50cy9fZGF0YS5zY3NzIiwiLi4vc3JjL2NvbXBvbmVudHMvX2xhYmVscy5zY3NzIiwiLi4vc3JjL2NvbXBvbmVudHMvX2F4ZXMuc2NzcyIsIi4uL3NyYy9jb21wb25lbnRzL19sZWdlbmQuc2NzcyIsIi4uL3NyYy9jb21wb25lbnRzL190b29sdGlwcy5zY3NzIiwiLi4vc3JjL2NoYXJ0cy9fYmFyLnNjc3MiLCIuLi9zcmMvY2hhcnRzL19jb2x1bW4uc2NzcyIsIi4uL3NyYy9jaGFydHMvX2FyZWEuc2NzcyIsIi4uL3NyYy9jaGFydHMvX2xpbmUuc2NzcyIsIi4uL3NyYy9jaGFydHMvX3JhZGlhbC5zY3NzIiwiLi4vc3JjL2NoYXJ0cy9fcGllLnNjc3MiLCIuLi9zcmMvY2hhcnRzL19wb2xhci5zY3NzIiwiLi4vc3JjL2NoYXJ0cy9fcmFkYXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztFQUFBO0FDQUE7O0VBQUE7QUFNRTtFQzBCQSxpQkR6QndCO0VDMEJ4QiwwQkQxQm1DO0VDMkJuQyxjRDNCZ0Q7QUVLbEQ7QUZORTtFQzBCQSxpQkR6QndCO0VDMEJ4QiwwQkQxQm1DO0VDMkJuQyxjRDNCZ0Q7QUVVbEQ7QUZYRTtFQzBCQSxpQkR6QndCO0VDMEJ4QiwwQkQxQm1DO0VDMkJuQyxjRDNCZ0Q7QUVlbEQ7QUZoQkU7RUMwQkEsaUJEekJ3QjtFQzBCeEIsMEJEMUJtQztFQzJCbkMsY0QzQmdEO0FFb0JsRDtBRnJCRTtFQzBCQSxpQkR6QndCO0VDMEJ4QiwwQkQxQm1DO0VDMkJuQyxjRDNCZ0Q7QUV5QmxEO0FGMUJFO0VDMEJBLGlCRHpCd0I7RUMwQnhCLDBCRDFCbUM7RUMyQm5DLGNEM0JnRDtBRThCbEQ7QUYvQkU7RUMwQkEsaUJEekJ3QjtFQzBCeEIsMEJEMUJtQztFQzJCbkMsY0QzQmdEO0FFbUNsRDtBRnBDRTtFQzBCQSxpQkR6QndCO0VDMEJ4QiwwQkQxQm1DO0VDMkJuQyxjRDNCZ0Q7QUV3Q2xEO0FGekNFO0VDMEJBLGlCRHpCd0I7RUMwQnhCLDBCRDFCbUM7RUMyQm5DLGNEM0JnRDtBRTZDbEQ7QUY5Q0U7RUMwQkEsaUJEekJ3QjtFQzBCeEIsMEJEMUJtQztFQzJCbkMsY0QzQmdEO0FFa0RsRDtBRjVDRTtFQ21CQSxpQkRsQndCO0VDb0J4QixjRHBCeUM7QUUrQzNDO0FGaERFO0VDbUJBLGlCRGxCd0I7RUNvQnhCLGNEcEJ5QztBRW1EM0M7QUY5Q0E7RUNhRSxpQkRac0I7RUNhdEIsbUJEYmlDO0VDY2pDLGNEZHVDO0FFa0R6QztBRjlDQTtFQ1FFLDRCRFBzQjtFQ1N0QixjRFRrRDtBRWlEcEQ7QUY3Q0E7RUNHRSxrQkRGc0I7RUNHdEIsZ0JESGtDO0VDSWxDLGNESnFDO0FFaUR2QztBRjVDRTtFQ0hBLGtCREl3QjtFQ0Z4QixjREUwQztBRStDNUM7QUZoREU7RUNIQSxrQkRJd0I7RUNGeEIsY0RFMEM7QUVtRDVDO0FGNUNFO0VDWEEsa0JEWXdCO0VDWHhCLGtCRFdvQztFQ1ZwQyxjRFV5QztBRWdEM0M7QUZqREU7RUNYQSxrQkRZd0I7RUNYeEIsa0JEV29DO0VDVnBDLGNEVXlDO0FFcUQzQztBRnRERTtFQ1hBLGtCRFl3QjtFQ1h4QixrQkRXb0M7RUNWcEMsY0RVeUM7QUUwRDNDO0FGM0RFO0VDWEEsa0JEWXdCO0VDWHhCLGtCRFdvQztFQ1ZwQyxjRFV5QztBRStEM0M7QUZ6REU7RUNsQkEsc0JEbUJ3QjtFQ2xCeEIsb0JEa0J3QztFQ2pCeEMsY0RpQitDO0FFNkRqRDtBRjlERTtFQ2xCQSxzQkRtQndCO0VDbEJ4QixvQkRrQndDO0VDakJ4QyxjRGlCK0M7QUVrRWpEO0FGbkVFO0VDbEJBLHNCRG1Cd0I7RUNsQnhCLG9CRGtCd0M7RUNqQnhDLGNEaUIrQztBRXVFakQ7QUZ4RUU7RUNsQkEsc0JEbUJ3QjtFQ2xCeEIsb0JEa0J3QztFQ2pCeEMsY0RpQitDO0FFNEVqRDtBRnRFRTtFQ3pCQSxpQkQwQndCO0VDekJ4QiwwQkR5Qm1DO0VDeEJuQyxjRHdCZ0Q7QUUwRWxEO0FGM0VFO0VDekJBLGlCRDBCd0I7RUN6QnhCLDBCRHlCbUM7RUN4Qm5DLGNEd0JnRDtBRStFbEQ7QUZoRkU7RUN6QkEsaUJEMEJ3QjtFQ3pCeEIsMEJEeUJtQztFQ3hCbkMsY0R3QmdEO0FFb0ZsRDtBRnJGRTtFQ3pCQSxpQkQwQndCO0VDekJ4QiwwQkR5Qm1DO0VDeEJuQyxjRHdCZ0Q7QUV5RmxEO0FGbEZFO0VDakNBLGtCRGtDd0I7RUNoQ3hCLGNEZ0MwQztBRXFGNUM7QUZ0RkU7RUNqQ0Esa0JEa0N3QjtFQ2hDeEIsY0RnQzBDO0FFeUY1QztBRjFGRTtFQ2pDQSxrQkRrQ3dCO0VDaEN4QixjRGdDMEM7QUU2RjVDO0FGOUZFO0VDakNBLGtCRGtDd0I7RUNoQ3hCLGNEZ0MwQztBRWlHNUM7QUNuS0E7O0VBQUE7QUFHQTtFQUdJLGtDQUFBO0VBQUEsbUNBQUE7RUFBQSxtQ0FBQTtFQUFBLG1DQUFBO0VBQUEsbUNBQUE7RUFBQSxtQ0FBQTtFQUFBLG9DQUFBO0VBQUEsb0NBQUE7RUFBQSxvQ0FBQTtFQUFBLG1DQUFBO0VBSUYsa0NBQUE7RUFHQSx3Q0FBQTtFQUNBLDJCQUFBO0VBQ0EseUJBQUE7RUFDQSx5Q0FBQTtFQUNBLDZCQUFBO0VBQ0EsMkJBQUE7RUFDQSxvQ0FBQTtFQUNBLHdCQUFBO0VBQ0Esc0JBQUE7RUFHQSx1Q0FBQTtFQUNBLDRCQUFBO0VBQ0EsMEJBQUE7RUFHQSxrQkFBQTtFQUdBLGNBQUE7RUFHQSxXQUFBO0VBQ0EsWUFBQTtFQUdBLGNBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUdBLGlDQUFBO1VBQUEseUJBQUE7QUQySkY7QUN6SkU7RUFNRSxzQkFBQTtB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 */