@leonardaustin/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +44 -0
  3. package/dist/components/app-shell/AppShell.d.ts +38 -0
  4. package/dist/components/app-shell/AppShell.d.ts.map +1 -0
  5. package/dist/components/app-shell/AuthLayout.d.ts +7 -0
  6. package/dist/components/app-shell/AuthLayout.d.ts.map +1 -0
  7. package/dist/components/app-shell/BackLink.d.ts +10 -0
  8. package/dist/components/app-shell/BackLink.d.ts.map +1 -0
  9. package/dist/components/app-shell/BottomNav.d.ts +10 -0
  10. package/dist/components/app-shell/BottomNav.d.ts.map +1 -0
  11. package/dist/components/app-shell/Breadcrumbs.d.ts +9 -0
  12. package/dist/components/app-shell/Breadcrumbs.d.ts.map +1 -0
  13. package/dist/components/app-shell/CommandPalette.d.ts +19 -0
  14. package/dist/components/app-shell/CommandPalette.d.ts.map +1 -0
  15. package/dist/components/app-shell/MobileDrawer.d.ts +13 -0
  16. package/dist/components/app-shell/MobileDrawer.d.ts.map +1 -0
  17. package/dist/components/app-shell/Sidebar.d.ts +20 -0
  18. package/dist/components/app-shell/Sidebar.d.ts.map +1 -0
  19. package/dist/components/app-shell/TopBar.d.ts +15 -0
  20. package/dist/components/app-shell/TopBar.d.ts.map +1 -0
  21. package/dist/components/app-shell/commandPaletteEvents.d.ts +12 -0
  22. package/dist/components/app-shell/commandPaletteEvents.d.ts.map +1 -0
  23. package/dist/components/app-shell/navigation.d.ts +7 -0
  24. package/dist/components/app-shell/navigation.d.ts.map +1 -0
  25. package/dist/components/app-shell/types.d.ts +33 -0
  26. package/dist/components/app-shell/types.d.ts.map +1 -0
  27. package/dist/components/charts/AreaChart.d.ts +10 -0
  28. package/dist/components/charts/AreaChart.d.ts.map +1 -0
  29. package/dist/components/charts/BarChart.d.ts +10 -0
  30. package/dist/components/charts/BarChart.d.ts.map +1 -0
  31. package/dist/components/charts/DonutChart.d.ts +12 -0
  32. package/dist/components/charts/DonutChart.d.ts.map +1 -0
  33. package/dist/components/charts/RadarChart.d.ts +13 -0
  34. package/dist/components/charts/RadarChart.d.ts.map +1 -0
  35. package/dist/components/charts/RadialBarChart.d.ts +13 -0
  36. package/dist/components/charts/RadialBarChart.d.ts.map +1 -0
  37. package/dist/components/charts/SparkLine.d.ts +7 -0
  38. package/dist/components/charts/SparkLine.d.ts.map +1 -0
  39. package/dist/components/charts/VerticalBarChart.d.ts +11 -0
  40. package/dist/components/charts/VerticalBarChart.d.ts.map +1 -0
  41. package/dist/components/tables/ColumnPicker.d.ts +33 -0
  42. package/dist/components/tables/ColumnPicker.d.ts.map +1 -0
  43. package/dist/components/tables/Pagination.d.ts +8 -0
  44. package/dist/components/tables/Pagination.d.ts.map +1 -0
  45. package/dist/components/tables/ResourceTable.d.ts +56 -0
  46. package/dist/components/tables/ResourceTable.d.ts.map +1 -0
  47. package/dist/components/tables/sortRows.d.ts +13 -0
  48. package/dist/components/tables/sortRows.d.ts.map +1 -0
  49. package/dist/components/ui/Alert.d.ts +11 -0
  50. package/dist/components/ui/Alert.d.ts.map +1 -0
  51. package/dist/components/ui/AuthCard.d.ts +11 -0
  52. package/dist/components/ui/AuthCard.d.ts.map +1 -0
  53. package/dist/components/ui/AuthorByline.d.ts +57 -0
  54. package/dist/components/ui/AuthorByline.d.ts.map +1 -0
  55. package/dist/components/ui/Avatar.d.ts +8 -0
  56. package/dist/components/ui/Avatar.d.ts.map +1 -0
  57. package/dist/components/ui/Badge.d.ts +10 -0
  58. package/dist/components/ui/Badge.d.ts.map +1 -0
  59. package/dist/components/ui/Button.d.ts +63 -0
  60. package/dist/components/ui/Button.d.ts.map +1 -0
  61. package/dist/components/ui/CalendarGrid.d.ts +23 -0
  62. package/dist/components/ui/CalendarGrid.d.ts.map +1 -0
  63. package/dist/components/ui/Card.d.ts +9 -0
  64. package/dist/components/ui/Card.d.ts.map +1 -0
  65. package/dist/components/ui/Checkbox.d.ts +10 -0
  66. package/dist/components/ui/Checkbox.d.ts.map +1 -0
  67. package/dist/components/ui/Combobox.d.ts +15 -0
  68. package/dist/components/ui/Combobox.d.ts.map +1 -0
  69. package/dist/components/ui/DangerZone.d.ts +40 -0
  70. package/dist/components/ui/DangerZone.d.ts.map +1 -0
  71. package/dist/components/ui/DatePicker.d.ts +11 -0
  72. package/dist/components/ui/DatePicker.d.ts.map +1 -0
  73. package/dist/components/ui/DateRangePicker.d.ts +13 -0
  74. package/dist/components/ui/DateRangePicker.d.ts.map +1 -0
  75. package/dist/components/ui/DateTimePicker.d.ts +9 -0
  76. package/dist/components/ui/DateTimePicker.d.ts.map +1 -0
  77. package/dist/components/ui/DetailPanel.d.ts +19 -0
  78. package/dist/components/ui/DetailPanel.d.ts.map +1 -0
  79. package/dist/components/ui/Dialog.d.ts +28 -0
  80. package/dist/components/ui/Dialog.d.ts.map +1 -0
  81. package/dist/components/ui/DialogActions.d.ts +52 -0
  82. package/dist/components/ui/DialogActions.d.ts.map +1 -0
  83. package/dist/components/ui/DividerLabel.d.ts +7 -0
  84. package/dist/components/ui/DividerLabel.d.ts.map +1 -0
  85. package/dist/components/ui/DropdownMenu.d.ts +27 -0
  86. package/dist/components/ui/DropdownMenu.d.ts.map +1 -0
  87. package/dist/components/ui/EmptyState.d.ts +11 -0
  88. package/dist/components/ui/EmptyState.d.ts.map +1 -0
  89. package/dist/components/ui/ErrorBoundary.d.ts +16 -0
  90. package/dist/components/ui/ErrorBoundary.d.ts.map +1 -0
  91. package/dist/components/ui/FilterButton.d.ts +47 -0
  92. package/dist/components/ui/FilterButton.d.ts.map +1 -0
  93. package/dist/components/ui/FilterDropdown.d.ts +50 -0
  94. package/dist/components/ui/FilterDropdown.d.ts.map +1 -0
  95. package/dist/components/ui/Kbd.d.ts +7 -0
  96. package/dist/components/ui/Kbd.d.ts.map +1 -0
  97. package/dist/components/ui/LoadingSpinner.d.ts +7 -0
  98. package/dist/components/ui/LoadingSpinner.d.ts.map +1 -0
  99. package/dist/components/ui/MetadataGrid.d.ts +45 -0
  100. package/dist/components/ui/MetadataGrid.d.ts.map +1 -0
  101. package/dist/components/ui/MetricCard.d.ts +12 -0
  102. package/dist/components/ui/MetricCard.d.ts.map +1 -0
  103. package/dist/components/ui/OAuthButton.d.ts +8 -0
  104. package/dist/components/ui/OAuthButton.d.ts.map +1 -0
  105. package/dist/components/ui/PageHeader.d.ts +44 -0
  106. package/dist/components/ui/PageHeader.d.ts.map +1 -0
  107. package/dist/components/ui/PageSection.d.ts +13 -0
  108. package/dist/components/ui/PageSection.d.ts.map +1 -0
  109. package/dist/components/ui/PaginationBar.d.ts +58 -0
  110. package/dist/components/ui/PaginationBar.d.ts.map +1 -0
  111. package/dist/components/ui/PasswordInput.d.ts +8 -0
  112. package/dist/components/ui/PasswordInput.d.ts.map +1 -0
  113. package/dist/components/ui/ProfileHeader.d.ts +54 -0
  114. package/dist/components/ui/ProfileHeader.d.ts.map +1 -0
  115. package/dist/components/ui/ProseContent.d.ts +7 -0
  116. package/dist/components/ui/ProseContent.d.ts.map +1 -0
  117. package/dist/components/ui/RadioPill.d.ts +14 -0
  118. package/dist/components/ui/RadioPill.d.ts.map +1 -0
  119. package/dist/components/ui/SearchInput.d.ts +8 -0
  120. package/dist/components/ui/SearchInput.d.ts.map +1 -0
  121. package/dist/components/ui/SectionHeader.d.ts +35 -0
  122. package/dist/components/ui/SectionHeader.d.ts.map +1 -0
  123. package/dist/components/ui/Select.d.ts +12 -0
  124. package/dist/components/ui/Select.d.ts.map +1 -0
  125. package/dist/components/ui/SelectDropdown.d.ts +16 -0
  126. package/dist/components/ui/SelectDropdown.d.ts.map +1 -0
  127. package/dist/components/ui/SettingRow.d.ts +42 -0
  128. package/dist/components/ui/SettingRow.d.ts.map +1 -0
  129. package/dist/components/ui/SideSheet.d.ts +14 -0
  130. package/dist/components/ui/SideSheet.d.ts.map +1 -0
  131. package/dist/components/ui/Slider.d.ts +14 -0
  132. package/dist/components/ui/Slider.d.ts.map +1 -0
  133. package/dist/components/ui/SplitPaneLayout.d.ts +73 -0
  134. package/dist/components/ui/SplitPaneLayout.d.ts.map +1 -0
  135. package/dist/components/ui/StatusDot.d.ts +9 -0
  136. package/dist/components/ui/StatusDot.d.ts.map +1 -0
  137. package/dist/components/ui/StepProgress.d.ts +11 -0
  138. package/dist/components/ui/StepProgress.d.ts.map +1 -0
  139. package/dist/components/ui/Tabs.d.ts +18 -0
  140. package/dist/components/ui/Tabs.d.ts.map +1 -0
  141. package/dist/components/ui/TextInput.d.ts +13 -0
  142. package/dist/components/ui/TextInput.d.ts.map +1 -0
  143. package/dist/components/ui/Textarea.d.ts +9 -0
  144. package/dist/components/ui/Textarea.d.ts.map +1 -0
  145. package/dist/components/ui/ThemePreview.d.ts +14 -0
  146. package/dist/components/ui/ThemePreview.d.ts.map +1 -0
  147. package/dist/components/ui/Timeline.d.ts +39 -0
  148. package/dist/components/ui/Timeline.d.ts.map +1 -0
  149. package/dist/components/ui/Toast.d.ts +21 -0
  150. package/dist/components/ui/Toast.d.ts.map +1 -0
  151. package/dist/components/ui/Toggle.d.ts +9 -0
  152. package/dist/components/ui/Toggle.d.ts.map +1 -0
  153. package/dist/components/ui/Toolbar.d.ts +11 -0
  154. package/dist/components/ui/Toolbar.d.ts.map +1 -0
  155. package/dist/components/ui/Tooltip.d.ts +10 -0
  156. package/dist/components/ui/Tooltip.d.ts.map +1 -0
  157. package/dist/components/ui/UploadDropzone.d.ts +13 -0
  158. package/dist/components/ui/UploadDropzone.d.ts.map +1 -0
  159. package/dist/config/theme.d.ts +43 -0
  160. package/dist/config/theme.d.ts.map +1 -0
  161. package/dist/hooks/useApplyTheme.d.ts +7 -0
  162. package/dist/hooks/useApplyTheme.d.ts.map +1 -0
  163. package/dist/hooks/useDismiss.d.ts +8 -0
  164. package/dist/hooks/useDismiss.d.ts.map +1 -0
  165. package/dist/hooks/useDropUp.d.ts +7 -0
  166. package/dist/hooks/useDropUp.d.ts.map +1 -0
  167. package/dist/hooks/useFocusTrap.d.ts +7 -0
  168. package/dist/hooks/useFocusTrap.d.ts.map +1 -0
  169. package/dist/hooks/useSettings.d.ts +8 -0
  170. package/dist/hooks/useSettings.d.ts.map +1 -0
  171. package/dist/hooks/useTheme.d.ts +6 -0
  172. package/dist/hooks/useTheme.d.ts.map +1 -0
  173. package/dist/index.d.ts +91 -0
  174. package/dist/index.d.ts.map +1 -0
  175. package/dist/index.js +4622 -0
  176. package/dist/lib/cn.d.ts +3 -0
  177. package/dist/lib/cn.d.ts.map +1 -0
  178. package/dist/lib/formatDate.d.ts +28 -0
  179. package/dist/lib/formatDate.d.ts.map +1 -0
  180. package/dist/providers/SettingsContext.d.ts +60 -0
  181. package/dist/providers/SettingsContext.d.ts.map +1 -0
  182. package/dist/providers/SettingsProvider.d.ts +7 -0
  183. package/dist/providers/SettingsProvider.d.ts.map +1 -0
  184. package/dist/providers/ThemeContext.d.ts +8 -0
  185. package/dist/providers/ThemeContext.d.ts.map +1 -0
  186. package/dist/providers/ThemeProvider.d.ts +5 -0
  187. package/dist/providers/ThemeProvider.d.ts.map +1 -0
  188. package/dist/styles.css +923 -0
  189. package/package.json +63 -0
