sparkdesign 0.4.5 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +74 -22
  2. package/cli/dist/commands/add.js +22 -12
  3. package/cli/dist/commands/diff.js +8 -4
  4. package/cli/dist/commands/init.js +84 -9
  5. package/cli/dist/commands/list.js +8 -4
  6. package/cli/dist/index.js +9 -6
  7. package/cli/dist/utils/config.js +16 -8
  8. package/cli/dist/utils/package-manager.js +75 -0
  9. package/cli/dist/utils/registry.js +8 -4
  10. package/cli/dist/utils/tokens.js +33 -25
  11. package/cli/dist/utils/transform.js +9 -5
  12. package/cli/dist/utils/tsconfig.js +182 -0
  13. package/cli/registry/AGENTS.md +18 -0
  14. package/cli/registry/__tests__/chat/thinking-indicator.test.tsx +2 -2
  15. package/cli/registry/chat/chat-input/chat-input-folder-selector.tsx +1 -1
  16. package/cli/registry/chat/chat-input/folder-permission-dialog.tsx +2 -2
  17. package/cli/registry/chat/image-generating.tsx +1 -1
  18. package/cli/registry/chat/response/context.tsx +1 -1
  19. package/cli/registry/chat/thinking-indicator.tsx +1 -1
  20. package/cli/registry/tokens/index.css +8 -5
  21. package/cli/registry/tokens/theme-base.css +235 -0
  22. package/{dist/tokens/themes/dark-qoder.css → cli/registry/tokens/themes/dark-mint.css} +1 -1
  23. package/cli/registry/tokens/themes/dark-parchment.css +104 -103
  24. package/{dist/tokens/themes/light-qoder.css → cli/registry/tokens/themes/light-mint.css} +1 -1
  25. package/cli/registry/tokens/themes/light-parchment.css +103 -102
  26. package/dist/registry/basic/alert-dialog.d.ts +7 -5
  27. package/dist/registry/basic/avatar.d.ts +7 -5
  28. package/dist/registry/basic/collapse.d.ts +7 -5
  29. package/dist/registry/basic/collapsible-card.d.ts +7 -6
  30. package/dist/registry/basic/collapsible.d.ts +7 -5
  31. package/dist/registry/basic/dropdown-menu.d.ts +7 -5
  32. package/dist/registry/basic/icons-inline.d.ts +7 -5
  33. package/dist/registry/basic/kbd.d.ts +7 -5
  34. package/dist/registry/basic/pagination.d.ts +7 -5
  35. package/dist/registry/basic/progress.d.ts +7 -5
  36. package/dist/registry/basic/radio-group.d.ts +7 -5
  37. package/dist/registry/basic/resizable.d.ts +7 -5
  38. package/dist/registry/basic/select.d.ts +7 -5
  39. package/dist/registry/basic/slider.d.ts +7 -5
  40. package/dist/registry/basic/sonner.d.ts +7 -5
  41. package/dist/registry/basic/switch.d.ts +7 -5
  42. package/dist/registry/basic/tabs.d.ts +7 -5
  43. package/dist/registry/basic/tag.d.ts +7 -5
  44. package/dist/registry/basic/theme-from-document.d.ts +7 -5
  45. package/dist/registry/basic/tooltip.d.ts +7 -5
  46. package/dist/registry/basic/typography.d.ts +7 -5
  47. package/dist/registry/chat/ask-user-part.d.ts +9 -3
  48. package/dist/registry/chat/browser-action-part.d.ts +9 -3
  49. package/dist/registry/chat/chat-input/compound.d.ts +7 -5
  50. package/dist/registry/chat/chat-input/context.d.ts +7 -5
  51. package/dist/registry/chat/chat-input/index.d.ts +7 -5
  52. package/dist/registry/chat/chat-input/types.d.ts +9 -3
  53. package/dist/registry/chat/chat-input/useAutoResizeTextarea.d.ts +9 -3
  54. package/dist/registry/chat/code-block-part.d.ts +9 -3
  55. package/dist/registry/chat/file-attachment.d.ts +7 -5
  56. package/dist/registry/chat/file-review-part.d.ts +9 -4
  57. package/dist/registry/chat/generated-images-grid.d.ts +9 -3
  58. package/dist/registry/chat/generation-status-bar.d.ts +8 -4
  59. package/dist/registry/chat/hint-banner.d.ts +9 -3
  60. package/dist/registry/chat/mermaid-part.d.ts +9 -3
  61. package/dist/registry/chat/plan-part.d.ts +9 -3
  62. package/dist/registry/chat/reasoning-step/index.d.ts +8 -6
  63. package/dist/registry/chat/reasoning-step/types.d.ts +9 -3
  64. package/dist/registry/chat/related-prompts.d.ts +9 -3
  65. package/dist/registry/chat/response/index.d.ts +8 -6
  66. package/dist/registry/chat/response/types.d.ts +9 -3
  67. package/dist/registry/chat/task-part.d.ts +9 -3
  68. package/dist/registry/chat/terminal-code-block-part.d.ts +9 -3
  69. package/dist/registry/chat/user-question/UserQuestionCard.d.ts +9 -3
  70. package/dist/registry/chat/user-question/UserQuestionFooter.d.ts +9 -3
  71. package/dist/registry/chat/user-question/UserQuestionHeader.d.ts +9 -3
  72. package/dist/registry/chat/user-question/types.d.ts +8 -5
  73. package/dist/registry/lib/file-icon-maps.d.ts +7 -7
  74. package/dist/registry/lib/utils.d.ts +8 -6
  75. package/dist/spark-design.cjs.js +6 -6
  76. package/dist/spark-design.es.js +10 -10
  77. package/dist/sparkdesign.css +2 -0
  78. package/dist/src/components/basic/AlertDialog/index.d.ts +7 -5
  79. package/dist/src/components/basic/Avatar/index.d.ts +9 -3
  80. package/dist/src/components/basic/Button/index.d.ts +9 -3
  81. package/dist/src/components/basic/Collapse/index.d.ts +7 -4
  82. package/dist/src/components/basic/Collapsible/index.d.ts +9 -4
  83. package/dist/src/components/basic/CollapsibleCard/index.d.ts +9 -3
  84. package/dist/src/components/basic/CollapsibleSection/index.d.ts +7 -7
  85. package/dist/src/components/basic/DropdownMenu/index.d.ts +7 -5
  86. package/dist/src/components/basic/EllipsisText/index.d.ts +7 -15
  87. package/dist/src/components/basic/IconButton/index.d.ts +9 -3
  88. package/dist/src/components/basic/Kbd/index.d.ts +9 -3
  89. package/dist/src/components/basic/OptionList/index.d.ts +9 -3
  90. package/dist/src/components/basic/Pagination/index.d.ts +9 -3
  91. package/dist/src/components/basic/Progress/index.d.ts +9 -3
  92. package/dist/src/components/basic/RadioGroup/index.d.ts +9 -3
  93. package/dist/src/components/basic/Resizable/index.d.ts +9 -3
  94. package/dist/src/components/basic/Scrollbar/index.d.ts +9 -3
  95. package/dist/src/components/basic/Select/index.d.ts +7 -4
  96. package/dist/src/components/basic/ShimmeringText/index.d.ts +9 -3
  97. package/dist/src/components/basic/Skeleton/index.d.ts +9 -3
  98. package/dist/src/components/basic/Slider/index.d.ts +9 -3
  99. package/dist/src/components/basic/Spinner/index.d.ts +9 -3
  100. package/dist/src/components/basic/Switch/index.d.ts +8 -5
  101. package/dist/src/components/basic/Table/index.d.ts +9 -3
  102. package/dist/src/components/basic/Tabs/index.d.ts +9 -3
  103. package/dist/src/components/basic/Tag/index.d.ts +7 -4
  104. package/dist/src/components/basic/Toggle/index.d.ts +9 -3
  105. package/dist/src/components/basic/Tooltip/index.d.ts +7 -4
  106. package/dist/src/components/basic/Typography/index.d.ts +9 -3
  107. package/dist/src/components/chat/GeneratedImagesGrid/index.d.ts +9 -3
  108. package/dist/src/components/chat/GenerationStatusBar/index.d.ts +9 -3
  109. package/dist/src/components/chat/Markdown/demo-content.d.ts +1 -1
  110. package/dist/src/components/chat/Markdown/index.d.ts +9 -3
  111. package/dist/src/components/chat/Response/StreamingMarkdownBlock.d.ts +9 -3
  112. package/dist/src/components/chat/Response/index.d.ts +8 -6
  113. package/dist/src/components/chat/UserMessage/index.d.ts +9 -3
  114. package/dist/src/components/index.d.ts +7 -9
  115. package/dist/src/icons/context.d.ts +7 -6
  116. package/dist/src/icons/types.d.ts +7 -5
  117. package/dist/src/lib/ThemeStyleContext.d.ts +9 -9
  118. package/dist/src/lib/file-icon.d.ts +7 -6
  119. package/dist/src/lib/i18n.d.ts +7 -6
  120. package/dist/src/lib/index.d.ts +9 -3
  121. package/dist/src/lib/utils.d.ts +7 -5
  122. package/dist/theme-base.css +7 -8
  123. package/dist/theme.css +2 -2
  124. package/dist/themes/{dark-qoder.css → dark-mint.css} +1 -1
  125. package/dist/themes/{light-qoder.css → light-mint.css} +1 -1
  126. package/dist/tokens/AGENTS.md +47 -0
  127. package/dist/tokens/index.css +10 -19
  128. package/dist/tokens/theme-base.css +7 -8
  129. package/dist/tokens/theme.css +2 -2
  130. package/dist/tokens/themes/dark-mint.css +133 -0
  131. package/dist/tokens/themes/light-mint.css +132 -0
  132. package/package.json +11 -5
  133. package/cli/registry/tokens/themes/dark-qoder.css +0 -132
  134. package/cli/registry/tokens/themes/light-qoder.css +0 -131
  135. package/dist/qoder-design.css +0 -2
  136. package/dist/tokens/CLAUDE.md +0 -305
