@nadicodeai/design-system 0.10.1 → 0.11.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 (51) hide show
  1. package/AGENTS.md +30 -101
  2. package/CONTEXT.md +75 -0
  3. package/DESIGN.md +180 -345
  4. package/README.md +27 -54
  5. package/dist/assets/logo-mark.svg +6 -0
  6. package/dist/assets/logo-wordmark.svg +4 -0
  7. package/dist/assets/nadia-canonical-face.png +0 -0
  8. package/dist/css/chat-autoplay.js +18 -27
  9. package/dist/css/index.css +2540 -56
  10. package/dist/favicon/apple-touch-icon.png +0 -0
  11. package/dist/favicon/favicon.ico +0 -0
  12. package/dist/favicon/favicon.svg +6 -16
  13. package/dist/favicon/icon-192.png +0 -0
  14. package/dist/favicon/icon-512.png +0 -0
  15. package/dist/favicon/site.webmanifest +2 -2
  16. package/dist/tailwind/nadicode.tailwind.json +98 -143
  17. package/dist/tokens/nadicode.dtcg.json +413 -908
  18. package/package.json +19 -11
  19. package/src/assets/logo-geometry.d.ts +27 -0
  20. package/src/assets/logo-geometry.js +204 -0
  21. package/src/assets/nadia-canonical-face.d.ts +2 -0
  22. package/dist/css/components/.gitkeep +0 -0
  23. package/dist/css/components/agent-avatar.css +0 -52
  24. package/dist/css/components/approval-gate.css +0 -145
  25. package/dist/css/components/artifact-preview.css +0 -81
  26. package/dist/css/components/chat-bubble-agent.css +0 -63
  27. package/dist/css/components/chat-bubble-user.css +0 -28
  28. package/dist/css/components/chat-thread.css +0 -159
  29. package/dist/css/components/handoff-banner.css +0 -37
  30. package/dist/css/components/image.css +0 -87
  31. package/dist/css/components/memory-item.css +0 -36
  32. package/dist/css/components/run-timeline.css +0 -160
  33. package/dist/css/components/state-row.css +0 -64
  34. package/dist/css/components/state-tag.css +0 -67
  35. package/dist/css/components/status-tag.css +0 -101
  36. package/dist/css/components/tool-call-trace.css +0 -36
  37. package/dist/css/components/typing-dots.css +0 -54
  38. package/dist/css/components/usage-meter.css +0 -63
  39. package/dist/css/foundation.css +0 -177
  40. package/dist/css/layout.css +0 -657
  41. package/dist/css/motion.css +0 -225
  42. package/dist/css/primitives.css +0 -333
  43. package/dist/css/reset.css +0 -22
  44. package/dist/css/tokens.generated.css +0 -349
  45. package/dist/css/tokens.local.css +0 -11
  46. package/dist/tailwind/nadicode.theme.css +0 -596
  47. package/src/assets/favicon.svg +0 -17
  48. package/src/assets/logo-mark.svg +0 -15
  49. package/src/assets/logo-wordmark.svg +0 -26
  50. package/src/assets/nadia.d.ts +0 -9
  51. package/src/assets/nadia.png +0 -0