@@ -0,0 +1,923 @@
1
+ /* Generated first-party utility stylesheet. Keep this file out of Prettier. */
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{--utility-translate-x:0;--utility-translate-y:0;--utility-translate-z:0;--utility-scale-x:1;--utility-scale-y:1;--utility-scale-z:1;--utility-rotate-x:initial;--utility-rotate-y:initial;--utility-rotate-z:initial;--utility-skew-x:initial;--utility-skew-y:initial;--utility-space-y-reverse:0;--utility-divide-y-reverse:0;--utility-border-style:solid;--utility-leading:initial;--utility-font-weight:initial;--utility-tracking:initial;--utility-ordinal:initial;--utility-slashed-zero:initial;--utility-numeric-figure:initial;--utility-numeric-spacing:initial;--utility-numeric-fraction:initial;--utility-shadow:0 0 #0000;--utility-shadow-color:initial;--utility-shadow-alpha:100%;--utility-inset-shadow:0 0 #0000;--utility-inset-shadow-color:initial;--utility-inset-shadow-alpha:100%;--utility-ring-color:initial;--utility-ring-shadow:0 0 #0000;--utility-inset-ring-color:initial;--utility-inset-ring-shadow:0 0 #0000;--utility-ring-inset:initial;--utility-ring-offset-width:0px;--utility-ring-offset-color:#fff;--utility-ring-offset-shadow:0 0 #0000;--utility-outline-style:solid;--utility-blur:initial;--utility-brightness:initial;--utility-contrast:initial;--utility-grayscale:initial;--utility-hue-rotate:initial;--utility-invert:initial;--utility-opacity:initial;--utility-saturate:initial;--utility-sepia:initial;--utility-drop-shadow:initial;--utility-drop-shadow-color:initial;--utility-drop-shadow-alpha:100%;--utility-drop-shadow-size:initial;--utility-duration:initial;--utility-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-ui);--font-mono:var(--font-code);--color-blue-500:oklch(62.3% .214 259.815);--spacing:var(--ui-density);--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wider:var(--ui-tracking);--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:var(--ui-radius);--radius-md:var(--ui-radius-md);--radius-lg:var(--ui-radius-lg);--radius-xl:var(--ui-radius-xl);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--aspect-video:16 / 9;--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(--ui-radius);--text-2xs:.625rem;--text-2xs--line-height:1.4;--text-2xs-f:.6875rem;--text-2xs-f--line-height:1.4;--text-body:.8125rem;--text-body--line-height:1.45;--color-bg-primary:var(--bg-primary);--color-bg-secondary:var(--bg-secondary);--color-bg-tertiary:var(--bg-tertiary);--color-bg-hover:var(--bg-hover);--color-bg-active:var(--bg-active);--color-bg-overlay:var(--bg-overlay);--color-bg-sidebar:var(--bg-sidebar);--color-bg-media-badge:var(--bg-media-badge);--color-control-knob:var(--control-knob);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-tertiary:var(--text-tertiary);--color-text-disabled:var(--text-disabled);--color-text-on-accent:var(--text-on-accent);--color-text-on-avatar:var(--text-on-avatar);--color-text-on-media:var(--text-on-media);--color-text-on-media-muted:var(--text-on-media-muted);--color-border:var(--border);--color-border-strong:var(--border-strong);--color-accent:var(--accent);--color-accent-hover:var(--accent-hover);--color-accent-active:var(--accent-active);--color-accent-muted:var(--accent-muted);--color-accent-subtle:var(--accent-subtle);--color-green:var(--green);--color-green-muted:var(--green-muted);--color-yellow:var(--yellow);--color-yellow-muted:var(--yellow-muted);--color-red:var(--red);--color-red-muted:var(--red-muted);--color-blue:var(--blue);--color-blue-muted:var(--blue-muted);--color-purple:var(--purple);--color-purple-muted:var(--purple-muted);--animate-fade-in:fade-in .12s ease-out;--animate-scale-in:scale-in .1s ease-out;--animate-slide-down:slide-in-down .15s ease-out;--animate-slide-in-right:slide-in-right .2s ease-out;--animate-slide-in-left:slide-in-left .2s ease-out;--animate-pulse-subtle:pulse-subtle 2s ease-in-out infinite}}@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;-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}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\[30px\]{top:30px}.top-full{top:100%}.-right-9{right:calc(var(--spacing) * -9)}.right-0{right:calc(var(--spacing) * 0)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-3{right:calc(var(--spacing) * 3)}.right-full{right:100%}.-bottom-9{bottom:calc(var(--spacing) * -9)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1\.5{bottom:calc(var(--spacing) * 1.5)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-full{left:100%}.z-0{z-index:0}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-m-4{margin:calc(var(--spacing) * -4)}.-m-6{margin:calc(var(--spacing) * -6)}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-40{height:calc(var(--spacing) * 40)}.h-44{height:calc(var(--spacing) * 44)}.h-48{height:calc(var(--spacing) * 48)}.h-\[3px\]{height:3px}.h-\[calc\(100vh-var\(--topbar-height\)\)\]{height:calc(100vh - var(--topbar-height))}.h-\[calc\(100vh-var\(--topbar-height\)-var\(--bottomnav-height\)\)\]{height:calc(100vh - var(--topbar-height) - var(--bottomnav-height))}.h-full{height:100%}.h-svh{height:100svh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\[320px\]{max-height:320px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[60vh\]{min-height:60vh}.min-h-\[72px\]{min-height:72px}.min-h-\[120px\]{min-height:120px}.min-h-\[200px\]{min-height:200px}.min-h-svh{min-height:100svh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:calc(var(--spacing) * 1)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-\[1\%\]{width:1%}.w-\[2em\]{width:2em}.w-\[3px\]{width:3px}.w-\[110px\]{width:110px}.w-\[120px\]{width:120px}.w-\[252px\]{width:252px}.w-\[360px\]{width:360px}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[340px\]{max-width:340px}.max-w-\[400px\]{max-width:400px}.max-w-\[520px\]{max-width:520px}.max-w-\[560px\]{max-width:560px}.max-w-\[640px\]{max-width:640px}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[18px\]{min-width:18px}.min-w-\[280px\]{min-width:280px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--utility-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--utility-translate-x) var(--utility-translate-y)}.-translate-y-1\/2{--utility-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--utility-translate-x) var(--utility-translate-y)}.scale-110{--utility-scale-x:110%;--utility-scale-y:110%;--utility-scale-z:110%;scale:var(--utility-scale-x) var(--utility-scale-y)}.-rotate-45{rotate:-45deg}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--utility-rotate-x,) var(--utility-rotate-y,) var(--utility-rotate-z,) var(--utility-skew-x,) var(--utility-skew-y,)}.animate-fade-in{animation:var(--animate-fade-in)}.animate-pulse{animation:var(--animate-pulse)}.animate-pulse-subtle{animation:var(--animate-pulse-subtle)}.animate-scale-in{animation:var(--animate-scale-in)}.animate-slide-down{animation:var(--animate-slide-down)}.animate-slide-in-left{animation:var(--animate-slide-in-left)}.animate-slide-in-right{animation:var(--animate-slide-in-right)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.list-inside{list-style-position:inside}.list-\[circle\]{list-style-type:circle}.list-\[lower-alpha\]{list-style-type:lower-alpha}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.columns-1{columns:1}.break-inside-avoid{break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[100px_1fr\]{grid-template-columns:100px 1fr}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-0\.5>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--utility-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--utility-space-y-reverse)))}:where(.space-y-px>:not(:last-child)){--utility-space-y-reverse:0;margin-block-start:calc(1px * var(--utility-space-y-reverse));margin-block-end:calc(1px * calc(1 - var(--utility-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--utility-divide-y-reverse:0;border-bottom-style:var(--utility-border-style);border-top-style:var(--utility-border-style);border-top-width:calc(1px * var(--utility-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--utility-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:var(--radius)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--utility-border-style);border-width:1px}.border-2{border-style:var(--utility-border-style);border-width:2px}.border-t{border-top-style:var(--utility-border-style);border-top-width:1px}.border-r{border-right-style:var(--utility-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--utility-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--utility-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--utility-border-style);border-left-width:2px}.border-l-\[3px\]{border-left-style:var(--utility-border-style);border-left-width:3px}.border-dashed{--utility-border-style:dashed;border-style:dashed}.border-accent{border-color:var(--color-accent)}.border-blue\/30{border-color:var(--color-blue)}@supports (color:color-mix(in lab, red, red)){.border-blue\/30{border-color:color-mix(in oklab, var(--color-blue) 30%, transparent)}}.border-border{border-color:var(--color-border)}.border-border-strong,.border-border-strong\/20{border-color:var(--color-border-strong)}@supports (color:color-mix(in lab, red, red)){.border-border-strong\/20{border-color:color-mix(in oklab, var(--color-border-strong) 20%, transparent)}}.border-green\/30{border-color:var(--color-green)}@supports (color:color-mix(in lab, red, red)){.border-green\/30{border-color:color-mix(in oklab, var(--color-green) 30%, transparent)}}.border-red,.border-red\/30{border-color:var(--color-red)}@supports (color:color-mix(in lab, red, red)){.border-red\/30{border-color:color-mix(in oklab, var(--color-red) 30%, transparent)}}.border-transparent{border-color:#0000}.border-yellow\/30{border-color:var(--color-yellow)}@supports (color:color-mix(in lab, red, red)){.border-yellow\/30{border-color:color-mix(in oklab, var(--color-yellow) 30%, transparent)}}.border-b-transparent{border-bottom-color:#0000}.border-l-blue{border-left-color:var(--color-blue)}.border-l-border{border-left-color:var(--color-border)}.border-l-red{border-left-color:var(--color-red)}.border-l-yellow{border-left-color:var(--color-yellow)}.bg-accent{background-color:var(--color-accent)}.bg-accent-muted{background-color:var(--color-accent-muted)}.bg-accent-subtle{background-color:var(--color-accent-subtle)}.bg-accent\/15{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/15{background-color:color-mix(in oklab, var(--color-accent) 15%, transparent)}}.bg-bg-hover{background-color:var(--color-bg-hover)}.bg-bg-media-badge{background-color:var(--color-bg-media-badge)}.bg-bg-overlay{background-color:var(--color-bg-overlay)}.bg-bg-primary,.bg-bg-primary\/50{background-color:var(--color-bg-primary)}@supports (color:color-mix(in lab, red, red)){.bg-bg-primary\/50{background-color:color-mix(in oklab, var(--color-bg-primary) 50%, transparent)}}.bg-bg-secondary{background-color:var(--color-bg-secondary)}.bg-bg-sidebar{background-color:var(--color-bg-sidebar)}.bg-bg-tertiary{background-color:var(--color-bg-tertiary)}.bg-blue{background-color:var(--color-blue)}.bg-blue-muted{background-color:var(--color-blue-muted)}.bg-border{background-color:var(--color-border)}.bg-control-knob{background-color:var(--color-control-knob)}.bg-green{background-color:var(--color-green)}.bg-green-muted{background-color:var(--color-green-muted)}.bg-purple{background-color:var(--color-purple)}.bg-purple-muted{background-color:var(--color-purple-muted)}.bg-red{background-color:var(--color-red)}.bg-red-muted,.bg-red-muted\/30{background-color:var(--color-red-muted)}@supports (color:color-mix(in lab, red, red)){.bg-red-muted\/30{background-color:color-mix(in oklab, var(--color-red-muted) 30%, transparent)}}.bg-text-tertiary{background-color:var(--color-text-tertiary)}.bg-transparent{background-color:#0000}.bg-yellow{background-color:var(--color-yellow)}.bg-yellow-muted{background-color:var(--color-yellow-muted)}.fill-yellow{fill:var(--color-yellow)}.object-cover{object-fit:cover}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-\[8px\]{padding-block:8px}.py-px{padding-block:1px}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-\[20vh\]{padding-top:20vh}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--utility-leading,var(--text-2xl--line-height))}.text-2xs{font-size:var(--text-2xs);line-height:var(--utility-leading,var(--text-2xs--line-height))}.text-2xs-f{font-size:var(--text-2xs-f);line-height:var(--utility-leading,var(--text-2xs-f--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--utility-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--utility-leading,var(--text-base--line-height))}.text-body{font-size:var(--text-body);line-height:var(--utility-leading,var(--text-body--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--utility-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--utility-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--utility-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--utility-leading,var(--text-xs--line-height))}.leading-5{--utility-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--utility-leading:1;line-height:1}.leading-relaxed{--utility-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--utility-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--utility-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--utility-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--utility-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--utility-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--utility-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--utility-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-blue{color:var(--color-blue)}.text-blue-500{color:var(--color-blue-500)}.text-green{color:var(--color-green)}.text-purple{color:var(--color-purple)}.text-red{color:var(--color-red)}.text-text-disabled{color:var(--color-text-disabled)}.text-text-on-accent{color:var(--color-text-on-accent)}.text-text-on-avatar{color:var(--color-text-on-avatar)}.text-text-on-media{color:var(--color-text-on-media)}.text-text-on-media-muted{color:var(--color-text-on-media-muted)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-text-tertiary{color:var(--color-text-tertiary)}.text-yellow{color:var(--color-yellow)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--utility-numeric-spacing:tabular-nums;font-variant-numeric:var(--utility-ordinal,) var(--utility-slashed-zero,) var(--utility-numeric-figure,) var(--utility-numeric-spacing,) var(--utility-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.accent-\[var\(--accent\)\]{accent-color:var(--accent)}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-\[0\.06\]{opacity:.06}.shadow-lg{--utility-shadow:0 10px 15px -3px var(--utility-shadow-color,#0000001a), 0 4px 6px -4px var(--utility-shadow-color,#0000001a);box-shadow:var(--utility-inset-shadow), var(--utility-inset-ring-shadow), var(--utility-ring-offset-shadow), var(--utility-ring-shadow), var(--utility-shadow)}.shadow-md{--utility-shadow:0 4px 6px -1px var(--utility-shadow-color,#0000001a), 0 2px 4px -2px var(--utility-shadow-color,#0000001a);box-shadow:var(--utility-inset-shadow), var(--utility-inset-ring-shadow), var(--utility-ring-offset-shadow), var(--utility-ring-shadow), var(--utility-shadow)}.ring{--utility-ring-shadow:var(--utility-ring-inset,) 0 0 0 calc(1px + var(--utility-ring-offset-width)) var(--utility-ring-color,currentcolor);box-shadow:var(--utility-inset-shadow), var(--utility-inset-ring-shadow), var(--utility-ring-offset-shadow), var(--utility-ring-shadow), var(--utility-shadow)}.ring-2{--utility-ring-shadow:var(--utility-ring-inset,) 0 0 0 calc(2px + var(--utility-ring-offset-width)) var(--utility-ring-color,currentcolor);box-shadow:var(--utility-inset-shadow), var(--utility-inset-ring-shadow), var(--utility-ring-offset-shadow), var(--utility-ring-shadow), var(--utility-shadow)}.ring-offset-1{--utility-ring-offset-width:1px;--utility-ring-offset-shadow:var(--utility-ring-inset,) 0 0 0 var(--utility-ring-offset-width) var(--utility-ring-offset-color)}.ring-offset-2{--utility-ring-offset-width:2px;--utility-ring-offset-shadow:var(--utility-ring-inset,) 0 0 0 var(--utility-ring-offset-width) var(--utility-ring-offset-color)}.ring-offset-bg-primary{--utility-ring-offset-color:var(--color-bg-primary)}.ring-offset-bg-tertiary{--utility-ring-offset-color:var(--color-bg-tertiary)}.outline{outline-style:var(--utility-outline-style);outline-width:1px}.filter{filter:var(--utility-blur,) var(--utility-brightness,) var(--utility-contrast,) var(--utility-grayscale,) var(--utility-hue-rotate,) var(--utility-invert,) var(--utility-saturate,) var(--utility-sepia,) var(--utility-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--utility-gradient-from,--utility-gradient-via,--utility-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(--utility-ease,var(--default-transition-timing-function));transition-duration:var(--utility-duration,var(--default-transition-duration))}.transition-\[left\]{transition-property:left;transition-timing-function:var(--utility-ease,var(--default-transition-timing-function));transition-duration:var(--utility-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--utility-ease,var(--default-transition-timing-function));transition-duration:var(--utility-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--utility-ease,var(--default-transition-timing-function));transition-duration:var(--utility-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--utility-gradient-from,--utility-gradient-via,--utility-gradient-to;transition-timing-function:var(--utility-ease,var(--default-transition-timing-function));transition-duration:var(--utility-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--utility-ease,var(--default-transition-timing-function));transition-duration:var(--utility-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--utility-ease,var(--default-transition-timing-function));transition-duration:var(--utility-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-\[100ms\]{--utility-duration:.1s;transition-duration:.1s}.duration-\[200ms\]{--utility-duration:.2s;transition-duration:.2s}.duration-\[250ms\]{--utility-duration:.25s;transition-duration:.25s}.ease-out{--utility-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-text-disabled::placeholder{color:var(--color-text-disabled)}.first\:pl-3:first-child{padding-left:calc(var(--spacing) * 3)}.last\:border-b-0:last-child{border-bottom-style:var(--utility-border-style);border-bottom-width:0}@media (hover:hover){.hover\:scale-110:hover{--utility-scale-x:110%;--utility-scale-y:110%;--utility-scale-z:110%;scale:var(--utility-scale-x) var(--utility-scale-y)}.hover\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\:bg-accent\/30:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab, var(--color-accent) 30%, transparent)}}.hover\:bg-bg-active:hover{background-color:var(--color-bg-active)}.hover\:bg-bg-hover:hover,.hover\:bg-bg-hover\/50:hover{background-color:var(--color-bg-hover)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-bg-hover\/50:hover{background-color:color-mix(in oklab, var(--color-bg-hover) 50%, transparent)}}.hover\:bg-red-muted:hover{background-color:var(--color-red-muted)}.hover\:bg-red\/20:hover{background-color:var(--color-red)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red\/20:hover{background-color:color-mix(in oklab, var(--color-red) 20%, transparent)}}.hover\:text-accent-hover:hover{color:var(--color-accent-hover)}.hover\:text-text-primary:hover{color:var(--color-text-primary)}.hover\:text-text-secondary:hover{color:var(--color-text-secondary)}.hover\:text-yellow:hover{color:var(--color-yellow)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:border-border:focus{border-color:var(--color-border)}.focus\:border-red:focus{border-color:var(--color-red)}.focus\:bg-accent\/50:focus{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-accent\/50:focus{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.focus\:bg-bg-hover:focus{background-color:var(--color-bg-hover)}.focus\:bg-red-muted:focus{background-color:var(--color-red-muted)}.focus\:text-text-primary:focus{color:var(--color-text-primary)}.focus\:outline-none:focus{--utility-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--utility-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--color-accent)}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-accent-active:active{background-color:var(--color-accent-active)}.active\:bg-accent\/40:active{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.active\:bg-accent\/40:active{background-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.active\:bg-accent\/50:active{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.active\:bg-accent\/50:active{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.active\:opacity-50:active{opacity:.5}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}@media (width>=40rem){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:w-\[110px\]{width:110px}.sm\:columns-2{columns:2}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}}@media (width>=48rem){.md\:-m-6{margin:calc(var(--spacing) * -6)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline{display:inline}.md\:h-\[calc\(100vh-var\(--topbar-height\)\)\]{height:calc(100vh - var(--topbar-height))}.md\:w-28{width:calc(var(--spacing) * 28)}.md\:max-w-56{max-width:calc(var(--spacing) * 56)}.md\:max-w-64{max-width:calc(var(--spacing) * 64)}.md\:flex-col{flex-direction:column}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:pt-\[5vh\]{padding-top:5vh}.md\:pb-6{padding-bottom:calc(var(--spacing) * 6)}}@media (width>=64rem){.lg\:flex{display:flex}.lg\:inline{display:inline}.lg\:columns-4{columns:4}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[1fr_280px\]{grid-template-columns:1fr 280px}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.lg\:px-3{padding-inline:calc(var(--spacing) * 3)}.lg\:px-4{padding-inline:calc(var(--spacing) * 4)}}@media (width>=80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb{height:calc(var(--spacing) * 4)}.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb{width:calc(var(--spacing) * 4)}.\[\&\:\:-webkit-slider-thumb\]\:cursor-pointer::-webkit-slider-thumb{cursor:pointer}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:bg-accent::-webkit-slider-thumb{background-color:var(--color-accent)}.\[\&\:\:-webkit-slider-thumb\]\:shadow-sm::-webkit-slider-thumb{--utility-shadow:0 1px 3px 0 var(--utility-shadow-color,#0000001a), 0 1px 2px -1px var(--utility-shadow-color,#0000001a);box-shadow:var(--utility-inset-shadow), var(--utility-inset-ring-shadow), var(--utility-ring-offset-shadow), var(--utility-ring-shadow), var(--utility-shadow)}.\[\&\:\:-webkit-slider-thumb\]\:transition-transform::-webkit-slider-thumb{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--utility-ease,var(--default-transition-timing-function));transition-duration:var(--utility-duration,var(--default-transition-duration))}.\[\&\:\:-webkit-slider-thumb\]\:duration-\[100ms\]::-webkit-slider-thumb{--utility-duration:.1s;transition-duration:.1s}@media (hover:hover){.\[\&\:\:-webkit-slider-thumb\]\:hover\:scale-110::-webkit-slider-thumb:hover{--utility-scale-x:110%;--utility-scale-y:110%;--utility-scale-z:110%;scale:var(--utility-scale-x) var(--utility-scale-y)}}}@property --utility-translate-x{syntax:"*";inherits:false;initial-value:0}@property --utility-translate-y{syntax:"*";inherits:false;initial-value:0}@property --utility-translate-z{syntax:"*";inherits:false;initial-value:0}@property --utility-scale-x{syntax:"*";inherits:false;initial-value:1}@property --utility-scale-y{syntax:"*";inherits:false;initial-value:1}@property --utility-scale-z{syntax:"*";inherits:false;initial-value:1}@property --utility-rotate-x{syntax:"*";inherits:false}@property --utility-rotate-y{syntax:"*";inherits:false}@property --utility-rotate-z{syntax:"*";inherits:false}@property --utility-skew-x{syntax:"*";inherits:false}@property --utility-skew-y{syntax:"*";inherits:false}@property --utility-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --utility-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --utility-border-style{syntax:"*";inherits:false;initial-value:solid}@property --utility-leading{syntax:"*";inherits:false}@property --utility-font-weight{syntax:"*";inherits:false}@property --utility-tracking{syntax:"*";inherits:false}@property --utility-ordinal{syntax:"*";inherits:false}@property --utility-slashed-zero{syntax:"*";inherits:false}@property --utility-numeric-figure{syntax:"*";inherits:false}@property --utility-numeric-spacing{syntax:"*";inherits:false}@property --utility-numeric-fraction{syntax:"*";inherits:false}@property --utility-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --utility-shadow-color{syntax:"*";inherits:false}@property --utility-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --utility-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --utility-inset-shadow-color{syntax:"*";inherits:false}@property --utility-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --utility-ring-color{syntax:"*";inherits:false}@property --utility-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --utility-inset-ring-color{syntax:"*";inherits:false}@property --utility-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --utility-ring-inset{syntax:"*";inherits:false}@property --utility-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --utility-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --utility-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --utility-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --utility-blur{syntax:"*";inherits:false}@property --utility-brightness{syntax:"*";inherits:false}@property --utility-contrast{syntax:"*";inherits:false}@property --utility-grayscale{syntax:"*";inherits:false}@property --utility-hue-rotate{syntax:"*";inherits:false}@property --utility-invert{syntax:"*";inherits:false}@property --utility-opacity{syntax:"*";inherits:false}@property --utility-saturate{syntax:"*";inherits:false}@property --utility-sepia{syntax:"*";inherits:false}@property --utility-drop-shadow{syntax:"*";inherits:false}@property --utility-drop-shadow-color{syntax:"*";inherits:false}@property --utility-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --utility-drop-shadow-size{syntax:"*";inherits:false}@property --utility-duration{syntax:"*";inherits:false}@property --utility-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
3
+
4
+
5
+ /* ─── Theme: CSS Custom Properties ─── */
6
+
7
+ :root {
8
+ --bg-primary: #0d0f12;
9
+ --bg-secondary: #13151a;
10
+ --bg-tertiary: #1a1d24;
11
+ --bg-hover: #262a33;
12
+ --bg-active: #2c313b;
13
+ --bg-overlay: rgba(0, 0, 0, 0.5);
14
+ --bg-sidebar: #111318;
15
+ --bg-media-badge: rgba(0, 0, 0, 0.2);
16
+ --control-knob: #ffffff;
17
+
18
+ --text-primary: #e8eaed;
19
+ --text-secondary: #8b8b8e;
20
+ --text-tertiary: #6b7280;
21
+ --text-disabled: #4a4f5a;
22
+ --text-inverse: #0d0f12;
23
+ --text-on-accent: var(--text-inverse);
24
+ --text-on-avatar: #ffffff;
25
+ --text-on-media: #ffffff;
26
+ --text-on-media-muted: rgba(255, 255, 255, 0.8);
27
+
28
+ --border: #2a2e38;
29
+ --border-strong: #3a3f4a;
30
+ --border-focus: var(--accent);
31
+
32
+ --accent: #7c5cfc;
33
+ --accent-hover: #6b4aeb;
34
+ --accent-active: #5a39da;
35
+ --accent-muted: rgba(124, 92, 252, 0.15);
36
+ --accent-subtle: rgba(124, 92, 252, 0.08);
37
+
38
+ --green: #4ade80;
39
+ --green-muted: rgba(74, 222, 128, 0.15);
40
+ --yellow: #fbbf24;
41
+ --yellow-muted: rgba(251, 191, 36, 0.15);
42
+ --red: #f87171;
43
+ --red-muted: rgba(248, 113, 113, 0.15);
44
+ --blue: #60a5fa;
45
+ --blue-muted: rgba(96, 165, 250, 0.15);
46
+ --purple: #a78bfa;
47
+ --purple-muted: rgba(167, 139, 250, 0.15);
48
+
49
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
50
+ --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5);
51
+ --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.6);
52
+ --shadow-focus: 0 0 0 2px rgba(124, 92, 252, 0.25);
53
+
54
+ --transition-fast: 100ms ease;
55
+ --transition-base: 150ms ease;
56
+ --transition-slow: 250ms ease;
57
+
58
+ --sidebar-width: 220px;
59
+ --sidebar-collapsed: 48px;
60
+ --topbar-height: 36px;
61
+ --bottomnav-height: 56px;
62
+
63
+ --ui-radius: 0.25rem;
64
+ --ui-radius-md: 0.375rem;
65
+ --ui-radius-lg: 0.5rem;
66
+ --ui-radius-xl: 0.75rem;
67
+ --ui-border-width: 1px;
68
+ --ui-tracking: 0.05em;
69
+ --ui-line-height: 1.45;
70
+ --ui-density: 0.25rem;
71
+
72
+ --font-ui: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
73
+ --font-heading:
74
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
75
+ --font-prose:
76
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
77
+ --font-control:
78
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
79
+ --font-label:
80
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
81
+ --font-navigation:
82
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
83
+ --font-data:
84
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
85
+ --font-code: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
86
+
87
+ color-scheme: dark;
88
+ }
89
+
90
+ /* ─── Light Theme ─── */
91
+
92
+ .theme-light {
93
+ --bg-primary: #f9fafb;
94
+ --bg-secondary: #f5f5f5;
95
+ --bg-tertiary: #ffffff;
96
+ --bg-hover: #e8e8ec;
97
+ --bg-active: #dddde3;
98
+ --bg-overlay: rgba(0, 0, 0, 0.3);
99
+ --bg-sidebar: #f5f5f5;
100
+
101
+ --text-primary: #18181b;
102
+ --text-secondary: #71717a;
103
+ --text-tertiary: #a1a1aa;
104
+ --text-disabled: #8a8a94;
105
+ --text-inverse: #fafafa;
106
+
107
+ --border: #d4d4d8;
108
+ --border-strong: #c4c4cc;
109
+
110
+ --accent: #6d4aed;
111
+ --accent-hover: #5c39dc;
112
+ --accent-active: #4b28cb;
113
+ --accent-muted: rgba(109, 74, 237, 0.12);
114
+ --accent-subtle: rgba(109, 74, 237, 0.06);
115
+
116
+ --green: #22c55e;
117
+ --green-muted: rgba(34, 197, 94, 0.12);
118
+ --yellow: #eab308;
119
+ --yellow-muted: rgba(234, 179, 8, 0.12);
120
+ --red: #ef4444;
121
+ --red-muted: rgba(239, 68, 68, 0.12);
122
+ --blue: #3b82f6;
123
+ --blue-muted: rgba(59, 130, 246, 0.12);
124
+ --purple: #8b5cf6;
125
+ --purple-muted: rgba(139, 92, 246, 0.12);
126
+
127
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
128
+ --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.12);
129
+ --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.16);
130
+ --shadow-focus: 0 0 0 2px rgba(109, 74, 237, 0.2);
131
+
132
+ --ui-radius: 0.25rem;
133
+ --ui-radius-md: 0.375rem;
134
+ --ui-radius-lg: 0.5rem;
135
+ --ui-radius-xl: 0.75rem;
136
+ --ui-border-width: 1px;
137
+ --ui-tracking: 0.05em;
138
+ --ui-line-height: 1.45;
139
+ --ui-density: 0.25rem;
140
+
141
+ --font-ui: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
142
+ --font-heading:
143
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
144
+ --font-prose:
145
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
146
+ --font-control:
147
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
148
+ --font-label:
149
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
150
+ --font-navigation:
151
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
152
+ --font-data:
153
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
154
+ --font-code: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
155
+
156
+ color-scheme: light;
157
+ }
158
+
159
+ /* ─── HashiTheme ─── */
160
+
161
+ .theme-hashi {
162
+ --bg-primary: #ffffff;
163
+ --bg-secondary: #fafafa;
164
+ --bg-tertiary: #ffffff;
165
+ --bg-hover: #f3f4f6;
166
+ --bg-active: #e5e7eb;
167
+ --bg-overlay: rgba(15, 23, 42, 0.24);
168
+ --bg-sidebar: #fafafa;
169
+
170
+ --text-primary: #1e2939;
171
+ --text-secondary: #364153;
172
+ --text-tertiary: #99a1af;
173
+ --text-disabled: #d1d5dc;
174
+ --text-inverse: #ffffff;
175
+
176
+ --border: #e5e7eb;
177
+ --border-strong: #d1d5dc;
178
+
179
+ --accent: #16a34a;
180
+ --accent-hover: #15803d;
181
+ --accent-active: #166534;
182
+ --accent-muted: rgba(22, 163, 74, 0.12);
183
+ --accent-subtle: rgba(22, 163, 74, 0.06);
184
+
185
+ --green: #16a34a;
186
+ --green-muted: rgba(22, 163, 74, 0.12);
187
+ --yellow: #ca8a04;
188
+ --yellow-muted: rgba(202, 138, 4, 0.12);
189
+ --red: #dc2626;
190
+ --red-muted: rgba(220, 38, 38, 0.12);
191
+ --blue: #2563eb;
192
+ --blue-muted: rgba(37, 99, 235, 0.12);
193
+ --purple: #7c3aed;
194
+ --purple-muted: rgba(124, 58, 237, 0.12);
195
+
196
+ --shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.06);
197
+ --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08);
198
+ --shadow-lg: 0 10px 32px rgba(15, 23, 42, 0.12);
199
+ --shadow-focus: 0 0 0 2px rgba(22, 163, 74, 0.18);
200
+
201
+ --ui-radius: 0.25rem;
202
+ --ui-radius-md: 0.375rem;
203
+ --ui-radius-lg: 0.5rem;
204
+ --ui-radius-xl: 0.75rem;
205
+ --ui-border-width: 1px;
206
+ --ui-tracking: 0;
207
+ --ui-line-height: 1.45;
208
+ --ui-density: 0.25rem;
209
+
210
+ --font-ui: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
211
+ --font-heading:
212
+ "Archivo", "Arial Black", "Avenir Next Condensed",
213
+ "HelveticaNeue-CondensedBold", system-ui, sans-serif;
214
+ --font-prose:
215
+ "PT Serif", Georgia, ui-serif, Cambria, "Times New Roman", Times, serif;
216
+ --font-control:
217
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
218
+ --font-label:
219
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
220
+ --font-navigation:
221
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
222
+ --font-data:
223
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
224
+ --font-code: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
225
+
226
+ color-scheme: light;
227
+ }
228
+
229
+ /* ─── Monokai Theme ─── */
230
+
231
+ .theme-monokai {
232
+ --bg-primary: #272822;
233
+ --bg-secondary: #2d2e27;
234
+ --bg-tertiary: #3e3d32;
235
+ --bg-hover: #49483e;
236
+ --bg-active: #555449;
237
+ --bg-overlay: rgba(0, 0, 0, 0.5);
238
+ --bg-sidebar: #23241e;
239
+
240
+ --text-primary: #f8f8f2;
241
+ --text-secondary: #a6a69c;
242
+ --text-tertiary: #75715e;
243
+ --text-disabled: #5c5b50;
244
+ --text-inverse: #272822;
245
+
246
+ --border: #3e3d32;
247
+ --border-strong: #555449;
248
+ --border-focus: var(--accent);
249
+
250
+ --accent: #a6e22e;
251
+ --accent-hover: #95cb29;
252
+ --accent-active: #84b424;
253
+ --accent-muted: rgba(166, 226, 46, 0.15);
254
+ --accent-subtle: rgba(166, 226, 46, 0.08);
255
+
256
+ --green: #a6e22e;
257
+ --green-muted: rgba(166, 226, 46, 0.15);
258
+ --red: #f92672;
259
+ --red-muted: rgba(249, 38, 114, 0.15);
260
+ --yellow: #e6db74;
261
+ --yellow-muted: rgba(230, 219, 116, 0.15);
262
+ --blue: #66d9ef;
263
+ --blue-muted: rgba(102, 217, 239, 0.15);
264
+ --purple: #ae81ff;
265
+ --purple-muted: rgba(174, 129, 255, 0.15);
266
+
267
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
268
+ --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5);
269
+ --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.6);
270
+ --shadow-focus: 0 0 0 2px rgba(166, 226, 46, 0.25);
271
+
272
+ --ui-radius: 0.25rem;
273
+ --ui-radius-md: 0.375rem;
274
+ --ui-radius-lg: 0.5rem;
275
+ --ui-radius-xl: 0.75rem;
276
+ --ui-border-width: 1px;
277
+ --ui-tracking: 0.05em;
278
+ --ui-line-height: 1.45;
279
+ --ui-density: 0.25rem;
280
+
281
+ --font-ui: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
282
+ --font-heading:
283
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
284
+ --font-prose:
285
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
286
+ --font-control:
287
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
288
+ --font-label:
289
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
290
+ --font-navigation:
291
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
292
+ --font-data:
293
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
294
+ --font-code: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
295
+
296
+ color-scheme: dark;
297
+ }
298
+
299
+ /* ─── Solarized Theme ─── */
300
+
301
+ .theme-solarized {
302
+ --bg-primary: #002b36;
303
+ --bg-secondary: #073642;
304
+ --bg-tertiary: #0a3f4c;
305
+ --bg-hover: #0d4d5c;
306
+ --bg-active: #115b6c;
307
+ --bg-overlay: rgba(0, 0, 0, 0.5);
308
+ --bg-sidebar: #001f27;
309
+
310
+ --text-primary: #fdf6e3;
311
+ --text-secondary: #93a1a1;
312
+ --text-tertiary: #657b83;
313
+ --text-disabled: #586e75;
314
+ --text-inverse: #002b36;
315
+
316
+ --border: #0a3f4c;
317
+ --border-strong: #0d4d5c;
318
+ --border-focus: var(--accent);
319
+
320
+ --accent: #268bd2;
321
+ --accent-hover: #1f7bbe;
322
+ --accent-active: #186baa;
323
+ --accent-muted: rgba(38, 139, 210, 0.15);
324
+ --accent-subtle: rgba(38, 139, 210, 0.08);
325
+
326
+ --green: #859900;
327
+ --green-muted: rgba(133, 153, 0, 0.15);
328
+ --red: #dc322f;
329
+ --red-muted: rgba(220, 50, 47, 0.15);
330
+ --yellow: #b58900;
331
+ --yellow-muted: rgba(181, 137, 0, 0.15);
332
+ --blue: #268bd2;
333
+ --blue-muted: rgba(38, 139, 210, 0.15);
334
+ --purple: #6c71c4;
335
+ --purple-muted: rgba(108, 113, 196, 0.15);
336
+
337
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
338
+ --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5);
339
+ --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.6);
340
+ --shadow-focus: 0 0 0 2px rgba(38, 139, 210, 0.25);
341
+
342
+ --ui-radius: 0.25rem;
343
+ --ui-radius-md: 0.375rem;
344
+ --ui-radius-lg: 0.5rem;
345
+ --ui-radius-xl: 0.75rem;
346
+ --ui-border-width: 1px;
347
+ --ui-tracking: 0.05em;
348
+ --ui-line-height: 1.45;
349
+ --ui-density: 0.25rem;
350
+
351
+ --font-ui: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
352
+ --font-heading:
353
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
354
+ --font-prose:
355
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
356
+ --font-control:
357
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
358
+ --font-label:
359
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
360
+ --font-navigation:
361
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
362
+ --font-data:
363
+ "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
364
+ --font-code: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
365
+
366
+ color-scheme: dark;
367
+ }
368
+
369
+ /* ─── Cyber Brutal Dark Theme ─── */
370
+
371
+ .theme-cyber-brutal-dark {
372
+ --bg-primary: #050505;
373
+ --bg-secondary: #0a0a0a;
374
+ --bg-tertiary: #111111;
375
+ --bg-hover: #1a1a1a;
376
+ --bg-active: #222222;
377
+ --bg-overlay: rgba(0, 0, 0, 0.6);
378
+ --bg-sidebar: #000000;
379
+
380
+ --text-primary: #e4e4e7;
381
+ --text-secondary: #a1a1aa;
382
+ --text-tertiary: #71717a;
383
+ --text-disabled: #52525b;
384
+ --text-inverse: #050505;
385
+
386
+ --border: #27272a;
387
+ --border-strong: #3f3f46;
388
+ --border-focus: var(--accent);
389
+
390
+ --accent: #34d399;
391
+ --accent-hover: #2cc08a;
392
+ --accent-active: #25a777;
393
+ --accent-muted: rgba(52, 211, 153, 0.15);
394
+ --accent-subtle: rgba(52, 211, 153, 0.08);
395
+
396
+ --green: #4ade80;
397
+ --green-muted: rgba(74, 222, 128, 0.15);
398
+ --red: #f87171;
399
+ --red-muted: rgba(248, 113, 113, 0.15);
400
+ --yellow: #fbbf24;
401
+ --yellow-muted: rgba(251, 191, 36, 0.15);
402
+ --blue: #60a5fa;
403
+ --blue-muted: rgba(96, 165, 250, 0.15);
404
+ --purple: #a78bfa;
405
+ --purple-muted: rgba(167, 139, 250, 0.15);
406
+
407
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
408
+ --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.6);
409
+ --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.7);
410
+ --shadow-focus: 0 0 0 2px rgba(52, 211, 153, 0.3);
411
+
412
+ --ui-radius: 0;
413
+ --ui-radius-md: 0;
414
+ --ui-radius-lg: 0;
415
+ --ui-radius-xl: 0;
416
+ --ui-border-width: 1px;
417
+ --ui-tracking: 0.2em;
418
+ --ui-line-height: 1.4;
419
+ --ui-density: 0.22rem;
420
+
421
+ --font-ui: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
422
+ --font-heading: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
423
+ --font-prose: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
424
+ --font-control: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
425
+ --font-label: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
426
+ --font-navigation: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
427
+ --font-data: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
428
+ --font-code: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
429
+
430
+ color-scheme: dark;
431
+ }
432
+
433
+ /* ─── Cyber Brutal Light Theme ─── */
434
+
435
+ .theme-cyber-brutal-light {
436
+ --bg-primary: #e4e4e7;
437
+ --bg-secondary: #f4f4f5;
438
+ --bg-tertiary: #ffffff;
439
+ --bg-hover: #d4d4d8;
440
+ --bg-active: #c4c4cc;
441
+ --bg-overlay: rgba(0, 0, 0, 0.3);
442
+ --bg-sidebar: #d4d4d8;
443
+
444
+ --text-primary: #18181b;
445
+ --text-secondary: #52525b;
446
+ --text-tertiary: #71717a;
447
+ --text-disabled: #a1a1aa;
448
+ --text-inverse: #fafafa;
449
+
450
+ --border: #a1a1aa;
451
+ --border-strong: #71717a;
452
+ --border-focus: var(--accent);
453
+
454
+ --accent: #059669;
455
+ --accent-hover: #047857;
456
+ --accent-active: #065f46;
457
+ --accent-muted: rgba(5, 150, 105, 0.12);
458
+ --accent-subtle: rgba(5, 150, 105, 0.06);
459
+
460
+ --green: #16a34a;
461
+ --green-muted: rgba(22, 163, 74, 0.12);
462
+ --red: #dc2626;
463
+ --red-muted: rgba(220, 38, 38, 0.12);
464
+ --yellow: #ca8a04;
465
+ --yellow-muted: rgba(202, 138, 4, 0.12);
466
+ --blue: #2563eb;
467
+ --blue-muted: rgba(37, 99, 235, 0.12);
468
+ --purple: #7c3aed;
469
+ --purple-muted: rgba(124, 58, 237, 0.12);
470
+
471
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
472
+ --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.14);
473
+ --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.18);
474
+ --shadow-focus: 0 0 0 2px rgba(5, 150, 105, 0.25);
475
+
476
+ --ui-radius: 0;
477
+ --ui-radius-md: 0;
478
+ --ui-radius-lg: 0;
479
+ --ui-radius-xl: 0;
480
+ --ui-border-width: 1px;
481
+ --ui-tracking: 0.2em;
482
+ --ui-line-height: 1.4;
483
+ --ui-density: 0.22rem;
484
+
485
+ --font-ui: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
486
+ --font-heading: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
487
+ --font-prose: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
488
+ --font-control: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
489
+ --font-label: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
490
+ --font-navigation: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
491
+ --font-data: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
492
+ --font-code: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
493
+
494
+ color-scheme: light;
495
+ }
496
+
497
+ @keyframes fade-in {
498
+ from {
499
+ opacity: 0;
500
+ }
501
+ to {
502
+ opacity: 1;
503
+ }
504
+ }
505
+ @keyframes fade-out {
506
+ from {
507
+ opacity: 1;
508
+ }
509
+ to {
510
+ opacity: 0;
511
+ }
512
+ }
513
+ @keyframes scale-in {
514
+ from {
515
+ opacity: 0;
516
+ transform: scale(0.96);
517
+ }
518
+ to {
519
+ opacity: 1;
520
+ transform: scale(1);
521
+ }
522
+ }
523
+ @keyframes slide-in-down {
524
+ from {
525
+ opacity: 0;
526
+ transform: translateY(-6px);
527
+ }
528
+ to {
529
+ opacity: 1;
530
+ transform: translateY(0);
531
+ }
532
+ }
533
+ @keyframes slide-in-up {
534
+ from {
535
+ opacity: 0;
536
+ transform: translateY(6px);
537
+ }
538
+ to {
539
+ opacity: 1;
540
+ transform: translateY(0);
541
+ }
542
+ }
543
+ @keyframes slide-in-right {
544
+ from {
545
+ transform: translateX(100%);
546
+ }
547
+ to {
548
+ transform: translateX(0);
549
+ }
550
+ }
551
+ @keyframes slide-in-left {
552
+ from {
553
+ transform: translateX(-100%);
554
+ }
555
+ to {
556
+ transform: translateX(0);
557
+ }
558
+ }
559
+ @keyframes pulse-subtle {
560
+ 0%,
561
+ 100% {
562
+ opacity: 1;
563
+ }
564
+ 50% {
565
+ opacity: 0.5;
566
+ }
567
+ }
568
+
569
+ /* ─── Base Styles ─── */
570
+
571
+ * {
572
+ box-sizing: border-box;
573
+ }
574
+
575
+ html {
576
+ font-feature-settings: "cv02", "cv03", "cv04", "cv11";
577
+ -webkit-font-smoothing: antialiased;
578
+ -moz-osx-font-smoothing: grayscale;
579
+ }
580
+
581
+ h1,
582
+ h2,
583
+ h3,
584
+ h4,
585
+ h5,
586
+ h6 {
587
+ font-family: var(--font-heading);
588
+ }
589
+
590
+ button,
591
+ input,
592
+ textarea,
593
+ select,
594
+ [role="button"],
595
+ [role="tab"],
596
+ [role="menuitem"],
597
+ [role="option"] {
598
+ font-family: var(--font-control);
599
+ }
600
+
601
+ label,
602
+ figcaption,
603
+ caption,
604
+ dt,
605
+ th {
606
+ font-family: var(--font-label);
607
+ }
608
+
609
+ td,
610
+ .tabular-nums {
611
+ font-family: var(--font-data);
612
+ }
613
+
614
+ body {
615
+ margin: 0;
616
+ font-family: var(--font-ui);
617
+ font-size: 0.8125rem; /* 13px at default 16px root */
618
+ line-height: var(--ui-line-height);
619
+ color: var(--text-primary);
620
+ background-color: var(--bg-primary);
621
+ transition:
622
+ background-color var(--transition-base),
623
+ color var(--transition-base);
624
+ }
625
+
626
+ .font-ui {
627
+ font-family: var(--font-ui);
628
+ }
629
+
630
+ .font-heading {
631
+ font-family: var(--font-heading);
632
+ }
633
+
634
+ .font-prose {
635
+ font-family: var(--font-prose);
636
+ }
637
+
638
+ .font-control {
639
+ font-family: var(--font-control);
640
+ }
641
+
642
+ .font-label {
643
+ font-family: var(--font-label);
644
+ }
645
+
646
+ .font-navigation {
647
+ font-family: var(--font-navigation);
648
+ }
649
+
650
+ .font-data {
651
+ font-family: var(--font-data);
652
+ }
653
+
654
+ /* ─── Shiki code blocks ─── */
655
+
656
+ /* Shiki emits dual-theme tokens (--shiki-light/--shiki-dark vars on each
657
+ span); pick the palette matching the active theme. */
658
+ pre.shiki,
659
+ pre.shiki span {
660
+ color: var(--shiki-dark, var(--text-primary));
661
+ }
662
+
663
+ .theme-light pre.shiki,
664
+ .theme-light pre.shiki span,
665
+ .theme-cyber-brutal-light pre.shiki,
666
+ .theme-cyber-brutal-light pre.shiki span,
667
+ .theme-hashi pre.shiki,
668
+ .theme-hashi pre.shiki span {
669
+ color: var(--shiki-light, var(--text-primary));
670
+ }
671
+
672
+ /* ─── Shared prose content ─── */
673
+
674
+ .ui-prose {
675
+ color: var(--text-secondary);
676
+ font-family: var(--font-prose);
677
+ font-size: 0.8125rem;
678
+ line-height: var(--ui-line-height);
679
+ }
680
+
681
+ .ui-prose p,
682
+ .ui-prose ul,
683
+ .ui-prose ol,
684
+ .ui-prose pre,
685
+ .ui-prose table {
686
+ margin-bottom: 1rem;
687
+ }
688
+
689
+ .ui-prose h2 {
690
+ margin-top: 1.5rem;
691
+ margin-bottom: 0.75rem;
692
+ color: var(--text-primary);
693
+ font-size: 0.875rem;
694
+ font-weight: 600;
695
+ }
696
+
697
+ .ui-prose h3 {
698
+ margin-top: 1.25rem;
699
+ margin-bottom: 0.5rem;
700
+ color: var(--text-primary);
701
+ font-size: 0.75rem;
702
+ font-weight: 600;
703
+ }
704
+
705
+ .ui-prose a {
706
+ color: var(--accent);
707
+ }
708
+
709
+ .ui-prose a:hover {
710
+ color: var(--accent-hover);
711
+ }
712
+
713
+ .ui-prose strong {
714
+ color: var(--text-primary);
715
+ font-weight: 600;
716
+ }
717
+
718
+ .ui-prose code {
719
+ border-radius: var(--ui-radius);
720
+ background: var(--bg-tertiary);
721
+ color: var(--text-primary);
722
+ padding: 0.125rem 0.375rem;
723
+ font-family: var(--font-code);
724
+ font-size: 0.75rem;
725
+ }
726
+
727
+ .ui-prose pre {
728
+ overflow-x: auto;
729
+ border: var(--ui-border-width) solid var(--border);
730
+ border-radius: var(--ui-radius-md);
731
+ background: var(--bg-tertiary);
732
+ padding: 0.75rem;
733
+ }
734
+
735
+ .ui-prose pre code {
736
+ background: transparent;
737
+ padding: 0;
738
+ }
739
+
740
+ .ui-prose blockquote {
741
+ border-left: 2px solid var(--accent);
742
+ padding: 0.25rem 0 0.25rem 1rem;
743
+ }
744
+
745
+ .ui-prose ul,
746
+ .ui-prose ol {
747
+ list-style-position: inside;
748
+ }
749
+
750
+ .ui-prose ul {
751
+ list-style-type: disc;
752
+ }
753
+
754
+ .ui-prose ol {
755
+ list-style-type: decimal;
756
+ }
757
+
758
+ .ui-prose li {
759
+ line-height: 1.625;
760
+ }
761
+
762
+ .ui-prose table {
763
+ width: 100%;
764
+ overflow: hidden;
765
+ border: var(--ui-border-width) solid var(--border);
766
+ border-radius: var(--ui-radius-md);
767
+ }
768
+
769
+ .ui-prose thead {
770
+ background: var(--bg-tertiary);
771
+ }
772
+
773
+ .ui-prose th,
774
+ .ui-prose td {
775
+ border-bottom: var(--ui-border-width) solid var(--border);
776
+ padding: 0.5rem 0.75rem;
777
+ font-size: 0.75rem;
778
+ }
779
+
780
+ .ui-prose th {
781
+ color: var(--text-tertiary);
782
+ text-align: left;
783
+ font-size: 0.625rem;
784
+ font-weight: 500;
785
+ letter-spacing: var(--ui-tracking);
786
+ text-transform: uppercase;
787
+ }
788
+
789
+ /* ─── Theme-configurable border width ─── */
790
+
791
+ .border {
792
+ border-width: var(--ui-border-width);
793
+ }
794
+ .border-t {
795
+ border-top-width: var(--ui-border-width);
796
+ }
797
+ .border-b {
798
+ border-bottom-width: var(--ui-border-width);
799
+ }
800
+ .border-l {
801
+ border-left-width: var(--ui-border-width);
802
+ }
803
+ .border-r {
804
+ border-right-width: var(--ui-border-width);
805
+ }
806
+
807
+ #root {
808
+ min-height: 100svh;
809
+ }
810
+
811
+ /* ─── Scrollbar ─── */
812
+
813
+ ::-webkit-scrollbar {
814
+ width: 6px;
815
+ height: 6px;
816
+ }
817
+ ::-webkit-scrollbar-track {
818
+ background: transparent;
819
+ }
820
+ ::-webkit-scrollbar-thumb {
821
+ background: var(--border);
822
+ border-radius: 3px;
823
+ }
824
+ ::-webkit-scrollbar-thumb:hover {
825
+ background: var(--border-strong);
826
+ }
827
+
828
+ * {
829
+ scrollbar-width: thin;
830
+ scrollbar-color: var(--border) transparent;
831
+ }
832
+
833
+ /* ─── Selection ─── */
834
+
835
+ ::selection {
836
+ background: var(--accent-muted);
837
+ color: var(--text-primary);
838
+ }
839
+
840
+ /* ─── Reduced Motion ─── */
841
+
842
+ @media (prefers-reduced-motion: reduce) {
843
+ *,
844
+ *::before,
845
+ *::after {
846
+ animation-duration: 0.01ms !important;
847
+ animation-iteration-count: 1 !important;
848
+ transition-duration: 0.01ms !important;
849
+ }
850
+ }
851
+
852
+ .reduced-motion *,
853
+ .reduced-motion *::before,
854
+ .reduced-motion *::after {
855
+ animation-duration: 0.01ms !important;
856
+ animation-iteration-count: 1 !important;
857
+ transition-duration: 0.01ms !important;
858
+ }
859
+
860
+ /* ─── Cursor pointer on all interactive elements ─── */
861
+
862
+ a,
863
+ button,
864
+ [role="button"],
865
+ input[type="checkbox"],
866
+ input[type="radio"],
867
+ select,
868
+ label[for],
869
+ summary,
870
+ [tabindex]:not([tabindex="-1"]) {
871
+ cursor: pointer;
872
+ }
873
+
874
+ input[type="text"],
875
+ input[type="email"],
876
+ input[type="password"],
877
+ input[type="number"],
878
+ input[type="search"],
879
+ input[type="url"],
880
+ input[type="tel"],
881
+ input[type="date"],
882
+ textarea {
883
+ cursor: text;
884
+ }
885
+
886
+ input:disabled,
887
+ button:disabled,
888
+ select:disabled,
889
+ textarea:disabled {
890
+ cursor: not-allowed;
891
+ }
892
+
893
+ /* ─── Skip to content ─── */
894
+
895
+ .skip-link {
896
+ position: absolute;
897
+ width: 1px;
898
+ height: 1px;
899
+ padding: 0;
900
+ margin: -1px;
901
+ overflow: hidden;
902
+ clip: rect(0, 0, 0, 0);
903
+ white-space: nowrap;
904
+ border-width: 0;
905
+ }
906
+
907
+ .skip-link:focus {
908
+ position: fixed;
909
+ top: 0;
910
+ left: 0;
911
+ width: auto;
912
+ height: auto;
913
+ padding: 8px 16px;
914
+ margin: 0;
915
+ overflow: visible;
916
+ clip: auto;
917
+ white-space: normal;
918
+ background: var(--accent);
919
+ color: white;
920
+ z-index: 9999;
921
+ font-size: 14px;
922
+ font-weight: 600;
923
+ }