@platformatic/ui-components 0.7.10 → 0.7.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.html CHANGED
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Platformatic UI Components</title>
7
- <script type="module" crossorigin src="/assets/index-DXcXpVaM.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-DVghlxYb.css">
7
+ <script type="module" crossorigin src="/assets/index-eoI4Uq2D.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-TVRb_Qow.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="root"></div>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@platformatic/ui-components",
3
3
  "description": "Platformatic UI Components",
4
- "version": "0.7.10",
4
+ "version": "0.7.12",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -1,27 +1,58 @@
1
1
  'use strict'
2
+ import React, { useEffect, useState } from 'react'
2
3
  import PropTypes from 'prop-types'
3
4
  import styles from './BorderedBox.module.css'
4
5
  import commonStyles from './Common.module.css'
5
- import React from 'react'
6
- import { COLORS_BORDERED_BOX, DARK_BLUE, MAIN_GREEN, OPACITIES, OPACITY_100 } from './constants'
6
+ import { COLORS_BORDERED_BOX, DARK_BLUE, TRANSPARENT, OPACITIES, OPACITY_100 } from './constants'
7
7
  function BorderedBox ({
8
8
  classes = '',
9
- color = MAIN_GREEN,
9
+ color = TRANSPARENT,
10
10
  children = null,
11
11
  backgroundColor = DARK_BLUE,
12
12
  backgroundColorOpacity = OPACITY_100,
13
13
  borderColorOpacity = OPACITY_100,
14
14
  clickable = false,
15
- onClick = () => {}
15
+ onClick = () => {},
16
+ internalOverHandling = false,
17
+ backgroundColorOver = null,
18
+ backgroundColorOpacityOver = null,
19
+ borderColorOpacityOver = null
16
20
  }) {
17
- const borderColor = commonStyles[`bordered--${color}-${borderColorOpacity}`]
18
- const styledBackgroundColor = commonStyles[`background-color-${backgroundColor}`]
19
- const opacity = commonStyles[`background-color-opaque-${backgroundColorOpacity}`]
20
- let className = `${styles.borderedBox} ${commonStyles.bordered} ${classes} ${borderColor} ${styledBackgroundColor} ${opacity}`
21
- className += clickable ? ` ${styles.clickable}` : ''
21
+ const [over, setOver] = useState(false)
22
+ const [className, setClassName] = useState(normalClassName())
23
+
24
+ useEffect(() => {
25
+ if (over) {
26
+ setClassName(overClassName())
27
+ } else {
28
+ setClassName(normalClassName())
29
+ }
30
+ }, [over])
31
+
32
+ function normalClassName () {
33
+ const borderColor = color === TRANSPARENT ? commonStyles[`bordered--${color}`] : commonStyles[`bordered--${color}-${borderColorOpacity}`]
34
+ const styledBackgroundColor = commonStyles[`background-color-${backgroundColor}`]
35
+ const opacity = commonStyles[`background-color-opaque-${backgroundColorOpacity}`]
36
+ let className = `${styles.borderedBox} ${commonStyles.bordered} ${classes} ${borderColor} ${styledBackgroundColor} ${opacity}`
37
+ className += clickable ? ` ${styles.clickable}` : ''
38
+ return className
39
+ }
40
+
41
+ function overClassName () {
42
+ const borderColor = color === TRANSPARENT ? commonStyles[`bordered--${color}`] : commonStyles[`bordered--${color}-${borderColorOpacityOver}`]
43
+ const styledBackgroundColor = commonStyles[`background-color-${backgroundColorOver}`]
44
+ const opacity = commonStyles[`background-color-opaque-${backgroundColorOpacityOver}`]
45
+ let className = `${styles.borderedBox} ${commonStyles.bordered} ${classes} ${borderColor} ${styledBackgroundColor} ${opacity}`
46
+ className += clickable ? ` ${styles.clickable}` : ''
47
+ return className
48
+ }
22
49
 
23
50
  return (
24
- <div className={className} onClick={() => clickable ? onClick() : {}}>
51
+ <div
52
+ className={className}
53
+ onMouseOver={() => internalOverHandling && setOver(true)} onMouseLeave={() => internalOverHandling && setOver(false)}
54
+ onClick={() => clickable ? onClick() : {}}
55
+ >
25
56
  {children}
26
57
  </div>
27
58
  )
@@ -14,10 +14,10 @@
14
14
  @apply border-white bg-rich-black
15
15
  }
16
16
  .checkbox--white:checked {
17
- @apply bg-rich-black text-white;
17
+ @apply bg-white text-rich-black;
18
18
  }
19
19
  .checkbox--main-dark-blue:checked:after,