@@ -1,131 +0,0 @@
1
- /* ============================================
2
- * Theme: Light (亮色模式)
3
- * 复制此文件作为自定义主题模板
4
- * ============================================ */
5
-
6
- :root,
7
- [data-theme="light"] {
8
- color-scheme: light;
9
- /* --- Primary --- */
10
- --color-primary: #8EE5A1;
11
- --color-primary-hover: #73CD94;
12
- --color-primary-active: #5CB870;
13
- --color-primary-bg: #F1FAF3;
14
- --color-primary-bg-hover: #E6F7EC;
15
- --color-primary-border: #CDEFD9;
16
- --color-primary-border-hover: #B3E6C7;
17
- --color-primary-text: #141414;
18
- --color-primary-text-hover: #73CD94;
19
- --color-primary-text-active: #5CB870;
20
- --color-text-on-primary: #FDFDFD;
21
-
22
- /* --- Text --- */
23
- --color-text: #141414;
24
- --color-text-secondary: #636261;
25
- --color-text-tertiary: #838280;
26
- --color-text-quaternary: #8E8C8B;
27
- --color-text-base: #0F0D0C;
28
-
29
- /* --- Border --- */
30
- --color-border: #BCBBBA;
31
- --color-border-secondary: #DDDDDD;
32
- --color-border-tertiary: #E6E6E6;
33
-
34
- /* --- Fill --- */
35
- --color-fill: #DFDFDF;
36
- --color-fill-secondary: #EFEFEF;
37
- --color-fill-tertiary: #F9F9F9;
38
- --color-fill-quaternary: #FCFCFC;
39
- --color-fill-disable: #DAD9D8;
40
-
41
- /* --- Background --- */
42
- --color-bg-container: #FFFFFF;
43
- --color-bg-elevated: #F9F9F9;
44
- --color-bg-layout: #FDFDFD;
45
- --color-bg-spotlight: #FAFAFA;
46
- --color-bg-mask: rgba(0, 0, 0, 0.5);
47
- --color-mask-shimmer-weak: rgba(0, 0, 0, 0.3);
48
- --color-mask-shimmer-strong: rgba(0, 0, 0, 0.8);
49
- --color-mask-shimmer-full: rgba(0, 0, 0, 1);
50
- --color-bg-base: #FFFFFF;
51
- --color-bg-highlight: #080807;
52
- --color-bg-highlight-hover: #1a1a1a;
53
-
54
- /* --- Shadow --- */
55
- --color-shadow-primary: rgba(0, 0, 0, 0.02);
56
- --color-shadow-secondary: rgba(0, 0, 0, 0.035);
57
- --color-shadow-tertiary: rgba(0, 0, 0, 0.055);
58
- --color-shadow-quaternary: rgba(0, 0, 0, 0.075);
59
-
60
- /* --- Semantic Colors --- */
61
- --color-link: #5CB870;
62
- --color-error: #FF4D4F;
63
- --color-error-hover: #FF7875;
64
- --color-error-bg: #FFF2F0;
65
- --color-error-bg-hover: #FFE4E0;
66
- --color-error-border: #FFCCC7;
67
- --color-info: #0B83F1;
68
- --color-info-hover: #5EBCFF;
69
- --color-info-bg: #E6F7FF;
70
- --color-info-bg-hover: #D0EFFF;
71
- --color-info-border: #B0E3FF;
72
- --color-success: #73CD94;
73
- --color-success-hover: #8EE5A1;
74
- --color-success-bg: #F1FAF3;
75
- --color-success-bg-hover: #E6F7EC;
76
- --color-success-border: #CDEFD9;
77
- --color-warning: #FAAD14;
78
- --color-warning-hover: #FFD666;
79
- --color-warning-bg: #FFFBE6;
80
- --color-warning-bg-hover: #FFF3CF;
81
- --color-warning-border: #FFE5BF;
82
-
83
- /* --- Accent Colors --- */
84
- --color-pink: #EC4899;
85
- --color-pink-bg: #F9E3F3;
86
- --color-pink-bg-hover: #F5D4EB;
87
- --color-purple: #615CED;
88
- --color-purple-bg: #EBE9FF;
89
- --color-purple-bg-hover: #DDDAFF;
90
- --color-yellow: #FAC414;
91
- --color-yellow-bg: #FFF3CF;
92
- --color-yellow-bg-hover: #FFE9A8;
93
- --color-orange: #FA8125;
94
- --color-orange-bg: #FFEFDE;
95
- --color-orange-bg-hover: #FFE3C7;
96
- --color-teal: #14B8A6;
97
- --color-teal-bg: #DEF7F1;
98
- --color-teal-bg-hover: #CAF0E8;
99
- --color-blue: #0090FF;
100
- --color-blue-bg: #DEEDFF;
101
- --color-blue-bg-hover: #C8E3FF;
102
- --color-mauve: #8E8C99;
103
- --color-mauve-bg: #F1F2F3;
104
- --color-mauve-bg-hover: #E4E5E7;
105
- --color-slate: #404040;
106
- --color-slate-bg: #FAFAFA;
107
- --color-slate-bg-hover: #EFEFEF;
108
- --color-lavender: #B99DFF;
109
- --color-lavender-bg: #ECE4FF;
110
- --color-lavender-bg-hover: #E0D4FF;
111
- --color-sage: #6BB394;
112
- --color-sage-bg: #EFF3F2;
113
- --color-sage-bg-hover: #E2EAE8;
114
-
115
- /* --- Component aliases --- */
116
- --color-input: var(--color-border-tertiary);
117
- --color-ring: var(--color-primary-border);
118
- --color-popover: var(--color-bg-container);
119
- --color-popover-foreground: var(--color-text);
120
- --color-accent: var(--color-fill-secondary);
121
- --color-accent-foreground: var(--color-text);
122
- --color-muted: var(--color-fill-tertiary);
123
- --color-muted-foreground: var(--color-text-secondary);
124
- --color-background: var(--color-bg-base);
125
-
126
- /* --- Diff --- */
127
- --color-diff-insert: #A6DCBA;
128
- --color-diff-insert-bg: #D9EBE0;
129
- --color-diff-remove: #FC6B83;
130
- --color-diff-remove-bg: #E3D1D5;
131
- }
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.1.18 | 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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--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;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-widest:.1em;--radius-sm:var(--radius-sm);--radius-md:var(--radius-md);--radius-lg:var(--radius-lg);--radius-xl:var(--radius-xl);--radius-2xl:var(--radius-2xl);--radius-3xl:var(--radius-3xl);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)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);--radius:var(--radius-DEFAULT);--radius-none:var(--radius-none);--radius-full:var(--radius-full);--spacing-0:var(--spacing-0);--spacing-px:var(--spacing-px);--spacing-0\.5:var(--spacing-0\.5);--spacing-1:var(--spacing-1);--spacing-1\.5:var(--spacing-1\.5);--spacing-2:var(--spacing-2);--spacing-2\.5:var(--spacing-2\.5);--spacing-3:var(--spacing-3);--spacing-3\.5:var(--spacing-3\.5);--spacing-4:var(--spacing-4);--spacing-5:var(--spacing-5);--spacing-6:var(--spacing-6);--spacing-7:var(--spacing-7);--spacing-8:var(--spacing-8);--spacing-9:var(--spacing-9);--spacing-10:var(--spacing-10);--spacing-11:var(--spacing-11);--spacing-12:var(--spacing-12);--spacing-14:var(--spacing-14);--spacing-16:var(--spacing-16);--spacing-20:var(--spacing-20);--spacing-24:var(--spacing-24);--spacing-28:var(--spacing-28);--spacing-32:var(--spacing-32);--spacing-36:var(--spacing-36);--spacing-40:var(--spacing-40);--spacing-44:var(--spacing-44);--spacing-48:var(--spacing-48);--spacing-52:var(--spacing-52);--spacing-56:var(--spacing-56);--spacing-60:var(--spacing-60);--spacing-64:var(--spacing-64);--spacing-72:var(--spacing-72);--spacing-80:var(--spacing-80);--spacing-96:var(--spacing-96);--color-primary:var(--token-color-primary);--color-primary-hover:var(--token-color-primary-hover);--color-primary-active:var(--token-color-primary-active);--color-primary-bg:var(--token-color-primary-bg);--color-primary-border:var(--token-color-primary-border);--color-primary-border-hover:var(--token-color-primary-border-hover);--color-text-on-primary:var(--token-color-text-on-primary);--color-text:var(--token-color-text);--color-text-secondary:var(--token-color-text-secondary);--color-text-tertiary:var(--token-color-text-tertiary);--color-text-quaternary:var(--token-color-text-quaternary);--color-text-base:var(--token-color-text-base);--color-border:var(--token-color-border);--color-ring:var(--token-color-primary-border);--color-muted-foreground:var(--token-color-text-secondary);--color-border-secondary:var(--token-color-border-secondary);--color-border-tertiary:var(--token-color-border-tertiary);--color-fill:var(--token-color-fill);--color-fill-secondary:var(--token-color-fill-secondary);--color-fill-tertiary:var(--token-color-fill-tertiary);--color-bg-container:var(--token-color-bg-container);--color-bg-mask:var(--token-color-bg-mask);--color-mask-shimmer-weak:var(--token-color-mask-shimmer-weak);--color-mask-shimmer-strong:var(--token-color-mask-shimmer-strong);--color-mask-shimmer-full:var(--token-color-mask-shimmer-full);--color-bg-base:var(--token-color-bg-base);--color-bg-highlight:var(--token-color-bg-highlight);--color-bg-highlight-hover:var(--token-color-bg-highlight-hover);--color-shadow-secondary:var(--token-color-shadow-secondary);--color-shadow-quaternary:var(--token-color-shadow-quaternary);--color-link:var(--token-color-link);--color-error:var(--token-color-error);--color-error-hover:var(--token-color-error-hover);--color-error-bg:var(--token-color-error-bg);--color-error-bg-hover:var(--token-color-error-bg-hover);--color-error-border:var(--token-color-error-border);--color-info:var(--token-color-info);--color-info-hover:var(--token-color-info-hover);--color-info-bg:var(--token-color-info-bg);--color-info-bg-hover:var(--token-color-info-bg-hover);--color-info-border:var(--token-color-info-border);--color-success:var(--token-color-success);--color-success-bg:var(--token-color-success-bg);--color-success-bg-hover:var(--token-color-success-bg-hover);--color-success-border:var(--token-color-success-border);--color-warning:var(--token-color-warning);--color-warning-bg:var(--token-color-warning-bg);--color-warning-bg-hover:var(--token-color-warning-bg-hover);--color-warning-border:var(--token-color-warning-border);--color-pink:var(--token-color-pink);--color-pink-bg:var(--token-color-pink-bg);--color-pink-bg-hover:var(--token-color-pink-bg-hover);--color-purple:var(--token-color-purple);--color-purple-bg:var(--token-color-purple-bg);--color-purple-bg-hover:var(--token-color-purple-bg-hover);--color-yellow:var(--token-color-yellow);--color-yellow-bg:var(--token-color-yellow-bg);--color-yellow-bg-hover:var(--token-color-yellow-bg-hover);--color-orange:var(--token-color-orange);--color-orange-bg:var(--token-color-orange-bg);--color-orange-bg-hover:var(--token-color-orange-bg-hover);--color-teal:var(--token-color-teal);--color-teal-bg:var(--token-color-teal-bg);--color-teal-bg-hover:var(--token-color-teal-bg-hover);--color-blue:var(--token-color-blue);--color-blue-bg:var(--token-color-blue-bg);--color-blue-bg-hover:var(--token-color-blue-bg-hover);--color-mauve:var(--token-color-mauve);--color-mauve-bg:var(--token-color-mauve-bg);--color-mauve-bg-hover:var(--token-color-mauve-bg-hover);--color-slate:var(--token-color-slate);--color-slate-bg:var(--token-color-slate-bg);--color-slate-bg-hover:var(--token-color-slate-bg-hover);--color-lavender:var(--token-color-lavender);--color-lavender-bg:var(--token-color-lavender-bg);--color-lavender-bg-hover:var(--token-color-lavender-bg-hover);--color-sage:var(--token-color-sage);--color-sage-bg:var(--token-color-sage-bg);--color-sage-bg-hover:var(--token-color-sage-bg-hover);--animate-accordion-down:accordion-down .2s ease-out;--animate-accordion-up:accordion-up .2s ease-out;--animate-accordion-right:accordion-right .2s ease-out;--animate-accordion-left:accordion-left .2s ease-out}}@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{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:var(--spacing-0)}.-top-0\.5{top:calc(var(--spacing-0\.5)*-1)}.top-0{top:var(--spacing-0)}.top-0\.5{top:var(--spacing-0\.5)}.top-1\/2{top:50%}.top-2{top:var(--spacing-2)}.top-3{top:var(--spacing-3)}.top-4{top:var(--spacing-4)}.-right-0\.5{right:calc(var(--spacing-0\.5)*-1)}.right-0{right:var(--spacing-0)}.right-1{right:var(--spacing-1)}.right-2{right:var(--spacing-2)}.right-3{right:var(--spacing-3)}.right-4{right:var(--spacing-4)}.bottom-0{bottom:var(--spacing-0)}.bottom-0\.5{bottom:var(--spacing-0\.5)}.left-0{left:var(--spacing-0)}.left-0\.5{left:var(--spacing-0\.5)}.left-1\/2{left:50%}.left-2{left:var(--spacing-2)}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[9999\]{z-index:9999}.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-0{margin:var(--spacing-0)}.mx-1{margin-inline:var(--spacing-1)}.mx-2{margin-inline:var(--spacing-2)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing-1)}.my-6{margin-block:var(--spacing-6)}.-mt-2{margin-top:calc(var(--spacing-2)*-1)}.mt-1{margin-top:var(--spacing-1)}.mt-1\.5{margin-top:var(--spacing-1\.5)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-5{margin-top:var(--spacing-5)}.mt-6{margin-top:var(--spacing-6)}.mr-1{margin-right:var(--spacing-1)}.mr-2{margin-right:var(--spacing-2)}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.-ml-5{margin-left:calc(var(--spacing-5)*-1)}.ml-4\.5{margin-left:calc(var(--spacing)*4.5)}.ml-6{margin-left:var(--spacing-6)}.ml-8{margin-left:var(--spacing-8)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-1\.5{width:var(--spacing-1\.5);height:var(--spacing-1\.5)}.size-2{width:var(--spacing-2);height:var(--spacing-2)}.size-2\.5{width:var(--spacing-2\.5);height:var(--spacing-2\.5)}.size-3\.5{width:var(--spacing-3\.5);height:var(--spacing-3\.5)}.size-4{width:var(--spacing-4);height:var(--spacing-4)}.size-5{width:var(--spacing-5);height:var(--spacing-5)}.size-\[1em\]{width:1em;height:1em}.size-full{width:100%;height:100%}.h-1{height:var(--spacing-1)}.h-2{height:var(--spacing-2)}.h-2\.5{height:var(--spacing-2\.5)}.h-3{height:var(--spacing-3)}.h-3\.5{height:var(--spacing-3\.5)}.h-4{height:var(--spacing-4)}.h-5{height:var(--spacing-5)}.h-6{height:var(--spacing-6)}.h-7{height:var(--spacing-7)}.h-8{height:var(--spacing-8)}.h-9{height:var(--spacing-9)}.h-10{height:var(--spacing-10)}.h-11{height:var(--spacing-11)}.h-12{height:var(--spacing-12)}.h-16{height:var(--spacing-16)}.h-20{height:var(--spacing-20)}.h-\[1em\]{height:1em}.h-\[25px\]{height:25px}.h-\[var\(--font-size-sm\)\]{height:var(--font-size-sm)}.h-\[var\(--font-size-xl\)\]{height:var(--font-size-xl)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px;height:var(--spacing-px)}.max-h-96{max-height:var(--spacing-96)}.max-h-\[90vh\]{max-height:90vh}.\!min-h-0{min-height:var(--spacing-0)!important}.min-h-0{min-height:var(--spacing-0)}.min-h-5{min-height:var(--spacing-5)}.min-h-6{min-height:var(--spacing-6)}.min-h-7{min-height:var(--spacing-7)}.min-h-9{min-height:var(--spacing-9)}.min-h-11{min-height:var(--spacing-11)}.min-h-14,.min-h-\[var\(--spacing-14\)\]{min-height:var(--spacing-14)}.w-1{width:var(--spacing-1)}.w-2{width:var(--spacing-2)}.w-2\.5{width:var(--spacing-2\.5)}.w-3{width:var(--spacing-3)}.w-3\.5{width:var(--spacing-3\.5)}.w-4{width:var(--spacing-4)}.w-5{width:var(--spacing-5)}.w-6{width:var(--spacing-6)}.w-7{width:var(--spacing-7)}.w-8{width:var(--spacing-8)}.w-9{width:var(--spacing-9)}.w-10{width:var(--spacing-10)}.w-11{width:var(--spacing-11)}.w-12{width:var(--spacing-12)}.w-16{width:var(--spacing-16)}.w-20{width:var(--spacing-20)}.w-52{width:var(--spacing-52)}.w-\[1em\]{width:1em}.w-\[calc\(100\%-2\*var\(--radius-xl\)\)\]{width:calc(100% - 2*var(--radius-xl))}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-\[var\(--font-size-sm\)\]{width:var(--font-size-sm)}.w-\[var\(--font-size-xl\)\]{width:var(--font-size-xl)}.w-\[var\(--font-size-xs\)\]{width:var(--font-size-xs)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-54{max-width:calc(var(--spacing)*54)}.max-w-60{max-width:var(--spacing-60)}.max-w-96{max-width:var(--spacing-96)}.max-w-\[90vw\]{max-width:90vw}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.\!min-w-0{min-width:var(--spacing-0)!important}.min-w-0{min-width:var(--spacing-0)}.min-w-5{min-width:var(--spacing-5)}.min-w-6{min-width:var(--spacing-6)}.min-w-7{min-width:var(--spacing-7)}.min-w-9{min-width:var(--spacing-9)}.min-w-11{min-width:var(--spacing-11)}.min-w-20{min-width:var(--spacing-20)}.min-w-25{min-width:calc(var(--spacing)*25)}.min-w-30{min-width:calc(var(--spacing)*30)}.min-w-32{min-width:var(--spacing-32)}.min-w-50{min-width:calc(var(--spacing)*50)}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-\[var\(--spacing-10\)\]{min-width:var(--spacing-10)}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-left{transform-origin:0}.-translate-x-0\.5{--tw-translate-x:calc(var(--spacing-0\.5)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-0{rotate:none}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.scroll-m-20{scroll-margin:var(--spacing-20)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.grid-flow-row{grid-auto-flow:row}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:var(--spacing-0)}.gap-0\.5{gap:var(--spacing-0\.5)}.gap-1{gap:var(--spacing-1)}.gap-1\.5{gap:var(--spacing-1\.5)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-6{gap:var(--spacing-6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing-2)*var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing-2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing-4)*var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing-4)*calc(1 - var(--tw-space-y-reverse)))}:where(.-space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing-2)*-1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing-2)*-1)*calc(1 - var(--tw-space-x-reverse)))}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:var(--radius-DEFAULT)}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-bg-base{border-color:var(--color-bg-base)}.border-blue{border-color:var(--color-blue)}.border-border{border-color:var(--color-border)}.border-border-secondary{border-color:var(--color-border-secondary)}.border-border-tertiary{border-color:var(--color-border-tertiary)}.border-error-border{border-color:var(--color-error-border)}.border-info-border{border-color:var(--color-info-border)}.border-lavender{border-color:var(--color-lavender)}.border-mauve{border-color:var(--color-mauve)}.border-orange{border-color:var(--color-orange)}.border-pink{border-color:var(--color-pink)}.border-primary{border-color:var(--color-primary)}.border-primary-border{border-color:var(--color-primary-border)}.border-purple{border-color:var(--color-purple)}.border-sage{border-color:var(--color-sage)}.border-slate{border-color:var(--color-slate)}.border-success-border{border-color:var(--color-success-border)}.border-teal{border-color:var(--color-teal)}.border-text-tertiary{border-color:var(--color-text-tertiary)}.border-transparent{border-color:#0000}.border-warning-border{border-color:var(--color-warning-border)}.border-yellow{border-color:var(--color-yellow)}.border-t-transparent{border-top-color:#0000}.border-l-\[var\(--color-error-border\)\]{border-left-color:var(--color-error-border)}.border-l-\[var\(--color-success-border\)\]{border-left-color:var(--color-success-border)}.bg-\[\#1890FF\]{background-color:#1890ff}.bg-\[var\(--color-border-tertiary\)\]{background-color:var(--color-border-tertiary)}.bg-\[var\(--color-primary\)\]{background-color:var(--color-primary)}.bg-bg-base{background-color:var(--color-bg-base)}.bg-bg-container{background-color:var(--color-bg-container)}.bg-bg-highlight{background-color:var(--color-bg-highlight)}.bg-bg-mask,.bg-bg-mask\/60{background-color:var(--color-bg-mask)}@supports (color:color-mix(in lab, red, red)){.bg-bg-mask\/60{background-color:color-mix(in oklab,var(--color-bg-mask)60%,transparent)}}.bg-blue-bg{background-color:var(--color-blue-bg)}.bg-border-secondary{background-color:var(--color-border-secondary)}.bg-border-tertiary{background-color:var(--color-border-tertiary)}.bg-current{background-color:currentColor}.bg-error{background-color:var(--color-error)}.bg-error-bg{background-color:var(--color-error-bg)}.bg-fill{background-color:var(--color-fill)}.bg-fill-secondary{background-color:var(--color-fill-secondary)}.bg-fill-tertiary{background-color:var(--color-fill-tertiary)}.bg-info-bg{background-color:var(--color-info-bg)}.bg-lavender-bg{background-color:var(--color-lavender-bg)}.bg-mauve-bg{background-color:var(--color-mauve-bg)}.bg-orange-bg{background-color:var(--color-orange-bg)}.bg-pink-bg{background-color:var(--color-pink-bg)}.bg-primary{background-color:var(--color-primary)}.bg-primary-active{background-color:var(--color-primary-active)}.bg-primary-bg{background-color:var(--color-primary-bg)}.bg-purple-bg{background-color:var(--color-purple-bg)}.bg-sage-bg{background-color:var(--color-sage-bg)}.bg-slate-bg{background-color:var(--color-slate-bg)}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-teal-bg{background-color:var(--color-teal-bg)}.bg-text{background-color:var(--color-text)}.bg-text-on-primary{background-color:var(--color-text-on-primary)}.bg-transparent{background-color:#0000}.bg-warning-bg{background-color:var(--color-warning-bg)}.bg-yellow-bg{background-color:var(--color-yellow-bg)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[var\(--color-bg-base\)\]{--tw-gradient-to:var(--color-bg-base);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-\[length\:250\%_100\%\,auto\]{background-size:250% 100%,auto}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-no-repeat{background-repeat:no-repeat}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:var(--spacing-0)}.p-0\.5{padding:var(--spacing-0\.5)}.p-1{padding:var(--spacing-1)}.p-1\.5{padding:var(--spacing-1\.5)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}.px-0{padding-inline:var(--spacing-0)}.px-1{padding-inline:var(--spacing-1)}.px-1\.5{padding-inline:var(--spacing-1\.5)}.px-2{padding-inline:var(--spacing-2)}.px-2\.5{padding-inline:var(--spacing-2\.5)}.px-3{padding-inline:var(--spacing-3)}.px-4{padding-inline:var(--spacing-4)}.px-5{padding-inline:var(--spacing-5)}.px-\[0\.3rem\]{padding-inline:.3rem}.py-0{padding-block:var(--spacing-0)}.py-0\.5{padding-block:var(--spacing-0\.5)}.py-1{padding-block:var(--spacing-1)}.py-1\.5{padding-block:var(--spacing-1\.5)}.py-2{padding-block:var(--spacing-2)}.py-3{padding-block:var(--spacing-3)}.py-4{padding-block:var(--spacing-4)}.py-5{padding-block:var(--spacing-5)}.py-\[0\.2rem\]{padding-block:.2rem}.pt-0{padding-top:var(--spacing-0)}.pt-0\.5{padding-top:var(--spacing-0\.5)}.pt-1{padding-top:var(--spacing-1)}.pt-2{padding-top:var(--spacing-2)}.pt-3{padding-top:var(--spacing-3)}.pr-1\.5{padding-right:var(--spacing-1\.5)}.pr-3{padding-right:var(--spacing-3)}.pr-8{padding-right:var(--spacing-8)}.pr-12{padding-right:var(--spacing-12)}.pb-0{padding-bottom:var(--spacing-0)}.pb-1{padding-bottom:var(--spacing-1)}.pb-2{padding-bottom:var(--spacing-2)}.pb-3{padding-bottom:var(--spacing-3)}.pl-2{padding-left:var(--spacing-2)}.pl-3{padding-left:var(--spacing-3)}.pl-5{padding-left:var(--spacing-5)}.pl-6{padding-left:var(--spacing-6)}.pl-8{padding-left:var(--spacing-8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.\!font-sans{font-family:var(--font-sans)!important}.font-\[\'Seti\'\]{font-family:Seti}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--font-size-2xl);line-height:var(--tw-leading,var(--font-size-2xl--line-height))}.text-3xl{font-size:var(--font-size-3xl);line-height:var(--tw-leading,var(--font-size-3xl--line-height))}.text-4xl{font-size:var(--font-size-4xl);line-height:var(--tw-leading,var(--font-size-4xl--line-height))}.text-base{font-size:var(--font-size-base);line-height:var(--tw-leading,var(--font-size-base--line-height))}.text-lg{font-size:var(--font-size-lg);line-height:var(--tw-leading,var(--font-size-lg--line-height))}.text-sm{font-size:var(--font-size-sm);line-height:var(--tw-leading,var(--font-size-sm--line-height))}.text-xl{font-size:var(--font-size-xl);line-height:var(--tw-leading,var(--font-size-xl--line-height))}.text-xs{font-size:var(--font-size-xs);line-height:var(--tw-leading,var(--font-size-xs--line-height))}.text-\[16px\]{font-size:16px}.leading-5{--tw-leading:var(--spacing-5);line-height:var(--spacing-5)}.leading-6{--tw-leading:var(--spacing-6);line-height:var(--spacing-6)}.leading-7{--tw-leading:var(--spacing-7);line-height:var(--spacing-7)}.leading-\[16px\]{--tw-leading:16px;line-height:16px}.leading-\[var\(--font-size-sm--line-height\)\]{--tw-leading:var(--font-size-sm--line-height);line-height:var(--font-size-sm--line-height)}.leading-\[var\(--font-size-xs--line-height\)\]{--tw-leading:var(--font-size-xs--line-height);line-height:var(--font-size-xs--line-height)}.leading-none{--tw-leading:1;line-height:1}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#333\]{color:#333}.text-\[var\(--color-link\)\]{color:var(--color-link)}.text-\[var\(--color-text\)\]{color:var(--color-text)}.text-blue{color:var(--color-blue)}.text-current,.text-current\/80{color:currentColor}@supports (color:color-mix(in lab, red, red)){.text-current\/80{color:color-mix(in oklab,currentcolor 80%,transparent)}}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.text-lavender{color:var(--color-lavender)}.text-link{color:var(--color-link)}.text-mauve{color:var(--color-mauve)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-orange{color:var(--color-orange)}.text-pink{color:var(--color-pink)}.text-primary{color:var(--color-primary)}.text-primary-active{color:var(--color-primary-active)}.text-purple{color:var(--color-purple)}.text-sage{color:var(--color-sage)}.text-slate{color:var(--color-slate)}.text-success{color:var(--color-success)}.text-teal{color:var(--color-teal)}.text-text{color:var(--color-text)}.text-text-on-primary{color:var(--color-text-on-primary)}.text-text-quaternary{color:var(--color-text-quaternary)}.text-text-secondary{color:var(--color-text-secondary)}.text-text-tertiary,.text-text-tertiary\/50{color:var(--color-text-tertiary)}@supports (color:color-mix(in lab, red, red)){.text-text-tertiary\/50{color:color-mix(in oklab,var(--color-text-tertiary)50%,transparent)}}.text-transparent{color:#0000}.text-warning{color:var(--color-warning)}.text-yellow{color:var(--color-yellow)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.\!opacity-100{opacity:1!important}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.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-\[0_0\.25rem_1\.25rem_var\(--color-shadow-secondary\)\]{--tw-shadow:0 .25rem 1.25rem var(--tw-shadow-color,var(--color-shadow-secondary));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-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)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + 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)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + 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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-offset-0{outline-offset:0px}.outline-offset-2{outline-offset:2px}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\,opacity\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[max-height\]{transition-property:max-height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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-opacity{transition-property:opacity;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-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[spacing\=0\]\/toggle-group\:rounded-none:is(:where(.group\/toggle-group)[data-spacing="0"] *){border-radius:var(--radius-none)}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.placeholder\:font-normal::placeholder{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.placeholder\:text-text-tertiary::placeholder{color:var(--color-text-tertiary)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:var(--spacing-0)}.after\:transition-colors:after{content:var(--tw-content);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))}.first\:mt-0:first-child{margin-top:var(--spacing-0)}.group-data-\[spacing\=0\]\/toggle-group\:group-data-\[orientation\=horizontal\]\/toggle-group\:first\:rounded-l:is(:where(.group\/toggle-group)[data-spacing="0"] *):is(:where(.group\/toggle-group)[data-orientation=horizontal] *):first-child{border-top-left-radius:var(--radius-DEFAULT);border-bottom-left-radius:var(--radius-DEFAULT)}.group-data-\[spacing\=0\]\/toggle-group\:group-data-\[orientation\=vertical\]\/toggle-group\:first\:rounded-t:is(:where(.group\/toggle-group)[data-spacing="0"] *):is(:where(.group\/toggle-group)[data-orientation=vertical] *):first-child{border-top-left-radius:var(--radius-DEFAULT);border-top-right-radius:var(--radius-DEFAULT)}.last\:mb-0:last-child{margin-bottom:var(--spacing-0)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.group-data-\[spacing\=0\]\/toggle-group\:group-data-\[orientation\=horizontal\]\/toggle-group\:last\:rounded-r:is(:where(.group\/toggle-group)[data-spacing="0"] *):is(:where(.group\/toggle-group)[data-orientation=horizontal] *):last-child{border-top-right-radius:var(--radius-DEFAULT);border-bottom-right-radius:var(--radius-DEFAULT)}.group-data-\[spacing\=0\]\/toggle-group\:group-data-\[orientation\=vertical\]\/toggle-group\:last\:rounded-b:is(:where(.group\/toggle-group)[data-spacing="0"] *):is(:where(.group\/toggle-group)[data-orientation=vertical] *):last-child{border-bottom-right-radius:var(--radius-DEFAULT);border-bottom-left-radius:var(--radius-DEFAULT)}.focus-within\:shadow-\[0_0\.25rem_1\.25rem_var\(--color-shadow-quaternary\)\]:focus-within{--tw-shadow:0 .25rem 1.25rem var(--tw-shadow-color,var(--color-shadow-quaternary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\:outline-none:focus-within{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:border-border-secondary:hover{border-color:var(--color-border-secondary)}.hover\:border-border-tertiary:hover{border-color:var(--color-border-tertiary)}.hover\:bg-bg-highlight-hover:hover{background-color:var(--color-bg-highlight-hover)}.hover\:bg-blue-bg:hover{background-color:var(--color-blue-bg)}.hover\:bg-blue-bg-hover:hover{background-color:var(--color-blue-bg-hover)}.hover\:bg-error-bg:hover{background-color:var(--color-error-bg)}.hover\:bg-error-bg-hover:hover{background-color:var(--color-error-bg-hover)}.hover\:bg-error-hover:hover{background-color:var(--color-error-hover)}.hover\:bg-fill:hover{background-color:var(--color-fill)}.hover\:bg-fill-secondary:hover{background-color:var(--color-fill-secondary)}.hover\:bg-fill-tertiary:hover{background-color:var(--color-fill-tertiary)}.hover\:bg-info-bg:hover{background-color:var(--color-info-bg)}.hover\:bg-info-bg-hover:hover{background-color:var(--color-info-bg-hover)}.hover\:bg-lavender-bg:hover{background-color:var(--color-lavender-bg)}.hover\:bg-lavender-bg-hover:hover{background-color:var(--color-lavender-bg-hover)}.hover\:bg-mauve-bg:hover{background-color:var(--color-mauve-bg)}.hover\:bg-mauve-bg-hover:hover{background-color:var(--color-mauve-bg-hover)}.hover\:bg-orange-bg:hover{background-color:var(--color-orange-bg)}.hover\:bg-orange-bg-hover:hover{background-color:var(--color-orange-bg-hover)}.hover\:bg-pink-bg:hover{background-color:var(--color-pink-bg)}.hover\:bg-pink-bg-hover:hover{background-color:var(--color-pink-bg-hover)}.hover\:bg-primary-bg:hover{background-color:var(--color-primary-bg)}.hover\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\:bg-purple-bg:hover{background-color:var(--color-purple-bg)}.hover\:bg-purple-bg-hover:hover{background-color:var(--color-purple-bg-hover)}.hover\:bg-sage-bg:hover{background-color:var(--color-sage-bg)}.hover\:bg-sage-bg-hover:hover{background-color:var(--color-sage-bg-hover)}.hover\:bg-slate-bg:hover{background-color:var(--color-slate-bg)}.hover\:bg-slate-bg-hover:hover{background-color:var(--color-slate-bg-hover)}.hover\:bg-success-bg:hover{background-color:var(--color-success-bg)}.hover\:bg-success-bg-hover:hover{background-color:var(--color-success-bg-hover)}.hover\:bg-teal-bg:hover{background-color:var(--color-teal-bg)}.hover\:bg-teal-bg-hover:hover{background-color:var(--color-teal-bg-hover)}.hover\:bg-warning-bg:hover{background-color:var(--color-warning-bg)}.hover\:bg-warning-bg-hover:hover{background-color:var(--color-warning-bg-hover)}.hover\:bg-yellow-bg:hover{background-color:var(--color-yellow-bg)}.hover\:bg-yellow-bg-hover:hover{background-color:var(--color-yellow-bg-hover)}.hover\:text-current:hover{color:currentColor}.hover\:text-info-hover:hover{color:var(--color-info-hover)}.hover\:text-link:hover{color:var(--color-link)}.hover\:text-text:hover{color:var(--color-text)}.hover\:text-text-secondary:hover{color:var(--color-text-secondary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0\.25rem_1\.25rem_var\(--color-shadow-secondary\)\]:hover{--tw-shadow:0 .25rem 1.25rem var(--tw-shadow-color,var(--color-shadow-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:focus-within\:shadow-\[0_0\.25rem_1\.25rem_var\(--color-shadow-quaternary\)\]:hover:focus-within{--tw-shadow:0 .25rem 1.25rem var(--tw-shadow-color,var(--color-shadow-quaternary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:bg-error-bg:focus{background-color:var(--color-error-bg)}.focus\:bg-fill-secondary:focus{background-color:var(--color-fill-secondary)}.focus\:text-error:focus{color:var(--color-error)}.focus\:text-text:focus{color:var(--color-text)}.focus\:shadow-none:focus{--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)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + 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-offset-0:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-offset-0:focus{outline-offset:0px}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:bg-fill-tertiary:focus-visible{background-color:var(--color-fill-tertiary)}.focus-visible\:shadow-none:focus-visible{--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)}.focus-visible\:\!ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + 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-visible\:ring-2:focus-visible{--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-visible\:ring-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\:ring-primary-border:focus-visible{--tw-ring-color:var(--color-primary-border)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:\!ring-offset-0:focus-visible{--tw-ring-offset-width:0px!important;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)!important}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--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-visible\:ring-offset-bg-base:focus-visible{--tw-ring-offset-color:var(--color-bg-base)}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:\!outline-offset-0:focus-visible{outline-offset:0px!important}.focus-visible\:outline-offset-0:focus-visible{outline-offset:0px}.focus-visible\:outline-primary-border:focus-visible{outline-color:var(--color-primary-border)}.focus-visible\:\!outline-none:focus-visible{--tw-outline-style:none!important;outline-style:none!important}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:translate-y-px:active{--tw-translate-y:var(--spacing-px);translate:var(--tw-translate-x)var(--tw-translate-y);translate:var(--tw-translate-x)var(--tw-translate-y)}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\:bg-error:active{background-color:var(--color-error)}.active\:bg-fill-secondary:active{background-color:var(--color-fill-secondary)}.active\:opacity-80:active{opacity:.8}.active\:opacity-95:active{opacity:.95}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.aria-\[orientation\=horizontal\]\:h-px[aria-orientation=horizontal]{height:1px;height:var(--spacing-px)}.aria-\[orientation\=horizontal\]\:w-full[aria-orientation=horizontal]{width:100%}.aria-\[orientation\=horizontal\]\:cursor-row-resize[aria-orientation=horizontal]{cursor:row-resize}.aria-\[orientation\=vertical\]\:h-full[aria-orientation=vertical]{height:100%}.aria-\[orientation\=vertical\]\:w-px[aria-orientation=vertical]{width:1px;width:var(--spacing-px)}.aria-\[orientation\=vertical\]\:cursor-col-resize[aria-orientation=vertical]{cursor:col-resize}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-error-bg[data-highlighted]{background-color:var(--color-error-bg)}.data-\[highlighted\]\:bg-fill-secondary[data-highlighted]{background-color:var(--color-fill-secondary)}.data-\[highlighted\]\:text-error[data-highlighted]{color:var(--color-error)}.data-\[highlighted\]\:text-text[data-highlighted]{color:var(--color-text)}.data-\[orientation\=horizontal\]\:h-2[data-orientation=horizontal]{height:var(--spacing-2)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[orientation\=horizontal\]\:flex-row[data-orientation=horizontal]{flex-direction:row}.data-\[orientation\=horizontal\]\:justify-between[data-orientation=horizontal]{justify-content:space-between}.data-\[orientation\=horizontal\]\:border-r[data-orientation=horizontal]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[orientation\=horizontal\]\:border-b-0[data-orientation=horizontal]{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.data-\[orientation\=horizontal\]\:border-border-tertiary[data-orientation=horizontal]{border-color:var(--color-border-tertiary)}.data-\[orientation\=horizontal\]\:py-4[data-orientation=horizontal]{padding-block:var(--spacing-4)}.data-\[orientation\=horizontal\]\:pr-3[data-orientation=horizontal]{padding-right:var(--spacing-3)}.data-\[orientation\=horizontal\]\:pb-0[data-orientation=horizontal]{padding-bottom:var(--spacing-0)}.data-\[orientation\=horizontal\]\:pl-0[data-orientation=horizontal]{padding-left:var(--spacing-0)}.data-\[orientation\=horizontal\]\:text-left[data-orientation=horizontal]{text-align:left}.data-\[orientation\=horizontal\]\:last\:border-r-0[data-orientation=horizontal]:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.data-\[orientation\=vertical\]\:mt-0[data-orientation=vertical]{margin-top:var(--spacing-0)}.data-\[orientation\=vertical\]\:ml-2[data-orientation=vertical]{margin-left:var(--spacing-2)}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-2[data-orientation=vertical]{width:var(--spacing-2)}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[orientation\=vertical\]\:items-stretch[data-orientation=vertical]{align-items:stretch}.data-\[orientation\=vertical\]\:justify-start[data-orientation=vertical]{justify-content:flex-start}.data-\[orientation\=vertical\]\:rounded-md[data-orientation=vertical]{border-radius:var(--radius-md)}.data-\[orientation\=vertical\]\:px-3[data-orientation=vertical]{padding-inline:var(--spacing-3)}.data-\[orientation\=vertical\]\:py-2[data-orientation=vertical]{padding-block:var(--spacing-2)}.data-\[resize-handle-active\]\:bg-border-secondary[data-resize-handle-active]{background-color:var(--color-border-secondary)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-var(--spacing-2)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:var(--spacing-2)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-var(--spacing-2)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:var(--spacing-2)}.data-\[state\=active\]\:border-primary[data-state=active]{border-color:var(--color-primary)}.data-\[state\=active\]\:bg-bg-container[data-state=active]{background-color:var(--color-bg-container)}.data-\[state\=active\]\:text-text[data-state=active]{color:var(--color-text)}.data-\[state\=active\]\:shadow-none[data-state=active]{--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)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--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)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:var(--spacing-4);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:translate-x-4\.5[data-state=checked]{--tw-translate-x:calc(var(--spacing)*4.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:border-text[data-state=checked]{border-color:var(--color-text)}.data-\[state\=checked\]\:bg-fill-secondary[data-state=checked]{background-color:var(--color-fill-secondary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--color-primary)}.data-\[state\=checked\]\:bg-text[data-state=checked]{background-color:var(--color-text)}.data-\[state\=checked\]\:text-bg-base[data-state=checked]{color:var(--color-bg-base)}.data-\[state\=checked\]\:text-text[data-state=checked]{color:var(--color-text)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:var(--animate-accordion-up)}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[orientation\=horizontal\]\:data-\[state\=closed\]\:animate-accordion-left[data-orientation=horizontal][data-state=closed]{animation:var(--animate-accordion-left)}.data-\[state\=inactive\]\:hidden[data-state=inactive]{display:none}.data-\[state\=on\]\:border-border-secondary[data-state=on]{border-color:var(--color-border-secondary)}.data-\[state\=on\]\:bg-fill[data-state=on]{background-color:var(--color-fill)}.data-\[state\=on\]\:text-text[data-state=on]{color:var(--color-text)}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:var(--animate-accordion-down)}.data-\[state\=open\]\:bg-fill-secondary[data-state=open]{background-color:var(--color-fill-secondary)}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[orientation\=horizontal\]\:data-\[state\=open\]\:animate-accordion-right[data-orientation=horizontal][data-state=open]{animation:var(--animate-accordion-right)}.data-\[state\=selected\]\:bg-fill-tertiary[data-state=selected]{background-color:var(--color-fill-tertiary)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:var(--spacing-0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-fill-secondary[data-state=unchecked]{background-color:var(--color-fill-secondary)}@media (min-width:40rem){.sm\:inline{display:inline}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}}.\[\&_svg\]\:h-\[var\(--font-size-sm\)\] svg{height:var(--font-size-sm)}.\[\&_svg\]\:w-\[var\(--font-size-sm\)\] svg{width:var(--font-size-sm)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:focus-visible\]\:shadow-none:focus-visible{--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)}.\[\&\:focus-visible\]\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + 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-visible\]\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.\[\&\:focus-visible\]\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:var(--spacing-0)}.\[\&\:not\(\:first-child\)\]\:mt-4:not(:first-child){margin-top:var(--spacing-4)}.\[\&\:not\(\:first-child\)\]\:mt-6:not(:first-child){margin-top:var(--spacing-6)}.\[\&\:not\(\:first-child\)\]\:mt-8:not(:first-child){margin-top:var(--spacing-8)}.\[\&\:not\(\:first-child\)\]\:mt-10:not(:first-child){margin-top:var(--spacing-10)}.group-data-\[spacing\=0\]\/toggle-group\:data-\[variant\=outline\]\:group-data-\[orientation\=horizontal\]\/toggle-group\:\[\&\:not\(\:first-child\)\]\:border-l-0:is(:where(.group\/toggle-group)[data-spacing="0"] *)[data-variant=outline]:is(:where(.group\/toggle-group)[data-orientation=horizontal] *):not(:first-child){border-left-style:var(--tw-border-style);border-left-width:0}.group-data-\[spacing\=0\]\/toggle-group\:data-\[variant\=outline\]\:group-data-\[orientation\=vertical\]\/toggle-group\:\[\&\:not\(\:first-child\)\]\:border-t-0:is(:where(.group\/toggle-group)[data-spacing="0"] *)[data-variant=outline]:is(:where(.group\/toggle-group)[data-orientation=vertical] *):not(:first-child){border-top-style:var(--tw-border-style);border-top-width:0}.\[\&\>\*\]\:block>*{display:block}.\[\&\>\*\]\:flex>*{display:flex}.\[\&\>\*\]\:size-4>*{width:var(--spacing-4);height:var(--spacing-4)}.\[\&\>\*\]\:size-full>*{width:100%;height:100%}.\[\&\>\*\]\:items-center>*{align-items:center}.\[\&\>\*\]\:justify-center>*{justify-content:center}.\[\&\>\*\]\:leading-none>*{--tw-leading:1;line-height:1}.\[\&\>\*\]\:ring-2>*{--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)}.\[\&\>\*\]\:ring-bg-base>*{--tw-ring-color:var(--color-bg-base)}.\[\&\>\[role\=checkbox\]\]\:translate-y-0\.5>[role=checkbox]{--tw-translate-y:var(--spacing-0\.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>input\]\:mt-0\.5>input{margin-top:var(--spacing-0\.5)}.\[\&\>input\]\:shrink-0>input{flex-shrink:0}.\[\&\>li\]\:mt-2>li{margin-top:var(--spacing-2)}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:h-\[var\(--font-size-sm\)\]>svg{height:var(--font-size-sm)}.\[\&\>svg\]\:w-\[var\(--font-size-sm\)\]>svg{width:var(--font-size-sm)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>\*\]\:\[\&\>svg\]\:block>*>svg{display:block}.\[\&\>\*\]\:\[\&\>svg\]\:leading-none>*>svg{--tw-leading:1;line-height:1}.\[\&\>tr\]\:border-b>tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&\>tr\]\:border-border-tertiary>tr{border-color:var(--color-border-tertiary)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[aria-orientation\=horizontal\]\>div\]\:h-1[aria-orientation=horizontal]>div{height:var(--spacing-1)}.\[\&\[aria-orientation\=horizontal\]\>div\]\:w-6[aria-orientation=horizontal]>div{width:var(--spacing-6)}.\[\&\[aria-orientation\=vertical\]\>div\]\:h-6[aria-orientation=vertical]>div{height:var(--spacing-6)}.\[\&\[aria-orientation\=vertical\]\>div\]\:w-1[aria-orientation=vertical]>div{width:var(--spacing-1)}.tooltip-content .\[\.tooltip-content_\&\]\:bg-bg-highlight-hover{background-color:var(--color-bg-highlight-hover)}.tooltip-content .\[\.tooltip-content_\&\]\:text-text-on-primary{color:var(--color-text-on-primary)}.tooltip-content .dark\:\[\.tooltip-content_\&\]\:bg-\[color\:var\(--color-bg-base\)\]\/10:where([data-theme=dark],[data-theme=dark] *,[data-theme=dark-parchment],[data-theme=dark-parchment] *){background-color:var(--color-bg-base)}@supports (color:color-mix(in lab, red, red)){.tooltip-content .dark\:\[\.tooltip-content_\&\]\:bg-\[color\:var\(--color-bg-base\)\]\/10:where([data-theme=dark],[data-theme=dark] *,[data-theme=dark-parchment],[data-theme=dark-parchment] *){background-color:color-mix(in oklab,var(--color-bg-base)10%,transparent)}}.tooltip-content .dark\:\[\.tooltip-content_\&\]\:text-\[var\(--color-bg-base\)\]:where([data-theme=dark],[data-theme=dark] *,[data-theme=dark-parchment],[data-theme=dark-parchment] *){color:var(--color-bg-base)}}:root{--config-spacing-unit:4px;--config-spacing-0:0;--config-spacing-px:1px;--config-spacing-0\.5:2px;--config-spacing-1:4px;--config-spacing-1\.5:6px;--config-spacing-2:8px;--config-spacing-2\.5:10px;--config-spacing-3:12px;--config-spacing-3\.5:14px;--config-spacing-4:16px;--config-spacing-5:20px;--config-spacing-6:24px;--config-spacing-7:28px;--config-spacing-8:32px;--config-spacing-9:36px;--config-spacing-10:40px;--config-spacing-11:44px;--config-spacing-12:48px;--config-spacing-14:56px;--config-spacing-16:64px;--config-spacing-20:80px;--config-spacing-24:96px;--config-spacing-28:112px;--config-spacing-32:128px;--config-spacing-36:144px;--config-spacing-40:160px;--config-spacing-44:176px;--config-spacing-48:192px;--config-spacing-52:208px;--config-spacing-56:224px;--config-spacing-60:240px;--config-spacing-64:256px;--config-spacing-72:288px;--config-spacing-80:320px;--config-spacing-96:384px;--config-radius-none:0;--config-radius-sm:4px;--config-radius-default:6px;--config-radius-md:6px;--config-radius-lg:8px;--config-radius-xl:12px;--config-radius-2xl:16px;--config-radius-3xl:24px;--config-radius-full:9999px;--config-font-size-xs:12px;--config-font-size-xs-lh:16px;--config-font-size-sm:14px;--config-font-size-sm-lh:20px;--config-font-size-base:14px;--config-font-size-base-lh:20px;--config-font-size-lg:16px;--config-font-size-lg-lh:24px;--config-font-size-xl:18px;--config-font-size-xl-lh:24px;--config-font-size-2xl:20px;--config-font-size-2xl-lh:24px;--config-font-size-3xl:24px;--config-font-size-3xl-lh:28px;--config-font-size-4xl:30px;--config-font-size-4xl-lh:32px;--config-font-size-5xl:36px;--config-font-size-5xl-lh:36px;--config-font-size-6xl:48px;--config-font-size-6xl-lh:1;--config-font-size-7xl:60px;--config-font-size-7xl-lh:1;--config-font-size-8xl:72px;--config-font-size-8xl-lh:1;--config-font-size-9xl:96px;--config-font-size-9xl-lh:1;--config-motion-duration-fast:.15s;--config-motion-duration-base:.2s;--config-motion-duration-slow:.3s;--config-motion-ease-standard:cubic-bezier(.16,1,.3,1);--config-motion-ease-emphasized:cubic-bezier(.2,.8,.2,1);--config-motion-ease-out:cubic-bezier(0,0,.2,1);--config-font-sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--config-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}:root,[data-style=neutral]{--spacing:var(--config-spacing-1);--spacing-0:var(--config-spacing-0);--spacing-px:var(--config-spacing-px);--spacing-0\.5:var(--config-spacing-0\.5);--spacing-1:var(--config-spacing-1);--spacing-1\.5:var(--config-spacing-1\.5);--spacing-2:var(--config-spacing-2);--spacing-2\.5:var(--config-spacing-2\.5);--spacing-3:var(--config-spacing-3);--spacing-3\.5:var(--config-spacing-3\.5);--spacing-4:var(--config-spacing-4);--spacing-5:var(--config-spacing-5);--spacing-6:var(--config-spacing-6);--spacing-7:var(--config-spacing-7);--spacing-8:var(--config-spacing-8);--spacing-9:var(--config-spacing-9);--spacing-10:var(--config-spacing-10);--spacing-11:var(--config-spacing-11);--spacing-12:var(--config-spacing-12);--spacing-14:var(--config-spacing-14);--spacing-16:var(--config-spacing-16);--spacing-20:var(--config-spacing-20);--spacing-24:var(--config-spacing-24);--spacing-28:var(--config-spacing-28);--spacing-32:var(--config-spacing-32);--spacing-36:var(--config-spacing-36);--spacing-40:var(--config-spacing-40);--spacing-44:var(--config-spacing-44);--spacing-48:var(--config-spacing-48);--spacing-52:var(--config-spacing-52);--spacing-56:var(--config-spacing-56);--spacing-60:var(--config-spacing-60);--spacing-64:var(--config-spacing-64);--spacing-72:var(--config-spacing-72);--spacing-80:var(--config-spacing-80);--spacing-96:var(--config-spacing-96);--radius-none:var(--config-radius-none);--radius-sm:var(--config-radius-sm);--radius-DEFAULT:var(--config-radius-default);--radius-md:var(--config-radius-md);--radius-lg:var(--config-radius-lg);--radius-xl:var(--config-radius-xl);--radius-2xl:var(--config-radius-2xl);--radius-3xl:var(--config-radius-3xl);--radius-full:var(--config-radius-full);--radius:var(--radius-DEFAULT);--font-size-xs:var(--config-font-size-xs);--font-size-xs--line-height:var(--config-font-size-xs-lh);--font-size-sm:var(--config-font-size-sm);--font-size-sm--line-height:var(--config-font-size-sm-lh);--font-size-base:var(--config-font-size-base);--font-size-base--line-height:var(--config-font-size-base-lh);--font-size-lg:var(--config-font-size-lg);--font-size-lg--line-height:var(--config-font-size-lg-lh);--font-size-xl:var(--config-font-size-xl);--font-size-xl--line-height:var(--config-font-size-xl-lh);--font-size-2xl:var(--config-font-size-2xl);--font-size-2xl--line-height:var(--config-font-size-2xl-lh);--font-size-3xl:var(--config-font-size-3xl);--font-size-3xl--line-height:var(--config-font-size-3xl-lh);--font-size-4xl:var(--config-font-size-4xl);--font-size-4xl--line-height:var(--config-font-size-4xl-lh);--font-size-5xl:var(--config-font-size-5xl);--font-size-5xl--line-height:var(--config-font-size-5xl-lh);--font-size-6xl:var(--config-font-size-6xl);--font-size-6xl--line-height:var(--config-font-size-6xl-lh);--font-size-7xl:var(--config-font-size-7xl);--font-size-7xl--line-height:var(--config-font-size-7xl-lh);--font-size-8xl:var(--config-font-size-8xl);--font-size-8xl--line-height:var(--config-font-size-8xl-lh);--font-size-9xl:var(--config-font-size-9xl);--font-size-9xl--line-height:var(--config-font-size-9xl-lh);--motion-duration-fast:var(--config-motion-duration-fast);--motion-duration-base:var(--config-motion-duration-base);--motion-duration-slow:var(--config-motion-duration-slow);--motion-ease-standard:var(--config-motion-ease-standard);--motion-ease-emphasized:var(--config-motion-ease-emphasized);--motion-ease-out:var(--config-motion-ease-out)}[data-style=compact]{--spacing-3:10px;--spacing-4:14px;--spacing-9:32px;--spacing-11:40px;--radius-xl:10px;--radius-2xl:12px;--radius-3xl:16px;--font-size-sm:12px;--font-size-lg:14px;--font-size-xl:16px;--font-size-2xl:18px;--font-size-3xl:22px;--font-size-4xl:28px;--font-size-5xl:34px;--font-size-6xl:44px;--font-size-7xl:56px;--font-size-8xl:64px;--font-size-9xl:88px}[data-style=soft]{--radius-sm:8px;--radius-DEFAULT:12px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-3xl:28px;--radius:var(--radius-DEFAULT)}[data-style=sharp]{--spacing-3:10px;--spacing-4:14px;--spacing-9:32px;--spacing-11:40px;--radius-sm:0;--radius-DEFAULT:0;--radius-md:0;--radius-lg:0;--radius-xl:0;--radius-2xl:0;--radius-3xl:0;--radius-full:0;--radius:0;--font-sans:var(--config-font-mono);font-family:var(--font-sans);--font-size-sm:12px;--font-size-lg:14px;--font-size-xl:16px;--font-size-2xl:18px;--font-size-3xl:22px;--font-size-4xl:28px;--font-size-5xl:34px;--font-size-6xl:44px;--font-size-7xl:56px;--font-size-8xl:64px;--font-size-9xl:88px}[data-style=dense]{--spacing-2:6px;--spacing-2\.5:8px;--spacing-3:8px;--spacing-3\.5:10px;--spacing-4:12px;--spacing-5:16px;--spacing-6:20px;--spacing-7:20px;--spacing-8:28px;--spacing-9:28px;--spacing-10:32px;--spacing-11:32px;--spacing-12:40px;--spacing-14:48px;--spacing-16:56px;--spacing-20:64px;--spacing-24:80px;--spacing-28:96px;--spacing-32:112px;--spacing-36:128px;--spacing-40:144px;--spacing-44:160px;--spacing-48:176px;--spacing-52:192px;--spacing-56:208px;--spacing-60:224px;--spacing-64:240px;--spacing-72:272px;--spacing-80:304px;--spacing-96:368px;--radius-sm:2px;--radius-DEFAULT:4px;--radius-md:4px;--radius-lg:6px;--radius-xl:6px;--radius-2xl:8px;--radius-3xl:8px;--radius:var(--radius-DEFAULT);--chat-status-overlap:4px;--font-size-base:12px;--font-size-lg:14px;--font-size-xl:14px;--font-size-2xl:16px;--font-size-3xl:18px;--font-size-4xl:22px;--font-size-5xl:28px;--font-size-6xl:36px;--font-size-7xl:44px;--font-size-8xl:56px;--font-size-9xl:72px}.leading-xs{line-height:var(--font-size-xs--line-height)}.leading-sm{line-height:var(--font-size-sm--line-height)}.leading-base{line-height:var(--font-size-base--line-height)}.leading-lg{line-height:var(--font-size-lg--line-height)}.leading-xl{line-height:var(--font-size-xl--line-height)}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes accordion-right{0%{width:0}to{width:var(--radix-accordion-content-width)}}@keyframes accordion-left{0%{width:var(--radix-accordion-content-width)}to{width:0}}@font-face{font-family:Seti;src:url(/qoder-seti.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}.font-seti{font-family:Seti,sans-serif}:root,[data-theme=light]{color-scheme:light;--token-color-primary:#8ee5a1;--token-color-primary-hover:#73cd94;--token-color-primary-active:#5cb870;--token-color-primary-bg:#f1faf3;--token-color-primary-bg-hover:#e6f7ec;--token-color-primary-border:#cdefd9;--token-color-primary-border-hover:#b3e6c7;--token-color-primary-text:#141414;--token-color-primary-text-hover:#73cd94;--token-color-primary-text-active:#5cb870;--token-color-text-on-primary:#fdfdfd;--token-color-text:#141414;--token-color-text-secondary:#636261;--token-color-text-tertiary:#838280;--token-color-text-quaternary:#8e8c8b;--token-color-text-base:#0f0d0c;--token-color-border:#bcbbba;--token-color-border-secondary:#ddd;--token-color-border-tertiary:#e6e6e6;--token-color-fill:#dfdfdf;--token-color-fill-secondary:#efefef;--token-color-fill-tertiary:#f9f9f9;--token-color-fill-quaternary:#fcfcfc;--token-color-fill-disable:#dad9d8;--token-color-bg-container:#fff;--token-color-bg-elevated:#f9f9f9;--token-color-bg-layout:#fdfdfd;--token-color-bg-spotlight:#fafafa;--token-color-bg-mask:#00000080;--token-color-mask-shimmer-weak:#0000004d;--token-color-mask-shimmer-strong:#000c;--token-color-mask-shimmer-full:#000;--token-color-bg-base:#fff;--token-color-bg-highlight:#080807;--token-color-bg-highlight-hover:#1a1a1a;--token-color-shadow-primary:#00000005;--token-color-shadow-secondary:#00000009;--token-color-shadow-tertiary:#0000000e;--token-color-shadow-quaternary:#00000013;--token-color-link:#5cb870;--token-color-error:#ff4d4f;--token-color-error-hover:#ff7875;--token-color-error-bg:#fff2f0;--token-color-error-bg-hover:#ffe4e0;--token-color-error-border:#ffccc7;--token-color-info:#0b83f1;--token-color-info-hover:#5ebcff;--token-color-info-bg:#e6f7ff;--token-color-info-bg-hover:#d0efff;--token-color-info-border:#b0e3ff;--token-color-success:#73cd94;--token-color-success-hover:#8ee5a1;--token-color-success-bg:#f1faf3;--token-color-success-bg-hover:#e6f7ec;--token-color-success-border:#cdefd9;--token-color-warning:#faad14;--token-color-warning-hover:#ffd666;--token-color-warning-bg:#fffbe6;--token-color-warning-bg-hover:#fff3cf;--token-color-warning-border:#ffe5bf;--token-color-pink:#ec4899;--token-color-pink-bg:#f9e3f3;--token-color-pink-bg-hover:#f5d4eb;--token-color-purple:#615ced;--token-color-purple-bg:#ebe9ff;--token-color-purple-bg-hover:#dddaff;--token-color-yellow:#fac414;--token-color-yellow-bg:#fff3cf;--token-color-yellow-bg-hover:#ffe9a8;--token-color-orange:#fa8125;--token-color-orange-bg:#ffefde;--token-color-orange-bg-hover:#ffe3c7;--token-color-teal:#14b8a6;--token-color-teal-bg:#def7f1;--token-color-teal-bg-hover:#caf0e8;--token-color-blue:#0090ff;--token-color-blue-bg:#deedff;--token-color-blue-bg-hover:#c8e3ff;--token-color-mauve:#8e8c99;--token-color-mauve-bg:#f1f2f3;--token-color-mauve-bg-hover:#e4e5e7;--token-color-slate:#404040;--token-color-slate-bg:#fafafa;--token-color-slate-bg-hover:#efefef;--token-color-lavender:#b99dff;--token-color-lavender-bg:#ece4ff;--token-color-lavender-bg-hover:#e0d4ff;--token-color-sage:#6bb394;--token-color-sage-bg:#eff3f2;--token-color-sage-bg-hover:#e2eae8;--token-color-input:var(--token-color-border-tertiary);--token-color-ring:var(--token-color-primary-border);--token-color-popover:var(--token-color-bg-container);--token-color-popover-foreground:var(--token-color-text);--token-color-accent:var(--token-color-fill-secondary);--token-color-accent-foreground:var(--token-color-text);--token-color-muted:var(--token-color-fill-tertiary);--token-color-muted-foreground:var(--token-color-text-secondary);--token-color-background:var(--token-color-bg-base);--token-color-diff-insert:#a6dcba;--token-color-diff-insert-bg:#d9ebe0;--token-color-diff-remove:#fc6b83;--token-color-diff-remove-bg:#e3d1d5}[data-theme=dark]{color-scheme:dark;--token-color-primary:#8ee5a1;--token-color-primary-hover:#9be6b3;--token-color-primary-active:#73cd94;--token-color-primary-bg:#14261c;--token-color-primary-bg-hover:#1a2e21;--token-color-primary-border:#335942;--token-color-primary-border-hover:#407354;--token-color-primary-text:#8ee5a1;--token-color-primary-text-hover:#9be6b3;--token-color-primary-text-active:#73cd94;--token-color-text-on-primary:#0d0d0d;--token-color-text:#faf9f5;--token-color-text-secondary:#9c9d9e;--token-color-text-tertiary:#7c7d7f;--token-color-text-quaternary:#717374;--token-color-text-base:#f0f2f3;--token-color-border:#404040;--token-color-border-secondary:#2a2a2a;--token-color-border-tertiary:#262626;--token-color-fill:#454545;--token-color-fill-secondary:#363636;--token-color-fill-tertiary:#1a1a1a;--token-color-fill-quaternary:#1a1a1a;--token-color-fill-disable:#525252;--token-color-bg-container:#0d0d0d;--token-color-bg-elevated:#080808;--token-color-bg-layout:#050505;--token-color-bg-spotlight:#080808;--token-color-bg-mask:#000000b3;--token-color-mask-shimmer-weak:#0000004d;--token-color-mask-shimmer-strong:#000c;--token-color-mask-shimmer-full:#000;--token-color-bg-base:#000;--token-color-bg-highlight:#d0d0d0;--token-color-bg-highlight-hover:#e0e0e0;--token-color-link:#8ee5a1;--token-color-error:#ff4d4f;--token-color-error-hover:#ff7875;--token-color-error-bg:#4a1a1b;--token-color-error-bg-hover:#5c2224;--token-color-error-border:#663338;--token-color-info:#0b83f1;--token-color-info-hover:#5ebcff;--token-color-info-bg:#19080e;--token-color-info-bg-hover:#220a12;--token-color-info-border:#4f1c0e;--token-color-success:#73cd94;--token-color-success-hover:#8ee5a1;--token-color-success-bg:#14261c;--token-color-success-bg-hover:#1a2e21;--token-color-success-border:#335942;--token-color-warning:#faad14;--token-color-warning-hover:#ffd666;--token-color-warning-bg:#4a4019;--token-color-warning-bg-hover:#5c4e1f;--token-color-warning-border:#664d19;--token-color-pink:#ec4899;--token-color-pink-bg:#4a1c31;--token-color-pink-bg-hover:#5c2440;--token-color-purple:#615ced;--token-color-purple-bg:#14160e;--token-color-purple-bg-hover:#1c1e14;--token-color-yellow:#fac414;--token-color-yellow-bg:#4a4030;--token-color-yellow-bg-hover:#5c5040;--token-color-orange:#fa8125;--token-color-orange-bg:#4a1021;--token-color-orange-bg-hover:#5c1429;--token-color-teal:#14b8a6;--token-color-teal-bg:#21080e;--token-color-teal-bg-hover:#2e0e14;--token-color-blue:#0090ff;--token-color-blue-bg:#21120e;--token-color-blue-bg-hover:#2e1a14;--token-color-mauve:#8e8c99;--token-color-mauve-bg:#0e0d0c;--token-color-mauve-bg-hover:#1a1818;--token-color-slate:#363636;--token-color-slate-bg:#1a1a1a;--token-color-slate-bg-hover:#262626;--token-color-lavender:#b99dff;--token-color-lavender-bg:#131b0e;--token-color-lavender-bg-hover:#1c2614;--token-color-sage:#6bb394;--token-color-sage-bg:#100c0d;--token-color-sage-bg-hover:#1a1418;--token-color-input:var(--token-color-border-tertiary);--token-color-ring:var(--token-color-primary-border);--token-color-popover:var(--token-color-bg-container);--token-color-popover-foreground:var(--token-color-text);--token-color-accent:var(--token-color-fill-secondary);--token-color-accent-foreground:var(--token-color-text);--token-color-muted:var(--token-color-fill-tertiary);--token-color-muted-foreground:var(--token-color-text-secondary);--token-color-background:var(--token-color-bg-base);--token-color-diff-insert:#73cd94;--token-color-diff-insert-bg:#14261c;--token-color-diff-remove:#fc6b83;--token-color-diff-remove-bg:#1c2e2a}[data-theme=dark] .SendButton-send{background-color:var(--token-color-success)}[data-theme=dark] .SendButton-send:hover:not(:disabled){background-color:var(--token-color-success-hover)}[data-theme=light-parchment]{--token-color-primary:#202116;--token-color-primary-hover:#3d3930;--token-color-primary-active:#3d3930;--token-color-primary-bg:#f0ede7;--token-color-primary-bg-hover:#e8e4dc;--token-color-primary-border:#d4cfc6;--token-color-primary-border-hover:#c4beb4;--token-color-primary-text:#202116;--token-color-primary-text-hover:#3d3930;--token-color-primary-text-active:#3d3930;--token-color-text-on-primary:#faf9f6;--token-color-text:#202116;--token-color-text-secondary:#4a463c;--token-color-text-tertiary:#6b665c;--token-color-text-quaternary:#8a857a;--token-color-text-base:#202116;--token-color-border:#d4cfc6;--token-color-border-secondary:#e5e1d9;--token-color-border-tertiary:#ede9e2;--token-color-fill:#f5f0e7;--token-color-fill-secondary:#ede8e0;--token-color-fill-tertiary:#f7f4ef;--token-color-fill-quaternary:#faf9f6;--token-color-fill-disable:#e0dcd4;--token-color-bg-container:#faf9f6;--token-color-bg-elevated:#f7f4ef;--token-color-bg-layout:#fdfcfa;--token-color-bg-spotlight:#faf9f6;--token-color-bg-mask:#00000080;--token-color-mask-shimmer-weak:#0000004d;--token-color-mask-shimmer-strong:#000c;--token-color-mask-shimmer-full:#000;--token-color-bg-base:#fff;--token-color-bg-highlight:#202116;--token-color-bg-highlight-hover:#2d2a22;--token-color-link:#5b4a3a;--token-color-error:#ff4d4f;--token-color-error-hover:#ff7875;--token-color-error-bg:#fff2f0;--token-color-error-bg-hover:#fff1f0;--token-color-error-border:#ffccc7;--token-color-info:#0b83f1;--token-color-info-hover:#5ebcff;--token-color-info-bg:#e6f7ff;--token-color-info-bg-hover:#d0efff;--token-color-info-border:#b0e3ff;--token-color-success:#5a7a5e;--token-color-success-hover:#6b8f71;--token-color-success-bg:#eef2ed;--token-color-success-bg-hover:#e4ebe2;--token-color-success-border:#c5d4c4;--token-color-warning:#faad14;--token-color-warning-hover:#ffd666;--token-color-warning-bg:#fffbe6;--token-color-warning-bg-hover:#fff3cf;--token-color-warning-border:#ffe5bf;--token-color-pink:#ec4899;--token-color-pink-bg:#f9e3f3;--token-color-pink-bg-hover:#f5d4eb;--token-color-purple:#615ced;--token-color-purple-bg:#ebe9ff;--token-color-purple-bg-hover:#dddaff;--token-color-yellow:#fac414;--token-color-yellow-bg:#fff3cf;--token-color-yellow-bg-hover:#ffe9a8;--token-color-orange:#fa8125;--token-color-orange-bg:#ffefde;--token-color-orange-bg-hover:#ffe3c7;--token-color-teal:#14b8a6;--token-color-teal-bg:#def7f1;--token-color-teal-bg-hover:#caf0e8;--token-color-blue:#0090ff;--token-color-blue-bg:#deedff;--token-color-blue-bg-hover:#c8e3ff;--token-color-mauve:#8e8c99;--token-color-mauve-bg:#f1f2f3;--token-color-mauve-bg-hover:#e4e5e7;--token-color-slate:#1e293b;--token-color-slate-bg:#e2e8f0;--token-color-slate-bg-hover:#efefef;--token-color-lavender:#b99dff;--token-color-lavender-bg:#ece4ff;--token-color-lavender-bg-hover:#e0d4ff;--token-color-sage:#6bb394;--token-color-sage-bg:#eff3f2;--token-color-sage-bg-hover:#e2eae8;--token-color-input:var(--token-color-border-tertiary);--token-color-ring:var(--token-color-primary-border);--token-color-popover:var(--token-color-bg-container);--token-color-popover-foreground:var(--token-color-text);--token-color-accent:var(--token-color-fill-secondary);--token-color-accent-foreground:var(--token-color-text);--token-color-muted:var(--token-color-fill-tertiary);--token-color-muted-foreground:var(--token-color-text-secondary);--token-color-background:var(--token-color-bg-base);--token-color-diff-insert:#a6dcba;--token-color-diff-insert-bg:#d9ebe0;--token-color-diff-remove:#fc6b83;--token-color-diff-remove-bg:#e3d1d5}[data-theme=dark-parchment]{color-scheme:dark;--token-color-primary:#c4b8a8;--token-color-primary-hover:#d4c9bc;--token-color-primary-active:#a89888;--token-color-primary-bg:#2d2a22;--token-color-primary-bg-hover:#363228;--token-color-primary-border:#4a463c;--token-color-primary-border-hover:#5b564c;--token-color-primary-text:#faf9f6;--token-color-primary-text-hover:#d4c9bc;--token-color-primary-text-active:#c4b8a8;--token-color-text-on-primary:#1a1814;--token-color-text:#faf9f6;--token-color-text-secondary:#c9c4b8;--token-color-text-tertiary:#a8a296;--token-color-text-quaternary:#8a857a;--token-color-text-base:#f0ede7;--token-color-border:#4a463c;--token-color-border-secondary:#3d3930;--token-color-border-tertiary:#2d2a22;--token-color-fill:#3d3930;--token-color-fill-secondary:#363228;--token-color-fill-tertiary:#252220;--token-color-fill-quaternary:#1e1c18;--token-color-fill-disable:#4a463c;--token-color-bg-container:#1e1c18;--token-color-bg-elevated:#252220;--token-color-bg-layout:#1a1814;--token-color-bg-spotlight:#252220;--token-color-bg-mask:#0009;--token-color-mask-shimmer-weak:#0000004d;--token-color-mask-shimmer-strong:#000c;--token-color-mask-shimmer-full:#000;--token-color-bg-base:#1a1814;--token-color-bg-highlight:#c9c4b8;--token-color-bg-highlight-hover:#d4c9bc;--token-color-link:#c4b8a8;--token-color-error:#ff6b6b;--token-color-error-hover:#ff8787;--token-color-error-bg:#4a2a2a;--token-color-error-bg-hover:#5c3535;--token-color-error-border:#663338;--token-color-info:#5ebcff;--token-color-info-hover:#7ec9ff;--token-color-info-bg:#1a2838;--token-color-info-bg-hover:#223244;--token-color-info-border:#2a4050;--token-color-success:#6b8f71;--token-color-success-hover:#7fa385;--token-color-success-bg:#1c2a1e;--token-color-success-bg-hover:#243224;--token-color-success-border:#3d4a3c;--token-color-warning:#e5a814;--token-color-warning-hover:#f5c024;--token-color-warning-bg:#4a4019;--token-color-warning-bg-hover:#5c4e1f;--token-color-warning-border:#664d19;--token-color-pink:#ec4899;--token-color-pink-bg:#4a2a38;--token-color-pink-bg-hover:#5c3540;--token-color-purple:#8b7bed;--token-color-purple-bg:#2a2238;--token-color-purple-bg-hover:#362e44;--token-color-yellow:#e5c04a;--token-color-yellow-bg:#4a4030;--token-color-yellow-bg-hover:#5c5040;--token-color-orange:#e07830;--token-color-orange-bg:#4a3020;--token-color-orange-bg-hover:#5c3a28;--token-color-teal:#14b8a6;--token-color-teal-bg:#1a3230;--token-color-teal-bg-hover:#243a38;--token-color-blue:#0090ff;--token-color-blue-bg:#1a2838;--token-color-blue-bg-hover:#223244;--token-color-mauve:#9c9aa8;--token-color-mauve-bg:#2a2830;--token-color-mauve-bg-hover:#363438;--token-color-slate:#5c5a52;--token-color-slate-bg:#2d2a22;--token-color-slate-bg-hover:#363228;--token-color-lavender:#b99dff;--token-color-lavender-bg:#2a2238;--token-color-lavender-bg-hover:#362e44;--token-color-sage:#6bb394;--token-color-sage-bg:#1c2a24;--token-color-sage-bg-hover:#243228;--token-color-input:var(--token-color-border-tertiary);--token-color-ring:var(--token-color-primary-border);--token-color-popover:var(--token-color-bg-container);--token-color-popover-foreground:var(--token-color-text);--token-color-accent:var(--token-color-fill-secondary);--token-color-accent-foreground:var(--token-color-text);--token-color-muted:var(--token-color-fill-tertiary);--token-color-muted-foreground:var(--token-color-text-secondary);--token-color-background:var(--token-color-bg-base);--token-color-diff-insert:#6b8f71;--token-color-diff-insert-bg:#1c2a1e;--token-color-diff-remove:#fc6b83;--token-color-diff-remove-bg:#2a1c1e}[data-theme=dark-parchment] .SendButton-send{background-color:var(--token-color-success)}[data-theme=dark-parchment] .SendButton-send:hover:not(:disabled){background-color:var(--token-color-success-hover)}.scrollbar-auto::-webkit-scrollbar{width:6px;height:6px}.scrollbar-auto::-webkit-scrollbar-track{background:0 0}.scrollbar-auto::-webkit-scrollbar-thumb{min-height:var(--spacing-8);background-color:#0000;border-radius:3px;transition:background-color .2s}.scrollbar-auto:hover::-webkit-scrollbar-thumb{background-color:var(--color-fill-secondary)}.scrollbar-auto::-webkit-scrollbar-corner{background:0 0}.scrollbar-auto{scrollbar-width:thin}@supports (scrollbar-width:thin){.scrollbar-auto{scrollbar-color:transparent transparent}.scrollbar-auto:hover{scrollbar-color:var(--color-fill-secondary)transparent}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,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-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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)}}@keyframes pulse{50%{opacity:.5}}
@@ -1,305 +0,0 @@
1
- # CLAUDE.md - Tokens 设计令牌模块
2
-
3
- > 代码是机器相,文档是语义相,两相必须同构。
4
- > 修改代码 → 检查 L3 → 检查 L2 → 检查 L1
5
-
6
- ---
7
-
8
- ## 模块概述
9
-
10
- **tokens** 是设计系统的核心,定义双维度主题:布局风格 + 颜色主题。
11
-
12
- ---
13
-
14
- ## 目录结构
15
-
16
- ```
17
- tokens/
18
- ├── index.css # 统一入口 (推荐)
19
- ├── scale.css # [DEPRECATED] 向后兼容入口
20
- ├── scale/ # 布局风格 token (data-style)
21
- │ ├── config.css # 可配置基础变量 (用户可覆盖)
22
- │ ├── computed.css # 映射到实际变量
23
- │ ├── index.css # scale 统一入口
24
- │ └── presets/ # 预设风格
25
- │ ├── compact.css # 紧凑风格
26
- │ ├── soft.css # 柔和风格
27
- │ ├── sharp.css # 锐利风格
28
- │ └── dense.css # 密集风格
29
- ├── theme-base.css # @theme 映射 + 动画 + 公共样式
30
- ├── theme.css # [DEPRECATED] 向后兼容入口
31
- ├── scrollbar-utility.css # 滚动条工具样式
32
- └── themes/ # 颜色主题文件 (可按需引入)
33
- ├── light-qoder.css # Qoder 亮色 (默认)
34
- ├── dark-qoder.css # Qoder 暗色
35
- ├── light-parchment.css # 羊皮纸亮色
36
- └── dark-parchment.css # 羊皮纸暗色
37
- ```
38
-
39
- ---
40
-
41
- ## 双维度主题系统
42
-
43
- ### 维度 1: 布局风格 (data-style)
44
-
45
- | 风格 | 描述 | Spacing | Radius | Font Size |
46
- |------|------|---------|--------|-----------|
47
- | `neutral` | 平衡的标准 | 100% | 100% | 100% |
48
- | `compact` | 优化效率 | 75% | 67% | -1px |
49
- | `soft` | 舒适至上 | 150% | 150% | +10% |
50
- | `sharp` | 几何精度 | 100% | 0 | 100% |
51
- | `dense` | 信息密集 | 50% | 50% | -2px |
52
-
53
- ### 维度 2: 颜色主题 (data-theme)
54
-
55
- **主题**与**亮暗色**区分:`data-theme` 为颜色主题的机制(取值为主题名);**亮色**与**暗色**为内置两套主题(`light` / `dark`),与布局风格 (data-style) 独立,可扩展自定义主题。
56
-
57
- | 主题 | 描述 |
58
- |------|------|
59
- | `light` | 亮色(内置) |
60
- | `dark` | 暗色(内置) |
61
- | *自定义* | 可扩展 |
62
-
63
- ---
64
-
65
- ## scale/ - 布局风格令牌
66
-
67
- ### 配置化架构
68
-
69
- scale 模块采用双层设计,支持用户自定义配置:
70
-
71
- 1. **config.css** - 定义可覆盖的基础变量 (`--config-*`)
72
- 2. **computed.css** - 将配置映射到实际变量 (`--spacing-*`, `--radius-*`)
73
- 3. **presets/** - 预设风格,覆盖部分配置
74
-
75
- ### 用户自定义配置
76
-
77
- ```css
78
- /* 只引入配置层 + 计算层,不引入预设 */
79
- @import "./tokens/scale/config.css";
80
- @import "./tokens/scale/computed.css";
81
-
82
- /* 覆盖配置 */
83
- :root {
84
- --config-radius-default: 10px; /* 自定义默认圆角 */
85
- --config-spacing-4: 18px; /* 自定义间距 */
86
- --config-font-size-base: 16px; /* 自定义基础字号 */
87
- }
88
- ```
89
-
90
- ### 可配置变量列表
91
-
92
- | 类别 | 变量前缀 | 示例 |
93
- |------|---------|------|
94
- | 间距 | `--config-spacing-*` | `--config-spacing-4: 16px` |
95
- | 圆角 | `--config-radius-*` | `--config-radius-default: 6px` |
96
- | 字号 | `--config-font-size-*` | `--config-font-size-base: 14px` |
97
- | 动画 | `--config-motion-*` | `--config-motion-duration-base: 200ms` |
98
- | 字体 | `--config-font-*` | `--config-font-mono: ...` |
99
-
100
- ### 结构原则(只覆盖差异)
101
-
102
- - **:root / neutral**:完整基准 scale
103
- - **soft**:仅覆盖 `--radius`,继承 spacing 与 font
104
- - **compact 与 sharp**:共用同一 spacing + font 块,再分别补 radius(compact 有圆角,sharp 直角 + 等宽字体)
105
- - **dense**:独立完整 scale(与基准差异大,单独列出)
106
-
107
- ### Token 类别
108
-
109
- 1. **Spacing Scale**:`--spacing-0` 到 `--spacing-96`
110
- 2. **Radius Scale**:`--radius-none` 到 `--radius-full`
111
- 3. **Font Size Scale**:`--font-size-xs` 到 `--font-size-9xl`
112
-
113
- ### 按钮与 spacing 的搭配关系
114
-
115
- 按钮使用 `h-7/9/11` + `px-2/3/4`,各主题通过 scale 同时控制高度与左右 padding,使 **padding-x / height** 比例约在 0.28~0.36,视觉一致:
116
-
117
- - **neutral**:28/36/44 + 8/12/16 → 比例 ~0.29 / 0.33 / 0.36
118
- - **compact / sharp**:28/32/40 + 8/10/14 → 比例 ~0.29 / 0.31 / 0.35
119
- - **dense**:24/28/32 + 6/8/12 → 比例 ~0.25 / 0.29 / 0.375
120
-
121
- ### Tailwind 兼容
122
-
123
- 所有 token 直接映射到 Tailwind 类名:
124
-
125
- ```html
126
- <!-- 直接使用 Tailwind 类名 -->
127
- <div className="p-4 rounded-md text-base">
128
- ```
129
-
130
- ### 使用方式
131
-
132
- ```html
133
- <body data-style="soft">
134
- <!-- spacing-4 = 24px (150% of 16px) -->
135
- <!-- radius-md = 12px (150% of 6px) -->
136
- </body>
137
- ```
138
-
139
- ---
140
-
141
- ## theme-base.css - Tailwind 映射与公共样式
142
-
143
- 此文件定义 Token → Tailwind 的映射契约,不包含具体颜色值。
144
-
145
- ### 内容
146
-
147
- 1. **@custom-variant dark**:定义 dark 变体选择器
148
- 2. **@theme inline**:text/radius/spacing 映射(随 data-style 变化)
149
- 3. **@theme**:颜色变量映射 `--color-*: var(--token-color-*)`
150
- 4. **动画**:accordion-down/up/right/left
151
- 5. **字体**:Seti 图标字体
152
-
153
- ---
154
-
155
- ## themes/*.css - 颜色主题文件
156
-
157
- ### 命名与 @theme 无自引用
158
-
159
- 颜色「源」变量在 `:root` / `[data-theme="..."]` 中统一使用 **`--token-color-*`** 命名;`@theme` 块内仅做**单向映射** `--color-*: var(--token-color-*)`,避免 `--color-xxx: var(--color-xxx)` 自循环导致按需引入(CLI init/add)时取不到值。
160
-
161
- - **组件与样式**:继续使用公开 API `var(--color-primary)` 等,由 @theme 解析到 `--token-color-*`。
162
- - **扩展新主题**:在主题块内定义 `--token-color-*`,不要在该主题块内再定义 `--color-*`。
163
-
164
- ### Token 类别
165
-
166
- 1. **Primary**:主色调
167
- 2. **Text**:文本色(primary/secondary/tertiary/quaternary/base)
168
- 3. **Border**:边框色(primary/secondary/tertiary)
169
- 4. **Fill**:填充色(primary/secondary/tertiary/quaternary/disable)
170
- 5. **Background**:背景色(container/elevated/layout/spotlight/mask/base/highlight)
171
- 6. **Semantic**:语义色(link/error/info/success/warning)
172
- 7. **Accent**:强调色(pink/purple/yellow/orange/teal/blue/mauve/slate/lavender/sage)
173
- 8. **Diff**:diff 颜色(insert/remove)
174
-
175
- ### 扩展新主题
176
-
177
- **方式 1:创建独立文件**
178
-
179
- ```css
180
- /* my-custom-theme.css */
181
- [data-theme="my-theme"] {
182
- --token-color-primary: #3B82F6;
183
- --token-color-primary-hover: #2563EB;
184
- /* ... 覆盖需要的颜色变量 */
185
- }
186
- ```
187
-
188
- 用户引入:
189
- ```css
190
- @import "./tokens/scale.css";
191
- @import "./tokens/theme-base.css";
192
- @import "./my-custom-theme.css";
193
- ```
194
-
195
- **方式 2:添加到 themes/ 目录**
196
-
197
- 如果要作为内置主题,在 `themes/` 目录下创建新文件,并在 `index.css` 中添加引入。
198
-
199
- ---
200
-
201
- ## 引入方式
202
-
203
- ### 1. 全量引入(推荐)
204
-
205
- ```css
206
- @import "./tokens/index.css";
207
- ```
208
-
209
- ### 2. 按需引入
210
-
211
- ```css
212
- /* 只需要 light/dark 主题 */
213
- @import "./tokens/scale/index.css";
214
- @import "./tokens/theme-base.css";
215
- @import "./tokens/themes/light-qoder.css";
216
- @import "./tokens/themes/dark-qoder.css";
217
- ```
218
-
219
- ### 3. 自定义布局配置
220
-
221
- ```css
222
- /* 使用自定义布局配置 */
223
- @import "./tokens/scale/config.css";
224
- @import "./tokens/scale/computed.css";
225
- @import "./tokens/theme-base.css";
226
- @import "./tokens/themes/light-qoder.css";
227
-
228
- :root {
229
- --config-radius-default: 10px; /* 覆盖配置 */
230
- }
231
- ```
232
-
233
- ### 4. 自定义颜色主题
234
-
235
- ```css
236
- /* 使用自定义颜色主题 */
237
- @import "./tokens/scale/index.css";
238
- @import "./tokens/theme-base.css";
239
- @import "./my-brand-theme.css";
240
- ```
241
-
242
- ---
243
-
244
- ## 使用规范
245
-
246
- ### 组件中使用 Token
247
-
248
- ```tsx
249
- // ✅ 正确 - 使用 CSS 变量
250
- <div className="bg-[var(--color-primary)] text-[var(--color-text)]" />
251
-
252
- // ❌ 错误 - 硬编码颜色
253
- <div className="bg-[#1890FF] text-[#333]" />
254
- ```
255
-
256
- ### Tailwind v4 @theme 映射
257
-
258
- `theme.css` 末尾的 `@theme` 块将 CSS 变量映射到 Tailwind 4 的原生 token 系统,支持:
259
-
260
- ```tsx
261
- // Tailwind 4 原生支持
262
- <div className="bg-primary text-text" />
263
- ```
264
-
265
- ### 构建与消费模式
266
-
267
- Token 文件同时服务两种消费模式:
268
-
269
- | 模式 | token 文件作用 | 消费者 Tailwind 要求 |
270
- |------|---------------|---------------------|
271
- | **NPM 预编译**(当前) | `@tailwindcss/cli` 读取 → 编译进 `dist/qoder-design.css` | 不需要 |
272
- | **按需引入**(CLI 复制源码) | 消费者 `@import` token 文件进自己的 CSS | 需要 Tailwind 4 |
273
-
274
- `@theme` 块是两种模式的共用桥梁:NPM 模式下编译进预编译 CSS,按需引入模式下由消费者的 Tailwind 处理。
275
-
276
- ---
277
-
278
- ## L3 协议
279
-
280
- ### scale/
281
- - **config.css**:定义可覆盖的 `--config-*` 变量
282
- - **computed.css**:映射 `--config-*` 到实际变量
283
- - **presets/**:预设风格,只覆盖差异部分
284
- - 新增风格需遵循 spacing/radius/font-size 三类完整性
285
-
286
- ### theme-base.css
287
- - 定义 @theme 映射,不包含具体颜色值
288
- - 新增 Tailwind 映射时确保双向一致
289
-
290
- ### themes/*.css
291
- - 每个主题独立文件,便于按需引入
292
- - 扩展主题时必须覆盖完整颜色类别
293
- - 修改颜色值需确保对比度符合无障碍标准
294
-
295
- ---
296
-
297
- ## 开发检查清单
298
-
299
- - [ ] 新增风格时更新 scale/presets/
300
- - [ ] 新增配置项时更新 scale/config.css 和 scale/computed.css
301
- - [ ] 新增颜色主题时创建 themes/*.css 并更新 index.css
302
- - [ ] Token 命名遵循 `--token-color-{name}` 格式(颜色)
303
- - [ ] Token 命名遵循 `--config-{category}-{name}` 格式(布局配置)
304
- - [ ] 测试多主题切换
305
- - [ ] L2 文档已更新(此文件)