([])
+ const [totalInvested, setTotalInvested] = useState('R$ 0,00')
+ const [totalReceived, setTotalReceived] = useState('R$ 0,00')
+ const [totalAccumulated, setTotalAccumulated] = useState('R$ 0,00')
+
+ const onSubmit = () => {
+ const params = {
+ initialAmount: Number(initialAmountRef.current?.value) || 0,
+ investmentAmount: Number(investmentAmountRef.current?.value) || 0,
+ periodInMonths: Number(periodInMonthsRef.current?.value) || 0,
+ taxePerYear: Number(taxePerYearRef.current?.value) || 0,
+ }
+
+ const simulatorResults = simulatorCalculate(params)
+ const lastResult = simulatorResults[params.periodInMonths]
+
+ setTotalInvested(toCurrency(lastResult.totalInvested))
+ setTotalReceived(toCurrency(lastResult.totalReceived))
+ setTotalAccumulated(toCurrency(lastResult.totalAccumulated))
+
+ setResults(simulatorResults)
+ }
+
+ return (
+ <>
+
+ >
+ )
+}
diff --git a/src/components/PageTitle.tsx b/src/components/PageTitle.tsx
deleted file mode 100644
index f7d0da8..0000000
--- a/src/components/PageTitle.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-'use client'
-
-import { Title } from "@tremor/react"
-import { ReactNode } from "react"
-
-export function PageTitle({ children }: { children: ReactNode }) {
- return (
-
- {children}
-
- )
-}
diff --git a/src/components/TableTickers.tsx b/src/components/TableTickers.tsx
deleted file mode 100644
index ba6d769..0000000
--- a/src/components/TableTickers.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-'use client'
-
-import { Ticker } from '@/@types/TickersTypes'
-import {
- Table,
- TableBody,
- TableHead,
- TableHeaderCell,
- TableRow,
-} from '@tremor/react'
-
-import { TableTickersRow } from './TableTickersRow'
-
-type Props = {
- tickers: Ticker[]
-}
-
-export function TableTickers({ tickers }: Props) {
-
- return (
-
-
-
- Papel
- Valor Atual
- PV/P
- Dividend Yield
- Últ. Rendimento
-
-
-
- {tickers.map((t) => (
-
- ))}
-
-
- )
-}
diff --git a/src/components/TableTickersRow.tsx b/src/components/TableTickersRow.tsx
deleted file mode 100644
index 023931d..0000000
--- a/src/components/TableTickersRow.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-'use client'
-
-import { Ticker } from '@/@types/TickersTypes'
-import { useResult } from '@/hooks/useResults'
-import { TableCell, TableRow } from '@tremor/react'
-
-type Props = {
- ticker: Ticker,
-}
-
-export function TableTickersRow({ ticker }: Props) {
-
- const { dy, isError, isLoading, lastDividend, price } = useResult(ticker.ticker)
-
- if (isError || isLoading) {
- return (
-
- {ticker.ticker}
- -
- -
- -
- -
-
- )
- }
-
- return (
-
- {ticker.ticker}
- {price}
- -
- {dy}
- {lastDividend}
-
- )
-}
diff --git a/src/components/common/Card.test.tsx b/src/components/common/Card.test.tsx
new file mode 100644
index 0000000..d185df4
--- /dev/null
+++ b/src/components/common/Card.test.tsx
@@ -0,0 +1,25 @@
+import { beforeEach, describe, expect, test } from 'vitest'
+import { cleanup, render } from '@testing-library/react'
+import React from 'react'
+import { Card } from './Card'
+
+describe('Card', () => {
+ beforeEach(cleanup)
+
+ test('renders the card correctly', () => {
+ const { getByTestId } = render(
+
+ Content
+ ,
+ )
+
+ expect(getByTestId('title')).toBeInTheDocument()
+ expect(getByTestId('title').textContent).toBe('Title')
+
+ expect(getByTestId('subtitle')).toBeInTheDocument()
+ expect(getByTestId('subtitle').textContent).toBe('Subtitle')
+
+ expect(getByTestId('children')).toBeInTheDocument()
+ expect(getByTestId('children').textContent).toBe('Content')
+ })
+})
diff --git a/src/components/common/Card.tsx b/src/components/common/Card.tsx
new file mode 100644
index 0000000..ebe498b
--- /dev/null
+++ b/src/components/common/Card.tsx
@@ -0,0 +1,23 @@
+import { ReactElement, ReactNode } from 'react'
+import { Card as CardTremor } from '@tremor/react'
+import { Title } from '@/components/common/Title'
+
+interface Props {
+ children: ReactNode
+ subtitle?: string | ReactElement
+ title: string
+}
+
+export function Card({ title, subtitle, children, ...props }: Props) {
+ return (
+
+
+ {title}
+
+ {subtitle}
+
+
+ {children}
+
+ )
+}
diff --git a/src/components/common/Logo.test.tsx b/src/components/common/Logo.test.tsx
new file mode 100644
index 0000000..8995588
--- /dev/null
+++ b/src/components/common/Logo.test.tsx
@@ -0,0 +1,17 @@
+import { beforeEach, describe, expect, test } from 'vitest'
+import { cleanup, render } from '@testing-library/react'
+import React from 'react'
+import { Logo } from './Logo'
+import { config } from '@/config'
+
+describe('Logo', () => {
+ beforeEach(cleanup)
+
+ test('renders the logo correctly', () => {
+ const { getByText } = render( )
+ const title = config.app.metadata.title.default
+
+ expect(getByText(title)).toBeInTheDocument()
+ expect(getByText(title).textContent).toBe(title)
+ })
+})
diff --git a/src/components/common/Logo.tsx b/src/components/common/Logo.tsx
new file mode 100644
index 0000000..8f6e000
--- /dev/null
+++ b/src/components/common/Logo.tsx
@@ -0,0 +1,15 @@
+'use client'
+
+import { config } from '@/config'
+
+export function Logo() {
+ return (
+
+ )
+}
diff --git a/src/components/common/Modal.test.tsx b/src/components/common/Modal.test.tsx
new file mode 100644
index 0000000..ec44bfe
--- /dev/null
+++ b/src/components/common/Modal.test.tsx
@@ -0,0 +1,52 @@
+import { beforeEach, describe, expect, test, vi } from 'vitest'
+import { cleanup, fireEvent, render } from '@testing-library/react'
+import Modal from './Modal'
+import React from 'react'
+
+const closeModalMock = vi.fn()
+
+const useModalMock = {
+ title: 'Title',
+ content: 'content...',
+ showModal: true,
+ closeBtnTitle: 'close',
+ closeModal: closeModalMock,
+}
+
+vi.mock('@/hooks/useModal', () => ({
+ useModal: () => useModalMock,
+}))
+
+describe('Modal', () => {
+ beforeEach(cleanup)
+
+ test('renders the modal correctly', () => {
+ const { getByRole, getByTestId } = render( )
+
+ const buttom = getByRole('button', { name: /close/i })
+ expect(buttom).toBeInTheDocument()
+
+ const title = getByTestId('title')
+ expect(title).toBeInTheDocument()
+ expect(title.textContent).toBe('Title')
+
+ const content = getByTestId('content')
+ expect(content).toBeInTheDocument()
+ expect(content.textContent).toBe('content...')
+ })
+
+ test('calls closeModal when the close button is clicked', () => {
+ const { getByTestId } = render( )
+
+ fireEvent.click(getByTestId('close-btn'))
+
+ expect(closeModalMock).toHaveBeenCalled()
+ })
+
+ test('does not render the modal when showModal is false', () => {
+ useModalMock.showModal = false
+
+ const { container } = render( )
+ expect(container).toBeEmptyDOMElement()
+ })
+})
diff --git a/src/components/common/Modal.tsx b/src/components/common/Modal.tsx
new file mode 100644
index 0000000..50cb64a
--- /dev/null
+++ b/src/components/common/Modal.tsx
@@ -0,0 +1,46 @@
+'use client'
+
+import { useModal } from '@/hooks/useModal'
+import { Button } from '@tremor/react'
+
+export default function Modal() {
+ const { showModal, title, content, closeBtnTitle, closeModal } = useModal()
+
+ return (
+ <>
+ {showModal ? (
+ <>
+
+
+
+
+
+ {content}
+
+
+
+ {closeBtnTitle}
+
+
+
+
+
+
+ >
+ ) : null}
+ >
+ )
+}
diff --git a/src/components/common/Term.test.tsx b/src/components/common/Term.test.tsx
new file mode 100644
index 0000000..b0fe977
--- /dev/null
+++ b/src/components/common/Term.test.tsx
@@ -0,0 +1,21 @@
+import { beforeEach, describe, expect, test, vi } from 'vitest'
+import { cleanup, render } from '@testing-library/react'
+import { Term } from './Term'
+import React from 'react'
+
+const openModalMock = vi.fn()
+
+vi.mock('@/hooks/useModal', () => ({
+ useModal: () => ({
+ openModal: openModalMock,
+ }),
+}))
+
+describe('Term', () => {
+ beforeEach(cleanup)
+
+ test('calls openModal when the term is rendered', () => {
+ render( )
+ expect(openModalMock).toHaveBeenCalled()
+ })
+})
diff --git a/src/components/common/Term.tsx b/src/components/common/Term.tsx
new file mode 100644
index 0000000..af92d8c
--- /dev/null
+++ b/src/components/common/Term.tsx
@@ -0,0 +1,55 @@
+'use client'
+
+import { useModal } from '@/hooks/useModal'
+import { useEffect } from 'react'
+import Cookies from 'js-cookie'
+
+const TermContent = () => {
+ return (
+ <>
+ Prezado usuário,
+
+
+ Gostaríamos de informar que nosso site utiliza cookies e tecnologias
+ semelhantes do seu navegador para aprimorar sua experiência de navegação
+ e fornecer funcionalidades personalizadas.
+
+
+
+ Os dados armazenados não contém informações pessoais sensíveis, como
+ nome, endereço ou alguma outra informação de indentificação. Nosso
+ compromisso com a privacidade é reforçado pela conformidade com a Lei
+ Geral de Proteção de Dados (LGPD), que garanta a proteção de suas
+ informações pessoais.
+
+
+
+ Ao continuar navegando em nosso site, você está concordando com o uso
+ destas tecnologias.
+
+ >
+ )
+}
+
+export function Term() {
+ const { openModal } = useModal()
+ const cookieName = 'TermsOfUseAccepted'
+
+ useEffect(() => {
+ if (Cookies.get(cookieName)) {
+ return
+ }
+
+ openModal({
+ content: ,
+ title: 'Termos de uso',
+ closeBtnTitle: 'Aceitar e continuar navegando',
+ closeModal: () => {
+ Cookies.set(cookieName, 'true')
+ },
+ })
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [])
+
+ return <>>
+}
diff --git a/src/components/common/Title.test.tsx b/src/components/common/Title.test.tsx
new file mode 100644
index 0000000..99423aa
--- /dev/null
+++ b/src/components/common/Title.test.tsx
@@ -0,0 +1,27 @@
+import { beforeEach, describe, expect, test } from 'vitest'
+import { cleanup, render } from '@testing-library/react'
+import { Title } from './Title'
+import React from 'react'
+
+describe('Title', () => {
+ beforeEach(cleanup)
+
+ test('renders the title correctly', () => {
+ const { getByTestId } = render(
+
+ Title Text
+ ,
+ )
+
+ expect(getByTestId('children')).toBeInTheDocument()
+ expect(getByTestId('children').textContent).toBe('Title Text')
+ })
+
+ test('applies additional class names correctly', () => {
+ const { getByText } = render(
+ Title Text ,
+ )
+
+ expect(getByText('Title Text')).toHaveClass('custom-class')
+ })
+})
diff --git a/src/components/common/Title.tsx b/src/components/common/Title.tsx
new file mode 100644
index 0000000..f88bdcf
--- /dev/null
+++ b/src/components/common/Title.tsx
@@ -0,0 +1,18 @@
+'use client'
+
+import { cn } from '@/helpers/cn'
+import { TitleProps, Title as TitleTremor } from '@tremor/react'
+
+export function Title({ children, ...props }: TitleProps) {
+ return (
+
+ {children}
+
+ )
+}
diff --git a/src/components/common/TooltipHelper.test.tsx b/src/components/common/TooltipHelper.test.tsx
new file mode 100644
index 0000000..7ba384a
--- /dev/null
+++ b/src/components/common/TooltipHelper.test.tsx
@@ -0,0 +1,33 @@
+import { beforeEach, describe, expect, test, vi } from 'vitest'
+import { cleanup, fireEvent, render } from '@testing-library/react'
+import { TooltipHelper } from './TooltipHelper'
+import React from 'react'
+
+const openModalMock = vi.fn()
+vi.mock('@/hooks/useModal', () => ({
+ useModal: () => ({
+ openModal: openModalMock,
+ }),
+}))
+
+describe('TooltipHelper', () => {
+ beforeEach(cleanup)
+
+ test('renders the tooltip correctly', () => {
+ const { getByTestId } = render(
+ ,
+ )
+
+ expect(getByTestId('tooltip-button')).toBeInTheDocument()
+ })
+
+ test('opens the modal when the button is clicked', () => {
+ const { getByTestId } = render(
+ ,
+ )
+
+ fireEvent.click(getByTestId('tooltip-button'))
+
+ expect(openModalMock).toHaveBeenCalled()
+ })
+})
diff --git a/src/components/common/TooltipHelper.tsx b/src/components/common/TooltipHelper.tsx
new file mode 100644
index 0000000..2aab1d5
--- /dev/null
+++ b/src/components/common/TooltipHelper.tsx
@@ -0,0 +1,38 @@
+'use client'
+
+import { ReactNode } from 'react'
+import { useModal } from '@/hooks/useModal'
+import { QuestionMarkCircleIcon } from '@heroicons/react/solid'
+
+type HelperTitleProps = {
+ title: string
+}
+
+function HelperTitle({ title }: HelperTitleProps) {
+ return (
+
+ {title}
+
+
+ )
+}
+
+type TooltipHelperProps = {
+ title: string
+ content: ReactNode
+}
+
+export function TooltipHelper({ title, content }: TooltipHelperProps) {
+ const { openModal } = useModal()
+
+ return (
+
+ openModal({ content, title: HelperTitle({ title }) })}
+ >
+
+
+
+ )
+}
diff --git a/src/components/details/DatailsTable.tsx b/src/components/details/DatailsTable.tsx
deleted file mode 100644
index e67deba..0000000
--- a/src/components/details/DatailsTable.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import { Ticker } from '@/@types/TickersTypes'
-import {
- Table,
- TableBody,
- TableHead,
- TableHeaderCell,
- TableRow,
-} from '@tremor/react'
-import { Row } from './table/Row'
-
-type Props = {
- tickers: Ticker[]
-}
-
-export function DetailsTable({ tickers }: Props) {
- return (
-
-
-
- Papel
- Valor Atual
- PV/P
- Dividend Yield
- Últ. Rendimento
-
-
-
-
- {tickers.map((t) => (
-
- ))}
-
-
- )
-}
diff --git a/src/components/details/table/Remove.tsx b/src/components/details/table/Remove.tsx
deleted file mode 100644
index 7a600c8..0000000
--- a/src/components/details/table/Remove.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-'use client'
-
-import { useTickers } from '@/hooks/useTickers'
-import { Button, Icon } from '@tremor/react'
-import { Ticker } from '@/@types/TickersTypes'
-import { Trash } from '@phosphor-icons/react'
-
-type Props = {
- ticker: Ticker,
-}
-
-export function Remove({ ticker }: Props) {
- const { removeTicker } = useTickers()
-
- return (
- removeTicker(ticker)}>
-
-
- )
-}
diff --git a/src/components/details/table/Row.tsx b/src/components/details/table/Row.tsx
deleted file mode 100644
index 10d0505..0000000
--- a/src/components/details/table/Row.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-'use client'
-
-import { TableCell, TableRow } from '@tremor/react'
-import { Ticker } from '@/@types/TickersTypes'
-import { Remove } from './Remove'
-import { useResult } from '@/hooks/useResults'
-import { Visibility } from './Visibility'
-
-type Props = {
- ticker: Ticker,
-}
-
-export function Row({ ticker }: Props) {
- const { dy, isError, isLoading, lastDividend, price } = useResult(ticker.ticker)
-
- if (isError || isLoading) {
- return (
-
- {ticker.ticker}
- -
- -
- -
- -
-
-
-
-
-
- )
- }
-
- return (
-
- {ticker.ticker}
- {price}
- -
- {dy}
- {lastDividend}
-
-
-
-
-
-
- )
-}
diff --git a/src/components/details/table/Visibility.tsx b/src/components/details/table/Visibility.tsx
deleted file mode 100644
index 7d2fa7c..0000000
--- a/src/components/details/table/Visibility.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-'use client'
-
-import { useTickers } from '@/hooks/useTickers'
-import { Button, Icon } from '@tremor/react'
-import { Ticker } from '@/@types/TickersTypes'
-import { Eye, EyeSlash, Trash } from '@phosphor-icons/react'
-
-type Props = {
- ticker: Ticker,
- isDisabled?: boolean,
-}
-
-export function Visibility({ ticker, isDisabled = false}: Props) {
- const { setVisibility } = useTickers()
-
- const icon = isDisabled || ticker.isHidden ? EyeSlash : Eye
-
- return (
- setVisibility(ticker)}>
-
-
- )
-}
diff --git a/src/components/home/Form/index.tsx b/src/components/home/Form/index.tsx
deleted file mode 100644
index 3fd22a3..0000000
--- a/src/components/home/Form/index.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-'use client'
-
-import { Button, Title } from '@tremor/react'
-import { useState } from 'react'
-import { SelectTickers } from './SelectTickers'
-import { SelectPortfolios } from './SelectPortfolios'
-import { useTickers } from '@/hooks/useTickers'
-
-export function Form() {
- const { addTickers } = useTickers()
-
- const [portfolioSelected, setPortfolioSelected] = useState([])
- const [tickersSelected, setTickersSelected] = useState([])
-
- const onTickersSelected = (value: any) => setTickersSelected(value)
- const onPortfoliosSelected = (value: any) => setPortfolioSelected(value)
-
- const onSubmit = () => {
- console.log('onSubmit...');
-
- if (!portfolioSelected.length || !tickersSelected.length) {
- return console.error('Portfolio selection')
- }
-
- addTickers(tickersSelected, portfolioSelected)
- }
-
- return (
-
-
- Análise de Fundos Imobiliários
-
-
-
-
-
-
-
- Adicionar
-
-
-
- )
-}
diff --git a/src/components/home/Info/InfoHeader.tsx b/src/components/home/Info/InfoHeader.tsx
deleted file mode 100644
index d55098b..0000000
--- a/src/components/home/Info/InfoHeader.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-'use client'
-
-import { Title } from "@tremor/react"
-import { InfoHeaderButtons } from "./InfoHeaderButtons"
-
-type Props = {
- portfolioId: string
- portfolioName: string
-}
-
-export function InfoHeader({ portfolioId, portfolioName }: Props) {
- return (
-
-
{portfolioName}
-
-
- )
-}
\ No newline at end of file
diff --git a/src/components/home/Info/InfoHeaderButtons.tsx b/src/components/home/Info/InfoHeaderButtons.tsx
deleted file mode 100644
index 3ea840b..0000000
--- a/src/components/home/Info/InfoHeaderButtons.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-'use client'
-
-import { Button, Icon } from "@tremor/react"
-import { PencilSimple, ChartLineUp } from '@phosphor-icons/react'
-import Link from "next/link"
-
-type Props = {
- portfolioId: string
-}
-
-export function InfoHeaderButtons({ portfolioId }: Props) {
- return (
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/src/components/home/Info/InfoTable.tsx b/src/components/home/Info/InfoTable.tsx
deleted file mode 100644
index f41afa9..0000000
--- a/src/components/home/Info/InfoTable.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-'use client'
-
-import { Card } from '@tremor/react'
-
-import { useTickers } from '@/hooks/useTickers'
-import { TableTickers } from '@/components/TableTickers'
-import { InfoHeader } from './InfoHeader'
-
-type Props = {
- portfolioId: string
- portfolioName: string
-}
-
-export function InfoTable({ portfolioId, portfolioName }: Props) {
- const { listByPortfolioId } = useTickers()
- const tickers = listByPortfolioId(portfolioId)
-
- if (!tickers.length) {
- return (
-
-
- Sem ativos nesta carteira
-
- )
- }
-
- return (
-
-
-
-
- )
-}
diff --git a/src/components/home/Info/index.tsx b/src/components/home/Info/index.tsx
deleted file mode 100644
index 2915cbb..0000000
--- a/src/components/home/Info/index.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-'use client'
-
-import { usePortfolios } from '@/hooks/usePortfolios'
-import { InfoTable } from './InfoTable'
-import { Title } from '@tremor/react'
-
-export function Info() {
- const { listPortfolios } = usePortfolios()
-
- return (
-
- Minhas Carteiras
-
-
- {listPortfolios().map((g) => (
-
- ))}
-
-
- )
-}
diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx
deleted file mode 100644
index 2d9e1e5..0000000
--- a/src/components/layout/Header.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-'use client'
-
-import { config } from '@/config'
-import { List, Gear } from '@phosphor-icons/react'
-
-export function Header() {
- return (
-
-
-
-
- {config.app.metadata.title.default}
-
-
-
-
- )
-}
diff --git a/src/components/layout/HeaderMobile.test.tsx b/src/components/layout/HeaderMobile.test.tsx
new file mode 100644
index 0000000..211f724
--- /dev/null
+++ b/src/components/layout/HeaderMobile.test.tsx
@@ -0,0 +1,28 @@
+import { beforeEach, describe, expect, test, vi } from 'vitest'
+import { cleanup, fireEvent, render } from '@testing-library/react'
+import React from 'react'
+import { HeaderMobile } from './HeaderMobile'
+
+const useSidebarMock = vi.fn()
+vi.mock('@/hooks/useSidebar', () => ({
+ useSidebar: () => ({
+ toggleSidebar: useSidebarMock,
+ }),
+}))
+
+describe('HeaderMobile', () => {
+ beforeEach(cleanup)
+
+ test('renders the card correctly', () => {
+ const { getByTestId } = render( )
+ expect(getByTestId('sidebar-button-overlay')).toBeInTheDocument()
+ })
+
+ test('calls toggleSidebar on button click', () => {
+ const { getByTestId } = render( )
+
+ fireEvent.click(getByTestId('sidebar-button-overlay'))
+
+ expect(useSidebarMock).toHaveBeenCalled()
+ })
+})
diff --git a/src/components/layout/HeaderMobile.tsx b/src/components/layout/HeaderMobile.tsx
new file mode 100644
index 0000000..5e54c50
--- /dev/null
+++ b/src/components/layout/HeaderMobile.tsx
@@ -0,0 +1,24 @@
+'use client'
+
+import { Button } from '@tremor/react'
+import { Logo } from '../common/Logo'
+import { List } from '@phosphor-icons/react'
+import { useSidebar } from '@/hooks/useSidebar'
+
+export function HeaderMobile() {
+ const { toggleSidebar } = useSidebar()
+
+ return (
+
+
+
+
+
+
+ )
+}
diff --git a/src/components/layout/Main.test.tsx b/src/components/layout/Main.test.tsx
new file mode 100644
index 0000000..cb23d61
--- /dev/null
+++ b/src/components/layout/Main.test.tsx
@@ -0,0 +1,39 @@
+import { beforeEach, describe, expect, test, vi } from 'vitest'
+import { cleanup, fireEvent, render } from '@testing-library/react'
+import React from 'react'
+import { Main } from './Main'
+
+const sideBarMock = {
+ toggleSidebar: vi.fn(),
+ closeSidebar: vi.fn(),
+ isOpen: true,
+}
+
+vi.mock('@/hooks/useSidebar', () => ({
+ useSidebar: () => sideBarMock,
+}))
+
+describe('Main', () => {
+ beforeEach(cleanup)
+
+ test('renders the card correctly', () => {
+ const { findAllByText } = render(main content )
+ expect(findAllByText('main content')).toBeTruthy()
+ })
+
+ test('calls toggleSidebar on button click', () => {
+ const { getByTestId } = render(main content )
+
+ fireEvent.click(getByTestId('sidebar-button-overlay'))
+
+ expect(sideBarMock.closeSidebar).toHaveBeenCalled()
+ })
+
+ test('renders the backdrop when sidebar is open', () => {
+ sideBarMock.isOpen = false
+ const { queryByTestId, getByText } = render(main content )
+
+ expect(getByText('main content')).toBeTruthy()
+ expect(queryByTestId('button')).toBeNull()
+ })
+})
diff --git a/src/components/layout/Main.tsx b/src/components/layout/Main.tsx
index bf481ed..303466f 100644
--- a/src/components/layout/Main.tsx
+++ b/src/components/layout/Main.tsx
@@ -1,5 +1,28 @@
+'use client'
+
+import { cn } from '@/helpers/cn'
+import { useSidebar } from '@/hooks/useSidebar'
import { ReactNode } from 'react'
export function Main({ children }: { children: ReactNode }) {
- return {children}
+ const { isOpen, closeSidebar } = useSidebar()
+
+ return (
+ <>
+ {isOpen && (
+
+ )}
+
+
+ {children}
+
+
+ >
+ )
}
diff --git a/src/components/layout/Sidebar.test.tsx b/src/components/layout/Sidebar.test.tsx
new file mode 100644
index 0000000..89bf43a
--- /dev/null
+++ b/src/components/layout/Sidebar.test.tsx
@@ -0,0 +1,37 @@
+import { beforeEach, describe, expect, test, vi } from 'vitest'
+import { cleanup, render } from '@testing-library/react'
+import React from 'react'
+import { Sidebar } from './Sidebar'
+
+const sideBarMock = {
+ isOpen: true,
+}
+
+vi.mock('@/hooks/useSidebar', () => ({
+ useSidebar: () => sideBarMock,
+}))
+
+describe('Sidebar', () => {
+ beforeEach(cleanup)
+
+ test('renders the sidebar correctly', () => {
+ const { getAllByTestId } = render( )
+ const items = getAllByTestId('sidebar-menu-item')
+
+ expect(items.length).toBe(2)
+ expect(items[0]).toHaveTextContent('Minha Carteira')
+ expect(items[1]).toHaveTextContent('Simulador')
+ })
+
+ test('renders the sidebar correctly when it is closed', () => {
+ sideBarMock.isOpen = false
+ const { getByTestId } = render( )
+ expect(getByTestId('sidebar')).not.toHaveClass('left-0')
+ })
+
+ test('renders the sidebar correctly when it is open', () => {
+ sideBarMock.isOpen = true
+ const { getByTestId } = render( )
+ expect(getByTestId('sidebar')).toHaveClass('left-0')
+ })
+})
diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx
new file mode 100644
index 0000000..810b468
--- /dev/null
+++ b/src/components/layout/Sidebar.tsx
@@ -0,0 +1,37 @@
+'use client'
+
+import { Calculator, Wallet } from '@phosphor-icons/react'
+import { SidebarMenuItem } from './SidebarMenuItem'
+import { Logo } from '../common/Logo'
+import { useSidebar } from '@/hooks/useSidebar'
+import { cn } from '@/helpers/cn'
+
+export function Sidebar() {
+ const { isOpen } = useSidebar()
+
+ return (
+
+ )
+}
diff --git a/src/components/layout/SidebarMenuItem.test.tsx b/src/components/layout/SidebarMenuItem.test.tsx
new file mode 100644
index 0000000..70ad0f8
--- /dev/null
+++ b/src/components/layout/SidebarMenuItem.test.tsx
@@ -0,0 +1,20 @@
+import { beforeEach, describe, expect, test } from 'vitest'
+import { cleanup, render } from '@testing-library/react'
+import React from 'react'
+import { SidebarMenuItem } from './SidebarMenuItem'
+import { Calculator } from '@phosphor-icons/react'
+
+describe('SidebarMenuItem', () => {
+ beforeEach(cleanup)
+
+ test('renders the menu item correctly', () => {
+ const label = 'Minha Carteira'
+
+ const { getByText } = render(
+ ,
+ )
+
+ const elLabel = getByText(label)
+ expect(elLabel).toHaveTextContent(label)
+ })
+})
diff --git a/src/components/layout/SidebarMenuItem.tsx b/src/components/layout/SidebarMenuItem.tsx
new file mode 100644
index 0000000..241ed2d
--- /dev/null
+++ b/src/components/layout/SidebarMenuItem.tsx
@@ -0,0 +1,27 @@
+import { useSidebar } from '@/hooks/useSidebar'
+import { Icon } from '@phosphor-icons/react'
+import Link from 'next/link'
+
+interface MenuItemProps {
+ icon: Icon
+ label: string
+ href: string
+}
+
+export function SidebarMenuItem({ label, icon: Icon, href }: MenuItemProps) {
+ const { closeSidebar } = useSidebar()
+
+ return (
+
+
+
+ {label}
+
+
+ )
+}
diff --git a/src/components/home/Form/SelectPortfolios.tsx b/src/components/pages/home/form-card/SelectPortfolios.tsx
similarity index 100%
rename from src/components/home/Form/SelectPortfolios.tsx
rename to src/components/pages/home/form-card/SelectPortfolios.tsx
diff --git a/src/components/home/Form/SelectTickers.tsx b/src/components/pages/home/form-card/SelectTickers.tsx
similarity index 95%
rename from src/components/home/Form/SelectTickers.tsx
rename to src/components/pages/home/form-card/SelectTickers.tsx
index 0d01e85..a0e4eb4 100644
--- a/src/components/home/Form/SelectTickers.tsx
+++ b/src/components/pages/home/form-card/SelectTickers.tsx
@@ -14,9 +14,8 @@ export function SelectTickers(props: SelectTickersProps) {
{getFundsStorage().map((f) => {
return (
diff --git a/src/components/pages/home/form-card/index.test.tsx b/src/components/pages/home/form-card/index.test.tsx
new file mode 100644
index 0000000..1d826f8
--- /dev/null
+++ b/src/components/pages/home/form-card/index.test.tsx
@@ -0,0 +1,27 @@
+import { beforeEach, describe, expect, test, vi } from 'vitest'
+import { cleanup, fireEvent, render } from '@testing-library/react'
+import React from 'react'
+import { FormCard } from './index'
+
+const addTickersMock = vi.fn()
+vi.mock('@/hooks/useTickers', () => ({
+ useTickers: vi.fn(() => ({
+ addTickers: addTickersMock,
+ })),
+}))
+
+describe('FormCard', () => {
+ beforeEach(cleanup)
+
+ test('renders the form card correctly', () => {
+ const { getByText, getByRole } = render( )
+ const addButton = getByRole('button', { name: 'Adicionar' })
+
+ expect(getByText('Fundos imobiliários')).toBeInTheDocument()
+ expect(getByText('Selecione os fundos imobiliários')).toBeInTheDocument()
+ expect(addButton).toBeInTheDocument()
+
+ fireEvent.click(addButton)
+ expect(addTickersMock).toHaveBeenCalledTimes(1)
+ })
+})
diff --git a/src/components/pages/home/form-card/index.tsx b/src/components/pages/home/form-card/index.tsx
new file mode 100644
index 0000000..ccdc2a9
--- /dev/null
+++ b/src/components/pages/home/form-card/index.tsx
@@ -0,0 +1,31 @@
+'use client'
+
+import { Button } from '@tremor/react'
+import { useState } from 'react'
+import { SelectTickers } from './SelectTickers'
+import { useTickers } from '@/hooks/useTickers'
+import { portfoliosInitialState } from '@/storage/portfoliosInitialState'
+import { Card } from '@/components/common/Card'
+
+export function FormCard() {
+ const { addTickers } = useTickers()
+
+ const [tickersSelected, setTickersSelected] = useState([])
+
+ const onTickersSelected = (value: string[]) => setTickersSelected(value)
+
+ const onSubmit = () => {
+ addTickers(tickersSelected, [portfoliosInitialState[0].id])
+ }
+
+ return (
+
+
+
+
+ Adicionar
+
+
+
+ )
+}
diff --git a/src/components/pages/home/history-chart/Chart.tsx b/src/components/pages/home/history-chart/Chart.tsx
new file mode 100644
index 0000000..3aff0ee
--- /dev/null
+++ b/src/components/pages/home/history-chart/Chart.tsx
@@ -0,0 +1,50 @@
+import { toCurrency } from '@/helpers/currency'
+import { AreaChart } from '@tremor/react'
+
+interface Props {
+ data: any[]
+ categories: string[]
+}
+
+export function Chart({ data = [], categories = [] }: Props) {
+ if (!data.length || !categories.length) {
+ return null
+ }
+
+ return (
+
+ )
+}
diff --git a/src/components/pages/home/history-chart/index.tsx b/src/components/pages/home/history-chart/index.tsx
new file mode 100644
index 0000000..aea0b6d
--- /dev/null
+++ b/src/components/pages/home/history-chart/index.tsx
@@ -0,0 +1,106 @@
+'use client'
+
+import { usePortfolioFetch } from '@/hooks/usePortfolioFetch'
+import { usePortfolios } from '@/hooks/usePortfolios'
+import { Card } from '../../../common/Card'
+import { TickerData } from '@/@types/TickersTypes'
+import { Chart } from './Chart'
+import { getLastDays } from '@/helpers/getLastDays'
+import { getLastMonths } from '@/helpers/getLastMonths'
+import { mergeArrayOfObjects } from '@/helpers/mergeArrayOfObjects'
+
+type Report = 'pricesHistory' | 'dividendsHistory'
+
+interface Props {
+ report: Report
+ metric: string
+ subtitle: string
+ title: string
+}
+const convertData = (
+ dateList: string[],
+ tickers: TickerData[],
+ report: Report,
+ metric: string,
+) => {
+ const data = dateList.map((date) => {
+ const rowData = tickers.map((ticker) => {
+ const reportData = ticker[report]
+ const result = reportData.find((history) => {
+ return history.date === date
+ })
+
+ const value = result ? result[metric] : 0
+ return { date, [ticker.ticker]: value }
+ })
+
+ return mergeArrayOfObjects(rowData)
+ })
+
+ return data.reverse().filter((row) => {
+ return Object.values(row).every((value) => {
+ if (String(value).includes('/')) {
+ return true
+ }
+
+ return value !== 0
+ })
+ })
+}
+
+const getCategories = (tickers: TickerData[]) => {
+ return tickers.map((ticker) => {
+ return ticker.ticker
+ })
+}
+
+export function HistoryCard({ report, title, subtitle, metric }: Props) {
+ const { tickers } = usePortfolios()
+
+ const dateList =
+ report === 'dividendsHistory' ? getLastMonths(12) : getLastDays(20)
+
+ const {
+ error,
+ isLoading,
+ data: tickersData,
+ } = usePortfolioFetch(tickers.filter((t) => !t.isHidden))
+
+ if (isLoading || !tickersData) {
+ return (
+
+ Carregando...
+
+ )
+ }
+
+ if (error) {
+ return (
+
+
+ Ocorreu um erro ao carregar os dados!
+
+
+ )
+ }
+
+ if (tickersData.length === 0) {
+ return (
+
+
+ Adicione os ativos na carteira para visualizar
+
+
+ )
+ }
+
+ const data = convertData(dateList, tickersData, report, metric)
+
+ const categories = getCategories(tickersData)
+
+ return (
+
+
+
+ )
+}
diff --git a/src/components/pages/home/stocks-cards/StockCard.tsx b/src/components/pages/home/stocks-cards/StockCard.tsx
new file mode 100644
index 0000000..6d8a60e
--- /dev/null
+++ b/src/components/pages/home/stocks-cards/StockCard.tsx
@@ -0,0 +1,25 @@
+import { cn } from '@/helpers/cn'
+import { Card, Text, BadgeDelta, Metric, CardProps } from '@tremor/react'
+
+interface Props extends CardProps {
+ title: string
+ points: number
+ percentage: number
+}
+
+export function StockCard({ title, points, percentage, className }: Props) {
+ const type = percentage > 0 ? 'increase' : 'decrease'
+ const color = percentage > 0 ? 'green' : 'red'
+
+ return (
+
+
+ {title}
+
+ {percentage}%
+
+
+ {points}
+
+ )
+}
diff --git a/src/components/pages/home/stocks-cards/index.tsx b/src/components/pages/home/stocks-cards/index.tsx
new file mode 100644
index 0000000..c8aef5c
--- /dev/null
+++ b/src/components/pages/home/stocks-cards/index.tsx
@@ -0,0 +1,10 @@
+import { StockCard } from './StockCard'
+
+export function StocksCards() {
+ return (
+
+
+
+
+ )
+}
diff --git a/src/components/pages/home/suggestions-card/index.tsx b/src/components/pages/home/suggestions-card/index.tsx
new file mode 100644
index 0000000..8d3f68c
--- /dev/null
+++ b/src/components/pages/home/suggestions-card/index.tsx
@@ -0,0 +1,65 @@
+'use client'
+
+import { Button, ListItem, List, Card } from '@tremor/react'
+import { useEffect, useState } from 'react'
+import { Suggestion } from '@/@types/SuggestionsTypes'
+import { usePortfolios } from '@/hooks/usePortfolios'
+import { ArrowsClockwise } from '@phosphor-icons/react'
+import { useTickers } from '@/hooks/useTickers'
+import { Title } from '@/components/common/Title'
+
+export function SuggestionsCard() {
+ const { addTickers } = useTickers()
+ const { getSuggestions, portfolioId } = usePortfolios()
+ const [suggestions, setSuggestions] = useState([])
+
+ const onReload = () => {
+ setSuggestions(getSuggestions())
+ }
+
+ const addTicker = (ticker: string) => {
+ addTickers([ticker], [portfolioId])
+
+ const newSuggestions = suggestions.filter((s) => s.ticker !== ticker)
+
+ if (newSuggestions.length) {
+ return setSuggestions(newSuggestions)
+ }
+
+ onReload()
+ }
+
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ useEffect(onReload, [])
+
+ return (
+
+
+ Talvez tenha interesse
+
+
+
+
+
+ {suggestions.map((suggestion) => (
+
+ {suggestion.ticker}
+
+ addTicker(suggestion.ticker)}
+ >
+ Adicionar
+
+
+
+ ))}
+
+
+ )
+}
diff --git a/src/components/pages/home/tickers-table/BtnRemove.tsx b/src/components/pages/home/tickers-table/BtnRemove.tsx
new file mode 100644
index 0000000..4b5f099
--- /dev/null
+++ b/src/components/pages/home/tickers-table/BtnRemove.tsx
@@ -0,0 +1,28 @@
+'use client'
+
+import { useTickers } from '@/hooks/useTickers'
+import { Button, Icon } from '@tremor/react'
+import { Ticker } from '@/@types/TickersTypes'
+import { Trash } from '@phosphor-icons/react'
+
+type Props = {
+ ticker: Ticker
+ isDisabled?: boolean
+}
+
+export function BtnRemove({ ticker, isDisabled = false }: Props) {
+ const { removeTicker } = useTickers()
+
+ return (
+ removeTicker(ticker)}
+ data-testid={`btn-remove-ticker-${ticker.ticker}`}
+ >
+
+
+ )
+}
diff --git a/src/components/pages/home/tickers-table/BtnVisibility.tsx b/src/components/pages/home/tickers-table/BtnVisibility.tsx
new file mode 100644
index 0000000..78777da
--- /dev/null
+++ b/src/components/pages/home/tickers-table/BtnVisibility.tsx
@@ -0,0 +1,29 @@
+'use client'
+
+import { useTickers } from '@/hooks/useTickers'
+import { Button, Icon } from '@tremor/react'
+import { Ticker } from '@/@types/TickersTypes'
+import { Eye, EyeClosed } from '@phosphor-icons/react'
+
+type Props = {
+ ticker: Ticker
+ isDisabled?: boolean
+}
+
+export function BtnVisibility({ ticker, isDisabled = false }: Props) {
+ const { setVisibility } = useTickers()
+ const icon = isDisabled || ticker.isHidden ? EyeClosed : Eye
+
+ return (
+ setVisibility(ticker)}
+ data-testid={`btn-visibility-ticker-${ticker.ticker}`}
+ >
+
+
+ )
+}
diff --git a/src/components/pages/home/tickers-table/Cell.tsx b/src/components/pages/home/tickers-table/Cell.tsx
new file mode 100644
index 0000000..fac8e00
--- /dev/null
+++ b/src/components/pages/home/tickers-table/Cell.tsx
@@ -0,0 +1,17 @@
+import { TableCell } from '@tremor/react'
+
+type Props = {
+ children: React.ReactNode
+ isHidden?: boolean
+}
+
+export function Cell({ children, isHidden = false }: Props) {
+ const className =
+ 'text-center ' + (isHidden ? 'text-gray-300 line-through;' : '')
+
+ return (
+ <>
+ {children}
+ >
+ )
+}
diff --git a/src/components/pages/home/tickers-table/HeaderCell.tsx b/src/components/pages/home/tickers-table/HeaderCell.tsx
new file mode 100644
index 0000000..f9766fc
--- /dev/null
+++ b/src/components/pages/home/tickers-table/HeaderCell.tsx
@@ -0,0 +1,19 @@
+import { TooltipHelper } from '@/components/common/TooltipHelper'
+import { TableHeaderCell } from '@tremor/react'
+import { ReactNode } from 'react'
+
+type Props = {
+ title: string
+ helper?: ReactNode
+}
+
+export function HeaderCell({ title, helper }: Props) {
+ return (
+
+
+ {title}
+ {helper && }
+
+
+ )
+}
diff --git a/src/components/pages/home/tickers-table/Helpers.tsx b/src/components/pages/home/tickers-table/Helpers.tsx
new file mode 100644
index 0000000..c6e677c
--- /dev/null
+++ b/src/components/pages/home/tickers-table/Helpers.tsx
@@ -0,0 +1,88 @@
+import { Callout } from '@tremor/react'
+import { ReactNode } from 'react'
+
+import { ExclamationCircleIcon } from '@heroicons/react/solid'
+
+interface HelperContentProps {
+ formula?: string
+ children: ReactNode
+}
+
+export const HelperContent = ({ children, formula }: HelperContentProps) => {
+ return (
+ <>
+ {children}
+ {formula && (
+
+ Cálculo:
+ {formula}
+
+ )}
+ >
+ )
+}
+
+export const HelperPVP = () => {
+ return (
+
+ Essa métrica reflete o montante que o mercado está disposto a investir no
+ patrimônio da empresa. Quando é inferior a 1, sugere que a empresa está
+ sendo comercializada por um valor inferior ao seu valor patrimonial real.
+
+ )
+}
+
+export const HelperDY = () => {
+ return (
+
+ O Dividend Yield é uma métrica financeira que representa a porcentagem do
+ dividendo distribuídos pela empresa nos últimos 12 meses em relação ao seu
+ preço de mercado por ação. É usado por investidores para avaliar o retorno
+ de dividendos potencial de um investimento em ações. Quanto maior o
+ Dividend Yield, maior o potencial de renda gerada pelos dividendos.
+
+ )
+}
+
+export const HelperLastDividend = () => {
+ return (
+
+ Último redimento pago
+
+ )
+}
+
+export const HelperSumDividends = () => {
+ return (
+
+ Soma dos redimentos pagos dos últimos 12 meses
+
+ )
+}
+
+export const HelperTicker = () => {
+ return (
+
+ Nome do indetificador do ativo da empresa, também conhecido como papel,
+ symbol, ticker, ticket, etc...
+
+ )
+}
+
+export const HelperPrice = () => {
+ return (
+
+ Valor atual do ativo
+
+ Por favor, esteja ciente de que os preços das ações exibidos podem ter
+ um atraso de até 15 minutos. Recomendamos consultar fontes financeiras
+ em tempo real para informações atualizadas.
+
+
+ )
+}
diff --git a/src/components/pages/home/tickers-table/Row.tsx b/src/components/pages/home/tickers-table/Row.tsx
new file mode 100644
index 0000000..6c797e6
--- /dev/null
+++ b/src/components/pages/home/tickers-table/Row.tsx
@@ -0,0 +1,73 @@
+'use client'
+
+import { TableCell, TableRow } from '@tremor/react'
+import { BtnVisibility } from './BtnVisibility'
+import { toCurrency } from '@/helpers/currency'
+import { Ticker } from '@/@types/TickersTypes'
+import { useTicker } from '@/hooks/useTicker'
+import { BtnRemove } from './BtnRemove'
+import { Cell } from './Cell'
+
+type Props = {
+ ticker: Ticker
+}
+
+export function Row({ ticker }: Props) {
+ const { data, error, isLoading } = useTicker(ticker.ticker)
+ const { isHidden } = ticker
+
+ const rowAttributes = {
+ 'data-testid': `row-ticker-${ticker.ticker}`,
+ }
+
+ if (isLoading) {
+ return (
+
+
+
+
+ |
+
+ Carregando...
+
+
+
+ )
+ }
+
+ if (error) {
+ return (
+
+
+
+
+ |
+
+ {ticker.ticker}
+
+
+ Infelizmente ocorreu um erro ao tentar carregar os dados desse ativo!
+
+
+ )
+ }
+
+ if (!data) {
+ return null
+ }
+
+ return (
+
+
+
+
+ |
+ {ticker.ticker} |
+ {toCurrency(data.price)} |
+ {data.pvp} |
+ {data.dy12}% |
+ {toCurrency(data.lastDividend)} |
+ {toCurrency(data.dividend12)} |
+
+ )
+}
diff --git a/src/components/pages/home/tickers-table/Table.tsx b/src/components/pages/home/tickers-table/Table.tsx
new file mode 100644
index 0000000..1140658
--- /dev/null
+++ b/src/components/pages/home/tickers-table/Table.tsx
@@ -0,0 +1,56 @@
+'use client'
+
+import {
+ Table as TremorTable,
+ TableBody,
+ TableHead,
+ TableRow,
+} from '@tremor/react'
+
+import { usePortfolios } from '@/hooks/usePortfolios'
+import { HeaderCell } from './HeaderCell'
+import { Row } from './Row'
+import {
+ HelperDY,
+ HelperLastDividend,
+ HelperPVP,
+ HelperPrice,
+ HelperSumDividends,
+ HelperTicker,
+} from './Helpers'
+
+export function Table() {
+ const { tickers } = usePortfolios()
+
+ return (
+ <>
+
+
+
+
+ } />
+ } />
+ } />
+ } />
+ } />
+ }
+ />
+
+
+
+ {tickers.map((t) => (
+
+ ))}
+
+
+
+ {tickers.length === 0 && (
+
+ Adicione os ativos na carteira para visualizar
+
+ )}
+ >
+ )
+}
diff --git a/src/components/pages/home/tickers-table/index.tsx b/src/components/pages/home/tickers-table/index.tsx
new file mode 100644
index 0000000..febd4f4
--- /dev/null
+++ b/src/components/pages/home/tickers-table/index.tsx
@@ -0,0 +1,10 @@
+import { Table } from './Table'
+import { Card } from '@/components/common/Card'
+
+export function TickersTable() {
+ return (
+
+
+
+ )
+}
diff --git a/src/components/pages/simulator/chart/index.tsx b/src/components/pages/simulator/chart/index.tsx
new file mode 100644
index 0000000..0715d9d
--- /dev/null
+++ b/src/components/pages/simulator/chart/index.tsx
@@ -0,0 +1,33 @@
+import { toCurrency } from '@/helpers/currency'
+import { SimulatorResult } from '@/helpers/simulatorCalculate'
+import { AreaChart } from '@tremor/react'
+
+interface Props {
+ results: SimulatorResult[]
+}
+
+export function Chart({ results = [] }: Props) {
+ if (!results.length) {
+ return null
+ }
+
+ const data = results.map((result) => ({
+ Mês: result.month,
+ 'Total Acumulado': result.totalAccumulated,
+ 'Total Investido': result.totalInvested,
+ }))
+
+ return (
+
+ )
+}
diff --git a/src/components/pages/simulator/input/index.tsx b/src/components/pages/simulator/input/index.tsx
new file mode 100644
index 0000000..9a0938d
--- /dev/null
+++ b/src/components/pages/simulator/input/index.tsx
@@ -0,0 +1,26 @@
+/* eslint-disable react/display-name */
+import { Text, TextInput } from '@tremor/react'
+import React, { ForwardedRef, forwardRef } from 'react'
+
+interface Props {
+ testid: string
+ title: string
+ defaultValue?: string
+ placeholder?: string
+}
+
+export const Input = forwardRef(
+ (props: Props, ref: ForwardedRef) => {
+ return (
+
+ {props.title}
+
+
+ )
+ },
+)
diff --git a/src/components/pages/simulator/metric/index.tsx b/src/components/pages/simulator/metric/index.tsx
new file mode 100644
index 0000000..b1f4f1b
--- /dev/null
+++ b/src/components/pages/simulator/metric/index.tsx
@@ -0,0 +1,17 @@
+import { Metric as MetricTremor, Text } from '@tremor/react'
+import React from 'react'
+
+interface Props {
+ testid: string
+ title: string
+ metric: string
+}
+
+export function Metric({ title, metric, testid }: Props) {
+ return (
+
+ {title}
+ {metric}
+
+ )
+}
diff --git a/src/components/pages/simulator/table/HeaderCell.tsx b/src/components/pages/simulator/table/HeaderCell.tsx
new file mode 100644
index 0000000..f9766fc
--- /dev/null
+++ b/src/components/pages/simulator/table/HeaderCell.tsx
@@ -0,0 +1,19 @@
+import { TooltipHelper } from '@/components/common/TooltipHelper'
+import { TableHeaderCell } from '@tremor/react'
+import { ReactNode } from 'react'
+
+type Props = {
+ title: string
+ helper?: ReactNode
+}
+
+export function HeaderCell({ title, helper }: Props) {
+ return (
+
+
+ {title}
+ {helper && }
+
+
+ )
+}
diff --git a/src/components/pages/simulator/table/Row.tsx b/src/components/pages/simulator/table/Row.tsx
new file mode 100644
index 0000000..a424b6b
--- /dev/null
+++ b/src/components/pages/simulator/table/Row.tsx
@@ -0,0 +1,29 @@
+'use client'
+
+import { TableCell, TableRow } from '@tremor/react'
+import { SimulatorResult } from '@/helpers/simulatorCalculate'
+import { toCurrency } from '@/helpers/currency'
+
+interface Props {
+ result: SimulatorResult
+}
+
+export function Row({ result }: Props) {
+ return (
+
+ {result.month}
+
+ {toCurrency(result.valueReceived)}
+
+
+ {toCurrency(result.totalInvested)}
+
+
+ {toCurrency(result.totalReceived)}
+
+
+ {toCurrency(result.totalAccumulated)}
+
+
+ )
+}
diff --git a/src/components/pages/simulator/table/index.tsx b/src/components/pages/simulator/table/index.tsx
new file mode 100644
index 0000000..b888f86
--- /dev/null
+++ b/src/components/pages/simulator/table/index.tsx
@@ -0,0 +1,35 @@
+import {
+ Table as TremorTable,
+ TableBody,
+ TableHead,
+ TableRow,
+} from '@tremor/react'
+
+import { HeaderCell } from './HeaderCell'
+import { Row } from './Row'
+import { SimulatorResult } from '@/helpers/simulatorCalculate'
+
+export interface TableProps {
+ results: SimulatorResult[]
+}
+
+export function Table({ results }: TableProps) {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ {results.map((result) => (
+
+ ))}
+
+
+ )
+}
diff --git a/src/config.test.ts b/src/config.test.ts
new file mode 100644
index 0000000..a8fe99d
--- /dev/null
+++ b/src/config.test.ts
@@ -0,0 +1,73 @@
+import { afterEach, beforeEach, describe, expect, test } from 'vitest'
+import { getConfigAPI } from './config'
+
+describe('getConfigAPI', () => {
+ beforeEach(() => {
+ process.env.NEXT_PUBLIC_API_KEY = 'test-key'
+ process.env.NEXT_PUBLIC_API_URL = 'https://api.example.com'
+ process.env.NEXT_PUBLIC_API_CACHE = 'no-cache'
+ process.env.NEXT_PUBLIC_API_REVALIDATE = '3600'
+ })
+
+ afterEach(() => {
+ delete process.env.NEXT_PUBLIC_API_KEY
+ delete process.env.NEXT_PUBLIC_API_URL
+ delete process.env.NEXT_PUBLIC_API_CACHE
+ delete process.env.NEXT_PUBLIC_API_REVALIDATE
+ })
+
+ test('should return config object with valid environment variables', () => {
+ const expectedConfig = {
+ key: 'test-key',
+ url: 'https://api.example.com',
+ cache: 'no-cache',
+ revalidate: 3600,
+ }
+
+ const config = getConfigAPI()
+
+ expect(config).toEqual(expectedConfig)
+ })
+
+ test('should throw an error if NEXT_PUBLIC_API_KEY is not found', () => {
+ delete process.env.NEXT_PUBLIC_API_KEY
+
+ expect(getConfigAPI).toThrowError('NEXT_PUBLIC_API_KEY not found')
+ })
+
+ test('should throw an error if NEXT_PUBLIC_API_URL is not found', () => {
+ delete process.env.NEXT_PUBLIC_API_URL
+
+ expect(getConfigAPI).toThrowError('NEXT_PUBLIC_API_URL not found')
+ })
+
+ test('should return default values if NEXT_PUBLIC_API_CACHE is not found', () => {
+ delete process.env.NEXT_PUBLIC_API_CACHE
+
+ const expectedConfig = {
+ key: 'test-key',
+ url: 'https://api.example.com',
+ cache: 'force-cache',
+ revalidate: 3600,
+ }
+
+ const config = getConfigAPI()
+
+ expect(config).toEqual(expectedConfig)
+ })
+
+ test('should return default values if NEXT_PUBLIC_API_REVALIDATE is not found', () => {
+ delete process.env.NEXT_PUBLIC_API_REVALIDATE
+
+ const expectedConfig = {
+ key: 'test-key',
+ url: 'https://api.example.com',
+ cache: 'no-cache',
+ revalidate: 3600,
+ }
+
+ const config = getConfigAPI()
+
+ expect(config).toEqual(expectedConfig)
+ })
+})
diff --git a/src/config.ts b/src/config.ts
index 903e065..e5b556b 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -1,3 +1,22 @@
+import { ToastContainerProps } from 'react-toastify'
+
+export const getConfigAPI = () => {
+ if (!process.env.NEXT_PUBLIC_API_KEY) {
+ throw new Error('NEXT_PUBLIC_API_KEY not found')
+ }
+
+ if (!process.env.NEXT_PUBLIC_API_URL) {
+ throw new Error('NEXT_PUBLIC_API_URL not found')
+ }
+
+ return {
+ key: process.env.NEXT_PUBLIC_API_KEY,
+ url: process.env.NEXT_PUBLIC_API_URL,
+ cache: (process.env.NEXT_PUBLIC_API_CACHE || 'force-cache') as RequestCache,
+ revalidate: parseInt(process.env.NEXT_PUBLIC_API_REVALIDATE || '3600'),
+ }
+}
+
export const config = {
app: {
metadata: {
@@ -8,13 +27,29 @@ export const config = {
},
},
- apis: {
- brapi: {
- host: 'https://brapi.dev/',
+ api: getConfigAPI(),
+
+ defaults: {
+ ticker: {
+ quantity: 1,
+ isHidden: false,
},
},
- cache: {
- time: 1000 * 60 * 15, // 15 minutes
+ suggestions: {
+ limit: 5,
},
+
+ toast: {
+ position: 'bottom-right',
+ autoClose: 3000,
+ hideProgressBar: false,
+ newestOnTop: false,
+ rtl: false,
+ pauseOnFocusLoss: true,
+ draggable: true,
+ closeOnClick: true,
+ pauseOnHover: true,
+ theme: 'light',
+ } as ToastContainerProps,
}
diff --git a/src/helpers/brapi.ts b/src/helpers/brapi.ts
deleted file mode 100644
index cab06b4..0000000
--- a/src/helpers/brapi.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Result, ResultQuotes } from '@/@types/QuotesTypes'
-
-export const brAPI = async (ticket: string): Promise => {
- try {
- const response = await fetch(
- `https://brapi.dev/api/quote/${ticket}?range=1y&interval=1mo&fundamental=true÷nds=true`,
- {
- cache: 'force-cache',
- next: {
- revalidate: 300
- }
- }
- )
-
- const quotes: ResultQuotes = await response.json()
-
- if (!quotes || !quotes.results[0]) {
- throw new Error('Nenhum resultado foi encontrado!')
- }
-
- return quotes.results[0]
- } catch (error) {
- return false;
- }
-}
diff --git a/src/helpers/cn.test.ts b/src/helpers/cn.test.ts
new file mode 100644
index 0000000..f8ace2b
--- /dev/null
+++ b/src/helpers/cn.test.ts
@@ -0,0 +1,9 @@
+import { describe, expect, test } from 'vitest'
+import { cn } from './cn'
+
+describe('cn', () => {
+ test('should return string with merged values', () => {
+ const result = cn('a', 'b', 'c')
+ expect(result).toBe('a b c')
+ })
+})
diff --git a/src/helpers/cn.ts b/src/helpers/cn.ts
new file mode 100644
index 0000000..d32b0fe
--- /dev/null
+++ b/src/helpers/cn.ts
@@ -0,0 +1,6 @@
+import { type ClassValue, clsx } from 'clsx'
+import { twMerge } from 'tailwind-merge'
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs))
+}
diff --git a/src/helpers/currency.test.ts b/src/helpers/currency.test.ts
new file mode 100644
index 0000000..1446f2a
--- /dev/null
+++ b/src/helpers/currency.test.ts
@@ -0,0 +1,12 @@
+import { describe, test, expect } from 'vitest'
+import { toCurrency } from './currency'
+
+describe('toCurrency', () => {
+ test('should return the correct currency format for a given number', () => {
+ const number = 1234.56
+ const expected = 'R$ 1.234,56'
+
+ const result = toCurrency(number)
+ expect(result).toBe(expected)
+ })
+})
diff --git a/src/helpers/currency.ts b/src/helpers/currency.ts
new file mode 100644
index 0000000..1e17d6d
--- /dev/null
+++ b/src/helpers/currency.ts
@@ -0,0 +1,9 @@
+export const toCurrency = (number: number) => {
+ return `R$ ${Intl.NumberFormat('pt-BR', {
+ currency: 'BRL',
+ minimumFractionDigits: 2,
+ maximumFractionDigits: 2,
+ })
+ .format(number)
+ .toString()}`
+}
diff --git a/src/helpers/getLastDays.test.ts b/src/helpers/getLastDays.test.ts
new file mode 100644
index 0000000..20ad4da
--- /dev/null
+++ b/src/helpers/getLastDays.test.ts
@@ -0,0 +1,14 @@
+import { describe, expect, test } from 'vitest'
+import { getLastDays } from './getLastDays'
+
+describe('getLastDays', () => {
+ test('should return array with last 20 days', () => {
+ const days = getLastDays()
+ expect(days.length).toBe(20)
+ })
+
+ test('should return array with custom days', () => {
+ const days = getLastDays(10)
+ expect(days.length).toBe(10)
+ })
+})
diff --git a/src/helpers/getLastDays.ts b/src/helpers/getLastDays.ts
new file mode 100644
index 0000000..d960149
--- /dev/null
+++ b/src/helpers/getLastDays.ts
@@ -0,0 +1,17 @@
+import moment from 'moment'
+
+export function getLastDays(count = 20): string[] {
+ const today = moment()
+ const days = []
+
+ for (let i = 0; days.length < count; i++) {
+ const currentDay = today.clone().subtract(i, 'days')
+
+ if (currentDay.isoWeekday() !== 6 && currentDay.isoWeekday() !== 7) {
+ const dayStr = currentDay.format('DD/MMM')
+ days.push(dayStr)
+ }
+ }
+
+ return days
+}
diff --git a/src/helpers/getLastMonths.test.ts b/src/helpers/getLastMonths.test.ts
new file mode 100644
index 0000000..e9f02a8
--- /dev/null
+++ b/src/helpers/getLastMonths.test.ts
@@ -0,0 +1,14 @@
+import { describe, expect, test } from 'vitest'
+import { getLastMonths } from './getLastMonths'
+
+describe('getLastMonths', () => {
+ test('should return array with last 12 months', () => {
+ const months = getLastMonths()
+ expect(months.length).toBe(12)
+ })
+
+ test('should return array with custom months', () => {
+ const months = getLastMonths(10)
+ expect(months.length).toBe(10)
+ })
+})
diff --git a/src/helpers/getLastMonths.ts b/src/helpers/getLastMonths.ts
new file mode 100644
index 0000000..8cd85af
--- /dev/null
+++ b/src/helpers/getLastMonths.ts
@@ -0,0 +1,14 @@
+import moment from 'moment'
+
+export function getLastMonths(count = 12): string[] {
+ const today = moment()
+ const months = []
+
+ for (let i = 0; i < count; i++) {
+ const currentMonth = today.clone().subtract(i, 'months')
+ const monthStr = currentMonth.format('MMM/YY')
+ months.push(monthStr)
+ }
+
+ return months
+}
diff --git a/src/helpers/investidor10.ts b/src/helpers/investidor10.ts
deleted file mode 100644
index fa9d61d..0000000
--- a/src/helpers/investidor10.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import * as cheerio from 'cheerio'
-
-export const investidor10API = async (ticket: string) => {
- // const response = await fetch(
- // `https://www.suno.com.br/fundos-imobiliarios/${ticket.toLowerCase()}/`,
- // )
-
- const result = {
- totalCotas: 0,
- valuePerCotas: 0,
- valuePatrimonial: 0,
- }
-
- // const data = await response.text()
- // const dom = cheerio.load(data)
-
- // #indicadores > div.row.gx-4 > div.col-12.gx-4.col-lg-4 > div > div:nth-child(1) > div > div.style__GaugeContent-sc-7o52xg-2.paGZO > div.style__GaugeValues-sc-7o52xg-5.iISrIB.col-6 > ul > li:nth-child(1) > span:nth-child(2)
-
-
- // const table = dom('//*[@id="indicadores"]/div[2]/div[1]/div/div[1]/div/div[2]/div[2]/ul/li[1]/span[2]').text()
- // console.log(table);
-
-
- // const valuePerCotas = table
- // .match(/VAL. PATRIMONIAL P\/ COTA\s*(R\$ ([\d.,]+))/)?.[2]
- // .replaceAll('.', '')
- // .replaceAll(',', '.')
- // .trim()
-
- // const totalCotas = table
- // .match(/COTAS EMITIDAS\s*([\d.]+)/)?.[1]
- // .replaceAll('.', '')
- // .trim()
-
- // if (totalCotas) {
- // result.totalCotas = Number(totalCotas)
- // }
-
- // if (valuePerCotas) {
- // result.valuePerCotas = Number(valuePerCotas)
- // }
-
- // result.valuePatrimonial = result.valuePerCotas * result.totalCotas
-
- return result
-}
diff --git a/src/helpers/mergeArrayOfObjects.test.ts b/src/helpers/mergeArrayOfObjects.test.ts
new file mode 100644
index 0000000..7218c91
--- /dev/null
+++ b/src/helpers/mergeArrayOfObjects.test.ts
@@ -0,0 +1,10 @@
+import { describe, expect, test } from 'vitest'
+import { mergeArrayOfObjects } from './mergeArrayOfObjects'
+
+describe('mergeArrayOfObjects', () => {
+ test('should return object with merged values', () => {
+ const arr = [{ a: 1 }, { b: 2 }, { c: 3 }, { a: 4 }]
+ const result = mergeArrayOfObjects(arr)
+ expect(result).toEqual({ a: 4, b: 2, c: 3 })
+ })
+})
diff --git a/src/helpers/mergeArrayOfObjects.ts b/src/helpers/mergeArrayOfObjects.ts
new file mode 100644
index 0000000..5caf9ba
--- /dev/null
+++ b/src/helpers/mergeArrayOfObjects.ts
@@ -0,0 +1,5 @@
+export function mergeArrayOfObjects(arr: object[]): object {
+ return arr.reduce((mergedObj, currentObj) => {
+ return { ...mergedObj, ...currentObj }
+ }, {})
+}
diff --git a/src/helpers/results.ts b/src/helpers/results.ts
deleted file mode 100644
index 5b523cc..0000000
--- a/src/helpers/results.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Result } from "@/@types/ResultsTypes";
-import { config } from "@/config";
-
-const validateRequestAt = (timestamp : number): boolean => {
- return timestamp + config.cache.time > new Date().getTime()
-}
-
-export const getResultByCache = (ticker: string, results: Result[]): Result | false => {
- const index = results.findIndex((result) => result.ticker === ticker)
-
- if (index === -1 || !validateRequestAt(results[index].requestedAt)) {
- return false
- }
-
- return results[index]
-}
-
diff --git a/src/helpers/simulatorCalculate.test.ts b/src/helpers/simulatorCalculate.test.ts
new file mode 100644
index 0000000..72cf5e8
--- /dev/null
+++ b/src/helpers/simulatorCalculate.test.ts
@@ -0,0 +1,35 @@
+import { describe, expect, test } from 'vitest'
+import { simulatorCalculate } from './simulatorCalculate'
+
+describe('simulatorCalculate', () => {
+ test('should calculate the correct result', () => {
+ const params = {
+ initialAmount: 1000,
+ investmentAmount: 100,
+ periodInMonths: 12,
+ taxePerYear: 5,
+ }
+
+ const result = simulatorCalculate(params)
+
+ expect(result.length).toBe(params.periodInMonths + 1)
+
+ expect(result[0].month).toBe(0)
+ expect(result[0].valueReceived).toBe(0)
+ expect(result[0].totalReceived).toBe(0)
+ expect(result[0].totalInvested).toBe(params.initialAmount)
+ expect(result[0].totalAccumulated).toBe(params.initialAmount)
+
+ expect(result[1].month).toBe(1)
+ expect(result[1].valueReceived).toBe(4.0741237836483535)
+ expect(result[1].totalReceived).toBe(4.0741237836483535)
+ expect(result[1].totalInvested).toBe(1100)
+ expect(result[1].totalAccumulated).toBe(1104.0741237836482)
+
+ expect(result[12].month).toBe(12)
+ expect(result[12].valueReceived).toBe(8.834425053241732)
+ expect(result[12].totalReceived).toBe(77.25775295972907)
+ expect(result[12].totalInvested).toBe(2200)
+ expect(result[12].totalAccumulated).toBe(2277.2577529597293)
+ })
+})
diff --git a/src/helpers/simulatorCalculate.ts b/src/helpers/simulatorCalculate.ts
new file mode 100644
index 0000000..e5f2eeb
--- /dev/null
+++ b/src/helpers/simulatorCalculate.ts
@@ -0,0 +1,61 @@
+export interface SimulatorResult {
+ month: number
+ valueReceived: number
+ totalReceived: number
+ totalInvested: number
+ totalAccumulated: number
+}
+
+export interface SimulatorParams {
+ initialAmount: number
+ investmentAmount: number
+ taxePerYear: number
+ periodInMonths: number
+}
+
+function annualToMonthlyRate(annualRate: number): number {
+ return Math.pow(1 + annualRate / 100, 1 / 12) - 1
+}
+
+export const simulatorCalculate = ({
+ initialAmount,
+ investmentAmount,
+ periodInMonths,
+ taxePerYear,
+}: SimulatorParams): SimulatorResult[] => {
+ const result: SimulatorResult[] = []
+
+ let totalAccumulated = initialAmount
+ let totalReceived = 0
+
+ for (let month = 0; month <= periodInMonths; month++) {
+ if (month === 0) {
+ result.push({
+ month,
+ valueReceived: 0,
+ totalReceived: 0,
+ totalInvested: initialAmount,
+ totalAccumulated: initialAmount,
+ })
+ continue
+ }
+
+ const monthlyRate = annualToMonthlyRate(taxePerYear)
+
+ const valueReceived = monthlyRate * totalAccumulated
+ totalAccumulated += investmentAmount + valueReceived
+ totalReceived += valueReceived
+
+ const totalInvested = investmentAmount * month + initialAmount
+
+ result.push({
+ month,
+ valueReceived,
+ totalReceived,
+ totalInvested,
+ totalAccumulated,
+ })
+ }
+
+ return result
+}
diff --git a/src/helpers/storage.ts b/src/helpers/storage.ts
new file mode 100644
index 0000000..4dc4b89
--- /dev/null
+++ b/src/helpers/storage.ts
@@ -0,0 +1,27 @@
+// import { dataInitialState } from "@/reducers/dataReducer"
+
+// export const storageActions = {
+// load: (state: DataType): DataType => {
+// const data = localStorage.getItem('data')
+
+// if (data) {
+// return JSON.parse(data)
+// }
+
+// return state
+// },
+
+// save: (state: DataType) => {
+// const data = JSON.stringify(state)
+// localStorage.setItem('data', data)
+
+// return state
+// },
+
+// clear: () => {
+// const data = JSON.stringify(dataInitialState)
+// localStorage.setItem('data', data)
+
+// return dataInitialState
+// }
+// }
diff --git a/src/helpers/tickers.ts b/src/helpers/tickers.ts
deleted file mode 100644
index 8ce33b3..0000000
--- a/src/helpers/tickers.ts
+++ /dev/null
@@ -1,114 +0,0 @@
-'use client'
-
-import { brAPI } from "./brapi"
-import { DividendsData, Result as Response } from "@/@types/QuotesTypes"
-import { Result } from "@/@types/ResultsTypes"
-import { round, uniqBy } from "lodash"
-import { Ticker } from "@/@types/TickersTypes"
-import { getResultByCache } from "./results"
-
-const getPrice = (data: Response): number => {
- return round(data.regularMarketPrice, 2)
-}
-
-const getPVP = (data: Response): number => {
-
- // valuePatrimonial: number,
- // // totalCotas: number,
- // if (totalCotas === 0) {
- // throw new Error('Não foi possível calcular o PVP!')
- // }
-
- // console.log(valuePatrimonial, regularMarketPrice)
-
- // return round(regularMarketPrice / (valuePatrimonial / totalCotas), 2)
-
- return 1
-}
-
-const getDY = (data: Response): number => {
- const total = data.dividendsData.cashDividends
- .filter((dividend) => dividend.label === 'RENDIMENTO')
- .reduce((acc, dividend) => acc + dividend.rate, 0)
-
- return round((total / data.regularMarketPrice) * 100, 2)
-}
-
-const getLastDividend = (data: Response): number => {
- const dividends = data.dividendsData.cashDividends.filter(
- (dividend) => dividend.label === 'RENDIMENTO',
- )
-
- return round(dividends[0].rate, 2)
-}
-
-export const getHistoryDividendsData = (data: DividendsData) => {
- return data.cashDividends
- .filter((dividend) => dividend.label === 'RENDIMENTO')
- .map((dividend) => {
- return {
- ...dividend,
-
- // ?
- // paymentDate: moment(dividend.paymentDate).format('MM/YYYY'),
- }
- })
- .reverse()
-}
-
-export const fetchTicker = async (ticker: string): Promise => {
- const brResultAPI = await brAPI(ticker)
- // const company = await investidor10API(ticker)
-
- const requestedAt = new Date().getTime()
-
- if (brResultAPI === false) {
- return {
- ticker,
- dy: 0,
- pvp: 0,
- price: 0,
- lastDividend: 0,
- requestedAt,
- isError: true,
- isLoading: false,
- }
- }
-
- return {
- ticker,
- dy: getDY(brResultAPI),
- pvp: getPVP(brResultAPI),
- price: getPrice(brResultAPI),
- lastDividend: getLastDividend(brResultAPI),
- requestedAt,
- isError: false,
- isLoading: false,
- }
-}
-
-export const getAllResults = async (tickers: Ticker[], results: Result[]): Promise => {
- const newResults: Result[] = []
-
- const uniqueTickers = uniqBy(tickers, 'ticker')
- const tickersToFetch = await Promise.allSettled(
- uniqueTickers.map(async (ticker) => {
- const result = getResultByCache(ticker.ticker, results)
-
- if (result) {
- console.log(ticker.ticker, 'from cache');
- return result
- }
-
- return await fetchTicker(ticker.ticker)
- })
- )
-
- tickersToFetch.forEach((tickerToFetch) => {
- if (tickerToFetch.status === 'fulfilled') {
- newResults.push(tickerToFetch.value)
- }
- })
-
- return newResults
-}
\ No newline at end of file
diff --git a/src/hooks/useData.ts b/src/hooks/useData.ts
index 640b527..927d139 100644
--- a/src/hooks/useData.ts
+++ b/src/hooks/useData.ts
@@ -1,14 +1,14 @@
-import { useContext } from "react"
+import { useContext } from 'react'
-import { DataContextType } from "@/@types/DataTypes"
-import { DataContext } from "@/providers/DataProvider"
+import { DataContextType } from '@/@types/ContextTypes'
+import { DataContext } from '@/providers/DataProvider'
export const useData = () => {
const context = useContext(DataContext) as DataContextType
if (!context) {
- throw new Error("useData must be used within a DataProvider");
+ throw new Error('useData must be used within a DataProvider')
}
return context
-}
\ No newline at end of file
+}
diff --git a/src/hooks/useModal.ts b/src/hooks/useModal.ts
new file mode 100644
index 0000000..4e91b5f
--- /dev/null
+++ b/src/hooks/useModal.ts
@@ -0,0 +1,14 @@
+import { useContext } from 'react'
+
+import { ModalContextType } from '@/@types/ContextTypes'
+import { ModalContext } from '@/providers/ModalProvider'
+
+export const useModal = () => {
+ const context = useContext(ModalContext) as ModalContextType
+
+ if (!context) {
+ throw new Error('useModal must be used within a ModalProvider')
+ }
+
+ return context
+}
diff --git a/src/hooks/usePortfolioFetch.ts b/src/hooks/usePortfolioFetch.ts
new file mode 100644
index 0000000..0ee95ae
--- /dev/null
+++ b/src/hooks/usePortfolioFetch.ts
@@ -0,0 +1,14 @@
+'use client'
+
+import useSWR from 'swr'
+import { Ticker, TickerData } from '@/@types/TickersTypes'
+
+export const usePortfolioFetch = (tickers: Ticker[]) => {
+ const symbols = tickers.map((ticker) => ticker.ticker).join(',')
+
+ const data = useSWR(`/api/tickers/${symbols}`, () => {
+ return fetch(`/api/tickers?tickers=${symbols}`).then((res) => res.json())
+ })
+
+ return data
+}
diff --git a/src/hooks/usePortfolios.ts b/src/hooks/usePortfolios.ts
index 0667370..f8807f7 100644
--- a/src/hooks/usePortfolios.ts
+++ b/src/hooks/usePortfolios.ts
@@ -1,21 +1,46 @@
-import { findIndex } from "lodash";
-import { useData } from "./useData";
+import { useContext } from 'react'
+import { find, findIndex, sampleSize } from 'lodash'
+import { useData } from './useData'
+
+import { PortfolioContext } from '@/providers/PortfolioProvider'
+import { PortfolioContextType } from '@/@types/ContextTypes'
+import { getFundsStorage } from '@/storage/funds'
+import { Suggestion } from '@/@types/SuggestionsTypes'
+import { config } from '@/config'
export const usePortfolios = () => {
- const { data } = useData()
+ const { portfolios } = useData()
+ const portfolio = useContext(PortfolioContext) as PortfolioContextType
- return {
- listPortfolios: () => data.portfolios.sort((a, b) => a.name.localeCompare(b.name)),
+ if (!portfolio) {
+ throw new Error('useData must be used within a DataProvider')
+ }
+ const { tickers, portfolioId } = portfolio
+
+ return {
+ portfolioId,
+ tickers,
+ listPortfolios: () => {
+ return portfolios.sort((a, b) => a.name.localeCompare(b.name))
+ },
getPortfolio: (id: string) => {
- const index = findIndex(data.portfolios, (portfolio) => portfolio.id === id);
+ const index = findIndex(portfolios, (portfolio) => portfolio.id === id)
- if(index === -1) {
+ if (index === -1) {
throw new Error(`Portfolio not found (${id})`)
}
- return data.portfolios[index]
- }
+ return portfolios[index]
+ },
+ getSuggestions: (): Suggestion[] => {
+ const funds = getFundsStorage()
+
+ const fundsFiltered = funds.filter(({ ticker }) => {
+ return typeof find(tickers, { ticker }) === 'undefined'
+ })
+ return sampleSize(fundsFiltered, config.suggestions.limit)
+ },
}
-}
\ No newline at end of file
+}
diff --git a/src/hooks/useResults.ts b/src/hooks/useResults.ts
deleted file mode 100644
index 05954ee..0000000
--- a/src/hooks/useResults.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Result } from "@/@types/ResultsTypes";
-import { useData } from "./useData";
-
-export const useResult = (ticker: string): Result => {
- const { results } = useData()
-
- const result = results.find((r) => r.ticker === ticker)
-
- if(!result) {
- return {
- ticker,
- dy: 0,
- pvp: 0,
- price: 0,
- lastDividend: 0,
- requestedAt: 0,
- isError: false,
- isLoading: true,
- }
- }
-
- return result
-}
\ No newline at end of file
diff --git a/src/hooks/useSidebar.ts b/src/hooks/useSidebar.ts
new file mode 100644
index 0000000..ea2bcfc
--- /dev/null
+++ b/src/hooks/useSidebar.ts
@@ -0,0 +1,14 @@
+import { useContext } from 'react'
+
+import { SidebarContextType } from '@/@types/ContextTypes'
+import { SidebarContext } from '@/providers/SidebarProvider'
+
+export const useSidebar = () => {
+ const context = useContext(SidebarContext) as SidebarContextType
+
+ if (!context) {
+ throw new Error('useSidebar must be used within a SidebarProvider')
+ }
+
+ return context
+}
diff --git a/src/hooks/useTicker.ts b/src/hooks/useTicker.ts
new file mode 100644
index 0000000..700dc0f
--- /dev/null
+++ b/src/hooks/useTicker.ts
@@ -0,0 +1,12 @@
+'use client'
+
+import useSWR from 'swr'
+import { TickerData } from '@/@types/TickersTypes'
+
+export const useTicker = (ticker: string) => {
+ const data = useSWR(`/api/ticker/${ticker}`, () => {
+ return fetch(`/api/ticker/${ticker}`).then((res) => res.json())
+ })
+
+ return data
+}
diff --git a/src/hooks/useTickers.ts b/src/hooks/useTickers.ts
index 6e40f58..66fc530 100644
--- a/src/hooks/useTickers.ts
+++ b/src/hooks/useTickers.ts
@@ -1,38 +1,42 @@
-import { Ticker } from "@/@types/TickersTypes"
-import { useData } from "./useData"
+import { Ticker } from '@/@types/TickersTypes'
+import { useData } from './useData'
+import { toast } from 'react-toastify'
export const useTickers = () => {
- const { data, dispatch } = useData()
+ const { tickers, dispatchTickers } = useData()
return {
addTickers: (tickersList: string[], portfoliosList: string[]) => {
- dispatch({
- type: 'TICKERS_INSERT', payload: {
- tickersList, portfoliosList
- }
+ if (!tickersList.length) {
+ toast(`Nenhum ativo selecionado!`, { type: 'error' })
+ return
+ }
+
+ if (tickersList.length === 1) {
+ toast(`${tickersList[0]} adicionado com sucesso!`, { type: 'success' })
+ } else {
+ toast(`${tickersList.length} ativos adicionados com sucesso!`, {
+ type: 'success',
+ })
+ }
+
+ dispatchTickers({
+ type: 'INSERT',
+ payload: { tickersList, portfoliosList },
})
},
- removeTicker: ({ ticker, portfolioId }: Ticker) => {
- dispatch({
- type: 'TICKERS_REMOVE', payload: {
- ticker, portfolioId
- }
- })
+ removeTicker: (ticker: Ticker) => {
+ toast(`${ticker.ticker} removido com sucesso!`, { type: 'success' })
+ dispatchTickers({ type: 'REMOVE', payload: ticker })
},
- setVisibility: ({ ticker, portfolioId, isHidden }: Ticker) => {
- dispatch({
- type: 'TICKERS_SET_VISIBILITY', payload: {
- ticker,
- portfolioId,
- isHidden: !isHidden
- }
- })
+ setVisibility: (ticker: Ticker) => {
+ dispatchTickers({ type: 'SET_VISIBILITY', payload: ticker })
},
listByPortfolioId: (id: string) => {
- return data.tickers.filter((t) => t.portfolioId === id)
- }
+ return tickers.filter((t) => t.portfolioId === id)
+ },
}
-}
\ No newline at end of file
+}
diff --git a/src/providers/AppProvider.tsx b/src/providers/AppProvider.tsx
new file mode 100644
index 0000000..c2356e6
--- /dev/null
+++ b/src/providers/AppProvider.tsx
@@ -0,0 +1,21 @@
+import { ReactNode } from 'react'
+
+import { SwrProvider } from './SwrProvider'
+import { ModalProvider } from './ModalProvider'
+import { DataProvider } from '@/providers/DataProvider'
+import { SidebarProvider } from '@/providers/SidebarProvider'
+import { PortfolioProvider } from '@/providers/PortfolioProvider'
+
+export function AppProvider({ children }: { children: ReactNode }) {
+ return (
+
+
+
+
+ {children}
+
+
+
+
+ )
+}
diff --git a/src/providers/DataProvider.tsx b/src/providers/DataProvider.tsx
index a92b696..63edc12 100644
--- a/src/providers/DataProvider.tsx
+++ b/src/providers/DataProvider.tsx
@@ -1,38 +1,38 @@
-"use client"
+'use client'
-import { ActionsType } from '@/@types/DataTypes';
-import { Result } from '@/@types/ResultsTypes';
-import { storageActions } from '@/actions/storageActions';
-import { getAllResults } from '@/helpers/tickers';
-import { dataInitialState, dataReducer } from '@/reducers/dataReducer';
-import { ReactNode, createContext, useEffect, useReducer, useState } from 'react'
+import { ReactNode, createContext, useEffect, useReducer } from 'react'
+import { portfoliosInitialState } from '@/storage/portfoliosInitialState'
+import { tickersInitialState } from '@/storage/tickersInitialState'
+import { portfoliosReducer } from '@/reducers/portfoliosReducer'
+import { tickersReducer } from '@/reducers/tickersReducer'
+import { DataContextType } from '@/@types/ContextTypes'
-export const DataContext = createContext({})
+export const DataContext = createContext({} as DataContextType)
export function DataProvider({ children }: { children: ReactNode }) {
- const [data, dispatchReducerData] = useReducer(dataReducer, dataInitialState);
- const [results, setResult] = useState([])
- const { save } = storageActions
+ const [tickers, dispatchTickers] = useReducer(
+ tickersReducer,
+ tickersInitialState,
+ )
- const dispatch = (action: ActionsType) => {
- console.log('dispatch', action);
- dispatchReducerData(action)
- }
+ const [portfolios, dispatchPortfolios] = useReducer(
+ portfoliosReducer,
+ portfoliosInitialState,
+ )
useEffect(() => {
- dispatch({ type: 'LOAD' });
+ // dispatch({ type: 'LOAD' });
}, [])
- useEffect(() => {
- getAllResults(data.tickers, results).then((results) => {
- setResult(results)
- })
-
- save(data)
- }, [data])
-
return (
-
+
{children}
)
diff --git a/src/providers/ModalProvider.tsx b/src/providers/ModalProvider.tsx
new file mode 100644
index 0000000..cef2b37
--- /dev/null
+++ b/src/providers/ModalProvider.tsx
@@ -0,0 +1,61 @@
+'use client'
+
+import { ReactNode, createContext, useState } from 'react'
+import { ModalContextType } from '@/@types/ContextTypes'
+
+export const ModalContext = createContext(
+ {} as ModalContextType,
+)
+
+export function ModalProvider({ children }: { children: ReactNode }) {
+ const [showModal, setShowModal] = useState(false)
+ const [title, setTitle] = useState()
+ const [content, setContent] = useState()
+ const [closeBtnTitle, setCloseBtnTitle] = useState()
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const [closeModalFn, setCloseModalFn] = useState<() => void | undefined>()
+
+ const closeModal: ModalContextType['closeModal'] = () => {
+ document.body.classList.remove('overflow-hidden')
+
+ setCloseBtnTitle(undefined)
+ setTitle(undefined)
+ setContent(undefined)
+
+ setShowModal(false)
+ }
+
+ const openModal: ModalContextType['openModal'] = ({
+ title,
+ content,
+ closeBtnTitle,
+ closeModal,
+ }) => {
+ document.body.classList.add('overflow-hidden')
+
+ setCloseBtnTitle(closeBtnTitle || 'Fechar')
+ setTitle(title)
+ setContent(content)
+ setShowModal(true)
+
+ if (closeModal) {
+ setCloseModalFn(closeModal)
+ }
+ }
+
+ return (
+
+ {children}
+
+ )
+}
diff --git a/src/providers/PortfolioProvider.tsx b/src/providers/PortfolioProvider.tsx
new file mode 100644
index 0000000..8786f00
--- /dev/null
+++ b/src/providers/PortfolioProvider.tsx
@@ -0,0 +1,37 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+'use client'
+
+import { ReactNode, createContext, useEffect, useState } from 'react'
+import { PortfolioContextType } from '@/@types/ContextTypes'
+import { Ticker } from '@/@types/TickersTypes'
+import { useTickers } from '@/hooks/useTickers'
+import { useData } from '@/hooks/useData'
+import { portfoliosInitialState } from '@/storage/portfoliosInitialState'
+
+export const PortfolioContext = createContext(
+ {} as PortfolioContextType,
+)
+
+export function PortfolioProvider({ children }: { children: ReactNode }) {
+ const { tickers } = useData()
+ const { listByPortfolioId } = useTickers()
+ const [portfolioTickers, setPortfolioTickers] = useState([])
+
+ const portfolioId = portfoliosInitialState[0].id
+
+ useEffect(() => {
+ const tickers = listByPortfolioId(portfolioId)
+ setPortfolioTickers(tickers)
+ }, [tickers])
+
+ return (
+
+ {children}
+
+ )
+}
diff --git a/src/providers/SidebarProvider.tsx b/src/providers/SidebarProvider.tsx
new file mode 100644
index 0000000..996e8a4
--- /dev/null
+++ b/src/providers/SidebarProvider.tsx
@@ -0,0 +1,35 @@
+'use client'
+
+import { ReactNode, createContext, useState } from 'react'
+import { SidebarContextType } from '@/@types/ContextTypes'
+
+export const SidebarContext = createContext(
+ {} as SidebarContextType,
+)
+
+export function SidebarProvider({ children }: { children: ReactNode }) {
+ const [isOpen, setIsOpen] = useState(false)
+
+ const toggleSidebar = () => {
+ setIsOpen(!isOpen)
+ }
+
+ const closeSidebar = () => {
+ console.log('closeSidebar')
+
+ setIsOpen(false)
+ }
+
+ const openSidebar = () => {
+ console.log('openSidebar')
+ setIsOpen(true)
+ }
+
+ return (
+
+ {children}
+
+ )
+}
diff --git a/src/providers/SwrProvider.tsx b/src/providers/SwrProvider.tsx
new file mode 100644
index 0000000..c2b8472
--- /dev/null
+++ b/src/providers/SwrProvider.tsx
@@ -0,0 +1,22 @@
+'use client'
+
+import { ReactNode } from 'react'
+import { SWRConfig } from 'swr'
+
+export function SwrProvider({ children }: { children: ReactNode }) {
+ const provider = () => new Map()
+
+ return (
+
+ {children}
+
+ )
+}
diff --git a/src/reducers/dataReducer.ts b/src/reducers/dataReducer.ts
deleted file mode 100644
index 9bb69cd..0000000
--- a/src/reducers/dataReducer.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-import { portfoliosActions } from '@/actions/portfoliosActions'
-import { ActionsType, DataType } from '@/@types/DataTypes'
-import { storageActions } from '@/actions/storageActions'
-import { tickersActions } from '@/actions/tickersActions'
-
-export const dataInitialState: DataType = {
- tickers: [
- {
- "ticker": "AAGR11",
- "portfolioId": "5a31ee47-6b2f-4586-8fb9-983010149ec7",
- "quantity": 0,
- "isHidden": false,
- },
- {
- "ticker": "AAZQ11",
- "portfolioId": "5a31ee47-6b2f-4586-8fb9-983010149ec7",
- "quantity": 0,
- "isHidden": false,
- },
- {
- "ticker": "MXRF11",
- "portfolioId": "5a31ee47-6b2f-4586-8fb9-983010149ec7",
- "quantity": 0,
- "isHidden": false,
- }
- ],
- portfolios: [
- { id: '5a31ee47-6b2f-4586-8fb9-983010149ec7', name: 'Carteira #1' },
- ],
-}
-
-export const dataReducer = (state: DataType, action: ActionsType): DataType => {
- switch (action.type) {
- case 'LOAD': {
- return storageActions.load(state)
- }
-
- case 'CLEAR': {
- return storageActions.clear()
- }
-
- case 'PORTFOLIOS_INSERT': {
- return portfoliosActions.insert(state, action.payload)
- }
-
- case 'PORTFOLIOS_UPDATE': {
- return portfoliosActions.insert(state, action.payload)
- }
-
- case 'PORTFOLIOS_REMOVE': {
- return portfoliosActions.insert(state, action.payload)
- }
-
- case 'TICKERS_INSERT': {
- return tickersActions.insert(state, action.payload)
- }
-
- case 'TICKERS_UPDATE': {
- return tickersActions.update(state, action.payload)
- }
-
- case 'TICKERS_REMOVE': {
- return tickersActions.remove(state, action.payload)
- }
-
- case 'TICKERS_SET_VISIBILITY': {
- return tickersActions.setVisibility(state, action.payload)
- }
- }
-
-}
\ No newline at end of file
diff --git a/src/reducers/portfoliosReducer.ts b/src/reducers/portfoliosReducer.ts
new file mode 100644
index 0000000..c3ff716
--- /dev/null
+++ b/src/reducers/portfoliosReducer.ts
@@ -0,0 +1,22 @@
+import { portfoliosActions } from '@/actions/portfoliosActions'
+import { PortfolioActionType } from '@/@types/ContextTypes'
+import { Portfolio } from '@/@types/PortfoliosTypes'
+
+export const portfoliosReducer = (
+ state: Portfolio[],
+ action: PortfolioActionType,
+): Portfolio[] => {
+ switch (action.type) {
+ case 'INSERT': {
+ return portfoliosActions.insert(state, action.payload)
+ }
+
+ case 'UPDATE': {
+ return portfoliosActions.update(state, action.payload)
+ }
+
+ case 'REMOVE': {
+ return portfoliosActions.remove(state, action.payload)
+ }
+ }
+}
diff --git a/src/reducers/tickersReducer.ts b/src/reducers/tickersReducer.ts
new file mode 100644
index 0000000..4a37d7e
--- /dev/null
+++ b/src/reducers/tickersReducer.ts
@@ -0,0 +1,25 @@
+import { tickersActions } from '@/actions/tickersActions'
+import { TickerActionType } from '@/@types/ContextTypes'
+import { Ticker } from '@/@types/TickersTypes'
+
+export const tickersReducer = (
+ state: Ticker[],
+ action: TickerActionType,
+): Ticker[] => {
+ switch (action.type) {
+ case 'INSERT': {
+ return tickersActions.insert(state, action.payload)
+ }
+
+ case 'REMOVE': {
+ return tickersActions.remove(state, action.payload)
+ }
+
+ case 'SET_VISIBILITY': {
+ return tickersActions.update(state, {
+ ...action.payload,
+ isHidden: !action.payload.isHidden,
+ })
+ }
+ }
+}
diff --git a/src/services/TickerService.test.ts b/src/services/TickerService.test.ts
new file mode 100644
index 0000000..60476f4
--- /dev/null
+++ b/src/services/TickerService.test.ts
@@ -0,0 +1,75 @@
+import { describe, expect, test } from 'vitest'
+import { TickerService } from './TickerService'
+
+const ticker = 'XPLG11'
+
+describe('TickerService', () => {
+ test('should return result with success', async () => {
+ const service = new TickerService(ticker)
+ const result = await service.fetch()
+
+ expect(result).toBeDefined()
+ expect(result.ticker).toBe(ticker)
+ expect(result.pvp).toBe(1.05)
+ expect(result.dy12).toBe(8.5)
+ expect(result.price).toBe(107)
+ expect(result.dividend12).toBe(9.1)
+ expect(result.lastDividend).toBe(0.74)
+ expect(result.dividendsHistory.length).toBe(12)
+ expect(result.pricesHistory.length).toBeTruthy()
+ })
+
+ test('should return error when ticker is invalid', async () => {
+ await expect(async () => {
+ return new TickerService('invalid').fetch()
+ }).rejects.toThrowError('Ocorreu um erro ao buscar o ticker')
+ })
+
+ test('should return error when ticker is empty', async () => {
+ await expect(async () => {
+ return new TickerService('').fetch()
+ }).rejects.toThrowError('Ocorreu um erro ao buscar o ticker')
+ })
+
+ test('should return error when ticker is null', async () => {
+ await expect(async () => {
+ return new TickerService(null as any).fetch()
+ }).rejects.toThrowError('Ocorreu um erro ao buscar o ticker')
+ })
+
+ test('should return dividendsHistory with array of object', async () => {
+ const service = new TickerService(ticker)
+ const result = await service.fetch()
+
+ expect(result).toBeDefined()
+ expect(result.dividendsHistory.length).toBe(12)
+
+ expect(result.dividendsHistory[0]).toEqual({
+ amount: 0.78,
+ date: 'Nov/23',
+ timestamp: 1700103600000,
+ })
+
+ expect(result.dividendsHistory[11]).toEqual({
+ amount: 0.74,
+ date: 'Dec/22',
+ timestamp: 1670986800000,
+ })
+ })
+
+ test('should return pricesHistory with array of object', async () => {
+ const service = new TickerService(ticker)
+ const result = await service.fetch()
+
+ expect(result).toBeDefined()
+ expect(result.pricesHistory.length).toBeTruthy()
+
+ expect(result.pricesHistory[0]).toEqual({
+ timestamp: 1700535600000,
+ avg: 107.7,
+ min: 107,
+ max: 108.56,
+ date: '21/Nov',
+ })
+ })
+})
diff --git a/src/services/TickerService.ts b/src/services/TickerService.ts
new file mode 100644
index 0000000..3962a8e
--- /dev/null
+++ b/src/services/TickerService.ts
@@ -0,0 +1,179 @@
+import moment from 'moment'
+import { min, max, mean, round, last } from 'lodash'
+
+import { config } from '@/config'
+import { TickerData } from '@/@types/TickersTypes'
+import {
+ DividendsHistory,
+ ResultsPriceHistory,
+ PriceHistory,
+} from '@/@types/TickerServiceTypes'
+
+type Params = Record
+
+export class TickerService {
+ private ticker: string
+ private apiKey: string
+ private apiBaseUrl: string
+
+ private fetchConfig: RequestInit
+
+ constructor(ticker: string) {
+ const { revalidate, cache, key, url } = config.api
+
+ this.ticker = ticker
+ this.apiKey = key
+ this.apiBaseUrl = url
+
+ this.fetchConfig = {
+ method: 'GET',
+ cache,
+ next: {
+ revalidate,
+ },
+ }
+ }
+
+ private getURL(endpoint: string, params: Params): string {
+ const queryString = new URLSearchParams({
+ ...params,
+ key: this.apiKey,
+ format: 'json-cors',
+ })
+
+ const url = new URL(this.apiBaseUrl)
+
+ url.pathname = endpoint
+ url.search = queryString.toString()
+
+ return url.toString()
+ }
+
+ public async fetch(): Promise {
+ try {
+ const { price, pvp } = await this.fetchTicker(this.ticker)
+ const pricesHistory = await this.fetchPricesHistory(this.ticker)
+ const dividendsHistory = await this.fetchDividendsHistory(this.ticker)
+
+ const { dividend12, dy12, lastDividend } = this.getDividendsByHistory(
+ dividendsHistory,
+ price,
+ )
+
+ return {
+ pvp,
+ dy12,
+ price,
+ dividend12,
+ lastDividend,
+ dividendsHistory,
+ pricesHistory,
+ ticker: this.ticker,
+ }
+ } catch (_err) {
+ throw new Error('Ocorreu um erro ao buscar o ticker')
+ }
+ }
+
+ private async fetchTicker(symbol: string) {
+ const url = this.getURL('finance/stock_price', { symbol })
+
+ const response = await fetch(url, this.fetchConfig)
+
+ const data = await response.json()
+ const result = data.results[symbol] || {
+ financials: { price_to_book_ratio: 0 },
+ price: 0,
+ }
+
+ return {
+ price: round(Number(result.price || 0), 2),
+ pvp: round(result.financials?.price_to_book_ratio || 0, 2),
+ }
+ }
+
+ private async fetchDividendsHistory(symbol: string) {
+ const url = this.getURL('finance/stock_dividends', { symbol })
+
+ const response = await fetch(url, this.fetchConfig)
+
+ const data = await response.json()
+ const dividends = data.results[symbol]
+
+ if (dividends.error) {
+ throw new Error(dividends.message)
+ }
+
+ return dividends
+ .filter((result: any) => {
+ const tickerCode = `BR${symbol.substring(0, 4)}CTF`
+ return (
+ result.label === 'Rendimento' && result.isin_code.includes(tickerCode)
+ )
+ })
+ .map((result: any) => {
+ const timestamp = new Date(
+ result.payment_date + ' 00:00:00 GMT-0300',
+ ).getTime()
+
+ const date = moment(timestamp).format('MMM/YY')
+ const amount = round(Number(result.amount), 2)
+
+ return { timestamp, amount, date }
+ })
+ .splice(0, 12)
+ }
+
+ private async fetchPricesHistory(symbol: string) {
+ const url = this.getURL('finance/historical/stocks', {
+ days_ago: '20',
+ symbol,
+ })
+
+ const response = await fetch(url, this.fetchConfig)
+ const data = await response.json()
+
+ return this.getPricesHistory(data.results)
+ }
+
+ private getPricesHistory(prices: ResultsPriceHistory): PriceHistory[] {
+ const history: PriceHistory[] = []
+
+ for (const day in prices) {
+ const pricesDaily = Object.values(prices[day][this.ticker])
+ const timestamp = new Date(`${day} 00:00:00 GMT-0300`).getTime()
+
+ history.push({
+ timestamp,
+ avg: round(mean(pricesDaily) || 0, 2),
+ min: round(min(pricesDaily) || 0, 2),
+ max: round(max(pricesDaily) || 0, 2),
+ date: moment(timestamp).format('DD/MMM'),
+ })
+ }
+
+ return history
+ }
+
+ private getDividendsByHistory(
+ dividendsHistory: DividendsHistory[],
+ price: number,
+ ) {
+ const lastDividend = round(last(dividendsHistory)?.amount || 0, 2)
+
+ const dividend12 = round(
+ dividendsHistory.reduce((acc, dividend) => {
+ return acc + dividend.amount
+ }, 0),
+ 2,
+ )
+
+ const dy12 = round((dividend12 / price) * 100, 2)
+
+ return {
+ dy12,
+ dividend12,
+ lastDividend,
+ }
+ }
+}
diff --git a/src/storage/portfoliosInitialState.ts b/src/storage/portfoliosInitialState.ts
new file mode 100644
index 0000000..90dfb2a
--- /dev/null
+++ b/src/storage/portfoliosInitialState.ts
@@ -0,0 +1,5 @@
+import { Portfolio } from '@/@types/PortfoliosTypes'
+
+export const portfoliosInitialState: Portfolio[] = [
+ { id: '5a31ee47-6b2f-4586-8fb9-983010149ec7', name: 'Carteira #1' },
+]
diff --git a/src/storage/tickersInitialState.ts b/src/storage/tickersInitialState.ts
new file mode 100644
index 0000000..4fe1e8f
--- /dev/null
+++ b/src/storage/tickersInitialState.ts
@@ -0,0 +1,11 @@
+import { Ticker } from '@/@types/TickersTypes'
+import { config } from '@/config'
+import { portfoliosInitialState } from './portfoliosInitialState'
+
+const portfolioId = portfoliosInitialState[0].id
+
+export const tickersInitialState: Ticker[] = [
+ { ...config.defaults.ticker, portfolioId, ticker: 'XPLG11' },
+ { ...config.defaults.ticker, portfolioId, ticker: 'XPML11' },
+ { ...config.defaults.ticker, portfolioId, ticker: 'PVBI11' },
+]
diff --git a/src/styles/globals.css b/src/styles/globals.css
index b5c61c9..399284a 100644
--- a/src/styles/globals.css
+++ b/src/styles/globals.css
@@ -1,3 +1,11 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
+
+:root {
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-text-size-adjust: 100%;
+}
diff --git a/src/styles/output.css b/src/styles/output.css
deleted file mode 100644
index 2fa0e92..0000000
--- a/src/styles/output.css
+++ /dev/null
@@ -1,14805 +0,0 @@
-/*
-! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com
-*/
-
-/*
-1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
-2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
-*/
-
-*,
-::before,
-::after {
- box-sizing: border-box;
- /* 1 */
- border-width: 0;
- /* 2 */
- border-style: solid;
- /* 2 */
- border-color: #e5e7eb;
- /* 2 */
-}
-
-::before,
-::after {
- --tw-content: '';
-}
-
-/*
-1. Use a consistent sensible line-height in all browsers.
-2. Prevent adjustments of font size after orientation changes in iOS.
-3. Use a more readable tab size.
-4. Use the user's configured `sans` font-family by default.
-5. Use the user's configured `sans` font-feature-settings by default.
-6. Use the user's configured `sans` font-variation-settings by default.
-*/
-
-html {
- line-height: 1.5;
- /* 1 */
- -webkit-text-size-adjust: 100%;
- /* 2 */
- -moz-tab-size: 4;
- /* 3 */
- -o-tab-size: 4;
- tab-size: 4;
- /* 3 */
- font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
- /* 4 */
- font-feature-settings: normal;
- /* 5 */
- font-variation-settings: normal;
- /* 6 */
-}
-
-/*
-1. Remove the margin in all browsers.
-2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
-*/
-
-body {
- margin: 0;
- /* 1 */
- line-height: inherit;
- /* 2 */
-}
-
-/*
-1. Add the correct height in Firefox.
-2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
-3. Ensure horizontal rules are visible by default.
-*/
-
-hr {
- height: 0;
- /* 1 */
- color: inherit;
- /* 2 */
- border-top-width: 1px;
- /* 3 */
-}
-
-/*
-Add the correct text decoration in Chrome, Edge, and Safari.
-*/
-
-abbr:where([title]) {
- -webkit-text-decoration: underline dotted;
- text-decoration: underline dotted;
-}
-
-/*
-Remove the default font size and weight for headings.
-*/
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-size: inherit;
- font-weight: inherit;
-}
-
-/*
-Reset links to optimize for opt-in styling instead of opt-out.
-*/
-
-a {
- color: inherit;
- text-decoration: inherit;
-}
-
-/*
-Add the correct font weight in Edge and Safari.
-*/
-
-b,
-strong {
- font-weight: bolder;
-}
-
-/*
-1. Use the user's configured `mono` font family by default.
-2. Correct the odd `em` font sizing in all browsers.
-*/
-
-code,
-kbd,
-samp,
-pre {
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
- /* 1 */
- font-size: 1em;
- /* 2 */
-}
-
-/*
-Add the correct font size in all browsers.
-*/
-
-small {
- font-size: 80%;
-}
-
-/*
-Prevent `sub` and `sup` elements from affecting the line height in all browsers.
-*/
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-/*
-1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
-2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
-3. Remove gaps between table borders by default.
-*/
-
-table {
- text-indent: 0;
- /* 1 */
- border-color: inherit;
- /* 2 */
- border-collapse: collapse;
- /* 3 */
-}
-
-/*
-1. Change the font styles in all browsers.
-2. Remove the margin in Firefox and Safari.
-3. Remove default padding in all browsers.
-*/
-
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: inherit;
- /* 1 */
- font-size: 100%;
- /* 1 */
- font-weight: inherit;
- /* 1 */
- line-height: inherit;
- /* 1 */
- color: inherit;
- /* 1 */
- margin: 0;
- /* 2 */
- padding: 0;
- /* 3 */
-}
-
-/*
-Remove the inheritance of text transform in Edge and Firefox.
-*/
-
-button,
-select {
- text-transform: none;
-}
-
-/*
-1. Correct the inability to style clickable types in iOS and Safari.
-2. Remove default button styles.
-*/
-
-button,
-[type='button'],
-[type='reset'],
-[type='submit'] {
- -webkit-appearance: button;
- /* 1 */
- background-color: transparent;
- /* 2 */
- background-image: none;
- /* 2 */
-}
-
-/*
-Use the modern Firefox focus style for all focusable elements.
-*/
-
-:-moz-focusring {
- outline: auto;
-}
-
-/*
-Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
-*/
-
-:-moz-ui-invalid {
- box-shadow: none;
-}
-
-/*
-Add the correct vertical alignment in Chrome and Firefox.
-*/
-
-progress {
- vertical-align: baseline;
-}
-
-/*
-Correct the cursor style of increment and decrement buttons in Safari.
-*/
-
-::-webkit-inner-spin-button,
-::-webkit-outer-spin-button {
- height: auto;
-}
-
-/*
-1. Correct the odd appearance in Chrome and Safari.
-2. Correct the outline style in Safari.
-*/
-
-[type='search'] {
- -webkit-appearance: textfield;
- /* 1 */
- outline-offset: -2px;
- /* 2 */
-}
-
-/*
-Remove the inner padding in Chrome and Safari on macOS.
-*/
-
-::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/*
-1. Correct the inability to style clickable types in iOS and Safari.
-2. Change font properties to `inherit` in Safari.
-*/
-
-::-webkit-file-upload-button {
- -webkit-appearance: button;
- /* 1 */
- font: inherit;
- /* 2 */
-}
-
-/*
-Add the correct display in Chrome and Safari.
-*/
-
-summary {
- display: list-item;
-}
-
-/*
-Removes the default spacing and border for appropriate elements.
-*/
-
-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;
-}
-
-/*
-Prevent resizing textareas horizontally by default.
-*/
-
-textarea {
- resize: vertical;
-}
-
-/*
-1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
-2. Set the default placeholder color to the user's configured gray 400 color.
-*/
-
-input::-moz-placeholder, textarea::-moz-placeholder {
- opacity: 1;
- /* 1 */
- color: #9ca3af;
- /* 2 */
-}
-
-input::placeholder,
-textarea::placeholder {
- opacity: 1;
- /* 1 */
- color: #9ca3af;
- /* 2 */
-}
-
-/*
-Set the default cursor for buttons.
-*/
-
-button,
-[role="button"] {
- cursor: pointer;
-}
-
-/*
-Make sure disabled buttons don't get the pointer cursor.
-*/
-
-:disabled {
- cursor: default;
-}
-
-/*
-1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
-2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
- This can trigger a poorly considered lint error in some tools but is included by design.
-*/
-
-img,
-svg,
-video,
-canvas,
-audio,
-iframe,
-embed,
-object {
- display: block;
- /* 1 */
- vertical-align: middle;
- /* 2 */
-}
-
-/*
-Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
-*/
-
-img,
-video {
- max-width: 100%;
- height: auto;
-}
-
-/* Make elements with the HTML hidden attribute stay hidden by default */
-
-[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 / 0.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: ;
-}
-
-::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 / 0.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: ;
-}
-
-.absolute {
- position: absolute;
-}
-
-.relative {
- position: relative;
-}
-
-.sticky {
- position: sticky;
-}
-
-.bottom-0 {
- bottom: 0px;
-}
-
-.bottom-0\.5 {
- bottom: 0.125rem;
-}
-
-.bottom-1 {
- bottom: 0.25rem;
-}
-
-.bottom-1\.5 {
- bottom: 0.375rem;
-}
-
-.bottom-2 {
- bottom: 0.5rem;
-}
-
-.bottom-2\.5 {
- bottom: 0.625rem;
-}
-
-.bottom-3 {
- bottom: 0.75rem;
-}
-
-.bottom-3\.5 {
- bottom: 0.875rem;
-}
-
-.bottom-4 {
- bottom: 1rem;
-}
-
-.bottom-6 {
- bottom: 1.5rem;
-}
-
-.bottom-8 {
- bottom: 2rem;
-}
-
-.bottom-px {
- bottom: 1px;
-}
-
-.left-0 {
- left: 0px;
-}
-
-.left-0\.5 {
- left: 0.125rem;
-}
-
-.left-1 {
- left: 0.25rem;
-}
-
-.left-1\.5 {
- left: 0.375rem;
-}
-
-.left-1\/2 {
- left: 50%;
-}
-
-.left-2 {
- left: 0.5rem;
-}
-
-.left-2\.5 {
- left: 0.625rem;
-}
-
-.left-3 {
- left: 0.75rem;
-}
-
-.left-3\.5 {
- left: 0.875rem;
-}
-
-.left-4 {
- left: 1rem;
-}
-
-.left-6 {
- left: 1.5rem;
-}
-
-.left-8 {
- left: 2rem;
-}
-
-.left-px {
- left: 1px;
-}
-
-.right-0 {
- right: 0px;
-}
-
-.right-0\.5 {
- right: 0.125rem;
-}
-
-.right-1 {
- right: 0.25rem;
-}
-
-.right-1\.5 {
- right: 0.375rem;
-}
-
-.right-1\/2 {
- right: 50%;
-}
-
-.right-2 {
- right: 0.5rem;
-}
-
-.right-2\.5 {
- right: 0.625rem;
-}
-
-.right-3 {
- right: 0.75rem;
-}
-
-.right-3\.5 {
- right: 0.875rem;
-}
-
-.right-4 {
- right: 1rem;
-}
-
-.right-6 {
- right: 1.5rem;
-}
-
-.right-8 {
- right: 2rem;
-}
-
-.right-px {
- right: 1px;
-}
-
-.top-0 {
- top: 0px;
-}
-
-.top-0\.5 {
- top: 0.125rem;
-}
-
-.top-1 {
- top: 0.25rem;
-}
-
-.top-1\.5 {
- top: 0.375rem;
-}
-
-.top-2 {
- top: 0.5rem;
-}
-
-.top-2\.5 {
- top: 0.625rem;
-}
-
-.top-3 {
- top: 0.75rem;
-}
-
-.top-3\.5 {
- top: 0.875rem;
-}
-
-.top-4 {
- top: 1rem;
-}
-
-.top-6 {
- top: 1.5rem;
-}
-
-.top-8 {
- top: 2rem;
-}
-
-.top-px {
- top: 1px;
-}
-
-.z-10 {
- z-index: 10;
-}
-
-.z-20 {
- z-index: 20;
-}
-
-.col-span-1 {
- grid-column: span 1 / span 1;
-}
-
-.col-span-10 {
- grid-column: span 10 / span 10;
-}
-
-.col-span-11 {
- grid-column: span 11 / span 11;
-}
-
-.col-span-12 {
- grid-column: span 12 / span 12;
-}
-
-.col-span-2 {
- grid-column: span 2 / span 2;
-}
-
-.col-span-3 {
- grid-column: span 3 / span 3;
-}
-
-.col-span-4 {
- grid-column: span 4 / span 4;
-}
-
-.col-span-5 {
- grid-column: span 5 / span 5;
-}
-
-.col-span-6 {
- grid-column: span 6 / span 6;
-}
-
-.col-span-7 {
- grid-column: span 7 / span 7;
-}
-
-.col-span-8 {
- grid-column: span 8 / span 8;
-}
-
-.col-span-9 {
- grid-column: span 9 / span 9;
-}
-
-.col-start-2 {
- grid-column-start: 2;
-}
-
-.col-start-3 {
- grid-column-start: 3;
-}
-
-.col-start-4 {
- grid-column-start: 4;
-}
-
-.col-start-5 {
- grid-column-start: 5;
-}
-
-.col-start-6 {
- grid-column-start: 6;
-}
-
-.col-start-7 {
- grid-column-start: 7;
-}
-
-.m-4 {
- margin: 1rem;
-}
-
-.mx-auto {
- margin-left: auto;
- margin-right: auto;
-}
-
-.-mb-0 {
- margin-bottom: -0px;
-}
-
-.-mb-0\.5 {
- margin-bottom: -0.125rem;
-}
-
-.-mb-1 {
- margin-bottom: -0.25rem;
-}
-
-.-mb-1\.5 {
- margin-bottom: -0.375rem;
-}
-
-.-mb-2 {
- margin-bottom: -0.5rem;
-}
-
-.-mb-2\.5 {
- margin-bottom: -0.625rem;
-}
-
-.-mb-3 {
- margin-bottom: -0.75rem;
-}
-
-.-mb-3\.5 {
- margin-bottom: -0.875rem;
-}
-
-.-mb-4 {
- margin-bottom: -1rem;
-}
-
-.-mb-6 {
- margin-bottom: -1.5rem;
-}
-
-.-mb-8 {
- margin-bottom: -2rem;
-}
-
-.-mb-px {
- margin-bottom: -1px;
-}
-
-.-ml-0 {
- margin-left: -0px;
-}
-
-.-ml-0\.5 {
- margin-left: -0.125rem;
-}
-
-.-ml-1 {
- margin-left: -0.25rem;
-}
-
-.-ml-1\.5 {
- margin-left: -0.375rem;
-}
-
-.-ml-2 {
- margin-left: -0.5rem;
-}
-
-.-ml-2\.5 {
- margin-left: -0.625rem;
-}
-
-.-ml-3 {
- margin-left: -0.75rem;
-}
-
-.-ml-3\.5 {
- margin-left: -0.875rem;
-}
-
-.-ml-4 {
- margin-left: -1rem;
-}
-
-.-ml-6 {
- margin-left: -1.5rem;
-}
-
-.-ml-8 {
- margin-left: -2rem;
-}
-
-.-ml-px {
- margin-left: -1px;
-}
-
-.-mr-0 {
- margin-right: -0px;
-}
-
-.-mr-0\.5 {
- margin-right: -0.125rem;
-}
-
-.-mr-1 {
- margin-right: -0.25rem;
-}
-
-.-mr-1\.5 {
- margin-right: -0.375rem;
-}
-
-.-mr-2 {
- margin-right: -0.5rem;
-}
-
-.-mr-2\.5 {
- margin-right: -0.625rem;
-}
-
-.-mr-3 {
- margin-right: -0.75rem;
-}
-
-.-mr-3\.5 {
- margin-right: -0.875rem;
-}
-
-.-mr-4 {
- margin-right: -1rem;
-}
-
-.-mr-6 {
- margin-right: -1.5rem;
-}
-
-.-mr-8 {
- margin-right: -2rem;
-}
-
-.-mr-px {
- margin-right: -1px;
-}
-
-.-mt-0 {
- margin-top: -0px;
-}
-
-.-mt-0\.5 {
- margin-top: -0.125rem;
-}
-
-.-mt-1 {
- margin-top: -0.25rem;
-}
-
-.-mt-1\.5 {
- margin-top: -0.375rem;
-}
-
-.-mt-2 {
- margin-top: -0.5rem;
-}
-
-.-mt-2\.5 {
- margin-top: -0.625rem;
-}
-
-.-mt-3 {
- margin-top: -0.75rem;
-}
-
-.-mt-3\.5 {
- margin-top: -0.875rem;
-}
-
-.-mt-4 {
- margin-top: -1rem;
-}
-
-.-mt-6 {
- margin-top: -1.5rem;
-}
-
-.-mt-8 {
- margin-top: -2rem;
-}
-
-.-mt-px {
- margin-top: -1px;
-}
-
-.mb-0 {
- margin-bottom: 0px;
-}
-
-.mb-0\.5 {
- margin-bottom: 0.125rem;
-}
-
-.mb-1 {
- margin-bottom: 0.25rem;
-}
-
-.mb-1\.5 {
- margin-bottom: 0.375rem;
-}
-
-.mb-2 {
- margin-bottom: 0.5rem;
-}
-
-.mb-2\.5 {
- margin-bottom: 0.625rem;
-}
-
-.mb-3 {
- margin-bottom: 0.75rem;
-}
-
-.mb-3\.5 {
- margin-bottom: 0.875rem;
-}
-
-.mb-4 {
- margin-bottom: 1rem;
-}
-
-.mb-6 {
- margin-bottom: 1.5rem;
-}
-
-.mb-8 {
- margin-bottom: 2rem;
-}
-
-.mb-px {
- margin-bottom: 1px;
-}
-
-.ml-0 {
- margin-left: 0px;
-}
-
-.ml-0\.5 {
- margin-left: 0.125rem;
-}
-
-.ml-1 {
- margin-left: 0.25rem;
-}
-
-.ml-1\.5 {
- margin-left: 0.375rem;
-}
-
-.ml-2 {
- margin-left: 0.5rem;
-}
-
-.ml-2\.5 {
- margin-left: 0.625rem;
-}
-
-.ml-3 {
- margin-left: 0.75rem;
-}
-
-.ml-3\.5 {
- margin-left: 0.875rem;
-}
-
-.ml-4 {
- margin-left: 1rem;
-}
-
-.ml-6 {
- margin-left: 1.5rem;
-}
-
-.ml-8 {
- margin-left: 2rem;
-}
-
-.ml-px {
- margin-left: 1px;
-}
-
-.mr-0 {
- margin-right: 0px;
-}
-
-.mr-0\.5 {
- margin-right: 0.125rem;
-}
-
-.mr-1 {
- margin-right: 0.25rem;
-}
-
-.mr-1\.5 {
- margin-right: 0.375rem;
-}
-
-.mr-2 {
- margin-right: 0.5rem;
-}
-
-.mr-2\.5 {
- margin-right: 0.625rem;
-}
-
-.mr-3 {
- margin-right: 0.75rem;
-}
-
-.mr-3\.5 {
- margin-right: 0.875rem;
-}
-
-.mr-4 {
- margin-right: 1rem;
-}
-
-.mr-6 {
- margin-right: 1.5rem;
-}
-
-.mr-8 {
- margin-right: 2rem;
-}
-
-.mr-px {
- margin-right: 1px;
-}
-
-.mt-0 {
- margin-top: 0px;
-}
-
-.mt-0\.5 {
- margin-top: 0.125rem;
-}
-
-.mt-1 {
- margin-top: 0.25rem;
-}
-
-.mt-1\.5 {
- margin-top: 0.375rem;
-}
-
-.mt-2 {
- margin-top: 0.5rem;
-}
-
-.mt-2\.5 {
- margin-top: 0.625rem;
-}
-
-.mt-3 {
- margin-top: 0.75rem;
-}
-
-.mt-3\.5 {
- margin-top: 0.875rem;
-}
-
-.mt-4 {
- margin-top: 1rem;
-}
-
-.mt-5 {
- margin-top: 1.25rem;
-}
-
-.mt-6 {
- margin-top: 1.5rem;
-}
-
-.mt-8 {
- margin-top: 2rem;
-}
-
-.mt-px {
- margin-top: 1px;
-}
-
-.block {
- display: block;
-}
-
-.flex {
- display: flex;
-}
-
-.inline-flex {
- display: inline-flex;
-}
-
-.table {
- display: table;
-}
-
-.grid {
- display: grid;
-}
-
-.hidden {
- display: none;
-}
-
-.h-0 {
- height: 0px;
-}
-
-.h-0\.5 {
- height: 0.125rem;
-}
-
-.h-1 {
- height: 0.25rem;
-}
-
-.h-10 {
- height: 2.5rem;
-}
-
-.h-2 {
- height: 0.5rem;
-}
-
-.h-3 {
- height: 0.75rem;
-}
-
-.h-4 {
- height: 1rem;
-}
-
-.h-44 {
- height: 11rem;
-}
-
-.h-5 {
- height: 1.25rem;
-}
-
-.h-6 {
- height: 1.5rem;
-}
-
-.h-7 {
- height: 1.75rem;
-}
-
-.h-80 {
- height: 20rem;
-}
-
-.h-9 {
- height: 2.25rem;
-}
-
-.h-full {
- height: 100%;
-}
-
-.max-h-\[228px\] {
- max-height: 228px;
-}
-
-.max-h-fit {
- max-height: -moz-fit-content;
- max-height: fit-content;
-}
-
-.w-0 {
- width: 0px;
-}
-
-.w-0\.5 {
- width: 0.125rem;
-}
-
-.w-1 {
- width: 0.25rem;
-}
-
-.w-1\/2 {
- width: 50%;
-}
-
-.w-16 {
- width: 4rem;
-}
-
-.w-2 {
- width: 0.5rem;
-}
-
-.w-3 {
- width: 0.75rem;
-}
-
-.w-4 {
- width: 1rem;
-}
-
-.w-4\/5 {
- width: 80%;
-}
-
-.w-48 {
- width: 12rem;
-}
-
-.w-5 {
- width: 1.25rem;
-}
-
-.w-6 {
- width: 1.5rem;
-}
-
-.w-7 {
- width: 1.75rem;
-}
-
-.w-9 {
- width: 2.25rem;
-}
-
-.w-full {
- width: 100%;
-}
-
-.w-max {
- width: -moz-max-content;
- width: max-content;
-}
-
-.min-w-\[10rem\] {
- min-width: 10rem;
-}
-
-.min-w-min {
- min-width: -moz-min-content;
- min-width: min-content;
-}
-
-.max-w-full {
- max-width: 100%;
-}
-
-.max-w-xs {
- max-width: 20rem;
-}
-
-.flex-1 {
- flex: 1 1 0%;
-}
-
-.flex-none {
- flex: none;
-}
-
-.flex-shrink-0 {
- flex-shrink: 0;
-}
-
-.shrink-0 {
- flex-shrink: 0;
-}
-
-.-translate-x-1\/2 {
- --tw-translate-x: -50%;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
-.translate-x-1\/2 {
- --tw-translate-x: 50%;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
-.-rotate-180 {
- --tw-rotate: -180deg;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
-.transform {
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
-@keyframes spin {
- to {
- transform: rotate(360deg);
- }
-}
-
-.animate-spin {
- animation: spin 1s linear infinite;
-}
-
-.cursor-default {
- cursor: default;
-}
-
-.cursor-pointer {
- cursor: pointer;
-}
-
-.cursor-text {
- cursor: text;
-}
-
-.resize {
- resize: both;
-}
-
-.columns-auto {
- -moz-columns: auto;
- columns: auto;
-}
-
-.grid-cols-1 {
- grid-template-columns: repeat(1, minmax(0, 1fr));
-}
-
-.grid-cols-10 {
- grid-template-columns: repeat(10, minmax(0, 1fr));
-}
-
-.grid-cols-11 {
- grid-template-columns: repeat(11, minmax(0, 1fr));
-}
-
-.grid-cols-12 {
- grid-template-columns: repeat(12, minmax(0, 1fr));
-}
-
-.grid-cols-2 {
- grid-template-columns: repeat(2, minmax(0, 1fr));
-}
-
-.grid-cols-3 {
- grid-template-columns: repeat(3, minmax(0, 1fr));
-}
-
-.grid-cols-4 {
- grid-template-columns: repeat(4, 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));
-}
-
-.grid-cols-7 {
- grid-template-columns: repeat(7, minmax(0, 1fr));
-}
-
-.grid-cols-8 {
- grid-template-columns: repeat(8, minmax(0, 1fr));
-}
-
-.grid-cols-9 {
- grid-template-columns: repeat(9, minmax(0, 1fr));
-}
-
-.grid-cols-none {
- grid-template-columns: none;
-}
-
-.flex-row {
- flex-direction: row;
-}
-
-.flex-row-reverse {
- flex-direction: row-reverse;
-}
-
-.flex-col {
- flex-direction: column;
-}
-
-.flex-col-reverse {
- flex-direction: column-reverse;
-}
-
-.flex-wrap {
- flex-wrap: wrap;
-}
-
-.flex-nowrap {
- flex-wrap: nowrap;
-}
-
-.items-start {
- align-items: flex-start;
-}
-
-.items-end {
- align-items: flex-end;
-}
-
-.items-center {
- align-items: center;
-}
-
-.items-baseline {
- align-items: baseline;
-}
-
-.items-stretch {
- align-items: stretch;
-}
-
-.justify-start {
- justify-content: flex-start;
-}
-
-.justify-end {
- justify-content: flex-end;
-}
-
-.justify-center {
- justify-content: center;
-}
-
-.justify-between {
- justify-content: space-between;
-}
-
-.justify-around {
- justify-content: space-around;
-}
-
-.justify-evenly {
- justify-content: space-evenly;
-}
-
-.gap-4 {
- gap: 1rem;
-}
-
-.gap-8 {
- gap: 2rem;
-}
-
-.space-x-0 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0px * var(--tw-space-x-reverse));
- margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-0\.5 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.125rem * var(--tw-space-x-reverse));
- margin-left: calc(0.125rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-1 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.25rem * var(--tw-space-x-reverse));
- margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-1\.5 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.375rem * var(--tw-space-x-reverse));
- margin-left: calc(0.375rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-2 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.5rem * var(--tw-space-x-reverse));
- margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-2\.5 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.625rem * var(--tw-space-x-reverse));
- margin-left: calc(0.625rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-3 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.75rem * var(--tw-space-x-reverse));
- margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-3\.5 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.875rem * var(--tw-space-x-reverse));
- margin-left: calc(0.875rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-4 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(1rem * var(--tw-space-x-reverse));
- margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-6 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(1.5rem * var(--tw-space-x-reverse));
- margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-8 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(2rem * var(--tw-space-x-reverse));
- margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-px > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(1px * var(--tw-space-x-reverse));
- margin-left: calc(1px * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-y-1 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 0;
- margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
-}
-
-.space-y-4 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 0;
- margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(1rem * var(--tw-space-y-reverse));
-}
-
-.divide-y > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-y-reverse: 0;
- border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
- border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
-}
-
-.divide-amber-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(254 243 199 / var(--tw-divide-opacity));
-}
-
-.divide-amber-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(253 230 138 / var(--tw-divide-opacity));
-}
-
-.divide-amber-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(252 211 77 / var(--tw-divide-opacity));
-}
-
-.divide-amber-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(251 191 36 / var(--tw-divide-opacity));
-}
-
-.divide-amber-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(255 251 235 / var(--tw-divide-opacity));
-}
-
-.divide-amber-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(245 158 11 / var(--tw-divide-opacity));
-}
-
-.divide-amber-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(217 119 6 / var(--tw-divide-opacity));
-}
-
-.divide-amber-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(180 83 9 / var(--tw-divide-opacity));
-}
-
-.divide-amber-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(146 64 14 / var(--tw-divide-opacity));
-}
-
-.divide-amber-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(120 53 15 / var(--tw-divide-opacity));
-}
-
-.divide-black > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(0 0 0 / var(--tw-divide-opacity));
-}
-
-.divide-blue-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(219 234 254 / var(--tw-divide-opacity));
-}
-
-.divide-blue-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(191 219 254 / var(--tw-divide-opacity));
-}
-
-.divide-blue-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(147 197 253 / var(--tw-divide-opacity));
-}
-
-.divide-blue-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(96 165 250 / var(--tw-divide-opacity));
-}
-
-.divide-blue-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(239 246 255 / var(--tw-divide-opacity));
-}
-
-.divide-blue-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(59 130 246 / var(--tw-divide-opacity));
-}
-
-.divide-blue-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(37 99 235 / var(--tw-divide-opacity));
-}
-
-.divide-blue-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(29 78 216 / var(--tw-divide-opacity));
-}
-
-.divide-blue-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(30 64 175 / var(--tw-divide-opacity));
-}
-
-.divide-blue-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(30 58 138 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(207 250 254 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(165 243 252 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(103 232 249 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(34 211 238 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(236 254 255 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(6 182 212 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(8 145 178 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(14 116 144 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(21 94 117 / var(--tw-divide-opacity));
-}
-
-.divide-cyan-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(22 78 99 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(209 250 229 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(167 243 208 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(110 231 183 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(52 211 153 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(236 253 245 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(16 185 129 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(5 150 105 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(4 120 87 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(6 95 70 / var(--tw-divide-opacity));
-}
-
-.divide-emerald-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(6 78 59 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(250 232 255 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(245 208 254 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(240 171 252 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(232 121 249 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(253 244 255 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(217 70 239 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(192 38 211 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(162 28 175 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(134 25 143 / var(--tw-divide-opacity));
-}
-
-.divide-fuchsia-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(112 26 117 / var(--tw-divide-opacity));
-}
-
-.divide-gray-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(243 244 246 / var(--tw-divide-opacity));
-}
-
-.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(229 231 235 / var(--tw-divide-opacity));
-}
-
-.divide-gray-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(209 213 219 / var(--tw-divide-opacity));
-}
-
-.divide-gray-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(156 163 175 / var(--tw-divide-opacity));
-}
-
-.divide-gray-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(249 250 251 / var(--tw-divide-opacity));
-}
-
-.divide-gray-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(107 114 128 / var(--tw-divide-opacity));
-}
-
-.divide-gray-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(75 85 99 / var(--tw-divide-opacity));
-}
-
-.divide-gray-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(55 65 81 / var(--tw-divide-opacity));
-}
-
-.divide-gray-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(31 41 55 / var(--tw-divide-opacity));
-}
-
-.divide-gray-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(17 24 39 / var(--tw-divide-opacity));
-}
-
-.divide-green-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(220 252 231 / var(--tw-divide-opacity));
-}
-
-.divide-green-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(187 247 208 / var(--tw-divide-opacity));
-}
-
-.divide-green-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(134 239 172 / var(--tw-divide-opacity));
-}
-
-.divide-green-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(74 222 128 / var(--tw-divide-opacity));
-}
-
-.divide-green-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(240 253 244 / var(--tw-divide-opacity));
-}
-
-.divide-green-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(34 197 94 / var(--tw-divide-opacity));
-}
-
-.divide-green-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(22 163 74 / var(--tw-divide-opacity));
-}
-
-.divide-green-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(21 128 61 / var(--tw-divide-opacity));
-}
-
-.divide-green-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(22 101 52 / var(--tw-divide-opacity));
-}
-
-.divide-green-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(20 83 45 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(224 231 255 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(199 210 254 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(165 180 252 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(129 140 248 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(238 242 255 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(99 102 241 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(79 70 229 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(67 56 202 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(55 48 163 / var(--tw-divide-opacity));
-}
-
-.divide-indigo-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(49 46 129 / var(--tw-divide-opacity));
-}
-
-.divide-lime-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(236 252 203 / var(--tw-divide-opacity));
-}
-
-.divide-lime-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(217 249 157 / var(--tw-divide-opacity));
-}
-
-.divide-lime-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(190 242 100 / var(--tw-divide-opacity));
-}
-
-.divide-lime-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(163 230 53 / var(--tw-divide-opacity));
-}
-
-.divide-lime-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(247 254 231 / var(--tw-divide-opacity));
-}
-
-.divide-lime-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(132 204 22 / var(--tw-divide-opacity));
-}
-
-.divide-lime-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(101 163 13 / var(--tw-divide-opacity));
-}
-
-.divide-lime-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(77 124 15 / var(--tw-divide-opacity));
-}
-
-.divide-lime-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(63 98 18 / var(--tw-divide-opacity));
-}
-
-.divide-lime-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(54 83 20 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(245 245 245 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(229 229 229 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(212 212 212 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(163 163 163 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(250 250 250 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(115 115 115 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(82 82 82 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(64 64 64 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(38 38 38 / var(--tw-divide-opacity));
-}
-
-.divide-neutral-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(23 23 23 / var(--tw-divide-opacity));
-}
-
-.divide-orange-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(255 237 213 / var(--tw-divide-opacity));
-}
-
-.divide-orange-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(254 215 170 / var(--tw-divide-opacity));
-}
-
-.divide-orange-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(253 186 116 / var(--tw-divide-opacity));
-}
-
-.divide-orange-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(251 146 60 / var(--tw-divide-opacity));
-}
-
-.divide-orange-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(255 247 237 / var(--tw-divide-opacity));
-}
-
-.divide-orange-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(249 115 22 / var(--tw-divide-opacity));
-}
-
-.divide-orange-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(234 88 12 / var(--tw-divide-opacity));
-}
-
-.divide-orange-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(194 65 12 / var(--tw-divide-opacity));
-}
-
-.divide-orange-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(154 52 18 / var(--tw-divide-opacity));
-}
-
-.divide-orange-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(124 45 18 / var(--tw-divide-opacity));
-}
-
-.divide-pink-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(252 231 243 / var(--tw-divide-opacity));
-}
-
-.divide-pink-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(251 207 232 / var(--tw-divide-opacity));
-}
-
-.divide-pink-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(249 168 212 / var(--tw-divide-opacity));
-}
-
-.divide-pink-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(244 114 182 / var(--tw-divide-opacity));
-}
-
-.divide-pink-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(253 242 248 / var(--tw-divide-opacity));
-}
-
-.divide-pink-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(236 72 153 / var(--tw-divide-opacity));
-}
-
-.divide-pink-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(219 39 119 / var(--tw-divide-opacity));
-}
-
-.divide-pink-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(190 24 93 / var(--tw-divide-opacity));
-}
-
-.divide-pink-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(131 24 67 / var(--tw-divide-opacity));
-}
-
-.divide-purple-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(243 232 255 / var(--tw-divide-opacity));
-}
-
-.divide-purple-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(233 213 255 / var(--tw-divide-opacity));
-}
-
-.divide-purple-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(216 180 254 / var(--tw-divide-opacity));
-}
-
-.divide-purple-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(192 132 252 / var(--tw-divide-opacity));
-}
-
-.divide-purple-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(250 245 255 / var(--tw-divide-opacity));
-}
-
-.divide-purple-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(168 85 247 / var(--tw-divide-opacity));
-}
-
-.divide-purple-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(147 51 234 / var(--tw-divide-opacity));
-}
-
-.divide-purple-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(126 34 206 / var(--tw-divide-opacity));
-}
-
-.divide-purple-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(107 33 168 / var(--tw-divide-opacity));
-}
-
-.divide-purple-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(88 28 135 / var(--tw-divide-opacity));
-}
-
-.divide-red-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(254 226 226 / var(--tw-divide-opacity));
-}
-
-.divide-red-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(254 202 202 / var(--tw-divide-opacity));
-}
-
-.divide-red-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(252 165 165 / var(--tw-divide-opacity));
-}
-
-.divide-red-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(248 113 113 / var(--tw-divide-opacity));
-}
-
-.divide-red-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(254 242 242 / var(--tw-divide-opacity));
-}
-
-.divide-red-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(239 68 68 / var(--tw-divide-opacity));
-}
-
-.divide-red-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(220 38 38 / var(--tw-divide-opacity));
-}
-
-.divide-red-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(185 28 28 / var(--tw-divide-opacity));
-}
-
-.divide-red-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(153 27 27 / var(--tw-divide-opacity));
-}
-
-.divide-red-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(127 29 29 / var(--tw-divide-opacity));
-}
-
-.divide-rose-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(255 228 230 / var(--tw-divide-opacity));
-}
-
-.divide-rose-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(254 205 211 / var(--tw-divide-opacity));
-}
-
-.divide-rose-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(253 164 175 / var(--tw-divide-opacity));
-}
-
-.divide-rose-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(251 113 133 / var(--tw-divide-opacity));
-}
-
-.divide-rose-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(255 241 242 / var(--tw-divide-opacity));
-}
-
-.divide-rose-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(244 63 94 / var(--tw-divide-opacity));
-}
-
-.divide-rose-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(225 29 72 / var(--tw-divide-opacity));
-}
-
-.divide-rose-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(190 18 60 / var(--tw-divide-opacity));
-}
-
-.divide-rose-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(159 18 57 / var(--tw-divide-opacity));
-}
-
-.divide-rose-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(136 19 55 / var(--tw-divide-opacity));
-}
-
-.divide-sky-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(224 242 254 / var(--tw-divide-opacity));
-}
-
-.divide-sky-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(186 230 253 / var(--tw-divide-opacity));
-}
-
-.divide-sky-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(125 211 252 / var(--tw-divide-opacity));
-}
-
-.divide-sky-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(56 189 248 / var(--tw-divide-opacity));
-}
-
-.divide-sky-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(240 249 255 / var(--tw-divide-opacity));
-}
-
-.divide-sky-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(14 165 233 / var(--tw-divide-opacity));
-}
-
-.divide-sky-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(2 132 199 / var(--tw-divide-opacity));
-}
-
-.divide-sky-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(3 105 161 / var(--tw-divide-opacity));
-}
-
-.divide-sky-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(7 89 133 / var(--tw-divide-opacity));
-}
-
-.divide-sky-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(12 74 110 / var(--tw-divide-opacity));
-}
-
-.divide-slate-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(241 245 249 / var(--tw-divide-opacity));
-}
-
-.divide-slate-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(226 232 240 / var(--tw-divide-opacity));
-}
-
-.divide-slate-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(203 213 225 / var(--tw-divide-opacity));
-}
-
-.divide-slate-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(148 163 184 / var(--tw-divide-opacity));
-}
-
-.divide-slate-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(248 250 252 / var(--tw-divide-opacity));
-}
-
-.divide-slate-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(100 116 139 / var(--tw-divide-opacity));
-}
-
-.divide-slate-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(71 85 105 / var(--tw-divide-opacity));
-}
-
-.divide-slate-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(51 65 85 / var(--tw-divide-opacity));
-}
-
-.divide-slate-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(30 41 59 / var(--tw-divide-opacity));
-}
-
-.divide-slate-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(15 23 42 / var(--tw-divide-opacity));
-}
-
-.divide-stone-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(245 245 244 / var(--tw-divide-opacity));
-}
-
-.divide-stone-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(231 229 228 / var(--tw-divide-opacity));
-}
-
-.divide-stone-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(214 211 209 / var(--tw-divide-opacity));
-}
-
-.divide-stone-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(168 162 158 / var(--tw-divide-opacity));
-}
-
-.divide-stone-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(250 250 249 / var(--tw-divide-opacity));
-}
-
-.divide-stone-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(120 113 108 / var(--tw-divide-opacity));
-}
-
-.divide-stone-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(87 83 78 / var(--tw-divide-opacity));
-}
-
-.divide-stone-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(68 64 60 / var(--tw-divide-opacity));
-}
-
-.divide-stone-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(41 37 36 / var(--tw-divide-opacity));
-}
-
-.divide-stone-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(28 25 23 / var(--tw-divide-opacity));
-}
-
-.divide-teal-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(204 251 241 / var(--tw-divide-opacity));
-}
-
-.divide-teal-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(153 246 228 / var(--tw-divide-opacity));
-}
-
-.divide-teal-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(94 234 212 / var(--tw-divide-opacity));
-}
-
-.divide-teal-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(45 212 191 / var(--tw-divide-opacity));
-}
-
-.divide-teal-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(240 253 250 / var(--tw-divide-opacity));
-}
-
-.divide-teal-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(20 184 166 / var(--tw-divide-opacity));
-}
-
-.divide-teal-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(13 148 136 / var(--tw-divide-opacity));
-}
-
-.divide-teal-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(15 118 110 / var(--tw-divide-opacity));
-}
-
-.divide-teal-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(17 94 89 / var(--tw-divide-opacity));
-}
-
-.divide-teal-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(19 78 74 / var(--tw-divide-opacity));
-}
-
-.divide-transparent > :not([hidden]) ~ :not([hidden]) {
- border-color: transparent;
-}
-
-.divide-violet-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(237 233 254 / var(--tw-divide-opacity));
-}
-
-.divide-violet-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(221 214 254 / var(--tw-divide-opacity));
-}
-
-.divide-violet-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(196 181 253 / var(--tw-divide-opacity));
-}
-
-.divide-violet-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(167 139 250 / var(--tw-divide-opacity));
-}
-
-.divide-violet-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(245 243 255 / var(--tw-divide-opacity));
-}
-
-.divide-violet-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(139 92 246 / var(--tw-divide-opacity));
-}
-
-.divide-violet-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(124 58 237 / var(--tw-divide-opacity));
-}
-
-.divide-violet-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(109 40 217 / var(--tw-divide-opacity));
-}
-
-.divide-violet-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(91 33 182 / var(--tw-divide-opacity));
-}
-
-.divide-violet-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(76 29 149 / var(--tw-divide-opacity));
-}
-
-.divide-white > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(255 255 255 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(254 249 195 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(254 240 138 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(253 224 71 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(250 204 21 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(254 252 232 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(234 179 8 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(202 138 4 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(161 98 7 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(133 77 14 / var(--tw-divide-opacity));
-}
-
-.divide-yellow-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(113 63 18 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-100 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(244 244 245 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(228 228 231 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(212 212 216 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-400 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(161 161 170 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-50 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(250 250 250 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-500 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(113 113 122 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-600 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(82 82 91 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-700 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(63 63 70 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-800 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(39 39 42 / var(--tw-divide-opacity));
-}
-
-.divide-zinc-900 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(24 24 27 / var(--tw-divide-opacity));
-}
-
-.overflow-auto {
- overflow: auto;
-}
-
-.overflow-hidden {
- overflow: hidden;
-}
-
-.overflow-x-auto {
- overflow-x: auto;
-}
-
-.overflow-y-auto {
- overflow-y: auto;
-}
-
-.overflow-x-clip {
- overflow-x: clip;
-}
-
-.truncate {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.whitespace-nowrap {
- white-space: nowrap;
-}
-
-.rounded {
- border-radius: 0.25rem;
-}
-
-.rounded-full {
- border-radius: 9999px;
-}
-
-.rounded-lg {
- border-radius: 0.5rem;
-}
-
-.rounded-md {
- border-radius: 0.375rem;
-}
-
-.rounded-none {
- border-radius: 0px;
-}
-
-.rounded-b {
- border-bottom-right-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem;
-}
-
-.rounded-b-full {
- border-bottom-right-radius: 9999px;
- border-bottom-left-radius: 9999px;
-}
-
-.rounded-b-lg {
- border-bottom-right-radius: 0.5rem;
- border-bottom-left-radius: 0.5rem;
-}
-
-.rounded-b-md {
- border-bottom-right-radius: 0.375rem;
- border-bottom-left-radius: 0.375rem;
-}
-
-.rounded-b-none {
- border-bottom-right-radius: 0px;
- border-bottom-left-radius: 0px;
-}
-
-.rounded-l {
- border-top-left-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem;
-}
-
-.rounded-l-full {
- border-top-left-radius: 9999px;
- border-bottom-left-radius: 9999px;
-}
-
-.rounded-l-lg {
- border-top-left-radius: 0.5rem;
- border-bottom-left-radius: 0.5rem;
-}
-
-.rounded-l-md {
- border-top-left-radius: 0.375rem;
- border-bottom-left-radius: 0.375rem;
-}
-
-.rounded-l-none {
- border-top-left-radius: 0px;
- border-bottom-left-radius: 0px;
-}
-
-.rounded-r {
- border-top-right-radius: 0.25rem;
- border-bottom-right-radius: 0.25rem;
-}
-
-.rounded-r-full {
- border-top-right-radius: 9999px;
- border-bottom-right-radius: 9999px;
-}
-
-.rounded-r-lg {
- border-top-right-radius: 0.5rem;
- border-bottom-right-radius: 0.5rem;
-}
-
-.rounded-r-md {
- border-top-right-radius: 0.375rem;
- border-bottom-right-radius: 0.375rem;
-}
-
-.rounded-r-none {
- border-top-right-radius: 0px;
- border-bottom-right-radius: 0px;
-}
-
-.rounded-t {
- border-top-left-radius: 0.25rem;
- border-top-right-radius: 0.25rem;
-}
-
-.rounded-t-full {
- border-top-left-radius: 9999px;
- border-top-right-radius: 9999px;
-}
-
-.rounded-t-lg {
- border-top-left-radius: 0.5rem;
- border-top-right-radius: 0.5rem;
-}
-
-.rounded-t-md {
- border-top-left-radius: 0.375rem;
- border-top-right-radius: 0.375rem;
-}
-
-.rounded-t-none {
- border-top-left-radius: 0px;
- border-top-right-radius: 0px;
-}
-
-.border {
- border-width: 1px;
-}
-
-.border-0 {
- border-width: 0px;
-}
-
-.border-2 {
- border-width: 2px;
-}
-
-.border-4 {
- border-width: 4px;
-}
-
-.border-b {
- border-bottom-width: 1px;
-}
-
-.border-b-0 {
- border-bottom-width: 0px;
-}
-
-.border-b-2 {
- border-bottom-width: 2px;
-}
-
-.border-b-4 {
- border-bottom-width: 4px;
-}
-
-.border-l {
- border-left-width: 1px;
-}
-
-.border-l-0 {
- border-left-width: 0px;
-}
-
-.border-l-2 {
- border-left-width: 2px;
-}
-
-.border-l-4 {
- border-left-width: 4px;
-}
-
-.border-r {
- border-right-width: 1px;
-}
-
-.border-r-0 {
- border-right-width: 0px;
-}
-
-.border-r-2 {
- border-right-width: 2px;
-}
-
-.border-r-4 {
- border-right-width: 4px;
-}
-
-.border-t {
- border-top-width: 1px;
-}
-
-.border-t-0 {
- border-top-width: 0px;
-}
-
-.border-t-2 {
- border-top-width: 2px;
-}
-
-.border-t-4 {
- border-top-width: 4px;
-}
-
-.border-solid {
- border-style: solid;
-}
-
-.border-dashed {
- border-style: dashed;
-}
-
-.border-amber-100 {
- --tw-border-opacity: 1;
- border-color: rgb(254 243 199 / var(--tw-border-opacity));
-}
-
-.border-amber-200 {
- --tw-border-opacity: 1;
- border-color: rgb(253 230 138 / var(--tw-border-opacity));
-}
-
-.border-amber-300 {
- --tw-border-opacity: 1;
- border-color: rgb(252 211 77 / var(--tw-border-opacity));
-}
-
-.border-amber-400 {
- --tw-border-opacity: 1;
- border-color: rgb(251 191 36 / var(--tw-border-opacity));
-}
-
-.border-amber-50 {
- --tw-border-opacity: 1;
- border-color: rgb(255 251 235 / var(--tw-border-opacity));
-}
-
-.border-amber-500 {
- --tw-border-opacity: 1;
- border-color: rgb(245 158 11 / var(--tw-border-opacity));
-}
-
-.border-amber-600 {
- --tw-border-opacity: 1;
- border-color: rgb(217 119 6 / var(--tw-border-opacity));
-}
-
-.border-amber-700 {
- --tw-border-opacity: 1;
- border-color: rgb(180 83 9 / var(--tw-border-opacity));
-}
-
-.border-amber-800 {
- --tw-border-opacity: 1;
- border-color: rgb(146 64 14 / var(--tw-border-opacity));
-}
-
-.border-amber-900 {
- --tw-border-opacity: 1;
- border-color: rgb(120 53 15 / var(--tw-border-opacity));
-}
-
-.border-black {
- --tw-border-opacity: 1;
- border-color: rgb(0 0 0 / var(--tw-border-opacity));
-}
-
-.border-blue-100 {
- --tw-border-opacity: 1;
- border-color: rgb(219 234 254 / var(--tw-border-opacity));
-}
-
-.border-blue-200 {
- --tw-border-opacity: 1;
- border-color: rgb(191 219 254 / var(--tw-border-opacity));
-}
-
-.border-blue-300 {
- --tw-border-opacity: 1;
- border-color: rgb(147 197 253 / var(--tw-border-opacity));
-}
-
-.border-blue-400 {
- --tw-border-opacity: 1;
- border-color: rgb(96 165 250 / var(--tw-border-opacity));
-}
-
-.border-blue-50 {
- --tw-border-opacity: 1;
- border-color: rgb(239 246 255 / var(--tw-border-opacity));
-}
-
-.border-blue-500 {
- --tw-border-opacity: 1;
- border-color: rgb(59 130 246 / var(--tw-border-opacity));
-}
-
-.border-blue-600 {
- --tw-border-opacity: 1;
- border-color: rgb(37 99 235 / var(--tw-border-opacity));
-}
-
-.border-blue-700 {
- --tw-border-opacity: 1;
- border-color: rgb(29 78 216 / var(--tw-border-opacity));
-}
-
-.border-blue-800 {
- --tw-border-opacity: 1;
- border-color: rgb(30 64 175 / var(--tw-border-opacity));
-}
-
-.border-blue-900 {
- --tw-border-opacity: 1;
- border-color: rgb(30 58 138 / var(--tw-border-opacity));
-}
-
-.border-cyan-100 {
- --tw-border-opacity: 1;
- border-color: rgb(207 250 254 / var(--tw-border-opacity));
-}
-
-.border-cyan-200 {
- --tw-border-opacity: 1;
- border-color: rgb(165 243 252 / var(--tw-border-opacity));
-}
-
-.border-cyan-300 {
- --tw-border-opacity: 1;
- border-color: rgb(103 232 249 / var(--tw-border-opacity));
-}
-
-.border-cyan-400 {
- --tw-border-opacity: 1;
- border-color: rgb(34 211 238 / var(--tw-border-opacity));
-}
-
-.border-cyan-50 {
- --tw-border-opacity: 1;
- border-color: rgb(236 254 255 / var(--tw-border-opacity));
-}
-
-.border-cyan-500 {
- --tw-border-opacity: 1;
- border-color: rgb(6 182 212 / var(--tw-border-opacity));
-}
-
-.border-cyan-600 {
- --tw-border-opacity: 1;
- border-color: rgb(8 145 178 / var(--tw-border-opacity));
-}
-
-.border-cyan-700 {
- --tw-border-opacity: 1;
- border-color: rgb(14 116 144 / var(--tw-border-opacity));
-}
-
-.border-cyan-800 {
- --tw-border-opacity: 1;
- border-color: rgb(21 94 117 / var(--tw-border-opacity));
-}
-
-.border-cyan-900 {
- --tw-border-opacity: 1;
- border-color: rgb(22 78 99 / var(--tw-border-opacity));
-}
-
-.border-emerald-100 {
- --tw-border-opacity: 1;
- border-color: rgb(209 250 229 / var(--tw-border-opacity));
-}
-
-.border-emerald-200 {
- --tw-border-opacity: 1;
- border-color: rgb(167 243 208 / var(--tw-border-opacity));
-}
-
-.border-emerald-300 {
- --tw-border-opacity: 1;
- border-color: rgb(110 231 183 / var(--tw-border-opacity));
-}
-
-.border-emerald-400 {
- --tw-border-opacity: 1;
- border-color: rgb(52 211 153 / var(--tw-border-opacity));
-}
-
-.border-emerald-50 {
- --tw-border-opacity: 1;
- border-color: rgb(236 253 245 / var(--tw-border-opacity));
-}
-
-.border-emerald-500 {
- --tw-border-opacity: 1;
- border-color: rgb(16 185 129 / var(--tw-border-opacity));
-}
-
-.border-emerald-600 {
- --tw-border-opacity: 1;
- border-color: rgb(5 150 105 / var(--tw-border-opacity));
-}
-
-.border-emerald-700 {
- --tw-border-opacity: 1;
- border-color: rgb(4 120 87 / var(--tw-border-opacity));
-}
-
-.border-emerald-800 {
- --tw-border-opacity: 1;
- border-color: rgb(6 95 70 / var(--tw-border-opacity));
-}
-
-.border-emerald-900 {
- --tw-border-opacity: 1;
- border-color: rgb(6 78 59 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-100 {
- --tw-border-opacity: 1;
- border-color: rgb(250 232 255 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-200 {
- --tw-border-opacity: 1;
- border-color: rgb(245 208 254 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-300 {
- --tw-border-opacity: 1;
- border-color: rgb(240 171 252 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-400 {
- --tw-border-opacity: 1;
- border-color: rgb(232 121 249 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-50 {
- --tw-border-opacity: 1;
- border-color: rgb(253 244 255 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-500 {
- --tw-border-opacity: 1;
- border-color: rgb(217 70 239 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-600 {
- --tw-border-opacity: 1;
- border-color: rgb(192 38 211 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-700 {
- --tw-border-opacity: 1;
- border-color: rgb(162 28 175 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-800 {
- --tw-border-opacity: 1;
- border-color: rgb(134 25 143 / var(--tw-border-opacity));
-}
-
-.border-fuchsia-900 {
- --tw-border-opacity: 1;
- border-color: rgb(112 26 117 / var(--tw-border-opacity));
-}
-
-.border-gray-100 {
- --tw-border-opacity: 1;
- border-color: rgb(243 244 246 / var(--tw-border-opacity));
-}
-
-.border-gray-200 {
- --tw-border-opacity: 1;
- border-color: rgb(229 231 235 / var(--tw-border-opacity));
-}
-
-.border-gray-300 {
- --tw-border-opacity: 1;
- border-color: rgb(209 213 219 / var(--tw-border-opacity));
-}
-
-.border-gray-400 {
- --tw-border-opacity: 1;
- border-color: rgb(156 163 175 / var(--tw-border-opacity));
-}
-
-.border-gray-50 {
- --tw-border-opacity: 1;
- border-color: rgb(249 250 251 / var(--tw-border-opacity));
-}
-
-.border-gray-500 {
- --tw-border-opacity: 1;
- border-color: rgb(107 114 128 / var(--tw-border-opacity));
-}
-
-.border-gray-600 {
- --tw-border-opacity: 1;
- border-color: rgb(75 85 99 / var(--tw-border-opacity));
-}
-
-.border-gray-700 {
- --tw-border-opacity: 1;
- border-color: rgb(55 65 81 / var(--tw-border-opacity));
-}
-
-.border-gray-800 {
- --tw-border-opacity: 1;
- border-color: rgb(31 41 55 / var(--tw-border-opacity));
-}
-
-.border-gray-900 {
- --tw-border-opacity: 1;
- border-color: rgb(17 24 39 / var(--tw-border-opacity));
-}
-
-.border-green-100 {
- --tw-border-opacity: 1;
- border-color: rgb(220 252 231 / var(--tw-border-opacity));
-}
-
-.border-green-200 {
- --tw-border-opacity: 1;
- border-color: rgb(187 247 208 / var(--tw-border-opacity));
-}
-
-.border-green-300 {
- --tw-border-opacity: 1;
- border-color: rgb(134 239 172 / var(--tw-border-opacity));
-}
-
-.border-green-400 {
- --tw-border-opacity: 1;
- border-color: rgb(74 222 128 / var(--tw-border-opacity));
-}
-
-.border-green-50 {
- --tw-border-opacity: 1;
- border-color: rgb(240 253 244 / var(--tw-border-opacity));
-}
-
-.border-green-500 {
- --tw-border-opacity: 1;
- border-color: rgb(34 197 94 / var(--tw-border-opacity));
-}
-
-.border-green-600 {
- --tw-border-opacity: 1;
- border-color: rgb(22 163 74 / var(--tw-border-opacity));
-}
-
-.border-green-700 {
- --tw-border-opacity: 1;
- border-color: rgb(21 128 61 / var(--tw-border-opacity));
-}
-
-.border-green-800 {
- --tw-border-opacity: 1;
- border-color: rgb(22 101 52 / var(--tw-border-opacity));
-}
-
-.border-green-900 {
- --tw-border-opacity: 1;
- border-color: rgb(20 83 45 / var(--tw-border-opacity));
-}
-
-.border-indigo-100 {
- --tw-border-opacity: 1;
- border-color: rgb(224 231 255 / var(--tw-border-opacity));
-}
-
-.border-indigo-200 {
- --tw-border-opacity: 1;
- border-color: rgb(199 210 254 / var(--tw-border-opacity));
-}
-
-.border-indigo-300 {
- --tw-border-opacity: 1;
- border-color: rgb(165 180 252 / var(--tw-border-opacity));
-}
-
-.border-indigo-400 {
- --tw-border-opacity: 1;
- border-color: rgb(129 140 248 / var(--tw-border-opacity));
-}
-
-.border-indigo-50 {
- --tw-border-opacity: 1;
- border-color: rgb(238 242 255 / var(--tw-border-opacity));
-}
-
-.border-indigo-500 {
- --tw-border-opacity: 1;
- border-color: rgb(99 102 241 / var(--tw-border-opacity));
-}
-
-.border-indigo-600 {
- --tw-border-opacity: 1;
- border-color: rgb(79 70 229 / var(--tw-border-opacity));
-}
-
-.border-indigo-700 {
- --tw-border-opacity: 1;
- border-color: rgb(67 56 202 / var(--tw-border-opacity));
-}
-
-.border-indigo-800 {
- --tw-border-opacity: 1;
- border-color: rgb(55 48 163 / var(--tw-border-opacity));
-}
-
-.border-indigo-900 {
- --tw-border-opacity: 1;
- border-color: rgb(49 46 129 / var(--tw-border-opacity));
-}
-
-.border-lime-100 {
- --tw-border-opacity: 1;
- border-color: rgb(236 252 203 / var(--tw-border-opacity));
-}
-
-.border-lime-200 {
- --tw-border-opacity: 1;
- border-color: rgb(217 249 157 / var(--tw-border-opacity));
-}
-
-.border-lime-300 {
- --tw-border-opacity: 1;
- border-color: rgb(190 242 100 / var(--tw-border-opacity));
-}
-
-.border-lime-400 {
- --tw-border-opacity: 1;
- border-color: rgb(163 230 53 / var(--tw-border-opacity));
-}
-
-.border-lime-50 {
- --tw-border-opacity: 1;
- border-color: rgb(247 254 231 / var(--tw-border-opacity));
-}
-
-.border-lime-500 {
- --tw-border-opacity: 1;
- border-color: rgb(132 204 22 / var(--tw-border-opacity));
-}
-
-.border-lime-600 {
- --tw-border-opacity: 1;
- border-color: rgb(101 163 13 / var(--tw-border-opacity));
-}
-
-.border-lime-700 {
- --tw-border-opacity: 1;
- border-color: rgb(77 124 15 / var(--tw-border-opacity));
-}
-
-.border-lime-800 {
- --tw-border-opacity: 1;
- border-color: rgb(63 98 18 / var(--tw-border-opacity));
-}
-
-.border-lime-900 {
- --tw-border-opacity: 1;
- border-color: rgb(54 83 20 / var(--tw-border-opacity));
-}
-
-.border-neutral-100 {
- --tw-border-opacity: 1;
- border-color: rgb(245 245 245 / var(--tw-border-opacity));
-}
-
-.border-neutral-200 {
- --tw-border-opacity: 1;
- border-color: rgb(229 229 229 / var(--tw-border-opacity));
-}
-
-.border-neutral-300 {
- --tw-border-opacity: 1;
- border-color: rgb(212 212 212 / var(--tw-border-opacity));
-}
-
-.border-neutral-400 {
- --tw-border-opacity: 1;
- border-color: rgb(163 163 163 / var(--tw-border-opacity));
-}
-
-.border-neutral-50 {
- --tw-border-opacity: 1;
- border-color: rgb(250 250 250 / var(--tw-border-opacity));
-}
-
-.border-neutral-500 {
- --tw-border-opacity: 1;
- border-color: rgb(115 115 115 / var(--tw-border-opacity));
-}
-
-.border-neutral-600 {
- --tw-border-opacity: 1;
- border-color: rgb(82 82 82 / var(--tw-border-opacity));
-}
-
-.border-neutral-700 {
- --tw-border-opacity: 1;
- border-color: rgb(64 64 64 / var(--tw-border-opacity));
-}
-
-.border-neutral-800 {
- --tw-border-opacity: 1;
- border-color: rgb(38 38 38 / var(--tw-border-opacity));
-}
-
-.border-neutral-900 {
- --tw-border-opacity: 1;
- border-color: rgb(23 23 23 / var(--tw-border-opacity));
-}
-
-.border-orange-100 {
- --tw-border-opacity: 1;
- border-color: rgb(255 237 213 / var(--tw-border-opacity));
-}
-
-.border-orange-200 {
- --tw-border-opacity: 1;
- border-color: rgb(254 215 170 / var(--tw-border-opacity));
-}
-
-.border-orange-300 {
- --tw-border-opacity: 1;
- border-color: rgb(253 186 116 / var(--tw-border-opacity));
-}
-
-.border-orange-400 {
- --tw-border-opacity: 1;
- border-color: rgb(251 146 60 / var(--tw-border-opacity));
-}
-
-.border-orange-50 {
- --tw-border-opacity: 1;
- border-color: rgb(255 247 237 / var(--tw-border-opacity));
-}
-
-.border-orange-500 {
- --tw-border-opacity: 1;
- border-color: rgb(249 115 22 / var(--tw-border-opacity));
-}
-
-.border-orange-600 {
- --tw-border-opacity: 1;
- border-color: rgb(234 88 12 / var(--tw-border-opacity));
-}
-
-.border-orange-700 {
- --tw-border-opacity: 1;
- border-color: rgb(194 65 12 / var(--tw-border-opacity));
-}
-
-.border-orange-800 {
- --tw-border-opacity: 1;
- border-color: rgb(154 52 18 / var(--tw-border-opacity));
-}
-
-.border-orange-900 {
- --tw-border-opacity: 1;
- border-color: rgb(124 45 18 / var(--tw-border-opacity));
-}
-
-.border-pink-100 {
- --tw-border-opacity: 1;
- border-color: rgb(252 231 243 / var(--tw-border-opacity));
-}
-
-.border-pink-200 {
- --tw-border-opacity: 1;
- border-color: rgb(251 207 232 / var(--tw-border-opacity));
-}
-
-.border-pink-300 {
- --tw-border-opacity: 1;
- border-color: rgb(249 168 212 / var(--tw-border-opacity));
-}
-
-.border-pink-400 {
- --tw-border-opacity: 1;
- border-color: rgb(244 114 182 / var(--tw-border-opacity));
-}
-
-.border-pink-50 {
- --tw-border-opacity: 1;
- border-color: rgb(253 242 248 / var(--tw-border-opacity));
-}
-
-.border-pink-500 {
- --tw-border-opacity: 1;
- border-color: rgb(236 72 153 / var(--tw-border-opacity));
-}
-
-.border-pink-600 {
- --tw-border-opacity: 1;
- border-color: rgb(219 39 119 / var(--tw-border-opacity));
-}
-
-.border-pink-700 {
- --tw-border-opacity: 1;
- border-color: rgb(190 24 93 / var(--tw-border-opacity));
-}
-
-.border-pink-900 {
- --tw-border-opacity: 1;
- border-color: rgb(131 24 67 / var(--tw-border-opacity));
-}
-
-.border-purple-100 {
- --tw-border-opacity: 1;
- border-color: rgb(243 232 255 / var(--tw-border-opacity));
-}
-
-.border-purple-200 {
- --tw-border-opacity: 1;
- border-color: rgb(233 213 255 / var(--tw-border-opacity));
-}
-
-.border-purple-300 {
- --tw-border-opacity: 1;
- border-color: rgb(216 180 254 / var(--tw-border-opacity));
-}
-
-.border-purple-400 {
- --tw-border-opacity: 1;
- border-color: rgb(192 132 252 / var(--tw-border-opacity));
-}
-
-.border-purple-50 {
- --tw-border-opacity: 1;
- border-color: rgb(250 245 255 / var(--tw-border-opacity));
-}
-
-.border-purple-500 {
- --tw-border-opacity: 1;
- border-color: rgb(168 85 247 / var(--tw-border-opacity));
-}
-
-.border-purple-600 {
- --tw-border-opacity: 1;
- border-color: rgb(147 51 234 / var(--tw-border-opacity));
-}
-
-.border-purple-700 {
- --tw-border-opacity: 1;
- border-color: rgb(126 34 206 / var(--tw-border-opacity));
-}
-
-.border-purple-800 {
- --tw-border-opacity: 1;
- border-color: rgb(107 33 168 / var(--tw-border-opacity));
-}
-
-.border-purple-900 {
- --tw-border-opacity: 1;
- border-color: rgb(88 28 135 / var(--tw-border-opacity));
-}
-
-.border-red-100 {
- --tw-border-opacity: 1;
- border-color: rgb(254 226 226 / var(--tw-border-opacity));
-}
-
-.border-red-200 {
- --tw-border-opacity: 1;
- border-color: rgb(254 202 202 / var(--tw-border-opacity));
-}
-
-.border-red-300 {
- --tw-border-opacity: 1;
- border-color: rgb(252 165 165 / var(--tw-border-opacity));
-}
-
-.border-red-400 {
- --tw-border-opacity: 1;
- border-color: rgb(248 113 113 / var(--tw-border-opacity));
-}
-
-.border-red-50 {
- --tw-border-opacity: 1;
- border-color: rgb(254 242 242 / var(--tw-border-opacity));
-}
-
-.border-red-500 {
- --tw-border-opacity: 1;
- border-color: rgb(239 68 68 / var(--tw-border-opacity));
-}
-
-.border-red-600 {
- --tw-border-opacity: 1;
- border-color: rgb(220 38 38 / var(--tw-border-opacity));
-}
-
-.border-red-700 {
- --tw-border-opacity: 1;
- border-color: rgb(185 28 28 / var(--tw-border-opacity));
-}
-
-.border-red-800 {
- --tw-border-opacity: 1;
- border-color: rgb(153 27 27 / var(--tw-border-opacity));
-}
-
-.border-red-900 {
- --tw-border-opacity: 1;
- border-color: rgb(127 29 29 / var(--tw-border-opacity));
-}
-
-.border-rose-100 {
- --tw-border-opacity: 1;
- border-color: rgb(255 228 230 / var(--tw-border-opacity));
-}
-
-.border-rose-200 {
- --tw-border-opacity: 1;
- border-color: rgb(254 205 211 / var(--tw-border-opacity));
-}
-
-.border-rose-300 {
- --tw-border-opacity: 1;
- border-color: rgb(253 164 175 / var(--tw-border-opacity));
-}
-
-.border-rose-400 {
- --tw-border-opacity: 1;
- border-color: rgb(251 113 133 / var(--tw-border-opacity));
-}
-
-.border-rose-50 {
- --tw-border-opacity: 1;
- border-color: rgb(255 241 242 / var(--tw-border-opacity));
-}
-
-.border-rose-500 {
- --tw-border-opacity: 1;
- border-color: rgb(244 63 94 / var(--tw-border-opacity));
-}
-
-.border-rose-600 {
- --tw-border-opacity: 1;
- border-color: rgb(225 29 72 / var(--tw-border-opacity));
-}
-
-.border-rose-700 {
- --tw-border-opacity: 1;
- border-color: rgb(190 18 60 / var(--tw-border-opacity));
-}
-
-.border-rose-800 {
- --tw-border-opacity: 1;
- border-color: rgb(159 18 57 / var(--tw-border-opacity));
-}
-
-.border-rose-900 {
- --tw-border-opacity: 1;
- border-color: rgb(136 19 55 / var(--tw-border-opacity));
-}
-
-.border-sky-100 {
- --tw-border-opacity: 1;
- border-color: rgb(224 242 254 / var(--tw-border-opacity));
-}
-
-.border-sky-200 {
- --tw-border-opacity: 1;
- border-color: rgb(186 230 253 / var(--tw-border-opacity));
-}
-
-.border-sky-300 {
- --tw-border-opacity: 1;
- border-color: rgb(125 211 252 / var(--tw-border-opacity));
-}
-
-.border-sky-400 {
- --tw-border-opacity: 1;
- border-color: rgb(56 189 248 / var(--tw-border-opacity));
-}
-
-.border-sky-50 {
- --tw-border-opacity: 1;
- border-color: rgb(240 249 255 / var(--tw-border-opacity));
-}
-
-.border-sky-500 {
- --tw-border-opacity: 1;
- border-color: rgb(14 165 233 / var(--tw-border-opacity));
-}
-
-.border-sky-600 {
- --tw-border-opacity: 1;
- border-color: rgb(2 132 199 / var(--tw-border-opacity));
-}
-
-.border-sky-700 {
- --tw-border-opacity: 1;
- border-color: rgb(3 105 161 / var(--tw-border-opacity));
-}
-
-.border-sky-800 {
- --tw-border-opacity: 1;
- border-color: rgb(7 89 133 / var(--tw-border-opacity));
-}
-
-.border-sky-900 {
- --tw-border-opacity: 1;
- border-color: rgb(12 74 110 / var(--tw-border-opacity));
-}
-
-.border-slate-100 {
- --tw-border-opacity: 1;
- border-color: rgb(241 245 249 / var(--tw-border-opacity));
-}
-
-.border-slate-200 {
- --tw-border-opacity: 1;
- border-color: rgb(226 232 240 / var(--tw-border-opacity));
-}
-
-.border-slate-300 {
- --tw-border-opacity: 1;
- border-color: rgb(203 213 225 / var(--tw-border-opacity));
-}
-
-.border-slate-400 {
- --tw-border-opacity: 1;
- border-color: rgb(148 163 184 / var(--tw-border-opacity));
-}
-
-.border-slate-50 {
- --tw-border-opacity: 1;
- border-color: rgb(248 250 252 / var(--tw-border-opacity));
-}
-
-.border-slate-500 {
- --tw-border-opacity: 1;
- border-color: rgb(100 116 139 / var(--tw-border-opacity));
-}
-
-.border-slate-600 {
- --tw-border-opacity: 1;
- border-color: rgb(71 85 105 / var(--tw-border-opacity));
-}
-
-.border-slate-700 {
- --tw-border-opacity: 1;
- border-color: rgb(51 65 85 / var(--tw-border-opacity));
-}
-
-.border-slate-800 {
- --tw-border-opacity: 1;
- border-color: rgb(30 41 59 / var(--tw-border-opacity));
-}
-
-.border-slate-900 {
- --tw-border-opacity: 1;
- border-color: rgb(15 23 42 / var(--tw-border-opacity));
-}
-
-.border-stone-100 {
- --tw-border-opacity: 1;
- border-color: rgb(245 245 244 / var(--tw-border-opacity));
-}
-
-.border-stone-200 {
- --tw-border-opacity: 1;
- border-color: rgb(231 229 228 / var(--tw-border-opacity));
-}
-
-.border-stone-300 {
- --tw-border-opacity: 1;
- border-color: rgb(214 211 209 / var(--tw-border-opacity));
-}
-
-.border-stone-400 {
- --tw-border-opacity: 1;
- border-color: rgb(168 162 158 / var(--tw-border-opacity));
-}
-
-.border-stone-50 {
- --tw-border-opacity: 1;
- border-color: rgb(250 250 249 / var(--tw-border-opacity));
-}
-
-.border-stone-500 {
- --tw-border-opacity: 1;
- border-color: rgb(120 113 108 / var(--tw-border-opacity));
-}
-
-.border-stone-600 {
- --tw-border-opacity: 1;
- border-color: rgb(87 83 78 / var(--tw-border-opacity));
-}
-
-.border-stone-700 {
- --tw-border-opacity: 1;
- border-color: rgb(68 64 60 / var(--tw-border-opacity));
-}
-
-.border-stone-800 {
- --tw-border-opacity: 1;
- border-color: rgb(41 37 36 / var(--tw-border-opacity));
-}
-
-.border-stone-900 {
- --tw-border-opacity: 1;
- border-color: rgb(28 25 23 / var(--tw-border-opacity));
-}
-
-.border-teal-100 {
- --tw-border-opacity: 1;
- border-color: rgb(204 251 241 / var(--tw-border-opacity));
-}
-
-.border-teal-200 {
- --tw-border-opacity: 1;
- border-color: rgb(153 246 228 / var(--tw-border-opacity));
-}
-
-.border-teal-300 {
- --tw-border-opacity: 1;
- border-color: rgb(94 234 212 / var(--tw-border-opacity));
-}
-
-.border-teal-400 {
- --tw-border-opacity: 1;
- border-color: rgb(45 212 191 / var(--tw-border-opacity));
-}
-
-.border-teal-50 {
- --tw-border-opacity: 1;
- border-color: rgb(240 253 250 / var(--tw-border-opacity));
-}
-
-.border-teal-500 {
- --tw-border-opacity: 1;
- border-color: rgb(20 184 166 / var(--tw-border-opacity));
-}
-
-.border-teal-600 {
- --tw-border-opacity: 1;
- border-color: rgb(13 148 136 / var(--tw-border-opacity));
-}
-
-.border-teal-700 {
- --tw-border-opacity: 1;
- border-color: rgb(15 118 110 / var(--tw-border-opacity));
-}
-
-.border-teal-800 {
- --tw-border-opacity: 1;
- border-color: rgb(17 94 89 / var(--tw-border-opacity));
-}
-
-.border-teal-900 {
- --tw-border-opacity: 1;
- border-color: rgb(19 78 74 / var(--tw-border-opacity));
-}
-
-.border-transparent {
- border-color: transparent;
-}
-
-.border-violet-100 {
- --tw-border-opacity: 1;
- border-color: rgb(237 233 254 / var(--tw-border-opacity));
-}
-
-.border-violet-200 {
- --tw-border-opacity: 1;
- border-color: rgb(221 214 254 / var(--tw-border-opacity));
-}
-
-.border-violet-300 {
- --tw-border-opacity: 1;
- border-color: rgb(196 181 253 / var(--tw-border-opacity));
-}
-
-.border-violet-400 {
- --tw-border-opacity: 1;
- border-color: rgb(167 139 250 / var(--tw-border-opacity));
-}
-
-.border-violet-50 {
- --tw-border-opacity: 1;
- border-color: rgb(245 243 255 / var(--tw-border-opacity));
-}
-
-.border-violet-500 {
- --tw-border-opacity: 1;
- border-color: rgb(139 92 246 / var(--tw-border-opacity));
-}
-
-.border-violet-600 {
- --tw-border-opacity: 1;
- border-color: rgb(124 58 237 / var(--tw-border-opacity));
-}
-
-.border-violet-700 {
- --tw-border-opacity: 1;
- border-color: rgb(109 40 217 / var(--tw-border-opacity));
-}
-
-.border-violet-800 {
- --tw-border-opacity: 1;
- border-color: rgb(91 33 182 / var(--tw-border-opacity));
-}
-
-.border-violet-900 {
- --tw-border-opacity: 1;
- border-color: rgb(76 29 149 / var(--tw-border-opacity));
-}
-
-.border-white {
- --tw-border-opacity: 1;
- border-color: rgb(255 255 255 / var(--tw-border-opacity));
-}
-
-.border-yellow-100 {
- --tw-border-opacity: 1;
- border-color: rgb(254 249 195 / var(--tw-border-opacity));
-}
-
-.border-yellow-200 {
- --tw-border-opacity: 1;
- border-color: rgb(254 240 138 / var(--tw-border-opacity));
-}
-
-.border-yellow-300 {
- --tw-border-opacity: 1;
- border-color: rgb(253 224 71 / var(--tw-border-opacity));
-}
-
-.border-yellow-400 {
- --tw-border-opacity: 1;
- border-color: rgb(250 204 21 / var(--tw-border-opacity));
-}
-
-.border-yellow-50 {
- --tw-border-opacity: 1;
- border-color: rgb(254 252 232 / var(--tw-border-opacity));
-}
-
-.border-yellow-500 {
- --tw-border-opacity: 1;
- border-color: rgb(234 179 8 / var(--tw-border-opacity));
-}
-
-.border-yellow-600 {
- --tw-border-opacity: 1;
- border-color: rgb(202 138 4 / var(--tw-border-opacity));
-}
-
-.border-yellow-700 {
- --tw-border-opacity: 1;
- border-color: rgb(161 98 7 / var(--tw-border-opacity));
-}
-
-.border-yellow-800 {
- --tw-border-opacity: 1;
- border-color: rgb(133 77 14 / var(--tw-border-opacity));
-}
-
-.border-yellow-900 {
- --tw-border-opacity: 1;
- border-color: rgb(113 63 18 / var(--tw-border-opacity));
-}
-
-.border-zinc-100 {
- --tw-border-opacity: 1;
- border-color: rgb(244 244 245 / var(--tw-border-opacity));
-}
-
-.border-zinc-200 {
- --tw-border-opacity: 1;
- border-color: rgb(228 228 231 / var(--tw-border-opacity));
-}
-
-.border-zinc-300 {
- --tw-border-opacity: 1;
- border-color: rgb(212 212 216 / var(--tw-border-opacity));
-}
-
-.border-zinc-400 {
- --tw-border-opacity: 1;
- border-color: rgb(161 161 170 / var(--tw-border-opacity));
-}
-
-.border-zinc-50 {
- --tw-border-opacity: 1;
- border-color: rgb(250 250 250 / var(--tw-border-opacity));
-}
-
-.border-zinc-500 {
- --tw-border-opacity: 1;
- border-color: rgb(113 113 122 / var(--tw-border-opacity));
-}
-
-.border-zinc-600 {
- --tw-border-opacity: 1;
- border-color: rgb(82 82 91 / var(--tw-border-opacity));
-}
-
-.border-zinc-700 {
- --tw-border-opacity: 1;
- border-color: rgb(63 63 70 / var(--tw-border-opacity));
-}
-
-.border-zinc-800 {
- --tw-border-opacity: 1;
- border-color: rgb(39 39 42 / var(--tw-border-opacity));
-}
-
-.border-zinc-900 {
- --tw-border-opacity: 1;
- border-color: rgb(24 24 27 / var(--tw-border-opacity));
-}
-
-.border-b-gray-500 {
- --tw-border-opacity: 1;
- border-bottom-color: rgb(107 114 128 / var(--tw-border-opacity));
-}
-
-.bg-amber-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 243 199 / var(--tw-bg-opacity));
-}
-
-.bg-amber-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(253 230 138 / var(--tw-bg-opacity));
-}
-
-.bg-amber-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(252 211 77 / var(--tw-bg-opacity));
-}
-
-.bg-amber-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(251 191 36 / var(--tw-bg-opacity));
-}
-
-.bg-amber-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(255 251 235 / var(--tw-bg-opacity));
-}
-
-.bg-amber-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(245 158 11 / var(--tw-bg-opacity));
-}
-
-.bg-amber-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(217 119 6 / var(--tw-bg-opacity));
-}
-
-.bg-amber-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(180 83 9 / var(--tw-bg-opacity));
-}
-
-.bg-amber-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(146 64 14 / var(--tw-bg-opacity));
-}
-
-.bg-amber-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(120 53 15 / var(--tw-bg-opacity));
-}
-
-.bg-black {
- --tw-bg-opacity: 1;
- background-color: rgb(0 0 0 / var(--tw-bg-opacity));
-}
-
-.bg-blue-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(219 234 254 / var(--tw-bg-opacity));
-}
-
-.bg-blue-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(191 219 254 / var(--tw-bg-opacity));
-}
-
-.bg-blue-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(147 197 253 / var(--tw-bg-opacity));
-}
-
-.bg-blue-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(96 165 250 / var(--tw-bg-opacity));
-}
-
-.bg-blue-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(239 246 255 / var(--tw-bg-opacity));
-}
-
-.bg-blue-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(59 130 246 / var(--tw-bg-opacity));
-}
-
-.bg-blue-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(37 99 235 / var(--tw-bg-opacity));
-}
-
-.bg-blue-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(29 78 216 / var(--tw-bg-opacity));
-}
-
-.bg-blue-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(30 64 175 / var(--tw-bg-opacity));
-}
-
-.bg-blue-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(30 58 138 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(207 250 254 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(165 243 252 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(103 232 249 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(34 211 238 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(236 254 255 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(6 182 212 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(8 145 178 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(14 116 144 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(21 94 117 / var(--tw-bg-opacity));
-}
-
-.bg-cyan-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(22 78 99 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(209 250 229 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(167 243 208 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(110 231 183 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(52 211 153 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(236 253 245 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(16 185 129 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(5 150 105 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(4 120 87 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(6 95 70 / var(--tw-bg-opacity));
-}
-
-.bg-emerald-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(6 78 59 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(250 232 255 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(245 208 254 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(240 171 252 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(232 121 249 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(253 244 255 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(217 70 239 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(192 38 211 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(162 28 175 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(134 25 143 / var(--tw-bg-opacity));
-}
-
-.bg-fuchsia-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(112 26 117 / var(--tw-bg-opacity));
-}
-
-.bg-gray-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(243 244 246 / var(--tw-bg-opacity));
-}
-
-.bg-gray-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(229 231 235 / var(--tw-bg-opacity));
-}
-
-.bg-gray-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(209 213 219 / var(--tw-bg-opacity));
-}
-
-.bg-gray-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(156 163 175 / var(--tw-bg-opacity));
-}
-
-.bg-gray-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(249 250 251 / var(--tw-bg-opacity));
-}
-
-.bg-gray-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(107 114 128 / var(--tw-bg-opacity));
-}
-
-.bg-gray-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(75 85 99 / var(--tw-bg-opacity));
-}
-
-.bg-gray-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(55 65 81 / var(--tw-bg-opacity));
-}
-
-.bg-gray-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(31 41 55 / var(--tw-bg-opacity));
-}
-
-.bg-gray-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(17 24 39 / var(--tw-bg-opacity));
-}
-
-.bg-green-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(220 252 231 / var(--tw-bg-opacity));
-}
-
-.bg-green-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(187 247 208 / var(--tw-bg-opacity));
-}
-
-.bg-green-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(134 239 172 / var(--tw-bg-opacity));
-}
-
-.bg-green-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(74 222 128 / var(--tw-bg-opacity));
-}
-
-.bg-green-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(240 253 244 / var(--tw-bg-opacity));
-}
-
-.bg-green-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(34 197 94 / var(--tw-bg-opacity));
-}
-
-.bg-green-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(22 163 74 / var(--tw-bg-opacity));
-}
-
-.bg-green-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(21 128 61 / var(--tw-bg-opacity));
-}
-
-.bg-green-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(22 101 52 / var(--tw-bg-opacity));
-}
-
-.bg-green-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(20 83 45 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(224 231 255 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(199 210 254 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(165 180 252 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(129 140 248 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(238 242 255 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(99 102 241 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(79 70 229 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(67 56 202 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(55 48 163 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(49 46 129 / var(--tw-bg-opacity));
-}
-
-.bg-inherit {
- background-color: inherit;
-}
-
-.bg-lime-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(236 252 203 / var(--tw-bg-opacity));
-}
-
-.bg-lime-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(217 249 157 / var(--tw-bg-opacity));
-}
-
-.bg-lime-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(190 242 100 / var(--tw-bg-opacity));
-}
-
-.bg-lime-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(163 230 53 / var(--tw-bg-opacity));
-}
-
-.bg-lime-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(247 254 231 / var(--tw-bg-opacity));
-}
-
-.bg-lime-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(132 204 22 / var(--tw-bg-opacity));
-}
-
-.bg-lime-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(101 163 13 / var(--tw-bg-opacity));
-}
-
-.bg-lime-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(77 124 15 / var(--tw-bg-opacity));
-}
-
-.bg-lime-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(63 98 18 / var(--tw-bg-opacity));
-}
-
-.bg-lime-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(54 83 20 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(245 245 245 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(229 229 229 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(212 212 212 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(163 163 163 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(250 250 250 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(115 115 115 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(82 82 82 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(64 64 64 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(38 38 38 / var(--tw-bg-opacity));
-}
-
-.bg-neutral-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(23 23 23 / var(--tw-bg-opacity));
-}
-
-.bg-orange-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(255 237 213 / var(--tw-bg-opacity));
-}
-
-.bg-orange-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 215 170 / var(--tw-bg-opacity));
-}
-
-.bg-orange-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(253 186 116 / var(--tw-bg-opacity));
-}
-
-.bg-orange-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(251 146 60 / var(--tw-bg-opacity));
-}
-
-.bg-orange-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(255 247 237 / var(--tw-bg-opacity));
-}
-
-.bg-orange-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(249 115 22 / var(--tw-bg-opacity));
-}
-
-.bg-orange-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(234 88 12 / var(--tw-bg-opacity));
-}
-
-.bg-orange-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(194 65 12 / var(--tw-bg-opacity));
-}
-
-.bg-orange-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(154 52 18 / var(--tw-bg-opacity));
-}
-
-.bg-orange-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(124 45 18 / var(--tw-bg-opacity));
-}
-
-.bg-pink-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(252 231 243 / var(--tw-bg-opacity));
-}
-
-.bg-pink-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(251 207 232 / var(--tw-bg-opacity));
-}
-
-.bg-pink-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(249 168 212 / var(--tw-bg-opacity));
-}
-
-.bg-pink-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(244 114 182 / var(--tw-bg-opacity));
-}
-
-.bg-pink-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(253 242 248 / var(--tw-bg-opacity));
-}
-
-.bg-pink-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(236 72 153 / var(--tw-bg-opacity));
-}
-
-.bg-pink-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(219 39 119 / var(--tw-bg-opacity));
-}
-
-.bg-pink-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(190 24 93 / var(--tw-bg-opacity));
-}
-
-.bg-pink-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(131 24 67 / var(--tw-bg-opacity));
-}
-
-.bg-purple-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(243 232 255 / var(--tw-bg-opacity));
-}
-
-.bg-purple-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(233 213 255 / var(--tw-bg-opacity));
-}
-
-.bg-purple-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(216 180 254 / var(--tw-bg-opacity));
-}
-
-.bg-purple-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(192 132 252 / var(--tw-bg-opacity));
-}
-
-.bg-purple-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(250 245 255 / var(--tw-bg-opacity));
-}
-
-.bg-purple-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(168 85 247 / var(--tw-bg-opacity));
-}
-
-.bg-purple-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(147 51 234 / var(--tw-bg-opacity));
-}
-
-.bg-purple-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(126 34 206 / var(--tw-bg-opacity));
-}
-
-.bg-purple-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(107 33 168 / var(--tw-bg-opacity));
-}
-
-.bg-purple-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(88 28 135 / var(--tw-bg-opacity));
-}
-
-.bg-red-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 226 226 / var(--tw-bg-opacity));
-}
-
-.bg-red-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 202 202 / var(--tw-bg-opacity));
-}
-
-.bg-red-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(252 165 165 / var(--tw-bg-opacity));
-}
-
-.bg-red-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(248 113 113 / var(--tw-bg-opacity));
-}
-
-.bg-red-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 242 242 / var(--tw-bg-opacity));
-}
-
-.bg-red-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(239 68 68 / var(--tw-bg-opacity));
-}
-
-.bg-red-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(220 38 38 / var(--tw-bg-opacity));
-}
-
-.bg-red-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(185 28 28 / var(--tw-bg-opacity));
-}
-
-.bg-red-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(153 27 27 / var(--tw-bg-opacity));
-}
-
-.bg-red-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(127 29 29 / var(--tw-bg-opacity));
-}
-
-.bg-rose-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(255 228 230 / var(--tw-bg-opacity));
-}
-
-.bg-rose-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 205 211 / var(--tw-bg-opacity));
-}
-
-.bg-rose-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(253 164 175 / var(--tw-bg-opacity));
-}
-
-.bg-rose-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(251 113 133 / var(--tw-bg-opacity));
-}
-
-.bg-rose-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(255 241 242 / var(--tw-bg-opacity));
-}
-
-.bg-rose-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(244 63 94 / var(--tw-bg-opacity));
-}
-
-.bg-rose-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(225 29 72 / var(--tw-bg-opacity));
-}
-
-.bg-rose-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(190 18 60 / var(--tw-bg-opacity));
-}
-
-.bg-rose-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(159 18 57 / var(--tw-bg-opacity));
-}
-
-.bg-rose-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(136 19 55 / var(--tw-bg-opacity));
-}
-
-.bg-sky-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(224 242 254 / var(--tw-bg-opacity));
-}
-
-.bg-sky-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(186 230 253 / var(--tw-bg-opacity));
-}
-
-.bg-sky-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(125 211 252 / var(--tw-bg-opacity));
-}
-
-.bg-sky-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(56 189 248 / var(--tw-bg-opacity));
-}
-
-.bg-sky-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(240 249 255 / var(--tw-bg-opacity));
-}
-
-.bg-sky-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(14 165 233 / var(--tw-bg-opacity));
-}
-
-.bg-sky-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(2 132 199 / var(--tw-bg-opacity));
-}
-
-.bg-sky-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(3 105 161 / var(--tw-bg-opacity));
-}
-
-.bg-sky-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(7 89 133 / var(--tw-bg-opacity));
-}
-
-.bg-sky-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(12 74 110 / var(--tw-bg-opacity));
-}
-
-.bg-slate-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(241 245 249 / var(--tw-bg-opacity));
-}
-
-.bg-slate-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(226 232 240 / var(--tw-bg-opacity));
-}
-
-.bg-slate-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(203 213 225 / var(--tw-bg-opacity));
-}
-
-.bg-slate-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(148 163 184 / var(--tw-bg-opacity));
-}
-
-.bg-slate-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(248 250 252 / var(--tw-bg-opacity));
-}
-
-.bg-slate-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(100 116 139 / var(--tw-bg-opacity));
-}
-
-.bg-slate-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(71 85 105 / var(--tw-bg-opacity));
-}
-
-.bg-slate-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(51 65 85 / var(--tw-bg-opacity));
-}
-
-.bg-slate-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(30 41 59 / var(--tw-bg-opacity));
-}
-
-.bg-slate-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(15 23 42 / var(--tw-bg-opacity));
-}
-
-.bg-stone-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(245 245 244 / var(--tw-bg-opacity));
-}
-
-.bg-stone-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(231 229 228 / var(--tw-bg-opacity));
-}
-
-.bg-stone-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(214 211 209 / var(--tw-bg-opacity));
-}
-
-.bg-stone-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(168 162 158 / var(--tw-bg-opacity));
-}
-
-.bg-stone-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(250 250 249 / var(--tw-bg-opacity));
-}
-
-.bg-stone-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(120 113 108 / var(--tw-bg-opacity));
-}
-
-.bg-stone-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(87 83 78 / var(--tw-bg-opacity));
-}
-
-.bg-stone-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(68 64 60 / var(--tw-bg-opacity));
-}
-
-.bg-stone-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(41 37 36 / var(--tw-bg-opacity));
-}
-
-.bg-stone-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(28 25 23 / var(--tw-bg-opacity));
-}
-
-.bg-teal-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(204 251 241 / var(--tw-bg-opacity));
-}
-
-.bg-teal-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(153 246 228 / var(--tw-bg-opacity));
-}
-
-.bg-teal-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(94 234 212 / var(--tw-bg-opacity));
-}
-
-.bg-teal-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(45 212 191 / var(--tw-bg-opacity));
-}
-
-.bg-teal-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(240 253 250 / var(--tw-bg-opacity));
-}
-
-.bg-teal-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(20 184 166 / var(--tw-bg-opacity));
-}
-
-.bg-teal-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(13 148 136 / var(--tw-bg-opacity));
-}
-
-.bg-teal-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(15 118 110 / var(--tw-bg-opacity));
-}
-
-.bg-teal-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(17 94 89 / var(--tw-bg-opacity));
-}
-
-.bg-teal-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(19 78 74 / var(--tw-bg-opacity));
-}
-
-.bg-transparent {
- background-color: transparent;
-}
-
-.bg-violet-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(237 233 254 / var(--tw-bg-opacity));
-}
-
-.bg-violet-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(221 214 254 / var(--tw-bg-opacity));
-}
-
-.bg-violet-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(196 181 253 / var(--tw-bg-opacity));
-}
-
-.bg-violet-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(167 139 250 / var(--tw-bg-opacity));
-}
-
-.bg-violet-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(245 243 255 / var(--tw-bg-opacity));
-}
-
-.bg-violet-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(139 92 246 / var(--tw-bg-opacity));
-}
-
-.bg-violet-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(124 58 237 / var(--tw-bg-opacity));
-}
-
-.bg-violet-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(109 40 217 / var(--tw-bg-opacity));
-}
-
-.bg-violet-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(91 33 182 / var(--tw-bg-opacity));
-}
-
-.bg-violet-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(76 29 149 / var(--tw-bg-opacity));
-}
-
-.bg-white {
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 249 195 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 240 138 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(253 224 71 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(250 204 21 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 252 232 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(234 179 8 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(202 138 4 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(161 98 7 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(133 77 14 / var(--tw-bg-opacity));
-}
-
-.bg-yellow-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(113 63 18 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(244 244 245 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(228 228 231 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(212 212 216 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-400 {
- --tw-bg-opacity: 1;
- background-color: rgb(161 161 170 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(250 250 250 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(113 113 122 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(82 82 91 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(63 63 70 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(39 39 42 / var(--tw-bg-opacity));
-}
-
-.bg-zinc-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(24 24 27 / var(--tw-bg-opacity));
-}
-
-.p-0 {
- padding: 0px;
-}
-
-.p-0\.5 {
- padding: 0.125rem;
-}
-
-.p-1 {
- padding: 0.25rem;
-}
-
-.p-1\.5 {
- padding: 0.375rem;
-}
-
-.p-2 {
- padding: 0.5rem;
-}
-
-.p-2\.5 {
- padding: 0.625rem;
-}
-
-.p-3 {
- padding: 0.75rem;
-}
-
-.p-3\.5 {
- padding: 0.875rem;
-}
-
-.p-4 {
- padding: 1rem;
-}
-
-.p-6 {
- padding: 1.5rem;
-}
-
-.p-8 {
- padding: 2rem;
-}
-
-.p-px {
- padding: 1px;
-}
-
-.px-0 {
- padding-left: 0px;
- padding-right: 0px;
-}
-
-.px-0\.5 {
- padding-left: 0.125rem;
- padding-right: 0.125rem;
-}
-
-.px-1 {
- padding-left: 0.25rem;
- padding-right: 0.25rem;
-}
-
-.px-1\.5 {
- padding-left: 0.375rem;
- padding-right: 0.375rem;
-}
-
-.px-2 {
- padding-left: 0.5rem;
- padding-right: 0.5rem;
-}
-
-.px-2\.5 {
- padding-left: 0.625rem;
- padding-right: 0.625rem;
-}
-
-.px-3 {
- padding-left: 0.75rem;
- padding-right: 0.75rem;
-}
-
-.px-3\.5 {
- padding-left: 0.875rem;
- padding-right: 0.875rem;
-}
-
-.px-4 {
- padding-left: 1rem;
- padding-right: 1rem;
-}
-
-.px-6 {
- padding-left: 1.5rem;
- padding-right: 1.5rem;
-}
-
-.px-8 {
- padding-left: 2rem;
- padding-right: 2rem;
-}
-
-.px-px {
- padding-left: 1px;
- padding-right: 1px;
-}
-
-.py-0 {
- padding-top: 0px;
- padding-bottom: 0px;
-}
-
-.py-0\.5 {
- padding-top: 0.125rem;
- padding-bottom: 0.125rem;
-}
-
-.py-1 {
- padding-top: 0.25rem;
- padding-bottom: 0.25rem;
-}
-
-.py-1\.5 {
- padding-top: 0.375rem;
- padding-bottom: 0.375rem;
-}
-
-.py-2 {
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
-}
-
-.py-2\.5 {
- padding-top: 0.625rem;
- padding-bottom: 0.625rem;
-}
-
-.py-3 {
- padding-top: 0.75rem;
- padding-bottom: 0.75rem;
-}
-
-.py-3\.5 {
- padding-top: 0.875rem;
- padding-bottom: 0.875rem;
-}
-
-.py-4 {
- padding-top: 1rem;
- padding-bottom: 1rem;
-}
-
-.py-6 {
- padding-top: 1.5rem;
- padding-bottom: 1.5rem;
-}
-
-.py-8 {
- padding-top: 2rem;
- padding-bottom: 2rem;
-}
-
-.py-px {
- padding-top: 1px;
- padding-bottom: 1px;
-}
-
-.pb-0 {
- padding-bottom: 0px;
-}
-
-.pb-0\.5 {
- padding-bottom: 0.125rem;
-}
-
-.pb-1 {
- padding-bottom: 0.25rem;
-}
-
-.pb-1\.5 {
- padding-bottom: 0.375rem;
-}
-
-.pb-2 {
- padding-bottom: 0.5rem;
-}
-
-.pb-2\.5 {
- padding-bottom: 0.625rem;
-}
-
-.pb-3 {
- padding-bottom: 0.75rem;
-}
-
-.pb-3\.5 {
- padding-bottom: 0.875rem;
-}
-
-.pb-4 {
- padding-bottom: 1rem;
-}
-
-.pb-6 {
- padding-bottom: 1.5rem;
-}
-
-.pb-8 {
- padding-bottom: 2rem;
-}
-
-.pb-px {
- padding-bottom: 1px;
-}
-
-.pl-0 {
- padding-left: 0px;
-}
-
-.pl-0\.5 {
- padding-left: 0.125rem;
-}
-
-.pl-1 {
- padding-left: 0.25rem;
-}
-
-.pl-1\.5 {
- padding-left: 0.375rem;
-}
-
-.pl-2 {
- padding-left: 0.5rem;
-}
-
-.pl-2\.5 {
- padding-left: 0.625rem;
-}
-
-.pl-3 {
- padding-left: 0.75rem;
-}
-
-.pl-3\.5 {
- padding-left: 0.875rem;
-}
-
-.pl-4 {
- padding-left: 1rem;
-}
-
-.pl-6 {
- padding-left: 1.5rem;
-}
-
-.pl-8 {
- padding-left: 2rem;
-}
-
-.pl-px {
- padding-left: 1px;
-}
-
-.pr-0 {
- padding-right: 0px;
-}
-
-.pr-0\.5 {
- padding-right: 0.125rem;
-}
-
-.pr-1 {
- padding-right: 0.25rem;
-}
-
-.pr-1\.5 {
- padding-right: 0.375rem;
-}
-
-.pr-2 {
- padding-right: 0.5rem;
-}
-
-.pr-2\.5 {
- padding-right: 0.625rem;
-}
-
-.pr-3 {
- padding-right: 0.75rem;
-}
-
-.pr-3\.5 {
- padding-right: 0.875rem;
-}
-
-.pr-4 {
- padding-right: 1rem;
-}
-
-.pr-6 {
- padding-right: 1.5rem;
-}
-
-.pr-8 {
- padding-right: 2rem;
-}
-
-.pr-px {
- padding-right: 1px;
-}
-
-.pt-0 {
- padding-top: 0px;
-}
-
-.pt-0\.5 {
- padding-top: 0.125rem;
-}
-
-.pt-1 {
- padding-top: 0.25rem;
-}
-
-.pt-1\.5 {
- padding-top: 0.375rem;
-}
-
-.pt-2 {
- padding-top: 0.5rem;
-}
-
-.pt-2\.5 {
- padding-top: 0.625rem;
-}
-
-.pt-3 {
- padding-top: 0.75rem;
-}
-
-.pt-3\.5 {
- padding-top: 0.875rem;
-}
-
-.pt-4 {
- padding-top: 1rem;
-}
-
-.pt-6 {
- padding-top: 1.5rem;
-}
-
-.pt-8 {
- padding-top: 2rem;
-}
-
-.pt-px {
- padding-top: 1px;
-}
-
-.text-left {
- text-align: left;
-}
-
-.text-center {
- text-align: center;
-}
-
-.text-right {
- text-align: right;
-}
-
-.text-start {
- text-align: start;
-}
-
-.align-top {
- vertical-align: top;
-}
-
-.align-middle {
- vertical-align: middle;
-}
-
-.text-2xl {
- font-size: 1.5rem;
- line-height: 2rem;
-}
-
-.text-3xl {
- font-size: 1.875rem;
- line-height: 2.25rem;
-}
-
-.text-base {
- font-size: 1rem;
- line-height: 1.5rem;
-}
-
-.text-lg {
- font-size: 1.125rem;
- line-height: 1.75rem;
-}
-
-.text-sm {
- font-size: 0.875rem;
- line-height: 1.25rem;
-}
-
-.text-xl {
- font-size: 1.25rem;
- line-height: 1.75rem;
-}
-
-.text-xs {
- font-size: 0.75rem;
- line-height: 1rem;
-}
-
-.font-medium {
- font-weight: 500;
-}
-
-.font-normal {
- font-weight: 400;
-}
-
-.font-semibold {
- font-weight: 600;
-}
-
-.capitalize {
- text-transform: capitalize;
-}
-
-.italic {
- font-style: italic;
-}
-
-.tabular-nums {
- --tw-numeric-spacing: tabular-nums;
- font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
-}
-
-.leading-8 {
- line-height: 2rem;
-}
-
-.text-amber-100 {
- --tw-text-opacity: 1;
- color: rgb(254 243 199 / var(--tw-text-opacity));
-}
-
-.text-amber-200 {
- --tw-text-opacity: 1;
- color: rgb(253 230 138 / var(--tw-text-opacity));
-}
-
-.text-amber-300 {
- --tw-text-opacity: 1;
- color: rgb(252 211 77 / var(--tw-text-opacity));
-}
-
-.text-amber-400 {
- --tw-text-opacity: 1;
- color: rgb(251 191 36 / var(--tw-text-opacity));
-}
-
-.text-amber-50 {
- --tw-text-opacity: 1;
- color: rgb(255 251 235 / var(--tw-text-opacity));
-}
-
-.text-amber-500 {
- --tw-text-opacity: 1;
- color: rgb(245 158 11 / var(--tw-text-opacity));
-}
-
-.text-amber-600 {
- --tw-text-opacity: 1;
- color: rgb(217 119 6 / var(--tw-text-opacity));
-}
-
-.text-amber-700 {
- --tw-text-opacity: 1;
- color: rgb(180 83 9 / var(--tw-text-opacity));
-}
-
-.text-amber-800 {
- --tw-text-opacity: 1;
- color: rgb(146 64 14 / var(--tw-text-opacity));
-}
-
-.text-amber-900 {
- --tw-text-opacity: 1;
- color: rgb(120 53 15 / var(--tw-text-opacity));
-}
-
-.text-black {
- --tw-text-opacity: 1;
- color: rgb(0 0 0 / var(--tw-text-opacity));
-}
-
-.text-blue-100 {
- --tw-text-opacity: 1;
- color: rgb(219 234 254 / var(--tw-text-opacity));
-}
-
-.text-blue-200 {
- --tw-text-opacity: 1;
- color: rgb(191 219 254 / var(--tw-text-opacity));
-}
-
-.text-blue-300 {
- --tw-text-opacity: 1;
- color: rgb(147 197 253 / var(--tw-text-opacity));
-}
-
-.text-blue-400 {
- --tw-text-opacity: 1;
- color: rgb(96 165 250 / var(--tw-text-opacity));
-}
-
-.text-blue-50 {
- --tw-text-opacity: 1;
- color: rgb(239 246 255 / var(--tw-text-opacity));
-}
-
-.text-blue-500 {
- --tw-text-opacity: 1;
- color: rgb(59 130 246 / var(--tw-text-opacity));
-}
-
-.text-blue-600 {
- --tw-text-opacity: 1;
- color: rgb(37 99 235 / var(--tw-text-opacity));
-}
-
-.text-blue-700 {
- --tw-text-opacity: 1;
- color: rgb(29 78 216 / var(--tw-text-opacity));
-}
-
-.text-blue-800 {
- --tw-text-opacity: 1;
- color: rgb(30 64 175 / var(--tw-text-opacity));
-}
-
-.text-blue-900 {
- --tw-text-opacity: 1;
- color: rgb(30 58 138 / var(--tw-text-opacity));
-}
-
-.text-cyan-100 {
- --tw-text-opacity: 1;
- color: rgb(207 250 254 / var(--tw-text-opacity));
-}
-
-.text-cyan-200 {
- --tw-text-opacity: 1;
- color: rgb(165 243 252 / var(--tw-text-opacity));
-}
-
-.text-cyan-300 {
- --tw-text-opacity: 1;
- color: rgb(103 232 249 / var(--tw-text-opacity));
-}
-
-.text-cyan-400 {
- --tw-text-opacity: 1;
- color: rgb(34 211 238 / var(--tw-text-opacity));
-}
-
-.text-cyan-50 {
- --tw-text-opacity: 1;
- color: rgb(236 254 255 / var(--tw-text-opacity));
-}
-
-.text-cyan-500 {
- --tw-text-opacity: 1;
- color: rgb(6 182 212 / var(--tw-text-opacity));
-}
-
-.text-cyan-600 {
- --tw-text-opacity: 1;
- color: rgb(8 145 178 / var(--tw-text-opacity));
-}
-
-.text-cyan-700 {
- --tw-text-opacity: 1;
- color: rgb(14 116 144 / var(--tw-text-opacity));
-}
-
-.text-cyan-800 {
- --tw-text-opacity: 1;
- color: rgb(21 94 117 / var(--tw-text-opacity));
-}
-
-.text-cyan-900 {
- --tw-text-opacity: 1;
- color: rgb(22 78 99 / var(--tw-text-opacity));
-}
-
-.text-emerald-100 {
- --tw-text-opacity: 1;
- color: rgb(209 250 229 / var(--tw-text-opacity));
-}
-
-.text-emerald-200 {
- --tw-text-opacity: 1;
- color: rgb(167 243 208 / var(--tw-text-opacity));
-}
-
-.text-emerald-300 {
- --tw-text-opacity: 1;
- color: rgb(110 231 183 / var(--tw-text-opacity));
-}
-
-.text-emerald-400 {
- --tw-text-opacity: 1;
- color: rgb(52 211 153 / var(--tw-text-opacity));
-}
-
-.text-emerald-50 {
- --tw-text-opacity: 1;
- color: rgb(236 253 245 / var(--tw-text-opacity));
-}
-
-.text-emerald-500 {
- --tw-text-opacity: 1;
- color: rgb(16 185 129 / var(--tw-text-opacity));
-}
-
-.text-emerald-600 {
- --tw-text-opacity: 1;
- color: rgb(5 150 105 / var(--tw-text-opacity));
-}
-
-.text-emerald-700 {
- --tw-text-opacity: 1;
- color: rgb(4 120 87 / var(--tw-text-opacity));
-}
-
-.text-emerald-800 {
- --tw-text-opacity: 1;
- color: rgb(6 95 70 / var(--tw-text-opacity));
-}
-
-.text-emerald-900 {
- --tw-text-opacity: 1;
- color: rgb(6 78 59 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-100 {
- --tw-text-opacity: 1;
- color: rgb(250 232 255 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-200 {
- --tw-text-opacity: 1;
- color: rgb(245 208 254 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-300 {
- --tw-text-opacity: 1;
- color: rgb(240 171 252 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-400 {
- --tw-text-opacity: 1;
- color: rgb(232 121 249 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-50 {
- --tw-text-opacity: 1;
- color: rgb(253 244 255 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-500 {
- --tw-text-opacity: 1;
- color: rgb(217 70 239 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-600 {
- --tw-text-opacity: 1;
- color: rgb(192 38 211 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-700 {
- --tw-text-opacity: 1;
- color: rgb(162 28 175 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-800 {
- --tw-text-opacity: 1;
- color: rgb(134 25 143 / var(--tw-text-opacity));
-}
-
-.text-fuchsia-900 {
- --tw-text-opacity: 1;
- color: rgb(112 26 117 / var(--tw-text-opacity));
-}
-
-.text-gray-100 {
- --tw-text-opacity: 1;
- color: rgb(243 244 246 / var(--tw-text-opacity));
-}
-
-.text-gray-200 {
- --tw-text-opacity: 1;
- color: rgb(229 231 235 / var(--tw-text-opacity));
-}
-
-.text-gray-300 {
- --tw-text-opacity: 1;
- color: rgb(209 213 219 / var(--tw-text-opacity));
-}
-
-.text-gray-400 {
- --tw-text-opacity: 1;
- color: rgb(156 163 175 / var(--tw-text-opacity));
-}
-
-.text-gray-50 {
- --tw-text-opacity: 1;
- color: rgb(249 250 251 / var(--tw-text-opacity));
-}
-
-.text-gray-500 {
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity));
-}
-
-.text-gray-600 {
- --tw-text-opacity: 1;
- color: rgb(75 85 99 / var(--tw-text-opacity));
-}
-
-.text-gray-700 {
- --tw-text-opacity: 1;
- color: rgb(55 65 81 / var(--tw-text-opacity));
-}
-
-.text-gray-800 {
- --tw-text-opacity: 1;
- color: rgb(31 41 55 / var(--tw-text-opacity));
-}
-
-.text-gray-900 {
- --tw-text-opacity: 1;
- color: rgb(17 24 39 / var(--tw-text-opacity));
-}
-
-.text-green-100 {
- --tw-text-opacity: 1;
- color: rgb(220 252 231 / var(--tw-text-opacity));
-}
-
-.text-green-200 {
- --tw-text-opacity: 1;
- color: rgb(187 247 208 / var(--tw-text-opacity));
-}
-
-.text-green-300 {
- --tw-text-opacity: 1;
- color: rgb(134 239 172 / var(--tw-text-opacity));
-}
-
-.text-green-400 {
- --tw-text-opacity: 1;
- color: rgb(74 222 128 / var(--tw-text-opacity));
-}
-
-.text-green-50 {
- --tw-text-opacity: 1;
- color: rgb(240 253 244 / var(--tw-text-opacity));
-}
-
-.text-green-500 {
- --tw-text-opacity: 1;
- color: rgb(34 197 94 / var(--tw-text-opacity));
-}
-
-.text-green-600 {
- --tw-text-opacity: 1;
- color: rgb(22 163 74 / var(--tw-text-opacity));
-}
-
-.text-green-700 {
- --tw-text-opacity: 1;
- color: rgb(21 128 61 / var(--tw-text-opacity));
-}
-
-.text-green-800 {
- --tw-text-opacity: 1;
- color: rgb(22 101 52 / var(--tw-text-opacity));
-}
-
-.text-green-900 {
- --tw-text-opacity: 1;
- color: rgb(20 83 45 / var(--tw-text-opacity));
-}
-
-.text-indigo-100 {
- --tw-text-opacity: 1;
- color: rgb(224 231 255 / var(--tw-text-opacity));
-}
-
-.text-indigo-200 {
- --tw-text-opacity: 1;
- color: rgb(199 210 254 / var(--tw-text-opacity));
-}
-
-.text-indigo-300 {
- --tw-text-opacity: 1;
- color: rgb(165 180 252 / var(--tw-text-opacity));
-}
-
-.text-indigo-400 {
- --tw-text-opacity: 1;
- color: rgb(129 140 248 / var(--tw-text-opacity));
-}
-
-.text-indigo-50 {
- --tw-text-opacity: 1;
- color: rgb(238 242 255 / var(--tw-text-opacity));
-}
-
-.text-indigo-500 {
- --tw-text-opacity: 1;
- color: rgb(99 102 241 / var(--tw-text-opacity));
-}
-
-.text-indigo-600 {
- --tw-text-opacity: 1;
- color: rgb(79 70 229 / var(--tw-text-opacity));
-}
-
-.text-indigo-700 {
- --tw-text-opacity: 1;
- color: rgb(67 56 202 / var(--tw-text-opacity));
-}
-
-.text-indigo-800 {
- --tw-text-opacity: 1;
- color: rgb(55 48 163 / var(--tw-text-opacity));
-}
-
-.text-indigo-900 {
- --tw-text-opacity: 1;
- color: rgb(49 46 129 / var(--tw-text-opacity));
-}
-
-.text-inherit {
- color: inherit;
-}
-
-.text-lime-100 {
- --tw-text-opacity: 1;
- color: rgb(236 252 203 / var(--tw-text-opacity));
-}
-
-.text-lime-200 {
- --tw-text-opacity: 1;
- color: rgb(217 249 157 / var(--tw-text-opacity));
-}
-
-.text-lime-300 {
- --tw-text-opacity: 1;
- color: rgb(190 242 100 / var(--tw-text-opacity));
-}
-
-.text-lime-400 {
- --tw-text-opacity: 1;
- color: rgb(163 230 53 / var(--tw-text-opacity));
-}
-
-.text-lime-50 {
- --tw-text-opacity: 1;
- color: rgb(247 254 231 / var(--tw-text-opacity));
-}
-
-.text-lime-500 {
- --tw-text-opacity: 1;
- color: rgb(132 204 22 / var(--tw-text-opacity));
-}
-
-.text-lime-600 {
- --tw-text-opacity: 1;
- color: rgb(101 163 13 / var(--tw-text-opacity));
-}
-
-.text-lime-700 {
- --tw-text-opacity: 1;
- color: rgb(77 124 15 / var(--tw-text-opacity));
-}
-
-.text-lime-800 {
- --tw-text-opacity: 1;
- color: rgb(63 98 18 / var(--tw-text-opacity));
-}
-
-.text-lime-900 {
- --tw-text-opacity: 1;
- color: rgb(54 83 20 / var(--tw-text-opacity));
-}
-
-.text-neutral-100 {
- --tw-text-opacity: 1;
- color: rgb(245 245 245 / var(--tw-text-opacity));
-}
-
-.text-neutral-200 {
- --tw-text-opacity: 1;
- color: rgb(229 229 229 / var(--tw-text-opacity));
-}
-
-.text-neutral-300 {
- --tw-text-opacity: 1;
- color: rgb(212 212 212 / var(--tw-text-opacity));
-}
-
-.text-neutral-400 {
- --tw-text-opacity: 1;
- color: rgb(163 163 163 / var(--tw-text-opacity));
-}
-
-.text-neutral-50 {
- --tw-text-opacity: 1;
- color: rgb(250 250 250 / var(--tw-text-opacity));
-}
-
-.text-neutral-500 {
- --tw-text-opacity: 1;
- color: rgb(115 115 115 / var(--tw-text-opacity));
-}
-
-.text-neutral-600 {
- --tw-text-opacity: 1;
- color: rgb(82 82 82 / var(--tw-text-opacity));
-}
-
-.text-neutral-700 {
- --tw-text-opacity: 1;
- color: rgb(64 64 64 / var(--tw-text-opacity));
-}
-
-.text-neutral-800 {
- --tw-text-opacity: 1;
- color: rgb(38 38 38 / var(--tw-text-opacity));
-}
-
-.text-neutral-900 {
- --tw-text-opacity: 1;
- color: rgb(23 23 23 / var(--tw-text-opacity));
-}
-
-.text-orange-100 {
- --tw-text-opacity: 1;
- color: rgb(255 237 213 / var(--tw-text-opacity));
-}
-
-.text-orange-200 {
- --tw-text-opacity: 1;
- color: rgb(254 215 170 / var(--tw-text-opacity));
-}
-
-.text-orange-300 {
- --tw-text-opacity: 1;
- color: rgb(253 186 116 / var(--tw-text-opacity));
-}
-
-.text-orange-400 {
- --tw-text-opacity: 1;
- color: rgb(251 146 60 / var(--tw-text-opacity));
-}
-
-.text-orange-50 {
- --tw-text-opacity: 1;
- color: rgb(255 247 237 / var(--tw-text-opacity));
-}
-
-.text-orange-500 {
- --tw-text-opacity: 1;
- color: rgb(249 115 22 / var(--tw-text-opacity));
-}
-
-.text-orange-600 {
- --tw-text-opacity: 1;
- color: rgb(234 88 12 / var(--tw-text-opacity));
-}
-
-.text-orange-700 {
- --tw-text-opacity: 1;
- color: rgb(194 65 12 / var(--tw-text-opacity));
-}
-
-.text-orange-800 {
- --tw-text-opacity: 1;
- color: rgb(154 52 18 / var(--tw-text-opacity));
-}
-
-.text-orange-900 {
- --tw-text-opacity: 1;
- color: rgb(124 45 18 / var(--tw-text-opacity));
-}
-
-.text-pink-100 {
- --tw-text-opacity: 1;
- color: rgb(252 231 243 / var(--tw-text-opacity));
-}
-
-.text-pink-200 {
- --tw-text-opacity: 1;
- color: rgb(251 207 232 / var(--tw-text-opacity));
-}
-
-.text-pink-300 {
- --tw-text-opacity: 1;
- color: rgb(249 168 212 / var(--tw-text-opacity));
-}
-
-.text-pink-400 {
- --tw-text-opacity: 1;
- color: rgb(244 114 182 / var(--tw-text-opacity));
-}
-
-.text-pink-50 {
- --tw-text-opacity: 1;
- color: rgb(253 242 248 / var(--tw-text-opacity));
-}
-
-.text-pink-500 {
- --tw-text-opacity: 1;
- color: rgb(236 72 153 / var(--tw-text-opacity));
-}
-
-.text-pink-600 {
- --tw-text-opacity: 1;
- color: rgb(219 39 119 / var(--tw-text-opacity));
-}
-
-.text-pink-700 {
- --tw-text-opacity: 1;
- color: rgb(190 24 93 / var(--tw-text-opacity));
-}
-
-.text-pink-900 {
- --tw-text-opacity: 1;
- color: rgb(131 24 67 / var(--tw-text-opacity));
-}
-
-.text-purple-100 {
- --tw-text-opacity: 1;
- color: rgb(243 232 255 / var(--tw-text-opacity));
-}
-
-.text-purple-200 {
- --tw-text-opacity: 1;
- color: rgb(233 213 255 / var(--tw-text-opacity));
-}
-
-.text-purple-300 {
- --tw-text-opacity: 1;
- color: rgb(216 180 254 / var(--tw-text-opacity));
-}
-
-.text-purple-400 {
- --tw-text-opacity: 1;
- color: rgb(192 132 252 / var(--tw-text-opacity));
-}
-
-.text-purple-50 {
- --tw-text-opacity: 1;
- color: rgb(250 245 255 / var(--tw-text-opacity));
-}
-
-.text-purple-500 {
- --tw-text-opacity: 1;
- color: rgb(168 85 247 / var(--tw-text-opacity));
-}
-
-.text-purple-600 {
- --tw-text-opacity: 1;
- color: rgb(147 51 234 / var(--tw-text-opacity));
-}
-
-.text-purple-700 {
- --tw-text-opacity: 1;
- color: rgb(126 34 206 / var(--tw-text-opacity));
-}
-
-.text-purple-800 {
- --tw-text-opacity: 1;
- color: rgb(107 33 168 / var(--tw-text-opacity));
-}
-
-.text-purple-900 {
- --tw-text-opacity: 1;
- color: rgb(88 28 135 / var(--tw-text-opacity));
-}
-
-.text-red-100 {
- --tw-text-opacity: 1;
- color: rgb(254 226 226 / var(--tw-text-opacity));
-}
-
-.text-red-200 {
- --tw-text-opacity: 1;
- color: rgb(254 202 202 / var(--tw-text-opacity));
-}
-
-.text-red-300 {
- --tw-text-opacity: 1;
- color: rgb(252 165 165 / var(--tw-text-opacity));
-}
-
-.text-red-400 {
- --tw-text-opacity: 1;
- color: rgb(248 113 113 / var(--tw-text-opacity));
-}
-
-.text-red-50 {
- --tw-text-opacity: 1;
- color: rgb(254 242 242 / var(--tw-text-opacity));
-}
-
-.text-red-500 {
- --tw-text-opacity: 1;
- color: rgb(239 68 68 / var(--tw-text-opacity));
-}
-
-.text-red-600 {
- --tw-text-opacity: 1;
- color: rgb(220 38 38 / var(--tw-text-opacity));
-}
-
-.text-red-700 {
- --tw-text-opacity: 1;
- color: rgb(185 28 28 / var(--tw-text-opacity));
-}
-
-.text-red-800 {
- --tw-text-opacity: 1;
- color: rgb(153 27 27 / var(--tw-text-opacity));
-}
-
-.text-red-900 {
- --tw-text-opacity: 1;
- color: rgb(127 29 29 / var(--tw-text-opacity));
-}
-
-.text-rose-100 {
- --tw-text-opacity: 1;
- color: rgb(255 228 230 / var(--tw-text-opacity));
-}
-
-.text-rose-200 {
- --tw-text-opacity: 1;
- color: rgb(254 205 211 / var(--tw-text-opacity));
-}
-
-.text-rose-300 {
- --tw-text-opacity: 1;
- color: rgb(253 164 175 / var(--tw-text-opacity));
-}
-
-.text-rose-400 {
- --tw-text-opacity: 1;
- color: rgb(251 113 133 / var(--tw-text-opacity));
-}
-
-.text-rose-50 {
- --tw-text-opacity: 1;
- color: rgb(255 241 242 / var(--tw-text-opacity));
-}
-
-.text-rose-500 {
- --tw-text-opacity: 1;
- color: rgb(244 63 94 / var(--tw-text-opacity));
-}
-
-.text-rose-600 {
- --tw-text-opacity: 1;
- color: rgb(225 29 72 / var(--tw-text-opacity));
-}
-
-.text-rose-700 {
- --tw-text-opacity: 1;
- color: rgb(190 18 60 / var(--tw-text-opacity));
-}
-
-.text-rose-800 {
- --tw-text-opacity: 1;
- color: rgb(159 18 57 / var(--tw-text-opacity));
-}
-
-.text-rose-900 {
- --tw-text-opacity: 1;
- color: rgb(136 19 55 / var(--tw-text-opacity));
-}
-
-.text-sky-100 {
- --tw-text-opacity: 1;
- color: rgb(224 242 254 / var(--tw-text-opacity));
-}
-
-.text-sky-200 {
- --tw-text-opacity: 1;
- color: rgb(186 230 253 / var(--tw-text-opacity));
-}
-
-.text-sky-300 {
- --tw-text-opacity: 1;
- color: rgb(125 211 252 / var(--tw-text-opacity));
-}
-
-.text-sky-400 {
- --tw-text-opacity: 1;
- color: rgb(56 189 248 / var(--tw-text-opacity));
-}
-
-.text-sky-50 {
- --tw-text-opacity: 1;
- color: rgb(240 249 255 / var(--tw-text-opacity));
-}
-
-.text-sky-500 {
- --tw-text-opacity: 1;
- color: rgb(14 165 233 / var(--tw-text-opacity));
-}
-
-.text-sky-600 {
- --tw-text-opacity: 1;
- color: rgb(2 132 199 / var(--tw-text-opacity));
-}
-
-.text-sky-700 {
- --tw-text-opacity: 1;
- color: rgb(3 105 161 / var(--tw-text-opacity));
-}
-
-.text-sky-800 {
- --tw-text-opacity: 1;
- color: rgb(7 89 133 / var(--tw-text-opacity));
-}
-
-.text-sky-900 {
- --tw-text-opacity: 1;
- color: rgb(12 74 110 / var(--tw-text-opacity));
-}
-
-.text-slate-100 {
- --tw-text-opacity: 1;
- color: rgb(241 245 249 / var(--tw-text-opacity));
-}
-
-.text-slate-200 {
- --tw-text-opacity: 1;
- color: rgb(226 232 240 / var(--tw-text-opacity));
-}
-
-.text-slate-300 {
- --tw-text-opacity: 1;
- color: rgb(203 213 225 / var(--tw-text-opacity));
-}
-
-.text-slate-400 {
- --tw-text-opacity: 1;
- color: rgb(148 163 184 / var(--tw-text-opacity));
-}
-
-.text-slate-50 {
- --tw-text-opacity: 1;
- color: rgb(248 250 252 / var(--tw-text-opacity));
-}
-
-.text-slate-500 {
- --tw-text-opacity: 1;
- color: rgb(100 116 139 / var(--tw-text-opacity));
-}
-
-.text-slate-600 {
- --tw-text-opacity: 1;
- color: rgb(71 85 105 / var(--tw-text-opacity));
-}
-
-.text-slate-700 {
- --tw-text-opacity: 1;
- color: rgb(51 65 85 / var(--tw-text-opacity));
-}
-
-.text-slate-800 {
- --tw-text-opacity: 1;
- color: rgb(30 41 59 / var(--tw-text-opacity));
-}
-
-.text-slate-900 {
- --tw-text-opacity: 1;
- color: rgb(15 23 42 / var(--tw-text-opacity));
-}
-
-.text-stone-100 {
- --tw-text-opacity: 1;
- color: rgb(245 245 244 / var(--tw-text-opacity));
-}
-
-.text-stone-200 {
- --tw-text-opacity: 1;
- color: rgb(231 229 228 / var(--tw-text-opacity));
-}
-
-.text-stone-300 {
- --tw-text-opacity: 1;
- color: rgb(214 211 209 / var(--tw-text-opacity));
-}
-
-.text-stone-400 {
- --tw-text-opacity: 1;
- color: rgb(168 162 158 / var(--tw-text-opacity));
-}
-
-.text-stone-50 {
- --tw-text-opacity: 1;
- color: rgb(250 250 249 / var(--tw-text-opacity));
-}
-
-.text-stone-500 {
- --tw-text-opacity: 1;
- color: rgb(120 113 108 / var(--tw-text-opacity));
-}
-
-.text-stone-600 {
- --tw-text-opacity: 1;
- color: rgb(87 83 78 / var(--tw-text-opacity));
-}
-
-.text-stone-700 {
- --tw-text-opacity: 1;
- color: rgb(68 64 60 / var(--tw-text-opacity));
-}
-
-.text-stone-800 {
- --tw-text-opacity: 1;
- color: rgb(41 37 36 / var(--tw-text-opacity));
-}
-
-.text-stone-900 {
- --tw-text-opacity: 1;
- color: rgb(28 25 23 / var(--tw-text-opacity));
-}
-
-.text-teal-100 {
- --tw-text-opacity: 1;
- color: rgb(204 251 241 / var(--tw-text-opacity));
-}
-
-.text-teal-200 {
- --tw-text-opacity: 1;
- color: rgb(153 246 228 / var(--tw-text-opacity));
-}
-
-.text-teal-300 {
- --tw-text-opacity: 1;
- color: rgb(94 234 212 / var(--tw-text-opacity));
-}
-
-.text-teal-400 {
- --tw-text-opacity: 1;
- color: rgb(45 212 191 / var(--tw-text-opacity));
-}
-
-.text-teal-50 {
- --tw-text-opacity: 1;
- color: rgb(240 253 250 / var(--tw-text-opacity));
-}
-
-.text-teal-500 {
- --tw-text-opacity: 1;
- color: rgb(20 184 166 / var(--tw-text-opacity));
-}
-
-.text-teal-600 {
- --tw-text-opacity: 1;
- color: rgb(13 148 136 / var(--tw-text-opacity));
-}
-
-.text-teal-700 {
- --tw-text-opacity: 1;
- color: rgb(15 118 110 / var(--tw-text-opacity));
-}
-
-.text-teal-800 {
- --tw-text-opacity: 1;
- color: rgb(17 94 89 / var(--tw-text-opacity));
-}
-
-.text-teal-900 {
- --tw-text-opacity: 1;
- color: rgb(19 78 74 / var(--tw-text-opacity));
-}
-
-.text-transparent {
- color: transparent;
-}
-
-.text-violet-100 {
- --tw-text-opacity: 1;
- color: rgb(237 233 254 / var(--tw-text-opacity));
-}
-
-.text-violet-200 {
- --tw-text-opacity: 1;
- color: rgb(221 214 254 / var(--tw-text-opacity));
-}
-
-.text-violet-300 {
- --tw-text-opacity: 1;
- color: rgb(196 181 253 / var(--tw-text-opacity));
-}
-
-.text-violet-400 {
- --tw-text-opacity: 1;
- color: rgb(167 139 250 / var(--tw-text-opacity));
-}
-
-.text-violet-50 {
- --tw-text-opacity: 1;
- color: rgb(245 243 255 / var(--tw-text-opacity));
-}
-
-.text-violet-500 {
- --tw-text-opacity: 1;
- color: rgb(139 92 246 / var(--tw-text-opacity));
-}
-
-.text-violet-600 {
- --tw-text-opacity: 1;
- color: rgb(124 58 237 / var(--tw-text-opacity));
-}
-
-.text-violet-700 {
- --tw-text-opacity: 1;
- color: rgb(109 40 217 / var(--tw-text-opacity));
-}
-
-.text-violet-800 {
- --tw-text-opacity: 1;
- color: rgb(91 33 182 / var(--tw-text-opacity));
-}
-
-.text-violet-900 {
- --tw-text-opacity: 1;
- color: rgb(76 29 149 / var(--tw-text-opacity));
-}
-
-.text-white {
- --tw-text-opacity: 1;
- color: rgb(255 255 255 / var(--tw-text-opacity));
-}
-
-.text-yellow-100 {
- --tw-text-opacity: 1;
- color: rgb(254 249 195 / var(--tw-text-opacity));
-}
-
-.text-yellow-200 {
- --tw-text-opacity: 1;
- color: rgb(254 240 138 / var(--tw-text-opacity));
-}
-
-.text-yellow-300 {
- --tw-text-opacity: 1;
- color: rgb(253 224 71 / var(--tw-text-opacity));
-}
-
-.text-yellow-400 {
- --tw-text-opacity: 1;
- color: rgb(250 204 21 / var(--tw-text-opacity));
-}
-
-.text-yellow-50 {
- --tw-text-opacity: 1;
- color: rgb(254 252 232 / var(--tw-text-opacity));
-}
-
-.text-yellow-500 {
- --tw-text-opacity: 1;
- color: rgb(234 179 8 / var(--tw-text-opacity));
-}
-
-.text-yellow-600 {
- --tw-text-opacity: 1;
- color: rgb(202 138 4 / var(--tw-text-opacity));
-}
-
-.text-yellow-700 {
- --tw-text-opacity: 1;
- color: rgb(161 98 7 / var(--tw-text-opacity));
-}
-
-.text-yellow-800 {
- --tw-text-opacity: 1;
- color: rgb(133 77 14 / var(--tw-text-opacity));
-}
-
-.text-yellow-900 {
- --tw-text-opacity: 1;
- color: rgb(113 63 18 / var(--tw-text-opacity));
-}
-
-.text-zinc-100 {
- --tw-text-opacity: 1;
- color: rgb(244 244 245 / var(--tw-text-opacity));
-}
-
-.text-zinc-200 {
- --tw-text-opacity: 1;
- color: rgb(228 228 231 / var(--tw-text-opacity));
-}
-
-.text-zinc-300 {
- --tw-text-opacity: 1;
- color: rgb(212 212 216 / var(--tw-text-opacity));
-}
-
-.text-zinc-400 {
- --tw-text-opacity: 1;
- color: rgb(161 161 170 / var(--tw-text-opacity));
-}
-
-.text-zinc-50 {
- --tw-text-opacity: 1;
- color: rgb(250 250 250 / var(--tw-text-opacity));
-}
-
-.text-zinc-500 {
- --tw-text-opacity: 1;
- color: rgb(113 113 122 / var(--tw-text-opacity));
-}
-
-.text-zinc-600 {
- --tw-text-opacity: 1;
- color: rgb(82 82 91 / var(--tw-text-opacity));
-}
-
-.text-zinc-700 {
- --tw-text-opacity: 1;
- color: rgb(63 63 70 / var(--tw-text-opacity));
-}
-
-.text-zinc-800 {
- --tw-text-opacity: 1;
- color: rgb(39 39 42 / var(--tw-text-opacity));
-}
-
-.text-zinc-900 {
- --tw-text-opacity: 1;
- color: rgb(24 24 27 / var(--tw-text-opacity));
-}
-
-.no-underline {
- text-decoration-line: none;
-}
-
-.opacity-50 {
- opacity: 0.5;
-}
-
-.opacity-70 {
- opacity: 0.7;
-}
-
-.shadow {
- --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
- --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.shadow-lg {
- --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
- --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.shadow-none {
- --tw-shadow: 0 0 #0000;
- --tw-shadow-colored: 0 0 #0000;
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.shadow-sm {
- --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
- --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.outline-none {
- outline: 2px solid transparent;
- outline-offset: 2px;
-}
-
-.outline {
- outline-style: solid;
-}
-
-.outline-amber-100 {
- outline-color: #fef3c7;
-}
-
-.outline-amber-200 {
- outline-color: #fde68a;
-}
-
-.outline-amber-300 {
- outline-color: #fcd34d;
-}
-
-.outline-amber-400 {
- outline-color: #fbbf24;
-}
-
-.outline-amber-50 {
- outline-color: #fffbeb;
-}
-
-.outline-amber-500 {
- outline-color: #f59e0b;
-}
-
-.outline-amber-600 {
- outline-color: #d97706;
-}
-
-.outline-amber-700 {
- outline-color: #b45309;
-}
-
-.outline-amber-800 {
- outline-color: #92400e;
-}
-
-.outline-amber-900 {
- outline-color: #78350f;
-}
-
-.outline-black {
- outline-color: #000;
-}
-
-.outline-blue-100 {
- outline-color: #dbeafe;
-}
-
-.outline-blue-200 {
- outline-color: #bfdbfe;
-}
-
-.outline-blue-300 {
- outline-color: #93c5fd;
-}
-
-.outline-blue-400 {
- outline-color: #60a5fa;
-}
-
-.outline-blue-50 {
- outline-color: #eff6ff;
-}
-
-.outline-blue-500 {
- outline-color: #3b82f6;
-}
-
-.outline-blue-600 {
- outline-color: #2563eb;
-}
-
-.outline-blue-700 {
- outline-color: #1d4ed8;
-}
-
-.outline-blue-800 {
- outline-color: #1e40af;
-}
-
-.outline-blue-900 {
- outline-color: #1e3a8a;
-}
-
-.outline-cyan-100 {
- outline-color: #cffafe;
-}
-
-.outline-cyan-200 {
- outline-color: #a5f3fc;
-}
-
-.outline-cyan-300 {
- outline-color: #67e8f9;
-}
-
-.outline-cyan-400 {
- outline-color: #22d3ee;
-}
-
-.outline-cyan-50 {
- outline-color: #ecfeff;
-}
-
-.outline-cyan-500 {
- outline-color: #06b6d4;
-}
-
-.outline-cyan-600 {
- outline-color: #0891b2;
-}
-
-.outline-cyan-700 {
- outline-color: #0e7490;
-}
-
-.outline-cyan-800 {
- outline-color: #155e75;
-}
-
-.outline-cyan-900 {
- outline-color: #164e63;
-}
-
-.outline-emerald-100 {
- outline-color: #d1fae5;
-}
-
-.outline-emerald-200 {
- outline-color: #a7f3d0;
-}
-
-.outline-emerald-300 {
- outline-color: #6ee7b7;
-}
-
-.outline-emerald-400 {
- outline-color: #34d399;
-}
-
-.outline-emerald-50 {
- outline-color: #ecfdf5;
-}
-
-.outline-emerald-500 {
- outline-color: #10b981;
-}
-
-.outline-emerald-600 {
- outline-color: #059669;
-}
-
-.outline-emerald-700 {
- outline-color: #047857;
-}
-
-.outline-emerald-800 {
- outline-color: #065f46;
-}
-
-.outline-emerald-900 {
- outline-color: #064e3b;
-}
-
-.outline-fuchsia-100 {
- outline-color: #fae8ff;
-}
-
-.outline-fuchsia-200 {
- outline-color: #f5d0fe;
-}
-
-.outline-fuchsia-300 {
- outline-color: #f0abfc;
-}
-
-.outline-fuchsia-400 {
- outline-color: #e879f9;
-}
-
-.outline-fuchsia-50 {
- outline-color: #fdf4ff;
-}
-
-.outline-fuchsia-500 {
- outline-color: #d946ef;
-}
-
-.outline-fuchsia-600 {
- outline-color: #c026d3;
-}
-
-.outline-fuchsia-700 {
- outline-color: #a21caf;
-}
-
-.outline-fuchsia-800 {
- outline-color: #86198f;
-}
-
-.outline-fuchsia-900 {
- outline-color: #701a75;
-}
-
-.outline-gray-100 {
- outline-color: #f3f4f6;
-}
-
-.outline-gray-200 {
- outline-color: #e5e7eb;
-}
-
-.outline-gray-300 {
- outline-color: #d1d5db;
-}
-
-.outline-gray-400 {
- outline-color: #9ca3af;
-}
-
-.outline-gray-50 {
- outline-color: #f9fafb;
-}
-
-.outline-gray-500 {
- outline-color: #6b7280;
-}
-
-.outline-gray-600 {
- outline-color: #4b5563;
-}
-
-.outline-gray-700 {
- outline-color: #374151;
-}
-
-.outline-gray-800 {
- outline-color: #1f2937;
-}
-
-.outline-gray-900 {
- outline-color: #111827;
-}
-
-.outline-green-100 {
- outline-color: #dcfce7;
-}
-
-.outline-green-200 {
- outline-color: #bbf7d0;
-}
-
-.outline-green-300 {
- outline-color: #86efac;
-}
-
-.outline-green-400 {
- outline-color: #4ade80;
-}
-
-.outline-green-50 {
- outline-color: #f0fdf4;
-}
-
-.outline-green-500 {
- outline-color: #22c55e;
-}
-
-.outline-green-600 {
- outline-color: #16a34a;
-}
-
-.outline-green-700 {
- outline-color: #15803d;
-}
-
-.outline-green-800 {
- outline-color: #166534;
-}
-
-.outline-green-900 {
- outline-color: #14532d;
-}
-
-.outline-indigo-100 {
- outline-color: #e0e7ff;
-}
-
-.outline-indigo-200 {
- outline-color: #c7d2fe;
-}
-
-.outline-indigo-300 {
- outline-color: #a5b4fc;
-}
-
-.outline-indigo-400 {
- outline-color: #818cf8;
-}
-
-.outline-indigo-50 {
- outline-color: #eef2ff;
-}
-
-.outline-indigo-500 {
- outline-color: #6366f1;
-}
-
-.outline-indigo-600 {
- outline-color: #4f46e5;
-}
-
-.outline-indigo-700 {
- outline-color: #4338ca;
-}
-
-.outline-indigo-800 {
- outline-color: #3730a3;
-}
-
-.outline-indigo-900 {
- outline-color: #312e81;
-}
-
-.outline-lime-100 {
- outline-color: #ecfccb;
-}
-
-.outline-lime-200 {
- outline-color: #d9f99d;
-}
-
-.outline-lime-300 {
- outline-color: #bef264;
-}
-
-.outline-lime-400 {
- outline-color: #a3e635;
-}
-
-.outline-lime-50 {
- outline-color: #f7fee7;
-}
-
-.outline-lime-500 {
- outline-color: #84cc16;
-}
-
-.outline-lime-600 {
- outline-color: #65a30d;
-}
-
-.outline-lime-700 {
- outline-color: #4d7c0f;
-}
-
-.outline-lime-800 {
- outline-color: #3f6212;
-}
-
-.outline-lime-900 {
- outline-color: #365314;
-}
-
-.outline-neutral-100 {
- outline-color: #f5f5f5;
-}
-
-.outline-neutral-200 {
- outline-color: #e5e5e5;
-}
-
-.outline-neutral-300 {
- outline-color: #d4d4d4;
-}
-
-.outline-neutral-400 {
- outline-color: #a3a3a3;
-}
-
-.outline-neutral-50 {
- outline-color: #fafafa;
-}
-
-.outline-neutral-500 {
- outline-color: #737373;
-}
-
-.outline-neutral-600 {
- outline-color: #525252;
-}
-
-.outline-neutral-700 {
- outline-color: #404040;
-}
-
-.outline-neutral-800 {
- outline-color: #262626;
-}
-
-.outline-neutral-900 {
- outline-color: #171717;
-}
-
-.outline-orange-100 {
- outline-color: #ffedd5;
-}
-
-.outline-orange-200 {
- outline-color: #fed7aa;
-}
-
-.outline-orange-300 {
- outline-color: #fdba74;
-}
-
-.outline-orange-400 {
- outline-color: #fb923c;
-}
-
-.outline-orange-50 {
- outline-color: #fff7ed;
-}
-
-.outline-orange-500 {
- outline-color: #f97316;
-}
-
-.outline-orange-600 {
- outline-color: #ea580c;
-}
-
-.outline-orange-700 {
- outline-color: #c2410c;
-}
-
-.outline-orange-800 {
- outline-color: #9a3412;
-}
-
-.outline-orange-900 {
- outline-color: #7c2d12;
-}
-
-.outline-pink-100 {
- outline-color: #fce7f3;
-}
-
-.outline-pink-200 {
- outline-color: #fbcfe8;
-}
-
-.outline-pink-300 {
- outline-color: #f9a8d4;
-}
-
-.outline-pink-400 {
- outline-color: #f472b6;
-}
-
-.outline-pink-50 {
- outline-color: #fdf2f8;
-}
-
-.outline-pink-500 {
- outline-color: #ec4899;
-}
-
-.outline-pink-600 {
- outline-color: #db2777;
-}
-
-.outline-pink-700 {
- outline-color: #be185d;
-}
-
-.outline-pink-900 {
- outline-color: #831843;
-}
-
-.outline-purple-100 {
- outline-color: #f3e8ff;
-}
-
-.outline-purple-200 {
- outline-color: #e9d5ff;
-}
-
-.outline-purple-300 {
- outline-color: #d8b4fe;
-}
-
-.outline-purple-400 {
- outline-color: #c084fc;
-}
-
-.outline-purple-50 {
- outline-color: #faf5ff;
-}
-
-.outline-purple-500 {
- outline-color: #a855f7;
-}
-
-.outline-purple-600 {
- outline-color: #9333ea;
-}
-
-.outline-purple-700 {
- outline-color: #7e22ce;
-}
-
-.outline-purple-800 {
- outline-color: #6b21a8;
-}
-
-.outline-purple-900 {
- outline-color: #581c87;
-}
-
-.outline-red-100 {
- outline-color: #fee2e2;
-}
-
-.outline-red-200 {
- outline-color: #fecaca;
-}
-
-.outline-red-300 {
- outline-color: #fca5a5;
-}
-
-.outline-red-400 {
- outline-color: #f87171;
-}
-
-.outline-red-50 {
- outline-color: #fef2f2;
-}
-
-.outline-red-500 {
- outline-color: #ef4444;
-}
-
-.outline-red-600 {
- outline-color: #dc2626;
-}
-
-.outline-red-700 {
- outline-color: #b91c1c;
-}
-
-.outline-red-800 {
- outline-color: #991b1b;
-}
-
-.outline-red-900 {
- outline-color: #7f1d1d;
-}
-
-.outline-rose-100 {
- outline-color: #ffe4e6;
-}
-
-.outline-rose-200 {
- outline-color: #fecdd3;
-}
-
-.outline-rose-300 {
- outline-color: #fda4af;
-}
-
-.outline-rose-400 {
- outline-color: #fb7185;
-}
-
-.outline-rose-50 {
- outline-color: #fff1f2;
-}
-
-.outline-rose-500 {
- outline-color: #f43f5e;
-}
-
-.outline-rose-600 {
- outline-color: #e11d48;
-}
-
-.outline-rose-700 {
- outline-color: #be123c;
-}
-
-.outline-rose-800 {
- outline-color: #9f1239;
-}
-
-.outline-rose-900 {
- outline-color: #881337;
-}
-
-.outline-sky-100 {
- outline-color: #e0f2fe;
-}
-
-.outline-sky-200 {
- outline-color: #bae6fd;
-}
-
-.outline-sky-300 {
- outline-color: #7dd3fc;
-}
-
-.outline-sky-400 {
- outline-color: #38bdf8;
-}
-
-.outline-sky-50 {
- outline-color: #f0f9ff;
-}
-
-.outline-sky-500 {
- outline-color: #0ea5e9;
-}
-
-.outline-sky-600 {
- outline-color: #0284c7;
-}
-
-.outline-sky-700 {
- outline-color: #0369a1;
-}
-
-.outline-sky-800 {
- outline-color: #075985;
-}
-
-.outline-sky-900 {
- outline-color: #0c4a6e;
-}
-
-.outline-slate-100 {
- outline-color: #f1f5f9;
-}
-
-.outline-slate-200 {
- outline-color: #e2e8f0;
-}
-
-.outline-slate-300 {
- outline-color: #cbd5e1;
-}
-
-.outline-slate-400 {
- outline-color: #94a3b8;
-}
-
-.outline-slate-50 {
- outline-color: #f8fafc;
-}
-
-.outline-slate-500 {
- outline-color: #64748b;
-}
-
-.outline-slate-600 {
- outline-color: #475569;
-}
-
-.outline-slate-700 {
- outline-color: #334155;
-}
-
-.outline-slate-800 {
- outline-color: #1e293b;
-}
-
-.outline-slate-900 {
- outline-color: #0f172a;
-}
-
-.outline-stone-100 {
- outline-color: #f5f5f4;
-}
-
-.outline-stone-200 {
- outline-color: #e7e5e4;
-}
-
-.outline-stone-300 {
- outline-color: #d6d3d1;
-}
-
-.outline-stone-400 {
- outline-color: #a8a29e;
-}
-
-.outline-stone-50 {
- outline-color: #fafaf9;
-}
-
-.outline-stone-500 {
- outline-color: #78716c;
-}
-
-.outline-stone-600 {
- outline-color: #57534e;
-}
-
-.outline-stone-700 {
- outline-color: #44403c;
-}
-
-.outline-stone-800 {
- outline-color: #292524;
-}
-
-.outline-stone-900 {
- outline-color: #1c1917;
-}
-
-.outline-teal-100 {
- outline-color: #ccfbf1;
-}
-
-.outline-teal-200 {
- outline-color: #99f6e4;
-}
-
-.outline-teal-300 {
- outline-color: #5eead4;
-}
-
-.outline-teal-400 {
- outline-color: #2dd4bf;
-}
-
-.outline-teal-50 {
- outline-color: #f0fdfa;
-}
-
-.outline-teal-500 {
- outline-color: #14b8a6;
-}
-
-.outline-teal-600 {
- outline-color: #0d9488;
-}
-
-.outline-teal-700 {
- outline-color: #0f766e;
-}
-
-.outline-teal-800 {
- outline-color: #115e59;
-}
-
-.outline-teal-900 {
- outline-color: #134e4a;
-}
-
-.outline-transparent {
- outline-color: transparent;
-}
-
-.outline-violet-100 {
- outline-color: #ede9fe;
-}
-
-.outline-violet-200 {
- outline-color: #ddd6fe;
-}
-
-.outline-violet-300 {
- outline-color: #c4b5fd;
-}
-
-.outline-violet-400 {
- outline-color: #a78bfa;
-}
-
-.outline-violet-50 {
- outline-color: #f5f3ff;
-}
-
-.outline-violet-500 {
- outline-color: #8b5cf6;
-}
-
-.outline-violet-600 {
- outline-color: #7c3aed;
-}
-
-.outline-violet-700 {
- outline-color: #6d28d9;
-}
-
-.outline-violet-800 {
- outline-color: #5b21b6;
-}
-
-.outline-violet-900 {
- outline-color: #4c1d95;
-}
-
-.outline-white {
- outline-color: #fff;
-}
-
-.outline-yellow-100 {
- outline-color: #fef9c3;
-}
-
-.outline-yellow-200 {
- outline-color: #fef08a;
-}
-
-.outline-yellow-300 {
- outline-color: #fde047;
-}
-
-.outline-yellow-400 {
- outline-color: #facc15;
-}
-
-.outline-yellow-50 {
- outline-color: #fefce8;
-}
-
-.outline-yellow-500 {
- outline-color: #eab308;
-}
-
-.outline-yellow-600 {
- outline-color: #ca8a04;
-}
-
-.outline-yellow-700 {
- outline-color: #a16207;
-}
-
-.outline-yellow-800 {
- outline-color: #854d0e;
-}
-
-.outline-yellow-900 {
- outline-color: #713f12;
-}
-
-.outline-zinc-100 {
- outline-color: #f4f4f5;
-}
-
-.outline-zinc-200 {
- outline-color: #e4e4e7;
-}
-
-.outline-zinc-300 {
- outline-color: #d4d4d8;
-}
-
-.outline-zinc-400 {
- outline-color: #a1a1aa;
-}
-
-.outline-zinc-50 {
- outline-color: #fafafa;
-}
-
-.outline-zinc-500 {
- outline-color: #71717a;
-}
-
-.outline-zinc-600 {
- outline-color: #52525b;
-}
-
-.outline-zinc-700 {
- outline-color: #3f3f46;
-}
-
-.outline-zinc-800 {
- outline-color: #27272a;
-}
-
-.outline-zinc-900 {
- outline-color: #18181b;
-}
-
-.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);
-}
-
-.ring-1 {
- --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(1px + 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);
-}
-
-.ring-2 {
- --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(2px + 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);
-}
-
-.ring-amber-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 243 199 / var(--tw-ring-opacity));
-}
-
-.ring-amber-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity));
-}
-
-.ring-amber-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity));
-}
-
-.ring-amber-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 191 36 / var(--tw-ring-opacity));
-}
-
-.ring-amber-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 251 235 / var(--tw-ring-opacity));
-}
-
-.ring-amber-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity));
-}
-
-.ring-amber-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(217 119 6 / var(--tw-ring-opacity));
-}
-
-.ring-amber-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(180 83 9 / var(--tw-ring-opacity));
-}
-
-.ring-amber-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity));
-}
-
-.ring-amber-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(120 53 15 / var(--tw-ring-opacity));
-}
-
-.ring-black {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));
-}
-
-.ring-blue-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity));
-}
-
-.ring-blue-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity));
-}
-
-.ring-blue-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity));
-}
-
-.ring-blue-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity));
-}
-
-.ring-blue-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(239 246 255 / var(--tw-ring-opacity));
-}
-
-.ring-blue-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
-}
-
-.ring-blue-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity));
-}
-
-.ring-blue-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(29 78 216 / var(--tw-ring-opacity));
-}
-
-.ring-blue-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity));
-}
-
-.ring-blue-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(30 58 138 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(207 250 254 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 254 255 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(8 145 178 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity));
-}
-
-.ring-cyan-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(22 78 99 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(209 250 229 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(52 211 153 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 253 245 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(5 150 105 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity));
-}
-
-.ring-emerald-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(6 78 59 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 232 255 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 208 254 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 171 252 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(232 121 249 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 244 255 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(217 70 239 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(192 38 211 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(162 28 175 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(134 25 143 / var(--tw-ring-opacity));
-}
-
-.ring-fuchsia-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(112 26 117 / var(--tw-ring-opacity));
-}
-
-.ring-gray-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(243 244 246 / var(--tw-ring-opacity));
-}
-
-.ring-gray-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity));
-}
-
-.ring-gray-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity));
-}
-
-.ring-gray-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity));
-}
-
-.ring-gray-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(249 250 251 / var(--tw-ring-opacity));
-}
-
-.ring-gray-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity));
-}
-
-.ring-gray-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity));
-}
-
-.ring-gray-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity));
-}
-
-.ring-gray-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity));
-}
-
-.ring-gray-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity));
-}
-
-.ring-green-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(220 252 231 / var(--tw-ring-opacity));
-}
-
-.ring-green-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity));
-}
-
-.ring-green-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity));
-}
-
-.ring-green-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(74 222 128 / var(--tw-ring-opacity));
-}
-
-.ring-green-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 253 244 / var(--tw-ring-opacity));
-}
-
-.ring-green-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity));
-}
-
-.ring-green-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(22 163 74 / var(--tw-ring-opacity));
-}
-
-.ring-green-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(21 128 61 / var(--tw-ring-opacity));
-}
-
-.ring-green-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(22 101 52 / var(--tw-ring-opacity));
-}
-
-.ring-green-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(20 83 45 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(224 231 255 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(129 140 248 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(238 242 255 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(67 56 202 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(55 48 163 / var(--tw-ring-opacity));
-}
-
-.ring-indigo-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(49 46 129 / var(--tw-ring-opacity));
-}
-
-.ring-lime-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 252 203 / var(--tw-ring-opacity));
-}
-
-.ring-lime-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(217 249 157 / var(--tw-ring-opacity));
-}
-
-.ring-lime-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(190 242 100 / var(--tw-ring-opacity));
-}
-
-.ring-lime-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(163 230 53 / var(--tw-ring-opacity));
-}
-
-.ring-lime-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(247 254 231 / var(--tw-ring-opacity));
-}
-
-.ring-lime-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(132 204 22 / var(--tw-ring-opacity));
-}
-
-.ring-lime-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(101 163 13 / var(--tw-ring-opacity));
-}
-
-.ring-lime-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(77 124 15 / var(--tw-ring-opacity));
-}
-
-.ring-lime-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity));
-}
-
-.ring-lime-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(54 83 20 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 245 245 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(229 229 229 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(212 212 212 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(163 163 163 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(115 115 115 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(82 82 82 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(64 64 64 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(38 38 38 / var(--tw-ring-opacity));
-}
-
-.ring-neutral-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(23 23 23 / var(--tw-ring-opacity));
-}
-
-.ring-orange-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 237 213 / var(--tw-ring-opacity));
-}
-
-.ring-orange-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 215 170 / var(--tw-ring-opacity));
-}
-
-.ring-orange-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 186 116 / var(--tw-ring-opacity));
-}
-
-.ring-orange-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 146 60 / var(--tw-ring-opacity));
-}
-
-.ring-orange-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 247 237 / var(--tw-ring-opacity));
-}
-
-.ring-orange-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity));
-}
-
-.ring-orange-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(234 88 12 / var(--tw-ring-opacity));
-}
-
-.ring-orange-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(194 65 12 / var(--tw-ring-opacity));
-}
-
-.ring-orange-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(154 52 18 / var(--tw-ring-opacity));
-}
-
-.ring-orange-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(124 45 18 / var(--tw-ring-opacity));
-}
-
-.ring-pink-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(252 231 243 / var(--tw-ring-opacity));
-}
-
-.ring-pink-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 207 232 / var(--tw-ring-opacity));
-}
-
-.ring-pink-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(249 168 212 / var(--tw-ring-opacity));
-}
-
-.ring-pink-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(244 114 182 / var(--tw-ring-opacity));
-}
-
-.ring-pink-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 242 248 / var(--tw-ring-opacity));
-}
-
-.ring-pink-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 72 153 / var(--tw-ring-opacity));
-}
-
-.ring-pink-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(219 39 119 / var(--tw-ring-opacity));
-}
-
-.ring-pink-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(190 24 93 / var(--tw-ring-opacity));
-}
-
-.ring-pink-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(131 24 67 / var(--tw-ring-opacity));
-}
-
-.ring-purple-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(243 232 255 / var(--tw-ring-opacity));
-}
-
-.ring-purple-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity));
-}
-
-.ring-purple-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(216 180 254 / var(--tw-ring-opacity));
-}
-
-.ring-purple-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(192 132 252 / var(--tw-ring-opacity));
-}
-
-.ring-purple-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 245 255 / var(--tw-ring-opacity));
-}
-
-.ring-purple-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity));
-}
-
-.ring-purple-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(147 51 234 / var(--tw-ring-opacity));
-}
-
-.ring-purple-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(126 34 206 / var(--tw-ring-opacity));
-}
-
-.ring-purple-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity));
-}
-
-.ring-purple-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(88 28 135 / var(--tw-ring-opacity));
-}
-
-.ring-red-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity));
-}
-
-.ring-red-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity));
-}
-
-.ring-red-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity));
-}
-
-.ring-red-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity));
-}
-
-.ring-red-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 242 242 / var(--tw-ring-opacity));
-}
-
-.ring-red-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity));
-}
-
-.ring-red-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity));
-}
-
-.ring-red-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity));
-}
-
-.ring-red-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(153 27 27 / var(--tw-ring-opacity));
-}
-
-.ring-red-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(127 29 29 / var(--tw-ring-opacity));
-}
-
-.ring-rose-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 228 230 / var(--tw-ring-opacity));
-}
-
-.ring-rose-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 205 211 / var(--tw-ring-opacity));
-}
-
-.ring-rose-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 164 175 / var(--tw-ring-opacity));
-}
-
-.ring-rose-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 113 133 / var(--tw-ring-opacity));
-}
-
-.ring-rose-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 241 242 / var(--tw-ring-opacity));
-}
-
-.ring-rose-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(244 63 94 / var(--tw-ring-opacity));
-}
-
-.ring-rose-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(225 29 72 / var(--tw-ring-opacity));
-}
-
-.ring-rose-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(190 18 60 / var(--tw-ring-opacity));
-}
-
-.ring-rose-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(159 18 57 / var(--tw-ring-opacity));
-}
-
-.ring-rose-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(136 19 55 / var(--tw-ring-opacity));
-}
-
-.ring-sky-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(224 242 254 / var(--tw-ring-opacity));
-}
-
-.ring-sky-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(186 230 253 / var(--tw-ring-opacity));
-}
-
-.ring-sky-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(125 211 252 / var(--tw-ring-opacity));
-}
-
-.ring-sky-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity));
-}
-
-.ring-sky-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 249 255 / var(--tw-ring-opacity));
-}
-
-.ring-sky-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity));
-}
-
-.ring-sky-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(2 132 199 / var(--tw-ring-opacity));
-}
-
-.ring-sky-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(3 105 161 / var(--tw-ring-opacity));
-}
-
-.ring-sky-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(7 89 133 / var(--tw-ring-opacity));
-}
-
-.ring-sky-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(12 74 110 / var(--tw-ring-opacity));
-}
-
-.ring-slate-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(241 245 249 / var(--tw-ring-opacity));
-}
-
-.ring-slate-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity));
-}
-
-.ring-slate-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity));
-}
-
-.ring-slate-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(148 163 184 / var(--tw-ring-opacity));
-}
-
-.ring-slate-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(248 250 252 / var(--tw-ring-opacity));
-}
-
-.ring-slate-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(100 116 139 / var(--tw-ring-opacity));
-}
-
-.ring-slate-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(71 85 105 / var(--tw-ring-opacity));
-}
-
-.ring-slate-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(51 65 85 / var(--tw-ring-opacity));
-}
-
-.ring-slate-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(30 41 59 / var(--tw-ring-opacity));
-}
-
-.ring-slate-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(15 23 42 / var(--tw-ring-opacity));
-}
-
-.ring-stone-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 245 244 / var(--tw-ring-opacity));
-}
-
-.ring-stone-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(231 229 228 / var(--tw-ring-opacity));
-}
-
-.ring-stone-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(214 211 209 / var(--tw-ring-opacity));
-}
-
-.ring-stone-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(168 162 158 / var(--tw-ring-opacity));
-}
-
-.ring-stone-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 250 249 / var(--tw-ring-opacity));
-}
-
-.ring-stone-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(120 113 108 / var(--tw-ring-opacity));
-}
-
-.ring-stone-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(87 83 78 / var(--tw-ring-opacity));
-}
-
-.ring-stone-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(68 64 60 / var(--tw-ring-opacity));
-}
-
-.ring-stone-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(41 37 36 / var(--tw-ring-opacity));
-}
-
-.ring-stone-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(28 25 23 / var(--tw-ring-opacity));
-}
-
-.ring-teal-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(204 251 241 / var(--tw-ring-opacity));
-}
-
-.ring-teal-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(153 246 228 / var(--tw-ring-opacity));
-}
-
-.ring-teal-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity));
-}
-
-.ring-teal-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(45 212 191 / var(--tw-ring-opacity));
-}
-
-.ring-teal-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 253 250 / var(--tw-ring-opacity));
-}
-
-.ring-teal-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity));
-}
-
-.ring-teal-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(13 148 136 / var(--tw-ring-opacity));
-}
-
-.ring-teal-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(15 118 110 / var(--tw-ring-opacity));
-}
-
-.ring-teal-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(17 94 89 / var(--tw-ring-opacity));
-}
-
-.ring-teal-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(19 78 74 / var(--tw-ring-opacity));
-}
-
-.ring-transparent {
- --tw-ring-color: transparent;
-}
-
-.ring-violet-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity));
-}
-
-.ring-violet-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity));
-}
-
-.ring-violet-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity));
-}
-
-.ring-violet-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity));
-}
-
-.ring-violet-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 243 255 / var(--tw-ring-opacity));
-}
-
-.ring-violet-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity));
-}
-
-.ring-violet-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(124 58 237 / var(--tw-ring-opacity));
-}
-
-.ring-violet-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity));
-}
-
-.ring-violet-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(91 33 182 / var(--tw-ring-opacity));
-}
-
-.ring-violet-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(76 29 149 / var(--tw-ring-opacity));
-}
-
-.ring-white {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 249 195 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 240 138 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 224 71 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 204 21 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 252 232 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(202 138 4 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(161 98 7 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(133 77 14 / var(--tw-ring-opacity));
-}
-
-.ring-yellow-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(113 63 18 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-100 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(244 244 245 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-200 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(228 228 231 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(212 212 216 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-400 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(161 161 170 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-50 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(113 113 122 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-600 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(82 82 91 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-700 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(63 63 70 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-800 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(39 39 42 / var(--tw-ring-opacity));
-}
-
-.ring-zinc-900 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(24 24 27 / var(--tw-ring-opacity));
-}
-
-.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);
-}
-
-.transition {
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
-}
-
-.transition-all {
- transition-property: all;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
-}
-
-.placeholder\:text-gray-400::-moz-placeholder {
- --tw-text-opacity: 1;
- color: rgb(156 163 175 / var(--tw-text-opacity));
-}
-
-.placeholder\:text-gray-400::placeholder {
- --tw-text-opacity: 1;
- color: rgb(156 163 175 / var(--tw-text-opacity));
-}
-
-.placeholder\:text-gray-500::-moz-placeholder {
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity));
-}
-
-.placeholder\:text-gray-500::placeholder {
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity));
-}
-
-.visited\:text-blue-500:visited {
- color: rgb(59 130 246 );
-}
-
-.hover\:border-b-2:hover {
- border-bottom-width: 2px;
-}
-
-.hover\:border-amber-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(254 243 199 / var(--tw-border-opacity));
-}
-
-.hover\:border-amber-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(253 230 138 / var(--tw-border-opacity));
-}
-
-.hover\:border-amber-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(252 211 77 / var(--tw-border-opacity));
-}
-
-.hover\:border-amber-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(251 191 36 / var(--tw-border-opacity));
-}
-
-.hover\:border-amber-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(255 251 235 / var(--tw-border-opacity));
-}
-
-.hover\:border-amber-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(245 158 11 / var(--tw-border-opacity));
-}
-
-.hover\:border-amber-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(217 119 6 / var(--tw-border-opacity));
-}
-
-.hover\:border-amber-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(180 83 9 / var(--tw-border-opacity));
-}
-
-.hover\:border-amber-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(146 64 14 / var(--tw-border-opacity));
-}
-
-.hover\:border-amber-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(120 53 15 / var(--tw-border-opacity));
-}
-
-.hover\:border-black:hover {
- --tw-border-opacity: 1;
- border-color: rgb(0 0 0 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(219 234 254 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(191 219 254 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(147 197 253 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(96 165 250 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(239 246 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(59 130 246 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(37 99 235 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(29 78 216 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(30 64 175 / var(--tw-border-opacity));
-}
-
-.hover\:border-blue-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(30 58 138 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(207 250 254 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(165 243 252 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(103 232 249 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(34 211 238 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(236 254 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(6 182 212 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(8 145 178 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(14 116 144 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(21 94 117 / var(--tw-border-opacity));
-}
-
-.hover\:border-cyan-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(22 78 99 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(209 250 229 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(167 243 208 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(110 231 183 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(52 211 153 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(236 253 245 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(16 185 129 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(5 150 105 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(4 120 87 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(6 95 70 / var(--tw-border-opacity));
-}
-
-.hover\:border-emerald-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(6 78 59 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(250 232 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(245 208 254 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(240 171 252 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(232 121 249 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(253 244 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(217 70 239 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(192 38 211 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(162 28 175 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(134 25 143 / var(--tw-border-opacity));
-}
-
-.hover\:border-fuchsia-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(112 26 117 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(243 244 246 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(229 231 235 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(209 213 219 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(156 163 175 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(249 250 251 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(107 114 128 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(75 85 99 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(55 65 81 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(31 41 55 / var(--tw-border-opacity));
-}
-
-.hover\:border-gray-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(17 24 39 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(220 252 231 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(187 247 208 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(134 239 172 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(74 222 128 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(240 253 244 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(34 197 94 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(22 163 74 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(21 128 61 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(22 101 52 / var(--tw-border-opacity));
-}
-
-.hover\:border-green-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(20 83 45 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(224 231 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(199 210 254 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(165 180 252 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(129 140 248 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(238 242 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(99 102 241 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(79 70 229 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(67 56 202 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(55 48 163 / var(--tw-border-opacity));
-}
-
-.hover\:border-indigo-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(49 46 129 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(236 252 203 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(217 249 157 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(190 242 100 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(163 230 53 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(247 254 231 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(132 204 22 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(101 163 13 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(77 124 15 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(63 98 18 / var(--tw-border-opacity));
-}
-
-.hover\:border-lime-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(54 83 20 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(245 245 245 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(229 229 229 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(212 212 212 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(163 163 163 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(250 250 250 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(115 115 115 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(82 82 82 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(64 64 64 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(38 38 38 / var(--tw-border-opacity));
-}
-
-.hover\:border-neutral-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(23 23 23 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(255 237 213 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(254 215 170 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(253 186 116 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(251 146 60 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(255 247 237 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(249 115 22 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(234 88 12 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(194 65 12 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(154 52 18 / var(--tw-border-opacity));
-}
-
-.hover\:border-orange-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(124 45 18 / var(--tw-border-opacity));
-}
-
-.hover\:border-pink-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(252 231 243 / var(--tw-border-opacity));
-}
-
-.hover\:border-pink-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(251 207 232 / var(--tw-border-opacity));
-}
-
-.hover\:border-pink-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(249 168 212 / var(--tw-border-opacity));
-}
-
-.hover\:border-pink-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(244 114 182 / var(--tw-border-opacity));
-}
-
-.hover\:border-pink-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(253 242 248 / var(--tw-border-opacity));
-}
-
-.hover\:border-pink-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(236 72 153 / var(--tw-border-opacity));
-}
-
-.hover\:border-pink-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(219 39 119 / var(--tw-border-opacity));
-}
-
-.hover\:border-pink-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(190 24 93 / var(--tw-border-opacity));
-}
-
-.hover\:border-pink-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(131 24 67 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(243 232 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(233 213 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(216 180 254 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(192 132 252 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(250 245 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(168 85 247 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(147 51 234 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(126 34 206 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(107 33 168 / var(--tw-border-opacity));
-}
-
-.hover\:border-purple-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(88 28 135 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(254 226 226 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(254 202 202 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(252 165 165 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(248 113 113 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(254 242 242 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(239 68 68 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(220 38 38 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(185 28 28 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(153 27 27 / var(--tw-border-opacity));
-}
-
-.hover\:border-red-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(127 29 29 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(255 228 230 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(254 205 211 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(253 164 175 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(251 113 133 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(255 241 242 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(244 63 94 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(225 29 72 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(190 18 60 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(159 18 57 / var(--tw-border-opacity));
-}
-
-.hover\:border-rose-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(136 19 55 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(224 242 254 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(186 230 253 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(125 211 252 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(56 189 248 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(240 249 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(14 165 233 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(2 132 199 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(3 105 161 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(7 89 133 / var(--tw-border-opacity));
-}
-
-.hover\:border-sky-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(12 74 110 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(241 245 249 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(226 232 240 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(203 213 225 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(148 163 184 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(248 250 252 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(100 116 139 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(71 85 105 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(51 65 85 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(30 41 59 / var(--tw-border-opacity));
-}
-
-.hover\:border-slate-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(15 23 42 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(245 245 244 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(231 229 228 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(214 211 209 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(168 162 158 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(250 250 249 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(120 113 108 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(87 83 78 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(68 64 60 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(41 37 36 / var(--tw-border-opacity));
-}
-
-.hover\:border-stone-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(28 25 23 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(204 251 241 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(153 246 228 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(94 234 212 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(45 212 191 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(240 253 250 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(20 184 166 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(13 148 136 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(15 118 110 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(17 94 89 / var(--tw-border-opacity));
-}
-
-.hover\:border-teal-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(19 78 74 / var(--tw-border-opacity));
-}
-
-.hover\:border-transparent:hover {
- border-color: transparent;
-}
-
-.hover\:border-violet-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(237 233 254 / var(--tw-border-opacity));
-}
-
-.hover\:border-violet-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(221 214 254 / var(--tw-border-opacity));
-}
-
-.hover\:border-violet-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(196 181 253 / var(--tw-border-opacity));
-}
-
-.hover\:border-violet-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(167 139 250 / var(--tw-border-opacity));
-}
-
-.hover\:border-violet-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(245 243 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-violet-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(139 92 246 / var(--tw-border-opacity));
-}
-
-.hover\:border-violet-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(124 58 237 / var(--tw-border-opacity));
-}
-
-.hover\:border-violet-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(109 40 217 / var(--tw-border-opacity));
-}
-
-.hover\:border-violet-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(91 33 182 / var(--tw-border-opacity));
-}
-
-.hover\:border-violet-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(76 29 149 / var(--tw-border-opacity));
-}
-
-.hover\:border-white:hover {
- --tw-border-opacity: 1;
- border-color: rgb(255 255 255 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(254 249 195 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(254 240 138 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(253 224 71 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(250 204 21 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(254 252 232 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(234 179 8 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(202 138 4 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(161 98 7 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(133 77 14 / var(--tw-border-opacity));
-}
-
-.hover\:border-yellow-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(113 63 18 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-100:hover {
- --tw-border-opacity: 1;
- border-color: rgb(244 244 245 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-200:hover {
- --tw-border-opacity: 1;
- border-color: rgb(228 228 231 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(212 212 216 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-400:hover {
- --tw-border-opacity: 1;
- border-color: rgb(161 161 170 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-50:hover {
- --tw-border-opacity: 1;
- border-color: rgb(250 250 250 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-500:hover {
- --tw-border-opacity: 1;
- border-color: rgb(113 113 122 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-600:hover {
- --tw-border-opacity: 1;
- border-color: rgb(82 82 91 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-700:hover {
- --tw-border-opacity: 1;
- border-color: rgb(63 63 70 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-800:hover {
- --tw-border-opacity: 1;
- border-color: rgb(39 39 42 / var(--tw-border-opacity));
-}
-
-.hover\:border-zinc-900:hover {
- --tw-border-opacity: 1;
- border-color: rgb(24 24 27 / var(--tw-border-opacity));
-}
-
-.hover\:bg-amber-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(254 243 199 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-amber-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(253 230 138 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-amber-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(252 211 77 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-amber-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(251 191 36 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-amber-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(255 251 235 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-amber-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(245 158 11 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-amber-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(217 119 6 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-amber-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(180 83 9 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-amber-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(146 64 14 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-amber-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(120 53 15 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-black:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(0 0 0 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(219 234 254 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(191 219 254 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(147 197 253 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(96 165 250 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(239 246 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(59 130 246 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(37 99 235 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(29 78 216 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(30 64 175 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(30 58 138 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(207 250 254 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(165 243 252 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(103 232 249 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(34 211 238 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(236 254 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(6 182 212 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(8 145 178 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(14 116 144 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(21 94 117 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-cyan-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(22 78 99 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(209 250 229 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(167 243 208 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(110 231 183 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(52 211 153 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(236 253 245 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(16 185 129 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(5 150 105 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(4 120 87 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(6 95 70 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-emerald-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(6 78 59 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(250 232 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(245 208 254 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(240 171 252 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(232 121 249 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(253 244 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(217 70 239 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(192 38 211 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(162 28 175 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(134 25 143 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-fuchsia-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(112 26 117 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(243 244 246 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(229 231 235 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(209 213 219 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(156 163 175 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(249 250 251 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(107 114 128 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(75 85 99 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(55 65 81 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(31 41 55 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(17 24 39 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(220 252 231 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(187 247 208 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(134 239 172 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(74 222 128 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(240 253 244 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(34 197 94 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(22 163 74 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(21 128 61 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(22 101 52 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-green-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(20 83 45 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(224 231 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(199 210 254 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(165 180 252 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(129 140 248 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(238 242 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(99 102 241 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(79 70 229 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(67 56 202 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(55 48 163 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-indigo-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(49 46 129 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(236 252 203 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(217 249 157 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(190 242 100 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(163 230 53 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(247 254 231 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(132 204 22 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(101 163 13 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(77 124 15 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(63 98 18 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-lime-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(54 83 20 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(245 245 245 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(229 229 229 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(212 212 212 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(163 163 163 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(250 250 250 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(115 115 115 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(82 82 82 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(64 64 64 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(38 38 38 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-neutral-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(23 23 23 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(255 237 213 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(254 215 170 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(253 186 116 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(251 146 60 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(255 247 237 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(249 115 22 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(234 88 12 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(194 65 12 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(154 52 18 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-orange-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(124 45 18 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-pink-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(252 231 243 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-pink-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(251 207 232 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-pink-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(249 168 212 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-pink-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(244 114 182 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-pink-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(253 242 248 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-pink-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(236 72 153 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-pink-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(219 39 119 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-pink-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(190 24 93 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-pink-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(131 24 67 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(243 232 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(233 213 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(216 180 254 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(192 132 252 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(250 245 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(168 85 247 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(147 51 234 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(126 34 206 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(107 33 168 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-purple-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(88 28 135 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(254 226 226 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(254 202 202 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(252 165 165 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(248 113 113 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(254 242 242 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(239 68 68 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(220 38 38 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(185 28 28 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(153 27 27 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-red-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(127 29 29 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(255 228 230 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(254 205 211 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(253 164 175 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(251 113 133 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(255 241 242 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(244 63 94 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(225 29 72 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(190 18 60 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(159 18 57 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-rose-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(136 19 55 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(224 242 254 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(186 230 253 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(125 211 252 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(56 189 248 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(240 249 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(14 165 233 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(2 132 199 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(3 105 161 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(7 89 133 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-sky-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(12 74 110 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(241 245 249 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(226 232 240 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(203 213 225 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(148 163 184 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(248 250 252 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(100 116 139 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(71 85 105 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(51 65 85 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(30 41 59 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-slate-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(15 23 42 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(245 245 244 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(231 229 228 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(214 211 209 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(168 162 158 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(250 250 249 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(120 113 108 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(87 83 78 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(68 64 60 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(41 37 36 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-stone-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(28 25 23 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(204 251 241 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(153 246 228 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(94 234 212 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(45 212 191 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(240 253 250 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(20 184 166 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(13 148 136 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(15 118 110 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(17 94 89 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-teal-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(19 78 74 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-transparent:hover {
- background-color: transparent;
-}
-
-.hover\:bg-violet-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(237 233 254 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-violet-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(221 214 254 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-violet-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(196 181 253 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-violet-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(167 139 250 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-violet-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(245 243 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-violet-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(139 92 246 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-violet-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(124 58 237 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-violet-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(109 40 217 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-violet-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(91 33 182 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-violet-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(76 29 149 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-white:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(254 249 195 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(254 240 138 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(253 224 71 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(250 204 21 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(254 252 232 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(234 179 8 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(202 138 4 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(161 98 7 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(133 77 14 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-yellow-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(113 63 18 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(244 244 245 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(228 228 231 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(212 212 216 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(161 161 170 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(250 250 250 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(113 113 122 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-600:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(82 82 91 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(63 63 70 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(39 39 42 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-zinc-900:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(24 24 27 / var(--tw-bg-opacity));
-}
-
-.hover\:text-amber-100:hover {
- --tw-text-opacity: 1;
- color: rgb(254 243 199 / var(--tw-text-opacity));
-}
-
-.hover\:text-amber-200:hover {
- --tw-text-opacity: 1;
- color: rgb(253 230 138 / var(--tw-text-opacity));
-}
-
-.hover\:text-amber-300:hover {
- --tw-text-opacity: 1;
- color: rgb(252 211 77 / var(--tw-text-opacity));
-}
-
-.hover\:text-amber-400:hover {
- --tw-text-opacity: 1;
- color: rgb(251 191 36 / var(--tw-text-opacity));
-}
-
-.hover\:text-amber-50:hover {
- --tw-text-opacity: 1;
- color: rgb(255 251 235 / var(--tw-text-opacity));
-}
-
-.hover\:text-amber-500:hover {
- --tw-text-opacity: 1;
- color: rgb(245 158 11 / var(--tw-text-opacity));
-}
-
-.hover\:text-amber-600:hover {
- --tw-text-opacity: 1;
- color: rgb(217 119 6 / var(--tw-text-opacity));
-}
-
-.hover\:text-amber-700:hover {
- --tw-text-opacity: 1;
- color: rgb(180 83 9 / var(--tw-text-opacity));
-}
-
-.hover\:text-amber-800:hover {
- --tw-text-opacity: 1;
- color: rgb(146 64 14 / var(--tw-text-opacity));
-}
-
-.hover\:text-amber-900:hover {
- --tw-text-opacity: 1;
- color: rgb(120 53 15 / var(--tw-text-opacity));
-}
-
-.hover\:text-black:hover {
- --tw-text-opacity: 1;
- color: rgb(0 0 0 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-100:hover {
- --tw-text-opacity: 1;
- color: rgb(219 234 254 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-200:hover {
- --tw-text-opacity: 1;
- color: rgb(191 219 254 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-300:hover {
- --tw-text-opacity: 1;
- color: rgb(147 197 253 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-400:hover {
- --tw-text-opacity: 1;
- color: rgb(96 165 250 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-50:hover {
- --tw-text-opacity: 1;
- color: rgb(239 246 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-500:hover {
- --tw-text-opacity: 1;
- color: rgb(59 130 246 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-600:hover {
- --tw-text-opacity: 1;
- color: rgb(37 99 235 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-700:hover {
- --tw-text-opacity: 1;
- color: rgb(29 78 216 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-800:hover {
- --tw-text-opacity: 1;
- color: rgb(30 64 175 / var(--tw-text-opacity));
-}
-
-.hover\:text-blue-900:hover {
- --tw-text-opacity: 1;
- color: rgb(30 58 138 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-100:hover {
- --tw-text-opacity: 1;
- color: rgb(207 250 254 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-200:hover {
- --tw-text-opacity: 1;
- color: rgb(165 243 252 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-300:hover {
- --tw-text-opacity: 1;
- color: rgb(103 232 249 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-400:hover {
- --tw-text-opacity: 1;
- color: rgb(34 211 238 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-50:hover {
- --tw-text-opacity: 1;
- color: rgb(236 254 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-500:hover {
- --tw-text-opacity: 1;
- color: rgb(6 182 212 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-600:hover {
- --tw-text-opacity: 1;
- color: rgb(8 145 178 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-700:hover {
- --tw-text-opacity: 1;
- color: rgb(14 116 144 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-800:hover {
- --tw-text-opacity: 1;
- color: rgb(21 94 117 / var(--tw-text-opacity));
-}
-
-.hover\:text-cyan-900:hover {
- --tw-text-opacity: 1;
- color: rgb(22 78 99 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-100:hover {
- --tw-text-opacity: 1;
- color: rgb(209 250 229 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-200:hover {
- --tw-text-opacity: 1;
- color: rgb(167 243 208 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-300:hover {
- --tw-text-opacity: 1;
- color: rgb(110 231 183 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-400:hover {
- --tw-text-opacity: 1;
- color: rgb(52 211 153 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-50:hover {
- --tw-text-opacity: 1;
- color: rgb(236 253 245 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-500:hover {
- --tw-text-opacity: 1;
- color: rgb(16 185 129 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-600:hover {
- --tw-text-opacity: 1;
- color: rgb(5 150 105 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-700:hover {
- --tw-text-opacity: 1;
- color: rgb(4 120 87 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-800:hover {
- --tw-text-opacity: 1;
- color: rgb(6 95 70 / var(--tw-text-opacity));
-}
-
-.hover\:text-emerald-900:hover {
- --tw-text-opacity: 1;
- color: rgb(6 78 59 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-100:hover {
- --tw-text-opacity: 1;
- color: rgb(250 232 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-200:hover {
- --tw-text-opacity: 1;
- color: rgb(245 208 254 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-300:hover {
- --tw-text-opacity: 1;
- color: rgb(240 171 252 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-400:hover {
- --tw-text-opacity: 1;
- color: rgb(232 121 249 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-50:hover {
- --tw-text-opacity: 1;
- color: rgb(253 244 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-500:hover {
- --tw-text-opacity: 1;
- color: rgb(217 70 239 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-600:hover {
- --tw-text-opacity: 1;
- color: rgb(192 38 211 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-700:hover {
- --tw-text-opacity: 1;
- color: rgb(162 28 175 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-800:hover {
- --tw-text-opacity: 1;
- color: rgb(134 25 143 / var(--tw-text-opacity));
-}
-
-.hover\:text-fuchsia-900:hover {
- --tw-text-opacity: 1;
- color: rgb(112 26 117 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-100:hover {
- --tw-text-opacity: 1;
- color: rgb(243 244 246 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-200:hover {
- --tw-text-opacity: 1;
- color: rgb(229 231 235 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-300:hover {
- --tw-text-opacity: 1;
- color: rgb(209 213 219 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-400:hover {
- --tw-text-opacity: 1;
- color: rgb(156 163 175 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-50:hover {
- --tw-text-opacity: 1;
- color: rgb(249 250 251 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-500:hover {
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-600:hover {
- --tw-text-opacity: 1;
- color: rgb(75 85 99 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-700:hover {
- --tw-text-opacity: 1;
- color: rgb(55 65 81 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-800:hover {
- --tw-text-opacity: 1;
- color: rgb(31 41 55 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-900:hover {
- --tw-text-opacity: 1;
- color: rgb(17 24 39 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-100:hover {
- --tw-text-opacity: 1;
- color: rgb(220 252 231 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-200:hover {
- --tw-text-opacity: 1;
- color: rgb(187 247 208 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-300:hover {
- --tw-text-opacity: 1;
- color: rgb(134 239 172 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-400:hover {
- --tw-text-opacity: 1;
- color: rgb(74 222 128 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-50:hover {
- --tw-text-opacity: 1;
- color: rgb(240 253 244 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-500:hover {
- --tw-text-opacity: 1;
- color: rgb(34 197 94 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-600:hover {
- --tw-text-opacity: 1;
- color: rgb(22 163 74 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-700:hover {
- --tw-text-opacity: 1;
- color: rgb(21 128 61 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-800:hover {
- --tw-text-opacity: 1;
- color: rgb(22 101 52 / var(--tw-text-opacity));
-}
-
-.hover\:text-green-900:hover {
- --tw-text-opacity: 1;
- color: rgb(20 83 45 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-100:hover {
- --tw-text-opacity: 1;
- color: rgb(224 231 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-200:hover {
- --tw-text-opacity: 1;
- color: rgb(199 210 254 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-300:hover {
- --tw-text-opacity: 1;
- color: rgb(165 180 252 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-400:hover {
- --tw-text-opacity: 1;
- color: rgb(129 140 248 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-50:hover {
- --tw-text-opacity: 1;
- color: rgb(238 242 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-500:hover {
- --tw-text-opacity: 1;
- color: rgb(99 102 241 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-600:hover {
- --tw-text-opacity: 1;
- color: rgb(79 70 229 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-700:hover {
- --tw-text-opacity: 1;
- color: rgb(67 56 202 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-800:hover {
- --tw-text-opacity: 1;
- color: rgb(55 48 163 / var(--tw-text-opacity));
-}
-
-.hover\:text-indigo-900:hover {
- --tw-text-opacity: 1;
- color: rgb(49 46 129 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-100:hover {
- --tw-text-opacity: 1;
- color: rgb(236 252 203 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-200:hover {
- --tw-text-opacity: 1;
- color: rgb(217 249 157 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-300:hover {
- --tw-text-opacity: 1;
- color: rgb(190 242 100 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-400:hover {
- --tw-text-opacity: 1;
- color: rgb(163 230 53 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-50:hover {
- --tw-text-opacity: 1;
- color: rgb(247 254 231 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-500:hover {
- --tw-text-opacity: 1;
- color: rgb(132 204 22 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-600:hover {
- --tw-text-opacity: 1;
- color: rgb(101 163 13 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-700:hover {
- --tw-text-opacity: 1;
- color: rgb(77 124 15 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-800:hover {
- --tw-text-opacity: 1;
- color: rgb(63 98 18 / var(--tw-text-opacity));
-}
-
-.hover\:text-lime-900:hover {
- --tw-text-opacity: 1;
- color: rgb(54 83 20 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-100:hover {
- --tw-text-opacity: 1;
- color: rgb(245 245 245 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-200:hover {
- --tw-text-opacity: 1;
- color: rgb(229 229 229 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-300:hover {
- --tw-text-opacity: 1;
- color: rgb(212 212 212 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-400:hover {
- --tw-text-opacity: 1;
- color: rgb(163 163 163 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-50:hover {
- --tw-text-opacity: 1;
- color: rgb(250 250 250 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-500:hover {
- --tw-text-opacity: 1;
- color: rgb(115 115 115 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-600:hover {
- --tw-text-opacity: 1;
- color: rgb(82 82 82 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-700:hover {
- --tw-text-opacity: 1;
- color: rgb(64 64 64 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-800:hover {
- --tw-text-opacity: 1;
- color: rgb(38 38 38 / var(--tw-text-opacity));
-}
-
-.hover\:text-neutral-900:hover {
- --tw-text-opacity: 1;
- color: rgb(23 23 23 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-100:hover {
- --tw-text-opacity: 1;
- color: rgb(255 237 213 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-200:hover {
- --tw-text-opacity: 1;
- color: rgb(254 215 170 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-300:hover {
- --tw-text-opacity: 1;
- color: rgb(253 186 116 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-400:hover {
- --tw-text-opacity: 1;
- color: rgb(251 146 60 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-50:hover {
- --tw-text-opacity: 1;
- color: rgb(255 247 237 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-500:hover {
- --tw-text-opacity: 1;
- color: rgb(249 115 22 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-600:hover {
- --tw-text-opacity: 1;
- color: rgb(234 88 12 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-700:hover {
- --tw-text-opacity: 1;
- color: rgb(194 65 12 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-800:hover {
- --tw-text-opacity: 1;
- color: rgb(154 52 18 / var(--tw-text-opacity));
-}
-
-.hover\:text-orange-900:hover {
- --tw-text-opacity: 1;
- color: rgb(124 45 18 / var(--tw-text-opacity));
-}
-
-.hover\:text-pink-100:hover {
- --tw-text-opacity: 1;
- color: rgb(252 231 243 / var(--tw-text-opacity));
-}
-
-.hover\:text-pink-200:hover {
- --tw-text-opacity: 1;
- color: rgb(251 207 232 / var(--tw-text-opacity));
-}
-
-.hover\:text-pink-300:hover {
- --tw-text-opacity: 1;
- color: rgb(249 168 212 / var(--tw-text-opacity));
-}
-
-.hover\:text-pink-400:hover {
- --tw-text-opacity: 1;
- color: rgb(244 114 182 / var(--tw-text-opacity));
-}
-
-.hover\:text-pink-50:hover {
- --tw-text-opacity: 1;
- color: rgb(253 242 248 / var(--tw-text-opacity));
-}
-
-.hover\:text-pink-500:hover {
- --tw-text-opacity: 1;
- color: rgb(236 72 153 / var(--tw-text-opacity));
-}
-
-.hover\:text-pink-600:hover {
- --tw-text-opacity: 1;
- color: rgb(219 39 119 / var(--tw-text-opacity));
-}
-
-.hover\:text-pink-700:hover {
- --tw-text-opacity: 1;
- color: rgb(190 24 93 / var(--tw-text-opacity));
-}
-
-.hover\:text-pink-900:hover {
- --tw-text-opacity: 1;
- color: rgb(131 24 67 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-100:hover {
- --tw-text-opacity: 1;
- color: rgb(243 232 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-200:hover {
- --tw-text-opacity: 1;
- color: rgb(233 213 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-300:hover {
- --tw-text-opacity: 1;
- color: rgb(216 180 254 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-400:hover {
- --tw-text-opacity: 1;
- color: rgb(192 132 252 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-50:hover {
- --tw-text-opacity: 1;
- color: rgb(250 245 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-500:hover {
- --tw-text-opacity: 1;
- color: rgb(168 85 247 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-600:hover {
- --tw-text-opacity: 1;
- color: rgb(147 51 234 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-700:hover {
- --tw-text-opacity: 1;
- color: rgb(126 34 206 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-800:hover {
- --tw-text-opacity: 1;
- color: rgb(107 33 168 / var(--tw-text-opacity));
-}
-
-.hover\:text-purple-900:hover {
- --tw-text-opacity: 1;
- color: rgb(88 28 135 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-100:hover {
- --tw-text-opacity: 1;
- color: rgb(254 226 226 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-200:hover {
- --tw-text-opacity: 1;
- color: rgb(254 202 202 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-300:hover {
- --tw-text-opacity: 1;
- color: rgb(252 165 165 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-400:hover {
- --tw-text-opacity: 1;
- color: rgb(248 113 113 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-50:hover {
- --tw-text-opacity: 1;
- color: rgb(254 242 242 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-500:hover {
- --tw-text-opacity: 1;
- color: rgb(239 68 68 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-600:hover {
- --tw-text-opacity: 1;
- color: rgb(220 38 38 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-700:hover {
- --tw-text-opacity: 1;
- color: rgb(185 28 28 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-800:hover {
- --tw-text-opacity: 1;
- color: rgb(153 27 27 / var(--tw-text-opacity));
-}
-
-.hover\:text-red-900:hover {
- --tw-text-opacity: 1;
- color: rgb(127 29 29 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-100:hover {
- --tw-text-opacity: 1;
- color: rgb(255 228 230 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-200:hover {
- --tw-text-opacity: 1;
- color: rgb(254 205 211 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-300:hover {
- --tw-text-opacity: 1;
- color: rgb(253 164 175 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-400:hover {
- --tw-text-opacity: 1;
- color: rgb(251 113 133 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-50:hover {
- --tw-text-opacity: 1;
- color: rgb(255 241 242 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-500:hover {
- --tw-text-opacity: 1;
- color: rgb(244 63 94 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-600:hover {
- --tw-text-opacity: 1;
- color: rgb(225 29 72 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-700:hover {
- --tw-text-opacity: 1;
- color: rgb(190 18 60 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-800:hover {
- --tw-text-opacity: 1;
- color: rgb(159 18 57 / var(--tw-text-opacity));
-}
-
-.hover\:text-rose-900:hover {
- --tw-text-opacity: 1;
- color: rgb(136 19 55 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-100:hover {
- --tw-text-opacity: 1;
- color: rgb(224 242 254 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-200:hover {
- --tw-text-opacity: 1;
- color: rgb(186 230 253 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-300:hover {
- --tw-text-opacity: 1;
- color: rgb(125 211 252 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-400:hover {
- --tw-text-opacity: 1;
- color: rgb(56 189 248 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-50:hover {
- --tw-text-opacity: 1;
- color: rgb(240 249 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-500:hover {
- --tw-text-opacity: 1;
- color: rgb(14 165 233 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-600:hover {
- --tw-text-opacity: 1;
- color: rgb(2 132 199 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-700:hover {
- --tw-text-opacity: 1;
- color: rgb(3 105 161 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-800:hover {
- --tw-text-opacity: 1;
- color: rgb(7 89 133 / var(--tw-text-opacity));
-}
-
-.hover\:text-sky-900:hover {
- --tw-text-opacity: 1;
- color: rgb(12 74 110 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-100:hover {
- --tw-text-opacity: 1;
- color: rgb(241 245 249 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-200:hover {
- --tw-text-opacity: 1;
- color: rgb(226 232 240 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-300:hover {
- --tw-text-opacity: 1;
- color: rgb(203 213 225 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-400:hover {
- --tw-text-opacity: 1;
- color: rgb(148 163 184 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-50:hover {
- --tw-text-opacity: 1;
- color: rgb(248 250 252 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-500:hover {
- --tw-text-opacity: 1;
- color: rgb(100 116 139 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-600:hover {
- --tw-text-opacity: 1;
- color: rgb(71 85 105 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-700:hover {
- --tw-text-opacity: 1;
- color: rgb(51 65 85 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-800:hover {
- --tw-text-opacity: 1;
- color: rgb(30 41 59 / var(--tw-text-opacity));
-}
-
-.hover\:text-slate-900:hover {
- --tw-text-opacity: 1;
- color: rgb(15 23 42 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-100:hover {
- --tw-text-opacity: 1;
- color: rgb(245 245 244 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-200:hover {
- --tw-text-opacity: 1;
- color: rgb(231 229 228 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-300:hover {
- --tw-text-opacity: 1;
- color: rgb(214 211 209 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-400:hover {
- --tw-text-opacity: 1;
- color: rgb(168 162 158 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-50:hover {
- --tw-text-opacity: 1;
- color: rgb(250 250 249 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-500:hover {
- --tw-text-opacity: 1;
- color: rgb(120 113 108 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-600:hover {
- --tw-text-opacity: 1;
- color: rgb(87 83 78 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-700:hover {
- --tw-text-opacity: 1;
- color: rgb(68 64 60 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-800:hover {
- --tw-text-opacity: 1;
- color: rgb(41 37 36 / var(--tw-text-opacity));
-}
-
-.hover\:text-stone-900:hover {
- --tw-text-opacity: 1;
- color: rgb(28 25 23 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-100:hover {
- --tw-text-opacity: 1;
- color: rgb(204 251 241 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-200:hover {
- --tw-text-opacity: 1;
- color: rgb(153 246 228 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-300:hover {
- --tw-text-opacity: 1;
- color: rgb(94 234 212 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-400:hover {
- --tw-text-opacity: 1;
- color: rgb(45 212 191 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-50:hover {
- --tw-text-opacity: 1;
- color: rgb(240 253 250 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-500:hover {
- --tw-text-opacity: 1;
- color: rgb(20 184 166 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-600:hover {
- --tw-text-opacity: 1;
- color: rgb(13 148 136 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-700:hover {
- --tw-text-opacity: 1;
- color: rgb(15 118 110 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-800:hover {
- --tw-text-opacity: 1;
- color: rgb(17 94 89 / var(--tw-text-opacity));
-}
-
-.hover\:text-teal-900:hover {
- --tw-text-opacity: 1;
- color: rgb(19 78 74 / var(--tw-text-opacity));
-}
-
-.hover\:text-transparent:hover {
- color: transparent;
-}
-
-.hover\:text-violet-100:hover {
- --tw-text-opacity: 1;
- color: rgb(237 233 254 / var(--tw-text-opacity));
-}
-
-.hover\:text-violet-200:hover {
- --tw-text-opacity: 1;
- color: rgb(221 214 254 / var(--tw-text-opacity));
-}
-
-.hover\:text-violet-300:hover {
- --tw-text-opacity: 1;
- color: rgb(196 181 253 / var(--tw-text-opacity));
-}
-
-.hover\:text-violet-400:hover {
- --tw-text-opacity: 1;
- color: rgb(167 139 250 / var(--tw-text-opacity));
-}
-
-.hover\:text-violet-50:hover {
- --tw-text-opacity: 1;
- color: rgb(245 243 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-violet-500:hover {
- --tw-text-opacity: 1;
- color: rgb(139 92 246 / var(--tw-text-opacity));
-}
-
-.hover\:text-violet-600:hover {
- --tw-text-opacity: 1;
- color: rgb(124 58 237 / var(--tw-text-opacity));
-}
-
-.hover\:text-violet-700:hover {
- --tw-text-opacity: 1;
- color: rgb(109 40 217 / var(--tw-text-opacity));
-}
-
-.hover\:text-violet-800:hover {
- --tw-text-opacity: 1;
- color: rgb(91 33 182 / var(--tw-text-opacity));
-}
-
-.hover\:text-violet-900:hover {
- --tw-text-opacity: 1;
- color: rgb(76 29 149 / var(--tw-text-opacity));
-}
-
-.hover\:text-white:hover {
- --tw-text-opacity: 1;
- color: rgb(255 255 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-100:hover {
- --tw-text-opacity: 1;
- color: rgb(254 249 195 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-200:hover {
- --tw-text-opacity: 1;
- color: rgb(254 240 138 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-300:hover {
- --tw-text-opacity: 1;
- color: rgb(253 224 71 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-400:hover {
- --tw-text-opacity: 1;
- color: rgb(250 204 21 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-50:hover {
- --tw-text-opacity: 1;
- color: rgb(254 252 232 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-500:hover {
- --tw-text-opacity: 1;
- color: rgb(234 179 8 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-600:hover {
- --tw-text-opacity: 1;
- color: rgb(202 138 4 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-700:hover {
- --tw-text-opacity: 1;
- color: rgb(161 98 7 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-800:hover {
- --tw-text-opacity: 1;
- color: rgb(133 77 14 / var(--tw-text-opacity));
-}
-
-.hover\:text-yellow-900:hover {
- --tw-text-opacity: 1;
- color: rgb(113 63 18 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-100:hover {
- --tw-text-opacity: 1;
- color: rgb(244 244 245 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-200:hover {
- --tw-text-opacity: 1;
- color: rgb(228 228 231 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-300:hover {
- --tw-text-opacity: 1;
- color: rgb(212 212 216 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-400:hover {
- --tw-text-opacity: 1;
- color: rgb(161 161 170 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-50:hover {
- --tw-text-opacity: 1;
- color: rgb(250 250 250 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-500:hover {
- --tw-text-opacity: 1;
- color: rgb(113 113 122 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-600:hover {
- --tw-text-opacity: 1;
- color: rgb(82 82 91 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-700:hover {
- --tw-text-opacity: 1;
- color: rgb(63 63 70 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-800:hover {
- --tw-text-opacity: 1;
- color: rgb(39 39 42 / var(--tw-text-opacity));
-}
-
-.hover\:text-zinc-900:hover {
- --tw-text-opacity: 1;
- color: rgb(24 24 27 / var(--tw-text-opacity));
-}
-
-.hover\:underline:hover {
- text-decoration-line: underline;
-}
-
-.hover\:ring-amber-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 243 199 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-amber-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-amber-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-amber-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 191 36 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-amber-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 251 235 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-amber-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-amber-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(217 119 6 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-amber-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(180 83 9 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-amber-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-amber-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(120 53 15 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-black:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(239 246 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(29 78 216 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-blue-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(30 58 138 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(207 250 254 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 254 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(8 145 178 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-cyan-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(22 78 99 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(209 250 229 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(52 211 153 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 253 245 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(5 150 105 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-emerald-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(6 78 59 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 232 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 208 254 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 171 252 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(232 121 249 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 244 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(217 70 239 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(192 38 211 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(162 28 175 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(134 25 143 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-fuchsia-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(112 26 117 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(243 244 246 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(249 250 251 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-gray-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(220 252 231 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(74 222 128 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 253 244 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(22 163 74 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(21 128 61 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(22 101 52 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-green-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(20 83 45 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(224 231 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(129 140 248 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(238 242 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(67 56 202 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(55 48 163 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-indigo-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(49 46 129 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 252 203 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(217 249 157 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(190 242 100 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(163 230 53 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(247 254 231 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(132 204 22 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(101 163 13 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(77 124 15 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-lime-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(54 83 20 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 245 245 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(229 229 229 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(212 212 212 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(163 163 163 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(115 115 115 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(82 82 82 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(64 64 64 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(38 38 38 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-neutral-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(23 23 23 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 237 213 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 215 170 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 186 116 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 146 60 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 247 237 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(234 88 12 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(194 65 12 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(154 52 18 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-orange-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(124 45 18 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-pink-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(252 231 243 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-pink-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 207 232 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-pink-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(249 168 212 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-pink-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(244 114 182 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-pink-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 242 248 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-pink-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 72 153 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-pink-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(219 39 119 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-pink-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(190 24 93 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-pink-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(131 24 67 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(243 232 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(216 180 254 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(192 132 252 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 245 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(147 51 234 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(126 34 206 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-purple-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(88 28 135 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 242 242 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(153 27 27 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-red-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(127 29 29 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 228 230 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 205 211 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 164 175 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 113 133 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 241 242 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(244 63 94 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(225 29 72 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(190 18 60 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(159 18 57 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-rose-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(136 19 55 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(224 242 254 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(186 230 253 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(125 211 252 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 249 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(2 132 199 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(3 105 161 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(7 89 133 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-sky-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(12 74 110 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(241 245 249 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(148 163 184 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(248 250 252 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(100 116 139 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(71 85 105 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(51 65 85 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(30 41 59 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-slate-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(15 23 42 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 245 244 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(231 229 228 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(214 211 209 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(168 162 158 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 250 249 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(120 113 108 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(87 83 78 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(68 64 60 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(41 37 36 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-stone-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(28 25 23 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(204 251 241 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(153 246 228 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(45 212 191 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 253 250 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(13 148 136 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(15 118 110 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(17 94 89 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-teal-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(19 78 74 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-transparent:hover {
- --tw-ring-color: transparent;
-}
-
-.hover\:ring-violet-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-violet-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-violet-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-violet-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-violet-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 243 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-violet-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-violet-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(124 58 237 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-violet-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-violet-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(91 33 182 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-violet-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(76 29 149 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-white:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 249 195 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 240 138 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 224 71 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 204 21 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 252 232 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(202 138 4 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(161 98 7 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(133 77 14 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-yellow-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(113 63 18 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-100:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(244 244 245 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-200:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(228 228 231 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-300:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(212 212 216 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-400:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(161 161 170 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-50:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-500:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(113 113 122 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-600:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(82 82 91 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-700:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(63 63 70 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-800:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(39 39 42 / var(--tw-ring-opacity));
-}
-
-.hover\:ring-zinc-900:hover {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(24 24 27 / var(--tw-ring-opacity));
-}
-
-.focus\:outline-none:focus {
- outline: 2px solid transparent;
- outline-offset: 2px;
-}
-
-.focus\:ring-0:focus {
- --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(0px + 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);
-}
-
-.focus\:ring-2:focus {
- --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(2px + 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);
-}
-
-.focus\:ring-amber-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 243 199 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-amber-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-amber-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-amber-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 191 36 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-amber-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 251 235 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-amber-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-amber-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(217 119 6 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-amber-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(180 83 9 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-amber-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-amber-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(120 53 15 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-black:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(239 246 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(29 78 216 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(30 58 138 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(207 250 254 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 254 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(8 145 178 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-cyan-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(22 78 99 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(209 250 229 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(52 211 153 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 253 245 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(5 150 105 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-emerald-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(6 78 59 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 232 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 208 254 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 171 252 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(232 121 249 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 244 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(217 70 239 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(192 38 211 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(162 28 175 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(134 25 143 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-fuchsia-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(112 26 117 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(243 244 246 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(249 250 251 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-gray-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(220 252 231 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(74 222 128 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 253 244 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(22 163 74 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(21 128 61 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(22 101 52 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-green-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(20 83 45 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(224 231 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(129 140 248 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(238 242 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(67 56 202 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(55 48 163 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(49 46 129 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 252 203 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(217 249 157 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(190 242 100 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(163 230 53 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(247 254 231 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(132 204 22 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(101 163 13 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(77 124 15 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-lime-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(54 83 20 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 245 245 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(229 229 229 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(212 212 212 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(163 163 163 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(115 115 115 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(82 82 82 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(64 64 64 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(38 38 38 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-neutral-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(23 23 23 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 237 213 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 215 170 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 186 116 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 146 60 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 247 237 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(234 88 12 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(194 65 12 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(154 52 18 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-orange-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(124 45 18 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-pink-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(252 231 243 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-pink-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 207 232 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-pink-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(249 168 212 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-pink-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(244 114 182 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-pink-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 242 248 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-pink-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(236 72 153 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-pink-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(219 39 119 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-pink-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(190 24 93 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-pink-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(131 24 67 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(243 232 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(216 180 254 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(192 132 252 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 245 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(147 51 234 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(126 34 206 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-purple-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(88 28 135 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 242 242 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(153 27 27 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-red-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(127 29 29 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 228 230 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 205 211 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 164 175 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(251 113 133 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 241 242 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(244 63 94 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(225 29 72 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(190 18 60 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(159 18 57 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-rose-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(136 19 55 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(224 242 254 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(186 230 253 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(125 211 252 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(56 189 248 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 249 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(2 132 199 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(3 105 161 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(7 89 133 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-sky-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(12 74 110 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(241 245 249 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(148 163 184 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(248 250 252 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(100 116 139 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(71 85 105 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(51 65 85 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(30 41 59 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-slate-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(15 23 42 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 245 244 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(231 229 228 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(214 211 209 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(168 162 158 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 250 249 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(120 113 108 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(87 83 78 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(68 64 60 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(41 37 36 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-stone-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(28 25 23 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(204 251 241 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(153 246 228 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(45 212 191 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(240 253 250 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(13 148 136 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(15 118 110 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(17 94 89 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-teal-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(19 78 74 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-transparent:focus {
- --tw-ring-color: transparent;
-}
-
-.focus\:ring-violet-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-violet-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-violet-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-violet-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-violet-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 243 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-violet-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-violet-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(124 58 237 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-violet-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(109 40 217 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-violet-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(91 33 182 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-violet-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(76 29 149 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-white:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 249 195 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 240 138 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(253 224 71 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 204 21 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(254 252 232 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(202 138 4 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(161 98 7 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(133 77 14 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-yellow-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(113 63 18 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-100:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(244 244 245 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-200:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(228 228 231 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-300:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(212 212 216 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-400:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(161 161 170 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-50:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(250 250 250 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(113 113 122 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(82 82 91 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-700:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(63 63 70 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-800:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(39 39 42 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-zinc-900:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(24 24 27 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-offset-2:focus {
- --tw-ring-offset-width: 2px;
-}
-
-@media (min-width: 640px) {
- .sm\:col-span-1 {
- grid-column: span 1 / span 1;
- }
-
- .sm\:col-span-10 {
- grid-column: span 10 / span 10;
- }
-
- .sm\:col-span-11 {
- grid-column: span 11 / span 11;
- }
-
- .sm\:col-span-12 {
- grid-column: span 12 / span 12;
- }
-
- .sm\:col-span-2 {
- grid-column: span 2 / span 2;
- }
-
- .sm\:col-span-3 {
- grid-column: span 3 / span 3;
- }
-
- .sm\:col-span-4 {
- grid-column: span 4 / span 4;
- }
-
- .sm\:col-span-5 {
- grid-column: span 5 / span 5;
- }
-
- .sm\:col-span-6 {
- grid-column: span 6 / span 6;
- }
-
- .sm\:col-span-7 {
- grid-column: span 7 / span 7;
- }
-
- .sm\:col-span-8 {
- grid-column: span 8 / span 8;
- }
-
- .sm\:col-span-9 {
- grid-column: span 9 / span 9;
- }
-
- .sm\:grid-cols-1 {
- grid-template-columns: repeat(1, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-10 {
- grid-template-columns: repeat(10, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-11 {
- grid-template-columns: repeat(11, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-12 {
- grid-template-columns: repeat(12, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-2 {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-3 {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-4 {
- grid-template-columns: repeat(4, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-5 {
- grid-template-columns: repeat(5, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-6 {
- grid-template-columns: repeat(6, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-7 {
- grid-template-columns: repeat(7, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-8 {
- grid-template-columns: repeat(8, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-9 {
- grid-template-columns: repeat(9, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-none {
- grid-template-columns: none;
- }
-}
-
-@media (min-width: 768px) {
- .md\:col-span-1 {
- grid-column: span 1 / span 1;
- }
-
- .md\:col-span-10 {
- grid-column: span 10 / span 10;
- }
-
- .md\:col-span-11 {
- grid-column: span 11 / span 11;
- }
-
- .md\:col-span-12 {
- grid-column: span 12 / span 12;
- }
-
- .md\:col-span-2 {
- grid-column: span 2 / span 2;
- }
-
- .md\:col-span-3 {
- grid-column: span 3 / span 3;
- }
-
- .md\:col-span-4 {
- grid-column: span 4 / span 4;
- }
-
- .md\:col-span-5 {
- grid-column: span 5 / span 5;
- }
-
- .md\:col-span-6 {
- grid-column: span 6 / span 6;
- }
-
- .md\:col-span-7 {
- grid-column: span 7 / span 7;
- }
-
- .md\:col-span-8 {
- grid-column: span 8 / span 8;
- }
-
- .md\:col-span-9 {
- grid-column: span 9 / span 9;
- }
-
- .md\:grid {
- display: grid;
- }
-
- .md\:w-96 {
- width: 24rem;
- }
-
- .md\:grid-cols-1 {
- grid-template-columns: repeat(1, minmax(0, 1fr));
- }
-
- .md\:grid-cols-10 {
- grid-template-columns: repeat(10, minmax(0, 1fr));
- }
-
- .md\:grid-cols-11 {
- grid-template-columns: repeat(11, minmax(0, 1fr));
- }
-
- .md\:grid-cols-12 {
- grid-template-columns: repeat(12, minmax(0, 1fr));
- }
-
- .md\:grid-cols-2 {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
-
- .md\:grid-cols-3 {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .md\:grid-cols-4 {
- grid-template-columns: repeat(4, minmax(0, 1fr));
- }
-
- .md\:grid-cols-5 {
- grid-template-columns: repeat(5, minmax(0, 1fr));
- }
-
- .md\:grid-cols-6 {
- grid-template-columns: repeat(6, minmax(0, 1fr));
- }
-
- .md\:grid-cols-7 {
- grid-template-columns: repeat(7, minmax(0, 1fr));
- }
-
- .md\:grid-cols-8 {
- grid-template-columns: repeat(8, minmax(0, 1fr));
- }
-
- .md\:grid-cols-9 {
- grid-template-columns: repeat(9, minmax(0, 1fr));
- }
-
- .md\:grid-cols-none {
- grid-template-columns: none;
- }
-
- .md\:gap-4 {
- gap: 1rem;
- }
-
- .md\:text-center {
- text-align: center;
- }
-}
-
-@media (min-width: 1024px) {
- .lg\:col-span-1 {
- grid-column: span 1 / span 1;
- }
-
- .lg\:col-span-10 {
- grid-column: span 10 / span 10;
- }
-
- .lg\:col-span-11 {
- grid-column: span 11 / span 11;
- }
-
- .lg\:col-span-12 {
- grid-column: span 12 / span 12;
- }
-
- .lg\:col-span-2 {
- grid-column: span 2 / span 2;
- }
-
- .lg\:col-span-3 {
- grid-column: span 3 / span 3;
- }
-
- .lg\:col-span-4 {
- grid-column: span 4 / span 4;
- }
-
- .lg\:col-span-5 {
- grid-column: span 5 / span 5;
- }
-
- .lg\:col-span-6 {
- grid-column: span 6 / span 6;
- }
-
- .lg\:col-span-7 {
- grid-column: span 7 / span 7;
- }
-
- .lg\:col-span-8 {
- grid-column: span 8 / span 8;
- }
-
- .lg\:col-span-9 {
- grid-column: span 9 / span 9;
- }
-
- .lg\:grid-cols-1 {
- grid-template-columns: repeat(1, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-10 {
- grid-template-columns: repeat(10, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-11 {
- grid-template-columns: repeat(11, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-12 {
- grid-template-columns: repeat(12, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-2 {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-3 {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-4 {
- grid-template-columns: repeat(4, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-5 {
- grid-template-columns: repeat(5, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-6 {
- grid-template-columns: repeat(6, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-7 {
- grid-template-columns: repeat(7, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-8 {
- grid-template-columns: repeat(8, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-9 {
- grid-template-columns: repeat(9, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-none {
- grid-template-columns: none;
- }
-}
diff --git a/tsconfig.json b/tsconfig.json
index 0c7555f..1ff80ca 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -21,8 +21,9 @@
],
"paths": {
"@/*": ["./src/*"]
- }
+ },
+ "types": ["@testing-library/jest-dom", "cypress", "node"]
},
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "vitest.config.mjs", "cypress/support/index.d.ts"],
"exclude": ["node_modules"]
}
diff --git a/vitest.config.mjs b/vitest.config.mjs
new file mode 100644
index 0000000..749a697
--- /dev/null
+++ b/vitest.config.mjs
@@ -0,0 +1,19 @@
+//
+import { defineConfig } from 'vitest/config'
+import react from '@vitejs/plugin-react'
+import path from 'path'
+
+export default defineConfig({
+ plugins: [react()],
+ test: {
+ globals: true,
+ environment: 'jsdom',
+ setupFiles: ['dotenv/config', './vitest.setup.ts'],
+ threads: false,
+ },
+ resolve: {
+ alias: {
+ '@': path.resolve(__dirname, './src'),
+ },
+ },
+})
diff --git a/vitest.setup.ts b/vitest.setup.ts
new file mode 100644
index 0000000..0d11365
--- /dev/null
+++ b/vitest.setup.ts
@@ -0,0 +1,8 @@
+import '@testing-library/jest-dom/vitest'
+
+Object.assign(process.env, {
+ NEXT_PUBLIC_API_KEY: 'abcd123456',
+ NEXT_PUBLIC_API_URL: 'http://localhost:1080',
+ NEXT_PUBLIC_API_REVALIDATE: '60',
+ NEXT_PUBLIC_API_CACHE: 'no-cache',
+})