20
- .checkbox--white:checked:after {
20
+ .checkbox--rich-black:checked:after {
21
21
  @apply absolute h-full w-full;
22
22
  top: 1px;
23
23
  left: 1.5px;
@@ -34,9 +34,9 @@
34
34
  .checkbox--rich-black:checked {
35
35
  @apply bg-white text-rich-black;
36
36
  }
37
- .checkbox--rich-black:checked:after {
38
- @apply absolute top-[50%] left-[50%] h-full w-full;
39
- transform: translate(-50%, -50%);
40
-
37
+ .checkbox--white:checked:after {
38
+ @apply absolute h-full w-full;
39
+ top: 1px;
40
+ left: 1.5px;
41
41
  content: url('data:image/svg+xml,%3Csvg%20width=%2213%22%20height=%229%22%20viewBox=%220%200%2013%209%22%20fill=%22none%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath%20d=%22M1%204L5%208L12%201%22%20stroke%3D%22%2300050B%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E');
42
42
  }
@@ -22,6 +22,12 @@
22
22
  .bordered--white {
23
23
  @apply border-white;
24
24
  }
25
+ .bordered--rich-black {
26
+ @apply border-rich-black;
27
+ }
28
+ .bordered--transparent {
29
+ @apply border-none;
30
+ }
25
31
  .bordered--main-green-100 {
26
32
  @apply border-main-green/100;
27
33
  }
@@ -43,6 +49,9 @@
43
49
  .bordered--white-100 {
44
50
  @apply border-white/100;
45
51
  }
52
+ .bordered--rich-black-100 {
53
+ @apply border-rich-black/100;
54
+ }
46
55
  .bordered--main-green-70 {
47
56
  @apply border-main-green/70;
48
57
  }
@@ -64,6 +73,9 @@
64
73
  .bordered--white-70 {
65
74
  @apply border-white/70;
66
75
  }
76
+ .bordered--rich-black-70 {
77
+ @apply border-rich-black/70;
78
+ }
67
79
  .bordered--main-green-30 {
68
80
  @apply border-main-green/30;
69
81
  }
@@ -82,6 +94,9 @@
82
94
  .bordered--white-30 {
83
95
  @apply border-white/30;
84
96
  }
97
+ .bordered--rich-black-30 {
98
+ @apply border-rich-black/30;
99
+ }
85
100
  .bordered--tertiary-blue-30 {
86
101
  @apply border-tertiary-blue/30;
87
102
  }
@@ -103,6 +118,9 @@
103
118
  .bordered--white-20 {
104
119
  @apply border-white/20;
105
120
  }
121
+ .bordered--rich-black-20 {
122
+ @apply border-rich-black/20;
123
+ }
106
124
  .bordered--tertiary-blue-20 {
107
125
  @apply border-tertiary-blue/20;
108
126
  }
@@ -112,6 +130,9 @@
112
130
  .bordered--white-15 {
113
131
  @apply border-white/15;
114
132
  }
133
+ .bordered--rich-black-15 {
134
+ @apply border-rich-black/15;
135
+ }
115
136
  .bordered--tertiary-blue-15 {
116
137
  @apply border-tertiary-blue/15;
117
138
  }
@@ -121,11 +142,12 @@
121
142
  .bordered--white-10 {
122
143
  @apply border-white/10;
123
144
  }
145
+ .bordered--rich-black-10 {
146
+ @apply border-rich-black/10;
147
+ }
124
148
  .bordered--tertiary-blue-10 {
125
149
  @apply border-tertiary-blue/10;
126
150
  }
127
-
128
-
129
151
  .error-message {
130
152
  @apply absolute -bottom-5 text-error-red text-xs px-2 w-max;
131
153
  }
@@ -222,6 +244,9 @@
222
244
  .background-color-rich-black {
223
245
  @apply bg-rich-black ;
224
246
  }
247
+ .background-color-night {
248
+ @apply bg-night ;
249
+ }
225
250
  .background-color-anti-flash-white {
226
251
  @apply bg-anti-flash-white ;
227
252
  }
@@ -300,6 +325,9 @@
300
325
  .hover-background-color-opaque-rich-black{
301
326
  @apply hover:bg-rich-black hover:bg-opacity-15;
302
327
  }
328
+ .hover-background-color-opaque-night{
329
+ @apply hover:bg-night hover:bg-opacity-15;
330
+ }
303
331
  .selected-background-color-main-green {
304
332
  @apply !bg-main-green bg-opacity-15 !important;
305
333
  }
@@ -321,6 +349,9 @@
321
349
  .selected-background-color-rich-black {
322
350
  @apply !bg-rich-black bg-opacity-15;
323
351
  }
352
+ .selected-background-color-night {
353
+ @apply !bg-night bg-opacity-15;
354
+ }
324
355
  .selected-background-color-white{
325
356
  @apply !bg-white bg-opacity-15;
326
357
  }
@@ -97,7 +97,6 @@ function Modal ({
97
97
  }
98
98
 
99
99
  function closeModal (event) {
100
- console.log('closeModal', event)
101
100
  if (event.target === blurRef.current) {
102
101
  event.preventDefault()
103
102
  event.stopPropagation()
@@ -133,7 +132,13 @@ function Modal ({
133
132
  <div className={modalClassName}>
134
133
  <div className={headerClassName}>
135
134
  <div className={styles.title}>{title}</div>
136
- <PlatformaticIcon iconName='CloseIcon' color={MAIN_DARK_BLUE} size={SMALL} onClick={() => setIsOpen(false)} />
135
+ <PlatformaticIcon
136
+ iconName='CloseIcon'
137
+ color={MAIN_DARK_BLUE}
138
+ size={SMALL}
139
+ onClick={() => setIsOpen(false)}
140
+ internalOverHandling
141
+ />
137
142
  </div>
138
143
  <div>
139
144
  {children}
@@ -46,6 +46,7 @@ function ModalDirectional ({
46
46
  iconName='CloseIcon'
47
47
  size={MEDIUM}
48
48
  onClick={() => closeModal()}
49
+ internalOverHandling
49
50
  />
50
51
  </div>
51
52
  {children}
@@ -10,6 +10,7 @@ export const TERTIARY_BLUE = 'tertiary-blue'
10
10
  export const ERROR_RED = 'error-red'
11
11
  export const WARNING_YELLOW = 'warning-yellow'
12
12
  export const RICH_BLACK = 'rich-black'
13
+ export const NIGHT = 'night'
13
14
  export const ANTI_FLASH_WHITE = 'anti-flash-white'
14
15
  export const FIRE_ENGINE_RED = 'fire-engine-red'
15
16
  export const ALTERNATE_RICH_BLACK = 'alternate-rich-black'
@@ -66,8 +66,15 @@ function InputFileUpload ({
66
66
  }
67
67
 
68
68
  function handleFileInput (e) {
69
- setFile(e.target.files[0])
70
- onFileSelect(e.target.files[0])
69
+ if ((e.target.files?.length ?? 0) > 0) {
70
+ setFile(e.target.files[0])
71
+ onFileSelect(e.target.files[0])
72
+ } else {
73
+ // Ignore the Cancel Button
74
+ if (file !== null) {
75
+ document.getElementById(idInputFile).value = file.name
76
+ }
77
+ }
71
78
  }
72
79
 
73
80
  function clearFile () {
@@ -93,7 +100,13 @@ function InputFileUpload ({
93
100
  onFocus={() => handleFocus()}
94
101
  onBlur={() => handleBlur()}
95
102
  accept={acceptFiles}
103
+ style={{ display: 'none' }}
96
104
  />
105
+ <label
106
+ for={idInputFile}
107
+ className={focus ? focusedClassName() : normalClassName()}
108
+ >{file !== null ? file.name : 'Select .env file'}
109
+ </label>
97
110
  {file !== null && <span className={`${styles.afterInputDetail} ${detailTextClassName}`} onClick={() => onClickDetail()}>Detail</span>}
98
111
  </div>
99
112
  {file !== null && (
@@ -4,9 +4,10 @@ import PropTypes from 'prop-types'
4
4
  import inputStyles from './Input.module.css'
5
5
  import styles from './InputWithSeparator.module.css'
6
6
  import commonStyles from '../Common.module.css'
7
- import { DULLS_BACKGROUND_COLOR, ERROR_RED, MAIN_DARK_BLUE, MAIN_GREEN, MEDIUM, OPACITY_30, RICH_BLACK, SMALL, TRANSPARENT, WHITE } from '../constants'
7
+ import { DULLS_BACKGROUND_COLOR, ERROR_RED, MAIN_DARK_BLUE, MAIN_GREEN, MEDIUM, OPACITY_30, RICH_BLACK, SIZES, SMALL, TRANSPARENT, WHITE } from '../constants'
8
8
  import BorderedBox from '../BorderedBox'
9
9
  import ButtonFullRounded from '../ButtonFullRounded'
10
+ import PlatformaticIcon from '../PlatformaticIcon'
10
11
 
11
12
  function InputWithSeparator ({
12
13
  placeholder = '',
@@ -19,6 +20,7 @@ function InputWithSeparator ({
19
20
  onChange = () => {},
20
21
  disabled = false,
21
22
  afterIcon = null,
23
+ beforeIcon = null,
22
24
  defaultValue = '',
23
25
  defaultValueSeparator = ',',
24
26
  separators = [''],
@@ -89,7 +91,7 @@ function InputWithSeparator ({
89
91
  }
90
92
 
91
93
  function normalClassName () {
92
- return `${baseClassName} ${commonStyles.fullWidth} `
94
+ return `${baseClassName} `
93
95
  }
94
96
 
95
97
  function withChunksClassName () {
@@ -139,6 +141,7 @@ function InputWithSeparator ({
139
141
  <div className={inputStyles.container}>
140
142
  <div className={styles.container}>
141
143
  <div className={inputContainerClassName}>
144
+ {beforeIcon && <PlatformaticIcon iconName={beforeIcon.iconName} size={beforeIcon.size} data-testid='before-icon' color={beforeIcon.color} onClick={null} />}
142
145
  {chunks.map((value, index) => renderChunk(value, index))}
143
146
  <input
144
147
  type='text'
@@ -225,6 +228,14 @@ InputWithSeparator.propTypes = {
225
228
  handleClick: PropTypes.func,
226
229
  disabled: PropTypes.bool
227
230
  }),
231
+ /**
232
+ * beforeIcon: PlatformaticIcon props
233
+ */
234
+ beforeIcon: PropTypes.shape({
235
+ iconName: PropTypes.string,
236
+ color: PropTypes.string,
237
+ size: PropTypes.oneOf(SIZES)
238
+ }),
228
239
  /**
229
240
  * errorMessage
230
241
  */
@@ -0,0 +1,93 @@
1
+ import * as React from 'react'
2
+ import PropTypes from 'prop-types'
3
+ import styles from './Icons.module.css'
4
+ import { COLORS_ICON, SIZES, SMALL, MEDIUM, LARGE, MAIN_DARK_BLUE } from '../constants'
5
+
6
+ const MailIcon = ({
7
+ color = MAIN_DARK_BLUE,
8
+ size = MEDIUM,
9
+ disabled = false,
10
+ inactive = false
11
+ }) => {
12
+ let className = `${styles.svgClassName} ` + styles[`${color}`]
13
+ if (disabled) {
14
+ className += ` ${styles.iconDisabled}`
15
+ }
16
+ if (inactive) {
17
+ className += ` ${styles.iconInactive}`
18
+ }
19
+ let icon = <></>
20
+
21
+ switch (size) {
22
+ case SMALL:
23
+ icon = (
24
+ <svg
25
+ width={16}
26
+ height={16}
27
+ viewBox='0 0 16 16'
28
+ fill='none'
29
+ xmlns='http://www.w3.org/2000/svg'
30
+ className={className}
31
+ >
32
+ <rect x='2' y='4' width='12' height='8' rx='1' stroke='none' />
33
+ <path d='M2.5 4.5L8 8.5L13.5 4.5' stroke='none' strokeLinecap='round' strokeLinejoin='round' />
34
+ </svg>
35
+ )
36
+ break
37
+ case MEDIUM:
38
+ icon = (
39
+ <svg
40
+ width={24}
41
+ height={24}
42
+ viewBox='0 0 24 24'
43
+ fill='none'
44
+ xmlns='http://www.w3.org/2000/svg'
45
+ className={className}
46
+ >
47
+ <rect x='3' y='6' width='18' height='12' rx='1' stroke='none' strokeWidth={1.5} />
48
+ <path d='M3.75 6.75L12 12.75L20.25 6.75' stroke='none' strokeWidth={1.5} strokeLinecap='round' strokeLinejoin='round' />
49
+ </svg>
50
+ )
51
+ break
52
+ case LARGE:
53
+ icon = (
54
+ <svg
55
+ width={40}
56
+ height={40}
57
+ viewBox='0 0 40 40'
58
+ fill='none'
59
+ xmlns='http://www.w3.org/2000/svg'
60
+ className={className}
61
+ >
62
+ <rect x='5' y='10' width='30' height='20' rx='1' stroke='none' strokeWidth={2} />
63
+ <path d='M6.25 11.25L20 21.25L33.75 11.25' stroke='none' strokeWidth={2} strokeLinecap='round' strokeLinejoin='round' />
64
+ </svg>
65
+ )
66
+ break
67
+
68
+ default:
69
+ break
70
+ }
71
+ return icon
72
+ }
73
+
74
+ MailIcon.propTypes = {
75
+ /**
76
+ * color of text, icon and borders
77
+ */
78
+ color: PropTypes.oneOf(COLORS_ICON),
79
+ /**
80
+ * Size
81
+ */
82
+ size: PropTypes.oneOf(SIZES),
83
+ /**
84
+ * disabled
85
+ */
86
+ disabled: PropTypes.bool,
87
+ /**
88
+ * inactive
89
+ */
90
+ inactive: PropTypes.bool
91
+ }
92
+
93
+ export default MailIcon
@@ -105,6 +105,7 @@ import LiveIcon from './LiveIcon'
105
105
  import LoadingAppIcon from './LoadingAppIcon'
106
106
  import LogOutIcon from './LogOutIcon'
107
107
  import LogsRiskIcon from './LogsRiskIcon'
108
+ import MailIcon from './MailIcon'
108
109
  import MetricsIcon from './MetricsIcon'
109
110
  import MetricsLoadingIcon from './MetricsLoadingIcon'
110
111
  import MetricsLogsIcon from './MetricsLogsIcon'
@@ -292,6 +293,7 @@ export default {
292
293
  LoadingAppIcon,
293
294
  LogOutIcon,
294
295
  LogsRiskIcon,
296
+ MailIcon,
295
297
  MetricsIcon,
296
298
  MetricsLoadingIcon,
297
299
  MetricsLogsIcon,
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
  import BorderedBox from '../components/BorderedBox'
3
- import { COLORS_BORDERED_BOX } from '../components/constants'
3
+ import { COLORS_BORDERED_BOX, ERROR_RED, OPACITY_30, OPACITY_100, TERTIARY_BLUE, WHITE } from '../components/constants'
4
4
  export default {
5
5
  title: 'Platformatic/BorderedBox',
6
6
  component: BorderedBox,
@@ -33,3 +33,13 @@ export const White = Template.bind({})
33
33
  White.args = {
34
34
  color: 'white'
35
35
  }
36
+
37
+ export const HandlingOver = Template.bind({})
38
+ HandlingOver.args = {
39
+ color: WHITE,
40
+ backgroundColor: ERROR_RED,
41
+ borderColorOpacity: OPACITY_30,
42
+ internalOverHandling: true,
43
+ borderColorOpacityOver: OPACITY_100,
44
+ backgroundColorOver: TERTIARY_BLUE
45
+ }
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
  import React, { useState } from 'react'
3
- import { ERROR_RED } from '../../components/constants'
3
+ import { ERROR_RED, MAIN_GREEN, MEDIUM } from '../../components/constants'
4
4
  import InputWithSeparator from '../../components/forms/InputWithSeparator'
5
5
 
6
6
  const divStyle = {
@@ -66,6 +66,11 @@ Default.args = {
66
66
  iconName: 'AddIcon',
67
67
  color: ERROR_RED,
68
68
  handleClick: () => alert("I'm an AddIcon")
69
+ },
70
+ beforeIcon: {
71
+ iconName: 'UserIcon',
72
+ color: MAIN_GREEN,
73
+ size: MEDIUM
69
74
  }
70
75
  }
71
76
 
@@ -44,6 +44,7 @@ module.exports = {
44
44
  transparent: 'transparent',
45
45
  'warning-yellow': '#FEB928',
46
46
  'rich-black': '#00050B',
47
+ night: '#0F1114',
47
48
  'electric-purple': '#C61BE2',
48
49
  'anti-flash-white': '#EDEDED',
49
50
  'fire-engine-red': '#D71919',
@@ -1 +0,0 @@
1
- ._input_9kufh_1{box-sizing:border-box;display:flex;height:2.5rem;width:100%;justify-content:space-between;border-radius:.25rem;border-width:1px;border-style:solid;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._onFocus_9kufh_4{--tw-border-opacity: 1;border-color:rgb(33 250 144 / var(--tw-border-opacity))}._onBlur_9kufh_7{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}._fillGreen_9kufh_10{fill:#21fa90}._fillWhite_9kufh_13{fill:#fff}._input_9kufh_1>input:focus{outline:2px solid transparent;outline-offset:2px}._title_9kufh_19{padding-bottom:1rem;font-size:1.875rem;line-height:2.25rem;font-weight:600;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._bordered_8lvk2_1{box-sizing:border-box;border-radius:.375rem;border-width:1px;border-style:solid}._bordered--main-green_8lvk2_4{--tw-border-opacity: 1;border-color:rgb(33 250 144 / var(--tw-border-opacity))}._bordered--main-dark-blue_8lvk2_7{--tw-border-opacity: 1;border-color:rgb(0 40 61 / var(--tw-border-opacity))}._bordered--tertiary-blue_8lvk2_10{--tw-border-opacity: 1;border-color:rgb(37 136 228 / var(--tw-border-opacity))}._bordered--error-red_8lvk2_13{--tw-border-opacity: 1;border-color:rgb(250 33 33 / var(--tw-border-opacity))}._bordered--warning-yellow_8lvk2_16{--tw-border-opacity: 1;border-color:rgb(254 185 40 / var(--tw-border-opacity))}._bordered--dark-blue_8lvk2_19{--tw-border-opacity: 1;border-color:rgb(0 52 79 / var(--tw-border-opacity))}._bordered--white_8lvk2_22{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}._bordered--main-green-100_8lvk2_25{border-color:#21fa90}._bordered--main-dark-blue-100_8lvk2_28{border-color:#00283d}._bordered--tertiary-blue-100_8lvk2_31{border-color:#2588e4}._bordered--error-red-100_8lvk2_34{border-color:#fa2121}._bordered--warning-yellow-100_8lvk2_37{border-color:#feb928}._bordered--dark-blue-100_8lvk2_40{border-color:#00344f}._bordered--white-100_8lvk2_43{border-color:#fff}._bordered--main-green-70_8lvk2_46{border-color:#21fa90b3}._bordered--main-dark-blue-70_8lvk2_49{border-color:#00283db3}._bordered--tertiary-blue-70_8lvk2_52{border-color:#2588e4b3}._bordered--error-red-70_8lvk2_55{border-color:#fa2121b3}._bordered--warning-yellow-70_8lvk2_58{border-color:#feb928b3}._bordered--dark-blue-70_8lvk2_61{border-color:#00344fb3}._bordered--white-70_8lvk2_64{border-color:#ffffffb3}._bordered--main-green-30_8lvk2_67{border-color:#21fa904d}._bordered--main-dark-blue-30_8lvk2_70{border-color:#00283d4d}._bordered--error-red-30_8lvk2_73{border-color:#fa21214d}._bordered--warning-yellow-30_8lvk2_76{border-color:#feb9284d}._bordered--dark-blue-30_8lvk2_79{border-color:#00344f4d}._bordered--white-30_8lvk2_82{border-color:#ffffff4d}._bordered--tertiary-blue-30_8lvk2_85{border-color:#2588e44d}._bordered--main-green-20_8lvk2_88{border-color:#21fa9033}._bordered--main-dark-blue-20_8lvk2_91{border-color:#00283d33}._bordered--error-red-20_8lvk2_94{border-color:#fa212133}._bordered--warning-yellow-20_8lvk2_97{border-color:#feb92833}._bordered--dark-blue-20_8lvk2_100{border-color:#00344f33}._bordered--white-20_8lvk2_103{border-color:#fff3}._bordered--tertiary-blue-20_8lvk2_106{border-color:#2588e433}._bordered--main-dark-blue-15_8lvk2_109{border-color:#00283d26}._bordered--white-15_8lvk2_112{border-color:#ffffff26}._bordered--tertiary-blue-15_8lvk2_115{border-color:#2588e426}._bordered--main-dark-blue-10_8lvk2_28{border-color:#00283d1a}._bordered--white-10_8lvk2_43{border-color:#ffffff1a}._bordered--tertiary-blue-10_8lvk2_31{border-color:#2588e41a}._error-message_8lvk2_129{position:absolute;bottom:-1.25rem;width:-moz-max-content;width:max-content;padding-left:.5rem;padding-right:.5rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(250 33 33 / var(--tw-text-opacity))}._padded_8lvk2_133{padding:.625rem .5rem}._text--error-red_8lvk2_136{--tw-text-opacity: 1;color:rgb(250 33 33 / var(--tw-text-opacity))}._text--error-red-70_8lvk2_139{color:#fa2121b3}._text--white_8lvk2_142{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._text--white-70_8lvk2_145{color:#ffffffb3}._text--dark-green_8lvk2_148{--tw-text-opacity: 1;color:rgb(2 120 63 / var(--tw-text-opacity))}._text--dark-green-70_8lvk2_151{color:#02783fb3}._text--main-green_8lvk2_154{--tw-text-opacity: 1;color:rgb(33 250 144 / var(--tw-text-opacity))}._text--main-green-70_8lvk2_157{color:#21fa90b3}._text--light-green_8lvk2_160{--tw-text-opacity: 1;color:rgb(33 241 144 / var(--tw-text-opacity))}._text--light-green-70_8lvk2_163{color:#21f190b3}._text--main-dark-blue_8lvk2_166{--tw-text-opacity: 1;color:rgb(0 40 61 / var(--tw-text-opacity))}._text--main-dark-blue-70_8lvk2_169{color:#00283db3}._text--light-blue_8lvk2_172{--tw-text-opacity: 1;color:rgb(233 247 255 / var(--tw-text-opacity))}._text--light-blue-70_8lvk2_175{color:#e9f7ffb3}._text--rich-black_8lvk2_178{--tw-text-opacity: 1;color:rgb(0 5 11 / var(--tw-text-opacity))}._text--rich-black-70_8lvk2_181{color:#00050bb3}._text--base_8lvk2_185{font-size:1rem;line-height:1.5rem}._text--xs_8lvk2_188{font-size:.75rem;line-height:1rem}._background-color-main-green_8lvk2_192{--tw-bg-opacity: 1;background-color:rgb(33 250 144 / var(--tw-bg-opacity))}._background-color-light-green_8lvk2_195{--tw-bg-opacity: 1;background-color:rgb(33 241 144 / var(--tw-bg-opacity))}._background-color-dark-green_8lvk2_198{--tw-bg-opacity: 1;background-color:rgb(2 120 63 / var(--tw-bg-opacity))}._background-color-main-dark-blue_8lvk2_201{--tw-bg-opacity: 1;background-color:rgb(0 40 61 / var(--tw-bg-opacity))}._background-color-dark-blue_8lvk2_204{--tw-bg-opacity: 1;background-color:rgb(0 52 79 / var(--tw-bg-opacity))}._background-color-light-blue_8lvk2_207{--tw-bg-opacity: 1;background-color:rgb(233 247 255 / var(--tw-bg-opacity))}._background-color-white_8lvk2_210{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}._background-color-error-red_8lvk2_213{--tw-bg-opacity: 1;background-color:rgb(250 33 33 / var(--tw-bg-opacity))}._background-color-tertiary-blue_8lvk2_216{--tw-bg-opacity: 1;background-color:rgb(37 136 228 / var(--tw-bg-opacity))}._background-color-warning-yellow_8lvk2_219{--tw-bg-opacity: 1;background-color:rgb(254 185 40 / var(--tw-bg-opacity))}._background-color-rich-black_8lvk2_222{--tw-bg-opacity: 1;background-color:rgb(0 5 11 / var(--tw-bg-opacity))}._background-color-anti-flash-white_8lvk2_225{--tw-bg-opacity: 1;background-color:rgb(237 237 237 / var(--tw-bg-opacity))}._background-color-fire-engine-red_8lvk2_228{--tw-bg-opacity: 1;background-color:rgb(215 25 25 / var(--tw-bg-opacity))}._background-color-alternate-rich-black_8lvk2_231{--tw-bg-opacity: 1;background-color:rgb(18 23 29 / var(--tw-bg-opacity))}._background-color-transparent_8lvk2_234{background-color:transparent}._background-color-opaque-100_8lvk2_237{--tw-bg-opacity: 1 !important}._background-color-opaque-70_8lvk2_240{--tw-bg-opacity: .7 !important}._background-color-opaque-60_8lvk2_243{--tw-bg-opacity: .6 !important}._background-color-opaque-30_8lvk2_246{--tw-bg-opacity: .3 !important}._background-color-opaque-20_8lvk2_249{--tw-bg-opacity: .2 !important}._background-color-opaque-10_8lvk2_237{--tw-bg-opacity: .1 !important}._apply-opacity-30_8lvk2_255{opacity:.3}._padding--none_8lvk2_258{padding:0}._padding--small_8lvk2_261{padding:.25rem}._padding--medium_8lvk2_264{padding:.5rem}._padding--large_8lvk2_267{padding:1rem}._padding--extra-large_8lvk2_270{padding:1.5rem}._hover-background-color-opaque-main-green_8lvk2_273:hover{background-color:rgb(33 250 144 / var(--tw-bg-opacity));--tw-bg-opacity: .15 }._hover-background-color-opaque-light-green_8lvk2_276:hover{background-color:rgb(33 241 144 / var(--tw-bg-opacity));--tw-bg-opacity: .15 }._hover-background-color-opaque-dark-green_8lvk2_279:hover{background-color:rgb(2 120 63 / var(--tw-bg-opacity));--tw-bg-opacity: .15 }._hover-background-color-opaque-main-dark-blue_8lvk2_282:hover{background-color:rgb(0 40 61 / var(--tw-bg-opacity));--tw-bg-opacity: .1 }._hover-background-color-opaque-dark-blue_8lvk2_285:hover{background-color:rgb(0 52 79 / var(--tw-bg-opacity));--tw-bg-opacity: .15 }._hover-background-color-opaque-light-blue_8lvk2_288:hover{background-color:rgb(233 247 255 / var(--tw-bg-opacity));--tw-bg-opacity: .15 }._hover-background-color-opaque-white_8lvk2_291:hover{background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-bg-opacity: .15 }._hover-background-color-opaque-error-red_8lvk2_294:hover{background-color:rgb(250 33 33 / var(--tw-bg-opacity));--tw-bg-opacity: .15 }._hover-background-color-opaque-tertiary-blue_8lvk2_297:hover{background-color:rgb(37 136 228 / var(--tw-bg-opacity));--tw-bg-opacity: .15 }._hover-background-color-opaque-rich-black_8lvk2_300:hover{background-color:rgb(0 5 11 / var(--tw-bg-opacity));--tw-bg-opacity: .15 }._selected-background-color-main-green_8lvk2_303{background-color:rgb(33 250 144 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .15 !important}._selected-background-color-light-green_8lvk2_306{background-color:rgb(33 241 144 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .15 !important}._selected-background-color-dark-green_8lvk2_309{background-color:rgb(2 120 63 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .15 !important}._selected-background-color-main-dark-blue_8lvk2_312{background-color:rgb(0 40 61 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .1 }._selected-background-color-dark-blue_8lvk2_315{background-color:rgb(0 52 79 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .15 }._selected-background-color-light-blue_8lvk2_318{background-color:rgb(233 247 255 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .15 }._selected-background-color-rich-black_8lvk2_321{background-color:rgb(0 5 11 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .15 }._selected-background-color-white_8lvk2_324{background-color:rgb(255 255 255 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .15 }._selected-background-color-error-red_8lvk2_327{background-color:rgb(250 33 33 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .15 }._selected-background-color-tertiary-blue_8lvk2_330{background-color:rgb(37 136 228 / var(--tw-bg-opacity))!important;--tw-bg-opacity: .15 }._fontSemiBold_8lvk2_334{font-weight:600}._fontLight_8lvk2_337{font-weight:300}._fullWidth_8lvk2_340{width:100%}._rich-black_thi2h_1>circle,._rich-black_thi2h_1>ellipse,._rich-black_thi2h_1>rect,._rich-black_thi2h_1>line,._rich-black_thi2h_1>path{stroke:#00050b}._important-rich-black_thi2h_9>circle,._important-rich-black_thi2h_9>ellipse,._important-rich-black_thi2h_9>rect,._important-rich-black_thi2h_9>line,._important-rich-black_thi2h_9>path{stroke:#00050b!important}._error-red_thi2h_17>circle,._error-red_thi2h_17>ellipse,._error-red_thi2h_17>rect,._error-red_thi2h_17>line,._error-red_thi2h_17>path{stroke:#fa2121}._important-error-red_thi2h_25>circle,._important-error-red_thi2h_25>ellipse,._important-error-red_thi2h_25>rect,._important-error-red_thi2h_25>line,._important-error-red_thi2h_25>path{stroke:#fa2121!important}._main-dark-blue_thi2h_33>circle,._main-dark-blue_thi2h_33>ellipse,._main-dark-blue_thi2h_33>rect,._main-dark-blue_thi2h_33>line,._main-dark-blue_thi2h_33>path{stroke:#00283d}._important-main-dark-blue_thi2h_41>circle,._important-main-dark-blue_thi2h_41>ellipse,._important-main-dark-blue_thi2h_41>rect,._important-main-dark-blue_thi2h_41>line,._important-main-dark-blue_thi2h_41>path{stroke:#00283d!important}._main-green_thi2h_49>circle,._main-green_thi2h_49>ellipse,._main-green_thi2h_49>rect,._main-green_thi2h_49>line,._main-green_thi2h_49>path{stroke:#21fa90}._important-main-green_thi2h_57>circle,._important-main-green_thi2h_57>ellipse,._important-main-green_thi2h_57>rect,._important-main-green_thi2h_57>line,._important-main-green_thi2h_57>path{stroke:#21fa90!important}._tertiary-blue_thi2h_65>circle,._tertiary-blue_thi2h_65>ellipse,._tertiary-blue_thi2h_65>rect,._tertiary-blue_thi2h_65>line,._tertiary-blue_thi2h_65>path{stroke:#2588e4}._important-tertiary-blue_thi2h_73>circle,._important-tertiary-blue_thi2h_73>ellipse,._important-tertiary-blue_thi2h_73>rect,._important-tertiary-blue_thi2h_73>line,._important-tertiary-blue_thi2h_73>path{stroke:#2588e4!important}._warning-yellow_thi2h_81>circle,._warning-yellow_thi2h_81>ellipse,._warning-yellow_thi2h_81>rect,._warning-yellow_thi2h_81>line,._warning-yellow_thi2h_81>path{stroke:#feb928}._important-warning-yellow_thi2h_89>circle,._important-warning-yellow_thi2h_89>ellipse,._important-warning-yellow_thi2h_89>rect,._important-warning-yellow_thi2h_89>line,._important-warning-yellow_thi2h_89>path{stroke:#feb928!important}._white_thi2h_97>circle,._white_thi2h_97>ellipse,._white_thi2h_97>rect,._white_thi2h_97>line,._white_thi2h_97>path{stroke:#fff}._important-white_thi2h_105>circle,._important-white_thi2h_105>ellipse,._important-white_thi2h_105>rect,._important-white_thi2h_105>line,._important-white_thi2h_105>path{stroke:#fff!important}._filled-rich-black_thi2h_113{fill:#00050b}._filled-white_thi2h_116{fill:#fff}._filled-error-red_thi2h_119{fill:#fa2121}._filled-main-dark-blue_thi2h_122{fill:#00283d}._filled-main-green_thi2h_125{fill:#21fa90}._filled-warning-yellow_thi2h_128{fill:#feb928}._filled-tertiary-blue_thi2h_131{fill:#2588e4}._fill-circle-green_thi2h_135>circle{fill:#fff}._fill-circle-main-dark-blue_thi2h_138>circle{fill:#00283d}._svgClassName_thi2h_141{display:block;flex-shrink:0;overflow-clip-margin:unset}._iconDisabled_thi2h_146{opacity:.3}._iconInactive_thi2h_150{opacity:.7}._strokeTransparent_thi2h_154{stroke:transparent!important}._cursorPointer_xwn7e_1{cursor:pointer}._pltTooltip_xwn7e_4{position:relative}._tabContainerClassName_1wta1_1{display:flex;width:100%;flex-direction:column;row-gap:.5rem;--tw-bg-opacity: 1;background-color:rgb(0 40 61 / var(--tw-bg-opacity))}._tabs-header_1wta1_4{display:flex;height:2rem;justify-content:flex-start;text-transform:uppercase;letter-spacing:.25em;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._tabs-header_1wta1_4:hover{cursor:pointer}._tab_1wta1_1{margin-left:2rem;margin-right:2rem;min-width:105px;text-align:center;font-size:.875rem;line-height:1.25rem;font-weight:300;opacity:.7}._tab_1wta1_1:first-child{margin-left:0}._tab_1wta1_1:last-child{margin-right:0}._tab_1wta1_1:hover{opacity:1}._selected-tab_1wta1_10{font-weight:500;text-decoration-line:underline;text-underline-offset:8px;opacity:1}._tabContentClassName_1wta1_13{max-height:calc(100vH - 10rem);overflow-y:auto}._tab_1wta1_1:before{display:block;content:attr(title);font-weight:700;height:0;overflow:hidden;visibility:hidden}._style_18nkb_1{width:100%;border-bottom-width:0px;border-top-width:1px;margin-block-start:0;margin-block-end:0;margin-inline-start:0;margin-inline-end:0}._marginY-4_18nkb_8{margin-top:1rem;margin-bottom:1rem}._marginT-4_18nkb_12{margin-top:1rem}._marginB-4_18nkb_16{margin-bottom:1rem}._marginY-8_18nkb_20{margin-top:2rem;margin-bottom:2rem}._marginT-8_18nkb_24{margin-top:2rem}._marginB-8_18nkb_28{margin-bottom:2rem}._marginY-10_18nkb_32{margin-top:2.5rem;margin-bottom:2.5rem}._marginT-10_18nkb_36{margin-top:2.5rem}._marginB-10_18nkb_40{margin-bottom:2.5rem}._apply-opacity-20_18nkb_44{opacity:.2}._apply-opacity-30_18nkb_48{opacity:.3}._borderedBox_ljsv8_1{flex:1 1 0%;row-gap:1rem;border-radius:.375rem;padding:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._clickable_ljsv8_4{cursor:pointer}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Montserrat;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;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,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color: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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--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: rgb(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: }::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: rgb(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: }.container{width:100%;margin-right:auto;margin-left:auto}@media (min-width: 350px){.container{max-width:350px}}@media (min-width: 390px){.container{max-width:390px}}@media (min-width: 744px){.container{max-width:744px}}@media (min-width: 1240px){.container{max-width:1240px}}@media (min-width: 1440px){.container{max-width:1440px}}@media (min-width: 1920px){.container{max-width:1920px}}.visible{visibility:visible}.relative{position:relative}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-screen{height:100vh}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.border{border-width:1px}.border-0{border-width:0px}.bg-rich-black{--tw-bg-opacity: 1;background-color:rgb(0 5 11 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-2{padding:.5rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.text-dark-green{--tw-text-opacity: 1;color:rgb(2 120 63 / var(--tw-text-opacity))}.text-error-red{--tw-text-opacity: 1;color:rgb(250 33 33 / var(--tw-text-opacity))}.text-main-green{--tw-text-opacity: 1;color:rgb(33 250 144 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.ring{--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(3px + 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)}.blur{--tw-blur: blur(8px);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)}.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)}:root{background-color:transparent;font-family:Montserrat}a{--tw-text-opacity: 1;color:rgb(37 136 228 / var(--tw-text-opacity))}input{background-color:transparent}.body--light-blue{--tw-bg-opacity: 1;background-color:rgb(233 247 255 / var(--tw-bg-opacity))}.body--main-dark-blue{--tw-bg-opacity: 1;background-color:rgb(0 40 61 / var(--tw-bg-opacity))}.hover\:cursor-pointer:hover{cursor:pointer}