tonal-ui 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -929,13 +929,13 @@ import { forwardRef as forwardRef23 } from "react";
929
929
  import { cva as cva21 } from "class-variance-authority";
930
930
  import { jsx as jsx22 } from "react/jsx-runtime";
931
931
  var cardRootVariants = cva21(
932
- "rounded-lg border border-outline-variant shadow-sm",
932
+ "rounded-xl",
933
933
  {
934
934
  variants: {
935
935
  variant: {
936
936
  filled: "bg-surface-container-lowest",
937
937
  elevated: "bg-surface-container-lowest shadow-md",
938
- outlined: "bg-transparent shadow-none"
938
+ outlined: "border border-outline-variant bg-transparent"
939
939
  },
940
940
  padding: {
941
941
  true: "p-6",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/cn.ts","../src/components/Button.tsx","../src/components/Alert.tsx","../src/components/Badge.tsx","../src/components/Chip.tsx","../src/components/Container.tsx","../src/components/Divider.tsx","../src/components/HeroBadge.tsx","../src/components/IconButton.tsx","../src/components/Input.tsx","../src/components/Modal.tsx","../src/components/ProgressBar.tsx","../src/components/Radio.tsx","../src/components/Select.tsx","../src/components/SidebarCard.tsx","../src/components/Switch.tsx","../src/components/Toast.tsx","../src/components/Table/index.ts","../src/components/Table/TableRoot.tsx","../src/components/Table/TableHead.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableRow.tsx","../src/components/Table/TableHeaderCell.tsx","../src/components/Table/TableCell.tsx","../src/components/Card/index.ts","../src/components/Card/CardRoot.tsx","../src/components/Card/CardHeader.tsx","../src/components/Card/CardTitle.tsx","../src/components/Card/CardBody.tsx","../src/components/Card/CardFooter.tsx"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","'use client';\n\nimport { ButtonHTMLAttributes, forwardRef } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2',\n {\n variants: {\n variant: {\n primary: 'bg-primary text-on-primary hover:bg-primary/90 disabled:opacity-50',\n secondary: 'bg-secondary text-on-secondary hover:bg-secondary/90 disabled:opacity-50',\n danger: 'bg-error text-on-error hover:bg-error/90 disabled:opacity-50',\n outline: 'border border-outline-variant text-on-surface-variant hover:bg-surface-container-low disabled:opacity-50',\n ghost: 'text-on-surface-variant hover:bg-surface-container disabled:opacity-50',\n },\n size: {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-sm',\n lg: 'px-6 py-3 text-base',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n);\n\nexport interface ButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n loading?: boolean;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ variant, size, loading, children, disabled, className, ...props }, ref) => {\n return (\n <button\n ref={ref}\n disabled={disabled || loading}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n >\n {loading && (\n <svg className=\"mr-2 h-4 w-4 animate-spin\" viewBox=\"0 0 24 24\" fill=\"none\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\" />\n </svg>\n )}\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport { buttonVariants };\n","'use client';\n\nimport { forwardRef, useState, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst alertVariants = cva('rounded-md border p-4', {\n variants: {\n variant: {\n info: 'bg-info-container border-info text-on-info-container',\n success: 'bg-success-container border-success text-on-success-container',\n warning: 'bg-warning-container border-warning text-on-warning-container',\n danger: 'bg-error-container border-error text-on-error-container',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n});\n\nexport interface AlertProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n title?: string;\n dismissible?: boolean;\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ variant, title, dismissible, children, className, ...props }, ref) => {\n const [visible, setVisible] = useState(true);\n\n if (!visible) return null;\n\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n <div className=\"flex\">\n <div className=\"flex-1\">\n {title && <h4 className=\"mb-1 text-sm font-semibold\">{title}</h4>}\n <div className=\"text-sm\">{children}</div>\n </div>\n {dismissible && (\n <button\n onClick={() => setVisible(false)}\n className=\"ml-4 text-current opacity-50 hover:opacity-100\"\n >\n &times;\n </button>\n )}\n </div>\n </div>\n );\n }\n);\n\nAlert.displayName = 'Alert';\n\nexport { alertVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium',\n {\n variants: {\n variant: {\n default: 'bg-surface-container-high text-on-surface-variant',\n success: 'bg-success-container text-on-success-container',\n warning: 'bg-warning-container text-on-warning-container',\n danger: 'bg-error-container text-on-error-container',\n info: 'bg-info-container text-on-info-container',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface BadgeProps\n extends HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ variant, className, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n >\n {children}\n </span>\n );\n }\n);\n\nBadge.displayName = 'Badge';\n\nexport { badgeVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst chipVariants = cva(\n 'inline-flex items-center px-5 py-2 rounded-full text-xs font-semibold tracking-wide transition-all whitespace-nowrap cursor-default',\n {\n variants: {\n variant: {\n filled: 'bg-secondary-container text-on-secondary-container hover:bg-primary-fixed-dim',\n tonal: 'bg-surface-container text-on-surface-variant hover:bg-surface-container-high',\n outline: 'border border-outline-variant text-on-surface-variant hover:bg-surface-container-low',\n },\n active: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n { variant: 'filled', active: true, className: 'bg-primary text-on-primary shadow-md' },\n { variant: 'tonal', active: true, className: 'bg-primary-fixed text-on-primary-fixed-variant font-semibold' },\n { variant: 'outline', active: true, className: 'border-primary text-primary font-semibold' },\n ],\n defaultVariants: {\n variant: 'filled',\n active: false,\n },\n }\n);\n\nexport interface ChipProps\n extends HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof chipVariants> {}\n\nexport const Chip = forwardRef<HTMLSpanElement, ChipProps>(\n ({ variant, active, onClick, className, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n onClick={onClick}\n className={cn(\n chipVariants({ variant, active }),\n onClick && 'cursor-pointer',\n className,\n )}\n {...props}\n >\n {children}\n </span>\n );\n }\n);\n\nChip.displayName = 'Chip';\n\nexport { chipVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst containerVariants = cva('mx-auto px-6', {\n variants: {\n size: {\n default: 'max-w-7xl',\n narrow: 'max-w-4xl',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\nexport interface ContainerProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof containerVariants> {}\n\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(\n ({ size, className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(containerVariants({ size }), className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nContainer.displayName = 'Container';\n\nexport { containerVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst dividerVariants = cva('bg-outline-variant/15', {\n variants: {\n orientation: {\n horizontal: 'w-full h-px',\n vertical: 'h-full w-px',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n\nexport interface DividerProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof dividerVariants> {}\n\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n ({ orientation, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation ?? 'horizontal'}\n className={cn(dividerVariants({ orientation }), className)}\n {...props}\n />\n );\n }\n);\n\nDivider.displayName = 'Divider';\n\nexport { dividerVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst heroBadgeVariants = cva(\n 'inline-block px-3 py-1 rounded-full text-xs font-bold tracking-wider',\n {\n variants: {\n variant: {\n default: 'bg-secondary-container text-on-secondary-container',\n primary: 'bg-primary-container text-on-primary-container',\n tertiary: 'bg-tertiary-container text-on-tertiary-container',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface HeroBadgeProps\n extends HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof heroBadgeVariants> {}\n\nexport const HeroBadge = forwardRef<HTMLSpanElement, HeroBadgeProps>(\n ({ variant, className, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={cn(heroBadgeVariants({ variant }), className)}\n {...props}\n >\n {children}\n </span>\n );\n }\n);\n\nHeroBadge.displayName = 'HeroBadge';\n\nexport { heroBadgeVariants };\n","'use client';\n\nimport { forwardRef, type ButtonHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst iconButtonVariants = cva(\n 'flex items-center justify-center rounded-lg text-on-surface-variant hover:bg-surface-container-high active:scale-90 transition-all duration-200',\n {\n variants: {\n size: {\n sm: 'min-h-[36px] min-w-[36px]',\n md: 'min-h-[44px] min-w-[44px]',\n lg: 'min-h-[52px] min-w-[52px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface IconButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof iconButtonVariants> {\n 'aria-label': string;\n}\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ size, className, children, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(iconButtonVariants({ size }), className)}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\n\nIconButton.displayName = 'IconButton';\n\nexport { iconButtonVariants };\n","'use client';\n\nimport { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst inputVariants = cva(\n 'w-full rounded-md border px-3 py-2 text-sm transition-colors focus:outline-none focus:ring-2',\n {\n variants: {\n variant: {\n default: 'border-outline-variant focus:ring-primary',\n error: 'border-error focus:ring-error',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface InputProps\n extends InputHTMLAttributes<HTMLInputElement>,\n VariantProps<typeof inputVariants> {\n label?: string;\n error?: string;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ label, error, variant, className, id, ...props }, ref) => {\n const inputId = id || label?.toLowerCase().replace(/\\s+/g, '-');\n const resolvedVariant = error ? 'error' : variant;\n\n return (\n <div>\n {label && (\n <label\n htmlFor={inputId}\n className=\"mb-1 block text-sm font-medium text-on-surface-variant\"\n >\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={cn(inputVariants({ variant: resolvedVariant }), className)}\n {...props}\n />\n {error && <p className=\"mt-1 text-sm text-error\">{error}</p>}\n </div>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport { inputVariants };\n","'use client';\n\nimport { forwardRef, useEffect, useRef, useImperativeHandle, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst modalVariants = cva(\n 'fixed inset-0 m-auto rounded-lg border-none bg-surface-container-lowest p-0 shadow-xl backdrop:bg-black/50',\n {\n variants: {\n size: {\n sm: 'w-full max-w-sm',\n md: 'w-full max-w-lg',\n lg: 'w-full max-w-2xl',\n full: 'w-full max-w-[calc(100vw-2rem)]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface ModalProps\n extends Omit<HTMLAttributes<HTMLDialogElement>, 'title'>,\n VariantProps<typeof modalVariants> {\n open: boolean;\n onClose: () => void;\n title: string;\n}\n\nexport const Modal = forwardRef<HTMLDialogElement, ModalProps>(\n ({ open, onClose, title, size, className, children, ...props }, ref) => {\n const dialogRef = useRef<HTMLDialogElement>(null);\n useImperativeHandle(ref, () => dialogRef.current!);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (open) {\n dialog.showModal();\n } else {\n dialog.close();\n }\n }, [open]);\n\n return (\n <dialog\n ref={dialogRef}\n onClose={onClose}\n className={cn(modalVariants({ size }), className)}\n {...props}\n >\n <div className=\"p-6\">\n <div className=\"mb-4 flex items-center justify-between\">\n <h2 className=\"text-lg font-semibold text-on-surface\">{title}</h2>\n <button\n onClick={onClose}\n className=\"text-outline hover:text-on-surface-variant\"\n >\n &times;\n </button>\n </div>\n {children}\n </div>\n </dialog>\n );\n }\n);\n\nModal.displayName = 'Modal';\n\nexport { modalVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst progressBarVariants = cva('h-full rounded-full transition-all duration-300', {\n variants: {\n variant: {\n primary: 'bg-primary',\n success: 'bg-success',\n warning: 'bg-warning',\n danger: 'bg-error',\n },\n size: {\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n});\n\nconst trackSizeMap = {\n sm: 'h-1',\n md: 'h-2',\n lg: 'h-3',\n} as const;\n\nexport interface ProgressBarProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof progressBarVariants> {\n value: number;\n max?: number;\n label?: string;\n}\n\nexport const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(\n ({ value, max = 100, label, variant, size, className, ...props }, ref) => {\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\n const trackSize = trackSizeMap[size ?? 'md'];\n\n return (\n <div ref={ref} className={className} {...props}>\n {label && (\n <div className=\"mb-1 text-sm text-on-surface-variant\">{label}</div>\n )}\n <div\n className={cn(\n 'w-full overflow-hidden rounded-full bg-surface-container-high',\n trackSize,\n )}\n >\n <div\n className={cn(progressBarVariants({ variant, size }))}\n style={{ width: `${percentage}%` }}\n />\n </div>\n </div>\n );\n }\n);\n\nProgressBar.displayName = 'ProgressBar';\n\nexport { progressBarVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst radioGroupVariants = cva('', {\n variants: {\n orientation: {\n horizontal: 'flex gap-4',\n vertical: 'flex flex-col gap-2',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n\ninterface RadioOption {\n value: string;\n label: string;\n description?: string;\n}\n\nexport interface RadioGroupProps\n extends Omit<HTMLAttributes<HTMLFieldSetElement>, 'onChange'>,\n VariantProps<typeof radioGroupVariants> {\n name: string;\n label?: string;\n options: RadioOption[];\n value: string;\n onChange: (value: string) => void;\n disabled?: boolean;\n}\n\nexport const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(\n ({ name, label, options, value, onChange, orientation, disabled, className, ...props }, ref) => {\n return (\n <fieldset ref={ref} disabled={disabled} className={className} {...props}>\n {label && (\n <legend className=\"mb-2 text-sm font-medium text-on-surface-variant\">\n {label}\n </legend>\n )}\n <div className={cn(radioGroupVariants({ orientation }))}>\n {options.map((opt) => (\n <label key={opt.value} className=\"flex cursor-pointer items-center gap-2\">\n <input\n type=\"radio\"\n name={name}\n value={opt.value}\n checked={value === opt.value}\n onChange={() => onChange(opt.value)}\n className=\"h-4 w-4 text-primary focus:ring-primary\"\n />\n <span className=\"text-sm text-on-surface-variant\">{opt.label}</span>\n {opt.description && (\n <span className=\"text-xs text-outline\">({opt.description})</span>\n )}\n </label>\n ))}\n </div>\n </fieldset>\n );\n }\n);\n\nRadioGroup.displayName = 'RadioGroup';\n\nexport { radioGroupVariants };\n","'use client';\n\nimport { forwardRef, type SelectHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst selectVariants = cva(\n 'w-full rounded-md border border-outline-variant px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary',\n {\n variants: {\n size: {\n sm: 'px-2 py-1 text-xs',\n md: 'px-3 py-2 text-sm',\n lg: 'px-4 py-3 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface SelectProps\n extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'>,\n VariantProps<typeof selectVariants> {\n label?: string;\n options: { value: string; label: string }[];\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n ({ label, options, size, className, id, ...props }, ref) => {\n const selectId = id || label?.toLowerCase().replace(/\\s+/g, '-');\n\n return (\n <div>\n {label && (\n <label\n htmlFor={selectId}\n className=\"mb-1 block text-sm font-medium text-on-surface-variant\"\n >\n {label}\n </label>\n )}\n <select\n ref={ref}\n id={selectId}\n className={cn(selectVariants({ size }), className)}\n {...props}\n >\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport { selectVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst sidebarCardVariants = cva('rounded-xl', {\n variants: {\n variant: {\n default: 'bg-surface-container-lowest p-6',\n elevated: 'bg-surface-container-lowest p-6 shadow-md',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport interface SidebarCardProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof sidebarCardVariants> {\n title: string;\n icon?: ReactNode;\n}\n\nexport const SidebarCard = forwardRef<HTMLDivElement, SidebarCardProps>(\n ({ title, icon, variant, className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(sidebarCardVariants({ variant }), className)}\n {...props}\n >\n <h4 className=\"font-headline text-lg font-bold text-on-surface mb-6 flex items-center gap-2\">\n {icon}\n {title}\n </h4>\n {children}\n </div>\n );\n }\n);\n\nSidebarCard.displayName = 'SidebarCard';\n\nexport { sidebarCardVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst switchVariants = cva(\n 'relative inline-flex shrink-0 rounded-full transition-colors',\n {\n variants: {\n size: {\n sm: 'h-5 w-9',\n md: 'h-6 w-11',\n lg: 'h-7 w-[52px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst thumbSizeMap = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n} as const;\n\nconst thumbTranslateMap = {\n sm: { on: 'translate-x-4', off: 'translate-x-0.5' },\n md: { on: 'translate-x-5.5', off: 'translate-x-0.5' },\n lg: { on: 'translate-x-6', off: 'translate-x-0.5' },\n} as const;\n\nexport interface SwitchProps\n extends Omit<HTMLAttributes<HTMLLabelElement>, 'onChange'>,\n VariantProps<typeof switchVariants> {\n label?: string;\n checked: boolean;\n onChange: (checked: boolean) => void;\n disabled?: boolean;\n}\n\nexport const Switch = forwardRef<HTMLLabelElement, SwitchProps>(\n ({ label, checked, onChange, size, disabled, className, ...props }, ref) => {\n const resolvedSize = size ?? 'md';\n const thumbSize = thumbSizeMap[resolvedSize];\n const thumbTranslate = checked\n ? thumbTranslateMap[resolvedSize].on\n : thumbTranslateMap[resolvedSize].off;\n\n return (\n <label\n ref={ref}\n className={cn('flex cursor-pointer items-center gap-3', className)}\n {...props}\n >\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n disabled={disabled}\n onClick={() => onChange(!checked)}\n className={cn(\n switchVariants({ size }),\n checked ? 'bg-primary' : 'bg-surface-container-highest',\n disabled && 'cursor-not-allowed opacity-50',\n )}\n >\n <span\n className={cn(\n 'inline-block translate-y-0.5 rounded-full bg-surface-container-lowest shadow transition-transform',\n thumbSize,\n thumbTranslate,\n )}\n />\n </button>\n {label && (\n <span className=\"text-sm text-on-surface-variant\">{label}</span>\n )}\n </label>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport { switchVariants };\n","'use client';\n\nimport { forwardRef, useEffect, useState, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst toastVariants = cva(\n 'fixed right-4 top-4 z-50 rounded-md px-4 py-3 text-sm shadow-lg transition-all duration-300',\n {\n variants: {\n variant: {\n success: 'bg-success text-on-success',\n danger: 'bg-error text-on-error',\n info: 'bg-primary text-on-primary',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n }\n);\n\nexport interface ToastProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onClose'>,\n VariantProps<typeof toastVariants> {\n message: string;\n duration?: number;\n onClose: () => void;\n}\n\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(\n ({ variant, message, duration = 3000, onClose, className, ...props }, ref) => {\n const [visible, setVisible] = useState(true);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setVisible(false);\n setTimeout(onClose, 300);\n }, duration);\n return () => clearTimeout(timer);\n }, [duration, onClose]);\n\n return (\n <div\n ref={ref}\n className={cn(\n toastVariants({ variant }),\n visible ? 'translate-y-0 opacity-100' : '-translate-y-2 opacity-0',\n className,\n )}\n {...props}\n >\n {message}\n </div>\n );\n }\n);\n\nToast.displayName = 'Toast';\n\nexport { toastVariants };\n","export { TableRoot as Root, type TableRootProps, tableRootVariants } from './TableRoot';\nexport { TableHead as Head, type TableHeadProps } from './TableHead';\nexport { TableBody as Body, type TableBodyProps } from './TableBody';\nexport { TableRow as Row, type TableRowProps, tableRowVariants } from './TableRow';\nexport { TableHeaderCell as HeaderCell, type TableHeaderCellProps, tableHeaderCellVariants } from './TableHeaderCell';\nexport { TableCell as Cell, type TableCellProps, tableCellVariants } from './TableCell';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst tableRootVariants = cva('w-full text-sm', {\n variants: {\n density: {\n default: '',\n compact: '[&_th]:px-3 [&_th]:py-2 [&_td]:px-3 [&_td]:py-2',\n comfortable: '[&_th]:px-5 [&_th]:py-4 [&_td]:px-5 [&_td]:py-4',\n },\n },\n defaultVariants: {\n density: 'default',\n },\n});\n\nexport interface TableRootProps\n extends HTMLAttributes<HTMLTableElement>,\n VariantProps<typeof tableRootVariants> {}\n\nexport const TableRoot = forwardRef<HTMLTableElement, TableRootProps>(\n ({ density, className, children, ...props }, ref) => {\n return (\n <div className=\"overflow-x-auto\">\n <table\n ref={ref}\n className={cn(tableRootVariants({ density }), className)}\n {...props}\n >\n {children}\n </table>\n </div>\n );\n }\n);\n\nTableRoot.displayName = 'Table.Root';\n\nexport { tableRootVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface TableHeadProps extends HTMLAttributes<HTMLTableSectionElement> {}\n\nexport const TableHead = forwardRef<HTMLTableSectionElement, TableHeadProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <thead\n ref={ref}\n className={cn('border-b border-outline-variant bg-surface-container-low', className)}\n {...props}\n >\n {children}\n </thead>\n );\n }\n);\n\nTableHead.displayName = 'Table.Head';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {}\n\nexport const TableBody = forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <tbody\n ref={ref}\n className={cn('divide-y divide-outline-variant', className)}\n {...props}\n >\n {children}\n </tbody>\n );\n }\n);\n\nTableBody.displayName = 'Table.Body';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst tableRowVariants = cva('', {\n variants: {\n hoverable: {\n true: 'hover:bg-surface-container-low',\n false: '',\n },\n selected: {\n true: 'bg-primary-fixed/10',\n false: '',\n },\n },\n defaultVariants: {\n hoverable: true,\n selected: false,\n },\n});\n\nexport interface TableRowProps\n extends HTMLAttributes<HTMLTableRowElement>,\n VariantProps<typeof tableRowVariants> {}\n\nexport const TableRow = forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ hoverable, selected, className, children, ...props }, ref) => {\n return (\n <tr\n ref={ref}\n className={cn(tableRowVariants({ hoverable, selected }), className)}\n {...props}\n >\n {children}\n </tr>\n );\n }\n);\n\nTableRow.displayName = 'Table.Row';\n\nexport { tableRowVariants };\n","'use client';\n\nimport { forwardRef, type ThHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst tableHeaderCellVariants = cva(\n 'px-4 py-3 text-xs font-medium uppercase tracking-wider text-outline',\n {\n variants: {\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n align: 'left',\n },\n }\n);\n\nexport interface TableHeaderCellProps\n extends Omit<ThHTMLAttributes<HTMLTableCellElement>, 'align'>,\n VariantProps<typeof tableHeaderCellVariants> {}\n\nexport const TableHeaderCell = forwardRef<HTMLTableCellElement, TableHeaderCellProps>(\n ({ align, className, children, ...props }, ref) => {\n return (\n <th\n ref={ref}\n className={cn(tableHeaderCellVariants({ align }), className)}\n {...props}\n >\n {children}\n </th>\n );\n }\n);\n\nTableHeaderCell.displayName = 'Table.HeaderCell';\n\nexport { tableHeaderCellVariants };\n","'use client';\n\nimport { forwardRef, type TdHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst tableCellVariants = cva('px-4 py-3 text-on-surface-variant', {\n variants: {\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n align: 'left',\n },\n});\n\nexport interface TableCellProps\n extends Omit<TdHTMLAttributes<HTMLTableCellElement>, 'align'>,\n VariantProps<typeof tableCellVariants> {}\n\nexport const TableCell = forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ align, className, children, ...props }, ref) => {\n return (\n <td\n ref={ref}\n className={cn(tableCellVariants({ align }), className)}\n {...props}\n >\n {children}\n </td>\n );\n }\n);\n\nTableCell.displayName = 'Table.Cell';\n\nexport { tableCellVariants };\n","export { CardRoot as Root, type CardRootProps, cardRootVariants } from './CardRoot';\nexport { CardHeader as Header, type CardHeaderProps } from './CardHeader';\nexport { CardTitle as Title, type CardTitleProps, cardTitleVariants } from './CardTitle';\nexport { CardBody as Body, type CardBodyProps } from './CardBody';\nexport { CardFooter as Footer, type CardFooterProps } from './CardFooter';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst cardRootVariants = cva(\n 'rounded-lg border border-outline-variant shadow-sm',\n {\n variants: {\n variant: {\n filled: 'bg-surface-container-lowest',\n elevated: 'bg-surface-container-lowest shadow-md',\n outlined: 'bg-transparent shadow-none',\n },\n padding: {\n true: 'p-6',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'filled',\n padding: true,\n },\n }\n);\n\nexport interface CardRootProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardRootVariants> {}\n\nexport const CardRoot = forwardRef<HTMLDivElement, CardRootProps>(\n ({ variant, padding, className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(cardRootVariants({ variant, padding }), className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nCardRoot.displayName = 'Card.Root';\n\nexport { cardRootVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardHeader = forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('mb-4', className)} {...props}>\n {children}\n </div>\n );\n }\n);\n\nCardHeader.displayName = 'Card.Header';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst cardTitleVariants = cva('font-semibold text-on-surface', {\n variants: {\n size: {\n sm: 'text-base',\n md: 'text-lg',\n lg: 'text-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport interface CardTitleProps\n extends HTMLAttributes<HTMLHeadingElement>,\n VariantProps<typeof cardTitleVariants> {}\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, CardTitleProps>(\n ({ size, className, children, ...props }, ref) => {\n return (\n <h3 ref={ref} className={cn(cardTitleVariants({ size }), className)} {...props}>\n {children}\n </h3>\n );\n }\n);\n\nCardTitle.displayName = 'Card.Title';\n\nexport { cardTitleVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface CardBodyProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardBody = forwardRef<HTMLDivElement, CardBodyProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('text-on-surface-variant', className)} {...props}>\n {children}\n </div>\n );\n }\n);\n\nCardBody.displayName = 'Card.Body';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardFooter = forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('mt-4 flex items-center gap-2', className)} {...props}>\n {children}\n </div>\n );\n }\n);\n\nCardFooter.displayName = 'Card.Footer';\n"],"mappings":"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","names":["forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","useEffect","useState","cva","jsx","cva","forwardRef","useState","useEffect","forwardRef","cva","jsx","cva","forwardRef","forwardRef","jsx","forwardRef","forwardRef","jsx","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","jsx","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","jsx","forwardRef","forwardRef","jsx","forwardRef"]}
1
+ {"version":3,"sources":["../src/utils/cn.ts","../src/components/Button.tsx","../src/components/Alert.tsx","../src/components/Badge.tsx","../src/components/Chip.tsx","../src/components/Container.tsx","../src/components/Divider.tsx","../src/components/HeroBadge.tsx","../src/components/IconButton.tsx","../src/components/Input.tsx","../src/components/Modal.tsx","../src/components/ProgressBar.tsx","../src/components/Radio.tsx","../src/components/Select.tsx","../src/components/SidebarCard.tsx","../src/components/Switch.tsx","../src/components/Toast.tsx","../src/components/Table/index.ts","../src/components/Table/TableRoot.tsx","../src/components/Table/TableHead.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableRow.tsx","../src/components/Table/TableHeaderCell.tsx","../src/components/Table/TableCell.tsx","../src/components/Card/index.ts","../src/components/Card/CardRoot.tsx","../src/components/Card/CardHeader.tsx","../src/components/Card/CardTitle.tsx","../src/components/Card/CardBody.tsx","../src/components/Card/CardFooter.tsx"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","'use client';\n\nimport { ButtonHTMLAttributes, forwardRef } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2',\n {\n variants: {\n variant: {\n primary: 'bg-primary text-on-primary hover:bg-primary/90 disabled:opacity-50',\n secondary: 'bg-secondary text-on-secondary hover:bg-secondary/90 disabled:opacity-50',\n danger: 'bg-error text-on-error hover:bg-error/90 disabled:opacity-50',\n outline: 'border border-outline-variant text-on-surface-variant hover:bg-surface-container-low disabled:opacity-50',\n ghost: 'text-on-surface-variant hover:bg-surface-container disabled:opacity-50',\n },\n size: {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-sm',\n lg: 'px-6 py-3 text-base',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n);\n\nexport interface ButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n loading?: boolean;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ variant, size, loading, children, disabled, className, ...props }, ref) => {\n return (\n <button\n ref={ref}\n disabled={disabled || loading}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n >\n {loading && (\n <svg className=\"mr-2 h-4 w-4 animate-spin\" viewBox=\"0 0 24 24\" fill=\"none\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\" />\n </svg>\n )}\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport { buttonVariants };\n","'use client';\n\nimport { forwardRef, useState, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst alertVariants = cva('rounded-md border p-4', {\n variants: {\n variant: {\n info: 'bg-info-container border-info text-on-info-container',\n success: 'bg-success-container border-success text-on-success-container',\n warning: 'bg-warning-container border-warning text-on-warning-container',\n danger: 'bg-error-container border-error text-on-error-container',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n});\n\nexport interface AlertProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n title?: string;\n dismissible?: boolean;\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ variant, title, dismissible, children, className, ...props }, ref) => {\n const [visible, setVisible] = useState(true);\n\n if (!visible) return null;\n\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n <div className=\"flex\">\n <div className=\"flex-1\">\n {title && <h4 className=\"mb-1 text-sm font-semibold\">{title}</h4>}\n <div className=\"text-sm\">{children}</div>\n </div>\n {dismissible && (\n <button\n onClick={() => setVisible(false)}\n className=\"ml-4 text-current opacity-50 hover:opacity-100\"\n >\n &times;\n </button>\n )}\n </div>\n </div>\n );\n }\n);\n\nAlert.displayName = 'Alert';\n\nexport { alertVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium',\n {\n variants: {\n variant: {\n default: 'bg-surface-container-high text-on-surface-variant',\n success: 'bg-success-container text-on-success-container',\n warning: 'bg-warning-container text-on-warning-container',\n danger: 'bg-error-container text-on-error-container',\n info: 'bg-info-container text-on-info-container',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface BadgeProps\n extends HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ variant, className, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n >\n {children}\n </span>\n );\n }\n);\n\nBadge.displayName = 'Badge';\n\nexport { badgeVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst chipVariants = cva(\n 'inline-flex items-center px-5 py-2 rounded-full text-xs font-semibold tracking-wide transition-all whitespace-nowrap cursor-default',\n {\n variants: {\n variant: {\n filled: 'bg-secondary-container text-on-secondary-container hover:bg-primary-fixed-dim',\n tonal: 'bg-surface-container text-on-surface-variant hover:bg-surface-container-high',\n outline: 'border border-outline-variant text-on-surface-variant hover:bg-surface-container-low',\n },\n active: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n { variant: 'filled', active: true, className: 'bg-primary text-on-primary shadow-md' },\n { variant: 'tonal', active: true, className: 'bg-primary-fixed text-on-primary-fixed-variant font-semibold' },\n { variant: 'outline', active: true, className: 'border-primary text-primary font-semibold' },\n ],\n defaultVariants: {\n variant: 'filled',\n active: false,\n },\n }\n);\n\nexport interface ChipProps\n extends HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof chipVariants> {}\n\nexport const Chip = forwardRef<HTMLSpanElement, ChipProps>(\n ({ variant, active, onClick, className, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n onClick={onClick}\n className={cn(\n chipVariants({ variant, active }),\n onClick && 'cursor-pointer',\n className,\n )}\n {...props}\n >\n {children}\n </span>\n );\n }\n);\n\nChip.displayName = 'Chip';\n\nexport { chipVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst containerVariants = cva('mx-auto px-6', {\n variants: {\n size: {\n default: 'max-w-7xl',\n narrow: 'max-w-4xl',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\nexport interface ContainerProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof containerVariants> {}\n\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(\n ({ size, className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(containerVariants({ size }), className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nContainer.displayName = 'Container';\n\nexport { containerVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst dividerVariants = cva('bg-outline-variant/15', {\n variants: {\n orientation: {\n horizontal: 'w-full h-px',\n vertical: 'h-full w-px',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n\nexport interface DividerProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof dividerVariants> {}\n\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n ({ orientation, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation ?? 'horizontal'}\n className={cn(dividerVariants({ orientation }), className)}\n {...props}\n />\n );\n }\n);\n\nDivider.displayName = 'Divider';\n\nexport { dividerVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst heroBadgeVariants = cva(\n 'inline-block px-3 py-1 rounded-full text-xs font-bold tracking-wider',\n {\n variants: {\n variant: {\n default: 'bg-secondary-container text-on-secondary-container',\n primary: 'bg-primary-container text-on-primary-container',\n tertiary: 'bg-tertiary-container text-on-tertiary-container',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface HeroBadgeProps\n extends HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof heroBadgeVariants> {}\n\nexport const HeroBadge = forwardRef<HTMLSpanElement, HeroBadgeProps>(\n ({ variant, className, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={cn(heroBadgeVariants({ variant }), className)}\n {...props}\n >\n {children}\n </span>\n );\n }\n);\n\nHeroBadge.displayName = 'HeroBadge';\n\nexport { heroBadgeVariants };\n","'use client';\n\nimport { forwardRef, type ButtonHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst iconButtonVariants = cva(\n 'flex items-center justify-center rounded-lg text-on-surface-variant hover:bg-surface-container-high active:scale-90 transition-all duration-200',\n {\n variants: {\n size: {\n sm: 'min-h-[36px] min-w-[36px]',\n md: 'min-h-[44px] min-w-[44px]',\n lg: 'min-h-[52px] min-w-[52px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface IconButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof iconButtonVariants> {\n 'aria-label': string;\n}\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ size, className, children, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(iconButtonVariants({ size }), className)}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\n\nIconButton.displayName = 'IconButton';\n\nexport { iconButtonVariants };\n","'use client';\n\nimport { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst inputVariants = cva(\n 'w-full rounded-md border px-3 py-2 text-sm transition-colors focus:outline-none focus:ring-2',\n {\n variants: {\n variant: {\n default: 'border-outline-variant focus:ring-primary',\n error: 'border-error focus:ring-error',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface InputProps\n extends InputHTMLAttributes<HTMLInputElement>,\n VariantProps<typeof inputVariants> {\n label?: string;\n error?: string;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ label, error, variant, className, id, ...props }, ref) => {\n const inputId = id || label?.toLowerCase().replace(/\\s+/g, '-');\n const resolvedVariant = error ? 'error' : variant;\n\n return (\n <div>\n {label && (\n <label\n htmlFor={inputId}\n className=\"mb-1 block text-sm font-medium text-on-surface-variant\"\n >\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={cn(inputVariants({ variant: resolvedVariant }), className)}\n {...props}\n />\n {error && <p className=\"mt-1 text-sm text-error\">{error}</p>}\n </div>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport { inputVariants };\n","'use client';\n\nimport { forwardRef, useEffect, useRef, useImperativeHandle, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst modalVariants = cva(\n 'fixed inset-0 m-auto rounded-lg border-none bg-surface-container-lowest p-0 shadow-xl backdrop:bg-black/50',\n {\n variants: {\n size: {\n sm: 'w-full max-w-sm',\n md: 'w-full max-w-lg',\n lg: 'w-full max-w-2xl',\n full: 'w-full max-w-[calc(100vw-2rem)]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface ModalProps\n extends Omit<HTMLAttributes<HTMLDialogElement>, 'title'>,\n VariantProps<typeof modalVariants> {\n open: boolean;\n onClose: () => void;\n title: string;\n}\n\nexport const Modal = forwardRef<HTMLDialogElement, ModalProps>(\n ({ open, onClose, title, size, className, children, ...props }, ref) => {\n const dialogRef = useRef<HTMLDialogElement>(null);\n useImperativeHandle(ref, () => dialogRef.current!);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (open) {\n dialog.showModal();\n } else {\n dialog.close();\n }\n }, [open]);\n\n return (\n <dialog\n ref={dialogRef}\n onClose={onClose}\n className={cn(modalVariants({ size }), className)}\n {...props}\n >\n <div className=\"p-6\">\n <div className=\"mb-4 flex items-center justify-between\">\n <h2 className=\"text-lg font-semibold text-on-surface\">{title}</h2>\n <button\n onClick={onClose}\n className=\"text-outline hover:text-on-surface-variant\"\n >\n &times;\n </button>\n </div>\n {children}\n </div>\n </dialog>\n );\n }\n);\n\nModal.displayName = 'Modal';\n\nexport { modalVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst progressBarVariants = cva('h-full rounded-full transition-all duration-300', {\n variants: {\n variant: {\n primary: 'bg-primary',\n success: 'bg-success',\n warning: 'bg-warning',\n danger: 'bg-error',\n },\n size: {\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n});\n\nconst trackSizeMap = {\n sm: 'h-1',\n md: 'h-2',\n lg: 'h-3',\n} as const;\n\nexport interface ProgressBarProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof progressBarVariants> {\n value: number;\n max?: number;\n label?: string;\n}\n\nexport const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(\n ({ value, max = 100, label, variant, size, className, ...props }, ref) => {\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\n const trackSize = trackSizeMap[size ?? 'md'];\n\n return (\n <div ref={ref} className={className} {...props}>\n {label && (\n <div className=\"mb-1 text-sm text-on-surface-variant\">{label}</div>\n )}\n <div\n className={cn(\n 'w-full overflow-hidden rounded-full bg-surface-container-high',\n trackSize,\n )}\n >\n <div\n className={cn(progressBarVariants({ variant, size }))}\n style={{ width: `${percentage}%` }}\n />\n </div>\n </div>\n );\n }\n);\n\nProgressBar.displayName = 'ProgressBar';\n\nexport { progressBarVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst radioGroupVariants = cva('', {\n variants: {\n orientation: {\n horizontal: 'flex gap-4',\n vertical: 'flex flex-col gap-2',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n\ninterface RadioOption {\n value: string;\n label: string;\n description?: string;\n}\n\nexport interface RadioGroupProps\n extends Omit<HTMLAttributes<HTMLFieldSetElement>, 'onChange'>,\n VariantProps<typeof radioGroupVariants> {\n name: string;\n label?: string;\n options: RadioOption[];\n value: string;\n onChange: (value: string) => void;\n disabled?: boolean;\n}\n\nexport const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(\n ({ name, label, options, value, onChange, orientation, disabled, className, ...props }, ref) => {\n return (\n <fieldset ref={ref} disabled={disabled} className={className} {...props}>\n {label && (\n <legend className=\"mb-2 text-sm font-medium text-on-surface-variant\">\n {label}\n </legend>\n )}\n <div className={cn(radioGroupVariants({ orientation }))}>\n {options.map((opt) => (\n <label key={opt.value} className=\"flex cursor-pointer items-center gap-2\">\n <input\n type=\"radio\"\n name={name}\n value={opt.value}\n checked={value === opt.value}\n onChange={() => onChange(opt.value)}\n className=\"h-4 w-4 text-primary focus:ring-primary\"\n />\n <span className=\"text-sm text-on-surface-variant\">{opt.label}</span>\n {opt.description && (\n <span className=\"text-xs text-outline\">({opt.description})</span>\n )}\n </label>\n ))}\n </div>\n </fieldset>\n );\n }\n);\n\nRadioGroup.displayName = 'RadioGroup';\n\nexport { radioGroupVariants };\n","'use client';\n\nimport { forwardRef, type SelectHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst selectVariants = cva(\n 'w-full rounded-md border border-outline-variant px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary',\n {\n variants: {\n size: {\n sm: 'px-2 py-1 text-xs',\n md: 'px-3 py-2 text-sm',\n lg: 'px-4 py-3 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface SelectProps\n extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'>,\n VariantProps<typeof selectVariants> {\n label?: string;\n options: { value: string; label: string }[];\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n ({ label, options, size, className, id, ...props }, ref) => {\n const selectId = id || label?.toLowerCase().replace(/\\s+/g, '-');\n\n return (\n <div>\n {label && (\n <label\n htmlFor={selectId}\n className=\"mb-1 block text-sm font-medium text-on-surface-variant\"\n >\n {label}\n </label>\n )}\n <select\n ref={ref}\n id={selectId}\n className={cn(selectVariants({ size }), className)}\n {...props}\n >\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport { selectVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst sidebarCardVariants = cva('rounded-xl', {\n variants: {\n variant: {\n default: 'bg-surface-container-lowest p-6',\n elevated: 'bg-surface-container-lowest p-6 shadow-md',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport interface SidebarCardProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof sidebarCardVariants> {\n title: string;\n icon?: ReactNode;\n}\n\nexport const SidebarCard = forwardRef<HTMLDivElement, SidebarCardProps>(\n ({ title, icon, variant, className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(sidebarCardVariants({ variant }), className)}\n {...props}\n >\n <h4 className=\"font-headline text-lg font-bold text-on-surface mb-6 flex items-center gap-2\">\n {icon}\n {title}\n </h4>\n {children}\n </div>\n );\n }\n);\n\nSidebarCard.displayName = 'SidebarCard';\n\nexport { sidebarCardVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst switchVariants = cva(\n 'relative inline-flex shrink-0 rounded-full transition-colors',\n {\n variants: {\n size: {\n sm: 'h-5 w-9',\n md: 'h-6 w-11',\n lg: 'h-7 w-[52px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst thumbSizeMap = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n} as const;\n\nconst thumbTranslateMap = {\n sm: { on: 'translate-x-4', off: 'translate-x-0.5' },\n md: { on: 'translate-x-5.5', off: 'translate-x-0.5' },\n lg: { on: 'translate-x-6', off: 'translate-x-0.5' },\n} as const;\n\nexport interface SwitchProps\n extends Omit<HTMLAttributes<HTMLLabelElement>, 'onChange'>,\n VariantProps<typeof switchVariants> {\n label?: string;\n checked: boolean;\n onChange: (checked: boolean) => void;\n disabled?: boolean;\n}\n\nexport const Switch = forwardRef<HTMLLabelElement, SwitchProps>(\n ({ label, checked, onChange, size, disabled, className, ...props }, ref) => {\n const resolvedSize = size ?? 'md';\n const thumbSize = thumbSizeMap[resolvedSize];\n const thumbTranslate = checked\n ? thumbTranslateMap[resolvedSize].on\n : thumbTranslateMap[resolvedSize].off;\n\n return (\n <label\n ref={ref}\n className={cn('flex cursor-pointer items-center gap-3', className)}\n {...props}\n >\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n disabled={disabled}\n onClick={() => onChange(!checked)}\n className={cn(\n switchVariants({ size }),\n checked ? 'bg-primary' : 'bg-surface-container-highest',\n disabled && 'cursor-not-allowed opacity-50',\n )}\n >\n <span\n className={cn(\n 'inline-block translate-y-0.5 rounded-full bg-surface-container-lowest shadow transition-transform',\n thumbSize,\n thumbTranslate,\n )}\n />\n </button>\n {label && (\n <span className=\"text-sm text-on-surface-variant\">{label}</span>\n )}\n </label>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport { switchVariants };\n","'use client';\n\nimport { forwardRef, useEffect, useState, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\n\nconst toastVariants = cva(\n 'fixed right-4 top-4 z-50 rounded-md px-4 py-3 text-sm shadow-lg transition-all duration-300',\n {\n variants: {\n variant: {\n success: 'bg-success text-on-success',\n danger: 'bg-error text-on-error',\n info: 'bg-primary text-on-primary',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n }\n);\n\nexport interface ToastProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onClose'>,\n VariantProps<typeof toastVariants> {\n message: string;\n duration?: number;\n onClose: () => void;\n}\n\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(\n ({ variant, message, duration = 3000, onClose, className, ...props }, ref) => {\n const [visible, setVisible] = useState(true);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setVisible(false);\n setTimeout(onClose, 300);\n }, duration);\n return () => clearTimeout(timer);\n }, [duration, onClose]);\n\n return (\n <div\n ref={ref}\n className={cn(\n toastVariants({ variant }),\n visible ? 'translate-y-0 opacity-100' : '-translate-y-2 opacity-0',\n className,\n )}\n {...props}\n >\n {message}\n </div>\n );\n }\n);\n\nToast.displayName = 'Toast';\n\nexport { toastVariants };\n","export { TableRoot as Root, type TableRootProps, tableRootVariants } from './TableRoot';\nexport { TableHead as Head, type TableHeadProps } from './TableHead';\nexport { TableBody as Body, type TableBodyProps } from './TableBody';\nexport { TableRow as Row, type TableRowProps, tableRowVariants } from './TableRow';\nexport { TableHeaderCell as HeaderCell, type TableHeaderCellProps, tableHeaderCellVariants } from './TableHeaderCell';\nexport { TableCell as Cell, type TableCellProps, tableCellVariants } from './TableCell';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst tableRootVariants = cva('w-full text-sm', {\n variants: {\n density: {\n default: '',\n compact: '[&_th]:px-3 [&_th]:py-2 [&_td]:px-3 [&_td]:py-2',\n comfortable: '[&_th]:px-5 [&_th]:py-4 [&_td]:px-5 [&_td]:py-4',\n },\n },\n defaultVariants: {\n density: 'default',\n },\n});\n\nexport interface TableRootProps\n extends HTMLAttributes<HTMLTableElement>,\n VariantProps<typeof tableRootVariants> {}\n\nexport const TableRoot = forwardRef<HTMLTableElement, TableRootProps>(\n ({ density, className, children, ...props }, ref) => {\n return (\n <div className=\"overflow-x-auto\">\n <table\n ref={ref}\n className={cn(tableRootVariants({ density }), className)}\n {...props}\n >\n {children}\n </table>\n </div>\n );\n }\n);\n\nTableRoot.displayName = 'Table.Root';\n\nexport { tableRootVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface TableHeadProps extends HTMLAttributes<HTMLTableSectionElement> {}\n\nexport const TableHead = forwardRef<HTMLTableSectionElement, TableHeadProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <thead\n ref={ref}\n className={cn('border-b border-outline-variant bg-surface-container-low', className)}\n {...props}\n >\n {children}\n </thead>\n );\n }\n);\n\nTableHead.displayName = 'Table.Head';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {}\n\nexport const TableBody = forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <tbody\n ref={ref}\n className={cn('divide-y divide-outline-variant', className)}\n {...props}\n >\n {children}\n </tbody>\n );\n }\n);\n\nTableBody.displayName = 'Table.Body';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst tableRowVariants = cva('', {\n variants: {\n hoverable: {\n true: 'hover:bg-surface-container-low',\n false: '',\n },\n selected: {\n true: 'bg-primary-fixed/10',\n false: '',\n },\n },\n defaultVariants: {\n hoverable: true,\n selected: false,\n },\n});\n\nexport interface TableRowProps\n extends HTMLAttributes<HTMLTableRowElement>,\n VariantProps<typeof tableRowVariants> {}\n\nexport const TableRow = forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ hoverable, selected, className, children, ...props }, ref) => {\n return (\n <tr\n ref={ref}\n className={cn(tableRowVariants({ hoverable, selected }), className)}\n {...props}\n >\n {children}\n </tr>\n );\n }\n);\n\nTableRow.displayName = 'Table.Row';\n\nexport { tableRowVariants };\n","'use client';\n\nimport { forwardRef, type ThHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst tableHeaderCellVariants = cva(\n 'px-4 py-3 text-xs font-medium uppercase tracking-wider text-outline',\n {\n variants: {\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n align: 'left',\n },\n }\n);\n\nexport interface TableHeaderCellProps\n extends Omit<ThHTMLAttributes<HTMLTableCellElement>, 'align'>,\n VariantProps<typeof tableHeaderCellVariants> {}\n\nexport const TableHeaderCell = forwardRef<HTMLTableCellElement, TableHeaderCellProps>(\n ({ align, className, children, ...props }, ref) => {\n return (\n <th\n ref={ref}\n className={cn(tableHeaderCellVariants({ align }), className)}\n {...props}\n >\n {children}\n </th>\n );\n }\n);\n\nTableHeaderCell.displayName = 'Table.HeaderCell';\n\nexport { tableHeaderCellVariants };\n","'use client';\n\nimport { forwardRef, type TdHTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst tableCellVariants = cva('px-4 py-3 text-on-surface-variant', {\n variants: {\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n align: 'left',\n },\n});\n\nexport interface TableCellProps\n extends Omit<TdHTMLAttributes<HTMLTableCellElement>, 'align'>,\n VariantProps<typeof tableCellVariants> {}\n\nexport const TableCell = forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ align, className, children, ...props }, ref) => {\n return (\n <td\n ref={ref}\n className={cn(tableCellVariants({ align }), className)}\n {...props}\n >\n {children}\n </td>\n );\n }\n);\n\nTableCell.displayName = 'Table.Cell';\n\nexport { tableCellVariants };\n","export { CardRoot as Root, type CardRootProps, cardRootVariants } from './CardRoot';\nexport { CardHeader as Header, type CardHeaderProps } from './CardHeader';\nexport { CardTitle as Title, type CardTitleProps, cardTitleVariants } from './CardTitle';\nexport { CardBody as Body, type CardBodyProps } from './CardBody';\nexport { CardFooter as Footer, type CardFooterProps } from './CardFooter';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst cardRootVariants = cva(\n 'rounded-xl',\n {\n variants: {\n variant: {\n filled: 'bg-surface-container-lowest',\n elevated: 'bg-surface-container-lowest shadow-md',\n outlined: 'border border-outline-variant bg-transparent',\n },\n padding: {\n true: 'p-6',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'filled',\n padding: true,\n },\n }\n);\n\nexport interface CardRootProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardRootVariants> {}\n\nexport const CardRoot = forwardRef<HTMLDivElement, CardRootProps>(\n ({ variant, padding, className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(cardRootVariants({ variant, padding }), className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nCardRoot.displayName = 'Card.Root';\n\nexport { cardRootVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardHeader = forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('mb-4', className)} {...props}>\n {children}\n </div>\n );\n }\n);\n\nCardHeader.displayName = 'Card.Header';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst cardTitleVariants = cva('font-semibold text-on-surface', {\n variants: {\n size: {\n sm: 'text-base',\n md: 'text-lg',\n lg: 'text-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport interface CardTitleProps\n extends HTMLAttributes<HTMLHeadingElement>,\n VariantProps<typeof cardTitleVariants> {}\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, CardTitleProps>(\n ({ size, className, children, ...props }, ref) => {\n return (\n <h3 ref={ref} className={cn(cardTitleVariants({ size }), className)} {...props}>\n {children}\n </h3>\n );\n }\n);\n\nCardTitle.displayName = 'Card.Title';\n\nexport { cardTitleVariants };\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface CardBodyProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardBody = forwardRef<HTMLDivElement, CardBodyProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('text-on-surface-variant', className)} {...props}>\n {children}\n </div>\n );\n }\n);\n\nCardBody.displayName = 'Card.Body';\n","'use client';\n\nimport { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardFooter = forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('mt-4 flex items-center gap-2', className)} {...props}>\n {children}\n </div>\n );\n }\n);\n\nCardFooter.displayName = 'Card.Footer';\n"],"mappings":"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","names":["forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","cva","jsxs","cva","forwardRef","forwardRef","cva","jsx","jsxs","cva","forwardRef","forwardRef","useEffect","useState","cva","jsx","cva","forwardRef","useState","useEffect","forwardRef","cva","jsx","cva","forwardRef","forwardRef","jsx","forwardRef","forwardRef","jsx","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","jsx","forwardRef","forwardRef","cva","jsx","cva","forwardRef","forwardRef","jsx","forwardRef","forwardRef","jsx","forwardRef"]}
package/dist/styles.css CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--container-4xl:56rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface:var(--color-surface);--color-surface-bright:var(--color-surface-bright);--color-surface-dim:var(--color-surface-dim);--color-surface-container:var(--color-surface-container);--color-surface-container-lowest:var(--color-surface-container-lowest);--color-surface-container-low:var(--color-surface-container-low);--color-surface-container-high:var(--color-surface-container-high);--color-surface-container-highest:var(--color-surface-container-highest);--color-surface-variant:var(--color-surface-variant);--color-surface-tint:var(--color-surface-tint);--color-primary:var(--color-primary);--color-primary-container:var(--color-primary-container);--color-primary-fixed:var(--color-primary-fixed);--color-primary-fixed-dim:var(--color-primary-fixed-dim);--color-on-primary:var(--color-on-primary);--color-on-primary-container:var(--color-on-primary-container);--color-on-primary-fixed:var(--color-on-primary-fixed);--color-on-primary-fixed-variant:var(--color-on-primary-fixed-variant);--color-secondary:var(--color-secondary);--color-secondary-container:var(--color-secondary-container);--color-secondary-fixed:var(--color-secondary-fixed);--color-secondary-fixed-dim:var(--color-secondary-fixed-dim);--color-on-secondary:var(--color-on-secondary);--color-on-secondary-container:var(--color-on-secondary-container);--color-on-secondary-fixed:var(--color-on-secondary-fixed);--color-on-secondary-fixed-variant:var(--color-on-secondary-fixed-variant);--color-tertiary:var(--color-tertiary);--color-tertiary-container:var(--color-tertiary-container);--color-tertiary-fixed:var(--color-tertiary-fixed);--color-tertiary-fixed-dim:var(--color-tertiary-fixed-dim);--color-on-tertiary:var(--color-on-tertiary);--color-on-tertiary-container:var(--color-on-tertiary-container);--color-on-tertiary-fixed:var(--color-on-tertiary-fixed);--color-on-tertiary-fixed-variant:var(--color-on-tertiary-fixed-variant);--color-on-surface:var(--color-on-surface);--color-on-surface-variant:var(--color-on-surface-variant);--color-outline:var(--color-outline);--color-outline-variant:var(--color-outline-variant);--color-error:var(--color-error);--color-error-container:var(--color-error-container);--color-on-error:var(--color-on-error);--color-on-error-container:var(--color-on-error-container);--color-success:var(--color-success);--color-success-container:var(--color-success-container);--color-on-success:var(--color-on-success);--color-on-success-container:var(--color-on-success-container);--color-warning:var(--color-warning);--color-warning-container:var(--color-warning-container);--color-on-warning:var(--color-on-warning);--color-on-warning-container:var(--color-on-warning-container);--color-info:var(--color-info);--color-info-container:var(--color-info-container);--color-on-info:var(--color-on-info);--color-on-info-container:var(--color-on-info-container);--color-inverse-surface:var(--color-inverse-surface);--color-inverse-on-surface:var(--color-inverse-on-surface);--color-inverse-primary:var(--color-inverse-primary);--color-background:var(--color-background);--color-on-background:var(--color-on-background);--font-headline:"Manrope", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--font-body:"Inter", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.top-4{top:calc(var(--spacing) * 4)}.right-4{right:calc(var(--spacing) * 4)}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-auto{margin:auto}.mx-auto{margin-inline:auto}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-4{margin-left:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1{height:calc(var(--spacing) * 1)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-full{height:100%}.h-px{height:1px}.min-h-\[36px\]{min-height:36px}.min-h-\[44px\]{min-height:44px}.min-h-\[52px\]{min-height:52px}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-\[52px\]{width:52px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.min-w-\[36px\]{min-width:36px}.min-w-\[44px\]{min-width:44px}.min-w-\[52px\]{min-width:52px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-5\.5{--tw-translate-x:calc(var(--spacing) * 5.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-2{--tw-translate-y:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-outline-variant>:not(:last-child)){border-color:var(--color-outline-variant)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-error{border-color:var(--color-error)}.border-info{border-color:var(--color-info)}.border-outline-variant{border-color:var(--color-outline-variant)}.border-primary{border-color:var(--color-primary)}.border-success{border-color:var(--color-success)}.border-warning{border-color:var(--color-warning)}.bg-error{background-color:var(--color-error)}.bg-error-container{background-color:var(--color-error-container)}.bg-info-container{background-color:var(--color-info-container)}.bg-outline-variant\/15{background-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.bg-outline-variant\/15{background-color:color-mix(in oklab, var(--color-outline-variant) 15%, transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary-container{background-color:var(--color-primary-container)}.bg-primary-fixed,.bg-primary-fixed\/10{background-color:var(--color-primary-fixed)}@supports (color:color-mix(in lab, red, red)){.bg-primary-fixed\/10{background-color:color-mix(in oklab, var(--color-primary-fixed) 10%, transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary-container{background-color:var(--color-secondary-container)}.bg-success{background-color:var(--color-success)}.bg-success-container{background-color:var(--color-success-container)}.bg-surface-container{background-color:var(--color-surface-container)}.bg-surface-container-high{background-color:var(--color-surface-container-high)}.bg-surface-container-highest{background-color:var(--color-surface-container-highest)}.bg-surface-container-low{background-color:var(--color-surface-container-low)}.bg-surface-container-lowest{background-color:var(--color-surface-container-lowest)}.bg-tertiary-container{background-color:var(--color-tertiary-container)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning-container{background-color:var(--color-warning-container)}.p-0{padding:calc(var(--spacing) * 0)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-headline{font-family:var(--font-headline)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.text-current{color:currentColor}.text-error{color:var(--color-error)}.text-on-error{color:var(--color-on-error)}.text-on-error-container{color:var(--color-on-error-container)}.text-on-info-container{color:var(--color-on-info-container)}.text-on-primary{color:var(--color-on-primary)}.text-on-primary-container{color:var(--color-on-primary-container)}.text-on-primary-fixed-variant{color:var(--color-on-primary-fixed-variant)}.text-on-secondary{color:var(--color-on-secondary)}.text-on-secondary-container{color:var(--color-on-secondary-container)}.text-on-success{color:var(--color-on-success)}.text-on-success-container{color:var(--color-on-success-container)}.text-on-surface{color:var(--color-on-surface)}.text-on-surface-variant{color:var(--color-on-surface-variant)}.text-on-tertiary-container{color:var(--color-on-tertiary-container)}.text-on-warning-container{color:var(--color-on-warning-container)}.text-outline{color:var(--color-outline)}.text-primary{color:var(--color-primary)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/50::backdrop{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}@media (hover:hover){.hover\:bg-error\/90:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-error\/90:hover{background-color:color-mix(in oklab, var(--color-error) 90%, transparent)}}.hover\:bg-primary-fixed-dim:hover{background-color:var(--color-primary-fixed-dim)}.hover\:bg-primary\/90:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-secondary\/90:hover{background-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab, var(--color-secondary) 90%, transparent)}}.hover\:bg-surface-container:hover{background-color:var(--color-surface-container)}.hover\:bg-surface-container-high:hover{background-color:var(--color-surface-container-high)}.hover\:bg-surface-container-low:hover{background-color:var(--color-surface-container-low)}.hover\:text-on-surface-variant:hover{color:var(--color-on-surface-variant)}.hover\:opacity-100:hover{opacity:1}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-error:focus{--tw-ring-color:var(--color-error)}.focus\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.disabled\:opacity-50:disabled{opacity:.5}.\[\&_td\]\:px-3 td{padding-inline:calc(var(--spacing) * 3)}.\[\&_td\]\:px-5 td{padding-inline:calc(var(--spacing) * 5)}.\[\&_td\]\:py-2 td{padding-block:calc(var(--spacing) * 2)}.\[\&_td\]\:py-4 td{padding-block:calc(var(--spacing) * 4)}.\[\&_th\]\:px-3 th{padding-inline:calc(var(--spacing) * 3)}.\[\&_th\]\:px-5 th{padding-inline:calc(var(--spacing) * 5)}.\[\&_th\]\:py-2 th{padding-block:calc(var(--spacing) * 2)}.\[\&_th\]\:py-4 th{padding-block:calc(var(--spacing) * 4)}}:root{--palette-blue-50:#eeefff;--palette-blue-100:#dbe1ff;--palette-blue-200:#b4c5ff;--palette-blue-300:#8da8ff;--palette-blue-400:#4d7cff;--palette-blue-500:#2563eb;--palette-blue-600:#004ac6;--palette-blue-700:#003ea8;--palette-blue-800:#002e7a;--palette-blue-900:#00174b;--palette-blue-950:#000d2e;--palette-indigo-50:#eef0ff;--palette-indigo-100:#dbe1ff;--palette-indigo-200:#b4c5ff;--palette-indigo-300:#acbfff;--palette-indigo-400:#7a96d4;--palette-indigo-500:#495c95;--palette-indigo-600:#394c84;--palette-indigo-700:#31447b;--palette-indigo-800:#1f2d5a;--palette-indigo-900:#00174b;--palette-indigo-950:#000d2e;--palette-orange-50:#ffede6;--palette-orange-100:#ffdbcd;--palette-orange-200:#ffb596;--palette-orange-300:#ff9060;--palette-orange-400:#e06420;--palette-orange-500:#bc4800;--palette-orange-600:#943700;--palette-orange-700:#7d2d00;--palette-orange-800:#4e1000;--palette-orange-900:#360f00;--palette-orange-950:#1f0800;--palette-neutral-0:#fff;--palette-neutral-50:#faf8ff;--palette-neutral-100:#f3f3fe;--palette-neutral-150:#ededf9;--palette-neutral-200:#e7e7f3;--palette-neutral-250:#e1e2ed;--palette-neutral-300:#d9d9e5;--palette-neutral-400:#c3c6d7;--palette-neutral-500:#8e909f;--palette-neutral-600:#737686;--palette-neutral-700:#434655;--palette-neutral-800:#2e3039;--palette-neutral-850:#1d1e2a;--palette-neutral-875:#1a1c26;--palette-neutral-900:#191b23;--palette-neutral-925:#282a36;--palette-neutral-935:#333544;--palette-neutral-950:#11141d;--palette-neutral-1000:#0f111a;--palette-red-50:#fff5f5;--palette-red-100:#ffdad6;--palette-red-200:#ffb4ab;--palette-red-300:#ff897d;--palette-red-400:#f44336;--palette-red-500:#ba1a1a;--palette-red-600:#93000a;--palette-red-700:#7a0008;--palette-red-800:#5c0005;--palette-red-900:#410003;--palette-red-950:#2d0002;--palette-green-50:#f0fdf4;--palette-green-100:#dcfce7;--palette-green-200:#bbf7d0;--palette-green-300:#86efac;--palette-green-400:#4ade80;--palette-green-500:#22c55e;--palette-green-600:#16a34a;--palette-green-700:#166534;--palette-green-800:#14532d;--palette-green-900:#052e16;--palette-green-950:#022c22;--palette-yellow-50:#fefce8;--palette-yellow-100:#fef9c3;--palette-yellow-200:#fef08a;--palette-yellow-300:#fde047;--palette-yellow-400:#facc15;--palette-yellow-500:#eab308;--palette-yellow-600:#ca8a04;--palette-yellow-700:#a16207;--palette-yellow-800:#854d0e;--palette-yellow-900:#713f12;--palette-yellow-950:#422006;--palette-sky-50:#f0f9ff;--palette-sky-100:#e0f2fe;--palette-sky-200:#bae6fd;--palette-sky-300:#7dd3fc;--palette-sky-400:#38bdf8;--palette-sky-500:#0ea5e9;--palette-sky-600:#0284c7;--palette-sky-700:#0369a1;--palette-sky-800:#075985;--palette-sky-900:#0c4a6e;--palette-sky-950:#082f49;--color-surface:var(--palette-neutral-50);--color-surface-bright:var(--palette-neutral-50);--color-surface-dim:var(--palette-neutral-300);--color-surface-container:var(--palette-neutral-150);--color-surface-container-lowest:var(--palette-neutral-0);--color-surface-container-low:var(--palette-neutral-100);--color-surface-container-high:var(--palette-neutral-200);--color-surface-container-highest:var(--palette-neutral-250);--color-surface-variant:var(--palette-neutral-250);--color-surface-tint:var(--palette-blue-600);--color-primary:var(--palette-blue-600);--color-primary-container:var(--palette-blue-500);--color-primary-fixed:var(--palette-blue-100);--color-primary-fixed-dim:var(--palette-blue-200);--color-on-primary:var(--palette-neutral-0);--color-on-primary-container:var(--palette-blue-50);--color-on-primary-fixed:var(--palette-blue-900);--color-on-primary-fixed-variant:var(--palette-blue-700);--color-secondary:var(--palette-indigo-500);--color-secondary-container:var(--palette-indigo-300);--color-secondary-fixed:var(--palette-indigo-100);--color-secondary-fixed-dim:var(--palette-indigo-200);--color-on-secondary:var(--palette-neutral-0);--color-on-secondary-container:var(--palette-indigo-600);--color-on-secondary-fixed:var(--palette-indigo-900);--color-on-secondary-fixed-variant:var(--palette-indigo-700);--color-tertiary:var(--palette-orange-600);--color-tertiary-container:var(--palette-orange-500);--color-tertiary-fixed:var(--palette-orange-100);--color-tertiary-fixed-dim:var(--palette-orange-200);--color-on-tertiary:var(--palette-neutral-0);--color-on-tertiary-container:var(--palette-orange-50);--color-on-tertiary-fixed:var(--palette-orange-900);--color-on-tertiary-fixed-variant:var(--palette-orange-700);--color-on-surface:var(--palette-neutral-900);--color-on-surface-variant:var(--palette-neutral-700);--color-outline:var(--palette-neutral-600);--color-outline-variant:var(--palette-neutral-400);--color-error:var(--palette-red-500);--color-error-container:var(--palette-red-100);--color-on-error:var(--palette-neutral-0);--color-on-error-container:var(--palette-red-600);--color-success:var(--palette-green-600);--color-success-container:var(--palette-green-100);--color-on-success:var(--palette-neutral-0);--color-on-success-container:var(--palette-green-700);--color-warning:var(--palette-yellow-600);--color-warning-container:var(--palette-yellow-100);--color-on-warning:var(--palette-neutral-0);--color-on-warning-container:var(--palette-yellow-800);--color-info:var(--palette-sky-600);--color-info-container:var(--palette-sky-100);--color-on-info:var(--palette-neutral-0);--color-on-info-container:var(--palette-sky-800);--color-inverse-surface:var(--palette-neutral-800);--color-inverse-on-surface:var(--palette-neutral-100);--color-inverse-primary:var(--palette-blue-200);--color-background:var(--palette-neutral-50);--color-on-background:var(--palette-neutral-900)}.dark{--color-surface:var(--palette-neutral-950);--color-surface-bright:var(--palette-neutral-875);--color-surface-dim:var(--palette-neutral-950);--color-surface-container:var(--palette-neutral-850);--color-surface-container-lowest:var(--palette-neutral-1000);--color-surface-container-low:var(--palette-neutral-900);--color-surface-container-high:var(--palette-neutral-925);--color-surface-container-highest:var(--palette-neutral-935);--color-surface-variant:var(--palette-neutral-700);--color-surface-tint:var(--palette-blue-600);--color-primary:var(--palette-blue-500);--color-primary-container:var(--palette-blue-500);--color-primary-fixed:var(--palette-blue-100);--color-primary-fixed-dim:var(--palette-blue-200);--color-on-primary:var(--palette-neutral-0);--color-on-primary-container:var(--palette-blue-50);--color-on-primary-fixed:var(--palette-blue-900);--color-on-primary-fixed-variant:var(--palette-blue-700);--color-secondary:var(--palette-indigo-200);--color-secondary-container:var(--palette-indigo-700);--color-secondary-fixed:var(--palette-indigo-100);--color-secondary-fixed-dim:var(--palette-indigo-200);--color-on-secondary:var(--palette-neutral-0);--color-on-secondary-container:var(--palette-indigo-100);--color-on-secondary-fixed:var(--palette-indigo-900);--color-on-secondary-fixed-variant:var(--palette-indigo-700);--color-tertiary:var(--palette-orange-200);--color-tertiary-container:var(--palette-orange-500);--color-tertiary-fixed:var(--palette-orange-100);--color-tertiary-fixed-dim:var(--palette-orange-200);--color-on-tertiary:var(--palette-orange-800);--color-on-tertiary-container:var(--palette-orange-50);--color-on-tertiary-fixed:var(--palette-orange-900);--color-on-tertiary-fixed-variant:var(--palette-orange-700);--color-on-surface:var(--palette-neutral-250);--color-on-surface-variant:var(--palette-neutral-400);--color-outline:var(--palette-neutral-500);--color-outline-variant:var(--palette-neutral-700);--color-error:var(--palette-red-200);--color-error-container:var(--palette-red-600);--color-on-error:var(--palette-neutral-0);--color-on-error-container:var(--palette-red-100);--color-success:var(--palette-green-400);--color-success-container:var(--palette-green-700);--color-on-success:var(--palette-neutral-0);--color-on-success-container:var(--palette-green-100);--color-warning:var(--palette-yellow-400);--color-warning-container:var(--palette-yellow-800);--color-on-warning:var(--palette-neutral-0);--color-on-warning-container:var(--palette-yellow-100);--color-info:var(--palette-sky-400);--color-info-container:var(--palette-sky-800);--color-on-info:var(--palette-neutral-0);--color-on-info-container:var(--palette-sky-100);--color-inverse-surface:var(--palette-neutral-250);--color-inverse-on-surface:var(--palette-neutral-900);--color-inverse-primary:var(--palette-blue-600);--color-background:var(--palette-neutral-950);--color-on-background:var(--palette-neutral-250)}body{line-height:1.75}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.prose{--tw-prose-body:var(--color-on-surface-variant);--tw-prose-headings:var(--color-on-surface);--tw-prose-lead:var(--color-on-surface-variant);--tw-prose-links:var(--color-primary);--tw-prose-bold:var(--color-on-surface);--tw-prose-counters:var(--color-outline);--tw-prose-bullets:var(--color-outline-variant);--tw-prose-hr:var(--color-outline-variant);--tw-prose-quotes:var(--color-on-surface);--tw-prose-quote-borders:var(--color-outline-variant);--tw-prose-captions:var(--color-outline);--tw-prose-code:var(--color-primary);--tw-prose-pre-code:#fff;--tw-prose-pre-bg:var(--color-on-surface);--tw-prose-th-borders:var(--color-outline-variant);--tw-prose-td-borders:var(--color-outline-variant)}.prose h2{font-family:var(--font-headline);margin-top:2.5rem;margin-bottom:1.25rem;font-size:1.75rem;font-weight:700}.prose h3{font-family:var(--font-headline);margin-top:2rem;margin-bottom:1rem;font-size:1.25rem;font-weight:600}.prose p{margin-bottom:1.5rem;line-height:1.85}.prose li{margin-bottom:.5rem;padding-left:1.5rem;line-height:1.85;position:relative}.prose ul{padding-left:0;list-style-type:none}.prose ul>li:before{content:"";background-color:var(--color-primary);border-radius:50%;width:6px;height:6px;position:absolute;top:.75rem;left:0}.prose code:not(pre code){background-color:var(--color-surface-container-low);border-radius:.25rem;padding:.2rem .4rem;font-size:.9em}.prose pre{border-radius:.5rem;padding:1.5rem;overflow-x:auto}.prose pre code{color:inherit;background-color:#0000;padding:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--container-4xl:56rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface:var(--color-surface);--color-surface-bright:var(--color-surface-bright);--color-surface-dim:var(--color-surface-dim);--color-surface-container:var(--color-surface-container);--color-surface-container-lowest:var(--color-surface-container-lowest);--color-surface-container-low:var(--color-surface-container-low);--color-surface-container-high:var(--color-surface-container-high);--color-surface-container-highest:var(--color-surface-container-highest);--color-surface-variant:var(--color-surface-variant);--color-surface-tint:var(--color-surface-tint);--color-primary:var(--color-primary);--color-primary-container:var(--color-primary-container);--color-primary-fixed:var(--color-primary-fixed);--color-primary-fixed-dim:var(--color-primary-fixed-dim);--color-on-primary:var(--color-on-primary);--color-on-primary-container:var(--color-on-primary-container);--color-on-primary-fixed:var(--color-on-primary-fixed);--color-on-primary-fixed-variant:var(--color-on-primary-fixed-variant);--color-secondary:var(--color-secondary);--color-secondary-container:var(--color-secondary-container);--color-secondary-fixed:var(--color-secondary-fixed);--color-secondary-fixed-dim:var(--color-secondary-fixed-dim);--color-on-secondary:var(--color-on-secondary);--color-on-secondary-container:var(--color-on-secondary-container);--color-on-secondary-fixed:var(--color-on-secondary-fixed);--color-on-secondary-fixed-variant:var(--color-on-secondary-fixed-variant);--color-tertiary:var(--color-tertiary);--color-tertiary-container:var(--color-tertiary-container);--color-tertiary-fixed:var(--color-tertiary-fixed);--color-tertiary-fixed-dim:var(--color-tertiary-fixed-dim);--color-on-tertiary:var(--color-on-tertiary);--color-on-tertiary-container:var(--color-on-tertiary-container);--color-on-tertiary-fixed:var(--color-on-tertiary-fixed);--color-on-tertiary-fixed-variant:var(--color-on-tertiary-fixed-variant);--color-on-surface:var(--color-on-surface);--color-on-surface-variant:var(--color-on-surface-variant);--color-outline:var(--color-outline);--color-outline-variant:var(--color-outline-variant);--color-error:var(--color-error);--color-error-container:var(--color-error-container);--color-on-error:var(--color-on-error);--color-on-error-container:var(--color-on-error-container);--color-success:var(--color-success);--color-success-container:var(--color-success-container);--color-on-success:var(--color-on-success);--color-on-success-container:var(--color-on-success-container);--color-warning:var(--color-warning);--color-warning-container:var(--color-warning-container);--color-on-warning:var(--color-on-warning);--color-on-warning-container:var(--color-on-warning-container);--color-info:var(--color-info);--color-info-container:var(--color-info-container);--color-on-info:var(--color-on-info);--color-on-info-container:var(--color-on-info-container);--color-inverse-surface:var(--color-inverse-surface);--color-inverse-on-surface:var(--color-inverse-on-surface);--color-inverse-primary:var(--color-inverse-primary);--color-background:var(--color-background);--color-on-background:var(--color-on-background);--font-headline:"Manrope", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--font-body:"Inter", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.top-4{top:calc(var(--spacing) * 4)}.right-4{right:calc(var(--spacing) * 4)}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-auto{margin:auto}.mx-auto{margin-inline:auto}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-4{margin-left:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1{height:calc(var(--spacing) * 1)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-full{height:100%}.h-px{height:1px}.min-h-\[36px\]{min-height:36px}.min-h-\[44px\]{min-height:44px}.min-h-\[52px\]{min-height:52px}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-\[52px\]{width:52px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.min-w-\[36px\]{min-width:36px}.min-w-\[44px\]{min-width:44px}.min-w-\[52px\]{min-width:52px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-5\.5{--tw-translate-x:calc(var(--spacing) * 5.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-2{--tw-translate-y:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-outline-variant>:not(:last-child)){border-color:var(--color-outline-variant)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-error{border-color:var(--color-error)}.border-info{border-color:var(--color-info)}.border-outline{border-color:var(--color-outline)}.border-outline-variant,.border-outline-variant\/10{border-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.border-outline-variant\/10{border-color:color-mix(in oklab, var(--color-outline-variant) 10%, transparent)}}.border-outline-variant\/15{border-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.border-outline-variant\/15{border-color:color-mix(in oklab, var(--color-outline-variant) 15%, transparent)}}.border-outline-variant\/30{border-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.border-outline-variant\/30{border-color:color-mix(in oklab, var(--color-outline-variant) 30%, transparent)}}.border-outline-variant\/40{border-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.border-outline-variant\/40{border-color:color-mix(in oklab, var(--color-outline-variant) 40%, transparent)}}.border-outline-variant\/50{border-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.border-outline-variant\/50{border-color:color-mix(in oklab, var(--color-outline-variant) 50%, transparent)}}.border-primary{border-color:var(--color-primary)}.border-secondary{border-color:var(--color-secondary)}.border-success{border-color:var(--color-success)}.border-surface-container-high,.border-surface-container-high\/50{border-color:var(--color-surface-container-high)}@supports (color:color-mix(in lab, red, red)){.border-surface-container-high\/50{border-color:color-mix(in oklab, var(--color-surface-container-high) 50%, transparent)}}.border-surface-variant{border-color:var(--color-surface-variant)}.border-tertiary{border-color:var(--color-tertiary)}.border-warning{border-color:var(--color-warning)}.bg-background{background-color:var(--color-background)}.bg-error{background-color:var(--color-error)}.bg-error-container{background-color:var(--color-error-container)}.bg-info{background-color:var(--color-info)}.bg-info-container{background-color:var(--color-info-container)}.bg-inverse-surface{background-color:var(--color-inverse-surface)}.bg-on-error{background-color:var(--color-on-error)}.bg-on-primary{background-color:var(--color-on-primary)}.bg-on-success{background-color:var(--color-on-success)}.bg-outline-variant\/10{background-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.bg-outline-variant\/10{background-color:color-mix(in oklab, var(--color-outline-variant) 10%, transparent)}}.bg-outline-variant\/15{background-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.bg-outline-variant\/15{background-color:color-mix(in oklab, var(--color-outline-variant) 15%, transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary-container{background-color:var(--color-primary-container)}.bg-primary-fixed{background-color:var(--color-primary-fixed)}.bg-primary-fixed-dim{background-color:var(--color-primary-fixed-dim)}.bg-primary-fixed\/10{background-color:var(--color-primary-fixed)}@supports (color:color-mix(in lab, red, red)){.bg-primary-fixed\/10{background-color:color-mix(in oklab, var(--color-primary-fixed) 10%, transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary-container{background-color:var(--color-secondary-container)}.bg-secondary-fixed{background-color:var(--color-secondary-fixed)}.bg-secondary-fixed-dim{background-color:var(--color-secondary-fixed-dim)}.bg-success{background-color:var(--color-success)}.bg-success-container{background-color:var(--color-success-container)}.bg-surface{background-color:var(--color-surface)}.bg-surface-bright{background-color:var(--color-surface-bright)}.bg-surface-container{background-color:var(--color-surface-container)}.bg-surface-container-high{background-color:var(--color-surface-container-high)}.bg-surface-container-highest{background-color:var(--color-surface-container-highest)}.bg-surface-container-low{background-color:var(--color-surface-container-low)}.bg-surface-container-lowest,.bg-surface-container-lowest\/80{background-color:var(--color-surface-container-lowest)}@supports (color:color-mix(in lab, red, red)){.bg-surface-container-lowest\/80{background-color:color-mix(in oklab, var(--color-surface-container-lowest) 80%, transparent)}}.bg-surface-dim{background-color:var(--color-surface-dim)}.bg-surface-tint{background-color:var(--color-surface-tint)}.bg-surface-variant{background-color:var(--color-surface-variant)}.bg-surface\/60{background-color:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/60{background-color:color-mix(in oklab, var(--color-surface) 60%, transparent)}}.bg-surface\/80{background-color:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/80{background-color:color-mix(in oklab, var(--color-surface) 80%, transparent)}}.bg-tertiary{background-color:var(--color-tertiary)}.bg-tertiary-container{background-color:var(--color-tertiary-container)}.bg-tertiary-fixed{background-color:var(--color-tertiary-fixed)}.bg-tertiary-fixed-dim{background-color:var(--color-tertiary-fixed-dim)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning-container{background-color:var(--color-warning-container)}.p-0{padding:calc(var(--spacing) * 0)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-body{font-family:var(--font-body)}.font-headline{font-family:var(--font-headline)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.text-current{color:currentColor}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.text-inverse-on-surface{color:var(--color-inverse-on-surface)}.text-inverse-primary{color:var(--color-inverse-primary)}.text-on-background{color:var(--color-on-background)}.text-on-error{color:var(--color-on-error)}.text-on-error-container{color:var(--color-on-error-container)}.text-on-info{color:var(--color-on-info)}.text-on-info-container{color:var(--color-on-info-container)}.text-on-primary{color:var(--color-on-primary)}.text-on-primary-container{color:var(--color-on-primary-container)}.text-on-primary-fixed{color:var(--color-on-primary-fixed)}.text-on-primary-fixed-variant{color:var(--color-on-primary-fixed-variant)}.text-on-secondary{color:var(--color-on-secondary)}.text-on-secondary-container{color:var(--color-on-secondary-container)}.text-on-secondary-fixed{color:var(--color-on-secondary-fixed)}.text-on-secondary-fixed-variant{color:var(--color-on-secondary-fixed-variant)}.text-on-success{color:var(--color-on-success)}.text-on-success-container{color:var(--color-on-success-container)}.text-on-surface{color:var(--color-on-surface)}.text-on-surface-variant{color:var(--color-on-surface-variant)}.text-on-tertiary{color:var(--color-on-tertiary)}.text-on-tertiary-container{color:var(--color-on-tertiary-container)}.text-on-tertiary-fixed{color:var(--color-on-tertiary-fixed)}.text-on-tertiary-fixed-variant{color:var(--color-on-tertiary-fixed-variant)}.text-on-warning{color:var(--color-on-warning)}.text-on-warning-container{color:var(--color-on-warning-container)}.text-outline{color:var(--color-outline)}.text-outline-variant{color:var(--color-outline-variant)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-success{color:var(--color-success)}.text-surface-tint{color:var(--color-surface-tint)}.text-tertiary{color:var(--color-tertiary)}.text-warning{color:var(--color-warning)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.selection\:bg-primary-fixed ::selection{background-color:var(--color-primary-fixed)}.selection\:bg-primary-fixed::selection{background-color:var(--color-primary-fixed)}.selection\:text-on-primary-fixed ::selection{color:var(--color-on-primary-fixed)}.selection\:text-on-primary-fixed::selection{color:var(--color-on-primary-fixed)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/50::backdrop{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}@media (hover:hover){.hover\:bg-error\/90:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-error\/90:hover{background-color:color-mix(in oklab, var(--color-error) 90%, transparent)}}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-primary-fixed-dim:hover{background-color:var(--color-primary-fixed-dim)}.hover\:bg-primary\/90:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-secondary\/90:hover{background-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab, var(--color-secondary) 90%, transparent)}}.hover\:bg-surface-container:hover{background-color:var(--color-surface-container)}.hover\:bg-surface-container-high:hover{background-color:var(--color-surface-container-high)}.hover\:bg-surface-container-low:hover{background-color:var(--color-surface-container-low)}.hover\:text-on-surface:hover{color:var(--color-on-surface)}.hover\:text-on-surface-variant:hover{color:var(--color-on-surface-variant)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:opacity-100:hover{opacity:1}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-error:focus{--tw-ring-color:var(--color-error)}.focus\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.disabled\:opacity-50:disabled{opacity:.5}.\[\&_td\]\:px-3 td{padding-inline:calc(var(--spacing) * 3)}.\[\&_td\]\:px-5 td{padding-inline:calc(var(--spacing) * 5)}.\[\&_td\]\:py-2 td{padding-block:calc(var(--spacing) * 2)}.\[\&_td\]\:py-4 td{padding-block:calc(var(--spacing) * 4)}.\[\&_th\]\:px-3 th{padding-inline:calc(var(--spacing) * 3)}.\[\&_th\]\:px-5 th{padding-inline:calc(var(--spacing) * 5)}.\[\&_th\]\:py-2 th{padding-block:calc(var(--spacing) * 2)}.\[\&_th\]\:py-4 th{padding-block:calc(var(--spacing) * 4)}}:root{--palette-blue-50:#eeefff;--palette-blue-100:#dbe1ff;--palette-blue-200:#b4c5ff;--palette-blue-300:#8da8ff;--palette-blue-400:#4d7cff;--palette-blue-500:#2563eb;--palette-blue-600:#004ac6;--palette-blue-700:#003ea8;--palette-blue-800:#002e7a;--palette-blue-900:#00174b;--palette-blue-950:#000d2e;--palette-indigo-50:#eef0ff;--palette-indigo-100:#dbe1ff;--palette-indigo-200:#b4c5ff;--palette-indigo-300:#acbfff;--palette-indigo-400:#7a96d4;--palette-indigo-500:#495c95;--palette-indigo-600:#394c84;--palette-indigo-700:#31447b;--palette-indigo-800:#1f2d5a;--palette-indigo-900:#00174b;--palette-indigo-950:#000d2e;--palette-orange-50:#ffede6;--palette-orange-100:#ffdbcd;--palette-orange-200:#ffb596;--palette-orange-300:#ff9060;--palette-orange-400:#e06420;--palette-orange-500:#bc4800;--palette-orange-600:#943700;--palette-orange-700:#7d2d00;--palette-orange-800:#4e1000;--palette-orange-900:#360f00;--palette-orange-950:#1f0800;--palette-neutral-0:#fff;--palette-neutral-50:#faf8ff;--palette-neutral-100:#f3f3fe;--palette-neutral-150:#ededf9;--palette-neutral-200:#e7e7f3;--palette-neutral-250:#e1e2ed;--palette-neutral-300:#d9d9e5;--palette-neutral-400:#c3c6d7;--palette-neutral-500:#8e909f;--palette-neutral-600:#737686;--palette-neutral-700:#434655;--palette-neutral-800:#2e3039;--palette-neutral-850:#1d1e2a;--palette-neutral-875:#1a1c26;--palette-neutral-900:#191b23;--palette-neutral-925:#282a36;--palette-neutral-935:#333544;--palette-neutral-950:#11141d;--palette-neutral-1000:#0f111a;--palette-red-50:#fff5f5;--palette-red-100:#ffdad6;--palette-red-200:#ffb4ab;--palette-red-300:#ff897d;--palette-red-400:#f44336;--palette-red-500:#ba1a1a;--palette-red-600:#93000a;--palette-red-700:#7a0008;--palette-red-800:#5c0005;--palette-red-900:#410003;--palette-red-950:#2d0002;--palette-green-50:#f0fdf4;--palette-green-100:#dcfce7;--palette-green-200:#bbf7d0;--palette-green-300:#86efac;--palette-green-400:#4ade80;--palette-green-500:#22c55e;--palette-green-600:#16a34a;--palette-green-700:#166534;--palette-green-800:#14532d;--palette-green-900:#052e16;--palette-green-950:#022c22;--palette-yellow-50:#fefce8;--palette-yellow-100:#fef9c3;--palette-yellow-200:#fef08a;--palette-yellow-300:#fde047;--palette-yellow-400:#facc15;--palette-yellow-500:#eab308;--palette-yellow-600:#ca8a04;--palette-yellow-700:#a16207;--palette-yellow-800:#854d0e;--palette-yellow-900:#713f12;--palette-yellow-950:#422006;--palette-sky-50:#f0f9ff;--palette-sky-100:#e0f2fe;--palette-sky-200:#bae6fd;--palette-sky-300:#7dd3fc;--palette-sky-400:#38bdf8;--palette-sky-500:#0ea5e9;--palette-sky-600:#0284c7;--palette-sky-700:#0369a1;--palette-sky-800:#075985;--palette-sky-900:#0c4a6e;--palette-sky-950:#082f49;--color-surface:var(--palette-neutral-50);--color-surface-bright:var(--palette-neutral-50);--color-surface-dim:var(--palette-neutral-300);--color-surface-container:var(--palette-neutral-150);--color-surface-container-lowest:var(--palette-neutral-0);--color-surface-container-low:var(--palette-neutral-100);--color-surface-container-high:var(--palette-neutral-200);--color-surface-container-highest:var(--palette-neutral-250);--color-surface-variant:var(--palette-neutral-250);--color-surface-tint:var(--palette-blue-600);--color-primary:var(--palette-blue-600);--color-primary-container:var(--palette-blue-500);--color-primary-fixed:var(--palette-blue-100);--color-primary-fixed-dim:var(--palette-blue-200);--color-on-primary:var(--palette-neutral-0);--color-on-primary-container:var(--palette-blue-50);--color-on-primary-fixed:var(--palette-blue-900);--color-on-primary-fixed-variant:var(--palette-blue-700);--color-secondary:var(--palette-indigo-500);--color-secondary-container:var(--palette-indigo-300);--color-secondary-fixed:var(--palette-indigo-100);--color-secondary-fixed-dim:var(--palette-indigo-200);--color-on-secondary:var(--palette-neutral-0);--color-on-secondary-container:var(--palette-indigo-600);--color-on-secondary-fixed:var(--palette-indigo-900);--color-on-secondary-fixed-variant:var(--palette-indigo-700);--color-tertiary:var(--palette-orange-600);--color-tertiary-container:var(--palette-orange-500);--color-tertiary-fixed:var(--palette-orange-100);--color-tertiary-fixed-dim:var(--palette-orange-200);--color-on-tertiary:var(--palette-neutral-0);--color-on-tertiary-container:var(--palette-orange-50);--color-on-tertiary-fixed:var(--palette-orange-900);--color-on-tertiary-fixed-variant:var(--palette-orange-700);--color-on-surface:var(--palette-neutral-900);--color-on-surface-variant:var(--palette-neutral-700);--color-outline:var(--palette-neutral-600);--color-outline-variant:var(--palette-neutral-400);--color-error:var(--palette-red-500);--color-error-container:var(--palette-red-100);--color-on-error:var(--palette-neutral-0);--color-on-error-container:var(--palette-red-600);--color-success:var(--palette-green-600);--color-success-container:var(--palette-green-100);--color-on-success:var(--palette-neutral-0);--color-on-success-container:var(--palette-green-700);--color-warning:var(--palette-yellow-600);--color-warning-container:var(--palette-yellow-100);--color-on-warning:var(--palette-neutral-0);--color-on-warning-container:var(--palette-yellow-800);--color-info:var(--palette-sky-600);--color-info-container:var(--palette-sky-100);--color-on-info:var(--palette-neutral-0);--color-on-info-container:var(--palette-sky-800);--color-inverse-surface:var(--palette-neutral-800);--color-inverse-on-surface:var(--palette-neutral-100);--color-inverse-primary:var(--palette-blue-200);--color-background:var(--palette-neutral-50);--color-on-background:var(--palette-neutral-900)}.dark{--color-surface:var(--palette-neutral-950);--color-surface-bright:var(--palette-neutral-875);--color-surface-dim:var(--palette-neutral-950);--color-surface-container:var(--palette-neutral-850);--color-surface-container-lowest:var(--palette-neutral-1000);--color-surface-container-low:var(--palette-neutral-900);--color-surface-container-high:var(--palette-neutral-925);--color-surface-container-highest:var(--palette-neutral-935);--color-surface-variant:var(--palette-neutral-700);--color-surface-tint:var(--palette-blue-600);--color-primary:var(--palette-blue-500);--color-primary-container:var(--palette-blue-500);--color-primary-fixed:var(--palette-blue-100);--color-primary-fixed-dim:var(--palette-blue-200);--color-on-primary:var(--palette-neutral-0);--color-on-primary-container:var(--palette-blue-50);--color-on-primary-fixed:var(--palette-blue-900);--color-on-primary-fixed-variant:var(--palette-blue-700);--color-secondary:var(--palette-indigo-200);--color-secondary-container:var(--palette-indigo-700);--color-secondary-fixed:var(--palette-indigo-100);--color-secondary-fixed-dim:var(--palette-indigo-200);--color-on-secondary:var(--palette-neutral-0);--color-on-secondary-container:var(--palette-indigo-100);--color-on-secondary-fixed:var(--palette-indigo-900);--color-on-secondary-fixed-variant:var(--palette-indigo-700);--color-tertiary:var(--palette-orange-200);--color-tertiary-container:var(--palette-orange-500);--color-tertiary-fixed:var(--palette-orange-100);--color-tertiary-fixed-dim:var(--palette-orange-200);--color-on-tertiary:var(--palette-orange-800);--color-on-tertiary-container:var(--palette-orange-50);--color-on-tertiary-fixed:var(--palette-orange-900);--color-on-tertiary-fixed-variant:var(--palette-orange-700);--color-on-surface:var(--palette-neutral-250);--color-on-surface-variant:var(--palette-neutral-400);--color-outline:var(--palette-neutral-500);--color-outline-variant:var(--palette-neutral-700);--color-error:var(--palette-red-200);--color-error-container:var(--palette-red-600);--color-on-error:var(--palette-neutral-0);--color-on-error-container:var(--palette-red-100);--color-success:var(--palette-green-400);--color-success-container:var(--palette-green-700);--color-on-success:var(--palette-neutral-0);--color-on-success-container:var(--palette-green-100);--color-warning:var(--palette-yellow-400);--color-warning-container:var(--palette-yellow-800);--color-on-warning:var(--palette-neutral-0);--color-on-warning-container:var(--palette-yellow-100);--color-info:var(--palette-sky-400);--color-info-container:var(--palette-sky-800);--color-on-info:var(--palette-neutral-0);--color-on-info-container:var(--palette-sky-100);--color-inverse-surface:var(--palette-neutral-250);--color-inverse-on-surface:var(--palette-neutral-900);--color-inverse-primary:var(--palette-blue-600);--color-background:var(--palette-neutral-950);--color-on-background:var(--palette-neutral-250)}body{line-height:1.75}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.prose{--tw-prose-body:var(--color-on-surface-variant);--tw-prose-headings:var(--color-on-surface);--tw-prose-lead:var(--color-on-surface-variant);--tw-prose-links:var(--color-primary);--tw-prose-bold:var(--color-on-surface);--tw-prose-counters:var(--color-outline);--tw-prose-bullets:var(--color-outline-variant);--tw-prose-hr:var(--color-outline-variant);--tw-prose-quotes:var(--color-on-surface);--tw-prose-quote-borders:var(--color-outline-variant);--tw-prose-captions:var(--color-outline);--tw-prose-code:var(--color-primary);--tw-prose-pre-code:#fff;--tw-prose-pre-bg:var(--color-on-surface);--tw-prose-th-borders:var(--color-outline-variant);--tw-prose-td-borders:var(--color-outline-variant)}.prose h2{font-family:var(--font-headline);margin-top:2.5rem;margin-bottom:1.25rem;font-size:1.75rem;font-weight:700}.prose h3{font-family:var(--font-headline);margin-top:2rem;margin-bottom:1rem;font-size:1.25rem;font-weight:600}.prose p{margin-bottom:1.5rem;line-height:1.85}.prose li{margin-bottom:.5rem;padding-left:1.5rem;line-height:1.85;position:relative}.prose ul{padding-left:0;list-style-type:none}.prose ul>li:before{content:"";background-color:var(--color-primary);border-radius:50%;width:6px;height:6px;position:absolute;top:.75rem;left:0}.prose code:not(pre code){background-color:var(--color-surface-container-low);border-radius:.25rem;padding:.2rem .4rem;font-size:.9em}.prose pre{border-radius:.5rem;padding:1.5rem;overflow-x:auto}.prose pre code{color:inherit;background-color:#0000;padding:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
+ :root{--palette-blue-50:#eeefff;--palette-blue-100:#dbe1ff;--palette-blue-200:#b4c5ff;--palette-blue-300:#8da8ff;--palette-blue-400:#4d7cff;--palette-blue-500:#2563eb;--palette-blue-600:#004ac6;--palette-blue-700:#003ea8;--palette-blue-800:#002e7a;--palette-blue-900:#00174b;--palette-blue-950:#000d2e;--palette-indigo-50:#eef0ff;--palette-indigo-100:#dbe1ff;--palette-indigo-200:#b4c5ff;--palette-indigo-300:#acbfff;--palette-indigo-400:#7a96d4;--palette-indigo-500:#495c95;--palette-indigo-600:#394c84;--palette-indigo-700:#31447b;--palette-indigo-800:#1f2d5a;--palette-indigo-900:#00174b;--palette-indigo-950:#000d2e;--palette-orange-50:#ffede6;--palette-orange-100:#ffdbcd;--palette-orange-200:#ffb596;--palette-orange-300:#ff9060;--palette-orange-400:#e06420;--palette-orange-500:#bc4800;--palette-orange-600:#943700;--palette-orange-700:#7d2d00;--palette-orange-800:#4e1000;--palette-orange-900:#360f00;--palette-orange-950:#1f0800;--palette-neutral-0:#fff;--palette-neutral-50:#faf8ff;--palette-neutral-100:#f3f3fe;--palette-neutral-150:#ededf9;--palette-neutral-200:#e7e7f3;--palette-neutral-250:#e1e2ed;--palette-neutral-300:#d9d9e5;--palette-neutral-400:#c3c6d7;--palette-neutral-500:#8e909f;--palette-neutral-600:#737686;--palette-neutral-700:#434655;--palette-neutral-800:#2e3039;--palette-neutral-850:#1d1e2a;--palette-neutral-875:#1a1c26;--palette-neutral-900:#191b23;--palette-neutral-925:#282a36;--palette-neutral-935:#333544;--palette-neutral-950:#11141d;--palette-neutral-1000:#0f111a;--palette-red-50:#fff5f5;--palette-red-100:#ffdad6;--palette-red-200:#ffb4ab;--palette-red-300:#ff897d;--palette-red-400:#f44336;--palette-red-500:#ba1a1a;--palette-red-600:#93000a;--palette-red-700:#7a0008;--palette-red-800:#5c0005;--palette-red-900:#410003;--palette-red-950:#2d0002;--palette-green-50:#f0fdf4;--palette-green-100:#dcfce7;--palette-green-200:#bbf7d0;--palette-green-300:#86efac;--palette-green-400:#4ade80;--palette-green-500:#22c55e;--palette-green-600:#16a34a;--palette-green-700:#166534;--palette-green-800:#14532d;--palette-green-900:#052e16;--palette-green-950:#022c22;--palette-yellow-50:#fefce8;--palette-yellow-100:#fef9c3;--palette-yellow-200:#fef08a;--palette-yellow-300:#fde047;--palette-yellow-400:#facc15;--palette-yellow-500:#eab308;--palette-yellow-600:#ca8a04;--palette-yellow-700:#a16207;--palette-yellow-800:#854d0e;--palette-yellow-900:#713f12;--palette-yellow-950:#422006;--palette-sky-50:#f0f9ff;--palette-sky-100:#e0f2fe;--palette-sky-200:#bae6fd;--palette-sky-300:#7dd3fc;--palette-sky-400:#38bdf8;--palette-sky-500:#0ea5e9;--palette-sky-600:#0284c7;--palette-sky-700:#0369a1;--palette-sky-800:#075985;--palette-sky-900:#0c4a6e;--palette-sky-950:#082f49;--color-surface:var(--palette-neutral-50);--color-surface-bright:var(--palette-neutral-50);--color-surface-dim:var(--palette-neutral-300);--color-surface-container:var(--palette-neutral-150);--color-surface-container-lowest:var(--palette-neutral-0);--color-surface-container-low:var(--palette-neutral-100);--color-surface-container-high:var(--palette-neutral-200);--color-surface-container-highest:var(--palette-neutral-250);--color-surface-variant:var(--palette-neutral-250);--color-surface-tint:var(--palette-blue-600);--color-primary:var(--palette-blue-600);--color-primary-container:var(--palette-blue-500);--color-primary-fixed:var(--palette-blue-100);--color-primary-fixed-dim:var(--palette-blue-200);--color-on-primary:var(--palette-neutral-0);--color-on-primary-container:var(--palette-blue-50);--color-on-primary-fixed:var(--palette-blue-900);--color-on-primary-fixed-variant:var(--palette-blue-700);--color-secondary:var(--palette-indigo-500);--color-secondary-container:var(--palette-indigo-300);--color-secondary-fixed:var(--palette-indigo-100);--color-secondary-fixed-dim:var(--palette-indigo-200);--color-on-secondary:var(--palette-neutral-0);--color-on-secondary-container:var(--palette-indigo-600);--color-on-secondary-fixed:var(--palette-indigo-900);--color-on-secondary-fixed-variant:var(--palette-indigo-700);--color-tertiary:var(--palette-orange-600);--color-tertiary-container:var(--palette-orange-500);--color-tertiary-fixed:var(--palette-orange-100);--color-tertiary-fixed-dim:var(--palette-orange-200);--color-on-tertiary:var(--palette-neutral-0);--color-on-tertiary-container:var(--palette-orange-50);--color-on-tertiary-fixed:var(--palette-orange-900);--color-on-tertiary-fixed-variant:var(--palette-orange-700);--color-on-surface:var(--palette-neutral-900);--color-on-surface-variant:var(--palette-neutral-700);--color-outline:var(--palette-neutral-600);--color-outline-variant:var(--palette-neutral-400);--color-error:var(--palette-red-500);--color-error-container:var(--palette-red-100);--color-on-error:var(--palette-neutral-0);--color-on-error-container:var(--palette-red-600);--color-success:var(--palette-green-600);--color-success-container:var(--palette-green-100);--color-on-success:var(--palette-neutral-0);--color-on-success-container:var(--palette-green-700);--color-warning:var(--palette-yellow-600);--color-warning-container:var(--palette-yellow-100);--color-on-warning:var(--palette-neutral-0);--color-on-warning-container:var(--palette-yellow-800);--color-info:var(--palette-sky-600);--color-info-container:var(--palette-sky-100);--color-on-info:var(--palette-neutral-0);--color-on-info-container:var(--palette-sky-800);--color-inverse-surface:var(--palette-neutral-800);--color-inverse-on-surface:var(--palette-neutral-100);--color-inverse-primary:var(--palette-blue-200);--color-background:var(--palette-neutral-50);--color-on-background:var(--palette-neutral-900)}.dark{--color-surface:var(--palette-neutral-950);--color-surface-bright:var(--palette-neutral-875);--color-surface-dim:var(--palette-neutral-950);--color-surface-container:var(--palette-neutral-850);--color-surface-container-lowest:var(--palette-neutral-1000);--color-surface-container-low:var(--palette-neutral-900);--color-surface-container-high:var(--palette-neutral-925);--color-surface-container-highest:var(--palette-neutral-935);--color-surface-variant:var(--palette-neutral-700);--color-surface-tint:var(--palette-blue-600);--color-primary:var(--palette-blue-500);--color-primary-container:var(--palette-blue-500);--color-primary-fixed:var(--palette-blue-100);--color-primary-fixed-dim:var(--palette-blue-200);--color-on-primary:var(--palette-neutral-0);--color-on-primary-container:var(--palette-blue-50);--color-on-primary-fixed:var(--palette-blue-900);--color-on-primary-fixed-variant:var(--palette-blue-700);--color-secondary:var(--palette-indigo-200);--color-secondary-container:var(--palette-indigo-700);--color-secondary-fixed:var(--palette-indigo-100);--color-secondary-fixed-dim:var(--palette-indigo-200);--color-on-secondary:var(--palette-neutral-0);--color-on-secondary-container:var(--palette-indigo-100);--color-on-secondary-fixed:var(--palette-indigo-900);--color-on-secondary-fixed-variant:var(--palette-indigo-700);--color-tertiary:var(--palette-orange-200);--color-tertiary-container:var(--palette-orange-500);--color-tertiary-fixed:var(--palette-orange-100);--color-tertiary-fixed-dim:var(--palette-orange-200);--color-on-tertiary:var(--palette-orange-800);--color-on-tertiary-container:var(--palette-orange-50);--color-on-tertiary-fixed:var(--palette-orange-900);--color-on-tertiary-fixed-variant:var(--palette-orange-700);--color-on-surface:var(--palette-neutral-250);--color-on-surface-variant:var(--palette-neutral-400);--color-outline:var(--palette-neutral-500);--color-outline-variant:var(--palette-neutral-700);--color-error:var(--palette-red-200);--color-error-container:var(--palette-red-600);--color-on-error:var(--palette-neutral-0);--color-on-error-container:var(--palette-red-100);--color-success:var(--palette-green-400);--color-success-container:var(--palette-green-700);--color-on-success:var(--palette-neutral-0);--color-on-success-container:var(--palette-green-100);--color-warning:var(--palette-yellow-400);--color-warning-container:var(--palette-yellow-800);--color-on-warning:var(--palette-neutral-0);--color-on-warning-container:var(--palette-yellow-100);--color-info:var(--palette-sky-400);--color-info-container:var(--palette-sky-800);--color-on-info:var(--palette-neutral-0);--color-on-info-container:var(--palette-sky-100);--color-inverse-surface:var(--palette-neutral-250);--color-inverse-on-surface:var(--palette-neutral-900);--color-inverse-primary:var(--palette-blue-600);--color-background:var(--palette-neutral-950);--color-on-background:var(--palette-neutral-250)}body{line-height:1.75}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.prose{--tw-prose-body:var(--color-on-surface-variant);--tw-prose-headings:var(--color-on-surface);--tw-prose-lead:var(--color-on-surface-variant);--tw-prose-links:var(--color-primary);--tw-prose-bold:var(--color-on-surface);--tw-prose-counters:var(--color-outline);--tw-prose-bullets:var(--color-outline-variant);--tw-prose-hr:var(--color-outline-variant);--tw-prose-quotes:var(--color-on-surface);--tw-prose-quote-borders:var(--color-outline-variant);--tw-prose-captions:var(--color-outline);--tw-prose-code:var(--color-primary);--tw-prose-pre-code:#fff;--tw-prose-pre-bg:var(--color-on-surface);--tw-prose-th-borders:var(--color-outline-variant);--tw-prose-td-borders:var(--color-outline-variant)}.prose h2{font-family:var(--font-headline);margin-top:2.5rem;margin-bottom:1.25rem;font-size:1.75rem;font-weight:700}.prose h3{font-family:var(--font-headline);margin-top:2rem;margin-bottom:1rem;font-size:1.25rem;font-weight:600}.prose p{margin-bottom:1.5rem;line-height:1.85}.prose li{margin-bottom:.5rem;padding-left:1.5rem;line-height:1.85;position:relative}.prose ul{padding-left:0;list-style-type:none}.prose ul>li:before{content:"";background-color:var(--color-primary);border-radius:50%;width:6px;height:6px;position:absolute;top:.75rem;left:0}.prose code:not(pre code){background-color:var(--color-surface-container-low);border-radius:.25rem;padding:.2rem .4rem;font-size:.9em}.prose pre{border-radius:.5rem;padding:1.5rem;overflow-x:auto}.prose pre code{color:inherit;background-color:#0000;padding:0}.bg-surface{background-color:var(--color-surface)}.bg-surface-bright{background-color:var(--color-surface-bright)}.bg-surface-dim{background-color:var(--color-surface-dim)}.bg-surface-variant{background-color:var(--color-surface-variant)}.bg-surface-tint{background-color:var(--color-surface-tint)}.bg-primary-fixed{background-color:var(--color-primary-fixed)}.bg-primary-fixed-dim{background-color:var(--color-primary-fixed-dim)}.bg-on-primary{background-color:var(--color-on-primary)}.bg-secondary-fixed{background-color:var(--color-secondary-fixed)}.bg-secondary-fixed-dim{background-color:var(--color-secondary-fixed-dim)}.bg-tertiary{background-color:var(--color-tertiary)}.bg-tertiary-fixed{background-color:var(--color-tertiary-fixed)}.bg-tertiary-fixed-dim{background-color:var(--color-tertiary-fixed-dim)}.bg-on-error{background-color:var(--color-on-error)}.bg-on-success{background-color:var(--color-on-success)}.bg-inverse-surface{background-color:var(--color-inverse-surface)}.bg-background{background-color:var(--color-background)}.text-on-primary-fixed{color:var(--color-on-primary-fixed)}.text-on-primary-fixed-variant{color:var(--color-on-primary-fixed-variant)}.text-on-secondary-fixed{color:var(--color-on-secondary-fixed)}.text-on-secondary-fixed-variant{color:var(--color-on-secondary-fixed-variant)}.text-on-tertiary-fixed{color:var(--color-on-tertiary-fixed)}.text-on-tertiary-fixed-variant{color:var(--color-on-tertiary-fixed-variant)}.text-inverse-on-surface{color:var(--color-inverse-on-surface)}.text-inverse-primary{color:var(--color-inverse-primary)}.text-on-background{color:var(--color-on-background)}.text-surface-tint{color:var(--color-surface-tint)}.text-secondary{color:var(--color-secondary)}.text-tertiary{color:var(--color-tertiary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-info{color:var(--color-info)}.border-surface-variant{border-color:var(--color-surface-variant)}.border-secondary{border-color:var(--color-secondary)}.border-tertiary{border-color:var(--color-tertiary)}.bg-surface\/80{background-color:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/80{background-color:color-mix(in srgb, var(--color-surface) 80%, transparent)}}.bg-surface\/60{background-color:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/60{background-color:color-mix(in srgb, var(--color-surface) 60%, transparent)}}.selection\:bg-primary-fixed::selection{background-color:var(--color-primary-fixed)}.selection\:text-on-primary-fixed::selection{color:var(--color-on-primary-fixed)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tonal-ui",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "A tonal layering design system for editorial platforms. Surface-first UI components with CVA variants, dark mode, and CJK typography support.",
6
6
  "license": "MIT",
@@ -12,14 +12,18 @@
12
12
  "import": "./dist/index.js",
13
13
  "types": "./dist/index.d.ts"
14
14
  },
15
- "./styles.css": "./dist/styles.css"
15
+ "./styles.css": "./dist/styles.css",
16
+ "./theme.css": "./src/styles/consumer-theme.css",
17
+ "./tokens.css": "./dist/tokens.css"
16
18
  },
17
19
  "files": [
18
- "dist"
20
+ "dist",
21
+ "src/styles/consumer-theme.css",
22
+ "src/tokens"
19
23
  ],
20
24
  "scripts": {
21
25
  "build": "tsup && pnpm build:css",
22
- "build:css": "npx @tailwindcss/cli -i src/styles/build-entry.css -o dist/styles.css --minify",
26
+ "build:css": "npx @tailwindcss/cli -i src/styles/build-entry.css -o dist/styles.css --minify && npx @tailwindcss/cli -i src/styles/consumer-entry.css -o dist/tokens.css --minify",
23
27
  "dev": "tsup --watch",
24
28
  "storybook": "storybook dev -p 6006",
25
29
  "build-storybook": "storybook build",
@@ -0,0 +1,11 @@
1
+ /*
2
+ * tonal-ui Consumer Theme
3
+ * Import this in consumer's globals.css AFTER @import "tailwindcss".
4
+ * Provides @theme mapping, dark variant, and typography plugin.
5
+ */
6
+
7
+ @plugin "@tailwindcss/typography";
8
+
9
+ @custom-variant dark (&:where(.dark, .dark *));
10
+
11
+ @import "../tokens/theme.css";
@@ -0,0 +1,175 @@
1
+ /*
2
+ * Pulse Editorial Design System — Semantic Color Tokens
3
+ * Maps palette values to semantic roles.
4
+ * Light mode = :root, Dark mode = .dark
5
+ */
6
+
7
+ :root {
8
+ /* ── Surface hierarchy ── */
9
+ --color-surface: var(--palette-neutral-50);
10
+ --color-surface-bright: var(--palette-neutral-50);
11
+ --color-surface-dim: var(--palette-neutral-300);
12
+ --color-surface-container: var(--palette-neutral-150);
13
+ --color-surface-container-lowest: var(--palette-neutral-0);
14
+ --color-surface-container-low: var(--palette-neutral-100);
15
+ --color-surface-container-high: var(--palette-neutral-200);
16
+ --color-surface-container-highest: var(--palette-neutral-250);
17
+ --color-surface-variant: var(--palette-neutral-250);
18
+ --color-surface-tint: var(--palette-blue-600);
19
+
20
+ /* ── Primary ── */
21
+ --color-primary: var(--palette-blue-600);
22
+ --color-primary-container: var(--palette-blue-500);
23
+ --color-primary-fixed: var(--palette-blue-100);
24
+ --color-primary-fixed-dim: var(--palette-blue-200);
25
+ --color-on-primary: var(--palette-neutral-0);
26
+ --color-on-primary-container: var(--palette-blue-50);
27
+ --color-on-primary-fixed: var(--palette-blue-900);
28
+ --color-on-primary-fixed-variant: var(--palette-blue-700);
29
+
30
+ /* ── Secondary ── */
31
+ --color-secondary: var(--palette-indigo-500);
32
+ --color-secondary-container: var(--palette-indigo-300);
33
+ --color-secondary-fixed: var(--palette-indigo-100);
34
+ --color-secondary-fixed-dim: var(--palette-indigo-200);
35
+ --color-on-secondary: var(--palette-neutral-0);
36
+ --color-on-secondary-container: var(--palette-indigo-600);
37
+ --color-on-secondary-fixed: var(--palette-indigo-900);
38
+ --color-on-secondary-fixed-variant: var(--palette-indigo-700);
39
+
40
+ /* ── Tertiary ── */
41
+ --color-tertiary: var(--palette-orange-600);
42
+ --color-tertiary-container: var(--palette-orange-500);
43
+ --color-tertiary-fixed: var(--palette-orange-100);
44
+ --color-tertiary-fixed-dim: var(--palette-orange-200);
45
+ --color-on-tertiary: var(--palette-neutral-0);
46
+ --color-on-tertiary-container: var(--palette-orange-50);
47
+ --color-on-tertiary-fixed: var(--palette-orange-900);
48
+ --color-on-tertiary-fixed-variant: var(--palette-orange-700);
49
+
50
+ /* ── On-surface ── */
51
+ --color-on-surface: var(--palette-neutral-900);
52
+ --color-on-surface-variant: var(--palette-neutral-700);
53
+
54
+ /* ── Outline ── */
55
+ --color-outline: var(--palette-neutral-600);
56
+ --color-outline-variant: var(--palette-neutral-400);
57
+
58
+ /* ── Error ── */
59
+ --color-error: var(--palette-red-500);
60
+ --color-error-container: var(--palette-red-100);
61
+ --color-on-error: var(--palette-neutral-0);
62
+ --color-on-error-container: var(--palette-red-600);
63
+
64
+ /* ── Success ── */
65
+ --color-success: var(--palette-green-600);
66
+ --color-success-container: var(--palette-green-100);
67
+ --color-on-success: var(--palette-neutral-0);
68
+ --color-on-success-container: var(--palette-green-700);
69
+
70
+ /* ── Warning ── */
71
+ --color-warning: var(--palette-yellow-600);
72
+ --color-warning-container: var(--palette-yellow-100);
73
+ --color-on-warning: var(--palette-neutral-0);
74
+ --color-on-warning-container: var(--palette-yellow-800);
75
+
76
+ /* ── Info ── */
77
+ --color-info: var(--palette-sky-600);
78
+ --color-info-container: var(--palette-sky-100);
79
+ --color-on-info: var(--palette-neutral-0);
80
+ --color-on-info-container: var(--palette-sky-800);
81
+
82
+ /* ── Inverse ── */
83
+ --color-inverse-surface: var(--palette-neutral-800);
84
+ --color-inverse-on-surface: var(--palette-neutral-100);
85
+ --color-inverse-primary: var(--palette-blue-200);
86
+
87
+ /* ── Background ── */
88
+ --color-background: var(--palette-neutral-50);
89
+ --color-on-background: var(--palette-neutral-900);
90
+ }
91
+
92
+ .dark {
93
+ /* ── Surface hierarchy ── */
94
+ --color-surface: var(--palette-neutral-950);
95
+ --color-surface-bright: var(--palette-neutral-875);
96
+ --color-surface-dim: var(--palette-neutral-950);
97
+ --color-surface-container: var(--palette-neutral-850);
98
+ --color-surface-container-lowest: var(--palette-neutral-1000);
99
+ --color-surface-container-low: var(--palette-neutral-900);
100
+ --color-surface-container-high: var(--palette-neutral-925);
101
+ --color-surface-container-highest: var(--palette-neutral-935);
102
+ --color-surface-variant: var(--palette-neutral-700);
103
+ --color-surface-tint: var(--palette-blue-600);
104
+
105
+ /* ── Primary ── */
106
+ --color-primary: var(--palette-blue-500);
107
+ --color-primary-container: var(--palette-blue-500);
108
+ --color-primary-fixed: var(--palette-blue-100);
109
+ --color-primary-fixed-dim: var(--palette-blue-200);
110
+ --color-on-primary: var(--palette-neutral-0);
111
+ --color-on-primary-container: var(--palette-blue-50);
112
+ --color-on-primary-fixed: var(--palette-blue-900);
113
+ --color-on-primary-fixed-variant: var(--palette-blue-700);
114
+
115
+ /* ── Secondary ── */
116
+ --color-secondary: var(--palette-indigo-200);
117
+ --color-secondary-container: var(--palette-indigo-700);
118
+ --color-secondary-fixed: var(--palette-indigo-100);
119
+ --color-secondary-fixed-dim: var(--palette-indigo-200);
120
+ --color-on-secondary: var(--palette-neutral-0);
121
+ --color-on-secondary-container: var(--palette-indigo-100);
122
+ --color-on-secondary-fixed: var(--palette-indigo-900);
123
+ --color-on-secondary-fixed-variant: var(--palette-indigo-700);
124
+
125
+ /* ── Tertiary ── */
126
+ --color-tertiary: var(--palette-orange-200);
127
+ --color-tertiary-container: var(--palette-orange-500);
128
+ --color-tertiary-fixed: var(--palette-orange-100);
129
+ --color-tertiary-fixed-dim: var(--palette-orange-200);
130
+ --color-on-tertiary: var(--palette-orange-800);
131
+ --color-on-tertiary-container: var(--palette-orange-50);
132
+ --color-on-tertiary-fixed: var(--palette-orange-900);
133
+ --color-on-tertiary-fixed-variant: var(--palette-orange-700);
134
+
135
+ /* ── On-surface ── */
136
+ --color-on-surface: var(--palette-neutral-250);
137
+ --color-on-surface-variant: var(--palette-neutral-400);
138
+
139
+ /* ── Outline ── */
140
+ --color-outline: var(--palette-neutral-500);
141
+ --color-outline-variant: var(--palette-neutral-700);
142
+
143
+ /* ── Error ── */
144
+ --color-error: var(--palette-red-200);
145
+ --color-error-container: var(--palette-red-600);
146
+ --color-on-error: var(--palette-neutral-0);
147
+ --color-on-error-container: var(--palette-red-100);
148
+
149
+ /* ── Success ── */
150
+ --color-success: var(--palette-green-400);
151
+ --color-success-container: var(--palette-green-700);
152
+ --color-on-success: var(--palette-neutral-0);
153
+ --color-on-success-container: var(--palette-green-100);
154
+
155
+ /* ── Warning ── */
156
+ --color-warning: var(--palette-yellow-400);
157
+ --color-warning-container: var(--palette-yellow-800);
158
+ --color-on-warning: var(--palette-neutral-0);
159
+ --color-on-warning-container: var(--palette-yellow-100);
160
+
161
+ /* ── Info ── */
162
+ --color-info: var(--palette-sky-400);
163
+ --color-info-container: var(--palette-sky-800);
164
+ --color-on-info: var(--palette-neutral-0);
165
+ --color-on-info-container: var(--palette-sky-100);
166
+
167
+ /* ── Inverse ── */
168
+ --color-inverse-surface: var(--palette-neutral-250);
169
+ --color-inverse-on-surface: var(--palette-neutral-900);
170
+ --color-inverse-primary: var(--palette-blue-600);
171
+
172
+ /* ── Background ── */
173
+ --color-background: var(--palette-neutral-950);
174
+ --color-on-background: var(--palette-neutral-250);
175
+ }
@@ -0,0 +1,9 @@
1
+ @import "tailwindcss";
2
+ @plugin "@tailwindcss/typography";
3
+
4
+ @custom-variant dark (&:where(.dark, .dark *));
5
+
6
+ @import "./palette.css";
7
+ @import "./colors.css";
8
+ @import "./typography.css";
9
+ @import "./theme.css";
@@ -0,0 +1,119 @@
1
+ /*
2
+ * Pulse Editorial Design System — Color Palette
3
+ * Base palette with numeric scales (50, 100, 200 ... 900, 950)
4
+ * Semantic tokens reference these values.
5
+ */
6
+
7
+ :root {
8
+ /* ── Blue (Primary) ── */
9
+ --palette-blue-50: #eeefff;
10
+ --palette-blue-100: #dbe1ff;
11
+ --palette-blue-200: #b4c5ff;
12
+ --palette-blue-300: #8da8ff;
13
+ --palette-blue-400: #4d7cff;
14
+ --palette-blue-500: #2563eb;
15
+ --palette-blue-600: #004ac6;
16
+ --palette-blue-700: #003ea8;
17
+ --palette-blue-800: #002e7a;
18
+ --palette-blue-900: #00174b;
19
+ --palette-blue-950: #000d2e;
20
+
21
+ /* ── Indigo (Secondary) ── */
22
+ --palette-indigo-50: #eef0ff;
23
+ --palette-indigo-100: #dbe1ff;
24
+ --palette-indigo-200: #b4c5ff;
25
+ --palette-indigo-300: #acbfff;
26
+ --palette-indigo-400: #7a96d4;
27
+ --palette-indigo-500: #495c95;
28
+ --palette-indigo-600: #394c84;
29
+ --palette-indigo-700: #31447b;
30
+ --palette-indigo-800: #1f2d5a;
31
+ --palette-indigo-900: #00174b;
32
+ --palette-indigo-950: #000d2e;
33
+
34
+ /* ── Orange (Tertiary) ── */
35
+ --palette-orange-50: #ffede6;
36
+ --palette-orange-100: #ffdbcd;
37
+ --palette-orange-200: #ffb596;
38
+ --palette-orange-300: #ff9060;
39
+ --palette-orange-400: #e06420;
40
+ --palette-orange-500: #bc4800;
41
+ --palette-orange-600: #943700;
42
+ --palette-orange-700: #7d2d00;
43
+ --palette-orange-800: #4e1000;
44
+ --palette-orange-900: #360f00;
45
+ --palette-orange-950: #1f0800;
46
+
47
+ /* ── Neutral (Surface / On-surface) ── */
48
+ --palette-neutral-0: #ffffff;
49
+ --palette-neutral-50: #faf8ff;
50
+ --palette-neutral-100: #f3f3fe;
51
+ --palette-neutral-150: #ededf9;
52
+ --palette-neutral-200: #e7e7f3;
53
+ --palette-neutral-250: #e1e2ed;
54
+ --palette-neutral-300: #d9d9e5;
55
+ --palette-neutral-400: #c3c6d7;
56
+ --palette-neutral-500: #8e909f;
57
+ --palette-neutral-600: #737686;
58
+ --palette-neutral-700: #434655;
59
+ --palette-neutral-800: #2e3039;
60
+ --palette-neutral-850: #1d1e2a;
61
+ --palette-neutral-875: #1a1c26;
62
+ --palette-neutral-900: #191b23;
63
+ --palette-neutral-925: #282a36;
64
+ --palette-neutral-935: #333544;
65
+ --palette-neutral-950: #11141d;
66
+ --palette-neutral-1000: #0f111a;
67
+
68
+ /* ── Red (Error) ── */
69
+ --palette-red-50: #fff5f5;
70
+ --palette-red-100: #ffdad6;
71
+ --palette-red-200: #ffb4ab;
72
+ --palette-red-300: #ff897d;
73
+ --palette-red-400: #f44336;
74
+ --palette-red-500: #ba1a1a;
75
+ --palette-red-600: #93000a;
76
+ --palette-red-700: #7a0008;
77
+ --palette-red-800: #5c0005;
78
+ --palette-red-900: #410003;
79
+ --palette-red-950: #2d0002;
80
+
81
+ /* ── Green (Success) ── */
82
+ --palette-green-50: #f0fdf4;
83
+ --palette-green-100: #dcfce7;
84
+ --palette-green-200: #bbf7d0;
85
+ --palette-green-300: #86efac;
86
+ --palette-green-400: #4ade80;
87
+ --palette-green-500: #22c55e;
88
+ --palette-green-600: #16a34a;
89
+ --palette-green-700: #166534;
90
+ --palette-green-800: #14532d;
91
+ --palette-green-900: #052e16;
92
+ --palette-green-950: #022c22;
93
+
94
+ /* ── Yellow (Warning) ── */
95
+ --palette-yellow-50: #fefce8;
96
+ --palette-yellow-100: #fef9c3;
97
+ --palette-yellow-200: #fef08a;
98
+ --palette-yellow-300: #fde047;
99
+ --palette-yellow-400: #facc15;
100
+ --palette-yellow-500: #eab308;
101
+ --palette-yellow-600: #ca8a04;
102
+ --palette-yellow-700: #a16207;
103
+ --palette-yellow-800: #854d0e;
104
+ --palette-yellow-900: #713f12;
105
+ --palette-yellow-950: #422006;
106
+
107
+ /* ── Sky (Info) ── */
108
+ --palette-sky-50: #f0f9ff;
109
+ --palette-sky-100: #e0f2fe;
110
+ --palette-sky-200: #bae6fd;
111
+ --palette-sky-300: #7dd3fc;
112
+ --palette-sky-400: #38bdf8;
113
+ --palette-sky-500: #0ea5e9;
114
+ --palette-sky-600: #0284c7;
115
+ --palette-sky-700: #0369a1;
116
+ --palette-sky-800: #075985;
117
+ --palette-sky-900: #0c4a6e;
118
+ --palette-sky-950: #082f49;
119
+ }
@@ -0,0 +1,93 @@
1
+ /*
2
+ * Pulse Editorial Design System — Tailwind v4 Theme
3
+ * Maps CSS variables to Tailwind utility classes.
4
+ */
5
+
6
+ @theme {
7
+ /* Surface hierarchy */
8
+ --color-surface: var(--color-surface);
9
+ --color-surface-bright: var(--color-surface-bright);
10
+ --color-surface-dim: var(--color-surface-dim);
11
+ --color-surface-container: var(--color-surface-container);
12
+ --color-surface-container-lowest: var(--color-surface-container-lowest);
13
+ --color-surface-container-low: var(--color-surface-container-low);
14
+ --color-surface-container-high: var(--color-surface-container-high);
15
+ --color-surface-container-highest: var(--color-surface-container-highest);
16
+ --color-surface-variant: var(--color-surface-variant);
17
+ --color-surface-tint: var(--color-surface-tint);
18
+
19
+ /* Primary */
20
+ --color-primary: var(--color-primary);
21
+ --color-primary-container: var(--color-primary-container);
22
+ --color-primary-fixed: var(--color-primary-fixed);
23
+ --color-primary-fixed-dim: var(--color-primary-fixed-dim);
24
+ --color-on-primary: var(--color-on-primary);
25
+ --color-on-primary-container: var(--color-on-primary-container);
26
+ --color-on-primary-fixed: var(--color-on-primary-fixed);
27
+ --color-on-primary-fixed-variant: var(--color-on-primary-fixed-variant);
28
+
29
+ /* Secondary */
30
+ --color-secondary: var(--color-secondary);
31
+ --color-secondary-container: var(--color-secondary-container);
32
+ --color-secondary-fixed: var(--color-secondary-fixed);
33
+ --color-secondary-fixed-dim: var(--color-secondary-fixed-dim);
34
+ --color-on-secondary: var(--color-on-secondary);
35
+ --color-on-secondary-container: var(--color-on-secondary-container);
36
+ --color-on-secondary-fixed: var(--color-on-secondary-fixed);
37
+ --color-on-secondary-fixed-variant: var(--color-on-secondary-fixed-variant);
38
+
39
+ /* Tertiary */
40
+ --color-tertiary: var(--color-tertiary);
41
+ --color-tertiary-container: var(--color-tertiary-container);
42
+ --color-tertiary-fixed: var(--color-tertiary-fixed);
43
+ --color-tertiary-fixed-dim: var(--color-tertiary-fixed-dim);
44
+ --color-on-tertiary: var(--color-on-tertiary);
45
+ --color-on-tertiary-container: var(--color-on-tertiary-container);
46
+ --color-on-tertiary-fixed: var(--color-on-tertiary-fixed);
47
+ --color-on-tertiary-fixed-variant: var(--color-on-tertiary-fixed-variant);
48
+
49
+ /* On-surface */
50
+ --color-on-surface: var(--color-on-surface);
51
+ --color-on-surface-variant: var(--color-on-surface-variant);
52
+
53
+ /* Outline */
54
+ --color-outline: var(--color-outline);
55
+ --color-outline-variant: var(--color-outline-variant);
56
+
57
+ /* Error */
58
+ --color-error: var(--color-error);
59
+ --color-error-container: var(--color-error-container);
60
+ --color-on-error: var(--color-on-error);
61
+ --color-on-error-container: var(--color-on-error-container);
62
+
63
+ /* Success */
64
+ --color-success: var(--color-success);
65
+ --color-success-container: var(--color-success-container);
66
+ --color-on-success: var(--color-on-success);
67
+ --color-on-success-container: var(--color-on-success-container);
68
+
69
+ /* Warning */
70
+ --color-warning: var(--color-warning);
71
+ --color-warning-container: var(--color-warning-container);
72
+ --color-on-warning: var(--color-on-warning);
73
+ --color-on-warning-container: var(--color-on-warning-container);
74
+
75
+ /* Info */
76
+ --color-info: var(--color-info);
77
+ --color-info-container: var(--color-info-container);
78
+ --color-on-info: var(--color-on-info);
79
+ --color-on-info-container: var(--color-on-info-container);
80
+
81
+ /* Inverse */
82
+ --color-inverse-surface: var(--color-inverse-surface);
83
+ --color-inverse-on-surface: var(--color-inverse-on-surface);
84
+ --color-inverse-primary: var(--color-inverse-primary);
85
+
86
+ /* Background */
87
+ --color-background: var(--color-background);
88
+ --color-on-background: var(--color-on-background);
89
+
90
+ /* Font families */
91
+ --font-headline: "Manrope", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;
92
+ --font-body: "Inter", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;
93
+ }
@@ -0,0 +1,92 @@
1
+ /*
2
+ * Pulse Editorial Design System — Typography
3
+ */
4
+
5
+ body {
6
+ line-height: 1.75;
7
+ }
8
+
9
+ /* Hide scrollbar utility */
10
+ .no-scrollbar::-webkit-scrollbar {
11
+ display: none;
12
+ }
13
+ .no-scrollbar {
14
+ -ms-overflow-style: none;
15
+ scrollbar-width: none;
16
+ }
17
+
18
+ /* Typography plugin overrides for design system tokens */
19
+ .prose {
20
+ --tw-prose-body: var(--color-on-surface-variant);
21
+ --tw-prose-headings: var(--color-on-surface);
22
+ --tw-prose-lead: var(--color-on-surface-variant);
23
+ --tw-prose-links: var(--color-primary);
24
+ --tw-prose-bold: var(--color-on-surface);
25
+ --tw-prose-counters: var(--color-outline);
26
+ --tw-prose-bullets: var(--color-outline-variant);
27
+ --tw-prose-hr: var(--color-outline-variant);
28
+ --tw-prose-quotes: var(--color-on-surface);
29
+ --tw-prose-quote-borders: var(--color-outline-variant);
30
+ --tw-prose-captions: var(--color-outline);
31
+ --tw-prose-code: var(--color-primary);
32
+ --tw-prose-pre-code: #ffffff;
33
+ --tw-prose-pre-bg: var(--color-on-surface);
34
+ --tw-prose-th-borders: var(--color-outline-variant);
35
+ --tw-prose-td-borders: var(--color-outline-variant);
36
+ }
37
+
38
+ /* Stitch Editorial prose enhancements */
39
+ .prose h2 {
40
+ font-family: var(--font-headline);
41
+ font-weight: 700;
42
+ font-size: 1.75rem;
43
+ margin-top: 2.5rem;
44
+ margin-bottom: 1.25rem;
45
+ }
46
+ .prose h3 {
47
+ font-family: var(--font-headline);
48
+ font-weight: 600;
49
+ font-size: 1.25rem;
50
+ margin-top: 2rem;
51
+ margin-bottom: 1rem;
52
+ }
53
+ .prose p {
54
+ margin-bottom: 1.5rem;
55
+ line-height: 1.85;
56
+ }
57
+ .prose li {
58
+ position: relative;
59
+ padding-left: 1.5rem;
60
+ margin-bottom: 0.5rem;
61
+ line-height: 1.85;
62
+ }
63
+ .prose ul {
64
+ list-style-type: none;
65
+ padding-left: 0;
66
+ }
67
+ .prose ul > li::before {
68
+ content: "";
69
+ position: absolute;
70
+ left: 0;
71
+ top: 0.75rem;
72
+ width: 6px;
73
+ height: 6px;
74
+ border-radius: 50%;
75
+ background-color: var(--color-primary);
76
+ }
77
+ .prose code:not(pre code) {
78
+ background-color: var(--color-surface-container-low);
79
+ padding: 0.2rem 0.4rem;
80
+ border-radius: 0.25rem;
81
+ font-size: 0.9em;
82
+ }
83
+ .prose pre {
84
+ border-radius: 0.5rem;
85
+ padding: 1.5rem;
86
+ overflow-x: auto;
87
+ }
88
+ .prose pre code {
89
+ background-color: transparent;
90
+ padding: 0;
91
+ color: inherit;
92
+ }