@@ -1,56 +1,2540 @@
1
- /*
2
- * @nadicodeai/design-system/css — bundle entry.
3
- * Seven explicit, public-named cascade layers (D9). Each partial imports
4
- * into its own layer so cascade order is data and consumer overrides are
5
- * predictable. The `components` layer carries the KEPT atom family only.
6
- *
7
- * Tailwind+shadcn migration: the generic marketing/SaaS component CSS and ALL
8
- * section CSS retired in lockstep with their `DESIGN.md` contract entries — they
9
- * ship as React shadcn components from `@nadicodeai/ui`. The `sections` cascade
10
- * layer is dropped with them. What stays here is the framework-agnostic core:
11
- * the structural-geometry foundation (`layout` + `primitives` — kernel grid,
12
- * single-owner seams, `.nc-marker` corner crosshairs, cell/row grid math, the
13
- * stage system), the brand display atoms shadcn/Radix has no equivalent for (the
14
- * 13 agent-chat atoms + the run-state `state-tag` family + the entity-status
15
- * `status-tag` family + `image`), and the token/motion layers. The brand book
16
- * and every static surface import this
17
- * bundle raw — no Tailwind build step runs over `src/css/`, so the geometry is
18
- * `@layer` CSS, not `@utility` directives a browser would receive un-compiled.
19
- * The kept-geometry invariant guards stay live (kernel-css-architecture /
20
- * kernel-rendered-geometry / marker-placement).
21
- */
22
- @layer tokens, reset, foundation, motion, layout, primitives, components;
23
-
24
- @import url("./tokens.generated.css") layer(tokens);
25
- @import url("./tokens.local.css") layer(tokens);
26
- @import url("./reset.css") layer(reset);
27
- @import url("./foundation.css") layer(foundation);
28
- @import url("./motion.css") layer(motion);
29
- @import url("./layout.css") layer(layout);
30
- @import url("./primitives.css") layer(primitives);
31
-
32
- /* Run-state tags (ADR 0007 D3). Agentic run-state, kept as CSS. */
33
- @import url("./components/state-tag.css") layer(components);
34
-
35
- /* Entity-status tags. Record-level status vocabulary, sibling of state-tag. */
36
- @import url("./components/status-tag.css") layer(components);
37
-
38
- /* Agent-chat atoms (M6 / Part B). Conversation surface + role-grammar atoms. */
39
- @import url("./components/chat-thread.css") layer(components);
40
- @import url("./components/chat-bubble-user.css") layer(components);
41
- @import url("./components/chat-bubble-agent.css") layer(components);
42
- @import url("./components/tool-call-trace.css") layer(components);
43
- @import url("./components/memory-item.css") layer(components);
44
- @import url("./components/handoff-banner.css") layer(components);
45
- @import url("./components/approval-gate.css") layer(components);
46
- @import url("./components/artifact-preview.css") layer(components);
47
- @import url("./components/typing-dots.css") layer(components);
48
- @import url("./components/state-row.css") layer(components);
49
- @import url("./components/agent-avatar.css") layer(components);
50
- @import url("./components/usage-meter.css") layer(components);
51
- @import url("./components/run-timeline.css") layer(components);
52
-
53
- /* Editorial media mount. The bounded home for art-directed imagery: media fill
54
- + optional tag chip + optional caption, framed or strip form. Self-contained;
55
- owns at most its own hairline. */
56
- @import url("./components/image.css") layer(components);
1
+ @layer tokens, theme, reset, foundation, motion, layout, primitives, components;
2
+
3
+ /* src/css/tokens.generated.css */
4
+ @layer tokens {
5
+ :root {
6
+ --nc-primary: oklch(0.6415 0.1644 153.23);
7
+ --nc-on-primary: oklch(0.1638 0.0063 91.70);
8
+ --nc-action: oklch(0.6415 0.1644 153.23);
9
+ --nc-action-foreground: oklch(0.1638 0.0063 91.70);
10
+ --nc-action-hover: oklch(0.6104 0.1561 153.32);
11
+ --nc-action-active: oklch(0.5875 0.1497 153.50);
12
+ --nc-ink: oklch(0.1638 0.0063 91.70);
13
+ --nc-body: oklch(0.3558 0.0069 95.25);
14
+ --nc-muted: oklch(0.5517 0.0109 93.66);
15
+ --nc-canvas: oklch(1.0000 0.0000 0.00);
16
+ --nc-canvas-soft: oklch(0.9753 0.0040 106.47);
17
+ --nc-canvas-soft-2: oklch(0.9505 0.0080 106.55);
18
+ --nc-line: oklch(0.9233 0.0080 106.56);
19
+ --nc-input: oklch(0.5523 0.0080 88.68);
20
+ --nc-seam: oklch(0.8800 0.0108 106.62);
21
+ --nc-cross: oklch(0.6686 0.0146 97.54);
22
+ --nc-focus-ring: oklch(0.4815 0.1209 154.24);
23
+ --nc-scrim: oklch(0.1638 0.0063 91.70);
24
+ --nc-link: oklch(0.4815 0.1209 154.24);
25
+ --nc-link-deep: oklch(0.3852 0.0953 154.99);
26
+ --nc-link-bg-soft: oklch(0.9170 0.0519 161.77);
27
+ --nc-accent: oklch(0.6824 0.2108 37.70);
28
+ --nc-info: oklch(0.5005 0.2804 266.17);
29
+ --nc-info-soft: oklch(0.9457 0.0259 276.40);
30
+ --nc-info-deep: oklch(0.3197 0.1758 266.79);
31
+ --nc-success: oklch(0.6415 0.1644 153.23);
32
+ --nc-error: oklch(0.5688 0.1995 26.59);
33
+ --nc-error-soft: oklch(0.9522 0.0207 17.52);
34
+ --nc-error-deep: oklch(0.4235 0.1525 27.08);
35
+ --nc-warning: oklch(0.8466 0.1678 84.63);
36
+ --nc-warning-soft: oklch(0.9649 0.0461 90.87);
37
+ --nc-warning-deep: oklch(0.4834 0.0995 82.44);
38
+ --nc-flag-red: oklch(0.5688 0.1995 26.59);
39
+ --nc-selection-bg: oklch(0.1638 0.0063 91.70);
40
+ --nc-selection-fg: oklch(0.9753 0.0040 106.47);
41
+ --nc-state-ready: oklch(0.5517 0.0109 93.66);
42
+ --nc-state-running: oklch(0.5005 0.2804 266.17);
43
+ --nc-state-review: oklch(0.8466 0.1678 84.63);
44
+ --nc-state-blocked: oklch(0.5688 0.1995 26.59);
45
+ --nc-state-complete: oklch(0.6415 0.1644 153.23);
46
+ --nc-background-100: oklch(1.0000 0.0000 0.00);
47
+ --nc-background-200: oklch(0.9753 0.0040 106.47);
48
+ --nc-campo-verde: oklch(0.6415 0.1644 153.23);
49
+ --nc-campo-rosso: oklch(0.5688 0.1995 26.59);
50
+ --nc-campo-arancio: oklch(0.6824 0.2108 37.70);
51
+ --nc-campo-giallo: oklch(0.8466 0.1678 84.63);
52
+ --nc-campo-cobalto: oklch(0.5005 0.2804 266.17);
53
+ --nc-campo-inchiostro: oklch(0.1638 0.0063 91.70);
54
+ --nc-campo-bianco: oklch(1.0000 0.0000 0.00);
55
+ --nc-chart-1: oklch(0.5005 0.2804 266.17);
56
+ --nc-chart-2: oklch(0.6415 0.1644 153.23);
57
+ --nc-chart-3: oklch(0.8466 0.1678 84.63);
58
+ --nc-chart-4: oklch(0.5688 0.1995 26.59);
59
+ --nc-chart-5: oklch(0.5571 0.0953 206.08);
60
+ --nc-chart-6: oklch(0.5015 0.1883 294.99);
61
+ --nc-chart-seq-1: oklch(0.6998 0.1347 269.48);
62
+ --nc-chart-seq-2: oklch(0.5724 0.1897 270.11);
63
+ --nc-chart-seq-3: oklch(0.4725 0.2271 267.41);
64
+ --nc-chart-seq-4: oklch(0.3989 0.1934 267.50);
65
+ --nc-chart-seq-5: oklch(0.3270 0.1487 267.91);
66
+ --nc-chart-div-warm: oklch(0.7592 0.1560 83.30);
67
+ --nc-chart-div-mid: oklch(0.5517 0.0109 93.66);
68
+ --nc-chart-div-cool: oklch(0.5923 0.2215 269.61);
69
+ --nc-dark-canvas: oklch(0.1676 0.0041 106.83);
70
+ --nc-dark-canvas-soft: oklch(0.2034 0.0058 106.91);
71
+ --nc-dark-canvas-soft-2: oklch(0.2417 0.0092 107.07);
72
+ --nc-dark-ink: oklch(0.9600 0.0053 106.50);
73
+ --nc-dark-body: oklch(0.8350 0.0083 98.90);
74
+ --nc-dark-muted: oklch(0.6424 0.0134 96.52);
75
+ --nc-dark-line: oklch(0.2836 0.0071 106.85);
76
+ --nc-dark-input: oklch(0.5166 0.0078 97.46);
77
+ --nc-dark-seam: oklch(0.2417 0.0092 107.07);
78
+ --nc-dark-primary: oklch(0.7727 0.1753 155.96);
79
+ --nc-dark-on-primary: oklch(0.1676 0.0041 106.83);
80
+ --nc-dark-action: oklch(0.7727 0.1753 155.96);
81
+ --nc-dark-action-foreground: oklch(0.1676 0.0041 106.83);
82
+ --nc-dark-action-hover: oklch(0.7661 0.1498 157.10);
83
+ --nc-dark-action-active: oklch(0.7019 0.1753 153.20);
84
+ --nc-dark-link: oklch(0.7661 0.1498 157.10);
85
+ --nc-dark-link-deep: oklch(0.8524 0.0996 159.83);
86
+ --nc-dark-link-bg-soft: oklch(0.2893 0.0697 156.32);
87
+ --nc-dark-focus-ring: oklch(0.7661 0.1498 157.10);
88
+ --nc-dark-scrim: oklch(0.9600 0.0053 106.50);
89
+ --nc-dark-error: oklch(0.7955 0.0980 21.02);
90
+ --nc-dark-error-soft: oklch(0.2296 0.0728 26.06);
91
+ --nc-dark-error-deep: oklch(0.8856 0.0534 19.64);
92
+ --nc-dark-warning: oklch(0.8939 0.1387 90.47);
93
+ --nc-dark-warning-soft: oklch(0.3135 0.0643 85.04);
94
+ --nc-dark-warning-deep: oklch(0.9320 0.0896 90.86);
95
+ --nc-dark-info: oklch(0.7067 0.1528 272.08);
96
+ --nc-dark-info-soft: oklch(0.2118 0.1033 268.28);
97
+ --nc-dark-info-deep: oklch(0.8222 0.0888 274.44);
98
+ --nc-dark-cyan: oklch(0.7820 0.1247 190.99);
99
+ --nc-dark-cyan-soft: oklch(0.8646 0.1000 187.55);
100
+ --nc-dark-cyan-deep: oklch(0.6347 0.1029 191.54);
101
+ --nc-dark-success: oklch(0.7019 0.1753 153.20);
102
+ --nc-dark-state-ready: oklch(0.5517 0.0109 93.66);
103
+ --nc-dark-state-running: oklch(0.5923 0.2215 269.61);
104
+ --nc-dark-state-review: oklch(0.8466 0.1678 84.63);
105
+ --nc-dark-state-blocked: oklch(0.5688 0.1995 26.59);
106
+ --nc-dark-state-complete: oklch(0.6415 0.1644 153.23);
107
+ --nc-dark-selection-bg: oklch(0.9600 0.0053 106.50);
108
+ --nc-dark-selection-fg: oklch(0.1676 0.0041 106.83);
109
+ --nc-dark-cross: oklch(0.4419 0.0164 93.17);
110
+ --nc-dark-chart-1: oklch(0.5923 0.2215 269.61);
111
+ --nc-dark-chart-2: oklch(0.6415 0.1644 153.23);
112
+ --nc-dark-chart-3: oklch(0.8939 0.1387 90.47);
113
+ --nc-dark-chart-4: oklch(0.6627 0.1685 23.66);
114
+ --nc-dark-chart-5: oklch(0.7820 0.1247 190.99);
115
+ --nc-dark-chart-6: oklch(0.6297 0.1321 299.36);
116
+ --nc-dark-chart-seq-1: oklch(0.5724 0.1897 270.11);
117
+ --nc-dark-chart-seq-2: oklch(0.6998 0.1347 269.48);
118
+ --nc-dark-chart-seq-3: oklch(0.8072 0.0884 269.44);
119
+ --nc-dark-chart-seq-4: oklch(0.8877 0.0514 270.78);
120
+ --nc-dark-chart-seq-5: oklch(0.9619 0.0179 272.31);
121
+ --nc-dark-chart-div-warm: oklch(0.8939 0.1387 90.47);
122
+ --nc-dark-chart-div-mid: oklch(0.9233 0.0080 106.56);
123
+ --nc-dark-chart-div-cool: oklch(0.8222 0.0888 274.44);
124
+ --nc-xxs: 4px;
125
+ --nc-filter-chip-gap: 6px;
126
+ --nc-xs: 8px;
127
+ --nc-sm: 12px;
128
+ --nc-md: 16px;
129
+ --nc-lg: 24px;
130
+ --nc-xl: 32px;
131
+ --nc-2xl: 40px;
132
+ --nc-3xl: 48px;
133
+ --nc-4xl: 64px;
134
+ --nc-5xl: 96px;
135
+ --nc-6xl: 128px;
136
+ --nc-section: 192px;
137
+ --nc-guide: 1px;
138
+ --nc-focus-ring-width: 3px;
139
+ --nc-control-height: 32px;
140
+ --nc-control-padding-inline: 10px;
141
+ --nc-touch-target: 44px;
142
+ --nc-page-pad: 24px;
143
+ --nc-page-max-mobile: 448px;
144
+ --nc-page-max-tablet: 624px;
145
+ --nc-page-max-desktop: 1440px;
146
+ --nc-frame-max: 1392px;
147
+ --nc-frame-gap: 24px;
148
+ --nc-cell-padding: 24px;
149
+ --nc-section-gap: 48px;
150
+ --nc-cross-size-mobile: 11px;
151
+ --nc-cross-size-tablet: 15px;
152
+ --nc-cross-size-desktop: 21px;
153
+ --nc-h-strip-mobile: 72px;
154
+ --nc-h-strip-tablet: 80px;
155
+ --nc-h-strip-desktop: 88px;
156
+ --nc-h-cell-sm: 120px;
157
+ --nc-h-cell-md-mobile: 144px;
158
+ --nc-h-cell-md-tablet: 160px;
159
+ --nc-h-cell-md-desktop: 168px;
160
+ --nc-h-cell-lg-mobile: 220px;
161
+ --nc-h-cell-lg-desktop: 240px;
162
+ --nc-h-visual-mobile: 276px;
163
+ --nc-h-visual-tablet: 318px;
164
+ --nc-h-visual-desktop: 360px;
165
+ --nc-h-precision-mobile: 276px;
166
+ --nc-h-precision-tablet: 480px;
167
+ --nc-h-precision-desktop: 720px;
168
+ --nc-h-hero-mobile: 560px;
169
+ --nc-h-hero-desktop: 720px;
170
+ --nc-h-action-strip-mobile: 20px;
171
+ --nc-h-action-strip-desktop: 32px;
172
+ --nc-h-action-body-mobile: 320px;
173
+ --nc-h-action-body-tablet: 338px;
174
+ --nc-h-action-band: 260px;
175
+ --nc-h-feature-mobile: 360px;
176
+ --nc-h-feature-tablet: 400px;
177
+ --nc-h-feature-desktop: 456px;
178
+ --nc-h-editorial-feature-mobile: 360px;
179
+ --nc-h-editorial-feature-tablet: 440px;
180
+ --nc-h-editorial-feature-desktop: 560px;
181
+ --nc-h-bento-primary: 384px;
182
+ --nc-h-bento-secondary: 240px;
183
+ --nc-h-bento-mobile-copy: 248px;
184
+ --nc-h-bento-mobile-main: 537px;
185
+ --nc-h-bento-strip: 20px;
186
+ --nc-filter-chip-height: 28px;
187
+ --nc-filter-chip-icon: 14px;
188
+ --nc-rounded-none: 0px;
189
+ --nc-rounded-xs: 2px;
190
+ --nc-rounded-sm: 4px;
191
+ --nc-rounded-md: 6px;
192
+ --nc-rounded-lg: 8px;
193
+ --nc-rounded-xl: 10px;
194
+ --nc-rounded-2xl: 12px;
195
+ --nc-rounded-3xl: 16px;
196
+ --nc-rounded-pill-sm: 64px;
197
+ --nc-rounded-pill: 100px;
198
+ --nc-rounded-full: 9999px;
199
+ --nc-type-display-xl-font-family:
200
+ Geist,
201
+ Inter,
202
+ system-ui,
203
+ -apple-system,
204
+ sans-serif;
205
+ --nc-type-display-xl-font-size: 72px;
206
+ --nc-type-display-xl-font-weight: 600;
207
+ --nc-type-display-xl-line-height: 74px;
208
+ --nc-type-display-xl-letter-spacing: -1.5px;
209
+ --nc-type-display-lg-font-family:
210
+ Geist,
211
+ Inter,
212
+ system-ui,
213
+ -apple-system,
214
+ sans-serif;
215
+ --nc-type-display-lg-font-size: 52px;
216
+ --nc-type-display-lg-font-weight: 600;
217
+ --nc-type-display-lg-line-height: 54px;
218
+ --nc-type-display-lg-letter-spacing: -1px;
219
+ --nc-type-display-md-font-family:
220
+ Geist,
221
+ Inter,
222
+ system-ui,
223
+ -apple-system,
224
+ sans-serif;
225
+ --nc-type-display-md-font-size: 24px;
226
+ --nc-type-display-md-font-weight: 600;
227
+ --nc-type-display-md-line-height: 32px;
228
+ --nc-type-display-md-letter-spacing: 0px;
229
+ --nc-type-display-sm-font-family:
230
+ Geist,
231
+ Inter,
232
+ system-ui,
233
+ -apple-system,
234
+ sans-serif;
235
+ --nc-type-display-sm-font-size: 20px;
236
+ --nc-type-display-sm-font-weight: 600;
237
+ --nc-type-display-sm-line-height: 28px;
238
+ --nc-type-display-sm-letter-spacing: 0px;
239
+ --nc-type-title-lg-font-family:
240
+ Geist,
241
+ Inter,
242
+ system-ui,
243
+ -apple-system,
244
+ sans-serif;
245
+ --nc-type-title-lg-font-size: 40px;
246
+ --nc-type-title-lg-font-weight: 600;
247
+ --nc-type-title-lg-line-height: 41px;
248
+ --nc-type-title-lg-letter-spacing: 0px;
249
+ --nc-type-title-md-font-family:
250
+ Geist,
251
+ Inter,
252
+ system-ui,
253
+ -apple-system,
254
+ sans-serif;
255
+ --nc-type-title-md-font-size: 30px;
256
+ --nc-type-title-md-font-weight: 600;
257
+ --nc-type-title-md-line-height: 32px;
258
+ --nc-type-title-md-letter-spacing: 0px;
259
+ --nc-type-title-sm-font-family:
260
+ Geist,
261
+ Inter,
262
+ system-ui,
263
+ -apple-system,
264
+ sans-serif;
265
+ --nc-type-title-sm-font-size: 22px;
266
+ --nc-type-title-sm-font-weight: 600;
267
+ --nc-type-title-sm-line-height: 25px;
268
+ --nc-type-title-sm-letter-spacing: 0px;
269
+ --nc-type-body-lg-font-family:
270
+ Geist,
271
+ Inter,
272
+ system-ui,
273
+ -apple-system,
274
+ sans-serif;
275
+ --nc-type-body-lg-font-size: 18px;
276
+ --nc-type-body-lg-font-weight: 400;
277
+ --nc-type-body-lg-line-height: 27px;
278
+ --nc-type-body-lg-letter-spacing: 0px;
279
+ --nc-type-body-md-font-family:
280
+ Geist,
281
+ Inter,
282
+ system-ui,
283
+ -apple-system,
284
+ sans-serif;
285
+ --nc-type-body-md-font-size: 16px;
286
+ --nc-type-body-md-font-weight: 400;
287
+ --nc-type-body-md-line-height: 25px;
288
+ --nc-type-body-md-letter-spacing: 0px;
289
+ --nc-type-body-md-strong-font-family:
290
+ Geist,
291
+ Inter,
292
+ system-ui,
293
+ -apple-system,
294
+ sans-serif;
295
+ --nc-type-body-md-strong-font-size: 16px;
296
+ --nc-type-body-md-strong-font-weight: 500;
297
+ --nc-type-body-md-strong-line-height: 24px;
298
+ --nc-type-body-md-strong-letter-spacing: 0px;
299
+ --nc-type-body-sm-font-family:
300
+ Geist,
301
+ Inter,
302
+ system-ui,
303
+ -apple-system,
304
+ sans-serif;
305
+ --nc-type-body-sm-font-size: 14px;
306
+ --nc-type-body-sm-font-weight: 400;
307
+ --nc-type-body-sm-line-height: 20px;
308
+ --nc-type-body-sm-letter-spacing: 0px;
309
+ --nc-type-body-sm-strong-font-family:
310
+ Geist,
311
+ Inter,
312
+ system-ui,
313
+ -apple-system,
314
+ sans-serif;
315
+ --nc-type-body-sm-strong-font-size: 14px;
316
+ --nc-type-body-sm-strong-font-weight: 500;
317
+ --nc-type-body-sm-strong-line-height: 20px;
318
+ --nc-type-body-sm-strong-letter-spacing: 0px;
319
+ --nc-type-caption-font-family:
320
+ Geist,
321
+ Inter,
322
+ system-ui,
323
+ -apple-system,
324
+ sans-serif;
325
+ --nc-type-caption-font-size: 12px;
326
+ --nc-type-caption-font-weight: 400;
327
+ --nc-type-caption-line-height: 16px;
328
+ --nc-type-caption-letter-spacing: 0px;
329
+ --nc-type-caption-strong-font-family:
330
+ Geist,
331
+ Inter,
332
+ system-ui,
333
+ -apple-system,
334
+ sans-serif;
335
+ --nc-type-caption-strong-font-size: 12px;
336
+ --nc-type-caption-strong-font-weight: 500;
337
+ --nc-type-caption-strong-line-height: 16px;
338
+ --nc-type-caption-strong-letter-spacing: 0px;
339
+ --nc-type-caption-mono-font-family:
340
+ Geist Mono,
341
+ ui-monospace,
342
+ SFMono-Regular,
343
+ Menlo,
344
+ Monaco,
345
+ monospace;
346
+ --nc-type-caption-mono-font-size: 12px;
347
+ --nc-type-caption-mono-font-weight: 500;
348
+ --nc-type-caption-mono-line-height: 16px;
349
+ --nc-type-caption-mono-letter-spacing: 0px;
350
+ --nc-type-code-font-family:
351
+ Geist Mono,
352
+ ui-monospace,
353
+ SFMono-Regular,
354
+ Menlo,
355
+ Monaco,
356
+ monospace;
357
+ --nc-type-code-font-size: 13px;
358
+ --nc-type-code-font-weight: 400;
359
+ --nc-type-code-line-height: 20px;
360
+ --nc-type-code-letter-spacing: 0px;
361
+ --nc-type-button-md-font-family:
362
+ Geist,
363
+ Inter,
364
+ system-ui,
365
+ -apple-system,
366
+ sans-serif;
367
+ --nc-type-button-md-font-size: 14px;
368
+ --nc-type-button-md-font-weight: 500;
369
+ --nc-type-button-md-line-height: 18px;
370
+ --nc-type-button-md-letter-spacing: 0px;
371
+ --nc-type-button-lg-font-family:
372
+ Geist,
373
+ Inter,
374
+ system-ui,
375
+ -apple-system,
376
+ sans-serif;
377
+ --nc-type-button-lg-font-size: 16px;
378
+ --nc-type-button-lg-font-weight: 500;
379
+ --nc-type-button-lg-line-height: 24px;
380
+ --nc-type-button-lg-letter-spacing: 0px;
381
+ --nc-material-scrim-opacity: 10%;
382
+ --nc-material-shadow-tooltip: 0 1px 1px rgb(0 0 0 / 2%), 0 4px 8px rgb(0 0 0 / 4%);
383
+ --nc-material-shadow-menu:
384
+ 0 1px 1px rgb(0 0 0 / 2%),
385
+ 0 4px 8px -4px rgb(0 0 0 / 4%),
386
+ 0 16px 24px -8px rgb(0 0 0 / 6%);
387
+ --nc-material-shadow-dialog:
388
+ 0 1px 1px rgb(0 0 0 / 2%),
389
+ 0 8px 16px -4px rgb(0 0 0 / 4%),
390
+ 0 24px 32px -8px rgb(0 0 0 / 6%);
391
+ --nc-material-shadow-sheet: 0 2px 2px rgb(0 0 0 / 4%), 0 8px 16px -4px rgb(0 0 0 / 4%);
392
+ }
393
+ }
394
+
395
+ /* src/css/modes.generated.css */
396
+ @layer theme {
397
+ .dark {
398
+ --nc-canvas: var(--nc-dark-canvas);
399
+ --nc-canvas-soft: var(--nc-dark-canvas-soft);
400
+ --nc-canvas-soft-2: var(--nc-dark-canvas-soft-2);
401
+ --nc-ink: var(--nc-dark-ink);
402
+ --nc-body: var(--nc-dark-body);
403
+ --nc-muted: var(--nc-dark-muted);
404
+ --nc-line: var(--nc-dark-line);
405
+ --nc-input: var(--nc-dark-input);
406
+ --nc-seam: var(--nc-dark-seam);
407
+ --nc-primary: var(--nc-dark-primary);
408
+ --nc-on-primary: var(--nc-dark-on-primary);
409
+ --nc-action: var(--nc-dark-action);
410
+ --nc-action-foreground: var(--nc-dark-action-foreground);
411
+ --nc-action-hover: var(--nc-dark-action-hover);
412
+ --nc-action-active: var(--nc-dark-action-active);
413
+ --nc-link: var(--nc-dark-link);
414
+ --nc-link-deep: var(--nc-dark-link-deep);
415
+ --nc-link-bg-soft: var(--nc-dark-link-bg-soft);
416
+ --nc-focus-ring: var(--nc-dark-focus-ring);
417
+ --nc-scrim: var(--nc-dark-scrim);
418
+ --nc-error: var(--nc-dark-error);
419
+ --nc-error-soft: var(--nc-dark-error-soft);
420
+ --nc-error-deep: var(--nc-dark-error-deep);
421
+ --nc-warning: var(--nc-dark-warning);
422
+ --nc-warning-soft: var(--nc-dark-warning-soft);
423
+ --nc-warning-deep: var(--nc-dark-warning-deep);
424
+ --nc-info: var(--nc-dark-info);
425
+ --nc-info-soft: var(--nc-dark-info-soft);
426
+ --nc-info-deep: var(--nc-dark-info-deep);
427
+ --nc-success: var(--nc-dark-success);
428
+ --nc-state-ready: var(--nc-dark-state-ready);
429
+ --nc-state-running: var(--nc-dark-state-running);
430
+ --nc-state-review: var(--nc-dark-state-review);
431
+ --nc-state-blocked: var(--nc-dark-state-blocked);
432
+ --nc-state-complete: var(--nc-dark-state-complete);
433
+ --nc-selection-bg: var(--nc-dark-selection-bg);
434
+ --nc-selection-fg: var(--nc-dark-selection-fg);
435
+ --nc-cross: var(--nc-dark-cross);
436
+ --nc-chart-1: var(--nc-dark-chart-1);
437
+ --nc-chart-2: var(--nc-dark-chart-2);
438
+ --nc-chart-3: var(--nc-dark-chart-3);
439
+ --nc-chart-4: var(--nc-dark-chart-4);
440
+ --nc-chart-5: var(--nc-dark-chart-5);
441
+ --nc-chart-6: var(--nc-dark-chart-6);
442
+ --nc-chart-seq-1: var(--nc-dark-chart-seq-1);
443
+ --nc-chart-seq-2: var(--nc-dark-chart-seq-2);
444
+ --nc-chart-seq-3: var(--nc-dark-chart-seq-3);
445
+ --nc-chart-seq-4: var(--nc-dark-chart-seq-4);
446
+ --nc-chart-seq-5: var(--nc-dark-chart-seq-5);
447
+ --nc-chart-div-warm: var(--nc-dark-chart-div-warm);
448
+ --nc-chart-div-mid: var(--nc-dark-chart-div-mid);
449
+ --nc-chart-div-cool: var(--nc-dark-chart-div-cool);
450
+ }
451
+ }
452
+
453
+ /* src/css/theme.generated.css */
454
+ @layer theme {
455
+ :root {
456
+ --radius: var(--nc-rounded-md);
457
+ --background: var(--nc-canvas);
458
+ --foreground: var(--nc-ink);
459
+ --card: var(--nc-canvas);
460
+ --card-foreground: var(--nc-ink);
461
+ --popover: var(--nc-canvas);
462
+ --popover-foreground: var(--nc-ink);
463
+ --primary: var(--nc-action);
464
+ --primary-foreground: var(--nc-action-foreground);
465
+ --primary-hover: var(--nc-action-hover);
466
+ --primary-active: var(--nc-action-active);
467
+ --secondary: var(--nc-canvas-soft);
468
+ --secondary-foreground: var(--nc-ink);
469
+ --muted: var(--nc-canvas-soft);
470
+ --muted-foreground: var(--nc-body);
471
+ --placeholder: var(--nc-muted);
472
+ --accent: var(--nc-canvas-soft-2);
473
+ --accent-foreground: var(--nc-ink);
474
+ --destructive: var(--nc-error);
475
+ --destructive-foreground: var(--nc-campo-bianco);
476
+ --warning: var(--nc-warning);
477
+ --warning-foreground: var(--nc-ink);
478
+ --success: var(--nc-success);
479
+ --success-foreground: var(--nc-ink);
480
+ --border: var(--nc-line);
481
+ --input: var(--nc-input);
482
+ --ring: var(--nc-focus-ring);
483
+ --scrim: var(--nc-scrim);
484
+ --chart-1: var(--nc-chart-1);
485
+ --chart-2: var(--nc-chart-2);
486
+ --chart-3: var(--nc-chart-3);
487
+ --chart-4: var(--nc-chart-4);
488
+ --chart-5: var(--nc-chart-5);
489
+ --sidebar: var(--nc-canvas-soft);
490
+ --sidebar-foreground: var(--nc-ink);
491
+ --sidebar-primary: var(--nc-ink);
492
+ --sidebar-primary-foreground: var(--nc-campo-bianco);
493
+ --sidebar-accent: var(--nc-canvas-soft-2);
494
+ --sidebar-accent-foreground: var(--nc-ink);
495
+ --sidebar-border: var(--nc-line);
496
+ --sidebar-ring: var(--nc-focus-ring);
497
+ }
498
+ .dark {
499
+ --radius: var(--nc-rounded-md);
500
+ --background: var(--nc-dark-canvas);
501
+ --foreground: var(--nc-dark-ink);
502
+ --card: var(--nc-dark-canvas);
503
+ --card-foreground: var(--nc-dark-ink);
504
+ --popover: var(--nc-dark-canvas);
505
+ --popover-foreground: var(--nc-dark-ink);
506
+ --primary: var(--nc-dark-action);
507
+ --primary-foreground: var(--nc-dark-action-foreground);
508
+ --primary-hover: var(--nc-dark-action-hover);
509
+ --primary-active: var(--nc-dark-action-active);
510
+ --secondary: var(--nc-dark-canvas-soft);
511
+ --secondary-foreground: var(--nc-dark-ink);
512
+ --muted: var(--nc-dark-canvas-soft);
513
+ --muted-foreground: var(--nc-dark-body);
514
+ --placeholder: var(--nc-dark-muted);
515
+ --accent: var(--nc-dark-canvas-soft-2);
516
+ --accent-foreground: var(--nc-dark-ink);
517
+ --destructive: var(--nc-dark-error);
518
+ --destructive-foreground: var(--nc-dark-on-primary);
519
+ --warning: var(--nc-dark-warning);
520
+ --warning-foreground: var(--nc-dark-on-primary);
521
+ --success: var(--nc-dark-success);
522
+ --success-foreground: var(--nc-dark-on-primary);
523
+ --border: var(--nc-dark-line);
524
+ --input: var(--nc-dark-input);
525
+ --ring: var(--nc-dark-focus-ring);
526
+ --scrim: var(--nc-dark-scrim);
527
+ --chart-1: var(--nc-dark-chart-1);
528
+ --chart-2: var(--nc-dark-chart-2);
529
+ --chart-3: var(--nc-dark-chart-3);
530
+ --chart-4: var(--nc-dark-chart-4);
531
+ --chart-5: var(--nc-dark-chart-5);
532
+ --sidebar: var(--nc-dark-canvas);
533
+ --sidebar-foreground: var(--nc-dark-ink);
534
+ --sidebar-primary: var(--nc-dark-ink);
535
+ --sidebar-primary-foreground: var(--nc-dark-on-primary);
536
+ --sidebar-accent: var(--nc-dark-canvas-soft-2);
537
+ --sidebar-accent-foreground: var(--nc-dark-ink);
538
+ --sidebar-border: var(--nc-dark-line);
539
+ --sidebar-ring: var(--nc-dark-focus-ring);
540
+ }
541
+ @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-primary-hover: var(--primary-hover); --color-primary-active: var(--primary-active); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-placeholder: var(--placeholder); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-warning: var(--warning); --color-warning-foreground: var(--warning-foreground); --color-success: var(--success); --color-success-foreground: var(--success-foreground); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-scrim: var(--scrim); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); }
542
+ @theme { --color-nc-primary: oklch(0.6415 0.1644 153.23); --color-nc-on-primary: oklch(0.1638 0.0063 91.70); --color-nc-action: oklch(0.6415 0.1644 153.23); --color-nc-action-foreground: oklch(0.1638 0.0063 91.70); --color-nc-action-hover: oklch(0.6104 0.1561 153.32); --color-nc-action-active: oklch(0.5875 0.1497 153.50); --color-nc-ink: oklch(0.1638 0.0063 91.70); --color-nc-body: oklch(0.3558 0.0069 95.25); --color-nc-muted: oklch(0.5517 0.0109 93.66); --color-nc-canvas: oklch(1.0000 0.0000 0.00); --color-nc-canvas-soft: oklch(0.9753 0.0040 106.47); --color-nc-canvas-soft-2: oklch(0.9505 0.0080 106.55); --color-nc-line: oklch(0.9233 0.0080 106.56); --color-nc-input: oklch(0.5523 0.0080 88.68); --color-nc-seam: oklch(0.8800 0.0108 106.62); --color-nc-cross: oklch(0.6686 0.0146 97.54); --color-nc-focus-ring: oklch(0.4815 0.1209 154.24); --color-nc-scrim: oklch(0.1638 0.0063 91.70); --color-nc-link: oklch(0.4815 0.1209 154.24); --color-nc-link-deep: oklch(0.3852 0.0953 154.99); --color-nc-link-bg-soft: oklch(0.9170 0.0519 161.77); --color-nc-accent: oklch(0.6824 0.2108 37.70); --color-nc-info: oklch(0.5005 0.2804 266.17); --color-nc-info-soft: oklch(0.9457 0.0259 276.40); --color-nc-info-deep: oklch(0.3197 0.1758 266.79); --color-nc-success: oklch(0.6415 0.1644 153.23); --color-nc-error: oklch(0.5688 0.1995 26.59); --color-nc-error-soft: oklch(0.9522 0.0207 17.52); --color-nc-error-deep: oklch(0.4235 0.1525 27.08); --color-nc-warning: oklch(0.8466 0.1678 84.63); --color-nc-warning-soft: oklch(0.9649 0.0461 90.87); --color-nc-warning-deep: oklch(0.4834 0.0995 82.44); --color-nc-flag-red: oklch(0.5688 0.1995 26.59); --color-nc-selection-bg: oklch(0.1638 0.0063 91.70); --color-nc-selection-fg: oklch(0.9753 0.0040 106.47); --color-nc-state-ready: oklch(0.5517 0.0109 93.66); --color-nc-state-running: oklch(0.5005 0.2804 266.17); --color-nc-state-review: oklch(0.8466 0.1678 84.63); --color-nc-state-blocked: oklch(0.5688 0.1995 26.59); --color-nc-state-complete: oklch(0.6415 0.1644 153.23); --color-nc-background-100: oklch(1.0000 0.0000 0.00); --color-nc-background-200: oklch(0.9753 0.0040 106.47); --color-nc-campo-verde: oklch(0.6415 0.1644 153.23); --color-nc-campo-rosso: oklch(0.5688 0.1995 26.59); --color-nc-campo-arancio: oklch(0.6824 0.2108 37.70); --color-nc-campo-giallo: oklch(0.8466 0.1678 84.63); --color-nc-campo-cobalto: oklch(0.5005 0.2804 266.17); --color-nc-campo-inchiostro: oklch(0.1638 0.0063 91.70); --color-nc-campo-bianco: oklch(1.0000 0.0000 0.00); --color-nc-chart-1: oklch(0.5005 0.2804 266.17); --color-nc-chart-2: oklch(0.6415 0.1644 153.23); --color-nc-chart-3: oklch(0.8466 0.1678 84.63); --color-nc-chart-4: oklch(0.5688 0.1995 26.59); --color-nc-chart-5: oklch(0.5571 0.0953 206.08); --color-nc-chart-6: oklch(0.5015 0.1883 294.99); --color-nc-chart-seq-1: oklch(0.6998 0.1347 269.48); --color-nc-chart-seq-2: oklch(0.5724 0.1897 270.11); --color-nc-chart-seq-3: oklch(0.4725 0.2271 267.41); --color-nc-chart-seq-4: oklch(0.3989 0.1934 267.50); --color-nc-chart-seq-5: oklch(0.3270 0.1487 267.91); --color-nc-chart-div-warm: oklch(0.7592 0.1560 83.30); --color-nc-chart-div-mid: oklch(0.5517 0.0109 93.66); --color-nc-chart-div-cool: oklch(0.5923 0.2215 269.61); --color-nc-dark-canvas: oklch(0.1676 0.0041 106.83); --color-nc-dark-canvas-soft: oklch(0.2034 0.0058 106.91); --color-nc-dark-canvas-soft-2: oklch(0.2417 0.0092 107.07); --color-nc-dark-ink: oklch(0.9600 0.0053 106.50); --color-nc-dark-body: oklch(0.8350 0.0083 98.90); --color-nc-dark-muted: oklch(0.6424 0.0134 96.52); --color-nc-dark-line: oklch(0.2836 0.0071 106.85); --color-nc-dark-input: oklch(0.5166 0.0078 97.46); --color-nc-dark-seam: oklch(0.2417 0.0092 107.07); --color-nc-dark-primary: oklch(0.7727 0.1753 155.96); --color-nc-dark-on-primary: oklch(0.1676 0.0041 106.83); --color-nc-dark-action: oklch(0.7727 0.1753 155.96); --color-nc-dark-action-foreground: oklch(0.1676 0.0041 106.83); --color-nc-dark-action-hover: oklch(0.7661 0.1498 157.10); --color-nc-dark-action-active: oklch(0.7019 0.1753 153.20); --color-nc-dark-link: oklch(0.7661 0.1498 157.10); --color-nc-dark-link-deep: oklch(0.8524 0.0996 159.83); --color-nc-dark-link-bg-soft: oklch(0.2893 0.0697 156.32); --color-nc-dark-focus-ring: oklch(0.7661 0.1498 157.10); --color-nc-dark-scrim: oklch(0.9600 0.0053 106.50); --color-nc-dark-error: oklch(0.7955 0.0980 21.02); --color-nc-dark-error-soft: oklch(0.2296 0.0728 26.06); --color-nc-dark-error-deep: oklch(0.8856 0.0534 19.64); --color-nc-dark-warning: oklch(0.8939 0.1387 90.47); --color-nc-dark-warning-soft: oklch(0.3135 0.0643 85.04); --color-nc-dark-warning-deep: oklch(0.9320 0.0896 90.86); --color-nc-dark-info: oklch(0.7067 0.1528 272.08); --color-nc-dark-info-soft: oklch(0.2118 0.1033 268.28); --color-nc-dark-info-deep: oklch(0.8222 0.0888 274.44); --color-nc-dark-cyan: oklch(0.7820 0.1247 190.99); --color-nc-dark-cyan-soft: oklch(0.8646 0.1000 187.55); --color-nc-dark-cyan-deep: oklch(0.6347 0.1029 191.54); --color-nc-dark-success: oklch(0.7019 0.1753 153.20); --color-nc-dark-state-ready: oklch(0.5517 0.0109 93.66); --color-nc-dark-state-running: oklch(0.5923 0.2215 269.61); --color-nc-dark-state-review: oklch(0.8466 0.1678 84.63); --color-nc-dark-state-blocked: oklch(0.5688 0.1995 26.59); --color-nc-dark-state-complete: oklch(0.6415 0.1644 153.23); --color-nc-dark-selection-bg: oklch(0.9600 0.0053 106.50); --color-nc-dark-selection-fg: oklch(0.1676 0.0041 106.83); --color-nc-dark-cross: oklch(0.4419 0.0164 93.17); --color-nc-dark-chart-1: oklch(0.5923 0.2215 269.61); --color-nc-dark-chart-2: oklch(0.6415 0.1644 153.23); --color-nc-dark-chart-3: oklch(0.8939 0.1387 90.47); --color-nc-dark-chart-4: oklch(0.6627 0.1685 23.66); --color-nc-dark-chart-5: oklch(0.7820 0.1247 190.99); --color-nc-dark-chart-6: oklch(0.6297 0.1321 299.36); --color-nc-dark-chart-seq-1: oklch(0.5724 0.1897 270.11); --color-nc-dark-chart-seq-2: oklch(0.6998 0.1347 269.48); --color-nc-dark-chart-seq-3: oklch(0.8072 0.0884 269.44); --color-nc-dark-chart-seq-4: oklch(0.8877 0.0514 270.78); --color-nc-dark-chart-seq-5: oklch(0.9619 0.0179 272.31); --color-nc-dark-chart-div-warm: oklch(0.8939 0.1387 90.47); --color-nc-dark-chart-div-mid: oklch(0.9233 0.0080 106.56); --color-nc-dark-chart-div-cool: oklch(0.8222 0.0888 274.44); --font-display-xl: Geist, Inter, system-ui, -apple-system, sans-serif; --font-display-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --font-display-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-display-sm: Geist, Inter, system-ui, -apple-system, sans-serif; --font-title-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --font-title-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-title-sm: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-md-strong: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-sm: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-sm-strong: Geist, Inter, system-ui, -apple-system, sans-serif; --font-caption: Geist, Inter, system-ui, -apple-system, sans-serif; --font-caption-strong: Geist, Inter, system-ui, -apple-system, sans-serif; --font-caption-mono: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, monospace; --font-code: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, monospace; --font-button-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-button-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --text-display-xl: 72px; --text-display-xl--line-height: 74px; --leading-display-xl: 74px; --text-display-xl--letter-spacing: -1.5px; --tracking-display-xl: -1.5px; --text-display-xl--font-weight: 600; --font-weight-display-xl: 600; --text-display-lg: 52px; --text-display-lg--line-height: 54px; --leading-display-lg: 54px; --text-display-lg--letter-spacing: -1px; --tracking-display-lg: -1px; --text-display-lg--font-weight: 600; --font-weight-display-lg: 600; --text-display-md: 24px; --text-display-md--line-height: 32px; --leading-display-md: 32px; --text-display-md--letter-spacing: 0px; --tracking-display-md: 0px; --text-display-md--font-weight: 600; --font-weight-display-md: 600; --text-display-sm: 20px; --text-display-sm--line-height: 28px; --leading-display-sm: 28px; --text-display-sm--letter-spacing: 0px; --tracking-display-sm: 0px; --text-display-sm--font-weight: 600; --font-weight-display-sm: 600; --text-title-lg: 40px; --text-title-lg--line-height: 41px; --leading-title-lg: 41px; --text-title-lg--letter-spacing: 0px; --tracking-title-lg: 0px; --text-title-lg--font-weight: 600; --font-weight-title-lg: 600; --text-title-md: 30px; --text-title-md--line-height: 32px; --leading-title-md: 32px; --text-title-md--letter-spacing: 0px; --tracking-title-md: 0px; --text-title-md--font-weight: 600; --font-weight-title-md: 600; --text-title-sm: 22px; --text-title-sm--line-height: 25px; --leading-title-sm: 25px; --text-title-sm--letter-spacing: 0px; --tracking-title-sm: 0px; --text-title-sm--font-weight: 600; --font-weight-title-sm: 600; --text-body-lg: 18px; --text-body-lg--line-height: 27px; --leading-body-lg: 27px; --text-body-lg--letter-spacing: 0px; --tracking-body-lg: 0px; --text-body-lg--font-weight: 400; --font-weight-body-lg: 400; --text-body-md: 16px; --text-body-md--line-height: 25px; --leading-body-md: 25px; --text-body-md--letter-spacing: 0px; --tracking-body-md: 0px; --text-body-md--font-weight: 400; --font-weight-body-md: 400; --text-body-md-strong: 16px; --text-body-md-strong--line-height: 24px; --leading-body-md-strong: 24px; --text-body-md-strong--letter-spacing: 0px; --tracking-body-md-strong: 0px; --text-body-md-strong--font-weight: 500; --font-weight-body-md-strong: 500; --text-body-sm: 14px; --text-body-sm--line-height: 20px; --leading-body-sm: 20px; --text-body-sm--letter-spacing: 0px; --tracking-body-sm: 0px; --text-body-sm--font-weight: 400; --font-weight-body-sm: 400; --text-body-sm-strong: 14px; --text-body-sm-strong--line-height: 20px; --leading-body-sm-strong: 20px; --text-body-sm-strong--letter-spacing: 0px; --tracking-body-sm-strong: 0px; --text-body-sm-strong--font-weight: 500; --font-weight-body-sm-strong: 500; --text-caption: 12px; --text-caption--line-height: 16px; --leading-caption: 16px; --text-caption--letter-spacing: 0px; --tracking-caption: 0px; --text-caption--font-weight: 400; --font-weight-caption: 400; --text-caption-strong: 12px; --text-caption-strong--line-height: 16px; --leading-caption-strong: 16px; --text-caption-strong--letter-spacing: 0px; --tracking-caption-strong: 0px; --text-caption-strong--font-weight: 500; --font-weight-caption-strong: 500; --text-caption-mono: 12px; --text-caption-mono--line-height: 16px; --leading-caption-mono: 16px; --text-caption-mono--letter-spacing: 0px; --tracking-caption-mono: 0px; --text-caption-mono--font-weight: 500; --font-weight-caption-mono: 500; --text-code: 13px; --text-code--line-height: 20px; --leading-code: 20px; --text-code--letter-spacing: 0px; --tracking-code: 0px; --text-code--font-weight: 400; --font-weight-code: 400; --text-button-md: 14px; --text-button-md--line-height: 18px; --leading-button-md: 18px; --text-button-md--letter-spacing: 0px; --tracking-button-md: 0px; --text-button-md--font-weight: 500; --font-weight-button-md: 500; --text-button-lg: 16px; --text-button-lg--line-height: 24px; --leading-button-lg: 24px; --text-button-lg--letter-spacing: 0px; --tracking-button-lg: 0px; --text-button-lg--font-weight: 500; --font-weight-button-lg: 500; --radius-none: 0px; --radius-xs: 2px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-xl: 10px; --radius-2xl: 12px; --radius-3xl: 16px; --radius-pill-sm: 64px; --radius-pill: 100px; --radius-full: 9999px; --ring-width-focus: var(--spacing-nadicode-focus-ring-width); --opacity-scrim: var(--nc-material-scrim-opacity); --shadow-tooltip: var(--nc-material-shadow-tooltip); --shadow-menu: var(--nc-material-shadow-menu); --shadow-dialog: var(--nc-material-shadow-dialog); --shadow-sheet: var(--nc-material-shadow-sheet); --spacing-nadicode-xxs: 4px; --spacing-nadicode-filter-chip-gap: 6px; --spacing-nadicode-xs: 8px; --spacing-nadicode-sm: 12px; --spacing-nadicode-md: 16px; --spacing-nadicode-lg: 24px; --spacing-nadicode-xl: 32px; --spacing-nadicode-2xl: 40px; --spacing-nadicode-3xl: 48px; --spacing-nadicode-4xl: 64px; --spacing-nadicode-5xl: 96px; --spacing-nadicode-6xl: 128px; --spacing-nadicode-section: 192px; --spacing-nadicode-guide: 1px; --spacing-nadicode-focus-ring-width: 3px; --spacing-nadicode-control-height: 32px; --spacing-nadicode-control-padding-inline: 10px; --spacing-nadicode-touch-target: 44px; --spacing-nadicode-page-pad: 24px; --spacing-nadicode-page-max-mobile: 448px; --spacing-nadicode-page-max-tablet: 624px; --spacing-nadicode-page-max-desktop: 1440px; --spacing-nadicode-frame-max: 1392px; --spacing-nadicode-frame-gap: 24px; --spacing-nadicode-cell-padding: 24px; --spacing-nadicode-section-gap: 48px; --spacing-nadicode-cross-size-mobile: 11px; --spacing-nadicode-cross-size-tablet: 15px; --spacing-nadicode-cross-size-desktop: 21px; --spacing-nadicode-h-strip-mobile: 72px; --spacing-nadicode-h-strip-tablet: 80px; --spacing-nadicode-h-strip-desktop: 88px; --spacing-nadicode-h-cell-sm: 120px; --spacing-nadicode-h-cell-md-mobile: 144px; --spacing-nadicode-h-cell-md-tablet: 160px; --spacing-nadicode-h-cell-md-desktop: 168px; --spacing-nadicode-h-cell-lg-mobile: 220px; --spacing-nadicode-h-cell-lg-desktop: 240px; --spacing-nadicode-h-visual-mobile: 276px; --spacing-nadicode-h-visual-tablet: 318px; --spacing-nadicode-h-visual-desktop: 360px; --spacing-nadicode-h-precision-mobile: 276px; --spacing-nadicode-h-precision-tablet: 480px; --spacing-nadicode-h-precision-desktop: 720px; --spacing-nadicode-h-hero-mobile: 560px; --spacing-nadicode-h-hero-desktop: 720px; --spacing-nadicode-h-action-strip-mobile: 20px; --spacing-nadicode-h-action-strip-desktop: 32px; --spacing-nadicode-h-action-body-mobile: 320px; --spacing-nadicode-h-action-body-tablet: 338px; --spacing-nadicode-h-action-band: 260px; --spacing-nadicode-h-feature-mobile: 360px; --spacing-nadicode-h-feature-tablet: 400px; --spacing-nadicode-h-feature-desktop: 456px; --spacing-nadicode-h-editorial-feature-mobile: 360px; --spacing-nadicode-h-editorial-feature-tablet: 440px; --spacing-nadicode-h-editorial-feature-desktop: 560px; --spacing-nadicode-h-bento-primary: 384px; --spacing-nadicode-h-bento-secondary: 240px; --spacing-nadicode-h-bento-mobile-copy: 248px; --spacing-nadicode-h-bento-mobile-main: 537px; --spacing-nadicode-h-bento-strip: 20px; --spacing-nadicode-filter-chip-height: 28px; --spacing-nadicode-filter-chip-icon: 14px; --spacing-control-height: var(--spacing-nadicode-control-height); --spacing-control-padding-inline: var(--spacing-nadicode-control-padding-inline); --spacing-touch-target: var(--spacing-nadicode-touch-target); }
543
+ }
544
+
545
+ /* src/css/reset.css */
546
+ @layer reset {
547
+ * {
548
+ box-sizing: border-box;
549
+ }
550
+ html {
551
+ min-width: 320px;
552
+ overflow-x: clip;
553
+ text-rendering: optimizeLegibility;
554
+ }
555
+ body {
556
+ margin: 0;
557
+ overflow-x: clip;
558
+ }
559
+ h1,
560
+ h2,
561
+ h3,
562
+ p {
563
+ margin: 0;
564
+ }
565
+ }
566
+
567
+ /* src/css/foundation.css */
568
+ @layer foundation {
569
+ body {
570
+ font-family:
571
+ Geist,
572
+ Inter,
573
+ system-ui,
574
+ -apple-system,
575
+ sans-serif;
576
+ }
577
+ .nc-page {
578
+ width: 100%;
579
+ max-width: var(--nc-page-max);
580
+ margin-inline: auto;
581
+ padding-inline: var(--nc-page-pad);
582
+ }
583
+ .nc-frame {
584
+ width: 100%;
585
+ max-width: var(--nc-frame-max);
586
+ margin-inline: auto;
587
+ }
588
+ .nc-type-display-xl {
589
+ font-family: var(--nc-type-display-xl-font-family);
590
+ font-size: var(--nc-type-display-xl-font-size);
591
+ font-weight: var(--nc-type-display-xl-font-weight);
592
+ line-height: var(--nc-type-display-xl-line-height);
593
+ letter-spacing: var(--nc-type-display-xl-letter-spacing);
594
+ }
595
+ .nc-type-display-lg {
596
+ font-family: var(--nc-type-display-lg-font-family);
597
+ font-size: var(--nc-type-display-lg-font-size);
598
+ font-weight: var(--nc-type-display-lg-font-weight);
599
+ line-height: var(--nc-type-display-lg-line-height);
600
+ letter-spacing: var(--nc-type-display-lg-letter-spacing);
601
+ }
602
+ .nc-type-display-md {
603
+ font-family: var(--nc-type-display-md-font-family);
604
+ font-size: var(--nc-type-display-md-font-size);
605
+ font-weight: var(--nc-type-display-md-font-weight);
606
+ line-height: var(--nc-type-display-md-line-height);
607
+ letter-spacing: var(--nc-type-display-md-letter-spacing);
608
+ }
609
+ .nc-type-display-sm {
610
+ font-family: var(--nc-type-display-sm-font-family);
611
+ font-size: var(--nc-type-display-sm-font-size);
612
+ font-weight: var(--nc-type-display-sm-font-weight);
613
+ line-height: var(--nc-type-display-sm-line-height);
614
+ letter-spacing: var(--nc-type-display-sm-letter-spacing);
615
+ }
616
+ .nc-type-title-lg {
617
+ font-family: var(--nc-type-title-lg-font-family);
618
+ font-size: var(--nc-type-title-lg-font-size);
619
+ font-weight: var(--nc-type-title-lg-font-weight);
620
+ line-height: var(--nc-type-title-lg-line-height);
621
+ letter-spacing: var(--nc-type-title-lg-letter-spacing);
622
+ }
623
+ .nc-type-title-md {
624
+ font-family: var(--nc-type-title-md-font-family);
625
+ font-size: var(--nc-type-title-md-font-size);
626
+ font-weight: var(--nc-type-title-md-font-weight);
627
+ line-height: var(--nc-type-title-md-line-height);
628
+ letter-spacing: var(--nc-type-title-md-letter-spacing);
629
+ }
630
+ .nc-type-title-sm {
631
+ font-family: var(--nc-type-title-sm-font-family);
632
+ font-size: var(--nc-type-title-sm-font-size);
633
+ font-weight: var(--nc-type-title-sm-font-weight);
634
+ line-height: var(--nc-type-title-sm-line-height);
635
+ letter-spacing: var(--nc-type-title-sm-letter-spacing);
636
+ }
637
+ .nc-type-body-lg {
638
+ font-family: var(--nc-type-body-lg-font-family);
639
+ font-size: var(--nc-type-body-lg-font-size);
640
+ font-weight: var(--nc-type-body-lg-font-weight);
641
+ line-height: var(--nc-type-body-lg-line-height);
642
+ letter-spacing: var(--nc-type-body-lg-letter-spacing);
643
+ }
644
+ .nc-type-body-md {
645
+ font-family: var(--nc-type-body-md-font-family);
646
+ font-size: var(--nc-type-body-md-font-size);
647
+ font-weight: var(--nc-type-body-md-font-weight);
648
+ line-height: var(--nc-type-body-md-line-height);
649
+ letter-spacing: var(--nc-type-body-md-letter-spacing);
650
+ }
651
+ .nc-type-body-md-strong {
652
+ font-family: var(--nc-type-body-md-strong-font-family);
653
+ font-size: var(--nc-type-body-md-strong-font-size);
654
+ font-weight: var(--nc-type-body-md-strong-font-weight);
655
+ line-height: var(--nc-type-body-md-strong-line-height);
656
+ letter-spacing: var(--nc-type-body-md-strong-letter-spacing);
657
+ }
658
+ .nc-type-body-sm {
659
+ font-family: var(--nc-type-body-sm-font-family);
660
+ font-size: var(--nc-type-body-sm-font-size);
661
+ font-weight: var(--nc-type-body-sm-font-weight);
662
+ line-height: var(--nc-type-body-sm-line-height);
663
+ letter-spacing: var(--nc-type-body-sm-letter-spacing);
664
+ }
665
+ .nc-type-body-sm-strong {
666
+ font-family: var(--nc-type-body-sm-strong-font-family);
667
+ font-size: var(--nc-type-body-sm-strong-font-size);
668
+ font-weight: var(--nc-type-body-sm-strong-font-weight);
669
+ line-height: var(--nc-type-body-sm-strong-line-height);
670
+ letter-spacing: var(--nc-type-body-sm-strong-letter-spacing);
671
+ }
672
+ .nc-type-caption {
673
+ font-family: var(--nc-type-caption-font-family);
674
+ font-size: var(--nc-type-caption-font-size);
675
+ font-weight: var(--nc-type-caption-font-weight);
676
+ line-height: var(--nc-type-caption-line-height);
677
+ letter-spacing: var(--nc-type-caption-letter-spacing);
678
+ }
679
+ .nc-type-caption-strong {
680
+ font-family: var(--nc-type-caption-strong-font-family);
681
+ font-size: var(--nc-type-caption-strong-font-size);
682
+ font-weight: var(--nc-type-caption-strong-font-weight);
683
+ line-height: var(--nc-type-caption-strong-line-height);
684
+ letter-spacing: var(--nc-type-caption-strong-letter-spacing);
685
+ }
686
+ .nc-type-caption-mono {
687
+ font-family: var(--nc-type-caption-mono-font-family);
688
+ font-size: var(--nc-type-caption-mono-font-size);
689
+ font-weight: var(--nc-type-caption-mono-font-weight);
690
+ line-height: var(--nc-type-caption-mono-line-height);
691
+ letter-spacing: var(--nc-type-caption-mono-letter-spacing);
692
+ }
693
+ .nc-type-code {
694
+ font-family: var(--nc-type-code-font-family);
695
+ font-size: var(--nc-type-code-font-size);
696
+ font-weight: var(--nc-type-code-font-weight);
697
+ line-height: var(--nc-type-code-line-height);
698
+ letter-spacing: var(--nc-type-code-letter-spacing);
699
+ }
700
+ .nc-type-button-md {
701
+ font-family: var(--nc-type-button-md-font-family);
702
+ font-size: var(--nc-type-button-md-font-size);
703
+ font-weight: var(--nc-type-button-md-font-weight);
704
+ line-height: var(--nc-type-button-md-line-height);
705
+ letter-spacing: var(--nc-type-button-md-letter-spacing);
706
+ }
707
+ .nc-type-button-lg {
708
+ font-family: var(--nc-type-button-lg-font-family);
709
+ font-size: var(--nc-type-button-lg-font-size);
710
+ font-weight: var(--nc-type-button-lg-font-weight);
711
+ line-height: var(--nc-type-button-lg-line-height);
712
+ letter-spacing: var(--nc-type-button-lg-letter-spacing);
713
+ }
714
+ }
715
+
716
+ /* src/css/motion.css */
717
+ @layer motion {
718
+ :root {
719
+ --nc-duration-stagger: 160ms;
720
+ --nc-duration-msg-in: 360ms;
721
+ --nc-duration-transition: 360ms;
722
+ --nc-duration-typing: 1s;
723
+ --nc-duration-pulse: 1.6s;
724
+ --nc-duration-confirm: 180ms;
725
+ --nc-duration-open: 220ms;
726
+ --nc-duration-close: 140ms;
727
+ --nc-ease-emphasized: cubic-bezier(0.3, 0.7, 0.2, 1);
728
+ --nc-ease-bounce: ease-in-out;
729
+ --nc-ease-out: ease-out;
730
+ --nc-ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
731
+ }
732
+ @keyframes nc-msg-in {
733
+ from {
734
+ opacity: 0;
735
+ transform: translateY(4px);
736
+ }
737
+ to {
738
+ opacity: 1;
739
+ transform: translateY(0);
740
+ }
741
+ }
742
+ @keyframes nc-typing {
743
+ 0%, 80%, 100% {
744
+ opacity: 0.25;
745
+ transform: translateY(0);
746
+ }
747
+ 40% {
748
+ opacity: 1;
749
+ transform: translateY(-2px);
750
+ }
751
+ }
752
+ @keyframes nc-pulse {
753
+ 0% {
754
+ box-shadow: 0 0 0 0 currentColor;
755
+ }
756
+ 70% {
757
+ box-shadow: 0 0 0 6px transparent;
758
+ }
759
+ 100% {
760
+ box-shadow: 0 0 0 0 transparent;
761
+ }
762
+ }
763
+ .nc-anim-msg-in {
764
+ animation: nc-msg-in var(--nc-duration-msg-in) var(--nc-ease-emphasized) both;
765
+ animation-delay: var(--nc-anim-delay, 0ms);
766
+ }
767
+ .nc-anim-typing {
768
+ animation: nc-typing var(--nc-duration-typing) var(--nc-ease-bounce) infinite;
769
+ animation-delay: var(--nc-anim-delay, 0ms);
770
+ }
771
+ .nc-anim-pulse {
772
+ animation: nc-pulse var(--nc-duration-pulse) var(--nc-ease-out) infinite;
773
+ animation-delay: var(--nc-anim-delay, 0ms);
774
+ }
775
+ @media (prefers-reduced-motion: no-preference) {
776
+ [data-nc-settle=armed] {
777
+ opacity: 0;
778
+ }
779
+ [data-nc-settle=in] {
780
+ animation: nc-msg-in var(--nc-duration-msg-in) var(--nc-ease-emphasized) both;
781
+ }
782
+ }
783
+ @media (prefers-reduced-motion: reduce) {
784
+ .nc-anim-msg-in,
785
+ .nc-anim-typing,
786
+ .nc-anim-pulse {
787
+ animation: none;
788
+ opacity: 1;
789
+ transform: none;
790
+ box-shadow: none;
791
+ }
792
+ }
793
+ }
794
+
795
+ /* src/css/layout.css */
796
+ @layer layout {
797
+ :root {
798
+ --nc-page-max: var(--nc-page-max-mobile);
799
+ --nc-cross-size: var(--nc-cross-size-mobile);
800
+ --nc-h-cell-md: var(--nc-h-cell-md-mobile);
801
+ --nc-h-cell-lg: var(--nc-h-cell-lg-mobile);
802
+ --nc-h-hero: var(--nc-h-hero-mobile);
803
+ --nc-h-strip: var(--nc-h-strip-mobile);
804
+ --nc-h-action-strip: var(--nc-h-action-strip-mobile);
805
+ --nc-h-action-body: var(--nc-h-action-body-mobile);
806
+ --nc-h-feature: var(--nc-h-feature-mobile);
807
+ --nc-h-editorial-feature: var(--nc-h-editorial-feature-mobile);
808
+ }
809
+ @media (min-width: 600px) {
810
+ :root {
811
+ --nc-page-max: var(--nc-page-max-tablet);
812
+ --nc-cross-size: var(--nc-cross-size-tablet);
813
+ --nc-h-cell-md: var(--nc-h-cell-md-tablet);
814
+ --nc-h-strip: var(--nc-h-strip-tablet);
815
+ --nc-h-action-body: var(--nc-h-action-body-tablet);
816
+ --nc-h-feature: var(--nc-h-feature-tablet);
817
+ --nc-h-editorial-feature: var(--nc-h-editorial-feature-tablet);
818
+ }
819
+ }
820
+ @media (min-width: 960px) {
821
+ :root {
822
+ --nc-page-max: var(--nc-page-max-desktop);
823
+ --nc-cross-size: var(--nc-cross-size-desktop);
824
+ --nc-h-cell-md: var(--nc-h-cell-md-desktop);
825
+ --nc-h-cell-lg: var(--nc-h-cell-lg-desktop);
826
+ --nc-h-hero: var(--nc-h-hero-desktop);
827
+ --nc-h-strip: var(--nc-h-strip-desktop);
828
+ --nc-h-action-strip: var(--nc-h-action-strip-desktop);
829
+ --nc-h-feature: var(--nc-h-feature-desktop);
830
+ --nc-h-editorial-feature: var(--nc-h-editorial-feature-desktop);
831
+ }
832
+ }
833
+ .nc-page-system {
834
+ width: 100%;
835
+ padding-inline: var(--nc-page-pad);
836
+ padding-block: var(--nc-4xl);
837
+ }
838
+ .nc-page-frame {
839
+ position: relative;
840
+ width: 100%;
841
+ max-width: var(--nc-frame-max);
842
+ margin-inline: auto;
843
+ border-top: var(--nc-guide) solid var(--nc-line);
844
+ border-left: var(--nc-guide) solid var(--nc-line);
845
+ background: var(--nc-canvas);
846
+ }
847
+ .nc-page-frame::after {
848
+ content: "";
849
+ position: absolute;
850
+ inset: 0;
851
+ z-index: 3;
852
+ border-right: var(--nc-guide) solid var(--nc-line);
853
+ border-bottom: var(--nc-guide) solid var(--nc-line);
854
+ pointer-events: none;
855
+ }
856
+ .nc-page-row {
857
+ --nc-row-min-height: var(--nc-h-cell-lg);
858
+ --nc-row-bleed-surface: var(--nc-canvas);
859
+ position: relative;
860
+ display: grid;
861
+ grid-template-columns: minmax(0, 1fr);
862
+ min-height: var(--nc-row-min-height);
863
+ border-top: var(--nc-guide) solid var(--nc-line);
864
+ background: var(--nc-canvas);
865
+ }
866
+ .nc-page-frame > .nc-page-row:first-child {
867
+ border-top: 0;
868
+ }
869
+ .nc-page-row[data-nc-bleed=surface]::before {
870
+ content: "";
871
+ position: absolute;
872
+ z-index: 0;
873
+ inset-block: 0;
874
+ left: 50%;
875
+ width: 100vw;
876
+ transform: translateX(-50%);
877
+ background: var(--nc-row-bleed-surface);
878
+ pointer-events: none;
879
+ }
880
+ .nc-page-row[data-nc-bleed=surface] > * {
881
+ position: relative;
882
+ z-index: 1;
883
+ }
884
+ .nc-row-lane {
885
+ display: grid;
886
+ min-width: 0;
887
+ min-height: 0;
888
+ }
889
+ .nc-row-lane[data-lane=active],
890
+ .nc-row-lane[data-lane=full] {
891
+ grid-column: 1 / -1;
892
+ }
893
+ .nc-grid-field {
894
+ --nc-grid-columns: 1;
895
+ --nc-grid-rows: 1;
896
+ --nc-grid-line: var(--nc-line);
897
+ position: relative;
898
+ display: grid;
899
+ grid-template-columns: repeat(var(--nc-grid-columns), minmax(0, 1fr));
900
+ grid-template-rows: repeat(var(--nc-grid-rows), minmax(0, 1fr));
901
+ min-width: 0;
902
+ overflow: visible;
903
+ background: var(--nc-canvas);
904
+ }
905
+ .nc-grid-field[data-grid-field=full-hero] {
906
+ --nc-grid-columns: 1;
907
+ --nc-grid-rows: 2;
908
+ height: var(--nc-h-hero);
909
+ }
910
+ .nc-grid-guides {
911
+ display: contents;
912
+ pointer-events: none;
913
+ }
914
+ .nc-grid-guide-v,
915
+ .nc-grid-guide-h {
916
+ position: relative;
917
+ z-index: 1;
918
+ display: none;
919
+ min-width: 0;
920
+ min-height: 0;
921
+ pointer-events: none;
922
+ }
923
+ .nc-grid-guide-v {
924
+ grid-column: var(--line);
925
+ grid-row: 1 / -1;
926
+ border-left: var(--nc-guide) solid var(--nc-grid-line);
927
+ }
928
+ .nc-grid-guide-h {
929
+ grid-column: 1 / -1;
930
+ grid-row: var(--line);
931
+ border-top: var(--nc-guide) solid var(--nc-grid-line);
932
+ }
933
+ .nc-grid-slot {
934
+ position: relative;
935
+ z-index: 2;
936
+ min-width: 0;
937
+ }
938
+ .nc-side-fill {
939
+ display: none;
940
+ min-width: 0;
941
+ min-height: 0;
942
+ background:
943
+ repeating-linear-gradient(
944
+ 125deg,
945
+ var(--nc-canvas) 0,
946
+ var(--nc-canvas) 6px,
947
+ var(--nc-line) 6px,
948
+ var(--nc-line) 7px);
949
+ }
950
+ .nc-side-fill[data-side=start] {
951
+ grid-column: 1;
952
+ border-inline-end: var(--nc-guide) solid var(--nc-line);
953
+ }
954
+ .nc-side-fill[data-side=end] {
955
+ grid-column: 12;
956
+ border-inline-start: var(--nc-guide) solid var(--nc-line);
957
+ }
958
+ .nc-row-grid {
959
+ display: grid;
960
+ min-width: 0;
961
+ background: var(--nc-line);
962
+ column-gap: var(--nc-guide);
963
+ row-gap: var(--nc-guide);
964
+ padding-inline: var(--nc-guide);
965
+ }
966
+ .nc-row-grid[data-edges=inner] {
967
+ padding-inline: 0;
968
+ }
969
+ .nc-row-grid[data-grid="2"],
970
+ .nc-row-grid[data-grid="3"],
971
+ .nc-row-grid[data-grid="4"],
972
+ .nc-row-grid[data-grid="5"],
973
+ .nc-row-grid[data-grid="6"] {
974
+ grid-template-columns: minmax(0, 1fr);
975
+ }
976
+ .nc-index-grid {
977
+ --nc-index-columns: 1;
978
+ --nc-index-rows: auto;
979
+ position: relative;
980
+ display: grid;
981
+ grid-template-columns: repeat(var(--nc-index-columns), minmax(0, 1fr));
982
+ min-width: 0;
983
+ }
984
+ .nc-index-guides {
985
+ position: absolute;
986
+ inset: 0;
987
+ z-index: 1;
988
+ display: grid;
989
+ grid-template-columns: inherit;
990
+ pointer-events: none;
991
+ }
992
+ .nc-index-guide {
993
+ min-width: 0;
994
+ border-right: var(--nc-guide) solid var(--nc-line);
995
+ }
996
+ .nc-index-guide:last-child {
997
+ border-right: 0;
998
+ }
999
+ .nc-index-card {
1000
+ position: relative;
1001
+ z-index: 2;
1002
+ display: grid;
1003
+ min-width: 0;
1004
+ min-height: var(--nc-h-cell-lg);
1005
+ padding: var(--nc-cell-padding);
1006
+ align-content: start;
1007
+ gap: 14px;
1008
+ overflow: hidden;
1009
+ background: var(--nc-canvas);
1010
+ color: var(--nc-ink);
1011
+ text-decoration: none;
1012
+ }
1013
+ .nc-index-card[data-featured=true] {
1014
+ min-height: var(--nc-h-editorial-feature);
1015
+ }
1016
+ .nc-article-shell {
1017
+ display: grid;
1018
+ min-width: 0;
1019
+ background: var(--nc-line);
1020
+ column-gap: var(--nc-guide);
1021
+ row-gap: var(--nc-guide);
1022
+ padding-inline: var(--nc-guide);
1023
+ }
1024
+ .nc-article-header,
1025
+ .nc-article-body,
1026
+ .nc-article-side,
1027
+ .nc-article-footer {
1028
+ display: grid;
1029
+ min-width: 0;
1030
+ padding: var(--nc-cell-padding);
1031
+ gap: 12px;
1032
+ background: var(--nc-canvas);
1033
+ }
1034
+ .nc-article-header {
1035
+ min-height: 280px;
1036
+ align-content: center;
1037
+ }
1038
+ .nc-article-side {
1039
+ color: var(--nc-muted);
1040
+ }
1041
+ .nc-article-footer {
1042
+ background: var(--nc-ink);
1043
+ color: var(--nc-canvas);
1044
+ }
1045
+ .nc-span-12,
1046
+ .nc-span-10 {
1047
+ grid-column: 1 / -1;
1048
+ }
1049
+ .nc-stage-frame {
1050
+ --nc-stage-active-column: 1 / -1;
1051
+ --nc-stage-frame-gutter: 0px;
1052
+ --nc-stage-surface: var(--nc-canvas);
1053
+ --nc-stage-frame-color: var(--nc-line);
1054
+ --nc-stage-filler-color: var(--nc-canvas-soft-2);
1055
+ position: relative;
1056
+ min-width: 0;
1057
+ background: var(--nc-stage-surface);
1058
+ }
1059
+ .nc-stage-frame[data-frame-lines=true]::before,
1060
+ .nc-stage-frame[data-frame-lines=true]::after {
1061
+ content: "";
1062
+ position: absolute;
1063
+ top: 0;
1064
+ bottom: 0;
1065
+ z-index: 2;
1066
+ width: var(--nc-guide);
1067
+ background: var(--nc-stage-frame-color);
1068
+ pointer-events: none;
1069
+ }
1070
+ .nc-stage-frame[data-frame-lines=true]::before {
1071
+ left: 0;
1072
+ }
1073
+ .nc-stage-frame[data-frame-lines=true]::after {
1074
+ right: 0;
1075
+ }
1076
+ .nc-stage-fill {
1077
+ position: absolute;
1078
+ inset-inline: 0;
1079
+ top: var(--nc-stage-fill-top, 0px);
1080
+ bottom: var(--nc-stage-fill-bottom, 0px);
1081
+ display: grid;
1082
+ grid-template-columns: repeat(12, minmax(0, 1fr));
1083
+ column-gap: var(--nc-stage-frame-gutter);
1084
+ pointer-events: none;
1085
+ }
1086
+ .nc-stage-fill::before,
1087
+ .nc-stage-fill::after {
1088
+ content: "";
1089
+ min-width: 0;
1090
+ background:
1091
+ repeating-linear-gradient(
1092
+ 125deg,
1093
+ transparent,
1094
+ transparent 6px,
1095
+ var(--nc-stage-filler-color) 6px,
1096
+ var(--nc-stage-filler-color) 7px),
1097
+ var(--nc-canvas);
1098
+ }
1099
+ .nc-stage-fill::before {
1100
+ grid-column: 1;
1101
+ margin-right: calc(var(--nc-stage-frame-gutter) * -1);
1102
+ }
1103
+ .nc-stage-fill::after {
1104
+ grid-column: 12;
1105
+ margin-left: calc(var(--nc-stage-frame-gutter) * -1);
1106
+ }
1107
+ .nc-stage-stack {
1108
+ position: relative;
1109
+ z-index: 1;
1110
+ min-width: 0;
1111
+ }
1112
+ .nc-stage-grid,
1113
+ .nc-connector-strip {
1114
+ display: grid;
1115
+ grid-template-columns: minmax(0, 1fr);
1116
+ column-gap: var(--nc-stage-frame-gutter);
1117
+ min-width: 0;
1118
+ }
1119
+ .nc-stage-active,
1120
+ .nc-connector-track {
1121
+ grid-column: var(--nc-stage-active-column);
1122
+ }
1123
+ .nc-connector-strip {
1124
+ height: calc(var(--nc-connector-height, var(--nc-h-action-strip)) + var(--nc-guide));
1125
+ }
1126
+ .nc-connector-strip[data-edge=start] {
1127
+ border-bottom: var(--nc-guide) solid var(--nc-connector-frame-color, var(--nc-stage-frame-color));
1128
+ }
1129
+ .nc-connector-strip[data-edge=end] {
1130
+ border-top: var(--nc-guide) solid var(--nc-connector-frame-color, var(--nc-stage-frame-color));
1131
+ }
1132
+ .nc-connector-track {
1133
+ position: relative;
1134
+ display: grid;
1135
+ grid-template-columns: minmax(0, 1fr);
1136
+ gap: 0;
1137
+ height: var(--nc-connector-height, var(--nc-h-action-strip));
1138
+ min-width: 0;
1139
+ padding-inline: var(--nc-guide);
1140
+ overflow: hidden;
1141
+ }
1142
+ .nc-connector-track > div {
1143
+ min-width: 0;
1144
+ height: var(--nc-connector-height, var(--nc-h-action-strip));
1145
+ }
1146
+ .nc-connector-track > div:nth-child(n+2) {
1147
+ display: none;
1148
+ }
1149
+ .nc-connector-strip svg {
1150
+ color: var(--nc-connector-color, var(--nc-seam));
1151
+ overflow: visible;
1152
+ }
1153
+ .nc-connector-strip line {
1154
+ stroke: currentColor;
1155
+ stroke-dasharray: var(--nc-connector-dash, 4 6);
1156
+ stroke-linecap: round;
1157
+ }
1158
+ .nc-connector-track div svg {
1159
+ display: block;
1160
+ width: var(--nc-guide);
1161
+ height: var(--nc-connector-height, var(--nc-h-action-strip));
1162
+ margin-left: calc(var(--nc-guide) * -1);
1163
+ }
1164
+ .nc-connector-track > svg {
1165
+ position: absolute;
1166
+ top: 0;
1167
+ right: 0;
1168
+ display: block;
1169
+ width: var(--nc-guide);
1170
+ height: var(--nc-connector-height, var(--nc-h-action-strip));
1171
+ }
1172
+ @media (min-width: 600px) {
1173
+ .nc-grid-field[data-grid-field=full-hero] {
1174
+ --nc-grid-columns: 8;
1175
+ --nc-grid-rows: 4;
1176
+ }
1177
+ .nc-grid-guide-v,
1178
+ .nc-grid-guide-h {
1179
+ display: block;
1180
+ }
1181
+ .nc-grid-guide-v[data-min=desktop],
1182
+ .nc-grid-guide-h[data-min=desktop] {
1183
+ display: none;
1184
+ }
1185
+ .nc-row-grid[data-grid="2"],
1186
+ .nc-row-grid[data-grid="3"],
1187
+ .nc-row-grid[data-grid="4"] {
1188
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1189
+ }
1190
+ .nc-row-grid[data-grid="5"],
1191
+ .nc-row-grid[data-grid="6"] {
1192
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1193
+ }
1194
+ .nc-index-grid {
1195
+ --nc-index-columns: 2;
1196
+ }
1197
+ }
1198
+ @media (min-width: 960px) {
1199
+ .nc-grid-field[data-grid-field=full-hero] {
1200
+ --nc-grid-columns: 12;
1201
+ --nc-grid-rows: 8;
1202
+ }
1203
+ .nc-grid-guide-v,
1204
+ .nc-grid-guide-h,
1205
+ .nc-grid-guide-v[data-min=desktop],
1206
+ .nc-grid-guide-h[data-min=desktop] {
1207
+ display: block;
1208
+ }
1209
+ .nc-page-row {
1210
+ grid-template-columns: repeat(12, minmax(0, 1fr));
1211
+ column-gap: var(--nc-frame-gap);
1212
+ }
1213
+ .nc-row-lane[data-lane=active] {
1214
+ grid-column: 2 / 12;
1215
+ }
1216
+ .nc-row-lane[data-lane=full] {
1217
+ grid-column: 1 / -1;
1218
+ }
1219
+ .nc-row-lane[data-lane=active][data-frame-lines=true] {
1220
+ position: relative;
1221
+ }
1222
+ .nc-row-lane[data-lane=active][data-frame-lines=true]::before,
1223
+ .nc-row-lane[data-lane=active][data-frame-lines=true]::after {
1224
+ content: "";
1225
+ position: absolute;
1226
+ top: 0;
1227
+ bottom: 0;
1228
+ z-index: 2;
1229
+ width: var(--nc-guide);
1230
+ background: var(--nc-line);
1231
+ pointer-events: none;
1232
+ }
1233
+ .nc-row-lane[data-lane=active][data-frame-lines=true]::before {
1234
+ left: 0;
1235
+ }
1236
+ .nc-row-lane[data-lane=active][data-frame-lines=true]::after {
1237
+ right: 0;
1238
+ }
1239
+ .nc-stage-frame {
1240
+ --nc-stage-active-column: 2 / 12;
1241
+ --nc-stage-frame-gutter: var(--nc-frame-gap);
1242
+ }
1243
+ .nc-stage-grid,
1244
+ .nc-connector-strip {
1245
+ grid-template-columns: repeat(12, minmax(0, 1fr));
1246
+ }
1247
+ .nc-page-row[data-rails=hatch] .nc-side-fill {
1248
+ display: block;
1249
+ }
1250
+ .nc-side-fill[data-side=start] {
1251
+ margin-right: calc(var(--nc-frame-gap) * -1);
1252
+ }
1253
+ .nc-side-fill[data-side=end] {
1254
+ margin-left: calc(var(--nc-frame-gap) * -1);
1255
+ }
1256
+ .nc-row-grid[data-grid="3"] {
1257
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1258
+ }
1259
+ .nc-row-grid[data-grid="4"] {
1260
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1261
+ }
1262
+ .nc-row-grid[data-grid="5"] {
1263
+ grid-template-columns: repeat(5, minmax(0, 1fr));
1264
+ }
1265
+ .nc-row-grid[data-grid="6"] {
1266
+ grid-template-columns: repeat(6, minmax(0, 1fr));
1267
+ }
1268
+ .nc-index-grid {
1269
+ --nc-index-columns: 3;
1270
+ }
1271
+ .nc-index-card[data-featured=true] {
1272
+ grid-column: span 2;
1273
+ }
1274
+ .nc-article-shell {
1275
+ grid-template-columns: repeat(12, minmax(0, 1fr));
1276
+ }
1277
+ .nc-article-header,
1278
+ .nc-article-footer {
1279
+ grid-column: 1 / -1;
1280
+ }
1281
+ .nc-article-side {
1282
+ grid-column: 1 / 3;
1283
+ grid-row: 2;
1284
+ }
1285
+ .nc-article-body {
1286
+ grid-column: 3 / -1;
1287
+ }
1288
+ .nc-span-10 {
1289
+ grid-column: 2 / 12;
1290
+ }
1291
+ }
1292
+ }
1293
+
1294
+ /* src/css/primitives.css */
1295
+ @layer primitives {
1296
+ .nc-cell {
1297
+ position: relative;
1298
+ z-index: 2;
1299
+ display: grid;
1300
+ min-width: 0;
1301
+ min-height: var(--nc-h-cell-sm);
1302
+ margin-right: var(--nc-guide);
1303
+ margin-bottom: var(--nc-guide);
1304
+ padding: var(--nc-cell-padding);
1305
+ overflow: hidden;
1306
+ overflow-wrap: anywhere;
1307
+ place-content: center;
1308
+ background: var(--nc-canvas);
1309
+ }
1310
+ .nc-cell-flush {
1311
+ padding: 0;
1312
+ }
1313
+ .nc-diagonal-fill,
1314
+ .nc-cell-filler {
1315
+ background:
1316
+ repeating-linear-gradient(
1317
+ -45deg,
1318
+ var(--nc-canvas-soft) 0,
1319
+ var(--nc-canvas-soft) 7px,
1320
+ var(--nc-line) 7px,
1321
+ var(--nc-line) 8px),
1322
+ var(--nc-canvas);
1323
+ }
1324
+ .nc-dotted-field {
1325
+ background: radial-gradient(var(--nc-line) 0.8px, transparent 0.8px) 0 0 / 12px 12px, var(--nc-canvas);
1326
+ }
1327
+ .nc-marker {
1328
+ --nc-cross-half: calc((var(--nc-cross-size) / 2) + (var(--nc-guide) / 2));
1329
+ position: absolute;
1330
+ z-index: 4;
1331
+ grid-column-start: var(--nc-cross-column);
1332
+ grid-row-start: var(--nc-cross-row);
1333
+ width: var(--nc-cross-size);
1334
+ height: var(--nc-cross-size);
1335
+ inset: calc(var(--nc-cross-half) * -1);
1336
+ pointer-events: none;
1337
+ }
1338
+ .nc-marker[data-position=top-left] {
1339
+ --nc-cross-column: 1;
1340
+ --nc-cross-row: 1;
1341
+ }
1342
+ .nc-marker[data-position=top-right] {
1343
+ --nc-cross-column: -1;
1344
+ --nc-cross-row: 1;
1345
+ }
1346
+ .nc-marker[data-position=bottom-left] {
1347
+ --nc-cross-column: 1;
1348
+ --nc-cross-row: -1;
1349
+ }
1350
+ .nc-marker[data-position=bottom-right] {
1351
+ --nc-cross-column: -1;
1352
+ --nc-cross-row: -1;
1353
+ }
1354
+ .nc-marker::before,
1355
+ .nc-marker::after {
1356
+ content: "";
1357
+ position: absolute;
1358
+ display: block;
1359
+ background: var(--nc-cross);
1360
+ }
1361
+ .nc-marker::before {
1362
+ top: 0;
1363
+ bottom: 0;
1364
+ left: 50%;
1365
+ width: var(--nc-guide);
1366
+ transform: translateX(-50%);
1367
+ }
1368
+ .nc-marker::after {
1369
+ left: 0;
1370
+ right: 0;
1371
+ top: 50%;
1372
+ height: var(--nc-guide);
1373
+ transform: translateY(-50%);
1374
+ }
1375
+ .nc-blueprint-field {
1376
+ --nc-blueprint-columns: var(--nc-grid-columns, 12);
1377
+ --nc-blueprint-rows: var(--nc-grid-rows, 8);
1378
+ --nc-blueprint-line: var(--nc-line);
1379
+ background-image:
1380
+ linear-gradient(
1381
+ to right,
1382
+ var(--nc-blueprint-line) var(--nc-guide),
1383
+ transparent var(--nc-guide)),
1384
+ linear-gradient(
1385
+ to bottom,
1386
+ var(--nc-blueprint-line) var(--nc-guide),
1387
+ transparent var(--nc-guide));
1388
+ background-size: calc(100% / var(--nc-blueprint-columns)) calc(100% / var(--nc-blueprint-rows)), calc(100% / var(--nc-blueprint-columns)) calc(100% / var(--nc-blueprint-rows));
1389
+ }
1390
+ .nc-blueprint-field[data-feather=top] {
1391
+ -webkit-mask-image:
1392
+ linear-gradient(
1393
+ to bottom,
1394
+ transparent 0%,
1395
+ black 22%,
1396
+ black 100%);
1397
+ mask-image:
1398
+ linear-gradient(
1399
+ to bottom,
1400
+ transparent 0%,
1401
+ black 22%,
1402
+ black 100%);
1403
+ }
1404
+ .nc-rule-svg {
1405
+ color: var(--nc-seam);
1406
+ overflow: visible;
1407
+ }
1408
+ .nc-rule-svg line {
1409
+ stroke: currentColor;
1410
+ stroke-dasharray: 4 6;
1411
+ stroke-linecap: round;
1412
+ }
1413
+ .nc-panel-cell {
1414
+ display: grid;
1415
+ min-width: 0;
1416
+ min-height: var(--nc-h-cell-md);
1417
+ padding: var(--nc-cell-padding);
1418
+ align-content: center;
1419
+ gap: 12px;
1420
+ overflow: hidden;
1421
+ overflow-wrap: anywhere;
1422
+ background: var(--nc-canvas);
1423
+ color: var(--nc-body);
1424
+ }
1425
+ .nc-artifact-surface {
1426
+ display: grid;
1427
+ gap: 12px;
1428
+ min-width: 0;
1429
+ border: var(--nc-guide) solid var(--nc-line);
1430
+ padding: 18px;
1431
+ background: radial-gradient(var(--nc-line) 0.8px, transparent 0.8px) 0 0 / 12px 12px, var(--nc-canvas);
1432
+ color: var(--nc-body);
1433
+ }
1434
+ .nc-artifact-bar {
1435
+ height: 10px;
1436
+ background: var(--nc-line);
1437
+ }
1438
+ .nc-artifact-bar:nth-of-type(1) {
1439
+ width: 76%;
1440
+ }
1441
+ .nc-artifact-bar:nth-of-type(2) {
1442
+ width: 56%;
1443
+ }
1444
+ .nc-artifact-bar:nth-of-type(3) {
1445
+ width: 38%;
1446
+ }
1447
+ .nc-icon {
1448
+ display: inline-flex;
1449
+ flex: none;
1450
+ width: 16px;
1451
+ height: 16px;
1452
+ color: inherit;
1453
+ vertical-align: middle;
1454
+ }
1455
+ .nc-icon[data-size=sm] {
1456
+ width: 12px;
1457
+ height: 12px;
1458
+ }
1459
+ .nc-icon[data-size=lg] {
1460
+ width: 24px;
1461
+ height: 24px;
1462
+ }
1463
+ .nc-icon svg {
1464
+ display: block;
1465
+ width: 100%;
1466
+ height: 100%;
1467
+ fill: none;
1468
+ stroke: currentColor;
1469
+ stroke-width: 1.5;
1470
+ stroke-linecap: butt;
1471
+ stroke-linejoin: miter;
1472
+ }
1473
+ .nc-badge-secondary {
1474
+ display: inline-flex;
1475
+ width: fit-content;
1476
+ align-items: center;
1477
+ justify-content: center;
1478
+ gap: 6px;
1479
+ border: var(--nc-guide) solid var(--nc-line);
1480
+ border-radius: var(--nc-rounded-full);
1481
+ padding: 1px 8px;
1482
+ background: var(--nc-canvas-soft);
1483
+ color: var(--nc-body);
1484
+ }
1485
+ .nc-filter-chip {
1486
+ display: inline-flex;
1487
+ width: fit-content;
1488
+ min-height: var(--nc-filter-chip-height);
1489
+ align-items: center;
1490
+ justify-content: center;
1491
+ gap: var(--nc-filter-chip-gap);
1492
+ border: var(--nc-guide) solid var(--nc-line);
1493
+ border-radius: var(--nc-rounded-sm);
1494
+ padding: 0 var(--nc-xs);
1495
+ background: var(--nc-canvas-soft);
1496
+ color: var(--nc-body);
1497
+ }
1498
+ .nc-filter-chip svg {
1499
+ width: var(--nc-filter-chip-icon);
1500
+ height: var(--nc-filter-chip-icon);
1501
+ flex: none;
1502
+ stroke: currentColor;
1503
+ stroke-width: 1.5;
1504
+ }
1505
+ .nc-filter-chip:focus-visible {
1506
+ outline: var(--nc-focus-ring-width) solid var(--nc-focus-ring);
1507
+ outline-offset: 0;
1508
+ }
1509
+ .nc-link-inline {
1510
+ color: var(--nc-link);
1511
+ text-decoration: underline;
1512
+ text-underline-offset: 2px;
1513
+ text-decoration-thickness: var(--nc-guide);
1514
+ transition:
1515
+ background-color var(--nc-duration-stagger) var(--nc-ease-out-strong),
1516
+ border-color var(--nc-duration-stagger) var(--nc-ease-out-strong),
1517
+ color var(--nc-duration-stagger) var(--nc-ease-out-strong),
1518
+ opacity var(--nc-duration-stagger) var(--nc-ease-out-strong);
1519
+ }
1520
+ @media (hover: hover) and (pointer: fine) {
1521
+ .nc-link-inline:hover {
1522
+ color: var(--nc-link-deep);
1523
+ }
1524
+ }
1525
+ .nc-link-inline:focus-visible {
1526
+ outline: var(--nc-focus-ring-width) solid var(--nc-focus-ring);
1527
+ outline-offset: 0;
1528
+ border-radius: var(--nc-rounded-md);
1529
+ }
1530
+ .nc-label-mono {
1531
+ display: block;
1532
+ margin: 0;
1533
+ color: var(--nc-muted);
1534
+ text-transform: uppercase;
1535
+ }
1536
+ }
1537
+
1538
+ /* src/css/components/state-tag.css */
1539
+ @layer components {
1540
+ .nc-state-tag {
1541
+ display: inline-flex;
1542
+ align-items: center;
1543
+ height: 26px;
1544
+ padding: 0 8px;
1545
+ border: var(--nc-guide) solid var(--nc-line);
1546
+ border-left-width: 3px;
1547
+ border-left-color: var(--nc-ink);
1548
+ border-radius: var(--nc-rounded-sm);
1549
+ background: var(--nc-canvas);
1550
+ color: var(--nc-ink);
1551
+ font-family:
1552
+ "Geist Mono",
1553
+ ui-monospace,
1554
+ SFMono-Regular,
1555
+ Menlo,
1556
+ Monaco,
1557
+ monospace;
1558
+ font-size: 12px;
1559
+ font-weight: 500;
1560
+ line-height: 16px;
1561
+ letter-spacing: 0;
1562
+ white-space: nowrap;
1563
+ transition:
1564
+ background-color var(--nc-duration-confirm) var(--nc-ease-out-strong),
1565
+ border-color var(--nc-duration-confirm) var(--nc-ease-out-strong),
1566
+ color var(--nc-duration-confirm) var(--nc-ease-out-strong);
1567
+ }
1568
+ .nc-state-tag[data-variant=ready] {
1569
+ border-left-color: var(--nc-state-ready);
1570
+ }
1571
+ .nc-state-tag[data-variant=running] {
1572
+ border-left-color: var(--nc-state-running);
1573
+ }
1574
+ .nc-state-tag[data-variant=review] {
1575
+ border-left-color: var(--nc-state-review);
1576
+ }
1577
+ .nc-state-tag[data-variant=blocked] {
1578
+ border-left-color: var(--nc-state-blocked);
1579
+ }
1580
+ .nc-state-tag[data-variant=complete] {
1581
+ border-left-color: var(--nc-state-complete);
1582
+ }
1583
+ }
1584
+
1585
+ /* src/css/components/status-tag.css */
1586
+ @layer components {
1587
+ .nc-status-tag {
1588
+ display: inline-flex;
1589
+ align-items: center;
1590
+ height: 24px;
1591
+ padding: 0 10px;
1592
+ border: 0;
1593
+ border-radius: var(--nc-rounded-md);
1594
+ font-family:
1595
+ Geist,
1596
+ Inter,
1597
+ system-ui,
1598
+ -apple-system,
1599
+ sans-serif;
1600
+ font-size: 12px;
1601
+ font-weight: 500;
1602
+ line-height: 16px;
1603
+ letter-spacing: 0;
1604
+ white-space: nowrap;
1605
+ transition: background-color var(--nc-duration-confirm) var(--nc-ease-out-strong), color var(--nc-duration-confirm) var(--nc-ease-out-strong);
1606
+ }
1607
+ .nc-status-tag[data-tone=gray] {
1608
+ background: var(--nc-canvas-soft-2);
1609
+ color: var(--nc-body);
1610
+ }
1611
+ .nc-status-tag[data-tone=green] {
1612
+ background: var(--nc-link-bg-soft);
1613
+ color: var(--nc-link-deep);
1614
+ }
1615
+ .nc-status-tag[data-tone=red] {
1616
+ background: var(--nc-error-soft);
1617
+ color: var(--nc-error-deep);
1618
+ }
1619
+ .nc-status-tag[data-tone=amber] {
1620
+ background: var(--nc-warning-soft);
1621
+ color: var(--nc-warning-deep);
1622
+ }
1623
+ .nc-status-tag[data-tone=blue] {
1624
+ background: var(--nc-info-soft);
1625
+ color: var(--nc-info-deep);
1626
+ }
1627
+ }
1628
+
1629
+ /* src/css/components/chat-thread.css */
1630
+ @layer components {
1631
+ .nc-chat-thread {
1632
+ display: flex;
1633
+ flex-direction: column;
1634
+ overflow: hidden;
1635
+ border: var(--nc-guide) solid var(--nc-line);
1636
+ border-radius: var(--nc-rounded-md);
1637
+ background: var(--nc-canvas);
1638
+ color: var(--nc-ink);
1639
+ font-family:
1640
+ "Geist",
1641
+ "Inter",
1642
+ system-ui,
1643
+ -apple-system,
1644
+ "Segoe UI",
1645
+ sans-serif;
1646
+ }
1647
+ .nc-chat-thread-header {
1648
+ display: flex;
1649
+ align-items: center;
1650
+ gap: 12px;
1651
+ padding: 14px 16px;
1652
+ border-bottom: var(--nc-guide) solid var(--nc-line);
1653
+ background: var(--nc-canvas);
1654
+ }
1655
+ .nc-chat-thread-domain {
1656
+ font-family:
1657
+ "Geist Mono",
1658
+ ui-monospace,
1659
+ SFMono-Regular,
1660
+ Menlo,
1661
+ Monaco,
1662
+ monospace;
1663
+ font-size: 11px;
1664
+ font-weight: 500;
1665
+ line-height: 16px;
1666
+ color: var(--nc-muted);
1667
+ text-transform: uppercase;
1668
+ letter-spacing: 0.04em;
1669
+ white-space: nowrap;
1670
+ overflow: hidden;
1671
+ text-overflow: ellipsis;
1672
+ }
1673
+ .nc-chat-thread-identity {
1674
+ min-width: 0;
1675
+ flex: 1;
1676
+ }
1677
+ .nc-chat-thread-name {
1678
+ display: flex;
1679
+ align-items: baseline;
1680
+ gap: 6px;
1681
+ font-size: 14px;
1682
+ font-weight: 500;
1683
+ line-height: 20px;
1684
+ color: var(--nc-ink);
1685
+ white-space: nowrap;
1686
+ overflow: hidden;
1687
+ text-overflow: ellipsis;
1688
+ }
1689
+ .nc-chat-thread-name .nc-chat-thread-role {
1690
+ min-width: 0;
1691
+ overflow: hidden;
1692
+ font-weight: 400;
1693
+ color: var(--nc-muted);
1694
+ text-overflow: ellipsis;
1695
+ white-space: nowrap;
1696
+ }
1697
+ .nc-chat-thread-workflow {
1698
+ flex: 0 1 auto;
1699
+ min-width: 0;
1700
+ overflow: hidden;
1701
+ font-family:
1702
+ "Geist Mono",
1703
+ ui-monospace,
1704
+ SFMono-Regular,
1705
+ Menlo,
1706
+ Monaco,
1707
+ monospace;
1708
+ font-size: 11px;
1709
+ line-height: 16px;
1710
+ color: var(--nc-body);
1711
+ text-transform: uppercase;
1712
+ letter-spacing: 0.04em;
1713
+ text-overflow: ellipsis;
1714
+ white-space: nowrap;
1715
+ }
1716
+ .nc-chat-thread-body {
1717
+ flex: 1;
1718
+ min-height: 0;
1719
+ overflow: hidden auto;
1720
+ display: flex;
1721
+ flex-direction: column;
1722
+ gap: 10px;
1723
+ padding: 16px 18px;
1724
+ background: radial-gradient(var(--nc-line) 0.8px, transparent 0.8px) 8px 8px / 12px 12px, var(--nc-canvas);
1725
+ }
1726
+ .nc-chat-pause {
1727
+ display: block;
1728
+ align-self: flex-end;
1729
+ margin: var(--nc-xs) var(--nc-xs) 0;
1730
+ padding: var(--nc-xs) var(--nc-sm);
1731
+ background: var(--nc-canvas);
1732
+ color: var(--nc-muted);
1733
+ border: var(--nc-guide) solid var(--nc-line);
1734
+ border-radius: var(--nc-rounded-xs);
1735
+ font-family: var(--nc-type-caption-mono-font-family);
1736
+ font-size: var(--nc-type-caption-mono-font-size);
1737
+ font-weight: var(--nc-type-caption-mono-font-weight);
1738
+ line-height: var(--nc-type-caption-mono-line-height);
1739
+ letter-spacing: var(--nc-type-caption-mono-letter-spacing);
1740
+ cursor: pointer;
1741
+ transition:
1742
+ background-color var(--nc-duration-stagger) var(--nc-ease-out-strong),
1743
+ border-color var(--nc-duration-stagger) var(--nc-ease-out-strong),
1744
+ color var(--nc-duration-stagger) var(--nc-ease-out-strong),
1745
+ opacity var(--nc-duration-stagger) var(--nc-ease-out-strong);
1746
+ }
1747
+ @media (hover: hover) and (pointer: fine) {
1748
+ .nc-chat-pause:hover {
1749
+ color: var(--nc-ink);
1750
+ border-color: var(--nc-body);
1751
+ }
1752
+ }
1753
+ .nc-chat-pause[aria-pressed=true] {
1754
+ color: var(--nc-ink);
1755
+ border-color: var(--nc-body);
1756
+ }
1757
+ .nc-chat-pause:active {
1758
+ transform: scale(0.97);
1759
+ transition: transform var(--nc-duration-stagger) var(--nc-ease-out-strong);
1760
+ }
1761
+ @media (prefers-reduced-motion: reduce) {
1762
+ .nc-chat-pause:active {
1763
+ transform: none;
1764
+ }
1765
+ }
1766
+ .nc-chat-thread-footer {
1767
+ display: flex;
1768
+ flex-direction: column;
1769
+ gap: 8px;
1770
+ padding: 10px 16px;
1771
+ border-top: var(--nc-guide) solid var(--nc-line);
1772
+ background: var(--nc-canvas);
1773
+ }
1774
+ }
1775
+
1776
+ /* src/css/components/chat-bubble-user.css */
1777
+ @layer components {
1778
+ .nc-chat-bubble-user {
1779
+ align-self: flex-end;
1780
+ width: fit-content;
1781
+ max-width: 84%;
1782
+ padding: 9px 13px;
1783
+ border: var(--nc-guide) solid var(--nc-ink);
1784
+ border-radius: var(--nc-rounded-md);
1785
+ background: var(--nc-ink);
1786
+ color: var(--nc-canvas);
1787
+ font-family:
1788
+ "Geist",
1789
+ "Inter",
1790
+ system-ui,
1791
+ -apple-system,
1792
+ "Segoe UI",
1793
+ sans-serif;
1794
+ font-size: 14px;
1795
+ line-height: 20px;
1796
+ white-space: pre-wrap;
1797
+ word-break: break-word;
1798
+ animation-name: nc-msg-in;
1799
+ }
1800
+ }
1801
+
1802
+ /* src/css/components/chat-bubble-agent.css */
1803
+ @layer components {
1804
+ .nc-chat-bubble-agent {
1805
+ --nc-accent: var(--nc-link);
1806
+ align-self: flex-start;
1807
+ width: fit-content;
1808
+ max-width: 84%;
1809
+ padding: 9px 13px 9px 15px;
1810
+ border: var(--nc-guide) solid var(--nc-line);
1811
+ border-radius: var(--nc-rounded-md);
1812
+ box-shadow: inset 3px 0 0 0 var(--nc-accent);
1813
+ background: var(--nc-canvas);
1814
+ color: var(--nc-ink);
1815
+ font-family:
1816
+ "Geist",
1817
+ "Inter",
1818
+ system-ui,
1819
+ -apple-system,
1820
+ "Segoe UI",
1821
+ sans-serif;
1822
+ font-size: 14px;
1823
+ line-height: 20px;
1824
+ white-space: pre-wrap;
1825
+ word-break: break-word;
1826
+ animation-name: nc-msg-in;
1827
+ }
1828
+ .nc-chat-bubble-agent[data-accent=green] {
1829
+ --nc-accent: var(--nc-link);
1830
+ }
1831
+ .nc-chat-bubble-agent[data-accent=cyan] {
1832
+ --nc-accent: var(--nc-info);
1833
+ }
1834
+ .nc-chat-bubble-agent[data-accent=amber] {
1835
+ --nc-accent: var(--nc-warning-deep);
1836
+ }
1837
+ .nc-chat-bubble-agent[data-accent=ink] {
1838
+ --nc-accent: var(--nc-ink);
1839
+ }
1840
+ .nc-chat-bubble-agent[data-accent=red] {
1841
+ --nc-accent: var(--nc-error);
1842
+ }
1843
+ .nc-chat-bubble-agent code {
1844
+ padding: 1px 5px;
1845
+ border-radius: var(--nc-rounded-xs);
1846
+ background: var(--nc-canvas-soft-2);
1847
+ color: var(--nc-ink);
1848
+ font-family:
1849
+ "Geist Mono",
1850
+ ui-monospace,
1851
+ SFMono-Regular,
1852
+ Menlo,
1853
+ Monaco,
1854
+ monospace;
1855
+ font-size: 12px;
1856
+ }
1857
+ }
1858
+
1859
+ /* src/css/components/tool-call-trace.css */
1860
+ @layer components {
1861
+ .nc-tool-call-trace {
1862
+ align-self: flex-start;
1863
+ width: fit-content;
1864
+ max-width: 92%;
1865
+ padding: 6px 10px;
1866
+ border: var(--nc-guide) solid var(--nc-line);
1867
+ border-radius: var(--nc-rounded-sm);
1868
+ background: var(--nc-canvas-soft-2);
1869
+ color: var(--nc-body);
1870
+ font-family:
1871
+ "Geist Mono",
1872
+ ui-monospace,
1873
+ SFMono-Regular,
1874
+ Menlo,
1875
+ Monaco,
1876
+ monospace;
1877
+ font-size: 12px;
1878
+ line-height: 17px;
1879
+ animation-name: nc-msg-in;
1880
+ }
1881
+ .nc-tool-call-trace::before {
1882
+ content: "";
1883
+ display: inline-block;
1884
+ width: 13px;
1885
+ height: 13px;
1886
+ margin-right: 8px;
1887
+ vertical-align: -2px;
1888
+ background-color: var(--nc-muted);
1889
+ -webkit-mask: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-chevron-right"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="m9 18 6-6-6-6" />%0A</svg>%0A') center / contain no-repeat;
1890
+ mask: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-chevron-right"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="m9 18 6-6-6-6" />%0A</svg>%0A') center / contain no-repeat;
1891
+ }
1892
+ }
1893
+
1894
+ /* src/css/components/memory-item.css */
1895
+ @layer components {
1896
+ .nc-memory-item {
1897
+ align-self: flex-start;
1898
+ display: flex;
1899
+ gap: 10px;
1900
+ align-items: flex-start;
1901
+ width: fit-content;
1902
+ max-width: 92%;
1903
+ padding: 8px 12px;
1904
+ border: var(--nc-guide) solid var(--nc-line);
1905
+ border-radius: var(--nc-rounded-sm);
1906
+ background: var(--nc-canvas-soft);
1907
+ color: var(--nc-body);
1908
+ font-family:
1909
+ "Geist",
1910
+ "Inter",
1911
+ system-ui,
1912
+ -apple-system,
1913
+ "Segoe UI",
1914
+ sans-serif;
1915
+ font-size: 13px;
1916
+ line-height: 18px;
1917
+ animation-name: nc-msg-in;
1918
+ }
1919
+ .nc-memory-item-label {
1920
+ flex: 0 0 auto;
1921
+ margin-top: 2px;
1922
+ font-family:
1923
+ "Geist Mono",
1924
+ ui-monospace,
1925
+ SFMono-Regular,
1926
+ Menlo,
1927
+ Monaco,
1928
+ monospace;
1929
+ font-size: 10px;
1930
+ font-weight: 600;
1931
+ line-height: 16px;
1932
+ color: var(--nc-muted);
1933
+ text-transform: uppercase;
1934
+ letter-spacing: 0.06em;
1935
+ }
1936
+ }
1937
+
1938
+ /* src/css/components/handoff-banner.css */
1939
+ @layer components {
1940
+ .nc-handoff-banner {
1941
+ align-self: stretch;
1942
+ display: flex;
1943
+ gap: 10px;
1944
+ align-items: center;
1945
+ padding: 8px 12px;
1946
+ border-left: 3px solid var(--nc-link);
1947
+ border-radius: var(--nc-rounded-md);
1948
+ background: var(--nc-link-bg-soft);
1949
+ color: var(--nc-link-deep);
1950
+ font-family:
1951
+ "Geist",
1952
+ "Inter",
1953
+ system-ui,
1954
+ -apple-system,
1955
+ "Segoe UI",
1956
+ sans-serif;
1957
+ font-size: 13px;
1958
+ font-weight: 500;
1959
+ line-height: 18px;
1960
+ animation-name: nc-msg-in;
1961
+ }
1962
+ .nc-handoff-banner::before {
1963
+ content: "";
1964
+ flex: none;
1965
+ width: 16px;
1966
+ height: 16px;
1967
+ background-color: var(--nc-link);
1968
+ -webkit-mask: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-arrow-right"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M5 12h14" />%0A <path d="m12 5 7 7-7 7" />%0A</svg>%0A') center / contain no-repeat;
1969
+ mask: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-arrow-right"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M5 12h14" />%0A <path d="m12 5 7 7-7 7" />%0A</svg>%0A') center / contain no-repeat;
1970
+ }
1971
+ }
1972
+
1973
+ /* src/css/components/approval-gate.css */
1974
+ @layer components {
1975
+ .nc-approval-gate {
1976
+ align-self: stretch;
1977
+ display: grid;
1978
+ gap: 6px;
1979
+ padding: 12px;
1980
+ border: var(--nc-guide) solid color-mix(in srgb, var(--nc-warning-deep) 40%, var(--nc-warning-soft));
1981
+ border-radius: var(--nc-rounded-md);
1982
+ background: var(--nc-warning-soft);
1983
+ color: var(--nc-ink);
1984
+ font-family:
1985
+ "Geist",
1986
+ "Inter",
1987
+ system-ui,
1988
+ -apple-system,
1989
+ "Segoe UI",
1990
+ sans-serif;
1991
+ animation-name: nc-msg-in;
1992
+ transition:
1993
+ background-color var(--nc-duration-confirm) var(--nc-ease-out-strong),
1994
+ border-color var(--nc-duration-confirm) var(--nc-ease-out-strong),
1995
+ color var(--nc-duration-confirm) var(--nc-ease-out-strong);
1996
+ }
1997
+ .nc-approval-gate-label {
1998
+ font-family:
1999
+ "Geist Mono",
2000
+ ui-monospace,
2001
+ SFMono-Regular,
2002
+ Menlo,
2003
+ Monaco,
2004
+ monospace;
2005
+ font-size: 10px;
2006
+ font-weight: 600;
2007
+ line-height: 16px;
2008
+ color: var(--nc-warning-deep);
2009
+ text-transform: uppercase;
2010
+ letter-spacing: 0.06em;
2011
+ }
2012
+ .nc-approval-gate-title {
2013
+ font-size: 14px;
2014
+ font-weight: 500;
2015
+ line-height: 20px;
2016
+ color: var(--nc-ink);
2017
+ }
2018
+ .nc-approval-gate-copy {
2019
+ font-size: 13px;
2020
+ line-height: 18px;
2021
+ color: var(--nc-body);
2022
+ }
2023
+ .nc-approval-gate-actions {
2024
+ display: flex;
2025
+ flex-wrap: wrap;
2026
+ gap: 6px;
2027
+ margin-top: 2px;
2028
+ }
2029
+ .nc-approval-gate-actions button {
2030
+ padding: 5px 10px;
2031
+ border: var(--nc-guide) solid var(--nc-ink);
2032
+ border-radius: var(--nc-rounded-sm);
2033
+ background: var(--nc-ink);
2034
+ color: var(--nc-canvas);
2035
+ font-family: inherit;
2036
+ font-size: 12px;
2037
+ font-weight: 500;
2038
+ line-height: 16px;
2039
+ cursor: pointer;
2040
+ }
2041
+ .nc-approval-gate-actions button[data-variant=secondary] {
2042
+ border-color: var(--nc-line);
2043
+ background: var(--nc-canvas);
2044
+ color: var(--nc-ink);
2045
+ }
2046
+ .nc-approval-gate-actions button[data-variant=outline] {
2047
+ border-color: var(--nc-line);
2048
+ background: transparent;
2049
+ color: var(--nc-ink);
2050
+ }
2051
+ .nc-approval-gate-actions button[data-variant=destructive] {
2052
+ border-color: var(--nc-error);
2053
+ background: var(--nc-canvas);
2054
+ color: var(--nc-error-deep);
2055
+ }
2056
+ .nc-approval-gate-actions button::before {
2057
+ content: "";
2058
+ display: inline-block;
2059
+ width: 13px;
2060
+ height: 13px;
2061
+ margin-right: 5px;
2062
+ vertical-align: -2px;
2063
+ background-color: currentColor;
2064
+ -webkit-mask: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-check"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M20 6 9 17l-5-5" />%0A</svg>%0A') center / contain no-repeat;
2065
+ mask: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-check"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M20 6 9 17l-5-5" />%0A</svg>%0A') center / contain no-repeat;
2066
+ }
2067
+ .nc-approval-gate-actions button[data-variant=secondary]::before {
2068
+ -webkit-mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-square-pen"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />%0A <path d="M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z" />%0A</svg>%0A');
2069
+ mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-square-pen"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />%0A <path d="M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z" />%0A</svg>%0A');
2070
+ }
2071
+ .nc-approval-gate-actions button[data-approval-choice=deny]::before {
2072
+ -webkit-mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-ban"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <circle cx="12" cy="12" r="10" />%0A <path d="M4.929 4.929 19.07 19.071" />%0A</svg>%0A');
2073
+ mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-ban"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <circle cx="12" cy="12" r="10" />%0A <path d="M4.929 4.929 19.07 19.071" />%0A</svg>%0A');
2074
+ }
2075
+ .nc-approval-gate-actions button[data-approval-choice=session]::before {
2076
+ -webkit-mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-clock"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <circle cx="12" cy="12" r="10" />%0A <path d="M12 6v6l4 2" />%0A</svg>%0A');
2077
+ mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-clock"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <circle cx="12" cy="12" r="10" />%0A <path d="M12 6v6l4 2" />%0A</svg>%0A');
2078
+ }
2079
+ .nc-approval-gate-actions button[data-approval-choice=always]::before {
2080
+ -webkit-mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-shield"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" />%0A</svg>%0A');
2081
+ mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-shield"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" />%0A</svg>%0A');
2082
+ }
2083
+ .nc-approval-gate-actions button:focus-visible {
2084
+ outline: var(--nc-focus-ring-width) solid var(--nc-focus-ring);
2085
+ outline-offset: 0;
2086
+ }
2087
+ }
2088
+
2089
+ /* src/css/components/artifact-preview.css */
2090
+ @layer components {
2091
+ .nc-artifact-preview {
2092
+ align-self: stretch;
2093
+ overflow: hidden;
2094
+ border: var(--nc-guide) solid var(--nc-line);
2095
+ border-radius: var(--nc-rounded-md);
2096
+ background: var(--nc-canvas);
2097
+ font-family:
2098
+ "Geist",
2099
+ "Inter",
2100
+ system-ui,
2101
+ -apple-system,
2102
+ "Segoe UI",
2103
+ sans-serif;
2104
+ animation-name: nc-msg-in;
2105
+ }
2106
+ .nc-artifact-preview-header {
2107
+ display: flex;
2108
+ align-items: center;
2109
+ gap: 8px;
2110
+ padding: 7px 10px;
2111
+ border-bottom: var(--nc-guide) solid var(--nc-line);
2112
+ background: var(--nc-canvas-soft);
2113
+ }
2114
+ .nc-artifact-preview-header::before {
2115
+ content: "";
2116
+ flex: none;
2117
+ width: 14px;
2118
+ height: 14px;
2119
+ background-color: var(--nc-muted);
2120
+ -webkit-mask: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-file-text"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" />%0A <path d="M14 2v5a1 1 0 0 0 1 1h5" />%0A <path d="M10 9H8" />%0A <path d="M16 13H8" />%0A <path d="M16 17H8" />%0A</svg>%0A') center / contain no-repeat;
2121
+ mask: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-file-text"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" />%0A <path d="M14 2v5a1 1 0 0 0 1 1h5" />%0A <path d="M10 9H8" />%0A <path d="M16 13H8" />%0A <path d="M16 17H8" />%0A</svg>%0A') center / contain no-repeat;
2122
+ }
2123
+ .nc-artifact-preview[data-kind=sheet] .nc-artifact-preview-header::before {
2124
+ -webkit-mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-table"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M12 3v18" />%0A <rect width="18" height="18" x="3" y="3" rx="2" />%0A <path d="M3 9h18" />%0A <path d="M3 15h18" />%0A</svg>%0A');
2125
+ mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-table"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M12 3v18" />%0A <rect width="18" height="18" x="3" y="3" rx="2" />%0A <path d="M3 9h18" />%0A <path d="M3 15h18" />%0A</svg>%0A');
2126
+ }
2127
+ .nc-artifact-preview[data-kind=code] .nc-artifact-preview-header::before {
2128
+ -webkit-mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-code"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="m16 18 6-6-6-6" />%0A <path d="m8 6-6 6 6 6" />%0A</svg>%0A');
2129
+ mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-code"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="m16 18 6-6-6-6" />%0A <path d="m8 6-6 6 6 6" />%0A</svg>%0A');
2130
+ }
2131
+ .nc-artifact-preview[data-kind=pdf] .nc-artifact-preview-header::before {
2132
+ -webkit-mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-file"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" />%0A <path d="M14 2v5a1 1 0 0 0 1 1h5" />%0A</svg>%0A');
2133
+ mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-file"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" />%0A <path d="M14 2v5a1 1 0 0 0 1 1h5" />%0A</svg>%0A');
2134
+ }
2135
+ .nc-artifact-preview[data-kind=report] .nc-artifact-preview-header::before {
2136
+ -webkit-mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-chart-column"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M3 3v16a2 2 0 0 0 2 2h16" />%0A <path d="M18 17V9" />%0A <path d="M13 17V5" />%0A <path d="M8 17v-3" />%0A</svg>%0A');
2137
+ mask-image: url('data:image/svg+xml,<!-- @license lucide-static v1.17.0 - ISC -->%0A<svg%0A class="lucide lucide-chart-column"%0A xmlns="http://www.w3.org/2000/svg"%0A width="24"%0A height="24"%0A viewBox="0 0 24 24"%0A fill="none"%0A stroke="currentColor"%0A stroke-width="1.5"%0A stroke-linecap="butt"%0A stroke-linejoin="miter"%0A>%0A <path d="M3 3v16a2 2 0 0 0 2 2h16" />%0A <path d="M18 17V9" />%0A <path d="M13 17V5" />%0A <path d="M8 17v-3" />%0A</svg>%0A');
2138
+ }
2139
+ .nc-artifact-preview-title {
2140
+ font-size: 13px;
2141
+ font-weight: 500;
2142
+ line-height: 18px;
2143
+ color: var(--nc-ink);
2144
+ }
2145
+ .nc-artifact-preview-kind {
2146
+ margin-left: auto;
2147
+ font-family:
2148
+ "Geist Mono",
2149
+ ui-monospace,
2150
+ SFMono-Regular,
2151
+ Menlo,
2152
+ Monaco,
2153
+ monospace;
2154
+ font-size: 10px;
2155
+ font-weight: 500;
2156
+ line-height: 16px;
2157
+ color: var(--nc-muted);
2158
+ text-transform: uppercase;
2159
+ letter-spacing: 0.05em;
2160
+ }
2161
+ .nc-artifact-preview-body {
2162
+ padding: 10px 12px;
2163
+ color: var(--nc-body);
2164
+ font-size: 13px;
2165
+ line-height: 18px;
2166
+ white-space: pre-wrap;
2167
+ }
2168
+ }
2169
+
2170
+ /* src/css/components/typing-dots.css */
2171
+ @layer components {
2172
+ .nc-typing-dots {
2173
+ --nc-accent: var(--nc-link);
2174
+ align-self: flex-start;
2175
+ display: inline-flex;
2176
+ gap: 4px;
2177
+ align-items: center;
2178
+ width: fit-content;
2179
+ padding: 10px 14px 10px 15px;
2180
+ border: var(--nc-guide) solid var(--nc-line);
2181
+ border-radius: var(--nc-rounded-md);
2182
+ box-shadow: inset 3px 0 0 0 var(--nc-accent);
2183
+ background: var(--nc-canvas);
2184
+ }
2185
+ .nc-typing-dots[data-accent=green] {
2186
+ --nc-accent: var(--nc-link);
2187
+ }
2188
+ .nc-typing-dots[data-accent=cyan] {
2189
+ --nc-accent: var(--nc-info);
2190
+ }
2191
+ .nc-typing-dots[data-accent=amber] {
2192
+ --nc-accent: var(--nc-warning-deep);
2193
+ }
2194
+ .nc-typing-dots[data-accent=ink] {
2195
+ --nc-accent: var(--nc-ink);
2196
+ }
2197
+ .nc-typing-dots[data-accent=red] {
2198
+ --nc-accent: var(--nc-error);
2199
+ }
2200
+ .nc-typing-dots-dot {
2201
+ width: 5px;
2202
+ height: 5px;
2203
+ border-radius: var(--nc-rounded-full);
2204
+ background: var(--nc-muted);
2205
+ }
2206
+ }
2207
+
2208
+ /* src/css/components/state-row.css */
2209
+ @layer components {
2210
+ .nc-state-row {
2211
+ align-self: stretch;
2212
+ display: flex;
2213
+ align-items: center;
2214
+ gap: 10px;
2215
+ padding: 3px 0;
2216
+ font-family:
2217
+ "Geist Mono",
2218
+ ui-monospace,
2219
+ SFMono-Regular,
2220
+ Menlo,
2221
+ Monaco,
2222
+ monospace;
2223
+ font-size: 11px;
2224
+ line-height: 16px;
2225
+ color: var(--nc-muted);
2226
+ text-transform: uppercase;
2227
+ letter-spacing: 0.04em;
2228
+ }
2229
+ .nc-state-row::before,
2230
+ .nc-state-row::after {
2231
+ content: "";
2232
+ flex: 1;
2233
+ height: var(--nc-guide);
2234
+ background: var(--nc-line);
2235
+ }
2236
+ .nc-state-row-label {
2237
+ display: inline-flex;
2238
+ align-items: center;
2239
+ gap: 6px;
2240
+ white-space: nowrap;
2241
+ }
2242
+ .nc-state-row-dot {
2243
+ width: 6px;
2244
+ height: 6px;
2245
+ border-radius: var(--nc-rounded-full);
2246
+ color: var(--nc-state-running);
2247
+ background: currentColor;
2248
+ }
2249
+ .nc-state-row[data-kind=ready] .nc-state-row-dot {
2250
+ color: var(--nc-state-ready);
2251
+ }
2252
+ .nc-state-row[data-kind=running] .nc-state-row-dot {
2253
+ color: var(--nc-state-running);
2254
+ }
2255
+ .nc-state-row[data-kind=review] .nc-state-row-dot {
2256
+ color: var(--nc-state-review);
2257
+ }
2258
+ .nc-state-row[data-kind=blocked] .nc-state-row-dot {
2259
+ color: var(--nc-state-blocked);
2260
+ }
2261
+ .nc-state-row[data-kind=complete] .nc-state-row-dot {
2262
+ color: var(--nc-state-complete);
2263
+ }
2264
+ }
2265
+
2266
+ /* src/css/components/agent-avatar.css */
2267
+ @layer components {
2268
+ .nc-agent-avatar {
2269
+ --nc-accent: var(--nc-line);
2270
+ display: grid;
2271
+ place-items: center;
2272
+ width: 32px;
2273
+ height: 32px;
2274
+ overflow: hidden;
2275
+ border: var(--nc-guide) solid var(--nc-accent);
2276
+ border-radius: var(--nc-rounded-full);
2277
+ background: var(--nc-canvas-soft);
2278
+ color: var(--nc-ink);
2279
+ font-family:
2280
+ "Geist Mono",
2281
+ ui-monospace,
2282
+ SFMono-Regular,
2283
+ Menlo,
2284
+ Monaco,
2285
+ monospace;
2286
+ font-size: 12px;
2287
+ font-weight: 600;
2288
+ line-height: 1;
2289
+ letter-spacing: 0.02em;
2290
+ }
2291
+ .nc-agent-avatar img,
2292
+ .nc-agent-avatar svg {
2293
+ display: block;
2294
+ width: 100%;
2295
+ height: 100%;
2296
+ object-fit: cover;
2297
+ }
2298
+ .nc-agent-avatar[data-accent=green] {
2299
+ --nc-accent: var(--nc-link);
2300
+ }
2301
+ .nc-agent-avatar[data-accent=cyan] {
2302
+ --nc-accent: var(--nc-info);
2303
+ }
2304
+ .nc-agent-avatar[data-accent=amber] {
2305
+ --nc-accent: var(--nc-warning-deep);
2306
+ }
2307
+ .nc-agent-avatar[data-accent=ink] {
2308
+ --nc-accent: var(--nc-ink);
2309
+ }
2310
+ .nc-agent-avatar[data-accent=red] {
2311
+ --nc-accent: var(--nc-error);
2312
+ }
2313
+ }
2314
+
2315
+ /* src/css/components/usage-meter.css */
2316
+ @layer components {
2317
+ .nc-usage-meter {
2318
+ display: flex;
2319
+ flex-direction: column;
2320
+ gap: 8px;
2321
+ padding: 4px 8px;
2322
+ border-radius: var(--nc-rounded-sm);
2323
+ background: var(--nc-canvas);
2324
+ color: var(--nc-body);
2325
+ font-family:
2326
+ "Geist Mono",
2327
+ ui-monospace,
2328
+ SFMono-Regular,
2329
+ Menlo,
2330
+ Monaco,
2331
+ monospace;
2332
+ font-size: 11px;
2333
+ line-height: 16px;
2334
+ }
2335
+ .nc-usage-meter-meta {
2336
+ display: flex;
2337
+ align-items: center;
2338
+ gap: 10px;
2339
+ color: var(--nc-muted);
2340
+ text-transform: uppercase;
2341
+ letter-spacing: 0.04em;
2342
+ white-space: nowrap;
2343
+ }
2344
+ .nc-usage-meter-sep {
2345
+ color: var(--nc-line);
2346
+ }
2347
+ .nc-usage-meter-spacer {
2348
+ flex: 1;
2349
+ }
2350
+ .nc-usage-meter-track {
2351
+ position: relative;
2352
+ height: 2px;
2353
+ overflow: hidden;
2354
+ background: var(--nc-line);
2355
+ }
2356
+ .nc-usage-meter-fill {
2357
+ position: absolute;
2358
+ inset: 0;
2359
+ right: auto;
2360
+ width: var(--nc-usage, 0%);
2361
+ background: var(--nc-ink);
2362
+ transition: width var(--nc-duration-transition) var(--nc-ease-emphasized);
2363
+ }
2364
+ @media (prefers-reduced-motion: reduce) {
2365
+ .nc-usage-meter-fill {
2366
+ transition: none;
2367
+ }
2368
+ }
2369
+ }
2370
+
2371
+ /* src/css/components/run-timeline.css */
2372
+ @layer components {
2373
+ .nc-run-timeline {
2374
+ display: flex;
2375
+ flex-direction: column;
2376
+ position: relative;
2377
+ padding: 0;
2378
+ background: var(--nc-canvas);
2379
+ color: var(--nc-ink);
2380
+ font-family:
2381
+ "Geist",
2382
+ "Inter",
2383
+ system-ui,
2384
+ -apple-system,
2385
+ "Segoe UI",
2386
+ sans-serif;
2387
+ font-size: 14px;
2388
+ line-height: 20px;
2389
+ --nc-run-timeline-rail: 22px;
2390
+ --nc-run-timeline-node: 11px;
2391
+ }
2392
+ .nc-run-timeline::before {
2393
+ content: "";
2394
+ position: absolute;
2395
+ top: 14px;
2396
+ bottom: 14px;
2397
+ left: var(--nc-run-timeline-rail);
2398
+ width: var(--nc-guide);
2399
+ transform: translateX(-50%);
2400
+ background: var(--nc-line);
2401
+ }
2402
+ .nc-run-timeline-step {
2403
+ position: relative;
2404
+ display: flex;
2405
+ gap: 14px;
2406
+ align-items: flex-start;
2407
+ padding: 8px 0;
2408
+ animation-name: nc-msg-in;
2409
+ }
2410
+ .nc-run-timeline-node {
2411
+ position: relative;
2412
+ z-index: 1;
2413
+ flex: 0 0 auto;
2414
+ width: var(--nc-run-timeline-node);
2415
+ height: var(--nc-run-timeline-node);
2416
+ margin-top: 4px;
2417
+ margin-left: calc(var(--nc-run-timeline-rail) - (var(--nc-run-timeline-node) / 2) - 14px - var(--nc-run-timeline-node));
2418
+ border-radius: var(--nc-rounded-full);
2419
+ background: var(--nc-canvas);
2420
+ box-shadow: 0 0 0 var(--nc-guide) var(--nc-line);
2421
+ color: var(--nc-state-ready);
2422
+ }
2423
+ .nc-run-timeline-node::before {
2424
+ content: "";
2425
+ position: absolute;
2426
+ inset: 2px;
2427
+ border-radius: var(--nc-rounded-full);
2428
+ background: currentColor;
2429
+ }
2430
+ .nc-run-timeline-content {
2431
+ flex: 1;
2432
+ min-width: 0;
2433
+ padding-left: 12px;
2434
+ border-left: 3px solid var(--nc-line);
2435
+ }
2436
+ .nc-run-timeline-label {
2437
+ display: flex;
2438
+ align-items: baseline;
2439
+ gap: 8px;
2440
+ font-family:
2441
+ "Geist Mono",
2442
+ ui-monospace,
2443
+ SFMono-Regular,
2444
+ Menlo,
2445
+ Monaco,
2446
+ monospace;
2447
+ font-size: 11px;
2448
+ font-weight: 500;
2449
+ line-height: 16px;
2450
+ color: var(--nc-muted);
2451
+ text-transform: uppercase;
2452
+ letter-spacing: 0.04em;
2453
+ }
2454
+ .nc-run-timeline-title {
2455
+ font-weight: 500;
2456
+ color: var(--nc-ink);
2457
+ }
2458
+ .nc-run-timeline-detail {
2459
+ margin-top: 2px;
2460
+ font-size: 13px;
2461
+ line-height: 18px;
2462
+ color: var(--nc-body);
2463
+ }
2464
+ .nc-run-timeline-step[data-state=ready] .nc-run-timeline-node {
2465
+ color: var(--nc-state-ready);
2466
+ }
2467
+ .nc-run-timeline-step[data-state=ready] .nc-run-timeline-content {
2468
+ border-left-color: var(--nc-state-ready);
2469
+ }
2470
+ .nc-run-timeline-step[data-state=running] .nc-run-timeline-node {
2471
+ color: var(--nc-state-running);
2472
+ }
2473
+ .nc-run-timeline-step[data-state=running] .nc-run-timeline-content {
2474
+ border-left-color: var(--nc-state-running);
2475
+ }
2476
+ .nc-run-timeline-step[data-state=review] .nc-run-timeline-node {
2477
+ color: var(--nc-state-review);
2478
+ }
2479
+ .nc-run-timeline-step[data-state=review] .nc-run-timeline-content {
2480
+ border-left-color: var(--nc-state-review);
2481
+ }
2482
+ .nc-run-timeline-step[data-state=blocked] .nc-run-timeline-node {
2483
+ color: var(--nc-state-blocked);
2484
+ }
2485
+ .nc-run-timeline-step[data-state=blocked] .nc-run-timeline-content {
2486
+ border-left-color: var(--nc-state-blocked);
2487
+ }
2488
+ .nc-run-timeline-step[data-state=complete] .nc-run-timeline-node {
2489
+ color: var(--nc-state-complete);
2490
+ }
2491
+ .nc-run-timeline-step[data-state=complete] .nc-run-timeline-content {
2492
+ border-left-color: var(--nc-state-complete);
2493
+ }
2494
+ }
2495
+
2496
+ /* src/css/components/image.css */
2497
+ @layer components {
2498
+ .nc-image {
2499
+ --nc-image-ratio: 4 / 3;
2500
+ position: relative;
2501
+ margin: 0;
2502
+ display: grid;
2503
+ grid-template-rows: auto;
2504
+ width: 100%;
2505
+ overflow: hidden;
2506
+ background: var(--nc-canvas-soft);
2507
+ }
2508
+ .nc-image[data-frame=true] {
2509
+ border: var(--nc-guide) solid var(--nc-line);
2510
+ }
2511
+ .nc-image-media {
2512
+ display: block;
2513
+ width: 100%;
2514
+ height: auto;
2515
+ aspect-ratio: var(--nc-image-ratio);
2516
+ object-fit: cover;
2517
+ }
2518
+ .nc-image-tag {
2519
+ position: absolute;
2520
+ top: 8px;
2521
+ left: 8px;
2522
+ padding: 2px 6px;
2523
+ border: var(--nc-guide) solid var(--nc-line);
2524
+ background: var(--nc-canvas);
2525
+ color: var(--nc-ink);
2526
+ text-transform: uppercase;
2527
+ }
2528
+ .nc-image-caption {
2529
+ margin: 0;
2530
+ padding: 8px 12px;
2531
+ color: var(--nc-body);
2532
+ background: var(--nc-canvas);
2533
+ }
2534
+ .nc-image[data-strip=true] .nc-image-media {
2535
+ aspect-ratio: auto;
2536
+ height: var(--nc-h-strip);
2537
+ }
2538
+ }
2539
+
2540
+ /* src/css/index.css */