@1agh/maude 0.15.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 (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -0
  3. package/cli/bin/maude.exe +15 -0
  4. package/cli/bin/maude.mjs +45 -0
  5. package/cli/bin/mdcc.exe +10 -0
  6. package/cli/bin/mdcc.mjs +7 -0
  7. package/cli/cli-wrapper.cjs +67 -0
  8. package/cli/commands/config.mjs +94 -0
  9. package/cli/commands/design.mjs +386 -0
  10. package/cli/commands/help.mjs +57 -0
  11. package/cli/commands/init.mjs +178 -0
  12. package/cli/commands/version.mjs +7 -0
  13. package/cli/install.cjs +113 -0
  14. package/cli/lib/argv.mjs +37 -0
  15. package/cli/lib/argv.test.mjs +46 -0
  16. package/cli/lib/copy-tree.mjs +78 -0
  17. package/package.json +94 -0
  18. package/plugins/design/dev-server/annotations-context-toolbar.tsx +397 -0
  19. package/plugins/design/dev-server/annotations-layer.tsx +1717 -0
  20. package/plugins/design/dev-server/api.ts +674 -0
  21. package/plugins/design/dev-server/bin/_screenshot-playwright.mjs +50 -0
  22. package/plugins/design/dev-server/bin/bootstrap-check.sh +83 -0
  23. package/plugins/design/dev-server/bin/canvas-edit.sh +48 -0
  24. package/plugins/design/dev-server/bin/handoff.sh +27 -0
  25. package/plugins/design/dev-server/bin/screenshot.sh +232 -0
  26. package/plugins/design/dev-server/bin/server-up.sh +135 -0
  27. package/plugins/design/dev-server/bin/slug.sh +22 -0
  28. package/plugins/design/dev-server/bin/smoke.sh +272 -0
  29. package/plugins/design/dev-server/build.ts +267 -0
  30. package/plugins/design/dev-server/canvas-build.ts +219 -0
  31. package/plugins/design/dev-server/canvas-edit.ts +388 -0
  32. package/plugins/design/dev-server/canvas-header.ts +165 -0
  33. package/plugins/design/dev-server/canvas-icons.tsx +131 -0
  34. package/plugins/design/dev-server/canvas-lib-inline.ts +260 -0
  35. package/plugins/design/dev-server/canvas-lib-resolver.ts +85 -0
  36. package/plugins/design/dev-server/canvas-lib.tsx +1995 -0
  37. package/plugins/design/dev-server/canvas-meta.schema.json +181 -0
  38. package/plugins/design/dev-server/canvas-pipeline.ts +270 -0
  39. package/plugins/design/dev-server/canvas-shell.tsx +813 -0
  40. package/plugins/design/dev-server/client/app.jsx +2027 -0
  41. package/plugins/design/dev-server/client/hmr.mjs +85 -0
  42. package/plugins/design/dev-server/client/iframe-lazy.mjs +121 -0
  43. package/plugins/design/dev-server/client/index.html +15 -0
  44. package/plugins/design/dev-server/client/styles/0-reset.css +18 -0
  45. package/plugins/design/dev-server/client/styles/1-tokens.css +297 -0
  46. package/plugins/design/dev-server/client/styles/2-layout.css +35 -0
  47. package/plugins/design/dev-server/client/styles/3-shell.css +906 -0
  48. package/plugins/design/dev-server/client/styles/4-components.css +1268 -0
  49. package/plugins/design/dev-server/client/styles/5-utilities.css +4 -0
  50. package/plugins/design/dev-server/client/styles/_index.css +24 -0
  51. package/plugins/design/dev-server/client/styles.css +1419 -0
  52. package/plugins/design/dev-server/config.schema.json +147 -0
  53. package/plugins/design/dev-server/context-menu.tsx +343 -0
  54. package/plugins/design/dev-server/context.ts +173 -0
  55. package/plugins/design/dev-server/dist/client.bundle.js +20323 -0
  56. package/plugins/design/dev-server/dist/styles.css +2875 -0
  57. package/plugins/design/dev-server/examples/README.md +9 -0
  58. package/plugins/design/dev-server/examples/perf-100-artboards.tsx +113 -0
  59. package/plugins/design/dev-server/fs-watch.ts +63 -0
  60. package/plugins/design/dev-server/handoff.ts +721 -0
  61. package/plugins/design/dev-server/history.ts +125 -0
  62. package/plugins/design/dev-server/hmr-broadcast.ts +114 -0
  63. package/plugins/design/dev-server/http.ts +413 -0
  64. package/plugins/design/dev-server/input-router.tsx +485 -0
  65. package/plugins/design/dev-server/inspect.ts +365 -0
  66. package/plugins/design/dev-server/locator.ts +159 -0
  67. package/plugins/design/dev-server/mem.ts +97 -0
  68. package/plugins/design/dev-server/runtime-bundle.ts +235 -0
  69. package/plugins/design/dev-server/server.mjs +1246 -0
  70. package/plugins/design/dev-server/server.ts +131 -0
  71. package/plugins/design/dev-server/test/_helpers.ts +81 -0
  72. package/plugins/design/dev-server/test/active-state.test.ts +145 -0
  73. package/plugins/design/dev-server/test/annotations-api.test.ts +146 -0
  74. package/plugins/design/dev-server/test/annotations-layer.test.ts +419 -0
  75. package/plugins/design/dev-server/test/binary-smoke.test.ts +47 -0
  76. package/plugins/design/dev-server/test/bundle-smoke.test.ts +29 -0
  77. package/plugins/design/dev-server/test/canvas-build.test.ts +78 -0
  78. package/plugins/design/dev-server/test/canvas-edit.test.ts +139 -0
  79. package/plugins/design/dev-server/test/canvas-header.test.ts +127 -0
  80. package/plugins/design/dev-server/test/canvas-lib-inline.test.ts +146 -0
  81. package/plugins/design/dev-server/test/canvas-lib-resolver.test.ts +112 -0
  82. package/plugins/design/dev-server/test/canvas-meta-api.test.ts +236 -0
  83. package/plugins/design/dev-server/test/canvas-pipeline.test.ts +180 -0
  84. package/plugins/design/dev-server/test/canvas-route.test.ts +176 -0
  85. package/plugins/design/dev-server/test/fs-watch.test.ts +41 -0
  86. package/plugins/design/dev-server/test/handoff-static-frames.test.ts +215 -0
  87. package/plugins/design/dev-server/test/handoff.test.ts +281 -0
  88. package/plugins/design/dev-server/test/history-rollback.test.ts +62 -0
  89. package/plugins/design/dev-server/test/hmr-broadcast.test.ts +108 -0
  90. package/plugins/design/dev-server/test/input-router.test.ts +316 -0
  91. package/plugins/design/dev-server/test/locator.test.ts +214 -0
  92. package/plugins/design/dev-server/test/perf-harness.ts +193 -0
  93. package/plugins/design/dev-server/test/phase-3.6-smoke.test.ts +77 -0
  94. package/plugins/design/dev-server/test/runtime-bundle.test.ts +69 -0
  95. package/plugins/design/dev-server/test/server-lifecycle.test.ts +28 -0
  96. package/plugins/design/dev-server/test/tool-palette.test.tsx +55 -0
  97. package/plugins/design/dev-server/test/use-annotation-selection.test.tsx +77 -0
  98. package/plugins/design/dev-server/test/use-artboard-drag.test.ts +325 -0
  99. package/plugins/design/dev-server/test/use-selection-set.test.tsx +166 -0
  100. package/plugins/design/dev-server/test/use-snap-guides.test.ts +190 -0
  101. package/plugins/design/dev-server/test/use-tool-mode.test.tsx +93 -0
  102. package/plugins/design/dev-server/test/ws-handshake.test.ts +33 -0
  103. package/plugins/design/dev-server/tool-palette.tsx +278 -0
  104. package/plugins/design/dev-server/tsconfig.json +26 -0
  105. package/plugins/design/dev-server/use-annotation-selection.tsx +92 -0
  106. package/plugins/design/dev-server/use-annotations-visibility.tsx +43 -0
  107. package/plugins/design/dev-server/use-artboard-drag.tsx +445 -0
  108. package/plugins/design/dev-server/use-selection-set.tsx +224 -0
  109. package/plugins/design/dev-server/use-snap-guides.tsx +215 -0
  110. package/plugins/design/dev-server/use-tool-mode.tsx +114 -0
  111. package/plugins/design/dev-server/ws.ts +90 -0
  112. package/plugins/design/templates/_shell.html +177 -0
  113. package/plugins/design/templates/canvas.tsx.template +54 -0
  114. package/plugins/design/templates/design-system-inspiration/_MAPPING.md +277 -0
  115. package/plugins/design/templates/design-system-inspiration/_README.md +71 -0
  116. package/plugins/design/templates/design-system-inspiration/audience-consumer/components-banner.html +68 -0
  117. package/plugins/design/templates/design-system-inspiration/audience-consumer/components-empty-state-generous.html +39 -0
  118. package/plugins/design/templates/design-system-inspiration/audience-consumer/components-feature-grid.html +62 -0
  119. package/plugins/design/templates/design-system-inspiration/audience-consumer/components-marketing-card.html +63 -0
  120. package/plugins/design/templates/design-system-inspiration/audience-consumer/components-testimonial.html +80 -0
  121. package/plugins/design/templates/design-system-inspiration/audience-developer/components-code-block.html +71 -0
  122. package/plugins/design/templates/design-system-inspiration/audience-developer/components-diff-view.html +65 -0
  123. package/plugins/design/templates/design-system-inspiration/audience-developer/components-log-stream.html +62 -0
  124. package/plugins/design/templates/design-system-inspiration/audience-developer/components-monospace-table.html +57 -0
  125. package/plugins/design/templates/design-system-inspiration/audience-developer/components-terminal-pane.html +67 -0
  126. package/plugins/design/templates/design-system-inspiration/audience-developer/type-mono.html +57 -0
  127. package/plugins/design/templates/design-system-inspiration/audience-pro/colors-presence.html +74 -0
  128. package/plugins/design/templates/design-system-inspiration/audience-pro/components-command-palette.html +90 -0
  129. package/plugins/design/templates/design-system-inspiration/audience-pro/components-keyboard.html +51 -0
  130. package/plugins/design/templates/design-system-inspiration/audience-pro/components-list.html +89 -0
  131. package/plugins/design/templates/design-system-inspiration/audience-pro/components-shortcuts-overlay.html +85 -0
  132. package/plugins/design/templates/design-system-inspiration/audience-pro/components-toast-menu.html +80 -0
  133. package/plugins/design/templates/design-system-inspiration/core/INDEX.md.tpl +25 -0
  134. package/plugins/design/templates/design-system-inspiration/core/README.orchestration.md.tpl +71 -0
  135. package/plugins/design/templates/design-system-inspiration/core/README.philosophy.md.tpl +77 -0
  136. package/plugins/design/templates/design-system-inspiration/core/SKILL.md.tpl +50 -0
  137. package/plugins/design/templates/design-system-inspiration/core/colors_and_type.css.tpl +111 -0
  138. package/plugins/design/templates/design-system-inspiration/core/config.json.tpl +28 -0
  139. package/plugins/design/templates/design-system-inspiration/core/preview/_layout.css +113 -0
  140. package/plugins/design/templates/design-system-inspiration/core/preview/colors-accent.html +48 -0
  141. package/plugins/design/templates/design-system-inspiration/core/preview/colors-surfaces.html +49 -0
  142. package/plugins/design/templates/design-system-inspiration/core/preview/colors-text.html +52 -0
  143. package/plugins/design/templates/design-system-inspiration/core/preview/components-buttons.html +83 -0
  144. package/plugins/design/templates/design-system-inspiration/core/preview/components-cards.html +79 -0
  145. package/plugins/design/templates/design-system-inspiration/core/preview/components-inputs.html +82 -0
  146. package/plugins/design/templates/design-system-inspiration/core/preview/motion.html +66 -0
  147. package/plugins/design/templates/design-system-inspiration/core/preview/spacing-scale.html +53 -0
  148. package/plugins/design/templates/design-system-inspiration/core/preview/type-scale.html +62 -0
  149. package/plugins/design/templates/design-system-inspiration/foundations/borders.html +39 -0
  150. package/plugins/design/templates/design-system-inspiration/foundations/elevation.html +46 -0
  151. package/plugins/design/templates/design-system-inspiration/foundations/focus.html +48 -0
  152. package/plugins/design/templates/design-system-inspiration/foundations/grid.html +51 -0
  153. package/plugins/design/templates/design-system-inspiration/foundations/iconography.html +73 -0
  154. package/plugins/design/templates/design-system-inspiration/foundations/opacity.html +45 -0
  155. package/plugins/design/templates/design-system-inspiration/foundations/radii.html +40 -0
  156. package/plugins/design/templates/design-system-inspiration/foundations/selection.html +45 -0
  157. package/plugins/design/templates/design-system-inspiration/meta/accessibility.html +62 -0
  158. package/plugins/design/templates/design-system-inspiration/meta/i18n.html +73 -0
  159. package/plugins/design/templates/design-system-inspiration/meta/presence-multiplayer.html +71 -0
  160. package/plugins/design/templates/design-system-inspiration/meta/tokens-index.html +80 -0
  161. package/plugins/design/templates/design-system-inspiration/patterns/patterns-auth.html +78 -0
  162. package/plugins/design/templates/design-system-inspiration/patterns/patterns-data-density.html +61 -0
  163. package/plugins/design/templates/design-system-inspiration/patterns/patterns-error-pages.html +70 -0
  164. package/plugins/design/templates/design-system-inspiration/patterns/patterns-form-layouts.html +70 -0
  165. package/plugins/design/templates/design-system-inspiration/patterns/patterns-onboarding.html +71 -0
  166. package/plugins/design/templates/design-system-inspiration/patterns/patterns-pricing.html +83 -0
  167. package/plugins/design/templates/design-system-inspiration/platform-desktop/components-resize-panels.html +63 -0
  168. package/plugins/design/templates/design-system-inspiration/platform-desktop/ui_kits-desktop-index.html +55 -0
  169. package/plugins/design/templates/design-system-inspiration/platform-desktop/ui_kits-desktop-showcase.html +302 -0
  170. package/plugins/design/templates/design-system-inspiration/platform-mobile/components-bottom-sheet.html +63 -0
  171. package/plugins/design/templates/design-system-inspiration/platform-mobile/components-pull-to-refresh.html +74 -0
  172. package/plugins/design/templates/design-system-inspiration/platform-mobile/components-segmented-control.html +51 -0
  173. package/plugins/design/templates/design-system-inspiration/platform-mobile/components-tab-bar.html +57 -0
  174. package/plugins/design/templates/design-system-inspiration/platform-mobile/ui_kits-mobile-index.html +58 -0
  175. package/plugins/design/templates/design-system-inspiration/platform-mobile/ui_kits-mobile-showcase.html +237 -0
  176. package/plugins/design/templates/design-system-inspiration/status/colors-status.html +49 -0
  177. package/plugins/design/templates/design-system-inspiration/status/components-status.html +63 -0
  178. package/plugins/design/templates/design-system-inspiration/status/skeletons.html +74 -0
  179. package/plugins/design/templates/design-system-inspiration/theme-both/colors-themes-side-by-side.html +59 -0
  180. package/plugins/design/templates/design-system-inspiration/universal/components-callout.html +74 -0
  181. package/plugins/design/templates/design-system-inspiration/universal/components-dialogs.html +81 -0
  182. package/plugins/design/templates/design-system-inspiration/universal/components-tables.html +101 -0
  183. package/plugins/design/templates/design-system-inspiration/universal/components-toggles.html +74 -0
  184. package/plugins/design/templates/design-system-inspiration/universal/components-tooltips.html +74 -0
  185. package/plugins/design/templates/design-system-inspiration/universal/empty-state.html.tpl +34 -0
  186. package/plugins/design/templates/design-system-inspiration/universal/logo.html +42 -0
  187. package/plugins/design/templates/ds-specimen.tsx.template +59 -0
  188. package/plugins/flow/.claude-plugin/config.schema.json +398 -0
  189. package/plugins/flow/README.md +45 -0
  190. package/plugins/flow/templates/ai-skeleton/INDEX.md +50 -0
  191. package/plugins/flow/templates/ai-skeleton/README.md +46 -0
  192. package/plugins/flow/templates/ai-skeleton/browser/har/.gitkeep +0 -0
  193. package/plugins/flow/templates/ai-skeleton/browser/snapshots/.gitkeep +0 -0
  194. package/plugins/flow/templates/ai-skeleton/business/README.md +12 -0
  195. package/plugins/flow/templates/ai-skeleton/context/README.md +12 -0
  196. package/plugins/flow/templates/ai-skeleton/decisions/README.md +20 -0
  197. package/plugins/flow/templates/ai-skeleton/design-import/.gitkeep +0 -0
  198. package/plugins/flow/templates/ai-skeleton/dev-logs/.gitkeep +0 -0
  199. package/plugins/flow/templates/ai-skeleton/device/.gitkeep +0 -0
  200. package/plugins/flow/templates/ai-skeleton/docs/README.md +5 -0
  201. package/plugins/flow/templates/ai-skeleton/logs/.gitkeep +0 -0
  202. package/plugins/flow/templates/ai-skeleton/logs/README.md +13 -0
  203. package/plugins/flow/templates/ai-skeleton/plans/README.md +16 -0
  204. package/plugins/flow/templates/ai-skeleton/plans/archive/.gitkeep +0 -0
  205. package/plugins/flow/templates/ai-skeleton/release-guide.md +35 -0
  206. package/plugins/flow/templates/ai-skeleton/reviews/README.md +15 -0
  207. package/plugins/flow/templates/ai-skeleton/scenarios/README.md +26 -0
  208. package/plugins/flow/templates/ai-skeleton/scenarios/_lib/.gitkeep +0 -0
  209. package/plugins/flow/templates/ai-skeleton/state/STATE.md +25 -0
  210. package/plugins/flow/templates/ai-skeleton/templates/HANDOFF.md +32 -0
  211. package/plugins/flow/templates/ai-skeleton/workflows.config.json +74 -0
@@ -0,0 +1,2875 @@
1
+ @layer reset {
2
+ * {
3
+ box-sizing: border-box;
4
+ }
5
+
6
+ html, body {
7
+ background: var(--u-bg-0);
8
+ height: 100%;
9
+ color: var(--u-fg-0);
10
+ font-family: var(--u-font-sans);
11
+ -webkit-font-smoothing: antialiased;
12
+ -moz-osx-font-smoothing: grayscale;
13
+ margin: 0;
14
+ padding: 0;
15
+ font-size: 13px;
16
+ line-height: 1.45;
17
+ }
18
+
19
+ button {
20
+ font: inherit;
21
+ }
22
+
23
+ ::selection {
24
+ background: var(--u-accent-bg);
25
+ color: var(--u-fg-0);
26
+ }
27
+ }
28
+
29
+ @layer tokens {
30
+ :root, :root[data-theme="light"] {
31
+ --bg-0: oklch(97.5% .008 78);
32
+ --bg-1: oklch(95.5% .01 78);
33
+ --bg-2: oklch(93% .012 78);
34
+ --bg-3: oklch(89.5% .014 78);
35
+ --bg-4: oklch(85% .016 78);
36
+ --border-subtle: oklch(86% .014 70);
37
+ --border-default: oklch(74% .016 65);
38
+ --border-strong: oklch(48% .022 60);
39
+ --fg-0: oklch(20% .02 50);
40
+ --fg-1: oklch(38% .018 50);
41
+ --fg-2: oklch(52% .015 50);
42
+ --fg-3: oklch(68% .012 50);
43
+ --accent: oklch(56% .17 50);
44
+ --accent-hover: oklch(50% .17 50);
45
+ --accent-active: oklch(44% .17 50);
46
+ --accent-fg: oklch(98% .008 78);
47
+ --accent-tint: oklch(92% .04 55);
48
+ --status-success: oklch(48% .14 145);
49
+ --status-warn: oklch(64% .16 88);
50
+ --status-error: oklch(50% .2 25);
51
+ --status-info: oklch(50% .13 230);
52
+ --mono-cell-bg: oklch(95% .01 78);
53
+ --mono-cell-fg: oklch(28% .02 30);
54
+ --mono-rule: oklch(82% .014 65);
55
+ color-scheme: light;
56
+ }
57
+
58
+ [data-theme="dark"] {
59
+ --bg-0: oklch(13% .012 60);
60
+ --bg-1: oklch(17% .014 60);
61
+ --bg-2: oklch(20% .016 60);
62
+ --bg-3: oklch(24% .018 60);
63
+ --bg-4: oklch(28% .02 60);
64
+ --border-subtle: oklch(28% .018 60);
65
+ --border-default: oklch(40% .022 60);
66
+ --border-strong: oklch(58% .026 60);
67
+ --fg-0: oklch(94% .014 80);
68
+ --fg-1: oklch(78% .014 80);
69
+ --fg-2: oklch(60% .012 80);
70
+ --fg-3: oklch(44% .01 80);
71
+ --accent: oklch(72% .16 55);
72
+ --accent-hover: oklch(78% .16 55);
73
+ --accent-active: oklch(84% .16 55);
74
+ --accent-fg: oklch(14% .02 50);
75
+ --accent-tint: oklch(28% .06 55);
76
+ --status-success: oklch(72% .16 145);
77
+ --status-warn: oklch(80% .16 88);
78
+ --status-error: oklch(68% .2 25);
79
+ --status-info: oklch(72% .13 230);
80
+ --mono-cell-bg: oklch(20% .016 60);
81
+ --mono-cell-fg: oklch(88% .014 60);
82
+ --mono-rule: oklch(32% .02 60);
83
+ color-scheme: dark;
84
+ }
85
+
86
+ :root {
87
+ --radius-xs: 0;
88
+ --radius-sm: 2px;
89
+ --radius-md: 4px;
90
+ --radius-lg: 4px;
91
+ --radius-xl: 4px;
92
+ --radius-pill: 0;
93
+ --space-0: 0;
94
+ --space-1: 2px;
95
+ --space-2: 4px;
96
+ --space-3: 8px;
97
+ --space-4: 12px;
98
+ --space-5: 16px;
99
+ --space-6: 24px;
100
+ --space-7: 32px;
101
+ --space-8: 48px;
102
+ --space-9: 64px;
103
+ --font-display: "Berkeley Mono", "TX-02", "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
104
+ --font-body: "Berkeley Mono", "TX-02", "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
105
+ --font-mono: "Berkeley Mono", "TX-02", "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
106
+ --type-xs: 11px;
107
+ --lh-xs: 16px;
108
+ --type-sm: 12px;
109
+ --lh-sm: 18px;
110
+ --type-base: 13px;
111
+ --lh-base: 20px;
112
+ --type-md: 15px;
113
+ --lh-md: 24px;
114
+ --type-lg: 18px;
115
+ --lh-lg: 28px;
116
+ --type-xl: 22px;
117
+ --lh-xl: 30px;
118
+ --type-2xl: 28px;
119
+ --lh-2xl: 36px;
120
+ --type-3xl: 40px;
121
+ --lh-3xl: 48px;
122
+ --tracking-tight: -.01em;
123
+ --tracking-normal: 0;
124
+ --tracking-wide: .04em;
125
+ --tracking-sku: .12em;
126
+ --tracking-eyebrow: .18em;
127
+ --dur-flip: 90ms;
128
+ --dur-panel: .14s;
129
+ --dur-route: 1ms;
130
+ --dur-soft: .18s;
131
+ --ease-out: cubic-bezier(.22, 1, .36, 1);
132
+ --ease-in-out: cubic-bezier(.65, 0, .35, 1);
133
+ --rule-thin: 1px solid var(--border-default);
134
+ --rule-strong: 1px solid var(--border-strong);
135
+ --rule-accent: 1px solid var(--accent);
136
+ --shadow-sm: none;
137
+ --shadow-md: none;
138
+ --shadow-lg: none;
139
+ --shadow-focus: 0 0 0 2px var(--accent);
140
+ --u-bg-0: var(--bg-0);
141
+ --u-bg-1: var(--bg-1);
142
+ --u-bg-2: var(--bg-2);
143
+ --u-bg-3: var(--bg-3);
144
+ --u-bg-4: var(--bg-4);
145
+ --u-bg-hover: var(--bg-2);
146
+ --u-bg-active: var(--bg-3);
147
+ --u-bg-selected: var(--accent-tint);
148
+ --u-fg-0: var(--fg-0);
149
+ --u-fg-1: var(--fg-1);
150
+ --u-fg-2: var(--fg-2);
151
+ --u-fg-3: var(--fg-3);
152
+ --u-border: var(--border-default);
153
+ --u-border-subtle: var(--border-subtle);
154
+ --u-border-strong: var(--border-strong);
155
+ --u-accent: var(--accent);
156
+ --u-accent-bg: var(--accent-tint);
157
+ --u-accent-line: var(--accent-hover);
158
+ --u-accent-strong: var(--accent-active);
159
+ --u-accent-fg: var(--accent-fg);
160
+ --u-status-success: var(--status-success);
161
+ --u-status-warn: var(--status-warn);
162
+ --u-status-error: var(--status-error);
163
+ --u-status-info: var(--status-info);
164
+ --u-status-live: var(--status-error);
165
+ --u-r-xs: var(--radius-xs);
166
+ --u-r-sm: var(--radius-sm);
167
+ --u-r-md: var(--radius-md);
168
+ --u-r-lg: var(--radius-md);
169
+ --u-r-pill: var(--radius-md);
170
+ --u-s-1: var(--space-2);
171
+ --u-s-2: var(--space-3);
172
+ --u-s-3: var(--space-4);
173
+ --u-s-4: var(--space-5);
174
+ --u-s-5: var(--space-6);
175
+ --u-font-display: var(--font-display);
176
+ --u-font-body: var(--font-body);
177
+ --u-font-sans: var(--font-body);
178
+ --u-font-mono: var(--font-mono);
179
+ --u-mono-cell-bg: var(--mono-cell-bg);
180
+ --u-mono-cell-fg: var(--mono-cell-fg);
181
+ --u-mono-rule: var(--mono-rule);
182
+ --u-sidebar-w: 320px;
183
+ --u-rsidebar-w: 360px;
184
+ --u-header-h: 44px;
185
+ --u-status-h: 28px;
186
+ }
187
+
188
+ @media (prefers-color-scheme: dark) {
189
+ :root:not([data-theme]) {
190
+ --bg-0: oklch(13% .012 60);
191
+ --bg-1: oklch(17% .014 60);
192
+ --bg-2: oklch(20% .016 60);
193
+ --bg-3: oklch(24% .018 60);
194
+ --bg-4: oklch(28% .02 60);
195
+ --border-subtle: oklch(28% .018 60);
196
+ --border-default: oklch(40% .022 60);
197
+ --border-strong: oklch(58% .026 60);
198
+ --fg-0: oklch(94% .014 80);
199
+ --fg-1: oklch(78% .014 80);
200
+ --fg-2: oklch(60% .012 80);
201
+ --fg-3: oklch(44% .01 80);
202
+ --accent: oklch(72% .16 55);
203
+ --accent-hover: oklch(78% .16 55);
204
+ --accent-active: oklch(84% .16 55);
205
+ --accent-fg: oklch(14% .02 50);
206
+ --accent-tint: oklch(28% .06 55);
207
+ --status-success: oklch(72% .16 145);
208
+ --status-warn: oklch(80% .16 88);
209
+ --status-error: oklch(68% .2 25);
210
+ --status-info: oklch(72% .13 230);
211
+ --mono-cell-bg: oklch(20% .016 60);
212
+ --mono-cell-fg: oklch(88% .014 60);
213
+ --mono-rule: oklch(32% .02 60);
214
+ color-scheme: dark;
215
+ }
216
+ }
217
+
218
+ @media (prefers-reduced-motion: reduce) {
219
+ :root {
220
+ --dur-flip: 1ms;
221
+ --dur-panel: 1ms;
222
+ --dur-route: 1ms;
223
+ --dur-soft: 1ms;
224
+ }
225
+ }
226
+ }
227
+
228
+ @layer layout {
229
+ .app {
230
+ grid-template-columns: var(--u-sidebar-w) minmax(0, 1fr);
231
+ width: 100vw;
232
+ height: 100vh;
233
+ display: grid;
234
+ overflow: hidden;
235
+ }
236
+
237
+ .app.with-rsidebar {
238
+ grid-template-columns: var(--u-sidebar-w) minmax(0, 1fr) var(--u-rsidebar-w);
239
+ }
240
+
241
+ .app.no-sidebar {
242
+ grid-template-columns: 0 minmax(0, 1fr);
243
+ }
244
+
245
+ .app.no-sidebar.with-rsidebar {
246
+ grid-template-columns: 0 minmax(0, 1fr) var(--u-rsidebar-w);
247
+ }
248
+
249
+ .app.no-sidebar > .sidebar {
250
+ visibility: hidden;
251
+ pointer-events: none;
252
+ }
253
+ }
254
+
255
+ @layer shell {
256
+ .sidebar {
257
+ background: var(--u-bg-1);
258
+ border-right: 1px solid var(--u-border);
259
+ min-height: 0;
260
+ font-family: var(--u-font-mono);
261
+ font-size: var(--type-xs);
262
+ flex-direction: column;
263
+ display: flex;
264
+ }
265
+
266
+ .tree-panel-hd {
267
+ padding: 8px var(--u-s-3) 6px;
268
+ letter-spacing: var(--tracking-sku);
269
+ text-transform: uppercase;
270
+ color: var(--u-fg-0);
271
+ font-size: 10px;
272
+ font-weight: 700;
273
+ font-family: var(--u-font-mono);
274
+ border-bottom: 1px solid var(--u-border);
275
+ background: var(--u-bg-2);
276
+ flex: none;
277
+ justify-content: space-between;
278
+ align-items: baseline;
279
+ display: flex;
280
+ }
281
+
282
+ .tree-panel-hd .ct {
283
+ color: var(--u-fg-2);
284
+ align-items: center;
285
+ gap: 6px;
286
+ font-weight: 500;
287
+ display: inline-flex;
288
+ }
289
+
290
+ .tree-panel-hd .live-dot {
291
+ background: var(--u-fg-3);
292
+ width: 6px;
293
+ height: 6px;
294
+ transition: background var(--dur-panel) var(--ease-out);
295
+ flex: none;
296
+ }
297
+
298
+ .tree-panel-hd .live-dot.connected {
299
+ background: var(--u-status-success);
300
+ }
301
+
302
+ .tree-panel-search {
303
+ padding: 5px var(--u-s-3);
304
+ background: var(--u-bg-1);
305
+ border-bottom: 1px solid var(--u-border-subtle);
306
+ flex: none;
307
+ align-items: center;
308
+ gap: 6px;
309
+ display: flex;
310
+ }
311
+
312
+ .tree-panel-search svg {
313
+ color: var(--u-fg-2);
314
+ flex: none;
315
+ }
316
+
317
+ .tree-panel-search input {
318
+ background: var(--u-bg-0);
319
+ border: 1px solid var(--u-border);
320
+ color: var(--u-fg-0);
321
+ font-size: 11px;
322
+ font-family: var(--u-font-mono);
323
+ min-width: 0;
324
+ transition: border-color var(--dur-flip) var(--ease-out);
325
+ border-radius: 0;
326
+ outline: none;
327
+ flex: 1;
328
+ padding: 3px 8px;
329
+ }
330
+
331
+ .tree-panel-search input::placeholder {
332
+ color: var(--u-fg-3);
333
+ }
334
+
335
+ .tree-panel-search input:focus-visible {
336
+ border-color: var(--u-border-strong);
337
+ box-shadow: var(--shadow-focus);
338
+ }
339
+
340
+ .search-clear {
341
+ color: var(--u-fg-3);
342
+ cursor: pointer;
343
+ background: none;
344
+ border: 0;
345
+ padding: 0 4px;
346
+ font-size: 14px;
347
+ line-height: 1;
348
+ }
349
+
350
+ .search-clear:hover {
351
+ color: var(--u-fg-0);
352
+ }
353
+
354
+ .search-kbd {
355
+ font-family: var(--u-font-mono);
356
+ color: var(--u-fg-3);
357
+ border: 1px solid var(--u-border);
358
+ background: var(--u-bg-2);
359
+ flex: none;
360
+ padding: 1px 5px;
361
+ font-size: 10px;
362
+ }
363
+
364
+ .tree-panel-body {
365
+ min-height: 0;
366
+ padding: 4px 0 var(--u-s-3);
367
+ flex: 1;
368
+ overflow-y: auto;
369
+ }
370
+
371
+ .tree-panel-body::-webkit-scrollbar {
372
+ width: 6px;
373
+ }
374
+
375
+ .tree-panel-body::-webkit-scrollbar-thumb {
376
+ background: var(--u-border);
377
+ }
378
+
379
+ .tp-section-hd {
380
+ padding: 6px var(--u-s-3) 2px;
381
+ letter-spacing: var(--tracking-sku);
382
+ text-transform: uppercase;
383
+ color: var(--u-fg-1);
384
+ font-size: 9px;
385
+ font-weight: 700;
386
+ font-family: var(--u-font-mono);
387
+ justify-content: space-between;
388
+ align-items: baseline;
389
+ gap: 8px;
390
+ display: flex;
391
+ }
392
+
393
+ .tp-section-hd:not(:first-child) {
394
+ margin-top: 6px;
395
+ }
396
+
397
+ .tp-section-hd > span:first-child {
398
+ text-overflow: ellipsis;
399
+ white-space: nowrap;
400
+ overflow: hidden;
401
+ }
402
+
403
+ .tp-section-hd .pill {
404
+ background: var(--u-bg-2);
405
+ border: 1px solid var(--u-border);
406
+ letter-spacing: var(--tracking-sku);
407
+ color: var(--u-fg-2);
408
+ font-size: 9px;
409
+ font-family: var(--u-font-mono);
410
+ flex: none;
411
+ padding: 0 5px;
412
+ font-weight: 600;
413
+ }
414
+
415
+ .tp-row {
416
+ padding: 2px var(--u-s-3);
417
+ color: var(--u-fg-1);
418
+ font-family: var(--u-font-mono);
419
+ cursor: pointer;
420
+ text-align: left;
421
+ background: none;
422
+ border: 0;
423
+ border-left: 2px solid #0000;
424
+ align-items: center;
425
+ gap: 4px;
426
+ width: 100%;
427
+ font-size: 11px;
428
+ line-height: 1.55;
429
+ display: flex;
430
+ }
431
+
432
+ .tp-row:hover {
433
+ background: var(--u-bg-2);
434
+ color: var(--u-fg-0);
435
+ }
436
+
437
+ .tp-row:focus-visible {
438
+ box-shadow: var(--shadow-focus);
439
+ z-index: 1;
440
+ outline: none;
441
+ position: relative;
442
+ }
443
+
444
+ .tp-row .glyph {
445
+ text-align: center;
446
+ width: 12px;
447
+ color: var(--u-fg-2);
448
+ flex: none;
449
+ font-size: 10px;
450
+ display: inline-block;
451
+ }
452
+
453
+ .tp-row .name {
454
+ text-overflow: ellipsis;
455
+ white-space: nowrap;
456
+ flex: 1;
457
+ min-width: 0;
458
+ overflow: hidden;
459
+ }
460
+
461
+ .tp-row.dir {
462
+ color: var(--u-fg-0);
463
+ font-weight: 600;
464
+ }
465
+
466
+ .tp-row.dir .glyph {
467
+ color: var(--u-fg-1);
468
+ }
469
+
470
+ .tp-row.sel {
471
+ background: var(--u-accent-bg);
472
+ color: var(--u-fg-0);
473
+ border-left-color: var(--u-border-strong);
474
+ font-weight: 600;
475
+ }
476
+
477
+ .tp-row.sel .glyph {
478
+ color: var(--u-accent);
479
+ }
480
+
481
+ .tp-row.modified .name:after {
482
+ content: "●";
483
+ color: var(--u-status-warn);
484
+ vertical-align: middle;
485
+ margin-left: 6px;
486
+ font-size: 8px;
487
+ }
488
+
489
+ .tp-row.star:before {
490
+ content: "★";
491
+ color: var(--u-accent);
492
+ flex: none;
493
+ margin-right: 4px;
494
+ font-size: 9px;
495
+ }
496
+
497
+ .tp-row .badge {
498
+ background: var(--u-accent);
499
+ color: var(--u-accent-fg);
500
+ letter-spacing: var(--tracking-sku);
501
+ font-size: 9px;
502
+ font-weight: 700;
503
+ font-family: var(--u-font-mono);
504
+ flex: none;
505
+ padding: 0 5px;
506
+ }
507
+
508
+ .tp-row.muted, .tp-row.muted .name, .tp-row.muted .glyph {
509
+ color: var(--u-fg-3);
510
+ }
511
+
512
+ .tp-row.muted[aria-disabled="true"] {
513
+ cursor: default;
514
+ }
515
+
516
+ .tp-row.muted[aria-disabled="true"]:hover {
517
+ color: var(--u-fg-3);
518
+ background: none;
519
+ }
520
+
521
+ .tp-row[aria-disabled="true"] {
522
+ cursor: default;
523
+ }
524
+
525
+ .tp-empty {
526
+ padding: 4px var(--u-s-3);
527
+ color: var(--u-fg-3);
528
+ font-size: 11px;
529
+ font-style: italic;
530
+ }
531
+
532
+ .cheatsheet {
533
+ padding: var(--u-s-3) var(--u-s-2) var(--u-s-3);
534
+ border-top: 1px solid var(--u-border);
535
+ background: var(--u-bg-1);
536
+ margin-top: auto;
537
+ }
538
+
539
+ .cheatsheet > details {
540
+ margin-bottom: 4px;
541
+ }
542
+
543
+ .cheatsheet > details > summary {
544
+ padding: 4px var(--u-s-2);
545
+ color: var(--u-fg-1);
546
+ border-radius: var(--u-r-sm);
547
+ cursor: pointer;
548
+ align-items: center;
549
+ gap: var(--u-s-1);
550
+ font-size: 11px;
551
+ font-weight: 500;
552
+ list-style: none;
553
+ display: flex;
554
+ }
555
+
556
+ .cheatsheet > details > summary::-webkit-details-marker {
557
+ display: none;
558
+ }
559
+
560
+ .cheatsheet > details > summary:before {
561
+ content: "▸";
562
+ color: var(--u-fg-3);
563
+ width: 12px;
564
+ font-size: 10px;
565
+ transition: transform .1s;
566
+ display: inline-block;
567
+ }
568
+
569
+ .cheatsheet > details[open] > summary:before {
570
+ transform: rotate(90deg);
571
+ }
572
+
573
+ .cheatsheet > details > summary:hover {
574
+ background: var(--u-bg-hover);
575
+ }
576
+
577
+ .cheatsheet ul, .cheatsheet ol {
578
+ padding: 4px var(--u-s-2) var(--u-s-2) var(--u-s-4);
579
+ margin: 0;
580
+ font-size: 11px;
581
+ line-height: 1.6;
582
+ }
583
+
584
+ .cheatsheet li {
585
+ align-items: baseline;
586
+ gap: var(--u-s-2);
587
+ padding: 2px 0;
588
+ display: flex;
589
+ }
590
+
591
+ .cheatsheet li > span {
592
+ color: var(--u-fg-3);
593
+ text-align: right;
594
+ margin-left: auto;
595
+ font-size: 10px;
596
+ }
597
+
598
+ .cheatsheet kbd {
599
+ font-family: var(--u-font-mono);
600
+ background: var(--u-bg-2);
601
+ border: 1px solid var(--u-border);
602
+ border-radius: var(--u-r-xs);
603
+ color: var(--u-fg-0);
604
+ padding: 1px 5px;
605
+ font-size: 10px;
606
+ }
607
+
608
+ .cheatsheet code {
609
+ font-family: var(--u-font-mono);
610
+ color: var(--u-accent);
611
+ background: var(--u-accent-bg);
612
+ border-radius: var(--u-r-xs);
613
+ padding: 1px 4px;
614
+ font-size: 10px;
615
+ }
616
+
617
+ .cheatsheet code i {
618
+ color: var(--u-fg-2);
619
+ font-style: normal;
620
+ }
621
+
622
+ .cheatsheet ul.cmds li, .cheatsheet ul.files li {
623
+ flex-direction: column;
624
+ align-items: flex-start;
625
+ gap: 2px;
626
+ }
627
+
628
+ .cheatsheet ul.cmds li > span, .cheatsheet ul.files li > span {
629
+ text-align: left;
630
+ margin-left: 0;
631
+ }
632
+
633
+ .main {
634
+ flex-direction: column;
635
+ min-width: 0;
636
+ display: flex;
637
+ }
638
+
639
+ .mb {
640
+ background: var(--u-bg-2);
641
+ border-bottom: 1px solid var(--u-fg-0);
642
+ height: 30px;
643
+ font-family: var(--u-font-mono);
644
+ font-size: var(--type-xs);
645
+ flex-shrink: 0;
646
+ align-items: stretch;
647
+ gap: 0;
648
+ min-width: 0;
649
+ padding: 0;
650
+ display: flex;
651
+ position: relative;
652
+ }
653
+
654
+ .mb-brand {
655
+ padding: 0 var(--u-s-3);
656
+ border-right: 1px solid var(--u-border);
657
+ color: var(--u-fg-0);
658
+ letter-spacing: var(--tracking-sku);
659
+ text-transform: uppercase;
660
+ align-items: center;
661
+ gap: 6px;
662
+ font-size: 11px;
663
+ font-weight: 700;
664
+ display: flex;
665
+ }
666
+
667
+ .mb-brand .dot {
668
+ background: var(--u-accent);
669
+ flex: none;
670
+ width: 8px;
671
+ height: 8px;
672
+ }
673
+
674
+ .mb-menus {
675
+ align-items: stretch;
676
+ display: flex;
677
+ }
678
+
679
+ .mb-menu {
680
+ font-family: var(--u-font-mono);
681
+ font-size: var(--type-xs);
682
+ color: var(--u-fg-1);
683
+ cursor: pointer;
684
+ white-space: nowrap;
685
+ background: none;
686
+ border: 0;
687
+ align-items: center;
688
+ height: 100%;
689
+ padding: 0 12px;
690
+ display: flex;
691
+ }
692
+
693
+ .mb-menu:hover {
694
+ background: var(--u-bg-3);
695
+ color: var(--u-fg-0);
696
+ }
697
+
698
+ .mb-menu[aria-expanded="true"] {
699
+ background: var(--u-accent);
700
+ color: var(--u-accent-fg);
701
+ font-weight: 600;
702
+ }
703
+
704
+ .mb-menu:focus-visible {
705
+ box-shadow: inset 0 0 0 2px var(--u-accent);
706
+ outline: none;
707
+ }
708
+
709
+ .mb-menu:disabled, .mb-menu[aria-disabled="true"] {
710
+ color: var(--u-fg-3);
711
+ cursor: not-allowed;
712
+ }
713
+
714
+ .mb-menu:disabled:hover, .mb-menu[aria-disabled="true"]:hover {
715
+ color: var(--u-fg-3);
716
+ background: none;
717
+ }
718
+
719
+ .mb-spacer {
720
+ flex: 1;
721
+ min-width: 0;
722
+ }
723
+
724
+ .mb-status {
725
+ padding: 0 var(--u-s-3);
726
+ align-items: center;
727
+ gap: var(--u-s-3);
728
+ color: var(--u-fg-2);
729
+ letter-spacing: var(--tracking-sku);
730
+ text-transform: uppercase;
731
+ border-left: 1px solid var(--u-border);
732
+ white-space: nowrap;
733
+ flex-shrink: 1;
734
+ min-width: 0;
735
+ font-size: 10px;
736
+ display: flex;
737
+ overflow: hidden;
738
+ }
739
+
740
+ .mb-status > * {
741
+ flex: none;
742
+ }
743
+
744
+ .mb-status > .file {
745
+ flex: 0 auto;
746
+ min-width: 0;
747
+ }
748
+
749
+ .mb-status .cv-stamp {
750
+ background: var(--u-fg-0);
751
+ color: var(--u-bg-0);
752
+ padding: 2px 6px;
753
+ font-size: 10px;
754
+ font-weight: 700;
755
+ }
756
+
757
+ .mb-status .file {
758
+ color: var(--u-fg-1);
759
+ text-overflow: ellipsis;
760
+ white-space: nowrap;
761
+ max-width: 280px;
762
+ overflow: hidden;
763
+ }
764
+
765
+ .mb-status .file b {
766
+ color: var(--u-fg-0);
767
+ font-weight: 700;
768
+ }
769
+
770
+ .mb-status .sep {
771
+ background: var(--u-border);
772
+ flex: none;
773
+ width: 1px;
774
+ height: 14px;
775
+ display: inline-block;
776
+ }
777
+
778
+ .mb-status b {
779
+ color: var(--u-fg-0);
780
+ font-weight: 700;
781
+ }
782
+
783
+ .mb-status .ok {
784
+ color: var(--u-status-success);
785
+ }
786
+
787
+ .mb-status .warn {
788
+ color: var(--u-accent);
789
+ }
790
+
791
+ .mb-status .accent-dot {
792
+ color: var(--u-accent);
793
+ font-size: 8px;
794
+ }
795
+
796
+ .mb-dropdown {
797
+ background: var(--u-bg-2);
798
+ border: 1px solid var(--u-fg-0);
799
+ z-index: 100;
800
+ min-width: 240px;
801
+ font-family: var(--u-font-mono);
802
+ font-size: var(--type-xs);
803
+ box-shadow: 4px 4px 0 var(--u-fg-0);
804
+ padding: 4px 0;
805
+ position: absolute;
806
+ top: 30px;
807
+ }
808
+
809
+ .mb-dd-hd {
810
+ letter-spacing: var(--tracking-sku);
811
+ text-transform: uppercase;
812
+ color: var(--u-fg-2);
813
+ padding: 4px 12px 2px;
814
+ font-size: 9px;
815
+ font-weight: 600;
816
+ }
817
+
818
+ .mb-dd-item {
819
+ cursor: pointer;
820
+ color: var(--u-fg-0);
821
+ text-align: left;
822
+ width: 100%;
823
+ font-family: var(--u-font-mono);
824
+ font-size: var(--type-xs);
825
+ background: none;
826
+ border: 0;
827
+ justify-content: space-between;
828
+ align-items: center;
829
+ gap: 16px;
830
+ padding: 5px 12px;
831
+ display: flex;
832
+ }
833
+
834
+ .mb-dd-item:hover {
835
+ background: var(--u-bg-3);
836
+ }
837
+
838
+ .mb-dd-item.active {
839
+ color: var(--u-accent);
840
+ }
841
+
842
+ .mb-dd-item[aria-disabled="true"] {
843
+ color: var(--u-fg-3);
844
+ cursor: not-allowed;
845
+ }
846
+
847
+ .mb-dd-item[aria-disabled="true"]:hover {
848
+ background: none;
849
+ }
850
+
851
+ .mb-dd-item .lbl {
852
+ align-items: center;
853
+ gap: 6px;
854
+ display: inline-flex;
855
+ }
856
+
857
+ .mb-dd-item .check {
858
+ color: var(--u-accent);
859
+ text-align: left;
860
+ width: 12px;
861
+ display: inline-block;
862
+ }
863
+
864
+ .mb-dd-item .shortcut {
865
+ color: var(--u-fg-2);
866
+ font-family: var(--u-font-mono);
867
+ letter-spacing: var(--tracking-wide);
868
+ flex: none;
869
+ font-size: 10px;
870
+ }
871
+
872
+ .mb-dd-item .phase-tag {
873
+ color: var(--u-fg-3);
874
+ letter-spacing: var(--tracking-sku);
875
+ text-transform: uppercase;
876
+ font-size: 9px;
877
+ }
878
+
879
+ .mb-dd-sep {
880
+ background: var(--u-border);
881
+ height: 1px;
882
+ margin: 4px 0;
883
+ }
884
+
885
+ .header {
886
+ align-items: center;
887
+ gap: var(--u-s-3);
888
+ padding: var(--u-s-2) var(--u-s-3);
889
+ background: var(--u-bg-1);
890
+ border-bottom: 1px solid var(--u-border);
891
+ min-height: var(--u-header-h);
892
+ font-family: var(--u-font-mono);
893
+ display: flex;
894
+ }
895
+
896
+ .tabs {
897
+ min-width: 0;
898
+ margin: calc(var(--u-s-2) * -1) calc(var(--u-s-3) * -1);
899
+ flex: 1;
900
+ align-self: stretch;
901
+ gap: 0;
902
+ padding: 0;
903
+ display: flex;
904
+ overflow-x: auto;
905
+ }
906
+
907
+ .tabs::-webkit-scrollbar {
908
+ height: 0;
909
+ }
910
+
911
+ .tab {
912
+ align-items: center;
913
+ gap: var(--u-s-2);
914
+ padding: var(--u-s-2) var(--u-s-3);
915
+ background: var(--u-bg-1);
916
+ border: 0;
917
+ border-right: 1px solid var(--u-border-subtle);
918
+ font-size: var(--type-xs);
919
+ font-family: var(--u-font-mono);
920
+ letter-spacing: var(--tracking-wide);
921
+ cursor: pointer;
922
+ white-space: nowrap;
923
+ max-width: 240px;
924
+ color: var(--u-fg-2);
925
+ transition: color var(--dur-flip) var(--ease-out),
926
+ background var(--dur-flip) var(--ease-out);
927
+ border-radius: 0;
928
+ display: flex;
929
+ position: relative;
930
+ }
931
+
932
+ .tab:hover {
933
+ color: var(--u-fg-0);
934
+ background: var(--u-bg-2);
935
+ }
936
+
937
+ .tab.active {
938
+ background: var(--u-bg-0);
939
+ color: var(--u-fg-0);
940
+ font-weight: 700;
941
+ }
942
+
943
+ .tab.active:after {
944
+ content: "";
945
+ background: var(--u-accent);
946
+ height: 2px;
947
+ position: absolute;
948
+ bottom: -1px;
949
+ left: 0;
950
+ right: 0;
951
+ }
952
+
953
+ .tab:focus-visible {
954
+ box-shadow: var(--shadow-focus);
955
+ z-index: 2;
956
+ outline: none;
957
+ }
958
+
959
+ .tab .name {
960
+ text-overflow: ellipsis;
961
+ flex: 1;
962
+ min-width: 0;
963
+ overflow: hidden;
964
+ }
965
+
966
+ .tab .close {
967
+ color: var(--u-fg-3);
968
+ cursor: pointer;
969
+ border-radius: var(--u-r-xs);
970
+ background: none;
971
+ border: 0;
972
+ padding: 0 4px;
973
+ font-family: inherit;
974
+ font-size: 14px;
975
+ line-height: 1;
976
+ }
977
+
978
+ .tab .close:hover {
979
+ background: var(--u-bg-3);
980
+ color: var(--u-fg-0);
981
+ }
982
+
983
+ .actions {
984
+ gap: var(--u-s-1);
985
+ align-items: center;
986
+ display: flex;
987
+ }
988
+
989
+ .actions button, .actions a {
990
+ color: var(--u-fg-1);
991
+ border: 1px solid var(--u-border);
992
+ padding: 4px var(--u-s-3);
993
+ font-size: var(--type-xs);
994
+ border-radius: var(--u-r-sm);
995
+ cursor: pointer;
996
+ line-height: 1.2;
997
+ font-family: var(--u-font-mono);
998
+ letter-spacing: var(--tracking-wide);
999
+ transition: color var(--dur-flip) var(--ease-out),
1000
+ background var(--dur-flip) var(--ease-out),
1001
+ border-color var(--dur-flip) var(--ease-out);
1002
+ background: none;
1003
+ align-items: center;
1004
+ gap: 6px;
1005
+ text-decoration: none;
1006
+ display: inline-flex;
1007
+ position: relative;
1008
+ }
1009
+
1010
+ .actions button:hover, .actions a:hover {
1011
+ background: var(--u-bg-2);
1012
+ color: var(--u-fg-0);
1013
+ border-color: var(--u-border-strong);
1014
+ }
1015
+
1016
+ .actions button:focus-visible, .actions a:focus-visible {
1017
+ box-shadow: var(--shadow-focus);
1018
+ z-index: 1;
1019
+ outline: none;
1020
+ }
1021
+
1022
+ .actions a.icon-only {
1023
+ color: var(--u-fg-2);
1024
+ border-color: #0000;
1025
+ }
1026
+
1027
+ .actions a.icon-only:hover {
1028
+ color: var(--u-fg-0);
1029
+ background: var(--u-bg-2);
1030
+ border-color: var(--u-border);
1031
+ }
1032
+
1033
+ .theme-toggle-label {
1034
+ text-transform: lowercase;
1035
+ }
1036
+
1037
+ .viewport {
1038
+ background-color: var(--u-bg-1);
1039
+ background-image: linear-gradient(var(--u-border-subtle) 1px, transparent 1px),
1040
+ linear-gradient(90deg, var(--u-border-subtle) 1px, transparent 1px);
1041
+ background-size: 24px 24px;
1042
+ flex: 1;
1043
+ position: relative;
1044
+ }
1045
+
1046
+ .viewport > iframe {
1047
+ background: var(--u-bg-0);
1048
+ border: 0;
1049
+ width: 100%;
1050
+ height: 100%;
1051
+ display: none;
1052
+ position: absolute;
1053
+ inset: 0;
1054
+ }
1055
+
1056
+ .viewport > iframe.active {
1057
+ display: block;
1058
+ }
1059
+
1060
+ .empty-state {
1061
+ height: 100%;
1062
+ color: var(--u-fg-3);
1063
+ justify-content: center;
1064
+ align-items: center;
1065
+ gap: var(--u-s-4);
1066
+ text-align: center;
1067
+ flex-direction: column;
1068
+ padding: 48px;
1069
+ display: flex;
1070
+ }
1071
+
1072
+ .empty-state .big {
1073
+ font-family: var(--u-font-display);
1074
+ color: var(--u-fg-1);
1075
+ letter-spacing: -.01em;
1076
+ font-size: 18px;
1077
+ font-weight: 600;
1078
+ }
1079
+
1080
+ .empty-state .small {
1081
+ max-width: 480px;
1082
+ font-size: 12px;
1083
+ line-height: 1.6;
1084
+ }
1085
+
1086
+ .empty-state .small kbd {
1087
+ font-family: var(--u-font-mono);
1088
+ background: var(--u-bg-2);
1089
+ border: 1px solid var(--u-border);
1090
+ border-radius: var(--u-r-xs);
1091
+ color: var(--u-fg-1);
1092
+ padding: 1px 6px;
1093
+ font-size: 11px;
1094
+ }
1095
+
1096
+ .empty-state .small code {
1097
+ font-family: var(--u-font-mono);
1098
+ background: var(--u-bg-2);
1099
+ border-radius: var(--u-r-xs);
1100
+ color: var(--u-accent);
1101
+ padding: 1px 4px;
1102
+ font-size: 11px;
1103
+ }
1104
+
1105
+ .statusbar {
1106
+ font-family: var(--u-font-mono);
1107
+ color: var(--u-fg-2);
1108
+ letter-spacing: var(--tracking-wide);
1109
+ background: var(--u-bg-1);
1110
+ border-top: 1px solid var(--u-border);
1111
+ height: var(--u-status-h);
1112
+ align-items: stretch;
1113
+ min-width: 0;
1114
+ padding: 0;
1115
+ font-size: 10px;
1116
+ display: flex;
1117
+ overflow: hidden;
1118
+ }
1119
+
1120
+ .sb-slot {
1121
+ align-items: center;
1122
+ gap: var(--u-s-2);
1123
+ padding: 0 var(--u-s-3);
1124
+ border-right: 1px solid var(--u-border-subtle);
1125
+ min-width: 0;
1126
+ display: inline-flex;
1127
+ }
1128
+
1129
+ .sb-key {
1130
+ color: var(--u-fg-3);
1131
+ text-transform: uppercase;
1132
+ letter-spacing: var(--tracking-sku);
1133
+ }
1134
+
1135
+ .sb-active {
1136
+ flex: 0 auto;
1137
+ min-width: 0;
1138
+ }
1139
+
1140
+ .sb-active .sb-file {
1141
+ color: var(--u-fg-1);
1142
+ text-overflow: ellipsis;
1143
+ white-space: nowrap;
1144
+ max-width: 360px;
1145
+ overflow: hidden;
1146
+ }
1147
+
1148
+ .sb-selected {
1149
+ flex: auto;
1150
+ min-width: 0;
1151
+ }
1152
+
1153
+ .sb-selected .sb-dot {
1154
+ color: var(--u-accent);
1155
+ }
1156
+
1157
+ .sb-selected .sb-sel-text {
1158
+ color: var(--u-fg-1);
1159
+ text-overflow: ellipsis;
1160
+ white-space: nowrap;
1161
+ flex: 1;
1162
+ min-width: 0;
1163
+ overflow: hidden;
1164
+ }
1165
+
1166
+ .sb-clear-sel, .sb-add-comment {
1167
+ color: var(--u-fg-2);
1168
+ border: 1px solid var(--u-border);
1169
+ border-radius: var(--u-r-xs);
1170
+ letter-spacing: var(--tracking-sku);
1171
+ text-transform: uppercase;
1172
+ cursor: pointer;
1173
+ background: none;
1174
+ padding: 1px 6px;
1175
+ font-family: inherit;
1176
+ font-size: 10px;
1177
+ line-height: 1.4;
1178
+ }
1179
+
1180
+ .sb-add-comment {
1181
+ color: var(--u-accent);
1182
+ border-color: var(--u-accent);
1183
+ }
1184
+
1185
+ .sb-clear-sel:hover {
1186
+ color: var(--u-fg-0);
1187
+ background: var(--u-bg-2);
1188
+ border-color: var(--u-border-strong);
1189
+ }
1190
+
1191
+ .sb-add-comment:hover {
1192
+ background: var(--u-accent);
1193
+ color: var(--u-accent-fg);
1194
+ }
1195
+
1196
+ .sb-unread .sb-count {
1197
+ font-family: var(--u-font-mono);
1198
+ color: var(--u-fg-0);
1199
+ font-variant-numeric: tabular-nums;
1200
+ background: var(--u-bg-2);
1201
+ border: 1px solid var(--u-border);
1202
+ padding: 0 5px;
1203
+ font-size: 10px;
1204
+ font-weight: 700;
1205
+ }
1206
+
1207
+ .sb-live-dot {
1208
+ background: var(--u-fg-3);
1209
+ border-radius: 50%;
1210
+ flex: none;
1211
+ width: 7px;
1212
+ height: 7px;
1213
+ }
1214
+
1215
+ .sb-live-dot.connected {
1216
+ background: var(--u-status-error);
1217
+ }
1218
+
1219
+ .sb-live .sb-key {
1220
+ color: var(--u-fg-1);
1221
+ }
1222
+
1223
+ .sb-spacer {
1224
+ border-right: 1px solid var(--u-border-subtle);
1225
+ flex: 1 0 auto;
1226
+ }
1227
+
1228
+ .sb-theme {
1229
+ padding: 0 var(--u-s-2);
1230
+ border-right: 0;
1231
+ }
1232
+
1233
+ .sb-theme .theme-toggle {
1234
+ color: var(--u-fg-2);
1235
+ font-family: var(--u-font-mono);
1236
+ letter-spacing: var(--tracking-sku);
1237
+ text-transform: uppercase;
1238
+ padding: 2px var(--u-s-2);
1239
+ cursor: pointer;
1240
+ background: none;
1241
+ border: 0;
1242
+ align-items: center;
1243
+ gap: 6px;
1244
+ font-size: 10px;
1245
+ display: inline-flex;
1246
+ }
1247
+
1248
+ .sb-theme .theme-toggle:hover {
1249
+ color: var(--u-fg-0);
1250
+ background: var(--u-bg-2);
1251
+ }
1252
+
1253
+ .sb-theme .theme-toggle:focus-visible {
1254
+ box-shadow: var(--shadow-focus);
1255
+ outline: none;
1256
+ }
1257
+
1258
+ .theme-toggle-label {
1259
+ color: inherit;
1260
+ }
1261
+
1262
+ .filter-no-match {
1263
+ display: none !important;
1264
+ }
1265
+
1266
+ .wm {
1267
+ top: var(--u-s-4);
1268
+ left: var(--u-s-5);
1269
+ font-family: var(--u-font-display);
1270
+ color: var(--u-fg-0);
1271
+ pointer-events: none;
1272
+ z-index: 1;
1273
+ user-select: none;
1274
+ font-weight: 700;
1275
+ line-height: 1;
1276
+ position: absolute;
1277
+ }
1278
+
1279
+ .wm-glyph {
1280
+ letter-spacing: var(--tracking-tight);
1281
+ font-size: 40px;
1282
+ display: block;
1283
+ }
1284
+
1285
+ .wm-sub {
1286
+ font-size: var(--type-xs);
1287
+ letter-spacing: var(--tracking-sku);
1288
+ text-transform: uppercase;
1289
+ color: var(--u-fg-2);
1290
+ margin-top: var(--u-s-2);
1291
+ gap: var(--u-s-3);
1292
+ align-items: center;
1293
+ font-weight: 500;
1294
+ display: flex;
1295
+ }
1296
+
1297
+ .wm-sub b {
1298
+ color: var(--u-accent);
1299
+ font-weight: 700;
1300
+ }
1301
+
1302
+ .wm-sep {
1303
+ color: var(--u-fg-3);
1304
+ }
1305
+
1306
+ .sel-halo {
1307
+ border: 2px solid var(--u-accent);
1308
+ pointer-events: none;
1309
+ z-index: 5;
1310
+ position: absolute;
1311
+ inset: 0;
1312
+ }
1313
+
1314
+ .sel-halo:before, .sel-halo:after, .sel-halo > i:before, .sel-halo > i:after {
1315
+ content: "";
1316
+ background: var(--u-accent);
1317
+ width: 8px;
1318
+ height: 8px;
1319
+ position: absolute;
1320
+ }
1321
+
1322
+ .sel-halo:before {
1323
+ top: -3px;
1324
+ left: -3px;
1325
+ }
1326
+
1327
+ .sel-halo:after {
1328
+ top: -3px;
1329
+ right: -3px;
1330
+ }
1331
+
1332
+ .sel-halo > i:before {
1333
+ bottom: -3px;
1334
+ left: -3px;
1335
+ }
1336
+
1337
+ .sel-halo > i:after {
1338
+ bottom: -3px;
1339
+ right: -3px;
1340
+ }
1341
+ }
1342
+
1343
+ @layer components {
1344
+ .tab-system {
1345
+ background: var(--u-accent-bg);
1346
+ border-color: var(--u-accent-line);
1347
+ color: var(--u-accent);
1348
+ }
1349
+
1350
+ .tab-system:hover {
1351
+ background: var(--u-accent-bg);
1352
+ }
1353
+
1354
+ .tab-system.active {
1355
+ color: var(--u-accent);
1356
+ border-color: var(--u-accent);
1357
+ }
1358
+
1359
+ .system-view {
1360
+ background: var(--u-bg-0);
1361
+ display: none;
1362
+ position: absolute;
1363
+ inset: 0;
1364
+ overflow-y: auto;
1365
+ }
1366
+
1367
+ .system-view.active {
1368
+ display: block;
1369
+ }
1370
+
1371
+ .system-view::-webkit-scrollbar {
1372
+ width: 8px;
1373
+ }
1374
+
1375
+ .system-view::-webkit-scrollbar-thumb {
1376
+ background: var(--u-border);
1377
+ border-radius: var(--u-r-sm);
1378
+ }
1379
+
1380
+ .sv {
1381
+ max-width: 1280px;
1382
+ padding: var(--space-7) var(--space-7) var(--space-9);
1383
+ font-family: var(--u-font-mono);
1384
+ margin: 0 auto;
1385
+ }
1386
+
1387
+ .sv-empty {
1388
+ height: 50vh;
1389
+ color: var(--u-fg-3);
1390
+ place-items: center;
1391
+ display: grid;
1392
+ }
1393
+
1394
+ .sv-header {
1395
+ align-items: baseline;
1396
+ gap: var(--space-5);
1397
+ border-bottom: 2px solid var(--u-fg-0);
1398
+ padding-bottom: var(--u-s-3);
1399
+ margin-bottom: var(--u-s-5);
1400
+ grid-template-columns: auto 1fr auto;
1401
+ display: grid;
1402
+ }
1403
+
1404
+ .sv-sku {
1405
+ font-family: var(--u-font-mono);
1406
+ font-size: var(--type-lg);
1407
+ letter-spacing: var(--tracking-sku);
1408
+ text-transform: uppercase;
1409
+ color: var(--u-fg-0);
1410
+ font-weight: 700;
1411
+ }
1412
+
1413
+ .sv-title {
1414
+ font-family: var(--u-font-mono);
1415
+ font-size: var(--type-md);
1416
+ color: var(--u-fg-1);
1417
+ }
1418
+
1419
+ .sv-loc {
1420
+ font-family: var(--u-font-mono);
1421
+ letter-spacing: var(--tracking-sku);
1422
+ text-transform: uppercase;
1423
+ color: var(--u-fg-2);
1424
+ font-size: 10px;
1425
+ }
1426
+
1427
+ .sv-loc code {
1428
+ font-family: var(--u-font-mono);
1429
+ color: var(--u-accent);
1430
+ background: none;
1431
+ padding: 0;
1432
+ }
1433
+
1434
+ .sv-section {
1435
+ margin-bottom: var(--u-s-5);
1436
+ }
1437
+
1438
+ .sv-section h2 {
1439
+ font-family: var(--u-font-mono);
1440
+ color: var(--u-fg-2);
1441
+ text-transform: uppercase;
1442
+ letter-spacing: var(--tracking-sku);
1443
+ margin: 0 0 var(--u-s-3);
1444
+ padding-bottom: var(--u-s-2);
1445
+ border-bottom: 1px solid var(--u-border);
1446
+ justify-content: space-between;
1447
+ align-items: baseline;
1448
+ font-size: 10px;
1449
+ font-weight: 700;
1450
+ display: flex;
1451
+ }
1452
+
1453
+ .sv-section h2 .sv-h-num {
1454
+ color: var(--u-fg-1);
1455
+ font-variant-numeric: tabular-nums;
1456
+ font-weight: 600;
1457
+ }
1458
+
1459
+ .sv-section h3 {
1460
+ font-family: var(--u-font-mono);
1461
+ color: var(--u-fg-2);
1462
+ text-transform: uppercase;
1463
+ letter-spacing: var(--tracking-sku);
1464
+ margin: var(--u-s-3) 0 var(--u-s-2);
1465
+ align-items: baseline;
1466
+ gap: var(--u-s-2);
1467
+ font-size: 10px;
1468
+ font-weight: 700;
1469
+ display: flex;
1470
+ }
1471
+
1472
+ .sv-count {
1473
+ font-family: var(--u-font-mono);
1474
+ color: var(--u-fg-3);
1475
+ font-variant-numeric: tabular-nums;
1476
+ font-size: 11px;
1477
+ font-weight: 500;
1478
+ }
1479
+
1480
+ .sv-tokens-ladder {
1481
+ border: 1px solid var(--u-border);
1482
+ grid-template-columns: repeat(6, 1fr);
1483
+ gap: 0;
1484
+ display: grid;
1485
+ }
1486
+
1487
+ .sv-tok-cell {
1488
+ border-right: 1px solid var(--u-border);
1489
+ border-bottom: 1px solid var(--u-border);
1490
+ background: var(--u-bg-1);
1491
+ flex-direction: column;
1492
+ display: flex;
1493
+ }
1494
+
1495
+ .sv-tok-cell:nth-child(6n) {
1496
+ border-right: 0;
1497
+ }
1498
+
1499
+ .sv-tok-cell .sv-tok-swatch {
1500
+ border-bottom: 1px solid var(--u-border-subtle);
1501
+ height: 56px;
1502
+ }
1503
+
1504
+ .sv-tok-cell .sv-tok-meta {
1505
+ padding: var(--u-s-1) var(--u-s-2);
1506
+ justify-content: space-between;
1507
+ align-items: baseline;
1508
+ gap: var(--u-s-1);
1509
+ min-width: 0;
1510
+ display: flex;
1511
+ }
1512
+
1513
+ .sv-tok-cell .sv-tok-name {
1514
+ font-family: var(--u-font-mono);
1515
+ color: var(--u-fg-0);
1516
+ text-overflow: ellipsis;
1517
+ background: none;
1518
+ padding: 0;
1519
+ font-size: 10px;
1520
+ font-weight: 600;
1521
+ overflow: hidden;
1522
+ }
1523
+
1524
+ .sv-tok-cell .sv-tok-value {
1525
+ font-family: var(--u-font-mono);
1526
+ color: var(--u-fg-2);
1527
+ font-variant-numeric: tabular-nums;
1528
+ white-space: nowrap;
1529
+ text-overflow: ellipsis;
1530
+ font-size: 9px;
1531
+ overflow: hidden;
1532
+ }
1533
+
1534
+ .sv-type-list {
1535
+ display: block;
1536
+ }
1537
+
1538
+ .sv-type-row {
1539
+ gap: var(--u-s-4);
1540
+ padding: var(--u-s-2) 0;
1541
+ border-bottom: 1px solid var(--u-border-subtle);
1542
+ grid-template-columns: 120px 1fr;
1543
+ align-items: baseline;
1544
+ display: grid;
1545
+ }
1546
+
1547
+ .sv-type-tok {
1548
+ font-family: var(--u-font-mono);
1549
+ color: var(--u-accent);
1550
+ letter-spacing: var(--tracking-sku);
1551
+ text-transform: uppercase;
1552
+ background: none;
1553
+ padding: 0;
1554
+ font-size: 10px;
1555
+ }
1556
+
1557
+ .sv-type-sample {
1558
+ color: var(--u-fg-0);
1559
+ font-family: var(--u-font-mono);
1560
+ }
1561
+
1562
+ .sv-readme {
1563
+ font-family: var(--u-font-mono);
1564
+ color: var(--u-fg-1);
1565
+ background: var(--u-bg-1);
1566
+ border: 1px solid var(--u-border);
1567
+ border-radius: var(--u-r-md);
1568
+ padding: var(--u-s-4);
1569
+ white-space: pre-wrap;
1570
+ max-height: 480px;
1571
+ font-size: 12px;
1572
+ line-height: 1.6;
1573
+ overflow: auto;
1574
+ }
1575
+
1576
+ .sv-tokens-group {
1577
+ margin-bottom: var(--u-s-3);
1578
+ }
1579
+
1580
+ .sv-tokens {
1581
+ gap: var(--u-s-2);
1582
+ display: grid;
1583
+ }
1584
+
1585
+ .sv-tokens-color {
1586
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
1587
+ }
1588
+
1589
+ .sv-tokens-font, .sv-tokens-fontsize {
1590
+ grid-template-columns: 1fr;
1591
+ }
1592
+
1593
+ .sv-tokens-radius, .sv-tokens-shadow {
1594
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
1595
+ }
1596
+
1597
+ .sv-tokens-space, .sv-tokens-other, .sv-tokens-weight, .sv-tokens-leading, .sv-tokens-motion {
1598
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
1599
+ }
1600
+
1601
+ .tok {
1602
+ background: var(--u-bg-1);
1603
+ border: 1px solid var(--u-border);
1604
+ border-radius: var(--u-r-md);
1605
+ padding: var(--u-s-2);
1606
+ gap: var(--u-s-2);
1607
+ flex-direction: column;
1608
+ min-width: 0;
1609
+ display: flex;
1610
+ }
1611
+
1612
+ .tok-meta {
1613
+ flex-direction: column;
1614
+ gap: 2px;
1615
+ min-width: 0;
1616
+ font-size: 11px;
1617
+ display: flex;
1618
+ }
1619
+
1620
+ .tok-meta code {
1621
+ font-family: var(--u-font-mono);
1622
+ color: var(--u-fg-0);
1623
+ text-overflow: ellipsis;
1624
+ white-space: nowrap;
1625
+ font-size: 11px;
1626
+ overflow: hidden;
1627
+ }
1628
+
1629
+ .tok-meta span {
1630
+ font-family: var(--u-font-mono);
1631
+ color: var(--u-fg-3);
1632
+ text-overflow: ellipsis;
1633
+ white-space: nowrap;
1634
+ font-size: 10px;
1635
+ overflow: hidden;
1636
+ }
1637
+
1638
+ .tok-color {
1639
+ flex-direction: row;
1640
+ align-items: center;
1641
+ }
1642
+
1643
+ .tok-swatch {
1644
+ border-radius: var(--u-r-sm);
1645
+ border: 1px solid var(--u-border-strong);
1646
+ background-image: linear-gradient(45deg, var(--u-border-subtle) 25%, transparent 25%),
1647
+ linear-gradient(-45deg, var(--u-border-subtle) 25%, transparent 25%),
1648
+ linear-gradient(45deg, transparent 75%, var(--u-border-subtle) 75%),
1649
+ linear-gradient(-45deg, transparent 75%, var(--u-border-subtle) 75%);
1650
+ background-position: 0 0, 0 6px, 6px -6px, -6px 0;
1651
+ background-size: 12px 12px;
1652
+ flex: none;
1653
+ width: 48px;
1654
+ height: 48px;
1655
+ }
1656
+
1657
+ .tok-color .tok-swatch {
1658
+ background: inherit;
1659
+ }
1660
+
1661
+ .tok-text .tok-sample {
1662
+ color: var(--u-fg-0);
1663
+ text-overflow: ellipsis;
1664
+ white-space: nowrap;
1665
+ font-size: 18px;
1666
+ line-height: 1.3;
1667
+ overflow: hidden;
1668
+ }
1669
+
1670
+ .tok-radius {
1671
+ flex-direction: row;
1672
+ align-items: center;
1673
+ }
1674
+
1675
+ .tok-radius .tok-shape {
1676
+ background: var(--u-bg-3);
1677
+ border: 1px solid var(--u-border-strong);
1678
+ flex: none;
1679
+ width: 48px;
1680
+ height: 48px;
1681
+ }
1682
+
1683
+ .tok-shadow {
1684
+ padding: var(--u-s-3);
1685
+ flex-direction: row;
1686
+ align-items: center;
1687
+ }
1688
+
1689
+ .tok-shadow .tok-shape {
1690
+ background: var(--u-bg-2);
1691
+ border-radius: var(--u-r-md);
1692
+ flex: none;
1693
+ width: 48px;
1694
+ height: 48px;
1695
+ }
1696
+
1697
+ .tok-space {
1698
+ flex-direction: column;
1699
+ }
1700
+
1701
+ .tok-space .tok-bar {
1702
+ background: var(--u-accent);
1703
+ border-radius: var(--u-r-pill);
1704
+ max-width: 100%;
1705
+ height: 8px;
1706
+ }
1707
+
1708
+ .sv-previews {
1709
+ gap: var(--u-s-3);
1710
+ grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
1711
+ display: grid;
1712
+ }
1713
+
1714
+ .sv-previews-ui_kits {
1715
+ grid-template-columns: repeat(auto-fill, minmax(560px, 1fr));
1716
+ }
1717
+
1718
+ .sv-previews-ui_kits .sv-preview-frame {
1719
+ aspect-ratio: 16 / 10;
1720
+ }
1721
+
1722
+ .sv-preview-card {
1723
+ background: var(--u-bg-1);
1724
+ border: 1px solid var(--u-border);
1725
+ border-radius: var(--u-r-md);
1726
+ cursor: pointer;
1727
+ transition: all .12s;
1728
+ overflow: hidden;
1729
+ }
1730
+
1731
+ .sv-preview-card:hover {
1732
+ border-color: var(--u-accent-line);
1733
+ transform: translateY(-1px);
1734
+ }
1735
+
1736
+ .sv-preview-frame {
1737
+ aspect-ratio: 16 / 10;
1738
+ background: var(--u-bg-0);
1739
+ border-bottom: 1px solid var(--u-border);
1740
+ position: relative;
1741
+ overflow: hidden;
1742
+ }
1743
+
1744
+ .sv-preview-frame iframe {
1745
+ transform-origin: 0 0;
1746
+ pointer-events: none;
1747
+ background: var(--u-bg-0);
1748
+ border: 0;
1749
+ width: 200%;
1750
+ height: 200%;
1751
+ position: absolute;
1752
+ top: 0;
1753
+ left: 0;
1754
+ transform: scale(.5);
1755
+ }
1756
+
1757
+ .sv-preview-foot {
1758
+ padding: var(--u-s-2) var(--u-s-3);
1759
+ flex-direction: column;
1760
+ gap: 2px;
1761
+ display: flex;
1762
+ }
1763
+
1764
+ .sv-preview-foot strong {
1765
+ color: var(--u-fg-0);
1766
+ font-size: 12px;
1767
+ font-weight: 600;
1768
+ }
1769
+
1770
+ .sv-preview-foot code {
1771
+ font-family: var(--u-font-mono);
1772
+ color: var(--u-fg-3);
1773
+ text-overflow: ellipsis;
1774
+ white-space: nowrap;
1775
+ font-size: 10px;
1776
+ overflow: hidden;
1777
+ }
1778
+
1779
+ .sv-list {
1780
+ gap: var(--u-s-1);
1781
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
1782
+ margin: 0;
1783
+ padding: 0;
1784
+ list-style: none;
1785
+ display: grid;
1786
+ }
1787
+
1788
+ .sv-list li {
1789
+ background: var(--u-bg-1);
1790
+ border: 1px solid var(--u-border);
1791
+ border-radius: var(--u-r-sm);
1792
+ padding: var(--u-s-2) var(--u-s-3);
1793
+ flex-direction: column;
1794
+ gap: 2px;
1795
+ min-width: 0;
1796
+ display: flex;
1797
+ }
1798
+
1799
+ .sv-list code {
1800
+ font-family: var(--u-font-mono);
1801
+ color: var(--u-fg-0);
1802
+ font-size: 12px;
1803
+ font-weight: 500;
1804
+ }
1805
+
1806
+ .sv-list-path {
1807
+ font-family: var(--u-font-mono);
1808
+ color: var(--u-fg-3);
1809
+ text-overflow: ellipsis;
1810
+ white-space: nowrap;
1811
+ font-size: 10px;
1812
+ overflow: hidden;
1813
+ }
1814
+
1815
+ .sv-assets {
1816
+ gap: var(--u-s-2);
1817
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
1818
+ display: grid;
1819
+ }
1820
+
1821
+ .sv-asset {
1822
+ background: var(--u-bg-1);
1823
+ border: 1px solid var(--u-border);
1824
+ border-radius: var(--u-r-sm);
1825
+ padding: var(--u-s-3);
1826
+ align-items: center;
1827
+ gap: var(--u-s-2);
1828
+ flex-direction: column;
1829
+ margin: 0;
1830
+ display: flex;
1831
+ }
1832
+
1833
+ .sv-asset img {
1834
+ object-fit: contain;
1835
+ width: auto;
1836
+ max-width: 100%;
1837
+ height: auto;
1838
+ max-height: 80px;
1839
+ }
1840
+
1841
+ .sv-asset figcaption {
1842
+ font-family: var(--u-font-mono);
1843
+ color: var(--u-fg-3);
1844
+ text-align: center;
1845
+ text-overflow: ellipsis;
1846
+ white-space: nowrap;
1847
+ max-width: 100%;
1848
+ font-size: 10px;
1849
+ overflow: hidden;
1850
+ }
1851
+
1852
+ .comment-bar {
1853
+ background: var(--u-bg-1);
1854
+ border-top: 1px solid var(--u-border);
1855
+ padding: 6px var(--u-s-3);
1856
+ flex-direction: column;
1857
+ gap: 4px;
1858
+ font-size: 12px;
1859
+ display: flex;
1860
+ }
1861
+
1862
+ .cb-row {
1863
+ align-items: center;
1864
+ gap: var(--u-s-2);
1865
+ flex-wrap: wrap;
1866
+ display: flex;
1867
+ }
1868
+
1869
+ .composer {
1870
+ gap: var(--u-s-2);
1871
+ padding: var(--u-s-3);
1872
+ background: var(--u-bg-2);
1873
+ border: 1px solid var(--u-accent-line);
1874
+ border-radius: var(--u-r-md);
1875
+ flex-direction: column;
1876
+ margin: 4px 0;
1877
+ display: flex;
1878
+ }
1879
+
1880
+ .composer-head {
1881
+ align-items: baseline;
1882
+ gap: var(--u-s-2);
1883
+ color: var(--u-fg-3);
1884
+ font-size: 11px;
1885
+ display: flex;
1886
+ }
1887
+
1888
+ .composer-selector {
1889
+ font-family: var(--u-font-mono);
1890
+ color: var(--u-fg-1);
1891
+ background: var(--u-bg-1);
1892
+ border-radius: var(--u-r-sm);
1893
+ border: 1px solid var(--u-border);
1894
+ text-overflow: ellipsis;
1895
+ white-space: nowrap;
1896
+ flex: 1;
1897
+ min-width: 0;
1898
+ padding: 2px 8px;
1899
+ font-size: 11px;
1900
+ overflow: hidden;
1901
+ }
1902
+
1903
+ .comment-bar textarea.composer-textarea {
1904
+ background: var(--u-bg-1);
1905
+ border: 1px solid var(--u-border);
1906
+ border-radius: var(--u-r-sm);
1907
+ width: 100%;
1908
+ color: var(--u-fg-0);
1909
+ padding: var(--u-s-3);
1910
+ resize: vertical;
1911
+ outline: none;
1912
+ min-height: 100px;
1913
+ font-family: inherit;
1914
+ font-size: 13px;
1915
+ line-height: 1.5;
1916
+ }
1917
+
1918
+ .comment-bar textarea.composer-textarea:focus {
1919
+ border-color: var(--u-accent-line);
1920
+ }
1921
+
1922
+ .comment-bar textarea.composer-textarea::placeholder {
1923
+ color: var(--u-fg-3);
1924
+ }
1925
+
1926
+ .composer-actions {
1927
+ justify-content: flex-end;
1928
+ gap: 6px;
1929
+ display: flex;
1930
+ }
1931
+
1932
+ .cb-row.composer {
1933
+ flex-wrap: nowrap;
1934
+ align-items: stretch;
1935
+ }
1936
+
1937
+ .cb-label {
1938
+ color: var(--u-fg-3);
1939
+ flex: none;
1940
+ align-self: center;
1941
+ font-size: 11px;
1942
+ }
1943
+
1944
+ .cb-label code {
1945
+ font-family: var(--u-font-mono);
1946
+ background: var(--u-bg-2);
1947
+ border-radius: var(--u-r-xs);
1948
+ color: var(--u-fg-1);
1949
+ padding: 1px 4px;
1950
+ font-size: 10px;
1951
+ }
1952
+
1953
+ .comment-bar textarea {
1954
+ background: var(--u-bg-2);
1955
+ border: 1px solid var(--u-border);
1956
+ border-radius: var(--u-r-sm);
1957
+ color: var(--u-fg-0);
1958
+ padding: var(--u-s-2);
1959
+ resize: vertical;
1960
+ outline: none;
1961
+ flex: 1;
1962
+ min-height: 40px;
1963
+ font-family: inherit;
1964
+ font-size: 12px;
1965
+ }
1966
+
1967
+ .comment-bar textarea:focus {
1968
+ border-color: var(--u-accent-line);
1969
+ }
1970
+
1971
+ .cb-actions {
1972
+ align-self: flex-end;
1973
+ gap: 4px;
1974
+ display: flex;
1975
+ }
1976
+
1977
+ .cb-primary, .cb-secondary {
1978
+ border: 1px solid var(--u-border);
1979
+ background: var(--u-bg-2);
1980
+ color: var(--u-fg-1);
1981
+ border-radius: var(--u-r-sm);
1982
+ padding: 4px var(--u-s-3);
1983
+ font-family: var(--u-font-mono);
1984
+ cursor: pointer;
1985
+ font-size: 11px;
1986
+ }
1987
+
1988
+ .cb-primary {
1989
+ background: var(--u-accent);
1990
+ color: var(--u-bg-0);
1991
+ border-color: var(--u-accent);
1992
+ font-weight: 600;
1993
+ }
1994
+
1995
+ .cb-primary:hover {
1996
+ background: var(--u-accent-strong);
1997
+ border-color: var(--u-accent-strong);
1998
+ }
1999
+
2000
+ .cb-primary:disabled {
2001
+ opacity: .5;
2002
+ cursor: not-allowed;
2003
+ }
2004
+
2005
+ .cb-secondary:hover {
2006
+ background: var(--u-bg-3);
2007
+ color: var(--u-fg-0);
2008
+ }
2009
+
2010
+ .cb-row.focused {
2011
+ background: var(--u-bg-2);
2012
+ border-radius: var(--u-r-sm);
2013
+ padding: 4px var(--u-s-2);
2014
+ }
2015
+
2016
+ .cb-pinno {
2017
+ font-family: var(--u-font-mono);
2018
+ background: var(--u-accent);
2019
+ color: var(--u-accent-fg);
2020
+ border-radius: var(--u-r-sm);
2021
+ letter-spacing: var(--tracking-sku);
2022
+ flex: none;
2023
+ padding: 1px 6px;
2024
+ font-size: 11px;
2025
+ font-weight: 700;
2026
+ }
2027
+
2028
+ .cb-text {
2029
+ color: var(--u-fg-0);
2030
+ text-overflow: ellipsis;
2031
+ white-space: nowrap;
2032
+ flex: 1;
2033
+ font-size: 12px;
2034
+ overflow: hidden;
2035
+ }
2036
+
2037
+ .cb-target code {
2038
+ font-family: var(--u-font-mono);
2039
+ background: var(--u-bg-3);
2040
+ border-radius: var(--u-r-xs);
2041
+ color: var(--u-fg-2);
2042
+ text-overflow: ellipsis;
2043
+ white-space: nowrap;
2044
+ max-width: 240px;
2045
+ padding: 1px 6px;
2046
+ font-size: 10px;
2047
+ display: inline-block;
2048
+ overflow: hidden;
2049
+ }
2050
+
2051
+ .cb-row.strip {
2052
+ color: var(--u-fg-3);
2053
+ font-size: 11px;
2054
+ }
2055
+
2056
+ .cb-pin-strip {
2057
+ flex-wrap: wrap;
2058
+ flex: 1;
2059
+ gap: 4px;
2060
+ display: flex;
2061
+ }
2062
+
2063
+ .cb-pin-chip {
2064
+ font-family: var(--u-font-mono);
2065
+ background: var(--u-accent);
2066
+ color: var(--u-accent-fg);
2067
+ border-radius: var(--u-r-sm);
2068
+ cursor: pointer;
2069
+ letter-spacing: var(--tracking-sku);
2070
+ border: 0;
2071
+ padding: 2px 7px;
2072
+ font-size: 10px;
2073
+ font-weight: 600;
2074
+ transition: transform .1s;
2075
+ }
2076
+
2077
+ .cb-pin-chip:hover {
2078
+ transform: scale(1.1);
2079
+ }
2080
+
2081
+ .cb-more {
2082
+ font-family: var(--u-font-mono);
2083
+ color: var(--u-fg-3);
2084
+ align-self: center;
2085
+ font-size: 10px;
2086
+ }
2087
+
2088
+ .rsidebar {
2089
+ background: var(--u-bg-1);
2090
+ border-left: 1px solid var(--u-border);
2091
+ min-width: 0;
2092
+ font-family: var(--u-font-mono);
2093
+ flex-direction: column;
2094
+ display: flex;
2095
+ }
2096
+
2097
+ .rsidebar-header {
2098
+ padding: var(--u-s-2) var(--u-s-3);
2099
+ background: var(--u-bg-2);
2100
+ border-bottom: 1px solid var(--u-border);
2101
+ align-items: baseline;
2102
+ gap: var(--u-s-2);
2103
+ display: flex;
2104
+ }
2105
+
2106
+ .rsidebar-header h2 {
2107
+ font-family: var(--u-font-mono);
2108
+ font-size: var(--type-md);
2109
+ color: var(--u-fg-0);
2110
+ align-items: baseline;
2111
+ gap: var(--u-s-2);
2112
+ letter-spacing: var(--tracking-tight);
2113
+ margin: 0;
2114
+ font-weight: 700;
2115
+ display: flex;
2116
+ }
2117
+
2118
+ .rsidebar-header h2 > span:first-child {
2119
+ text-transform: lowercase;
2120
+ }
2121
+
2122
+ .rsidebar-header h2 .total {
2123
+ font-family: var(--u-font-mono);
2124
+ color: var(--u-fg-2);
2125
+ font-variant-numeric: tabular-nums;
2126
+ letter-spacing: var(--tracking-sku);
2127
+ text-transform: uppercase;
2128
+ margin-left: auto;
2129
+ font-size: 10px;
2130
+ font-weight: 500;
2131
+ }
2132
+
2133
+ .rsidebar-filters {
2134
+ background: var(--u-bg-1);
2135
+ border: 0;
2136
+ border-bottom: 1px solid var(--u-border);
2137
+ border-radius: 0;
2138
+ gap: 0;
2139
+ padding: 0;
2140
+ display: flex;
2141
+ }
2142
+
2143
+ .rsidebar-filter {
2144
+ background: var(--u-bg-1);
2145
+ border: 0;
2146
+ border-right: 1px solid var(--u-border-subtle);
2147
+ color: var(--u-fg-2);
2148
+ cursor: pointer;
2149
+ font-family: var(--u-font-mono);
2150
+ padding: var(--u-s-2) var(--u-s-2);
2151
+ letter-spacing: var(--tracking-sku);
2152
+ text-transform: uppercase;
2153
+ transition: color var(--dur-flip) var(--ease-out),
2154
+ background var(--dur-flip) var(--ease-out);
2155
+ border-radius: 0;
2156
+ flex: 1;
2157
+ justify-content: center;
2158
+ align-items: baseline;
2159
+ gap: 6px;
2160
+ font-size: 10px;
2161
+ font-weight: 600;
2162
+ display: flex;
2163
+ position: relative;
2164
+ }
2165
+
2166
+ .rsidebar-filter:last-child {
2167
+ border-right: 0;
2168
+ }
2169
+
2170
+ .rsidebar-filter:hover {
2171
+ color: var(--u-fg-0);
2172
+ background: var(--u-bg-2);
2173
+ }
2174
+
2175
+ .rsidebar-filter:focus-visible {
2176
+ box-shadow: var(--shadow-focus);
2177
+ z-index: 1;
2178
+ outline: none;
2179
+ }
2180
+
2181
+ .rsidebar-filter.active {
2182
+ background: var(--u-bg-0);
2183
+ color: var(--u-fg-0);
2184
+ box-shadow: none;
2185
+ font-weight: 700;
2186
+ }
2187
+
2188
+ .rsidebar-filter.active:after {
2189
+ content: "";
2190
+ background: var(--u-accent);
2191
+ height: 2px;
2192
+ position: absolute;
2193
+ bottom: -1px;
2194
+ left: 0;
2195
+ right: 0;
2196
+ }
2197
+
2198
+ .rsidebar-filter .fc {
2199
+ font-family: var(--u-font-mono);
2200
+ color: var(--u-fg-1);
2201
+ font-variant-numeric: tabular-nums;
2202
+ letter-spacing: 0;
2203
+ background: var(--u-bg-2);
2204
+ border: 1px solid var(--u-border);
2205
+ padding: 0 5px;
2206
+ font-size: 10px;
2207
+ }
2208
+
2209
+ .rsidebar-filter.active .fc {
2210
+ background: var(--u-accent);
2211
+ color: var(--u-accent-fg);
2212
+ border-color: var(--u-accent);
2213
+ }
2214
+
2215
+ .rsidebar-body {
2216
+ background: var(--u-bg-0);
2217
+ flex: 1;
2218
+ padding: 0;
2219
+ overflow-y: auto;
2220
+ }
2221
+
2222
+ .rsidebar-body::-webkit-scrollbar {
2223
+ width: 6px;
2224
+ }
2225
+
2226
+ .rsidebar-body::-webkit-scrollbar-thumb {
2227
+ background: var(--u-border);
2228
+ border-radius: var(--u-r-sm);
2229
+ }
2230
+
2231
+ .rsidebar-empty {
2232
+ padding: var(--u-s-5) var(--u-s-3);
2233
+ text-align: center;
2234
+ color: var(--u-fg-3);
2235
+ font-size: 12px;
2236
+ line-height: 1.5;
2237
+ }
2238
+
2239
+ .rsidebar-empty kbd {
2240
+ font-family: var(--u-font-mono);
2241
+ background: var(--u-bg-2);
2242
+ border: 1px solid var(--u-border);
2243
+ border-radius: var(--u-r-xs);
2244
+ color: var(--u-fg-1);
2245
+ padding: 1px 5px;
2246
+ font-size: 11px;
2247
+ }
2248
+
2249
+ .rs-group {
2250
+ margin-bottom: 0;
2251
+ }
2252
+
2253
+ .rs-group-h {
2254
+ align-items: baseline;
2255
+ gap: var(--u-s-2);
2256
+ padding: var(--u-s-2) var(--u-s-3);
2257
+ color: var(--u-fg-2);
2258
+ background: var(--u-bg-1);
2259
+ border: 0;
2260
+ border-top: 1px solid var(--u-border-subtle);
2261
+ border-bottom: 1px solid var(--u-border-subtle);
2262
+ text-align: left;
2263
+ cursor: pointer;
2264
+ width: 100%;
2265
+ font-size: 10px;
2266
+ font-weight: 700;
2267
+ font-family: var(--u-font-mono);
2268
+ letter-spacing: var(--tracking-sku);
2269
+ text-transform: uppercase;
2270
+ display: flex;
2271
+ }
2272
+
2273
+ .rs-group-h:hover {
2274
+ color: var(--u-fg-0);
2275
+ background: var(--u-bg-2);
2276
+ }
2277
+
2278
+ .rs-group-h:focus-visible {
2279
+ box-shadow: var(--shadow-focus);
2280
+ outline: none;
2281
+ }
2282
+
2283
+ .rs-group-h .rs-group-name {
2284
+ text-overflow: ellipsis;
2285
+ white-space: nowrap;
2286
+ flex: 1;
2287
+ min-width: 0;
2288
+ overflow: hidden;
2289
+ }
2290
+
2291
+ .rs-group-h .rs-group-count {
2292
+ font-family: var(--u-font-mono);
2293
+ color: var(--u-fg-3);
2294
+ font-size: 10px;
2295
+ font-weight: 500;
2296
+ }
2297
+
2298
+ .rs-comment {
2299
+ background: var(--u-bg-0);
2300
+ border: 0;
2301
+ border-bottom: 1px solid var(--u-border-subtle);
2302
+ padding: var(--u-s-2) var(--u-s-3);
2303
+ cursor: pointer;
2304
+ transition: background var(--dur-flip) var(--ease-out),
2305
+ border-color var(--dur-flip) var(--ease-out);
2306
+ gap: var(--u-s-1);
2307
+ border-left: 2px solid #0000;
2308
+ border-radius: 0;
2309
+ flex-direction: column;
2310
+ margin: 0;
2311
+ display: flex;
2312
+ }
2313
+
2314
+ .rs-comment:hover {
2315
+ background: var(--u-bg-1);
2316
+ }
2317
+
2318
+ .rs-comment:focus-within {
2319
+ outline: none;
2320
+ }
2321
+
2322
+ .rs-comment.active-pin {
2323
+ background: var(--u-accent-bg);
2324
+ border-left-color: var(--u-accent);
2325
+ padding-left: calc(var(--u-s-3) - 2px);
2326
+ }
2327
+
2328
+ .rs-comment.resolved {
2329
+ opacity: 1;
2330
+ color: var(--u-fg-2);
2331
+ }
2332
+
2333
+ .rs-comment-head {
2334
+ align-items: center;
2335
+ gap: var(--u-s-2);
2336
+ display: flex;
2337
+ }
2338
+
2339
+ .rs-num {
2340
+ font-family: var(--u-font-mono);
2341
+ background: var(--u-accent);
2342
+ color: var(--u-accent-fg);
2343
+ border-radius: var(--u-r-sm);
2344
+ letter-spacing: var(--tracking-sku);
2345
+ flex: none;
2346
+ padding: 1px 6px;
2347
+ font-size: 10px;
2348
+ font-weight: 700;
2349
+ }
2350
+
2351
+ .rs-comment.resolved .rs-num {
2352
+ background: var(--u-status-success);
2353
+ color: var(--u-bg-0);
2354
+ }
2355
+
2356
+ .rs-time {
2357
+ font-family: var(--u-font-mono);
2358
+ color: var(--u-fg-3);
2359
+ flex: none;
2360
+ margin-left: auto;
2361
+ font-size: 10px;
2362
+ }
2363
+
2364
+ .rs-comment-text {
2365
+ color: var(--u-fg-0);
2366
+ -webkit-line-clamp: 3;
2367
+ word-break: break-word;
2368
+ -webkit-box-orient: vertical;
2369
+ font-size: 12px;
2370
+ line-height: 1.45;
2371
+ display: -webkit-box;
2372
+ overflow: hidden;
2373
+ }
2374
+
2375
+ .rs-comment.resolved .rs-comment-text {
2376
+ color: var(--u-fg-2);
2377
+ text-decoration: line-through;
2378
+ text-decoration-color: var(--u-fg-3);
2379
+ }
2380
+
2381
+ .rs-comment-foot {
2382
+ align-items: center;
2383
+ gap: var(--u-s-1);
2384
+ font-size: 10px;
2385
+ display: flex;
2386
+ }
2387
+
2388
+ .rs-comment-foot code {
2389
+ font-family: var(--u-font-mono);
2390
+ background: var(--u-bg-3);
2391
+ color: var(--u-fg-2);
2392
+ border-radius: var(--u-r-xs);
2393
+ text-overflow: ellipsis;
2394
+ white-space: nowrap;
2395
+ flex: 1;
2396
+ min-width: 0;
2397
+ padding: 1px 5px;
2398
+ font-size: 10px;
2399
+ overflow: hidden;
2400
+ }
2401
+
2402
+ .rs-comment-actions {
2403
+ flex: none;
2404
+ gap: 4px;
2405
+ display: flex;
2406
+ }
2407
+
2408
+ .rs-act {
2409
+ border: 1px solid var(--u-border);
2410
+ color: var(--u-fg-2);
2411
+ border-radius: var(--u-r-xs);
2412
+ font-family: var(--u-font-mono);
2413
+ cursor: pointer;
2414
+ background: none;
2415
+ padding: 1px 6px;
2416
+ font-size: 10px;
2417
+ line-height: 1.4;
2418
+ }
2419
+
2420
+ .rs-act:hover {
2421
+ background: var(--u-bg-3);
2422
+ color: var(--u-fg-0);
2423
+ }
2424
+
2425
+ .rs-act.danger:hover {
2426
+ background: var(--u-status-error);
2427
+ color: var(--u-accent-fg);
2428
+ border-color: var(--u-status-error);
2429
+ }
2430
+
2431
+ .actions .rs-toggle {
2432
+ position: relative;
2433
+ }
2434
+
2435
+ .actions .rs-toggle.active {
2436
+ background: var(--u-accent-bg);
2437
+ color: var(--u-accent);
2438
+ border-color: var(--u-accent-line);
2439
+ }
2440
+
2441
+ .actions .rs-toggle .rs-badge {
2442
+ background: var(--u-accent);
2443
+ color: var(--u-accent-fg);
2444
+ border-radius: var(--u-r-sm);
2445
+ font-family: var(--u-font-mono);
2446
+ letter-spacing: var(--tracking-sku);
2447
+ padding: 0 5px;
2448
+ font-size: 9px;
2449
+ font-weight: 700;
2450
+ line-height: 1.4;
2451
+ position: absolute;
2452
+ top: -4px;
2453
+ right: -4px;
2454
+ }
2455
+
2456
+ .add-comment {
2457
+ color: var(--u-accent);
2458
+ border: 1px solid var(--u-accent-line);
2459
+ border-radius: var(--u-r-xs);
2460
+ font-family: var(--u-font-mono);
2461
+ cursor: pointer;
2462
+ background: none;
2463
+ padding: 1px 8px;
2464
+ font-size: 10px;
2465
+ line-height: 1.4;
2466
+ }
2467
+
2468
+ .add-comment:hover {
2469
+ background: var(--u-accent-bg);
2470
+ color: var(--u-accent);
2471
+ }
2472
+
2473
+ .help-modal-backdrop {
2474
+ background: color-mix(in oklch, var(--u-bg-0) 70%, transparent);
2475
+ z-index: 200;
2476
+ padding: var(--u-s-4);
2477
+ place-items: center;
2478
+ display: grid;
2479
+ position: fixed;
2480
+ inset: 0;
2481
+ }
2482
+
2483
+ .help-modal {
2484
+ background: var(--u-bg-1);
2485
+ border: 1px solid var(--u-fg-0);
2486
+ box-shadow: 8px 8px 0 var(--u-fg-0);
2487
+ width: min(720px, 100%);
2488
+ max-height: 80vh;
2489
+ font-family: var(--u-font-mono);
2490
+ flex-direction: column;
2491
+ display: flex;
2492
+ }
2493
+
2494
+ .help-modal-hd {
2495
+ padding: var(--u-s-3) var(--u-s-4);
2496
+ border-bottom: 1px solid var(--u-fg-0);
2497
+ background: var(--u-bg-2);
2498
+ justify-content: space-between;
2499
+ align-items: center;
2500
+ display: flex;
2501
+ }
2502
+
2503
+ .help-modal-hd .title {
2504
+ letter-spacing: var(--tracking-sku);
2505
+ text-transform: uppercase;
2506
+ font-weight: 700;
2507
+ font-size: var(--type-xs);
2508
+ color: var(--u-fg-0);
2509
+ }
2510
+
2511
+ .help-modal-hd .sku {
2512
+ letter-spacing: var(--tracking-sku);
2513
+ color: var(--u-fg-2);
2514
+ text-transform: uppercase;
2515
+ font-size: 10px;
2516
+ }
2517
+
2518
+ .help-modal-close {
2519
+ border: 1px solid var(--u-border);
2520
+ color: var(--u-fg-1);
2521
+ cursor: pointer;
2522
+ width: 22px;
2523
+ height: 22px;
2524
+ font-size: 14px;
2525
+ line-height: 1;
2526
+ font-family: var(--u-font-mono);
2527
+ background: none;
2528
+ place-items: center;
2529
+ display: grid;
2530
+ }
2531
+
2532
+ .help-modal-close:hover {
2533
+ background: var(--u-bg-3);
2534
+ color: var(--u-fg-0);
2535
+ border-color: var(--u-border-strong);
2536
+ }
2537
+
2538
+ .help-modal-close:focus-visible {
2539
+ box-shadow: var(--shadow-focus);
2540
+ outline: none;
2541
+ }
2542
+
2543
+ .help-modal-body {
2544
+ padding: var(--u-s-3) var(--u-s-4);
2545
+ font-size: var(--type-xs);
2546
+ color: var(--u-fg-1);
2547
+ overflow-y: auto;
2548
+ }
2549
+
2550
+ .help-modal-body::-webkit-scrollbar {
2551
+ width: 6px;
2552
+ }
2553
+
2554
+ .help-modal-body::-webkit-scrollbar-thumb {
2555
+ background: var(--u-border);
2556
+ }
2557
+
2558
+ .help-modal-body details {
2559
+ margin: 0 0 var(--u-s-2);
2560
+ border-bottom: 1px solid var(--u-border-subtle);
2561
+ padding-bottom: var(--u-s-2);
2562
+ }
2563
+
2564
+ .help-modal-body details:last-child {
2565
+ border-bottom: 0;
2566
+ }
2567
+
2568
+ .help-modal-body details > summary {
2569
+ cursor: pointer;
2570
+ padding: var(--u-s-2) 0;
2571
+ letter-spacing: var(--tracking-sku);
2572
+ text-transform: uppercase;
2573
+ color: var(--u-fg-0);
2574
+ align-items: center;
2575
+ gap: var(--u-s-2);
2576
+ font-size: 11px;
2577
+ font-weight: 700;
2578
+ list-style: none;
2579
+ display: flex;
2580
+ }
2581
+
2582
+ .help-modal-body details > summary::-webkit-details-marker {
2583
+ display: none;
2584
+ }
2585
+
2586
+ .help-modal-body details > summary:before {
2587
+ content: "▸";
2588
+ color: var(--u-fg-2);
2589
+ width: 12px;
2590
+ font-size: 10px;
2591
+ }
2592
+
2593
+ .help-modal-body details[open] > summary:before {
2594
+ content: "▾";
2595
+ }
2596
+
2597
+ .help-modal-body ul, .help-modal-body ol {
2598
+ padding: 0 0 var(--u-s-2) var(--u-s-4);
2599
+ margin: 0;
2600
+ font-size: 11px;
2601
+ line-height: 1.7;
2602
+ list-style: none;
2603
+ }
2604
+
2605
+ .help-modal-body li {
2606
+ align-items: baseline;
2607
+ gap: var(--u-s-2);
2608
+ padding: 2px 0;
2609
+ display: flex;
2610
+ }
2611
+
2612
+ .help-modal-body li > span {
2613
+ color: var(--u-fg-3);
2614
+ text-align: right;
2615
+ margin-left: auto;
2616
+ font-size: 10px;
2617
+ }
2618
+
2619
+ .help-modal-body kbd {
2620
+ font-family: var(--u-font-mono);
2621
+ background: var(--u-bg-2);
2622
+ border: 1px solid var(--u-border);
2623
+ color: var(--u-fg-0);
2624
+ padding: 1px 5px;
2625
+ font-size: 10px;
2626
+ }
2627
+
2628
+ .help-modal-body code {
2629
+ font-family: var(--u-font-mono);
2630
+ color: var(--u-accent);
2631
+ background: var(--u-accent-bg);
2632
+ padding: 1px 4px;
2633
+ font-size: 10px;
2634
+ }
2635
+
2636
+ .help-modal-body code i {
2637
+ color: var(--u-fg-2);
2638
+ font-style: normal;
2639
+ }
2640
+
2641
+ .help-modal-body ul.cmds li, .help-modal-body ul.files li {
2642
+ flex-direction: column;
2643
+ align-items: flex-start;
2644
+ gap: 2px;
2645
+ }
2646
+
2647
+ .help-modal-body ul.cmds li > span, .help-modal-body ul.files li > span {
2648
+ text-align: left;
2649
+ margin-left: 0;
2650
+ }
2651
+
2652
+ .tp-section-hd.clickable {
2653
+ cursor: pointer;
2654
+ user-select: none;
2655
+ text-align: left;
2656
+ width: 100%;
2657
+ font-family: var(--u-font-mono);
2658
+ transition: background var(--dur-flip) var(--ease-out);
2659
+ background: none;
2660
+ border: 0;
2661
+ }
2662
+
2663
+ .tp-section-hd.clickable:hover {
2664
+ background: var(--u-bg-2);
2665
+ }
2666
+
2667
+ .tp-section-hd.clickable:focus-visible {
2668
+ box-shadow: var(--shadow-focus);
2669
+ outline: none;
2670
+ }
2671
+
2672
+ .tp-section-hd.clickable.active {
2673
+ background: var(--u-accent-bg);
2674
+ color: var(--u-fg-0);
2675
+ }
2676
+
2677
+ .tp-section-hd.clickable.active .pill {
2678
+ border-color: var(--u-accent);
2679
+ color: var(--u-accent);
2680
+ }
2681
+
2682
+ .tp-section-hd.ds-split {
2683
+ cursor: default;
2684
+ padding: 0;
2685
+ }
2686
+
2687
+ .tp-section-hd.ds-split > button {
2688
+ padding: 6px var(--u-s-3) 2px;
2689
+ color: inherit;
2690
+ font: inherit;
2691
+ letter-spacing: inherit;
2692
+ text-transform: inherit;
2693
+ cursor: pointer;
2694
+ background: none;
2695
+ border: 0;
2696
+ align-items: baseline;
2697
+ gap: 8px;
2698
+ display: inline-flex;
2699
+ }
2700
+
2701
+ .tp-section-hd.ds-split > button:focus-visible {
2702
+ box-shadow: var(--shadow-focus);
2703
+ z-index: 1;
2704
+ outline: none;
2705
+ position: relative;
2706
+ }
2707
+
2708
+ .tp-section-hd.ds-split .ds-open {
2709
+ flex: 1;
2710
+ justify-content: flex-start;
2711
+ min-width: 0;
2712
+ }
2713
+
2714
+ .tp-section-hd.ds-split .ds-open:hover {
2715
+ background: var(--u-bg-2);
2716
+ }
2717
+
2718
+ .tp-section-hd.ds-split .chev {
2719
+ color: var(--u-fg-2);
2720
+ opacity: .75;
2721
+ flex: none;
2722
+ padding: 6px 10px 2px;
2723
+ }
2724
+
2725
+ .tp-section-hd.ds-split .chev:hover {
2726
+ opacity: 1;
2727
+ background: var(--u-bg-2);
2728
+ }
2729
+
2730
+ .tp-section-hd.ds-split.active .ds-open {
2731
+ background: var(--u-accent-bg);
2732
+ color: var(--u-fg-0);
2733
+ }
2734
+
2735
+ .tp-section-hd.ds-split.active .pill {
2736
+ border-color: var(--u-accent);
2737
+ color: var(--u-accent);
2738
+ }
2739
+
2740
+ .tp-row.sidecar {
2741
+ opacity: .55;
2742
+ }
2743
+
2744
+ .tp-row.sidecar .glyph {
2745
+ visibility: hidden;
2746
+ }
2747
+
2748
+ .tp-row.sidecar:hover {
2749
+ opacity: .85;
2750
+ }
2751
+
2752
+ .tp-row.canvas-row .canvas-chev {
2753
+ cursor: pointer;
2754
+ }
2755
+
2756
+ .tp-row.canvas-row .canvas-chev:hover {
2757
+ color: var(--u-fg-0);
2758
+ }
2759
+
2760
+ .tp-row.ds-folder {
2761
+ cursor: default;
2762
+ color: var(--u-fg-0);
2763
+ align-items: center;
2764
+ gap: 0;
2765
+ padding: 2px 0;
2766
+ font-weight: 600;
2767
+ display: flex;
2768
+ }
2769
+
2770
+ .tp-row.ds-folder > button {
2771
+ color: inherit;
2772
+ font: inherit;
2773
+ cursor: pointer;
2774
+ background: none;
2775
+ border: 0;
2776
+ align-items: center;
2777
+ padding: 0;
2778
+ display: inline-flex;
2779
+ }
2780
+
2781
+ .tp-row.ds-folder > button:focus-visible {
2782
+ box-shadow: var(--shadow-focus);
2783
+ z-index: 1;
2784
+ outline: none;
2785
+ position: relative;
2786
+ }
2787
+
2788
+ .tp-row.ds-folder .ds-folder-chev {
2789
+ flex: none;
2790
+ padding: 0 4px;
2791
+ }
2792
+
2793
+ .tp-row.ds-folder .ds-folder-chev .glyph {
2794
+ text-align: center;
2795
+ width: 12px;
2796
+ color: var(--u-fg-1);
2797
+ font-size: 10px;
2798
+ display: inline-block;
2799
+ }
2800
+
2801
+ .tp-row.ds-folder .ds-folder-chev:hover .glyph {
2802
+ color: var(--u-fg-0);
2803
+ }
2804
+
2805
+ .tp-row.ds-folder .ds-folder-open {
2806
+ min-width: 0;
2807
+ padding: 0 var(--u-s-3) 0 0;
2808
+ text-align: left;
2809
+ flex: 1;
2810
+ }
2811
+
2812
+ .tp-row.ds-folder .ds-folder-open .name {
2813
+ text-overflow: ellipsis;
2814
+ white-space: nowrap;
2815
+ overflow: hidden;
2816
+ }
2817
+
2818
+ .tp-row.ds-folder .ds-folder-open:hover {
2819
+ color: var(--u-accent);
2820
+ }
2821
+
2822
+ .tp-row.ds-folder.sel {
2823
+ background: var(--u-accent-bg);
2824
+ }
2825
+
2826
+ .tp-row.ds-folder.sel .ds-folder-open .name {
2827
+ color: var(--u-fg-0);
2828
+ }
2829
+
2830
+ .tp-section-hd.section-toggle {
2831
+ cursor: pointer;
2832
+ text-align: left;
2833
+ width: 100%;
2834
+ font: inherit;
2835
+ letter-spacing: var(--tracking-sku);
2836
+ text-transform: uppercase;
2837
+ font-family: var(--u-font-mono);
2838
+ color: var(--u-fg-1);
2839
+ transition: background var(--dur-flip) var(--ease-out);
2840
+ background: none;
2841
+ border: 0;
2842
+ align-items: center;
2843
+ font-size: 9px;
2844
+ font-weight: 700;
2845
+ }
2846
+
2847
+ .tp-section-hd.section-toggle:hover {
2848
+ background: var(--u-bg-2);
2849
+ color: var(--u-fg-0);
2850
+ }
2851
+
2852
+ .tp-section-hd.section-toggle:focus-visible {
2853
+ box-shadow: var(--shadow-focus);
2854
+ outline: none;
2855
+ }
2856
+
2857
+ .tp-section-hd.section-toggle .chev {
2858
+ text-align: center;
2859
+ width: 12px;
2860
+ color: var(--u-fg-2);
2861
+ flex: none;
2862
+ font-size: 10px;
2863
+ display: inline-block;
2864
+ }
2865
+
2866
+ .tp-section-hd.section-toggle .section-label {
2867
+ text-overflow: ellipsis;
2868
+ white-space: nowrap;
2869
+ flex: 1;
2870
+ min-width: 0;
2871
+ overflow: hidden;
2872
+ }
2873
+ }
2874
+
2875
+ @layer utilities;