@stridge/noctis-design-tokens 1.0.0-beta.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 (42) hide show
  1. package/README.md +226 -0
  2. package/dist/apply-scopes.d.ts +12 -0
  3. package/dist/apply-scopes.js +30 -0
  4. package/dist/css.d.ts +10 -0
  5. package/dist/css.js +36 -0
  6. package/dist/graph/components.d.ts +6 -0
  7. package/dist/graph/components.js +4488 -0
  8. package/dist/graph/index.d.ts +11 -0
  9. package/dist/graph/index.js +26 -0
  10. package/dist/graph/inputs.d.ts +1 -0
  11. package/dist/graph/inputs.js +23 -0
  12. package/dist/graph/model.d.ts +205 -0
  13. package/dist/graph/model.js +282 -0
  14. package/dist/graph/registry.d.ts +67 -0
  15. package/dist/graph/registry.js +118 -0
  16. package/dist/graph/roles.d.ts +5 -0
  17. package/dist/graph/roles.js +151 -0
  18. package/dist/graph/scales.d.ts +1 -0
  19. package/dist/graph/scales.js +1296 -0
  20. package/dist/graph/serialize.d.ts +16 -0
  21. package/dist/graph/serialize.js +25 -0
  22. package/dist/graph/statics.d.ts +1 -0
  23. package/dist/graph/statics.js +419 -0
  24. package/dist/index.d.ts +26 -0
  25. package/dist/index.js +25 -0
  26. package/dist/palettes.d.ts +70 -0
  27. package/dist/palettes.js +114 -0
  28. package/dist/react/provider.d.ts +23 -0
  29. package/dist/react/provider.js +28 -0
  30. package/dist/react.d.ts +3 -0
  31. package/dist/react.js +3 -0
  32. package/dist/scales.d.ts +186 -0
  33. package/dist/scales.js +186 -0
  34. package/dist/semantic.d.ts +36 -0
  35. package/dist/semantic.js +49 -0
  36. package/dist/swatches.d.ts +24 -0
  37. package/dist/swatches.js +57 -0
  38. package/dist/tokens.css +2607 -0
  39. package/dist/tokens.dtcg.json +3475 -0
  40. package/dist/tokens.json +14658 -0
  41. package/dist/tokens.tailwind.css +479 -0
  42. package/package.json +67 -0
@@ -0,0 +1,2607 @@
1
+ /**
2
+ * The Noctis token layer (framework-neutral core): seeds, foundations, semantic color roles, and
3
+ * the structural scopes — plain CSS that depends on no styling framework.
4
+ *
5
+ * The theme engine writes the primitive ramp (`--noctis-engine-bg-*`, `--noctis-engine-fg-*`,
6
+ * `--noctis-engine-border-*`, control, status, the border/focus shadow composites, …) onto
7
+ * `:root`. This file:
8
+ * 1. declares the seed knobs (`--noctis-seed-*`) and the canonical foundations that derive from
9
+ * them — spacing, type, radius, motion, z-index, typography, sizing, breakpoints, the
10
+ * structured shadow parts — under the category-typed grammar (`--noctis-{category}-{name}`);
11
+ * 2. maps the engine primitives to intent-named semantic color roles (`--noctis-color-*`) — the
12
+ * contract components consume;
13
+ * 3. wires the elevation scopes: a `[data-elevation]` subtree re-points the color roles (and
14
+ * the primitives behind them) to a pre-generated, internally-consistent scope set, so every
15
+ * surface inside resolves to a raised or recessed color — see the bottom of this file.
16
+ *
17
+ * The optional Tailwind bridge — the `@theme inline` aliases and `@utility` rules that mint
18
+ * `bg-background`-style utilities — lives in the sibling `tokens.tailwind.css` adapter, imported
19
+ * only by consumers who author with Tailwind. The components themselves read the canonical
20
+ * `var(--noctis-*)` declarations here, never those utilities.
21
+ *
22
+ * Generated by `pnpm tokens:gen` — edit the graph in `src/graph/`, not this file.
23
+ */
24
+
25
+ :root {
26
+ /* ── Seed knobs ────────────────────────────────────────────────────────────────────
27
+ * The runtime inputs the foundations derive from. The Preferences page and the debug tweak
28
+ * panel write these on `:root`: every `--noctis-text-*` size is a `calc()` of its base × the
29
+ * type-scale knob, every `--noctis-radius-*` box step derives from the radius knob (`9999px`
30
+ * is the pill Noctis default — controls go fully round, surfaces stay capped), and every
31
+ * `--noctis-space-*` step (plus the control heights and
32
+ * region padding) multiplies by the density knob, so the whole UI retunes live with no
33
+ * rebuild. */
34
+ --noctis-seed-font-scale: 1;
35
+ --noctis-seed-radius: 9999px;
36
+ --noctis-seed-density: 1;
37
+
38
+ /* ── Semantic color roles ← engine primitives ──────────────────────────────────────
39
+ * Components never touch the primitives on the right; they read these via Tailwind
40
+ * utilities (`bg-surface`, `text-muted`, `border-strong`, …). Swapping the engine output
41
+ * reskins everything because the roles point at the live primitive variables. */
42
+
43
+ /* Surfaces */
44
+ --noctis-color-background: var(--noctis-engine-bg-1);
45
+ --noctis-color-hover: var(--noctis-engine-bg-2);
46
+ --noctis-color-surface: var(--noctis-engine-bg-3);
47
+ --noctis-color-surface-hover: var(--noctis-engine-bg-4);
48
+ --noctis-color-surface-raised: var(--noctis-engine-bg-5);
49
+ --noctis-color-sunken: var(--noctis-engine-bg-sunken);
50
+ --noctis-color-selected: var(--noctis-engine-bg-selected);
51
+ --noctis-color-selected-hover: var(--noctis-engine-bg-selected-hover);
52
+ --noctis-color-focus: var(--noctis-engine-bg-focus);
53
+ --noctis-color-overlay: var(--noctis-engine-overlay);
54
+
55
+ /* Well — the surface-adaptive track/well fill. A translucent foreground overlay, so it
56
+ * composites onto whatever surface sits behind it and always steps off it in the foreground
57
+ * direction — surviving the light-mode white-ceiling clamp and the dark-on-dark collapse with a
58
+ * SINGLE `:root` definition (it reads the engine `fg-1` primitive, which every scope re-points and
59
+ * which flips by mode, so no per-scope re-emission is needed; resolution is lazy and contextual).
60
+ * The bed of slider/progress/meter tracks, segmented tabs/toggle tracks, scroll gutters, and
61
+ * recessed regions reads this. */
62
+ --noctis-color-well: color-mix(in oklch, var(--noctis-engine-fg-1) 20%, transparent);
63
+
64
+ /* Text */
65
+ --noctis-color-foreground: var(--noctis-engine-fg-1);
66
+ --noctis-color-muted: var(--noctis-engine-fg-3);
67
+ --noctis-color-subtle: var(--noctis-engine-fg-4);
68
+ --noctis-color-link: var(--noctis-engine-link);
69
+
70
+ /* Borders + focus ring */
71
+ --noctis-color-border-faint: var(--noctis-engine-border-faint);
72
+ --noctis-color-border: var(--noctis-engine-border-default);
73
+ --noctis-color-border-strong: var(--noctis-engine-border-strong);
74
+ --noctis-color-border-selected: var(--noctis-engine-border-selected);
75
+ --noctis-color-divider: var(--noctis-engine-divider);
76
+ --noctis-color-ring: var(--noctis-engine-focus-ring);
77
+
78
+ /* Primary — the neutral (white) emphasis for primary actions. Deliberately decoupled from the
79
+ chromatic accent: primary buttons read neutral white, while the accent stays reserved for signal
80
+ (focus, links, checked controls, selection, the brand mark). Hover/active are real engine
81
+ tokens — the white dimmed toward the seed — so the fill stays opaque and re-derives per scope. */
82
+ --noctis-color-primary: var(--noctis-engine-fg-1);
83
+ --noctis-color-primary-foreground: var(--noctis-engine-bg-1);
84
+ --noctis-color-primary-hover: var(--noctis-engine-primary-hover);
85
+ --noctis-color-primary-active: var(--noctis-engine-primary-active);
86
+
87
+ /* Accent — the chromatic signal, used sparingly and reserved for meaning. User-tunable. */
88
+ --noctis-color-accent: var(--noctis-engine-accent);
89
+ --noctis-color-accent-foreground: var(--noctis-engine-accent-fg);
90
+ --noctis-color-accent-hover: var(--noctis-engine-accent-hover);
91
+ --noctis-color-accent-active: var(--noctis-engine-accent-active);
92
+ --noctis-color-accent-muted: var(--noctis-engine-accent-muted);
93
+
94
+ /* Controls — secondary (default button / segmented / chip), ghost (menu item / tab),
95
+ * and the field surface used by inputs/selects/textareas. */
96
+ --noctis-color-control: var(--noctis-engine-control-2);
97
+ --noctis-color-control-hover: var(--noctis-engine-control-2-hover);
98
+ --noctis-color-control-selected: var(--noctis-engine-control-2-selected);
99
+ --noctis-color-control-selected-hover: var(--noctis-engine-control-2-selected-hover);
100
+ --noctis-color-control-ghost: var(--noctis-engine-control-3);
101
+ --noctis-color-control-ghost-hover: var(--noctis-engine-control-3-hover);
102
+ --noctis-color-control-ghost-selected: var(--noctis-engine-control-3-selected);
103
+ --noctis-color-control-foreground: var(--noctis-engine-control-fg);
104
+ --noctis-color-field: var(--noctis-engine-bg-3);
105
+ /* The field border is the default border color (the engine's `--noctis-engine-input-border` composite
106
+ * is `1px solid` of exactly this); exposed as `border-field` for input authors. */
107
+ --noctis-color-field-border: var(--noctis-engine-border-strong);
108
+
109
+ /* Sidebar items */
110
+ --noctis-color-sidebar-item: var(--noctis-engine-sidebar-item-bg);
111
+ --noctis-color-sidebar-item-active: var(--noctis-engine-sidebar-item-active);
112
+
113
+ /* Status — base fill, on-fill text, muted surface, text-on-muted */
114
+ --noctis-color-danger: var(--noctis-engine-danger);
115
+ --noctis-color-danger-foreground: var(--noctis-engine-danger-fg);
116
+ --noctis-color-danger-muted: var(--noctis-engine-danger-muted);
117
+ --noctis-color-danger-muted-foreground: var(--noctis-engine-danger-muted-fg);
118
+ --noctis-color-success: var(--noctis-engine-success);
119
+ --noctis-color-success-foreground: var(--noctis-engine-success-fg);
120
+ --noctis-color-success-muted: var(--noctis-engine-success-muted);
121
+ --noctis-color-success-muted-foreground: var(--noctis-engine-success-muted-fg);
122
+ --noctis-color-warning: var(--noctis-engine-warning);
123
+ --noctis-color-warning-foreground: var(--noctis-engine-warning-fg);
124
+ --noctis-color-warning-muted: var(--noctis-engine-warning-muted);
125
+ --noctis-color-warning-muted-foreground: var(--noctis-engine-warning-muted-fg);
126
+ --noctis-color-info: var(--noctis-engine-info);
127
+ --noctis-color-info-foreground: var(--noctis-engine-info-fg);
128
+ --noctis-color-info-muted: var(--noctis-engine-info-muted);
129
+ --noctis-color-info-muted-foreground: var(--noctis-engine-info-muted-fg);
130
+
131
+ /* Text selection — the engine emits an accent-tinted wash here. */
132
+ --noctis-color-selection: var(--noctis-engine-selection-bg);
133
+
134
+ /* Secondary text tier + placeholder (faint) */
135
+ --noctis-color-secondary: var(--noctis-engine-fg-2);
136
+ --noctis-color-placeholder: var(--noctis-engine-fg-4);
137
+
138
+ /* Status sub-roles — hover fill, faint tint surface, outline border */
139
+ --noctis-color-danger-hover: var(--noctis-engine-danger-hover);
140
+ --noctis-color-danger-faint: var(--noctis-engine-danger-tint);
141
+ --noctis-color-danger-border: var(--noctis-engine-danger-border);
142
+ --noctis-color-success-hover: var(--noctis-engine-success-hover);
143
+ --noctis-color-success-faint: var(--noctis-engine-success-tint);
144
+ --noctis-color-success-border: var(--noctis-engine-success-border);
145
+ --noctis-color-warning-hover: var(--noctis-engine-warning-hover);
146
+ --noctis-color-warning-faint: var(--noctis-engine-warning-tint);
147
+ --noctis-color-warning-border: var(--noctis-engine-warning-border);
148
+ --noctis-color-info-hover: var(--noctis-engine-info-hover);
149
+ --noctis-color-info-faint: var(--noctis-engine-info-tint);
150
+ --noctis-color-info-border: var(--noctis-engine-info-border);
151
+
152
+ /* Presence — availability dots; alias status/accent/neutral engine values so they re-point per scope. */
153
+ --noctis-color-presence-online: var(--noctis-engine-success);
154
+ --noctis-color-presence-busy: var(--noctis-engine-danger);
155
+ --noctis-color-presence-focus: var(--noctis-engine-accent);
156
+ --noctis-color-presence-away: var(--noctis-engine-warning);
157
+ --noctis-color-presence-offline: var(--noctis-engine-fg-3);
158
+
159
+ /* Chrome — header + scrollbar */
160
+ --noctis-color-header: var(--noctis-engine-header-bg);
161
+ --noctis-color-scrollbar-thumb: var(--noctis-engine-scrollbar);
162
+ --noctis-color-scrollbar-track: var(--noctis-engine-bg-sunken);
163
+
164
+ /* Control extras + form-element surfaces */
165
+ --noctis-color-control-ghost-selected-hover: var(--noctis-engine-control-3-selected-hover);
166
+ --noctis-color-toggle-track-off: var(--noctis-engine-control-2);
167
+ --noctis-color-toggle-track-off-hover: var(--noctis-engine-control-2-hover);
168
+ --noctis-color-toggle-track-on: var(--noctis-engine-accent);
169
+ --noctis-color-toggle-track-on-hover: var(--noctis-engine-accent-hover);
170
+ /* The on-track stays full accent when disabled (paired with reduced opacity), not desaturated. */
171
+ --noctis-color-toggle-track-on-disabled: var(--noctis-engine-accent);
172
+ --noctis-color-toggle-thumb: var(--noctis-engine-fg-1);
173
+ --noctis-color-checkbox: var(--noctis-engine-input-bg);
174
+ --noctis-color-checkbox-checked: var(--noctis-engine-accent);
175
+ --noctis-color-checkbox-border: var(--noctis-engine-border-default);
176
+ --noctis-color-checkbox-border-hover: var(--noctis-engine-border-strong);
177
+ --noctis-color-checkbox-check: var(--noctis-engine-accent-fg);
178
+ --noctis-color-radio: var(--noctis-engine-input-bg);
179
+ --noctis-color-radio-checked: var(--noctis-engine-accent);
180
+ --noctis-color-radio-border: var(--noctis-engine-border-strong);
181
+
182
+ /* Field state fills + borders */
183
+ --noctis-color-field-hover: var(--noctis-engine-bg-4);
184
+ --noctis-color-field-focus: var(--noctis-engine-field-focus);
185
+ --noctis-color-field-border-hover: var(--noctis-engine-border-strong);
186
+ --noctis-color-field-border-focus: var(--noctis-engine-focus-ring);
187
+ --noctis-color-field-border-invalid: var(--noctis-engine-danger);
188
+
189
+ /* Code / kbd / shortcuts */
190
+ --noctis-color-code: var(--noctis-engine-bg-sunken);
191
+ --noctis-color-code-foreground: var(--noctis-engine-fg-2);
192
+ --noctis-color-kbd: var(--noctis-engine-control-2);
193
+ --noctis-color-kbd-foreground: var(--noctis-engine-fg-2);
194
+ --noctis-color-kbd-border: var(--noctis-engine-border-strong);
195
+ --noctis-color-menu-shortcut: var(--noctis-engine-fg-4);
196
+
197
+ /* Data grid */
198
+ --noctis-color-data-grid-header: var(--noctis-engine-bg-3);
199
+ --noctis-color-data-grid-row-hover: var(--noctis-engine-bg-2);
200
+ --noctis-color-data-grid-row-hover-strong: var(--noctis-engine-bg-4);
201
+ --noctis-color-data-grid-border: var(--noctis-engine-border-faint);
202
+ --noctis-color-data-grid-column-selected-border: var(--noctis-engine-accent);
203
+
204
+ /* Chart roles that alias engine semantics */
205
+ --noctis-color-chart-positive: var(--noctis-engine-success);
206
+ --noctis-color-chart-negative: var(--noctis-engine-danger);
207
+ --noctis-color-chart-neutral: var(--noctis-engine-fg-3);
208
+ --noctis-color-chart-grid: var(--noctis-engine-border-faint);
209
+ --noctis-color-chart-axis: var(--noctis-engine-fg-4);
210
+ --noctis-color-chart-track: var(--noctis-engine-bg-sunken);
211
+ --noctis-color-chart-tooltip: var(--noctis-engine-bg-5);
212
+
213
+ /* Inverse surface (primary text as a surface) + its text (canvas) */
214
+ --noctis-color-inverse: var(--noctis-engine-fg-1);
215
+ --noctis-color-inverse-foreground: var(--noctis-engine-bg-1);
216
+
217
+ /* Disabled text — disabled is otherwise expressed with reduced opacity (the `opacity-disabled`
218
+ utility), not a color family; this is the one explicit disabled color, for text that must
219
+ stay legible over busy rows where opacity is wrong. */
220
+ --noctis-color-text-disabled: color-mix(in oklch, var(--noctis-engine-fg-4) 55%, transparent);
221
+
222
+ /* ── Type scale ────────────────────────────────────────────────────────────────────
223
+ * The named sizes (micro → title-1), each scaled by `--noctis-seed-font-scale` and paired with
224
+ * a leading step. Bridged to the `text-*` utilities in `@theme inline` below.
225
+ *
226
+ * @maintenance When you add, rename, or remove a named text size here, also update the
227
+ * font-size class group in the shared class merger — `FONT_SIZE_CLASS_GROUP` in
228
+ * `packages/noctis/src/lib/cn.ts` (consumed by both `cn` and `tv`). These names are custom, so
229
+ * tailwind-merge cannot tell `text-<size>` from `text-<color>`; if a size is missing from that
230
+ * list, `cn()` treats it as a color and silently drops it when a size and a color appear
231
+ * together (e.g. `text-mini` + `text-foreground`). Keep the two lists in sync.
232
+ */
233
+ --noctis-text-micro: calc(0.6875rem * var(--noctis-seed-font-scale));
234
+ --noctis-leading-micro: calc(1rem * var(--noctis-seed-font-scale));
235
+ --noctis-text-mini: calc(0.75rem * var(--noctis-seed-font-scale));
236
+ --noctis-leading-mini: calc(1rem * var(--noctis-seed-font-scale));
237
+ --noctis-text-small: calc(0.8125rem * var(--noctis-seed-font-scale));
238
+ --noctis-leading-small: calc(1.25rem * var(--noctis-seed-font-scale));
239
+ --noctis-text-regular: calc(0.9375rem * var(--noctis-seed-font-scale));
240
+ --noctis-leading-regular: calc(1.5rem * var(--noctis-seed-font-scale));
241
+ --noctis-text-large: calc(1.125rem * var(--noctis-seed-font-scale));
242
+ --noctis-leading-large: calc(1.75rem * var(--noctis-seed-font-scale));
243
+ --noctis-text-title-1: calc(2.25rem * var(--noctis-seed-font-scale));
244
+ --noctis-leading-title-1: calc(2.75rem * var(--noctis-seed-font-scale));
245
+ --noctis-text-title-2: calc(1.5rem * var(--noctis-seed-font-scale));
246
+ --noctis-leading-title-2: calc(2rem * var(--noctis-seed-font-scale));
247
+ --noctis-text-title-3: calc(1.25rem * var(--noctis-seed-font-scale));
248
+ --noctis-leading-title-3: calc(1.75rem * var(--noctis-seed-font-scale));
249
+
250
+ /* ── Standalone leadings ───────────────────────────────────────────────────────────
251
+ * The owned `leading-*` steps outside the paired type scale (Tailwind's `--leading-*`
252
+ * namespace is reset; these mirror the defaults in use). The static `leading-none`
253
+ * (`line-height: 1`) needs no token — it survives the reset. */
254
+ --noctis-leading-snug: 1.375;
255
+ --noctis-leading-relaxed: 1.625;
256
+
257
+ /* ── Corner radius ─────────────────────────────────────────────────────────────────
258
+ * Every box step derives from the `--noctis-seed-radius` knob, so one root value rounds the UI
259
+ * live. The box steps are `min()`-capped so SURFACES (cards, sheets, popovers) stay bounded
260
+ * and never balloon into pills, however large the knob — a pill card never reads right.
261
+ * `--noctis-radius-full` is the only fully-round value (genuine circles; opt in with
262
+ * `rounded-full`). `--noctis-radius-control` is the exception: it follows the knob uncapped, so at
263
+ * the Pill setting short interactive CONTROLS (buttons, chips, segmented) become true pills. */
264
+ --noctis-radius-xs: min(calc(var(--noctis-seed-radius) * 0.5), 0.375rem);
265
+ --noctis-radius-sm: min(calc(var(--noctis-seed-radius) * 0.75), 0.5rem);
266
+ --noctis-radius-md: min(var(--noctis-seed-radius), 0.625rem);
267
+ --noctis-radius-lg: min(calc(var(--noctis-seed-radius) * 1.5), 0.875rem);
268
+ --noctis-radius-xl: min(calc(var(--noctis-seed-radius) * 2), 1.25rem);
269
+ --noctis-radius-full: 9999px;
270
+ --noctis-radius-control: var(--noctis-seed-radius);
271
+
272
+ /* ── Transition speeds ─────────────────────────────────────────────────────────────
273
+ * The named motion stops controls feed into the bridged `duration-*` utilities. */
274
+ --noctis-duration-fast: 0.1s;
275
+ --noctis-duration-quick: 0.15s;
276
+ --noctis-duration-regular: 0.2s;
277
+ --noctis-duration-slow: 0.35s;
278
+ --noctis-duration-overlay: 0.26s;
279
+
280
+ /* ── Easing curves ── bridged to `ease-standard`, `ease-in`, `ease-out`, `ease-in-out`, `ease-overlay`. */
281
+ --noctis-ease-standard: cubic-bezier(0.25, 0.46, 0.45, 0.94);
282
+ --noctis-ease-in: cubic-bezier(0.55, 0.055, 0.675, 0.19);
283
+ --noctis-ease-out: cubic-bezier(0.215, 0.61, 0.355, 1);
284
+ --noctis-ease-in-out: cubic-bezier(0.645, 0.045, 0.355, 1);
285
+ --noctis-ease-overlay: cubic-bezier(0.32, 0.72, 0, 1);
286
+
287
+ /* ── Z-index ladder ────────────────────────────────────────────────────────────────
288
+ * Named stacking contexts the app composes by intent rather than magic numbers. */
289
+ --noctis-z-base: 0;
290
+ --noctis-z-raised: 1;
291
+ --noctis-z-dropdown: 1000;
292
+ --noctis-z-sticky: 1100;
293
+ --noctis-z-overlay: 1300;
294
+ --noctis-z-modal: 1400;
295
+ --noctis-z-popover: 1500;
296
+ --noctis-z-toast: 1700;
297
+
298
+ /* ── Typography — families, weights, tracking ────────────────────────────────────── */
299
+ --noctis-font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
300
+ --noctis-font-mono: "Geist Mono", ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;
301
+ --noctis-font-weight-light: 300;
302
+ --noctis-font-weight-normal: 450;
303
+ --noctis-font-weight-medium: 500;
304
+ --noctis-font-weight-semibold: 600;
305
+ --noctis-font-weight-bold: 700;
306
+ --noctis-font-weight-extrabold: 800;
307
+ --noctis-font-weight-black: 900;
308
+ --noctis-tracking-tight: -0.01em;
309
+ --noctis-tracking-normal: 0em;
310
+ --noctis-tracking-wide: 0.02em;
311
+
312
+ /* ── Control sizing ────────────────────────────────────────────────────────────────
313
+ * The shared control-height ladder every interactive control converges on (density-scaled)
314
+ * and the focus-ring geometry (static) — public seams a consumer retunes with one line. */
315
+ --noctis-size-control-xs: calc(1.25rem * var(--noctis-seed-density));
316
+ --noctis-size-control-sm: calc(1.625rem * var(--noctis-seed-density));
317
+ --noctis-size-control-md: calc(2.25rem * var(--noctis-seed-density));
318
+ --noctis-size-control-lg: calc(2.5rem * var(--noctis-seed-density));
319
+ --noctis-size-focus-ring-width: 2px;
320
+ --noctis-size-focus-ring-offset: 2px;
321
+
322
+ /* ── Spacing ramp ──────────────────────────────────────────────────────────────────
323
+ * The sanctioned steps every spacing-driven utility resolves through — `step × 0.25rem ×
324
+ * `--noctis-seed-density`` (`0` and `px` static). `--spacing: initial` in `@theme` kills
325
+ * Tailwind's bare multiplier, so an unsanctioned step (`p-17`, `w-88`) does not emit.
326
+ * The region padding (sheet/rail header/body/footer inset) rides the same density knob. */
327
+ --noctis-space-0: 0px;
328
+ --noctis-space-0\.5: calc(0.25rem * 0.5 * var(--noctis-seed-density));
329
+ --noctis-space-1: calc(0.25rem * 1 * var(--noctis-seed-density));
330
+ --noctis-space-1\.5: calc(0.25rem * 1.5 * var(--noctis-seed-density));
331
+ --noctis-space-2: calc(0.25rem * 2 * var(--noctis-seed-density));
332
+ --noctis-space-2\.5: calc(0.25rem * 2.5 * var(--noctis-seed-density));
333
+ --noctis-space-3: calc(0.25rem * 3 * var(--noctis-seed-density));
334
+ --noctis-space-3\.5: calc(0.25rem * 3.5 * var(--noctis-seed-density));
335
+ --noctis-space-4: calc(0.25rem * 4 * var(--noctis-seed-density));
336
+ --noctis-space-5: calc(0.25rem * 5 * var(--noctis-seed-density));
337
+ --noctis-space-6: calc(0.25rem * 6 * var(--noctis-seed-density));
338
+ --noctis-space-7: calc(0.25rem * 7 * var(--noctis-seed-density));
339
+ --noctis-space-8: calc(0.25rem * 8 * var(--noctis-seed-density));
340
+ --noctis-space-9: calc(0.25rem * 9 * var(--noctis-seed-density));
341
+ --noctis-space-10: calc(0.25rem * 10 * var(--noctis-seed-density));
342
+ --noctis-space-11: calc(0.25rem * 11 * var(--noctis-seed-density));
343
+ --noctis-space-12: calc(0.25rem * 12 * var(--noctis-seed-density));
344
+ --noctis-space-14: calc(0.25rem * 14 * var(--noctis-seed-density));
345
+ --noctis-space-16: calc(0.25rem * 16 * var(--noctis-seed-density));
346
+ --noctis-space-20: calc(0.25rem * 20 * var(--noctis-seed-density));
347
+ --noctis-space-24: calc(0.25rem * 24 * var(--noctis-seed-density));
348
+ --noctis-space-28: calc(0.25rem * 28 * var(--noctis-seed-density));
349
+ --noctis-space-32: calc(0.25rem * 32 * var(--noctis-seed-density));
350
+ --noctis-space-36: calc(0.25rem * 36 * var(--noctis-seed-density));
351
+ --noctis-space-40: calc(0.25rem * 40 * var(--noctis-seed-density));
352
+ --noctis-space-44: calc(0.25rem * 44 * var(--noctis-seed-density));
353
+ --noctis-space-48: calc(0.25rem * 48 * var(--noctis-seed-density));
354
+ --noctis-space-52: calc(0.25rem * 52 * var(--noctis-seed-density));
355
+ --noctis-space-56: calc(0.25rem * 56 * var(--noctis-seed-density));
356
+ --noctis-space-60: calc(0.25rem * 60 * var(--noctis-seed-density));
357
+ --noctis-space-64: calc(0.25rem * 64 * var(--noctis-seed-density));
358
+ --noctis-space-72: calc(0.25rem * 72 * var(--noctis-seed-density));
359
+ --noctis-space-80: calc(0.25rem * 80 * var(--noctis-seed-density));
360
+ --noctis-space-96: calc(0.25rem * 96 * var(--noctis-seed-density));
361
+ --noctis-space-px: 1px;
362
+ --noctis-space-region: calc(1.25rem * var(--noctis-seed-density));
363
+
364
+ /* ── Opacity ───────────────────────────────────────────────────────────────────────
365
+ * The disabled-control opacity (the `opacity-disabled` utility) and the sanctioned numeric
366
+ * steps the `opacity-*` utilities resolve through. */
367
+ --noctis-opacity-disabled: 0.5;
368
+
369
+ /* ── Container widths ──────────────────────────────────────────────────────────────
370
+ * The owned named width steps. `--container-*` backs `w-*`/`min-w-*`/`max-w-*`/`basis-*`/
371
+ * `columns-*` named sizes (not just container queries), so the reset mirrors every step
372
+ * in use. Static — layout widths do not ride the density knob. */
373
+ --noctis-container-xs: 20rem;
374
+ --noctis-container-sm: 24rem;
375
+ --noctis-container-md: 28rem;
376
+ --noctis-container-xl: 36rem;
377
+ --noctis-container-2xl: 42rem;
378
+ --noctis-container-3xl: 48rem;
379
+ --noctis-container-7xl: 80rem;
380
+
381
+ /* ── Border widths ── the sanctioned `border-{1,2,4}` steps; static, never density-scaled. */
382
+ --noctis-border-width-1: 1px;
383
+ --noctis-border-width-2: 2px;
384
+ --noctis-border-width-4: 4px;
385
+
386
+ /* ── Blur radii ── the owned `blur-*` / `backdrop-blur-*` steps (Tailwind's `--blur-*` is reset). */
387
+ --noctis-blur-sm: 8px;
388
+ --noctis-blur-md: 12px;
389
+
390
+ /* ── Animations ── the owned `animate-*` set; each value names a `@keyframes` block
391
+ * emitted top-level further down (a `@keyframes` inside `@theme` would be tree-shaken). */
392
+ --noctis-animate-spin: spin 1s linear infinite;
393
+
394
+ /* ── Breakpoints ───────────────────────────────────────────────────────────────────
395
+ * The canonical twins of the bare `--breakpoint-*` keys in `@theme` — JS and docs read
396
+ * these. Media query preludes reject `var()`, so the `@theme` keys carry the same values
397
+ * as literals, duplicated from these at generation time. */
398
+ --noctis-breakpoint-sm: 40rem;
399
+ --noctis-breakpoint-md: 48rem;
400
+ --noctis-breakpoint-lg: 64rem;
401
+ --noctis-breakpoint-xl: 80rem;
402
+ --noctis-breakpoint-2xl: 96rem;
403
+
404
+ /* ── Structured shadows ────────────────────────────────────────────────────────────
405
+ * Per-layer geometry + alpha part tokens and the composed families they feed; bridged to
406
+ * `shadow-card`, `shadow-popover`, `shadow-modal`, `shadow-inset`, `shadow-focus` (and the
407
+ * mirrored `shadow-sm`) in `@theme inline`. Drop layers color the literal black base
408
+ * (`oklch(0 0 0 / <alpha part>)` — the L/C/H `--noctis-engine-shadow-color` computes); the
409
+ * focus family embeds the scope-variant `--noctis-engine-focus-ring`. Every part is a
410
+ * cascade seam: override `--noctis-shadow-low-1-blur` anywhere and the composed shadow follows. */
411
+ --noctis-shadow-low-1-x: 0;
412
+ --noctis-shadow-low-1-y: 1px;
413
+ --noctis-shadow-low-1-blur: 2px;
414
+ --noctis-shadow-low-1-spread: 0;
415
+ --noctis-shadow-low-1-alpha: 0.08;
416
+ --noctis-shadow-low-2-x: 0;
417
+ --noctis-shadow-low-2-y: 1px;
418
+ --noctis-shadow-low-2-blur: 1px;
419
+ --noctis-shadow-low-2-spread: 0;
420
+ --noctis-shadow-low-2-alpha: 0.06;
421
+ --noctis-shadow-medium-1-x: 0;
422
+ --noctis-shadow-medium-1-y: 4px;
423
+ --noctis-shadow-medium-1-blur: 8px;
424
+ --noctis-shadow-medium-1-spread: -2px;
425
+ --noctis-shadow-medium-1-alpha: 0.12;
426
+ --noctis-shadow-medium-2-x: 0;
427
+ --noctis-shadow-medium-2-y: 2px;
428
+ --noctis-shadow-medium-2-blur: 4px;
429
+ --noctis-shadow-medium-2-spread: -1px;
430
+ --noctis-shadow-medium-2-alpha: 0.1;
431
+ --noctis-shadow-high-1-x: 0;
432
+ --noctis-shadow-high-1-y: 12px;
433
+ --noctis-shadow-high-1-blur: 32px;
434
+ --noctis-shadow-high-1-spread: -4px;
435
+ --noctis-shadow-high-1-alpha: 0.18;
436
+ --noctis-shadow-high-2-x: 0;
437
+ --noctis-shadow-high-2-y: 6px;
438
+ --noctis-shadow-high-2-blur: 12px;
439
+ --noctis-shadow-high-2-spread: -2px;
440
+ --noctis-shadow-high-2-alpha: 0.14;
441
+ --noctis-shadow-inset-1-x: 0;
442
+ --noctis-shadow-inset-1-y: 1px;
443
+ --noctis-shadow-inset-1-blur: 2px;
444
+ --noctis-shadow-inset-1-spread: 0;
445
+ --noctis-shadow-inset-1-alpha: 0.1;
446
+ --noctis-shadow-focus-1-x: 0;
447
+ --noctis-shadow-focus-1-y: 0;
448
+ --noctis-shadow-focus-1-blur: 0;
449
+ --noctis-shadow-focus-1-spread: 1px;
450
+ --noctis-shadow-low:
451
+ var(--noctis-shadow-low-1-x) var(--noctis-shadow-low-1-y) var(--noctis-shadow-low-1-blur)
452
+ var(--noctis-shadow-low-1-spread)
453
+ oklch(from var(--noctis-engine-shadow-color) l c h / var(--noctis-shadow-low-1-alpha)),
454
+ var(--noctis-shadow-low-2-x) var(--noctis-shadow-low-2-y) var(--noctis-shadow-low-2-blur)
455
+ var(--noctis-shadow-low-2-spread)
456
+ oklch(from var(--noctis-engine-shadow-color) l c h / var(--noctis-shadow-low-2-alpha));
457
+ --noctis-shadow-medium:
458
+ var(--noctis-shadow-medium-1-x) var(--noctis-shadow-medium-1-y) var(--noctis-shadow-medium-1-blur)
459
+ var(--noctis-shadow-medium-1-spread)
460
+ oklch(from var(--noctis-engine-shadow-color) l c h / var(--noctis-shadow-medium-1-alpha)),
461
+ var(--noctis-shadow-medium-2-x) var(--noctis-shadow-medium-2-y) var(--noctis-shadow-medium-2-blur)
462
+ var(--noctis-shadow-medium-2-spread)
463
+ oklch(from var(--noctis-engine-shadow-color) l c h / var(--noctis-shadow-medium-2-alpha));
464
+ --noctis-shadow-high:
465
+ var(--noctis-shadow-high-1-x) var(--noctis-shadow-high-1-y) var(--noctis-shadow-high-1-blur)
466
+ var(--noctis-shadow-high-1-spread)
467
+ oklch(from var(--noctis-engine-shadow-color) l c h / var(--noctis-shadow-high-1-alpha)),
468
+ var(--noctis-shadow-high-2-x) var(--noctis-shadow-high-2-y) var(--noctis-shadow-high-2-blur)
469
+ var(--noctis-shadow-high-2-spread)
470
+ oklch(from var(--noctis-engine-shadow-color) l c h / var(--noctis-shadow-high-2-alpha));
471
+ --noctis-shadow-inset: inset var(--noctis-shadow-inset-1-x) var(--noctis-shadow-inset-1-y) var(--noctis-shadow-inset-1-blur)
472
+ var(--noctis-shadow-inset-1-spread)
473
+ oklch(from var(--noctis-engine-shadow-color) l c h / var(--noctis-shadow-inset-1-alpha));
474
+ --noctis-shadow-focus: var(--noctis-shadow-focus-1-x) var(--noctis-shadow-focus-1-y) var(--noctis-shadow-focus-1-blur)
475
+ var(--noctis-shadow-focus-1-spread) var(--noctis-engine-focus-ring);
476
+ --noctis-shadow-sm: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;
477
+ }
478
+
479
+ /* ── Authored static palettes (accent-independent; switch on the resolved mode) ─────────
480
+ * Chart and avatar series stay categorically stable regardless of the accent (re-theming
481
+ * them would break legend↔series identity), so they are authored — not engine-derived. Dark
482
+ * values sit on `:root`; light values under `[data-theme="light"]`, set by the app shell and the
483
+ * theme provider from the resolved mode. Hues are spread across the wheel and separated in
484
+ * lightness for color-vision-deficiency safety.
485
+ */
486
+ :root {
487
+ --noctis-color-chart-1: oklch(0.7 0.15 264);
488
+ --noctis-color-chart-2: oklch(0.78 0.13 195);
489
+ --noctis-color-chart-3: oklch(0.74 0.16 150);
490
+ --noctis-color-chart-4: oklch(0.83 0.15 95);
491
+ --noctis-color-chart-5: oklch(0.72 0.16 55);
492
+ --noctis-color-chart-6: oklch(0.68 0.18 25);
493
+ --noctis-color-chart-7: oklch(0.7 0.17 310);
494
+ --noctis-color-chart-8: oklch(0.76 0.14 350);
495
+
496
+ --noctis-color-avatar-1: oklch(0.62 0.17 264);
497
+ --noctis-color-avatar-2: oklch(0.62 0.15 196);
498
+ --noctis-color-avatar-3: oklch(0.62 0.16 152);
499
+ --noctis-color-avatar-4: oklch(0.64 0.15 130);
500
+ --noctis-color-avatar-5: oklch(0.66 0.16 70);
501
+ --noctis-color-avatar-6: oklch(0.62 0.18 40);
502
+ --noctis-color-avatar-7: oklch(0.6 0.2 18);
503
+ --noctis-color-avatar-8: oklch(0.6 0.18 330);
504
+ --noctis-color-avatar-9: oklch(0.6 0.18 300);
505
+ --noctis-color-avatar-10: oklch(0.6 0.15 285);
506
+ --noctis-color-avatar-foreground: oklch(0.99 0 0);
507
+ }
508
+
509
+ :root[data-theme="light"] {
510
+ --noctis-color-chart-1: oklch(0.55 0.17 264);
511
+ --noctis-color-chart-2: oklch(0.6 0.13 195);
512
+ --noctis-color-chart-3: oklch(0.58 0.16 150);
513
+ --noctis-color-chart-4: oklch(0.68 0.15 95);
514
+ --noctis-color-chart-5: oklch(0.6 0.17 55);
515
+ --noctis-color-chart-6: oklch(0.55 0.2 25);
516
+ --noctis-color-chart-7: oklch(0.55 0.19 310);
517
+ --noctis-color-chart-8: oklch(0.6 0.16 350);
518
+
519
+ --noctis-color-avatar-1: oklch(0.58 0.18 264);
520
+ --noctis-color-avatar-2: oklch(0.56 0.15 196);
521
+ --noctis-color-avatar-3: oklch(0.56 0.16 152);
522
+ --noctis-color-avatar-4: oklch(0.58 0.15 130);
523
+ --noctis-color-avatar-5: oklch(0.62 0.16 70);
524
+ --noctis-color-avatar-6: oklch(0.58 0.19 40);
525
+ --noctis-color-avatar-7: oklch(0.56 0.21 18);
526
+ --noctis-color-avatar-8: oklch(0.56 0.19 330);
527
+ --noctis-color-avatar-9: oklch(0.56 0.19 300);
528
+ --noctis-color-avatar-10: oklch(0.56 0.16 285);
529
+ }
530
+
531
+ /* ── Light-mode shadows ─────────────────────────────────────────────────────────────────
532
+ * Raised surfaces float on a softer, larger-blur, lower-alpha cast in light mode — the lighter fill
533
+ * and the hairline border do most of the separating. Only the parts that change carry a twin; the
534
+ * composed `--noctis-shadow-*` families re-resolve from these part overrides.
535
+ */
536
+ :root[data-theme="light"] {
537
+ --noctis-shadow-low-1-blur: 3px;
538
+ --noctis-shadow-low-1-alpha: 0.05;
539
+ --noctis-shadow-low-2-blur: 2px;
540
+ --noctis-shadow-low-2-alpha: 0.04;
541
+ --noctis-shadow-medium-1-y: 5px;
542
+ --noctis-shadow-medium-1-blur: 18px;
543
+ --noctis-shadow-medium-1-spread: -3px;
544
+ --noctis-shadow-medium-1-alpha: 0.1;
545
+ --noctis-shadow-medium-2-blur: 6px;
546
+ --noctis-shadow-medium-2-alpha: 0.06;
547
+ --noctis-shadow-high-1-y: 16px;
548
+ --noctis-shadow-high-1-blur: 44px;
549
+ --noctis-shadow-high-1-spread: -6px;
550
+ --noctis-shadow-high-1-alpha: 0.14;
551
+ --noctis-shadow-high-2-blur: 16px;
552
+ --noctis-shadow-high-2-alpha: 0.08;
553
+ }
554
+
555
+ /* ── Radius scope ───────────────────────────────────────────────────────────────────────
556
+ * The escape hatch over the global radius default: a subtree (a dashboard region that wants sharp
557
+ * corners, a settings page that wants a subtler radius than the pill default) sets its own
558
+ * `--noctis-seed-radius` and re-derives the box scale
559
+ * here, so every `rounded-*` inside resolves to the scoped value. Mirrors the elevation scopes
560
+ * below — the scale must be re-declared on the scope because `:root`'s steps are computed against
561
+ * `:root`'s knob. Driven by the `RadiusScope` primitive. */
562
+ [data-radius-scope] {
563
+ --noctis-radius-xs: min(calc(var(--noctis-seed-radius) * 0.5), 0.375rem);
564
+ --noctis-radius-sm: min(calc(var(--noctis-seed-radius) * 0.75), 0.5rem);
565
+ --noctis-radius-md: min(var(--noctis-seed-radius), 0.625rem);
566
+ --noctis-radius-lg: min(calc(var(--noctis-seed-radius) * 1.5), 0.875rem);
567
+ --noctis-radius-xl: min(calc(var(--noctis-seed-radius) * 2), 1.25rem);
568
+ --noctis-radius-full: 9999px;
569
+ --noctis-radius-control: var(--noctis-seed-radius);
570
+ }
571
+
572
+ /* ── Keyframes for the owned animations ─────────────────────────────────────────────────
573
+ * `--noctis-animate-spin` names this block; emitted top-level (never inside `@theme`, where it
574
+ * would be tree-shaken along with the reset default keys). */
575
+ @keyframes spin {
576
+ to {
577
+ transform: rotate(360deg);
578
+ }
579
+ }
580
+
581
+ /* ── Elevation scopes ──────────────────────────────────────────────────────────────────
582
+ * A scope is a full re-generation of the theme at a shifted base lightness: text re-solves
583
+ * its contrast, borders re-derive, so a raised surface is a genuinely different,
584
+ * internally-consistent color — not a tint. The `--noctis-engine-el-*` (elevated) and
585
+ * `--noctis-engine-su-*` (sunken) primitive sets are emitted onto `:root` by `defaultThemeCss`
586
+ * (build time) and by
587
+ * `applyThemeWithScopes` (runtime). Each `[data-elevation]` subtree re-declares the
588
+ * `--noctis-color-*` roles (and the primitives behind them) against that scope's set, so every
589
+ * utility inside resolves to it with zero per-component tokens. The roles must be re-declared,
590
+ * not only the primitives: a role declared on `:root` inherits its already-resolved value, so
591
+ * re-pointing a primitive alone never reaches the `var(--noctis-color-*)` a utility reads.
592
+ *
593
+ * Component contract: set `data-elevation` on the surface element (for portalled overlays,
594
+ * on the portalled node itself) and keep using the normal roles (`bg-surface`,
595
+ * `border-border`, …). Scopes are absolute (computed from the active theme's base), not
596
+ * relative — they do not compound when nested.
597
+ */
598
+ [data-elevation="elevated"] {
599
+ /* Role re-points — the layer utilities actually read. Re-pointing the primitives below is
600
+ necessary (composites like shadows read them directly) but not sufficient: every `--noctis-color-*`
601
+ role is declared on `:root` and inherits its already-resolved value, so each must be
602
+ re-declared here against the `--noctis-engine-el-*` set for `bg-surface`/`bg-control`/… to re-skin. */
603
+ --noctis-color-background: var(--noctis-engine-el-bg-1);
604
+ --noctis-color-hover: var(--noctis-engine-el-bg-2);
605
+ --noctis-color-surface: var(--noctis-engine-el-bg-3);
606
+ --noctis-color-surface-hover: var(--noctis-engine-el-bg-4);
607
+ --noctis-color-surface-raised: var(--noctis-engine-el-bg-5);
608
+ --noctis-color-sunken: var(--noctis-engine-el-bg-sunken);
609
+ --noctis-color-selected: var(--noctis-engine-el-bg-selected);
610
+ --noctis-color-selected-hover: var(--noctis-engine-el-bg-selected-hover);
611
+ --noctis-color-focus: var(--noctis-engine-el-bg-focus);
612
+ --noctis-color-overlay: var(--noctis-engine-el-overlay);
613
+ --noctis-color-foreground: var(--noctis-engine-el-fg-1);
614
+ --noctis-color-muted: var(--noctis-engine-el-fg-3);
615
+ --noctis-color-subtle: var(--noctis-engine-el-fg-4);
616
+ --noctis-color-link: var(--noctis-engine-el-link);
617
+ --noctis-color-border-faint: var(--noctis-engine-el-border-faint);
618
+ --noctis-color-border: var(--noctis-engine-el-border-default);
619
+ --noctis-color-border-strong: var(--noctis-engine-el-border-strong);
620
+ --noctis-color-border-selected: var(--noctis-engine-el-border-selected);
621
+ --noctis-color-divider: var(--noctis-engine-el-divider);
622
+ --noctis-color-ring: var(--noctis-engine-el-focus-ring);
623
+ --noctis-color-primary: var(--noctis-engine-el-fg-1);
624
+ --noctis-color-primary-foreground: var(--noctis-engine-el-bg-1);
625
+ --noctis-color-primary-hover: var(--noctis-engine-el-primary-hover);
626
+ --noctis-color-primary-active: var(--noctis-engine-el-primary-active);
627
+ --noctis-color-accent: var(--noctis-engine-el-accent);
628
+ --noctis-color-accent-foreground: var(--noctis-engine-el-accent-fg);
629
+ --noctis-color-accent-hover: var(--noctis-engine-el-accent-hover);
630
+ --noctis-color-accent-active: var(--noctis-engine-el-accent-active);
631
+ --noctis-color-accent-muted: var(--noctis-engine-el-accent-muted);
632
+ --noctis-color-control: var(--noctis-engine-el-control-2);
633
+ --noctis-color-control-hover: var(--noctis-engine-el-control-2-hover);
634
+ --noctis-color-control-selected: var(--noctis-engine-el-control-2-selected);
635
+ --noctis-color-control-selected-hover: var(--noctis-engine-el-control-2-selected-hover);
636
+ --noctis-color-control-ghost: var(--noctis-engine-el-control-3);
637
+ --noctis-color-control-ghost-hover: var(--noctis-engine-el-control-3-hover);
638
+ --noctis-color-control-ghost-selected: var(--noctis-engine-el-control-3-selected);
639
+ --noctis-color-control-foreground: var(--noctis-engine-el-control-fg);
640
+ --noctis-color-field: var(--noctis-engine-el-bg-3);
641
+ --noctis-color-field-border: var(--noctis-engine-el-border-strong);
642
+ --noctis-color-sidebar-item: var(--noctis-engine-el-sidebar-item-bg);
643
+ --noctis-color-sidebar-item-active: var(--noctis-engine-el-sidebar-item-active);
644
+ --noctis-color-danger: var(--noctis-engine-el-danger);
645
+ --noctis-color-danger-foreground: var(--noctis-engine-el-danger-fg);
646
+ --noctis-color-danger-muted: var(--noctis-engine-el-danger-muted);
647
+ --noctis-color-danger-muted-foreground: var(--noctis-engine-el-danger-muted-fg);
648
+ --noctis-color-success: var(--noctis-engine-el-success);
649
+ --noctis-color-success-foreground: var(--noctis-engine-el-success-fg);
650
+ --noctis-color-success-muted: var(--noctis-engine-el-success-muted);
651
+ --noctis-color-success-muted-foreground: var(--noctis-engine-el-success-muted-fg);
652
+ --noctis-color-warning: var(--noctis-engine-el-warning);
653
+ --noctis-color-warning-foreground: var(--noctis-engine-el-warning-fg);
654
+ --noctis-color-warning-muted: var(--noctis-engine-el-warning-muted);
655
+ --noctis-color-warning-muted-foreground: var(--noctis-engine-el-warning-muted-fg);
656
+ --noctis-color-info: var(--noctis-engine-el-info);
657
+ --noctis-color-info-foreground: var(--noctis-engine-el-info-fg);
658
+ --noctis-color-info-muted: var(--noctis-engine-el-info-muted);
659
+ --noctis-color-info-muted-foreground: var(--noctis-engine-el-info-muted-fg);
660
+ --noctis-color-selection: var(--noctis-engine-el-selection-bg);
661
+ --noctis-color-secondary: var(--noctis-engine-el-fg-2);
662
+ --noctis-color-placeholder: var(--noctis-engine-el-fg-4);
663
+ --noctis-color-danger-hover: var(--noctis-engine-el-danger-hover);
664
+ --noctis-color-danger-faint: var(--noctis-engine-el-danger-tint);
665
+ --noctis-color-danger-border: var(--noctis-engine-el-danger-border);
666
+ --noctis-color-success-hover: var(--noctis-engine-el-success-hover);
667
+ --noctis-color-success-faint: var(--noctis-engine-el-success-tint);
668
+ --noctis-color-success-border: var(--noctis-engine-el-success-border);
669
+ --noctis-color-warning-hover: var(--noctis-engine-el-warning-hover);
670
+ --noctis-color-warning-faint: var(--noctis-engine-el-warning-tint);
671
+ --noctis-color-warning-border: var(--noctis-engine-el-warning-border);
672
+ --noctis-color-info-hover: var(--noctis-engine-el-info-hover);
673
+ --noctis-color-info-faint: var(--noctis-engine-el-info-tint);
674
+ --noctis-color-info-border: var(--noctis-engine-el-info-border);
675
+ --noctis-color-presence-online: var(--noctis-engine-el-success);
676
+ --noctis-color-presence-busy: var(--noctis-engine-el-danger);
677
+ --noctis-color-presence-focus: var(--noctis-engine-el-accent);
678
+ --noctis-color-presence-away: var(--noctis-engine-el-warning);
679
+ --noctis-color-presence-offline: var(--noctis-engine-el-fg-3);
680
+ --noctis-color-header: var(--noctis-engine-el-header-bg);
681
+ --noctis-color-scrollbar-thumb: var(--noctis-engine-el-scrollbar);
682
+ --noctis-color-scrollbar-track: var(--noctis-engine-el-bg-sunken);
683
+ --noctis-color-control-ghost-selected-hover: var(--noctis-engine-el-control-3-selected-hover);
684
+ --noctis-color-toggle-track-off: var(--noctis-engine-el-control-2);
685
+ --noctis-color-toggle-track-off-hover: var(--noctis-engine-el-control-2-hover);
686
+ --noctis-color-toggle-track-on: var(--noctis-engine-el-accent);
687
+ --noctis-color-toggle-track-on-hover: var(--noctis-engine-el-accent-hover);
688
+ --noctis-color-toggle-track-on-disabled: var(--noctis-engine-el-accent);
689
+ --noctis-color-toggle-thumb: var(--noctis-engine-el-fg-1);
690
+ --noctis-color-checkbox: var(--noctis-engine-el-input-bg);
691
+ --noctis-color-checkbox-checked: var(--noctis-engine-el-accent);
692
+ --noctis-color-checkbox-border: var(--noctis-engine-el-border-default);
693
+ --noctis-color-checkbox-border-hover: var(--noctis-engine-el-border-strong);
694
+ --noctis-color-checkbox-check: var(--noctis-engine-el-accent-fg);
695
+ --noctis-color-radio: var(--noctis-engine-el-input-bg);
696
+ --noctis-color-radio-checked: var(--noctis-engine-el-accent);
697
+ --noctis-color-radio-border: var(--noctis-engine-el-border-strong);
698
+ --noctis-color-field-hover: var(--noctis-engine-el-bg-4);
699
+ --noctis-color-field-focus: var(--noctis-engine-el-field-focus);
700
+ --noctis-color-field-border-hover: var(--noctis-engine-el-border-strong);
701
+ --noctis-color-field-border-focus: var(--noctis-engine-el-focus-ring);
702
+ --noctis-color-field-border-invalid: var(--noctis-engine-el-danger);
703
+ --noctis-color-code: var(--noctis-engine-el-bg-sunken);
704
+ --noctis-color-code-foreground: var(--noctis-engine-el-fg-2);
705
+ --noctis-color-kbd: var(--noctis-engine-el-control-2);
706
+ --noctis-color-kbd-foreground: var(--noctis-engine-el-fg-2);
707
+ --noctis-color-kbd-border: var(--noctis-engine-el-border-strong);
708
+ --noctis-color-menu-shortcut: var(--noctis-engine-el-fg-4);
709
+ --noctis-color-data-grid-header: var(--noctis-engine-el-bg-3);
710
+ --noctis-color-data-grid-row-hover: var(--noctis-engine-el-bg-2);
711
+ --noctis-color-data-grid-row-hover-strong: var(--noctis-engine-el-bg-4);
712
+ --noctis-color-data-grid-border: var(--noctis-engine-el-border-faint);
713
+ --noctis-color-data-grid-column-selected-border: var(--noctis-engine-el-accent);
714
+ --noctis-color-chart-positive: var(--noctis-engine-el-success);
715
+ --noctis-color-chart-negative: var(--noctis-engine-el-danger);
716
+ --noctis-color-chart-neutral: var(--noctis-engine-el-fg-3);
717
+ --noctis-color-chart-grid: var(--noctis-engine-el-border-faint);
718
+ --noctis-color-chart-axis: var(--noctis-engine-el-fg-4);
719
+ --noctis-color-chart-track: var(--noctis-engine-el-bg-sunken);
720
+ --noctis-color-chart-tooltip: var(--noctis-engine-el-bg-5);
721
+ --noctis-color-inverse: var(--noctis-engine-el-fg-1);
722
+ --noctis-color-inverse-foreground: var(--noctis-engine-el-bg-1);
723
+
724
+ --noctis-engine-bg-1: var(--noctis-engine-el-bg-1);
725
+ --noctis-engine-bg-2: var(--noctis-engine-el-bg-2);
726
+ --noctis-engine-bg-3: var(--noctis-engine-el-bg-3);
727
+ --noctis-engine-bg-4: var(--noctis-engine-el-bg-4);
728
+ --noctis-engine-bg-5: var(--noctis-engine-el-bg-5);
729
+ --noctis-engine-bg-6: var(--noctis-engine-el-bg-6);
730
+ --noctis-engine-bg-sunken: var(--noctis-engine-el-bg-sunken);
731
+ --noctis-engine-bg-selected: var(--noctis-engine-el-bg-selected);
732
+ --noctis-engine-bg-selected-hover: var(--noctis-engine-el-bg-selected-hover);
733
+ --noctis-engine-bg-focus: var(--noctis-engine-el-bg-focus);
734
+ --noctis-engine-fg-1: var(--noctis-engine-el-fg-1);
735
+ --noctis-engine-fg-2: var(--noctis-engine-el-fg-2);
736
+ --noctis-engine-fg-3: var(--noctis-engine-el-fg-3);
737
+ --noctis-engine-fg-4: var(--noctis-engine-el-fg-4);
738
+ --noctis-engine-link: var(--noctis-engine-el-link);
739
+ --noctis-engine-border-faint: var(--noctis-engine-el-border-faint);
740
+ --noctis-engine-border-default: var(--noctis-engine-el-border-default);
741
+ --noctis-engine-border-strong: var(--noctis-engine-el-border-strong);
742
+ --noctis-engine-border-faint-alpha: var(--noctis-engine-el-border-faint-alpha);
743
+ --noctis-engine-border-alpha: var(--noctis-engine-el-border-alpha);
744
+ --noctis-engine-border-strong-alpha: var(--noctis-engine-el-border-strong-alpha);
745
+ --noctis-engine-border-selected: var(--noctis-engine-el-border-selected);
746
+ --noctis-engine-divider: var(--noctis-engine-el-divider);
747
+ --noctis-engine-accent: var(--noctis-engine-el-accent);
748
+ --noctis-engine-accent-fg: var(--noctis-engine-el-accent-fg);
749
+ --noctis-engine-accent-hover: var(--noctis-engine-el-accent-hover);
750
+ --noctis-engine-accent-active: var(--noctis-engine-el-accent-active);
751
+ --noctis-engine-accent-muted: var(--noctis-engine-el-accent-muted);
752
+ --noctis-engine-primary-hover: var(--noctis-engine-el-primary-hover);
753
+ --noctis-engine-primary-active: var(--noctis-engine-el-primary-active);
754
+ --noctis-engine-control-2: var(--noctis-engine-el-control-2);
755
+ --noctis-engine-control-2-hover: var(--noctis-engine-el-control-2-hover);
756
+ --noctis-engine-control-2-selected: var(--noctis-engine-el-control-2-selected);
757
+ --noctis-engine-control-2-selected-hover: var(--noctis-engine-el-control-2-selected-hover);
758
+ --noctis-engine-control-3: var(--noctis-engine-el-control-3);
759
+ --noctis-engine-control-3-hover: var(--noctis-engine-el-control-3-hover);
760
+ --noctis-engine-control-3-selected: var(--noctis-engine-el-control-3-selected);
761
+ --noctis-engine-control-3-selected-hover: var(--noctis-engine-el-control-3-selected-hover);
762
+ --noctis-engine-control-fg: var(--noctis-engine-el-control-fg);
763
+ --noctis-engine-success: var(--noctis-engine-el-success);
764
+ --noctis-engine-success-hover: var(--noctis-engine-el-success-hover);
765
+ --noctis-engine-success-fg: var(--noctis-engine-el-success-fg);
766
+ --noctis-engine-success-muted: var(--noctis-engine-el-success-muted);
767
+ --noctis-engine-success-muted-fg: var(--noctis-engine-el-success-muted-fg);
768
+ --noctis-engine-success-border: var(--noctis-engine-el-success-border);
769
+ --noctis-engine-success-tint: var(--noctis-engine-el-success-tint);
770
+ --noctis-engine-warning: var(--noctis-engine-el-warning);
771
+ --noctis-engine-warning-hover: var(--noctis-engine-el-warning-hover);
772
+ --noctis-engine-warning-fg: var(--noctis-engine-el-warning-fg);
773
+ --noctis-engine-warning-muted: var(--noctis-engine-el-warning-muted);
774
+ --noctis-engine-warning-muted-fg: var(--noctis-engine-el-warning-muted-fg);
775
+ --noctis-engine-warning-border: var(--noctis-engine-el-warning-border);
776
+ --noctis-engine-warning-tint: var(--noctis-engine-el-warning-tint);
777
+ --noctis-engine-danger: var(--noctis-engine-el-danger);
778
+ --noctis-engine-danger-hover: var(--noctis-engine-el-danger-hover);
779
+ --noctis-engine-danger-fg: var(--noctis-engine-el-danger-fg);
780
+ --noctis-engine-danger-muted: var(--noctis-engine-el-danger-muted);
781
+ --noctis-engine-danger-muted-fg: var(--noctis-engine-el-danger-muted-fg);
782
+ --noctis-engine-danger-border: var(--noctis-engine-el-danger-border);
783
+ --noctis-engine-danger-tint: var(--noctis-engine-el-danger-tint);
784
+ --noctis-engine-info: var(--noctis-engine-el-info);
785
+ --noctis-engine-info-hover: var(--noctis-engine-el-info-hover);
786
+ --noctis-engine-info-fg: var(--noctis-engine-el-info-fg);
787
+ --noctis-engine-info-muted: var(--noctis-engine-el-info-muted);
788
+ --noctis-engine-info-muted-fg: var(--noctis-engine-el-info-muted-fg);
789
+ --noctis-engine-info-border: var(--noctis-engine-el-info-border);
790
+ --noctis-engine-info-tint: var(--noctis-engine-el-info-tint);
791
+ --noctis-engine-focus-ring: var(--noctis-engine-el-focus-ring);
792
+ --noctis-engine-selection-bg: var(--noctis-engine-el-selection-bg);
793
+ --noctis-engine-ai-selection-bg: var(--noctis-engine-el-ai-selection-bg);
794
+ --noctis-engine-overlay: var(--noctis-engine-el-overlay);
795
+ --noctis-engine-shadow-color: var(--noctis-engine-el-shadow-color);
796
+ --noctis-engine-scrollbar: var(--noctis-engine-el-scrollbar);
797
+ --noctis-engine-sidebar-item-bg: var(--noctis-engine-el-sidebar-item-bg);
798
+ --noctis-engine-sidebar-item-active: var(--noctis-engine-el-sidebar-item-active);
799
+ --noctis-engine-header-bg: var(--noctis-engine-el-header-bg);
800
+ --noctis-engine-shadow-border: var(--noctis-engine-el-shadow-border);
801
+ --noctis-engine-focus-shadow: var(--noctis-engine-el-focus-shadow);
802
+ --noctis-engine-input-bg: var(--noctis-engine-el-input-bg);
803
+ --noctis-engine-input-border: var(--noctis-engine-el-input-border);
804
+ --noctis-engine-field-hover: var(--noctis-engine-el-field-hover);
805
+ --noctis-engine-field-focus: var(--noctis-engine-el-field-focus);
806
+ }
807
+ [data-elevation="sunken"] {
808
+ /* Role re-points — the layer utilities actually read. Re-pointing the primitives below is
809
+ necessary (composites like shadows read them directly) but not sufficient: every `--noctis-color-*`
810
+ role is declared on `:root` and inherits its already-resolved value, so each must be
811
+ re-declared here against the `--noctis-engine-su-*` set for `bg-surface`/`bg-control`/… to re-skin. */
812
+ --noctis-color-background: var(--noctis-engine-su-bg-1);
813
+ --noctis-color-hover: var(--noctis-engine-su-bg-2);
814
+ --noctis-color-surface: var(--noctis-engine-su-bg-3);
815
+ --noctis-color-surface-hover: var(--noctis-engine-su-bg-4);
816
+ --noctis-color-surface-raised: var(--noctis-engine-su-bg-5);
817
+ --noctis-color-sunken: var(--noctis-engine-su-bg-sunken);
818
+ --noctis-color-selected: var(--noctis-engine-su-bg-selected);
819
+ --noctis-color-selected-hover: var(--noctis-engine-su-bg-selected-hover);
820
+ --noctis-color-focus: var(--noctis-engine-su-bg-focus);
821
+ --noctis-color-overlay: var(--noctis-engine-su-overlay);
822
+ --noctis-color-foreground: var(--noctis-engine-su-fg-1);
823
+ --noctis-color-muted: var(--noctis-engine-su-fg-3);
824
+ --noctis-color-subtle: var(--noctis-engine-su-fg-4);
825
+ --noctis-color-link: var(--noctis-engine-su-link);
826
+ --noctis-color-border-faint: var(--noctis-engine-su-border-faint);
827
+ --noctis-color-border: var(--noctis-engine-su-border-default);
828
+ --noctis-color-border-strong: var(--noctis-engine-su-border-strong);
829
+ --noctis-color-border-selected: var(--noctis-engine-su-border-selected);
830
+ --noctis-color-divider: var(--noctis-engine-su-divider);
831
+ --noctis-color-ring: var(--noctis-engine-su-focus-ring);
832
+ --noctis-color-primary: var(--noctis-engine-su-fg-1);
833
+ --noctis-color-primary-foreground: var(--noctis-engine-su-bg-1);
834
+ --noctis-color-primary-hover: var(--noctis-engine-su-primary-hover);
835
+ --noctis-color-primary-active: var(--noctis-engine-su-primary-active);
836
+ --noctis-color-accent: var(--noctis-engine-su-accent);
837
+ --noctis-color-accent-foreground: var(--noctis-engine-su-accent-fg);
838
+ --noctis-color-accent-hover: var(--noctis-engine-su-accent-hover);
839
+ --noctis-color-accent-active: var(--noctis-engine-su-accent-active);
840
+ --noctis-color-accent-muted: var(--noctis-engine-su-accent-muted);
841
+ --noctis-color-control: var(--noctis-engine-su-control-2);
842
+ --noctis-color-control-hover: var(--noctis-engine-su-control-2-hover);
843
+ --noctis-color-control-selected: var(--noctis-engine-su-control-2-selected);
844
+ --noctis-color-control-selected-hover: var(--noctis-engine-su-control-2-selected-hover);
845
+ --noctis-color-control-ghost: var(--noctis-engine-su-control-3);
846
+ --noctis-color-control-ghost-hover: var(--noctis-engine-su-control-3-hover);
847
+ --noctis-color-control-ghost-selected: var(--noctis-engine-su-control-3-selected);
848
+ --noctis-color-control-foreground: var(--noctis-engine-su-control-fg);
849
+ --noctis-color-field: var(--noctis-engine-su-bg-3);
850
+ --noctis-color-field-border: var(--noctis-engine-su-border-strong);
851
+ --noctis-color-sidebar-item: var(--noctis-engine-su-sidebar-item-bg);
852
+ --noctis-color-sidebar-item-active: var(--noctis-engine-su-sidebar-item-active);
853
+ --noctis-color-danger: var(--noctis-engine-su-danger);
854
+ --noctis-color-danger-foreground: var(--noctis-engine-su-danger-fg);
855
+ --noctis-color-danger-muted: var(--noctis-engine-su-danger-muted);
856
+ --noctis-color-danger-muted-foreground: var(--noctis-engine-su-danger-muted-fg);
857
+ --noctis-color-success: var(--noctis-engine-su-success);
858
+ --noctis-color-success-foreground: var(--noctis-engine-su-success-fg);
859
+ --noctis-color-success-muted: var(--noctis-engine-su-success-muted);
860
+ --noctis-color-success-muted-foreground: var(--noctis-engine-su-success-muted-fg);
861
+ --noctis-color-warning: var(--noctis-engine-su-warning);
862
+ --noctis-color-warning-foreground: var(--noctis-engine-su-warning-fg);
863
+ --noctis-color-warning-muted: var(--noctis-engine-su-warning-muted);
864
+ --noctis-color-warning-muted-foreground: var(--noctis-engine-su-warning-muted-fg);
865
+ --noctis-color-info: var(--noctis-engine-su-info);
866
+ --noctis-color-info-foreground: var(--noctis-engine-su-info-fg);
867
+ --noctis-color-info-muted: var(--noctis-engine-su-info-muted);
868
+ --noctis-color-info-muted-foreground: var(--noctis-engine-su-info-muted-fg);
869
+ --noctis-color-selection: var(--noctis-engine-su-selection-bg);
870
+ --noctis-color-secondary: var(--noctis-engine-su-fg-2);
871
+ --noctis-color-placeholder: var(--noctis-engine-su-fg-4);
872
+ --noctis-color-danger-hover: var(--noctis-engine-su-danger-hover);
873
+ --noctis-color-danger-faint: var(--noctis-engine-su-danger-tint);
874
+ --noctis-color-danger-border: var(--noctis-engine-su-danger-border);
875
+ --noctis-color-success-hover: var(--noctis-engine-su-success-hover);
876
+ --noctis-color-success-faint: var(--noctis-engine-su-success-tint);
877
+ --noctis-color-success-border: var(--noctis-engine-su-success-border);
878
+ --noctis-color-warning-hover: var(--noctis-engine-su-warning-hover);
879
+ --noctis-color-warning-faint: var(--noctis-engine-su-warning-tint);
880
+ --noctis-color-warning-border: var(--noctis-engine-su-warning-border);
881
+ --noctis-color-info-hover: var(--noctis-engine-su-info-hover);
882
+ --noctis-color-info-faint: var(--noctis-engine-su-info-tint);
883
+ --noctis-color-info-border: var(--noctis-engine-su-info-border);
884
+ --noctis-color-presence-online: var(--noctis-engine-su-success);
885
+ --noctis-color-presence-busy: var(--noctis-engine-su-danger);
886
+ --noctis-color-presence-focus: var(--noctis-engine-su-accent);
887
+ --noctis-color-presence-away: var(--noctis-engine-su-warning);
888
+ --noctis-color-presence-offline: var(--noctis-engine-su-fg-3);
889
+ --noctis-color-header: var(--noctis-engine-su-header-bg);
890
+ --noctis-color-scrollbar-thumb: var(--noctis-engine-su-scrollbar);
891
+ --noctis-color-scrollbar-track: var(--noctis-engine-su-bg-sunken);
892
+ --noctis-color-control-ghost-selected-hover: var(--noctis-engine-su-control-3-selected-hover);
893
+ --noctis-color-toggle-track-off: var(--noctis-engine-su-control-2);
894
+ --noctis-color-toggle-track-off-hover: var(--noctis-engine-su-control-2-hover);
895
+ --noctis-color-toggle-track-on: var(--noctis-engine-su-accent);
896
+ --noctis-color-toggle-track-on-hover: var(--noctis-engine-su-accent-hover);
897
+ --noctis-color-toggle-track-on-disabled: var(--noctis-engine-su-accent);
898
+ --noctis-color-toggle-thumb: var(--noctis-engine-su-fg-1);
899
+ --noctis-color-checkbox: var(--noctis-engine-su-input-bg);
900
+ --noctis-color-checkbox-checked: var(--noctis-engine-su-accent);
901
+ --noctis-color-checkbox-border: var(--noctis-engine-su-border-default);
902
+ --noctis-color-checkbox-border-hover: var(--noctis-engine-su-border-strong);
903
+ --noctis-color-checkbox-check: var(--noctis-engine-su-accent-fg);
904
+ --noctis-color-radio: var(--noctis-engine-su-input-bg);
905
+ --noctis-color-radio-checked: var(--noctis-engine-su-accent);
906
+ --noctis-color-radio-border: var(--noctis-engine-su-border-strong);
907
+ --noctis-color-field-hover: var(--noctis-engine-su-bg-4);
908
+ --noctis-color-field-focus: var(--noctis-engine-su-field-focus);
909
+ --noctis-color-field-border-hover: var(--noctis-engine-su-border-strong);
910
+ --noctis-color-field-border-focus: var(--noctis-engine-su-focus-ring);
911
+ --noctis-color-field-border-invalid: var(--noctis-engine-su-danger);
912
+ --noctis-color-code: var(--noctis-engine-su-bg-sunken);
913
+ --noctis-color-code-foreground: var(--noctis-engine-su-fg-2);
914
+ --noctis-color-kbd: var(--noctis-engine-su-control-2);
915
+ --noctis-color-kbd-foreground: var(--noctis-engine-su-fg-2);
916
+ --noctis-color-kbd-border: var(--noctis-engine-su-border-strong);
917
+ --noctis-color-menu-shortcut: var(--noctis-engine-su-fg-4);
918
+ --noctis-color-data-grid-header: var(--noctis-engine-su-bg-3);
919
+ --noctis-color-data-grid-row-hover: var(--noctis-engine-su-bg-2);
920
+ --noctis-color-data-grid-row-hover-strong: var(--noctis-engine-su-bg-4);
921
+ --noctis-color-data-grid-border: var(--noctis-engine-su-border-faint);
922
+ --noctis-color-data-grid-column-selected-border: var(--noctis-engine-su-accent);
923
+ --noctis-color-chart-positive: var(--noctis-engine-su-success);
924
+ --noctis-color-chart-negative: var(--noctis-engine-su-danger);
925
+ --noctis-color-chart-neutral: var(--noctis-engine-su-fg-3);
926
+ --noctis-color-chart-grid: var(--noctis-engine-su-border-faint);
927
+ --noctis-color-chart-axis: var(--noctis-engine-su-fg-4);
928
+ --noctis-color-chart-track: var(--noctis-engine-su-bg-sunken);
929
+ --noctis-color-chart-tooltip: var(--noctis-engine-su-bg-5);
930
+ --noctis-color-inverse: var(--noctis-engine-su-fg-1);
931
+ --noctis-color-inverse-foreground: var(--noctis-engine-su-bg-1);
932
+
933
+ --noctis-engine-bg-1: var(--noctis-engine-su-bg-1);
934
+ --noctis-engine-bg-2: var(--noctis-engine-su-bg-2);
935
+ --noctis-engine-bg-3: var(--noctis-engine-su-bg-3);
936
+ --noctis-engine-bg-4: var(--noctis-engine-su-bg-4);
937
+ --noctis-engine-bg-5: var(--noctis-engine-su-bg-5);
938
+ --noctis-engine-bg-6: var(--noctis-engine-su-bg-6);
939
+ --noctis-engine-bg-sunken: var(--noctis-engine-su-bg-sunken);
940
+ --noctis-engine-bg-selected: var(--noctis-engine-su-bg-selected);
941
+ --noctis-engine-bg-selected-hover: var(--noctis-engine-su-bg-selected-hover);
942
+ --noctis-engine-bg-focus: var(--noctis-engine-su-bg-focus);
943
+ --noctis-engine-fg-1: var(--noctis-engine-su-fg-1);
944
+ --noctis-engine-fg-2: var(--noctis-engine-su-fg-2);
945
+ --noctis-engine-fg-3: var(--noctis-engine-su-fg-3);
946
+ --noctis-engine-fg-4: var(--noctis-engine-su-fg-4);
947
+ --noctis-engine-link: var(--noctis-engine-su-link);
948
+ --noctis-engine-border-faint: var(--noctis-engine-su-border-faint);
949
+ --noctis-engine-border-default: var(--noctis-engine-su-border-default);
950
+ --noctis-engine-border-strong: var(--noctis-engine-su-border-strong);
951
+ --noctis-engine-border-faint-alpha: var(--noctis-engine-su-border-faint-alpha);
952
+ --noctis-engine-border-alpha: var(--noctis-engine-su-border-alpha);
953
+ --noctis-engine-border-strong-alpha: var(--noctis-engine-su-border-strong-alpha);
954
+ --noctis-engine-border-selected: var(--noctis-engine-su-border-selected);
955
+ --noctis-engine-divider: var(--noctis-engine-su-divider);
956
+ --noctis-engine-accent: var(--noctis-engine-su-accent);
957
+ --noctis-engine-accent-fg: var(--noctis-engine-su-accent-fg);
958
+ --noctis-engine-accent-hover: var(--noctis-engine-su-accent-hover);
959
+ --noctis-engine-accent-active: var(--noctis-engine-su-accent-active);
960
+ --noctis-engine-accent-muted: var(--noctis-engine-su-accent-muted);
961
+ --noctis-engine-primary-hover: var(--noctis-engine-su-primary-hover);
962
+ --noctis-engine-primary-active: var(--noctis-engine-su-primary-active);
963
+ --noctis-engine-control-2: var(--noctis-engine-su-control-2);
964
+ --noctis-engine-control-2-hover: var(--noctis-engine-su-control-2-hover);
965
+ --noctis-engine-control-2-selected: var(--noctis-engine-su-control-2-selected);
966
+ --noctis-engine-control-2-selected-hover: var(--noctis-engine-su-control-2-selected-hover);
967
+ --noctis-engine-control-3: var(--noctis-engine-su-control-3);
968
+ --noctis-engine-control-3-hover: var(--noctis-engine-su-control-3-hover);
969
+ --noctis-engine-control-3-selected: var(--noctis-engine-su-control-3-selected);
970
+ --noctis-engine-control-3-selected-hover: var(--noctis-engine-su-control-3-selected-hover);
971
+ --noctis-engine-control-fg: var(--noctis-engine-su-control-fg);
972
+ --noctis-engine-success: var(--noctis-engine-su-success);
973
+ --noctis-engine-success-hover: var(--noctis-engine-su-success-hover);
974
+ --noctis-engine-success-fg: var(--noctis-engine-su-success-fg);
975
+ --noctis-engine-success-muted: var(--noctis-engine-su-success-muted);
976
+ --noctis-engine-success-muted-fg: var(--noctis-engine-su-success-muted-fg);
977
+ --noctis-engine-success-border: var(--noctis-engine-su-success-border);
978
+ --noctis-engine-success-tint: var(--noctis-engine-su-success-tint);
979
+ --noctis-engine-warning: var(--noctis-engine-su-warning);
980
+ --noctis-engine-warning-hover: var(--noctis-engine-su-warning-hover);
981
+ --noctis-engine-warning-fg: var(--noctis-engine-su-warning-fg);
982
+ --noctis-engine-warning-muted: var(--noctis-engine-su-warning-muted);
983
+ --noctis-engine-warning-muted-fg: var(--noctis-engine-su-warning-muted-fg);
984
+ --noctis-engine-warning-border: var(--noctis-engine-su-warning-border);
985
+ --noctis-engine-warning-tint: var(--noctis-engine-su-warning-tint);
986
+ --noctis-engine-danger: var(--noctis-engine-su-danger);
987
+ --noctis-engine-danger-hover: var(--noctis-engine-su-danger-hover);
988
+ --noctis-engine-danger-fg: var(--noctis-engine-su-danger-fg);
989
+ --noctis-engine-danger-muted: var(--noctis-engine-su-danger-muted);
990
+ --noctis-engine-danger-muted-fg: var(--noctis-engine-su-danger-muted-fg);
991
+ --noctis-engine-danger-border: var(--noctis-engine-su-danger-border);
992
+ --noctis-engine-danger-tint: var(--noctis-engine-su-danger-tint);
993
+ --noctis-engine-info: var(--noctis-engine-su-info);
994
+ --noctis-engine-info-hover: var(--noctis-engine-su-info-hover);
995
+ --noctis-engine-info-fg: var(--noctis-engine-su-info-fg);
996
+ --noctis-engine-info-muted: var(--noctis-engine-su-info-muted);
997
+ --noctis-engine-info-muted-fg: var(--noctis-engine-su-info-muted-fg);
998
+ --noctis-engine-info-border: var(--noctis-engine-su-info-border);
999
+ --noctis-engine-info-tint: var(--noctis-engine-su-info-tint);
1000
+ --noctis-engine-focus-ring: var(--noctis-engine-su-focus-ring);
1001
+ --noctis-engine-selection-bg: var(--noctis-engine-su-selection-bg);
1002
+ --noctis-engine-ai-selection-bg: var(--noctis-engine-su-ai-selection-bg);
1003
+ --noctis-engine-overlay: var(--noctis-engine-su-overlay);
1004
+ --noctis-engine-shadow-color: var(--noctis-engine-su-shadow-color);
1005
+ --noctis-engine-scrollbar: var(--noctis-engine-su-scrollbar);
1006
+ --noctis-engine-sidebar-item-bg: var(--noctis-engine-su-sidebar-item-bg);
1007
+ --noctis-engine-sidebar-item-active: var(--noctis-engine-su-sidebar-item-active);
1008
+ --noctis-engine-header-bg: var(--noctis-engine-su-header-bg);
1009
+ --noctis-engine-shadow-border: var(--noctis-engine-su-shadow-border);
1010
+ --noctis-engine-focus-shadow: var(--noctis-engine-su-focus-shadow);
1011
+ --noctis-engine-input-bg: var(--noctis-engine-su-input-bg);
1012
+ --noctis-engine-input-border: var(--noctis-engine-su-input-border);
1013
+ --noctis-engine-field-hover: var(--noctis-engine-su-field-hover);
1014
+ --noctis-engine-field-focus: var(--noctis-engine-su-field-focus);
1015
+ }
1016
+ [data-elevation="menu"] {
1017
+ /* Role re-points — the layer utilities actually read. Re-pointing the primitives below is
1018
+ necessary (composites like shadows read them directly) but not sufficient: every `--noctis-color-*`
1019
+ role is declared on `:root` and inherits its already-resolved value, so each must be
1020
+ re-declared here against the `--noctis-engine-mn-*` set for `bg-surface`/`bg-control`/… to re-skin. */
1021
+ --noctis-color-background: var(--noctis-engine-mn-bg-1);
1022
+ --noctis-color-hover: var(--noctis-engine-mn-bg-2);
1023
+ --noctis-color-surface: var(--noctis-engine-mn-bg-3);
1024
+ --noctis-color-surface-hover: var(--noctis-engine-mn-bg-4);
1025
+ --noctis-color-surface-raised: var(--noctis-engine-mn-bg-5);
1026
+ --noctis-color-sunken: var(--noctis-engine-mn-bg-sunken);
1027
+ --noctis-color-selected: var(--noctis-engine-mn-bg-selected);
1028
+ --noctis-color-selected-hover: var(--noctis-engine-mn-bg-selected-hover);
1029
+ --noctis-color-focus: var(--noctis-engine-mn-bg-focus);
1030
+ --noctis-color-overlay: var(--noctis-engine-mn-overlay);
1031
+ --noctis-color-foreground: var(--noctis-engine-mn-fg-1);
1032
+ --noctis-color-muted: var(--noctis-engine-mn-fg-3);
1033
+ --noctis-color-subtle: var(--noctis-engine-mn-fg-4);
1034
+ --noctis-color-link: var(--noctis-engine-mn-link);
1035
+ --noctis-color-border-faint: var(--noctis-engine-mn-border-faint);
1036
+ --noctis-color-border: var(--noctis-engine-mn-border-default);
1037
+ --noctis-color-border-strong: var(--noctis-engine-mn-border-strong);
1038
+ --noctis-color-border-selected: var(--noctis-engine-mn-border-selected);
1039
+ --noctis-color-divider: var(--noctis-engine-mn-divider);
1040
+ --noctis-color-ring: var(--noctis-engine-mn-focus-ring);
1041
+ --noctis-color-primary: var(--noctis-engine-mn-fg-1);
1042
+ --noctis-color-primary-foreground: var(--noctis-engine-mn-bg-1);
1043
+ --noctis-color-primary-hover: var(--noctis-engine-mn-primary-hover);
1044
+ --noctis-color-primary-active: var(--noctis-engine-mn-primary-active);
1045
+ --noctis-color-accent: var(--noctis-engine-mn-accent);
1046
+ --noctis-color-accent-foreground: var(--noctis-engine-mn-accent-fg);
1047
+ --noctis-color-accent-hover: var(--noctis-engine-mn-accent-hover);
1048
+ --noctis-color-accent-active: var(--noctis-engine-mn-accent-active);
1049
+ --noctis-color-accent-muted: var(--noctis-engine-mn-accent-muted);
1050
+ --noctis-color-control: var(--noctis-engine-mn-control-2);
1051
+ --noctis-color-control-hover: var(--noctis-engine-mn-control-2-hover);
1052
+ --noctis-color-control-selected: var(--noctis-engine-mn-control-2-selected);
1053
+ --noctis-color-control-selected-hover: var(--noctis-engine-mn-control-2-selected-hover);
1054
+ --noctis-color-control-ghost: var(--noctis-engine-mn-control-3);
1055
+ --noctis-color-control-ghost-hover: var(--noctis-engine-mn-control-3-hover);
1056
+ --noctis-color-control-ghost-selected: var(--noctis-engine-mn-control-3-selected);
1057
+ --noctis-color-control-foreground: var(--noctis-engine-mn-control-fg);
1058
+ --noctis-color-field: var(--noctis-engine-mn-bg-3);
1059
+ --noctis-color-field-border: var(--noctis-engine-mn-border-strong);
1060
+ --noctis-color-sidebar-item: var(--noctis-engine-mn-sidebar-item-bg);
1061
+ --noctis-color-sidebar-item-active: var(--noctis-engine-mn-sidebar-item-active);
1062
+ --noctis-color-danger: var(--noctis-engine-mn-danger);
1063
+ --noctis-color-danger-foreground: var(--noctis-engine-mn-danger-fg);
1064
+ --noctis-color-danger-muted: var(--noctis-engine-mn-danger-muted);
1065
+ --noctis-color-danger-muted-foreground: var(--noctis-engine-mn-danger-muted-fg);
1066
+ --noctis-color-success: var(--noctis-engine-mn-success);
1067
+ --noctis-color-success-foreground: var(--noctis-engine-mn-success-fg);
1068
+ --noctis-color-success-muted: var(--noctis-engine-mn-success-muted);
1069
+ --noctis-color-success-muted-foreground: var(--noctis-engine-mn-success-muted-fg);
1070
+ --noctis-color-warning: var(--noctis-engine-mn-warning);
1071
+ --noctis-color-warning-foreground: var(--noctis-engine-mn-warning-fg);
1072
+ --noctis-color-warning-muted: var(--noctis-engine-mn-warning-muted);
1073
+ --noctis-color-warning-muted-foreground: var(--noctis-engine-mn-warning-muted-fg);
1074
+ --noctis-color-info: var(--noctis-engine-mn-info);
1075
+ --noctis-color-info-foreground: var(--noctis-engine-mn-info-fg);
1076
+ --noctis-color-info-muted: var(--noctis-engine-mn-info-muted);
1077
+ --noctis-color-info-muted-foreground: var(--noctis-engine-mn-info-muted-fg);
1078
+ --noctis-color-selection: var(--noctis-engine-mn-selection-bg);
1079
+ --noctis-color-secondary: var(--noctis-engine-mn-fg-2);
1080
+ --noctis-color-placeholder: var(--noctis-engine-mn-fg-4);
1081
+ --noctis-color-danger-hover: var(--noctis-engine-mn-danger-hover);
1082
+ --noctis-color-danger-faint: var(--noctis-engine-mn-danger-tint);
1083
+ --noctis-color-danger-border: var(--noctis-engine-mn-danger-border);
1084
+ --noctis-color-success-hover: var(--noctis-engine-mn-success-hover);
1085
+ --noctis-color-success-faint: var(--noctis-engine-mn-success-tint);
1086
+ --noctis-color-success-border: var(--noctis-engine-mn-success-border);
1087
+ --noctis-color-warning-hover: var(--noctis-engine-mn-warning-hover);
1088
+ --noctis-color-warning-faint: var(--noctis-engine-mn-warning-tint);
1089
+ --noctis-color-warning-border: var(--noctis-engine-mn-warning-border);
1090
+ --noctis-color-info-hover: var(--noctis-engine-mn-info-hover);
1091
+ --noctis-color-info-faint: var(--noctis-engine-mn-info-tint);
1092
+ --noctis-color-info-border: var(--noctis-engine-mn-info-border);
1093
+ --noctis-color-presence-online: var(--noctis-engine-mn-success);
1094
+ --noctis-color-presence-busy: var(--noctis-engine-mn-danger);
1095
+ --noctis-color-presence-focus: var(--noctis-engine-mn-accent);
1096
+ --noctis-color-presence-away: var(--noctis-engine-mn-warning);
1097
+ --noctis-color-presence-offline: var(--noctis-engine-mn-fg-3);
1098
+ --noctis-color-header: var(--noctis-engine-mn-header-bg);
1099
+ --noctis-color-scrollbar-thumb: var(--noctis-engine-mn-scrollbar);
1100
+ --noctis-color-scrollbar-track: var(--noctis-engine-mn-bg-sunken);
1101
+ --noctis-color-control-ghost-selected-hover: var(--noctis-engine-mn-control-3-selected-hover);
1102
+ --noctis-color-toggle-track-off: var(--noctis-engine-mn-control-2);
1103
+ --noctis-color-toggle-track-off-hover: var(--noctis-engine-mn-control-2-hover);
1104
+ --noctis-color-toggle-track-on: var(--noctis-engine-mn-accent);
1105
+ --noctis-color-toggle-track-on-hover: var(--noctis-engine-mn-accent-hover);
1106
+ --noctis-color-toggle-track-on-disabled: var(--noctis-engine-mn-accent);
1107
+ --noctis-color-toggle-thumb: var(--noctis-engine-mn-fg-1);
1108
+ --noctis-color-checkbox: var(--noctis-engine-mn-input-bg);
1109
+ --noctis-color-checkbox-checked: var(--noctis-engine-mn-accent);
1110
+ --noctis-color-checkbox-border: var(--noctis-engine-mn-border-default);
1111
+ --noctis-color-checkbox-border-hover: var(--noctis-engine-mn-border-strong);
1112
+ --noctis-color-checkbox-check: var(--noctis-engine-mn-accent-fg);
1113
+ --noctis-color-radio: var(--noctis-engine-mn-input-bg);
1114
+ --noctis-color-radio-checked: var(--noctis-engine-mn-accent);
1115
+ --noctis-color-radio-border: var(--noctis-engine-mn-border-strong);
1116
+ --noctis-color-field-hover: var(--noctis-engine-mn-bg-4);
1117
+ --noctis-color-field-focus: var(--noctis-engine-mn-field-focus);
1118
+ --noctis-color-field-border-hover: var(--noctis-engine-mn-border-strong);
1119
+ --noctis-color-field-border-focus: var(--noctis-engine-mn-focus-ring);
1120
+ --noctis-color-field-border-invalid: var(--noctis-engine-mn-danger);
1121
+ --noctis-color-code: var(--noctis-engine-mn-bg-sunken);
1122
+ --noctis-color-code-foreground: var(--noctis-engine-mn-fg-2);
1123
+ --noctis-color-kbd: var(--noctis-engine-mn-control-2);
1124
+ --noctis-color-kbd-foreground: var(--noctis-engine-mn-fg-2);
1125
+ --noctis-color-kbd-border: var(--noctis-engine-mn-border-strong);
1126
+ --noctis-color-menu-shortcut: var(--noctis-engine-mn-fg-4);
1127
+ --noctis-color-data-grid-header: var(--noctis-engine-mn-bg-3);
1128
+ --noctis-color-data-grid-row-hover: var(--noctis-engine-mn-bg-2);
1129
+ --noctis-color-data-grid-row-hover-strong: var(--noctis-engine-mn-bg-4);
1130
+ --noctis-color-data-grid-border: var(--noctis-engine-mn-border-faint);
1131
+ --noctis-color-data-grid-column-selected-border: var(--noctis-engine-mn-accent);
1132
+ --noctis-color-chart-positive: var(--noctis-engine-mn-success);
1133
+ --noctis-color-chart-negative: var(--noctis-engine-mn-danger);
1134
+ --noctis-color-chart-neutral: var(--noctis-engine-mn-fg-3);
1135
+ --noctis-color-chart-grid: var(--noctis-engine-mn-border-faint);
1136
+ --noctis-color-chart-axis: var(--noctis-engine-mn-fg-4);
1137
+ --noctis-color-chart-track: var(--noctis-engine-mn-bg-sunken);
1138
+ --noctis-color-chart-tooltip: var(--noctis-engine-mn-bg-5);
1139
+ --noctis-color-inverse: var(--noctis-engine-mn-fg-1);
1140
+ --noctis-color-inverse-foreground: var(--noctis-engine-mn-bg-1);
1141
+
1142
+ --noctis-engine-bg-1: var(--noctis-engine-mn-bg-1);
1143
+ --noctis-engine-bg-2: var(--noctis-engine-mn-bg-2);
1144
+ --noctis-engine-bg-3: var(--noctis-engine-mn-bg-3);
1145
+ --noctis-engine-bg-4: var(--noctis-engine-mn-bg-4);
1146
+ --noctis-engine-bg-5: var(--noctis-engine-mn-bg-5);
1147
+ --noctis-engine-bg-6: var(--noctis-engine-mn-bg-6);
1148
+ --noctis-engine-bg-sunken: var(--noctis-engine-mn-bg-sunken);
1149
+ --noctis-engine-bg-selected: var(--noctis-engine-mn-bg-selected);
1150
+ --noctis-engine-bg-selected-hover: var(--noctis-engine-mn-bg-selected-hover);
1151
+ --noctis-engine-bg-focus: var(--noctis-engine-mn-bg-focus);
1152
+ --noctis-engine-fg-1: var(--noctis-engine-mn-fg-1);
1153
+ --noctis-engine-fg-2: var(--noctis-engine-mn-fg-2);
1154
+ --noctis-engine-fg-3: var(--noctis-engine-mn-fg-3);
1155
+ --noctis-engine-fg-4: var(--noctis-engine-mn-fg-4);
1156
+ --noctis-engine-link: var(--noctis-engine-mn-link);
1157
+ --noctis-engine-border-faint: var(--noctis-engine-mn-border-faint);
1158
+ --noctis-engine-border-default: var(--noctis-engine-mn-border-default);
1159
+ --noctis-engine-border-strong: var(--noctis-engine-mn-border-strong);
1160
+ --noctis-engine-border-faint-alpha: var(--noctis-engine-mn-border-faint-alpha);
1161
+ --noctis-engine-border-alpha: var(--noctis-engine-mn-border-alpha);
1162
+ --noctis-engine-border-strong-alpha: var(--noctis-engine-mn-border-strong-alpha);
1163
+ --noctis-engine-border-selected: var(--noctis-engine-mn-border-selected);
1164
+ --noctis-engine-divider: var(--noctis-engine-mn-divider);
1165
+ --noctis-engine-accent: var(--noctis-engine-mn-accent);
1166
+ --noctis-engine-accent-fg: var(--noctis-engine-mn-accent-fg);
1167
+ --noctis-engine-accent-hover: var(--noctis-engine-mn-accent-hover);
1168
+ --noctis-engine-accent-active: var(--noctis-engine-mn-accent-active);
1169
+ --noctis-engine-accent-muted: var(--noctis-engine-mn-accent-muted);
1170
+ --noctis-engine-primary-hover: var(--noctis-engine-mn-primary-hover);
1171
+ --noctis-engine-primary-active: var(--noctis-engine-mn-primary-active);
1172
+ --noctis-engine-control-2: var(--noctis-engine-mn-control-2);
1173
+ --noctis-engine-control-2-hover: var(--noctis-engine-mn-control-2-hover);
1174
+ --noctis-engine-control-2-selected: var(--noctis-engine-mn-control-2-selected);
1175
+ --noctis-engine-control-2-selected-hover: var(--noctis-engine-mn-control-2-selected-hover);
1176
+ --noctis-engine-control-3: var(--noctis-engine-mn-control-3);
1177
+ --noctis-engine-control-3-hover: var(--noctis-engine-mn-control-3-hover);
1178
+ --noctis-engine-control-3-selected: var(--noctis-engine-mn-control-3-selected);
1179
+ --noctis-engine-control-3-selected-hover: var(--noctis-engine-mn-control-3-selected-hover);
1180
+ --noctis-engine-control-fg: var(--noctis-engine-mn-control-fg);
1181
+ --noctis-engine-success: var(--noctis-engine-mn-success);
1182
+ --noctis-engine-success-hover: var(--noctis-engine-mn-success-hover);
1183
+ --noctis-engine-success-fg: var(--noctis-engine-mn-success-fg);
1184
+ --noctis-engine-success-muted: var(--noctis-engine-mn-success-muted);
1185
+ --noctis-engine-success-muted-fg: var(--noctis-engine-mn-success-muted-fg);
1186
+ --noctis-engine-success-border: var(--noctis-engine-mn-success-border);
1187
+ --noctis-engine-success-tint: var(--noctis-engine-mn-success-tint);
1188
+ --noctis-engine-warning: var(--noctis-engine-mn-warning);
1189
+ --noctis-engine-warning-hover: var(--noctis-engine-mn-warning-hover);
1190
+ --noctis-engine-warning-fg: var(--noctis-engine-mn-warning-fg);
1191
+ --noctis-engine-warning-muted: var(--noctis-engine-mn-warning-muted);
1192
+ --noctis-engine-warning-muted-fg: var(--noctis-engine-mn-warning-muted-fg);
1193
+ --noctis-engine-warning-border: var(--noctis-engine-mn-warning-border);
1194
+ --noctis-engine-warning-tint: var(--noctis-engine-mn-warning-tint);
1195
+ --noctis-engine-danger: var(--noctis-engine-mn-danger);
1196
+ --noctis-engine-danger-hover: var(--noctis-engine-mn-danger-hover);
1197
+ --noctis-engine-danger-fg: var(--noctis-engine-mn-danger-fg);
1198
+ --noctis-engine-danger-muted: var(--noctis-engine-mn-danger-muted);
1199
+ --noctis-engine-danger-muted-fg: var(--noctis-engine-mn-danger-muted-fg);
1200
+ --noctis-engine-danger-border: var(--noctis-engine-mn-danger-border);
1201
+ --noctis-engine-danger-tint: var(--noctis-engine-mn-danger-tint);
1202
+ --noctis-engine-info: var(--noctis-engine-mn-info);
1203
+ --noctis-engine-info-hover: var(--noctis-engine-mn-info-hover);
1204
+ --noctis-engine-info-fg: var(--noctis-engine-mn-info-fg);
1205
+ --noctis-engine-info-muted: var(--noctis-engine-mn-info-muted);
1206
+ --noctis-engine-info-muted-fg: var(--noctis-engine-mn-info-muted-fg);
1207
+ --noctis-engine-info-border: var(--noctis-engine-mn-info-border);
1208
+ --noctis-engine-info-tint: var(--noctis-engine-mn-info-tint);
1209
+ --noctis-engine-focus-ring: var(--noctis-engine-mn-focus-ring);
1210
+ --noctis-engine-selection-bg: var(--noctis-engine-mn-selection-bg);
1211
+ --noctis-engine-ai-selection-bg: var(--noctis-engine-mn-ai-selection-bg);
1212
+ --noctis-engine-overlay: var(--noctis-engine-mn-overlay);
1213
+ --noctis-engine-shadow-color: var(--noctis-engine-mn-shadow-color);
1214
+ --noctis-engine-scrollbar: var(--noctis-engine-mn-scrollbar);
1215
+ --noctis-engine-sidebar-item-bg: var(--noctis-engine-mn-sidebar-item-bg);
1216
+ --noctis-engine-sidebar-item-active: var(--noctis-engine-mn-sidebar-item-active);
1217
+ --noctis-engine-header-bg: var(--noctis-engine-mn-header-bg);
1218
+ --noctis-engine-shadow-border: var(--noctis-engine-mn-shadow-border);
1219
+ --noctis-engine-focus-shadow: var(--noctis-engine-mn-focus-shadow);
1220
+ --noctis-engine-input-bg: var(--noctis-engine-mn-input-bg);
1221
+ --noctis-engine-input-border: var(--noctis-engine-mn-input-border);
1222
+ --noctis-engine-field-hover: var(--noctis-engine-mn-field-hover);
1223
+ --noctis-engine-field-focus: var(--noctis-engine-mn-field-focus);
1224
+ }
1225
+
1226
+ /* ── Component token tier (T2) ───────────────────────────────────────────────────────────
1227
+ * Generated from the component declarations. Each minted token's chain is declared on its slot,
1228
+ * so it re-resolves inside elevation/radius scopes; portable components wrap the slot in `:where()`
1229
+ * to keep specificity at zero, while migrated single-anchor components emit plain selectors and lean
1230
+ * on the var fallback chain plus the layer's whole-layer override seam. See
1231
+ * `scripts/components-css.ts` for the invariants.
1232
+ */
1233
+ @layer noctis.components {
1234
+ [data-slot="noctis-autocomplete-input"] {
1235
+ --_autocomplete-input-height: var(--noctis-autocomplete-input-height, var(--noctis-size-control-md));
1236
+ --_autocomplete-input-padding-inline: var(--noctis-autocomplete-input-padding-inline, 0.75rem);
1237
+ --_autocomplete-input-shadow: var(--noctis-autocomplete-input-shadow, var(--noctis-shadow-inset));
1238
+ --_autocomplete-input-border-radius: var(--noctis-autocomplete-input-border-radius, var(--noctis-radius-control));
1239
+ }
1240
+ [data-slot="noctis-autocomplete-list"] {
1241
+ --_autocomplete-list-padding: var(--noctis-autocomplete-list-padding, 0.25rem);
1242
+ }
1243
+ [data-slot="noctis-autocomplete-item"] {
1244
+ --_autocomplete-item-height: var(--noctis-autocomplete-item-height, 2rem);
1245
+ --_autocomplete-item-padding-inline: var(--noctis-autocomplete-item-padding-inline, 0.625rem);
1246
+ --_autocomplete-item-gap: var(--noctis-autocomplete-item-gap, 0.5rem);
1247
+ --_autocomplete-item-padding-block: var(--noctis-autocomplete-item-padding-block, 0.25rem);
1248
+ --_autocomplete-item-border-radius: var(--noctis-autocomplete-item-border-radius, var(--noctis-radius-sm));
1249
+ --_autocomplete-item-color: var(--noctis-autocomplete-item-color, var(--noctis-color-secondary));
1250
+ --_autocomplete-item-color-highlighted: var(--noctis-autocomplete-item-color-highlighted, var(--noctis-color-foreground));
1251
+ --_autocomplete-item-background-color-highlighted: var(
1252
+ --noctis-autocomplete-item-background-color-highlighted,
1253
+ var(--noctis-color-control-ghost-hover)
1254
+ );
1255
+ --_autocomplete-item-background-color-active: var(
1256
+ --noctis-autocomplete-item-background-color-active,
1257
+ var(--noctis-color-control-ghost-selected)
1258
+ );
1259
+ }
1260
+ [data-slot="noctis-autocomplete-empty"] {
1261
+ --_autocomplete-empty-padding-block: var(--noctis-autocomplete-empty-padding-block, var(--noctis-space-6));
1262
+ }
1263
+ [data-slot="noctis-autocomplete-group-label"] {
1264
+ --_autocomplete-group-label-padding-inline: var(
1265
+ --noctis-autocomplete-group-label-padding-inline,
1266
+ var(--noctis-space-2\.5)
1267
+ );
1268
+ --_autocomplete-group-label-padding-inline-start: var(--noctis-autocomplete-group-label-padding-inline-start, 0.625rem);
1269
+ }
1270
+ [data-slot="noctis-autocomplete-input"][data-size="lg"] {
1271
+ --_autocomplete-input-height: var(--noctis-autocomplete-input-height, var(--noctis-size-control-lg));
1272
+ --_autocomplete-input-padding-inline: var(--noctis-autocomplete-input-padding-inline, 0.875rem);
1273
+ }
1274
+ [data-slot="noctis-field"] {
1275
+ --_field-gap: var(--noctis-field-gap, var(--noctis-space-1\.5));
1276
+ }
1277
+ [data-slot="noctis-field-label"] {
1278
+ --_field-label-font-size: var(--noctis-field-label-font-size, var(--noctis-text-small));
1279
+ --_field-label-color: var(--noctis-field-label-color, var(--noctis-color-foreground));
1280
+ }
1281
+ [data-slot="noctis-field-description"] {
1282
+ --_field-description-font-size: var(--noctis-field-description-font-size, var(--noctis-text-small));
1283
+ --_field-description-color: var(--noctis-field-description-color, var(--noctis-color-muted));
1284
+ }
1285
+ [data-slot="noctis-field-error"] {
1286
+ --_field-error-font-size: var(--noctis-field-error-font-size, var(--noctis-text-small));
1287
+ --_field-error-color: var(--noctis-field-error-color, var(--noctis-color-danger));
1288
+ }
1289
+ [data-slot="noctis-field-fieldset"] {
1290
+ --_field-fieldset-gap: var(--noctis-field-fieldset-gap, var(--noctis-space-4));
1291
+ }
1292
+ [data-slot="noctis-field-fieldset-legend"] {
1293
+ --_field-fieldset-legend-font-size: var(--noctis-field-fieldset-legend-font-size, var(--noctis-text-regular));
1294
+ }
1295
+ [data-slot="noctis-field-form"] {
1296
+ --_field-form-gap: var(--noctis-field-form-gap, var(--noctis-space-5));
1297
+ }
1298
+ [data-slot="noctis-field-action"] {
1299
+ --_field-action-size: var(--noctis-field-action-size, var(--noctis-space-6));
1300
+ --_field-action-color: var(--noctis-field-action-color, var(--noctis-color-placeholder));
1301
+ --_field-action-color-hover: var(--noctis-field-action-color-hover, var(--noctis-color-foreground));
1302
+ --_field-action-background-color-hover: var(
1303
+ --noctis-field-action-background-color-hover,
1304
+ var(--noctis-color-control-ghost-hover)
1305
+ );
1306
+ }
1307
+ [data-slot="noctis-field-count"] {
1308
+ --_field-count-color: var(--noctis-field-count-color, var(--noctis-color-muted));
1309
+ --_field-count-color-warning: var(--noctis-field-count-color-warning, var(--noctis-color-warning));
1310
+ }
1311
+ [data-slot="noctis-textarea"] {
1312
+ --_textarea-padding-inline: var(--noctis-textarea-padding-inline, var(--noctis-space-3));
1313
+ --_textarea-padding-block: var(--noctis-textarea-padding-block, var(--noctis-space-2));
1314
+ --_textarea-font-size: var(--noctis-textarea-font-size, var(--noctis-text-small));
1315
+ --_textarea-gap: var(--noctis-textarea-gap, var(--noctis-space-2));
1316
+ --_textarea-border-radius: var(--noctis-textarea-border-radius, var(--noctis-radius-lg));
1317
+ --_textarea-transition-duration: var(--noctis-textarea-transition-duration, var(--noctis-duration-quick));
1318
+ --_textarea-shadow: var(--noctis-textarea-shadow, var(--noctis-shadow-inset));
1319
+ --_textarea-icon-size: var(--noctis-textarea-icon-size, var(--noctis-space-4));
1320
+ --_textarea-min-block-size: var(--noctis-textarea-min-block-size, 4.5rem);
1321
+ --_textarea-max-block-size: var(--noctis-textarea-max-block-size, 18rem);
1322
+ }
1323
+ [data-slot="noctis-textarea-toolbar"] {
1324
+ --_textarea-toolbar-gap: var(--noctis-textarea-toolbar-gap, var(--noctis-space-1));
1325
+ --_textarea-toolbar-border-color: var(--noctis-textarea-toolbar-border-color, var(--noctis-color-field-border));
1326
+ --_textarea-toolbar-padding-block: var(--noctis-textarea-toolbar-padding-block, var(--noctis-space-2));
1327
+ }
1328
+ [data-slot="noctis-textarea"][data-size="lg"] {
1329
+ --_textarea-padding-inline: var(--noctis-textarea-padding-inline, var(--noctis-space-4));
1330
+ --_textarea-padding-block: var(--noctis-textarea-padding-block, var(--noctis-space-3));
1331
+ --_textarea-font-size: var(--noctis-textarea-font-size, var(--noctis-text-regular));
1332
+ --_textarea-icon-size: var(--noctis-textarea-icon-size, var(--noctis-space-5));
1333
+ }
1334
+ [data-slot="noctis-kbd-key"] {
1335
+ --_kbd-key-font-size: var(--noctis-kbd-key-font-size, 0.8125em);
1336
+ --_kbd-key-height: var(--noctis-kbd-key-height, 1.5em);
1337
+ --_kbd-key-padding-inline: var(--noctis-kbd-key-padding-inline, 0.4em);
1338
+ --_kbd-key-border-radius: var(--noctis-kbd-key-border-radius, 0.3em);
1339
+ --_kbd-key-shadow: var(
1340
+ --noctis-kbd-key-shadow,
1341
+ inset 0 0.07em 0 0 oklch(from var(--noctis-color-kbd) calc(l + 0.05) c h),
1342
+ inset 0 -0.09em 0 0 oklch(from var(--noctis-color-kbd) calc(l - 0.08) c h),
1343
+ 0 0.1em 0.12em -0.04em oklch(from var(--noctis-engine-shadow-color) l c h / 0.2)
1344
+ );
1345
+ }
1346
+ [data-slot="noctis-kbd"] {
1347
+ --_kbd-gap: var(--noctis-kbd-gap, 0.5em);
1348
+ }
1349
+ [data-slot="noctis-kbd-chord"] {
1350
+ --_kbd-chord-gap: var(--noctis-kbd-chord-gap, 0.125em);
1351
+ }
1352
+ [data-slot="noctis-meter"] {
1353
+ --_meter-root-gap: var(--noctis-meter-root-gap, var(--noctis-space-2));
1354
+ }
1355
+ [data-slot="noctis-meter-track"] {
1356
+ --_meter-track-block-size: var(--noctis-meter-track-block-size, 0.5rem);
1357
+ --_meter-track-border-radius: var(--noctis-meter-track-border-radius, var(--noctis-radius-control));
1358
+ --_meter-track-background-color: var(--noctis-meter-track-background-color, var(--noctis-color-well));
1359
+ --_meter-track-threshold-marker-color: var(
1360
+ --noctis-meter-track-threshold-marker-color,
1361
+ color-mix(in oklch, var(--noctis-color-foreground) 30%, transparent)
1362
+ );
1363
+ --_meter-track-threshold-marker-inline-size: var(--noctis-meter-track-threshold-marker-inline-size, 1px);
1364
+ }
1365
+ [data-slot="noctis-meter-indicator"] {
1366
+ --_meter-indicator-background-color: var(--noctis-meter-indicator-background-color, var(--noctis-color-foreground));
1367
+ --_meter-indicator-border-radius: var(--noctis-meter-indicator-border-radius, var(--noctis-radius-control));
1368
+ --_meter-indicator-transition-duration: var(--noctis-meter-indicator-transition-duration, var(--noctis-duration-regular));
1369
+ }
1370
+ [data-slot="noctis-meter-label"] {
1371
+ --_meter-label-color: var(--noctis-meter-label-color, var(--noctis-color-foreground));
1372
+ --_meter-label-font-size: var(--noctis-meter-label-font-size, var(--noctis-text-small));
1373
+ }
1374
+ [data-slot="noctis-meter-value"] {
1375
+ --_meter-value-color: var(--noctis-meter-value-color, var(--noctis-color-muted));
1376
+ --_meter-value-font-size: var(--noctis-meter-value-font-size, var(--noctis-text-small));
1377
+ }
1378
+ [data-slot="noctis-meter"][data-tone="success"] [data-slot="noctis-meter-indicator"] {
1379
+ --_meter-indicator-background-color: var(--noctis-meter-indicator-background-color, var(--noctis-color-success));
1380
+ }
1381
+ [data-slot="noctis-meter"][data-tone="warning"] [data-slot="noctis-meter-indicator"] {
1382
+ --_meter-indicator-background-color: var(--noctis-meter-indicator-background-color, var(--noctis-color-warning));
1383
+ }
1384
+ [data-slot="noctis-meter"][data-tone="danger"] [data-slot="noctis-meter-indicator"] {
1385
+ --_meter-indicator-background-color: var(--noctis-meter-indicator-background-color, var(--noctis-color-danger));
1386
+ }
1387
+ [data-slot="noctis-meter"][data-size="sm"] [data-slot="noctis-meter-track"] {
1388
+ --_meter-track-block-size: var(--noctis-meter-track-block-size, 0.25rem);
1389
+ }
1390
+ [data-slot="noctis-inline-code"] {
1391
+ --_inline-code-font-size: var(--noctis-inline-code-font-size, 0.9em);
1392
+ --_inline-code-padding-inline: var(--noctis-inline-code-padding-inline, 0.4em);
1393
+ --_inline-code-padding-block: var(--noctis-inline-code-padding-block, 0.12em);
1394
+ --_inline-code-border-radius: var(--noctis-inline-code-border-radius, 0.35em);
1395
+ --_inline-code-color: var(--noctis-inline-code-color, var(--noctis-color-code-foreground));
1396
+ }
1397
+ [data-slot="noctis-input"] {
1398
+ --_input-height: var(--noctis-input-height, var(--noctis-size-control-md));
1399
+ --_input-padding-inline: var(--noctis-input-padding-inline, var(--noctis-space-3));
1400
+ --_input-font-size: var(--noctis-input-font-size, var(--noctis-text-small));
1401
+ --_input-gap: var(--noctis-input-gap, var(--noctis-space-2));
1402
+ --_input-border-radius: var(--noctis-input-border-radius, var(--noctis-radius-control));
1403
+ --_input-transition-duration: var(--noctis-input-transition-duration, var(--noctis-duration-quick));
1404
+ --_input-shadow: var(--noctis-input-shadow, var(--noctis-shadow-inset));
1405
+ --_input-icon-size: var(--noctis-input-icon-size, var(--noctis-space-4));
1406
+ }
1407
+ [data-slot="noctis-input-adornment"] {
1408
+ --_input-adornment-color: var(--noctis-input-adornment-color, var(--noctis-color-placeholder));
1409
+ --_input-adornment-padding-inline: var(--noctis-input-adornment-padding-inline, var(--noctis-space-2));
1410
+ --_input-adornment-segment-background-color: var(
1411
+ --noctis-input-adornment-segment-background-color,
1412
+ var(--noctis-color-field-hover)
1413
+ );
1414
+ --_input-adornment-segment-border-color: var(
1415
+ --noctis-input-adornment-segment-border-color,
1416
+ var(--noctis-color-field-border)
1417
+ );
1418
+ }
1419
+ [data-slot="noctis-input"][data-size="lg"] {
1420
+ --_input-height: var(--noctis-input-height, var(--noctis-size-control-lg));
1421
+ --_input-padding-inline: var(--noctis-input-padding-inline, var(--noctis-space-4));
1422
+ --_input-font-size: var(--noctis-input-font-size, var(--noctis-text-regular));
1423
+ --_input-icon-size: var(--noctis-input-icon-size, var(--noctis-space-5));
1424
+ }
1425
+ [data-slot="noctis-table"] {
1426
+ --_table-border-radius: var(--noctis-table-border-radius, var(--noctis-radius-lg));
1427
+ }
1428
+ [data-slot="noctis-table-head"],
1429
+ [data-slot="noctis-table-cell"] {
1430
+ --_table-cell-padding-inline: var(--noctis-table-cell-padding-inline, 1rem);
1431
+ --_table-cell-padding-block: var(--noctis-table-cell-padding-block, 0.625rem);
1432
+ --_table-cell-color: var(--noctis-table-cell-color, var(--noctis-color-muted));
1433
+ }
1434
+ [data-slot="noctis-table-header"] {
1435
+ --_table-header-background-color: var(--noctis-table-header-background-color, var(--noctis-color-surface));
1436
+ }
1437
+ [data-slot="noctis-code-block"] {
1438
+ --_code-block-border-radius: var(--noctis-code-block-border-radius, var(--noctis-radius-lg));
1439
+ --_code-block-body-padding-block: var(--noctis-code-block-body-padding-block, var(--noctis-space-4));
1440
+ --_code-block-body-padding-inline: var(--noctis-code-block-body-padding-inline, var(--noctis-space-4));
1441
+ --_code-block-body-font-size: var(--noctis-code-block-body-font-size, var(--noctis-text-small));
1442
+ --_code-block-body-line-height: var(--noctis-code-block-body-line-height, 1.55);
1443
+ }
1444
+ [data-slot="noctis-code-block-header"] {
1445
+ --_code-block-header-height: var(--noctis-code-block-header-height, var(--noctis-size-control-md));
1446
+ --_code-block-header-gap: var(--noctis-code-block-header-gap, var(--noctis-space-2));
1447
+ --_code-block-header-padding-inline-start: var(--noctis-code-block-header-padding-inline-start, var(--noctis-space-3));
1448
+ --_code-block-header-padding-inline-end: var(--noctis-code-block-header-padding-inline-end, var(--noctis-space-1\.5));
1449
+ }
1450
+ [data-slot="noctis-code-block-manager-glyph"] {
1451
+ --_code-block-manager-glyph-size: var(--noctis-code-block-manager-glyph-size, var(--noctis-space-3\.5));
1452
+ }
1453
+ [data-slot="noctis-code-tabs"] {
1454
+ --_code-tabs-border-radius: var(--noctis-code-tabs-border-radius, var(--noctis-radius-lg));
1455
+ --_code-tabs-tab-height: var(--noctis-code-tabs-tab-height, var(--noctis-size-control-sm));
1456
+ --_code-tabs-tab-padding-inline: var(--noctis-code-tabs-tab-padding-inline, 0.625rem);
1457
+ --_code-tabs-tab-border-radius: var(--noctis-code-tabs-tab-border-radius, var(--noctis-radius-md));
1458
+ --_code-tabs-strip-padding: var(--noctis-code-tabs-strip-padding, 0.375rem);
1459
+ --_code-tabs-strip-gap: var(--noctis-code-tabs-strip-gap, var(--noctis-space-2));
1460
+ --_code-tabs-list-gap: var(--noctis-code-tabs-list-gap, var(--noctis-space-1));
1461
+ --_code-tabs-tab-gap: var(--noctis-code-tabs-tab-gap, var(--noctis-space-1\.5));
1462
+ }
1463
+ [data-slot="noctis-code-copy"] {
1464
+ --_code-copy-size: var(--noctis-code-copy-size, var(--noctis-size-control-sm));
1465
+ --_code-copy-glyph-size: var(--noctis-code-copy-glyph-size, var(--noctis-space-3\.5));
1466
+ }
1467
+ [data-slot="noctis-menu-content"] {
1468
+ --_menu-content-min-width: var(--noctis-menu-content-min-width, 11rem);
1469
+ }
1470
+ [data-slot="noctis-menu-viewport"] {
1471
+ --_menu-viewport-padding: var(--noctis-menu-viewport-padding, 0.25rem);
1472
+ }
1473
+ [data-slot="noctis-menu-item"],
1474
+ [data-slot="noctis-menu-link-item"],
1475
+ [data-slot="noctis-menu-checkbox-item"],
1476
+ [data-slot="noctis-menu-radio-item"],
1477
+ [data-slot="noctis-menu-submenu-trigger"] {
1478
+ --_menu-item-height: var(--noctis-menu-item-height, 2rem);
1479
+ --_menu-item-padding-inline: var(--noctis-menu-item-padding-inline, 0.625rem);
1480
+ --_menu-item-gap: var(--noctis-menu-item-gap, 0.625rem);
1481
+ --_menu-item-border-radius: var(--noctis-menu-item-border-radius, var(--noctis-radius-sm));
1482
+ --_menu-item-color: var(--noctis-menu-item-color, var(--noctis-color-secondary));
1483
+ --_menu-item-color-highlighted: var(--noctis-menu-item-color-highlighted, var(--noctis-color-foreground));
1484
+ --_menu-item-background-color-highlighted: var(
1485
+ --noctis-menu-item-background-color-highlighted,
1486
+ var(--noctis-color-control-ghost-hover)
1487
+ );
1488
+ --_menu-item-indicator-size: var(--noctis-menu-item-indicator-size, 0.875rem);
1489
+ --_menu-item-padding-block: var(--noctis-menu-item-padding-block, var(--noctis-space-1\.5));
1490
+ }
1491
+ [data-slot="noctis-menu-radio-dot"] {
1492
+ --_menu-radio-dot-size: var(--noctis-menu-radio-dot-size, var(--noctis-space-1\.5));
1493
+ }
1494
+ [data-slot="noctis-menu-group-label"] {
1495
+ --_menu-group-label-padding-inline: var(--noctis-menu-group-label-padding-inline, var(--noctis-space-2\.5));
1496
+ --_menu-group-label-padding-block-start: var(--noctis-menu-group-label-padding-block-start, var(--noctis-space-1\.5));
1497
+ --_menu-group-label-padding-block-end: var(--noctis-menu-group-label-padding-block-end, var(--noctis-space-1));
1498
+ }
1499
+ [data-slot="noctis-menu-shortcut"] {
1500
+ --_menu-shortcut-padding-inline-start: var(--noctis-menu-shortcut-padding-inline-start, var(--noctis-space-4));
1501
+ }
1502
+ [data-slot="noctis-menu-separator"] {
1503
+ --_menu-separator-thickness: var(--noctis-menu-separator-thickness, var(--noctis-space-px));
1504
+ }
1505
+ [data-slot="noctis-menu-item"][data-variant="danger"] {
1506
+ --_menu-item-color: var(--noctis-menu-item-color, var(--noctis-color-danger));
1507
+ --_menu-item-color-highlighted: var(--noctis-menu-item-color-highlighted, var(--noctis-color-danger));
1508
+ --_menu-item-background-color-highlighted: var(
1509
+ --noctis-menu-item-background-color-highlighted,
1510
+ var(--noctis-color-danger-muted)
1511
+ );
1512
+ }
1513
+ [data-slot="noctis-menubar"] {
1514
+ --_menubar-root-gap: var(--noctis-menubar-root-gap, var(--noctis-space-1));
1515
+ --_menubar-root-padding: var(--noctis-menubar-root-padding, var(--noctis-space-1));
1516
+ }
1517
+ [data-slot="noctis-menubar-trigger"] {
1518
+ --_menubar-trigger-height: var(--noctis-menubar-trigger-height, var(--noctis-size-control-xs));
1519
+ --_menubar-trigger-padding-inline: var(--noctis-menubar-trigger-padding-inline, var(--noctis-space-1\.5));
1520
+ --_menubar-trigger-gap: var(--noctis-menubar-trigger-gap, var(--noctis-space-1));
1521
+ --_menubar-trigger-font-size: var(--noctis-menubar-trigger-font-size, var(--noctis-text-mini));
1522
+ --_menubar-trigger-border-radius: var(--noctis-menubar-trigger-border-radius, var(--noctis-radius-control));
1523
+ --_menubar-trigger-color: var(--noctis-menubar-trigger-color, var(--noctis-color-foreground));
1524
+ --_menubar-trigger-color-highlighted: var(--noctis-menubar-trigger-color-highlighted, var(--noctis-color-foreground));
1525
+ --_menubar-trigger-background-color-highlighted: var(
1526
+ --noctis-menubar-trigger-background-color-highlighted,
1527
+ var(--noctis-color-control-ghost-hover)
1528
+ );
1529
+ }
1530
+ [data-slot="noctis-menubar"][data-size="md"] [data-slot="noctis-menubar-trigger"] {
1531
+ --_menubar-trigger-height: var(--noctis-menubar-trigger-height, var(--noctis-size-control-sm));
1532
+ --_menubar-trigger-padding-inline: var(--noctis-menubar-trigger-padding-inline, var(--noctis-space-2));
1533
+ --_menubar-trigger-font-size: var(--noctis-menubar-trigger-font-size, var(--noctis-text-mini));
1534
+ }
1535
+ [data-slot="noctis-menubar"][data-size="lg"] [data-slot="noctis-menubar-trigger"] {
1536
+ --_menubar-trigger-height: var(--noctis-menubar-trigger-height, var(--noctis-size-control-md));
1537
+ --_menubar-trigger-padding-inline: var(--noctis-menubar-trigger-padding-inline, var(--noctis-space-3));
1538
+ --_menubar-trigger-gap: var(--noctis-menubar-trigger-gap, var(--noctis-space-1\.5));
1539
+ --_menubar-trigger-font-size: var(--noctis-menubar-trigger-font-size, var(--noctis-text-small));
1540
+ }
1541
+ [data-slot="noctis-preview-card-popup"] {
1542
+ --_preview-card-popup-min-width: var(--noctis-preview-card-popup-min-width, 14rem);
1543
+ --_preview-card-popup-max-width: var(--noctis-preview-card-popup-max-width, 20rem);
1544
+ --_preview-card-popup-padding: var(--noctis-preview-card-popup-padding, var(--noctis-space-4));
1545
+ --_preview-card-popup-border-radius: var(--noctis-preview-card-popup-border-radius, var(--noctis-radius-md));
1546
+ --_preview-card-popup-gap: var(--noctis-preview-card-popup-gap, var(--noctis-space-2));
1547
+ --_preview-card-popup-font-size: var(--noctis-preview-card-popup-font-size, var(--noctis-text-small));
1548
+ --_preview-card-popup-color: var(--noctis-preview-card-popup-color, var(--noctis-color-secondary));
1549
+ }
1550
+ [data-slot="noctis-preview-card-trigger"] {
1551
+ --_preview-card-trigger-color: var(--noctis-preview-card-trigger-color, var(--noctis-color-accent));
1552
+ --_preview-card-trigger-underline-offset: var(--noctis-preview-card-trigger-underline-offset, var(--noctis-space-1));
1553
+ --_preview-card-trigger-ring-color: var(--noctis-preview-card-trigger-ring-color, var(--noctis-color-ring));
1554
+ }
1555
+ [data-slot="noctis-preview-card-media"] {
1556
+ --_preview-card-media-aspect-ratio: var(--noctis-preview-card-media-aspect-ratio, 16 / 9);
1557
+ --_preview-card-media-border-radius: var(--noctis-preview-card-media-border-radius, var(--noctis-radius-sm));
1558
+ }
1559
+ [data-slot="noctis-preview-card-title"] {
1560
+ --_preview-card-title-color: var(--noctis-preview-card-title-color, var(--noctis-color-foreground));
1561
+ --_preview-card-title-font-weight: var(--noctis-preview-card-title-font-weight, var(--noctis-font-weight-medium));
1562
+ --_preview-card-title-line-height: var(--noctis-preview-card-title-line-height, var(--noctis-leading-small));
1563
+ }
1564
+ [data-slot="noctis-preview-card-description"] {
1565
+ --_preview-card-description-line-height: var(--noctis-preview-card-description-line-height, var(--noctis-leading-small));
1566
+ }
1567
+ [data-slot="noctis-preview-card-meta"] {
1568
+ --_preview-card-meta-color: var(--noctis-preview-card-meta-color, var(--noctis-color-subtle));
1569
+ --_preview-card-meta-gap: var(--noctis-preview-card-meta-gap, var(--noctis-space-4));
1570
+ }
1571
+ [data-slot="noctis-preview-card-popup"][data-density="compact"] {
1572
+ --_preview-card-popup-padding: var(--noctis-preview-card-popup-padding, var(--noctis-space-3));
1573
+ --_preview-card-popup-gap: var(--noctis-preview-card-popup-gap, var(--noctis-space-1\.5));
1574
+ }
1575
+ [data-slot="noctis-popover-popup"] {
1576
+ --_popover-popup-min-width: var(--noctis-popover-popup-min-width, 12rem);
1577
+ --_popover-popup-max-width: var(--noctis-popover-popup-max-width, min(24rem, var(--available-width)));
1578
+ --_popover-popup-padding: var(--noctis-popover-popup-padding, var(--noctis-space-4));
1579
+ --_popover-popup-gap: var(--noctis-popover-popup-gap, var(--noctis-space-2));
1580
+ }
1581
+ [data-slot="noctis-popover-title"] {
1582
+ --_popover-title-font-size: var(--noctis-popover-title-font-size, var(--noctis-text-regular));
1583
+ --_popover-title-line-height: var(--noctis-popover-title-line-height, var(--noctis-leading-small));
1584
+ --_popover-title-font-weight: var(--noctis-popover-title-font-weight, var(--noctis-font-weight-medium));
1585
+ --_popover-title-color: var(--noctis-popover-title-color, var(--noctis-color-foreground));
1586
+ }
1587
+ [data-slot="noctis-popover-description"] {
1588
+ --_popover-description-font-size: var(--noctis-popover-description-font-size, var(--noctis-text-small));
1589
+ --_popover-description-line-height: var(--noctis-popover-description-line-height, var(--noctis-leading-small));
1590
+ --_popover-description-color: var(--noctis-popover-description-color, var(--noctis-color-muted));
1591
+ }
1592
+ [data-slot="noctis-tooltip-popup"] {
1593
+ --_tooltip-popup-padding-inline: var(--noctis-tooltip-popup-padding-inline, var(--noctis-space-2));
1594
+ --_tooltip-popup-padding-block: var(--noctis-tooltip-popup-padding-block, var(--noctis-space-1));
1595
+ --_tooltip-popup-max-inline-size: var(--noctis-tooltip-popup-max-inline-size, 18rem);
1596
+ --_tooltip-popup-font-size: var(--noctis-tooltip-popup-font-size, var(--noctis-text-small));
1597
+ --_tooltip-popup-border-radius: var(--noctis-tooltip-popup-border-radius, var(--noctis-radius-sm));
1598
+ }
1599
+ [data-slot="noctis-context-menu-content"] {
1600
+ --_context-menu-content-min-width: var(--noctis-context-menu-content-min-width, 11rem);
1601
+ }
1602
+ [data-slot="noctis-context-menu-viewport"] {
1603
+ --_context-menu-viewport-padding: var(--noctis-context-menu-viewport-padding, 0.25rem);
1604
+ }
1605
+ [data-slot="noctis-context-menu-trigger"] {
1606
+ --_context-menu-trigger-background-color-active: var(
1607
+ --noctis-context-menu-trigger-background-color-active,
1608
+ var(--noctis-color-control-ghost)
1609
+ );
1610
+ --_context-menu-trigger-background-color-open: var(--noctis-context-menu-trigger-background-color-open, transparent);
1611
+ }
1612
+ [data-button] {
1613
+ --_button-height: var(--noctis-button-height, var(--noctis-size-control-md));
1614
+ --_button-padding-inline: var(--noctis-button-padding-inline, 0.75rem);
1615
+ --_button-gap: var(--noctis-button-gap, 0.375rem);
1616
+ --_button-icon-size: var(--noctis-button-icon-size, var(--noctis-space-4));
1617
+ --_button-border-radius: var(--noctis-button-border-radius, var(--noctis-radius-control));
1618
+ --_button-font-size: var(--noctis-button-font-size, var(--noctis-text-small));
1619
+ --_button-transition-duration: var(--noctis-button-transition-duration, var(--noctis-duration-quick));
1620
+ }
1621
+ [data-button][data-size="xs"] {
1622
+ --_button-height: var(--noctis-button-height, var(--noctis-size-control-xs));
1623
+ --_button-padding-inline: var(--noctis-button-padding-inline, 0.375rem);
1624
+ --_button-gap: var(--noctis-button-gap, 0.25rem);
1625
+ --_button-icon-size: var(--noctis-button-icon-size, var(--noctis-space-3));
1626
+ --_button-font-size: var(--noctis-button-font-size, var(--noctis-text-mini));
1627
+ }
1628
+ [data-button][data-size="sm"] {
1629
+ --_button-height: var(--noctis-button-height, var(--noctis-size-control-sm));
1630
+ --_button-padding-inline: var(--noctis-button-padding-inline, 0.5rem);
1631
+ --_button-gap: var(--noctis-button-gap, 0.25rem);
1632
+ --_button-icon-size: var(--noctis-button-icon-size, var(--noctis-space-3\.5));
1633
+ --_button-font-size: var(--noctis-button-font-size, var(--noctis-text-mini));
1634
+ }
1635
+ [data-button][data-size="lg"] {
1636
+ --_button-height: var(--noctis-button-height, var(--noctis-size-control-lg));
1637
+ --_button-padding-inline: var(--noctis-button-padding-inline, 1rem);
1638
+ --_button-gap: var(--noctis-button-gap, 0.5rem);
1639
+ --_button-font-size: var(--noctis-button-font-size, var(--noctis-text-regular));
1640
+ }
1641
+ [data-slot="noctis-button-group"] {
1642
+ --_button-group-seam-width: var(--noctis-button-group-seam-width, 1px);
1643
+ --_button-group-seam-color: var(--noctis-button-group-seam-color, var(--noctis-color-border-strong));
1644
+ }
1645
+ [data-slot="noctis-tabs"] {
1646
+ --_tabs-root-gap: var(--noctis-tabs-root-gap, var(--noctis-space-3));
1647
+ }
1648
+ [data-slot="noctis-tabs-tab"] {
1649
+ --_tabs-tab-height: var(--noctis-tabs-tab-height, var(--noctis-size-control-md));
1650
+ --_tabs-tab-padding-inline: var(--noctis-tabs-tab-padding-inline, 0.75rem);
1651
+ --_tabs-tab-gap: var(--noctis-tabs-tab-gap, 0.5rem);
1652
+ --_tabs-tab-font-size: var(--noctis-tabs-tab-font-size, var(--noctis-text-small));
1653
+ --_tabs-tab-border-radius: var(--noctis-tabs-tab-border-radius, var(--noctis-radius-control));
1654
+ }
1655
+ [data-slot="noctis-tabs-list"] {
1656
+ --_tabs-list-gap: var(--noctis-tabs-list-gap, 0.25rem);
1657
+ --_tabs-list-border-radius: var(--noctis-tabs-list-border-radius, var(--noctis-radius-control));
1658
+ --_tabs-list-padding: var(--noctis-tabs-list-padding, 0.25rem);
1659
+ }
1660
+ [data-slot="noctis-tabs-indicator"] {
1661
+ --_tabs-indicator-border-radius: var(--noctis-tabs-indicator-border-radius, var(--noctis-radius-control));
1662
+ --_tabs-indicator-height: var(--noctis-tabs-indicator-height, 0.125rem);
1663
+ --_tabs-indicator-background-color: var(--noctis-tabs-indicator-background-color, var(--noctis-color-foreground));
1664
+ --_tabs-indicator-transition-duration: var(--noctis-tabs-indicator-transition-duration, var(--noctis-duration-regular));
1665
+ }
1666
+ [data-slot="noctis-tabs"][data-variant="pill"] [data-slot="noctis-tabs-indicator"] {
1667
+ --_tabs-indicator-background-color: var(--noctis-tabs-indicator-background-color, var(--noctis-color-control-selected));
1668
+ }
1669
+ [data-slot="noctis-tabs"][data-variant="segmented"] [data-slot="noctis-tabs-indicator"] {
1670
+ --_tabs-indicator-background-color: var(--noctis-tabs-indicator-background-color, var(--noctis-color-primary));
1671
+ }
1672
+ [data-slot="noctis-tabs"][data-size="sm"] [data-slot="noctis-tabs-tab"] {
1673
+ --_tabs-tab-height: var(--noctis-tabs-tab-height, var(--noctis-size-control-sm));
1674
+ --_tabs-tab-padding-inline: var(--noctis-tabs-tab-padding-inline, 0.625rem);
1675
+ --_tabs-tab-gap: var(--noctis-tabs-tab-gap, 0.375rem);
1676
+ --_tabs-tab-font-size: var(--noctis-tabs-tab-font-size, var(--noctis-text-mini));
1677
+ }
1678
+ [data-slot="noctis-tabs"][data-size="sm"] [data-slot="noctis-tabs-list"] {
1679
+ --_tabs-list-padding: var(--noctis-tabs-list-padding, 0.125rem);
1680
+ }
1681
+ [data-slot="noctis-toolbar"] {
1682
+ --_toolbar-gap: var(--noctis-toolbar-gap, var(--noctis-space-1));
1683
+ --_toolbar-padding: var(--noctis-toolbar-padding, var(--noctis-space-1));
1684
+ --_toolbar-border-radius: var(--noctis-toolbar-border-radius, var(--noctis-radius-md));
1685
+ --_toolbar-item-radius: var(--noctis-toolbar-item-radius, var(--noctis-radius-sm));
1686
+ }
1687
+ [data-slot="noctis-toolbar-group"] {
1688
+ --_toolbar-group-gap: var(--noctis-toolbar-group-gap, 0);
1689
+ }
1690
+ [data-slot="noctis-toolbar-separator"] {
1691
+ --_toolbar-separator-color: var(--noctis-toolbar-separator-color, var(--noctis-color-border));
1692
+ --_toolbar-separator-width: var(--noctis-toolbar-separator-width, 1px);
1693
+ --_toolbar-separator-margin-inline: var(--noctis-toolbar-separator-margin-inline, var(--noctis-space-1));
1694
+ }
1695
+ [data-slot="noctis-toolbar-input"] {
1696
+ --_toolbar-input-height: var(--noctis-toolbar-input-height, var(--noctis-size-control-sm));
1697
+ --_toolbar-input-padding-inline: var(--noctis-toolbar-input-padding-inline, var(--noctis-space-2));
1698
+ --_toolbar-input-width: var(--noctis-toolbar-input-width, 5rem);
1699
+ }
1700
+ [data-slot="noctis-toolbar"][data-size="sm"] [data-slot="noctis-toolbar-input"] {
1701
+ --_toolbar-input-height: var(--noctis-toolbar-input-height, var(--noctis-size-control-xs));
1702
+ --_toolbar-input-padding-inline: var(--noctis-toolbar-input-padding-inline, var(--noctis-space-1\.5));
1703
+ }
1704
+ [data-slot="noctis-accordion-trigger"] {
1705
+ --_accordion-trigger-padding-inline: var(--noctis-accordion-trigger-padding-inline, 0);
1706
+ --_accordion-trigger-padding-block: var(--noctis-accordion-trigger-padding-block, var(--noctis-space-4));
1707
+ --_accordion-trigger-gap: var(--noctis-accordion-trigger-gap, var(--noctis-space-2));
1708
+ --_accordion-trigger-font-size: var(--noctis-accordion-trigger-font-size, var(--noctis-text-small));
1709
+ --_accordion-trigger-font-weight: var(--noctis-accordion-trigger-font-weight, var(--noctis-font-weight-medium));
1710
+ }
1711
+ [data-slot="noctis-accordion-trigger-icon"] {
1712
+ --_accordion-trigger-icon-size: var(--noctis-accordion-trigger-icon-size, var(--noctis-space-4));
1713
+ }
1714
+ [data-slot="noctis-accordion-item"] {
1715
+ --_accordion-item-border-color: var(--noctis-accordion-item-border-color, var(--noctis-color-border));
1716
+ }
1717
+ [data-slot="noctis-accordion-panel-content"] {
1718
+ --_accordion-panel-content-padding-inline: var(--noctis-accordion-panel-content-padding-inline, 0);
1719
+ --_accordion-panel-content-padding-block: var(--noctis-accordion-panel-content-padding-block, var(--noctis-space-4));
1720
+ --_accordion-panel-content-font-size: var(--noctis-accordion-panel-content-font-size, var(--noctis-text-small));
1721
+ --_accordion-panel-content-transition-duration: var(
1722
+ --noctis-accordion-panel-content-transition-duration,
1723
+ var(--noctis-duration-quick)
1724
+ );
1725
+ }
1726
+ [data-slot="noctis-accordion-panel"] {
1727
+ --_accordion-panel-block-size: var(--noctis-accordion-panel-block-size, var(--accordion-panel-height));
1728
+ --_accordion-panel-transition-duration: var(--noctis-accordion-panel-transition-duration, var(--noctis-duration-regular));
1729
+ }
1730
+ [data-slot="noctis-accordion"][data-size="sm"] [data-slot="noctis-accordion-trigger"] {
1731
+ --_accordion-trigger-padding-block: var(--noctis-accordion-trigger-padding-block, var(--noctis-space-3));
1732
+ --_accordion-trigger-font-size: var(--noctis-accordion-trigger-font-size, var(--noctis-text-mini));
1733
+ }
1734
+ [data-slot="noctis-accordion"][data-size="sm"] [data-slot="noctis-accordion-trigger-icon"] {
1735
+ --_accordion-trigger-icon-size: var(--noctis-accordion-trigger-icon-size, var(--noctis-space-3\.5));
1736
+ }
1737
+ [data-slot="noctis-accordion"][data-size="sm"] [data-slot="noctis-accordion-panel-content"] {
1738
+ --_accordion-panel-content-padding-block: var(--noctis-accordion-panel-content-padding-block, var(--noctis-space-3));
1739
+ --_accordion-panel-content-font-size: var(--noctis-accordion-panel-content-font-size, var(--noctis-text-mini));
1740
+ }
1741
+ [data-slot="noctis-toggle"] {
1742
+ --_toggle-height: var(--noctis-toggle-height, var(--noctis-size-control-md));
1743
+ --_toggle-padding-inline: var(--noctis-toggle-padding-inline, 0.625rem);
1744
+ --_toggle-gap: var(--noctis-toggle-gap, 0.375rem);
1745
+ --_toggle-border-radius: var(--noctis-toggle-border-radius, var(--noctis-radius-control));
1746
+ --_toggle-icon-size: var(--noctis-toggle-icon-size, var(--noctis-space-4));
1747
+ --_toggle-font-size: var(--noctis-toggle-font-size, var(--noctis-text-small));
1748
+ --_toggle-transition-duration: var(--noctis-toggle-transition-duration, var(--noctis-duration-quick));
1749
+ }
1750
+ [data-slot="noctis-toggle-group"] {
1751
+ --_toggle-group-gap: var(--noctis-toggle-group-gap, var(--noctis-space-1));
1752
+ }
1753
+ [data-slot="noctis-toggle"][data-size="xs"] {
1754
+ --_toggle-height: var(--noctis-toggle-height, var(--noctis-size-control-xs));
1755
+ --_toggle-padding-inline: var(--noctis-toggle-padding-inline, 0.375rem);
1756
+ --_toggle-gap: var(--noctis-toggle-gap, 0.1875rem);
1757
+ --_toggle-icon-size: var(--noctis-toggle-icon-size, var(--noctis-space-3));
1758
+ --_toggle-font-size: var(--noctis-toggle-font-size, var(--noctis-text-mini));
1759
+ }
1760
+ [data-slot="noctis-toggle"][data-size="sm"] {
1761
+ --_toggle-height: var(--noctis-toggle-height, var(--noctis-size-control-sm));
1762
+ --_toggle-padding-inline: var(--noctis-toggle-padding-inline, 0.5rem);
1763
+ --_toggle-gap: var(--noctis-toggle-gap, 0.25rem);
1764
+ --_toggle-icon-size: var(--noctis-toggle-icon-size, var(--noctis-space-3\.5));
1765
+ --_toggle-font-size: var(--noctis-toggle-font-size, var(--noctis-text-mini));
1766
+ }
1767
+ [data-slot="noctis-toggle"][data-size="lg"] {
1768
+ --_toggle-height: var(--noctis-toggle-height, var(--noctis-size-control-lg));
1769
+ --_toggle-padding-inline: var(--noctis-toggle-padding-inline, 0.875rem);
1770
+ --_toggle-gap: var(--noctis-toggle-gap, 0.5rem);
1771
+ --_toggle-font-size: var(--noctis-toggle-font-size, var(--noctis-text-regular));
1772
+ }
1773
+ [data-slot="noctis-number-field-group"] {
1774
+ --_number-field-group-height: var(--noctis-number-field-group-height, var(--noctis-size-control-md));
1775
+ --_number-field-group-border-radius: var(--noctis-number-field-group-border-radius, var(--noctis-radius-control));
1776
+ --_number-field-group-shadow: var(--noctis-number-field-group-shadow, var(--noctis-shadow-inset));
1777
+ }
1778
+ [data-slot="noctis-number-field-input"] {
1779
+ --_number-field-input-padding-inline: var(--noctis-number-field-input-padding-inline, var(--noctis-space-2\.5));
1780
+ --_number-field-input-font-size: var(--noctis-number-field-input-font-size, var(--noctis-text-small));
1781
+ --_number-field-input-min-inline-size: var(--noctis-number-field-input-min-inline-size, var(--noctis-space-12));
1782
+ }
1783
+ [data-slot="noctis-number-field-prefix"],
1784
+ [data-slot="noctis-number-field-suffix"] {
1785
+ --_number-field-affix-padding-inline: var(--noctis-number-field-affix-padding-inline, var(--noctis-space-2\.5));
1786
+ --_number-field-affix-segment-background-color: var(
1787
+ --noctis-number-field-affix-segment-background-color,
1788
+ var(--noctis-color-field-hover)
1789
+ );
1790
+ --_number-field-affix-segment-border-color: var(
1791
+ --noctis-number-field-affix-segment-border-color,
1792
+ var(--noctis-color-field-border)
1793
+ );
1794
+ --_number-field-affix-color: var(--noctis-number-field-affix-color, var(--noctis-color-muted));
1795
+ }
1796
+ [data-slot="noctis-number-field-increment"],
1797
+ [data-slot="noctis-number-field-decrement"] {
1798
+ --_number-field-stepper-width: var(--noctis-number-field-stepper-width, var(--noctis-size-control-sm));
1799
+ }
1800
+ [data-slot="noctis-number-field-scrub-area-cursor"] {
1801
+ --_number-field-scrub-area-cursor-size: var(--noctis-number-field-scrub-area-cursor-size, var(--noctis-space-5));
1802
+ }
1803
+ [data-slot="noctis-number-field"][data-size="lg"] [data-slot="noctis-number-field-group"] {
1804
+ --_number-field-group-height: var(--noctis-number-field-group-height, var(--noctis-size-control-lg));
1805
+ }
1806
+ [data-slot="noctis-number-field"][data-size="lg"] [data-slot="noctis-number-field-input"] {
1807
+ --_number-field-input-font-size: var(--noctis-number-field-input-font-size, var(--noctis-text-regular));
1808
+ }
1809
+ [data-slot="noctis-number-field"][data-size="lg"] [data-slot="noctis-number-field-increment"],
1810
+ [data-slot="noctis-number-field"][data-size="lg"] [data-slot="noctis-number-field-decrement"] {
1811
+ --_number-field-stepper-width: var(--noctis-number-field-stepper-width, var(--noctis-size-control-md));
1812
+ }
1813
+ [data-slot="noctis-navigation-menu-list"] {
1814
+ --_navigation-menu-list-gap: var(--noctis-navigation-menu-list-gap, var(--noctis-space-1));
1815
+ }
1816
+ [data-slot="noctis-navigation-menu-trigger"] {
1817
+ --_navigation-menu-trigger-height: var(--noctis-navigation-menu-trigger-height, var(--noctis-size-control-md));
1818
+ --_navigation-menu-trigger-padding-inline: var(--noctis-navigation-menu-trigger-padding-inline, 0.75rem);
1819
+ --_navigation-menu-trigger-gap: var(--noctis-navigation-menu-trigger-gap, 0.375rem);
1820
+ --_navigation-menu-trigger-border-radius: var(
1821
+ --noctis-navigation-menu-trigger-border-radius,
1822
+ var(--noctis-radius-control)
1823
+ );
1824
+ }
1825
+ [data-slot="noctis-navigation-menu-popup"] {
1826
+ --_navigation-menu-popup-min-width: var(--noctis-navigation-menu-popup-min-width, 12rem);
1827
+ }
1828
+ [data-slot="noctis-navigation-menu-positioner"] {
1829
+ --_navigation-menu-positioner-duration: var(--noctis-navigation-menu-positioner-duration, var(--noctis-duration-slow));
1830
+ --_navigation-menu-positioner-easing: var(--noctis-navigation-menu-positioner-easing, var(--noctis-ease-overlay));
1831
+ }
1832
+ [data-slot="noctis-navigation-menu-content"] {
1833
+ --_navigation-menu-content-padding: var(--noctis-navigation-menu-content-padding, var(--noctis-space-2));
1834
+ --_navigation-menu-content-gap: var(--noctis-navigation-menu-content-gap, var(--noctis-space-1));
1835
+ }
1836
+ [data-slot="noctis-navigation-menu-link"] {
1837
+ --_navigation-menu-link-padding-inline: var(--noctis-navigation-menu-link-padding-inline, var(--noctis-space-4));
1838
+ --_navigation-menu-link-padding-block: var(--noctis-navigation-menu-link-padding-block, var(--noctis-space-3));
1839
+ --_navigation-menu-link-gap: var(--noctis-navigation-menu-link-gap, 0.125rem);
1840
+ --_navigation-menu-link-border-radius: var(--noctis-navigation-menu-link-border-radius, var(--noctis-radius-sm));
1841
+ }
1842
+ [data-slot="noctis-navigation-menu-link-description"] {
1843
+ --_navigation-menu-link-description-color: var(
1844
+ --noctis-navigation-menu-link-description-color,
1845
+ var(--noctis-color-muted)
1846
+ );
1847
+ }
1848
+ [data-slot="noctis-navigation-menu-section"] {
1849
+ --_navigation-menu-section-gap: var(--noctis-navigation-menu-section-gap, var(--noctis-space-1\.5));
1850
+ }
1851
+ [data-slot="noctis-navigation-menu-section-title"] {
1852
+ --_navigation-menu-section-title-font-size: var(
1853
+ --noctis-navigation-menu-section-title-font-size,
1854
+ var(--noctis-text-mini)
1855
+ );
1856
+ --_navigation-menu-section-title-color: var(--noctis-navigation-menu-section-title-color, var(--noctis-color-muted));
1857
+ }
1858
+ [data-slot="noctis-navigation-menu-separator"] {
1859
+ --_navigation-menu-separator-margin-block: var(--noctis-navigation-menu-separator-margin-block, var(--noctis-space-1));
1860
+ }
1861
+ [data-slot="noctis-navigation-menu-footer"] {
1862
+ --_navigation-menu-footer-padding-block: var(--noctis-navigation-menu-footer-padding-block, var(--noctis-space-2));
1863
+ --_navigation-menu-footer-gap: var(--noctis-navigation-menu-footer-gap, var(--noctis-space-2));
1864
+ }
1865
+ [data-slot="noctis-navigation-menu"][data-size="sm"] [data-slot="noctis-navigation-menu-trigger"] {
1866
+ --_navigation-menu-trigger-height: var(--noctis-navigation-menu-trigger-height, var(--noctis-size-control-sm));
1867
+ --_navigation-menu-trigger-padding-inline: var(--noctis-navigation-menu-trigger-padding-inline, 0.5rem);
1868
+ }
1869
+ [data-slot="noctis-scroll-area-scrollbar"] {
1870
+ --_scroll-area-scrollbar-inline-size: var(--noctis-scroll-area-scrollbar-inline-size, 0.5rem);
1871
+ --_scroll-area-scrollbar-inline-size-hover: var(--noctis-scroll-area-scrollbar-inline-size-hover, 0.625rem);
1872
+ --_scroll-area-scrollbar-margin: var(--noctis-scroll-area-scrollbar-margin, var(--noctis-space-0\.5));
1873
+ --_scroll-area-scrollbar-transition-duration: var(
1874
+ --noctis-scroll-area-scrollbar-transition-duration,
1875
+ var(--noctis-duration-regular)
1876
+ );
1877
+ --_scroll-area-scrollbar-track-background-color: var(
1878
+ --noctis-scroll-area-scrollbar-track-background-color,
1879
+ var(--noctis-color-well)
1880
+ );
1881
+ }
1882
+ [data-slot="noctis-scroll-area-thumb"] {
1883
+ --_scroll-area-thumb-background-color: var(
1884
+ --noctis-scroll-area-thumb-background-color,
1885
+ var(--noctis-color-scrollbar-thumb)
1886
+ );
1887
+ --_scroll-area-thumb-background-color-hover: var(
1888
+ --noctis-scroll-area-thumb-background-color-hover,
1889
+ color-mix(in oklab, var(--noctis-color-scrollbar-thumb), var(--noctis-color-foreground) 18%)
1890
+ );
1891
+ --_scroll-area-thumb-background-color-active: var(
1892
+ --noctis-scroll-area-thumb-background-color-active,
1893
+ color-mix(in oklab, var(--noctis-color-scrollbar-thumb), var(--noctis-color-foreground) 32%)
1894
+ );
1895
+ --_scroll-area-thumb-min-block-size: var(--noctis-scroll-area-thumb-min-block-size, var(--noctis-space-5));
1896
+ --_scroll-area-thumb-min-inline-size: var(--noctis-scroll-area-thumb-min-inline-size, var(--noctis-space-5));
1897
+ --_scroll-area-thumb-border-radius: var(--noctis-scroll-area-thumb-border-radius, 9999px);
1898
+ }
1899
+ [data-slot="noctis-scroll-area"] {
1900
+ --_scroll-area-fade-size: var(--noctis-scroll-area-fade-size, var(--noctis-space-6));
1901
+ }
1902
+ [data-slot="noctis-scroll-area"][data-size="sm"] [data-slot="noctis-scroll-area-scrollbar"] {
1903
+ --_scroll-area-scrollbar-inline-size: var(--noctis-scroll-area-scrollbar-inline-size, 0.375rem);
1904
+ --_scroll-area-scrollbar-inline-size-hover: var(--noctis-scroll-area-scrollbar-inline-size-hover, 0.5rem);
1905
+ }
1906
+ [data-slot="noctis-separator"] {
1907
+ --_separator-background-color: var(--noctis-separator-background-color, var(--noctis-color-border));
1908
+ --_separator-size: var(--noctis-separator-size, var(--noctis-space-px));
1909
+ --_separator-margin: var(--noctis-separator-margin, 0px);
1910
+ }
1911
+ [data-slot="noctis-sheet-popup"] {
1912
+ --_sheet-popup-max-inline-size: var(--noctis-sheet-popup-max-inline-size, 24rem);
1913
+ --_sheet-popup-transition-duration: var(--noctis-sheet-popup-transition-duration, var(--noctis-duration-regular));
1914
+ --_sheet-popup-peek-offset: var(--noctis-sheet-popup-peek-offset, 1.5rem);
1915
+ --_sheet-popup-min-block-size: var(--noctis-sheet-popup-min-block-size, var(--noctis-space-40));
1916
+ }
1917
+ [data-slot="noctis-sheet-header"],
1918
+ [data-slot="noctis-sheet-body"],
1919
+ [data-slot="noctis-sheet-footer"] {
1920
+ --_sheet-region-padding: var(--noctis-sheet-region-padding, var(--noctis-space-region));
1921
+ }
1922
+ [data-slot="noctis-sheet-header"] {
1923
+ --_sheet-header-gap: var(--noctis-sheet-header-gap, 0.25rem);
1924
+ --_sheet-header-gutter-gap: var(--noctis-sheet-header-gutter-gap, 0.5rem);
1925
+ }
1926
+ [data-slot="noctis-sheet-footer"] {
1927
+ --_sheet-footer-gap: var(--noctis-sheet-footer-gap, 0.5rem);
1928
+ }
1929
+ [data-slot="noctis-sheet-popup"][data-size="sm"] {
1930
+ --_sheet-popup-max-inline-size: var(--noctis-sheet-popup-max-inline-size, 20rem);
1931
+ }
1932
+ [data-slot="noctis-sheet-popup"][data-size="md"] {
1933
+ --_sheet-popup-max-inline-size: var(--noctis-sheet-popup-max-inline-size, 24rem);
1934
+ }
1935
+ [data-slot="noctis-sheet-popup"][data-size="lg"] {
1936
+ --_sheet-popup-max-inline-size: var(--noctis-sheet-popup-max-inline-size, 28rem);
1937
+ }
1938
+ [data-slot="noctis-sheet-popup"][data-size="xl"] {
1939
+ --_sheet-popup-max-inline-size: var(--noctis-sheet-popup-max-inline-size, 32rem);
1940
+ }
1941
+ [data-slot="noctis-sheet-popup"][data-size="full"] {
1942
+ --_sheet-popup-max-inline-size: var(--noctis-sheet-popup-max-inline-size, none);
1943
+ }
1944
+ [data-slot="noctis-toast"] {
1945
+ --_toast-border-radius: var(--noctis-toast-border-radius, var(--noctis-radius-md));
1946
+ --_toast-padding: var(--noctis-toast-padding, 1rem);
1947
+ --_toast-gap: var(--noctis-toast-gap, 0.75rem);
1948
+ --_toast-min-width: var(--noctis-toast-min-width, 20rem);
1949
+ --_toast-max-width: var(--noctis-toast-max-width, 24rem);
1950
+ --_toast-color-highlighted: var(--noctis-toast-color-highlighted, var(--noctis-color-muted));
1951
+ --_toast-peek: var(--noctis-toast-peek, 0.75rem);
1952
+ --_toast-peek-scale-step: var(--noctis-toast-peek-scale-step, 0.05);
1953
+ --_toast-height: var(--noctis-toast-height, var(--toast-height));
1954
+ --_toast-frontmost-height: var(--noctis-toast-frontmost-height, var(--toast-frontmost-height, var(--toast-height)));
1955
+ }
1956
+ [data-slot="noctis-toast-content"] {
1957
+ --_toast-content-gap: var(--noctis-toast-content-gap, 0.25rem);
1958
+ }
1959
+ [data-slot="noctis-toast-viewport"] {
1960
+ --_toast-viewport-padding: var(--noctis-toast-viewport-padding, var(--noctis-space-region));
1961
+ --_toast-viewport-gap: var(--noctis-toast-viewport-gap, 0.75rem);
1962
+ --_toast-viewport-inline-size: var(--noctis-toast-viewport-inline-size, 20rem);
1963
+ }
1964
+ [data-slot="noctis-toast-icon"] {
1965
+ --_toast-icon-size: var(--noctis-toast-icon-size, 1.25rem);
1966
+ }
1967
+ [data-slot="noctis-toast-spinner"] {
1968
+ --_toast-spinner-size: var(--noctis-toast-spinner-size, 1.25rem);
1969
+ }
1970
+ [data-slot="noctis-toast"][data-type="info"] {
1971
+ --_toast-color-highlighted: var(--noctis-toast-color-highlighted, var(--noctis-color-info));
1972
+ }
1973
+ [data-slot="noctis-toast"][data-type="success"] {
1974
+ --_toast-color-highlighted: var(--noctis-toast-color-highlighted, var(--noctis-color-success));
1975
+ }
1976
+ [data-slot="noctis-toast"][data-type="warning"] {
1977
+ --_toast-color-highlighted: var(--noctis-toast-color-highlighted, var(--noctis-color-warning));
1978
+ }
1979
+ [data-slot="noctis-toast"][data-type="danger"] {
1980
+ --_toast-color-highlighted: var(--noctis-toast-color-highlighted, var(--noctis-color-danger));
1981
+ }
1982
+ [data-slot="noctis-toast"][data-type="loading"] {
1983
+ --_toast-color-highlighted: var(--noctis-toast-color-highlighted, var(--noctis-color-muted));
1984
+ }
1985
+ [data-slot="noctis-toast"][data-type="error"] {
1986
+ --_toast-color-highlighted: var(--noctis-toast-color-highlighted, var(--noctis-color-danger));
1987
+ }
1988
+ [data-slot="noctis-collapsible-trigger"] {
1989
+ --_collapsible-trigger-gap: var(--noctis-collapsible-trigger-gap, var(--noctis-space-2));
1990
+ --_collapsible-trigger-padding-block: var(--noctis-collapsible-trigger-padding-block, var(--noctis-space-2));
1991
+ --_collapsible-trigger-padding-inline: var(--noctis-collapsible-trigger-padding-inline, var(--noctis-space-3));
1992
+ --_collapsible-trigger-font-size: var(--noctis-collapsible-trigger-font-size, var(--noctis-text-small));
1993
+ }
1994
+ [data-slot="noctis-collapsible-panel"] {
1995
+ --_collapsible-panel-padding-block: var(--noctis-collapsible-panel-padding-block, var(--noctis-space-3));
1996
+ --_collapsible-panel-padding-inline: var(--noctis-collapsible-panel-padding-inline, var(--noctis-space-3));
1997
+ --_collapsible-panel-transition-duration: var(
1998
+ --noctis-collapsible-panel-transition-duration,
1999
+ var(--noctis-duration-regular)
2000
+ );
2001
+ --_collapsible-panel-height: var(--noctis-collapsible-panel-height, var(--collapsible-panel-height));
2002
+ }
2003
+ [data-slot="noctis-collapsible-group"] {
2004
+ --_collapsible-group-divider: var(--noctis-collapsible-group-divider, var(--noctis-color-divider));
2005
+ }
2006
+ [data-slot="noctis-alert-dialog-popup"] {
2007
+ --_alert-dialog-popup-max-inline-size: var(--noctis-alert-dialog-popup-max-inline-size, 28rem);
2008
+ --_alert-dialog-popup-border-radius: var(--noctis-alert-dialog-popup-border-radius, var(--noctis-radius-lg));
2009
+ --_alert-dialog-popup-transition-duration: var(
2010
+ --noctis-alert-dialog-popup-transition-duration,
2011
+ var(--noctis-duration-overlay)
2012
+ );
2013
+ --_alert-dialog-popup-peek-scale: var(--noctis-alert-dialog-popup-peek-scale, 0.97);
2014
+ }
2015
+ [data-slot="noctis-alert-dialog-header"],
2016
+ [data-slot="noctis-alert-dialog-body"],
2017
+ [data-slot="noctis-alert-dialog-footer"] {
2018
+ --_alert-dialog-region-padding: var(--noctis-alert-dialog-region-padding, var(--noctis-space-region));
2019
+ }
2020
+ [data-slot="noctis-alert-dialog-header"] {
2021
+ --_alert-dialog-header-gap: var(--noctis-alert-dialog-header-gap, 0.25rem);
2022
+ }
2023
+ [data-slot="noctis-alert-dialog-footer"] {
2024
+ --_alert-dialog-footer-gap: var(--noctis-alert-dialog-footer-gap, 0.5rem);
2025
+ }
2026
+ [data-slot="noctis-alert-dialog-viewport"] {
2027
+ --_alert-dialog-viewport-padding: var(--noctis-alert-dialog-viewport-padding, var(--noctis-space-16));
2028
+ }
2029
+ [data-slot="noctis-alert-dialog-icon"] {
2030
+ --_alert-dialog-icon-size: var(--noctis-alert-dialog-icon-size, var(--noctis-space-10));
2031
+ --_alert-dialog-icon-glyph-size: var(--noctis-alert-dialog-icon-glyph-size, var(--noctis-space-5));
2032
+ }
2033
+ [data-slot="noctis-alert-dialog-popup"][data-size="sm"] {
2034
+ --_alert-dialog-popup-max-inline-size: var(--noctis-alert-dialog-popup-max-inline-size, 22rem);
2035
+ }
2036
+ [data-slot="noctis-alert-dialog-popup"][data-size="md"] {
2037
+ --_alert-dialog-popup-max-inline-size: var(--noctis-alert-dialog-popup-max-inline-size, 28rem);
2038
+ }
2039
+ [data-slot="noctis-rail-panel"] {
2040
+ --_rail-panel-max-inline-size: var(--noctis-rail-panel-max-inline-size, 90vw);
2041
+ --_rail-collapse-width: var(--noctis-rail-collapse-width, var(--collapsible-panel-width));
2042
+ --_rail-panel-width: var(--noctis-rail-panel-width, 22rem);
2043
+ }
2044
+ [data-slot="noctis-rail"] {
2045
+ --_rail-padding: var(--noctis-rail-padding, var(--noctis-space-region));
2046
+ }
2047
+ [data-slot="noctis-rail-header"] {
2048
+ --_rail-header-gap: var(--noctis-rail-header-gap, 0.5rem);
2049
+ }
2050
+ [data-slot="noctis-rail-panel"][data-size="xs"] {
2051
+ --_rail-panel-width: var(--noctis-rail-panel-width, 14rem);
2052
+ }
2053
+ [data-slot="noctis-rail-panel"][data-size="sm"] {
2054
+ --_rail-panel-width: var(--noctis-rail-panel-width, 18rem);
2055
+ }
2056
+ [data-slot="noctis-rail-panel"][data-size="md"] {
2057
+ --_rail-panel-width: var(--noctis-rail-panel-width, 22rem);
2058
+ }
2059
+ [data-slot="noctis-rail-panel"][data-size="lg"] {
2060
+ --_rail-panel-width: var(--noctis-rail-panel-width, 28rem);
2061
+ }
2062
+ [data-slot="noctis-combobox-input"] {
2063
+ --_combobox-input-height: var(--noctis-combobox-input-height, var(--noctis-size-control-md));
2064
+ --_combobox-input-padding-inline: var(--noctis-combobox-input-padding-inline, 0.75rem);
2065
+ --_combobox-input-border-radius: var(--noctis-combobox-input-border-radius, var(--noctis-radius-control));
2066
+ --_combobox-input-shadow: var(--noctis-combobox-input-shadow, var(--noctis-shadow-inset));
2067
+ }
2068
+ [data-slot="noctis-combobox-list"] {
2069
+ --_combobox-list-padding: var(--noctis-combobox-list-padding, 0.25rem);
2070
+ }
2071
+ [data-slot="noctis-combobox-item"] {
2072
+ --_combobox-item-height: var(--noctis-combobox-item-height, 2rem);
2073
+ --_combobox-item-padding-inline: var(--noctis-combobox-item-padding-inline, 0.625rem);
2074
+ --_combobox-item-gap: var(--noctis-combobox-item-gap, 0.5rem);
2075
+ --_combobox-item-padding-block: var(--noctis-combobox-item-padding-block, 0.25rem);
2076
+ --_combobox-item-border-radius: var(--noctis-combobox-item-border-radius, var(--noctis-radius-sm));
2077
+ --_combobox-item-color: var(--noctis-combobox-item-color, var(--noctis-color-secondary));
2078
+ --_combobox-item-color-highlighted: var(--noctis-combobox-item-color-highlighted, var(--noctis-color-foreground));
2079
+ --_combobox-item-background-color-highlighted: var(
2080
+ --noctis-combobox-item-background-color-highlighted,
2081
+ var(--noctis-color-control-ghost-hover)
2082
+ );
2083
+ --_combobox-item-background-color-active: var(
2084
+ --noctis-combobox-item-background-color-active,
2085
+ var(--noctis-color-control-ghost-selected)
2086
+ );
2087
+ }
2088
+ [data-slot="noctis-combobox-item"],
2089
+ [data-slot="noctis-combobox-item-indicator"] {
2090
+ --_combobox-item-indicator-size: var(--noctis-combobox-item-indicator-size, 0.75rem);
2091
+ }
2092
+ [data-slot="noctis-combobox-empty"] {
2093
+ --_combobox-empty-padding-block: var(--noctis-combobox-empty-padding-block, var(--noctis-space-6));
2094
+ }
2095
+ [data-slot="noctis-combobox-group-label"] {
2096
+ --_combobox-group-label-padding-inline: var(--noctis-combobox-group-label-padding-inline, var(--noctis-space-2\.5));
2097
+ --_combobox-group-label-padding-inline-start: var(--noctis-combobox-group-label-padding-inline-start, 0.625rem);
2098
+ }
2099
+ [data-slot="noctis-combobox-chip"] {
2100
+ --_combobox-chip-gap: var(--noctis-combobox-chip-gap, var(--noctis-space-1\.5));
2101
+ --_combobox-chip-border-radius: var(--noctis-combobox-chip-border-radius, var(--noctis-radius-sm));
2102
+ }
2103
+ [data-slot="noctis-combobox-input"][data-size="lg"] {
2104
+ --_combobox-input-height: var(--noctis-combobox-input-height, var(--noctis-size-control-lg));
2105
+ --_combobox-input-padding-inline: var(--noctis-combobox-input-padding-inline, 0.875rem);
2106
+ }
2107
+ [data-slot="noctis-search-dialog"] {
2108
+ --_search-dialog-inset-block-start: var(--noctis-search-dialog-inset-block-start, 12vh);
2109
+ --_search-dialog-height: var(--noctis-search-dialog-height, min(56vh, 420px));
2110
+ --_search-dialog-width: var(--noctis-search-dialog-width, min(40rem, 92vw));
2111
+ --_search-dialog-border-radius: var(--noctis-search-dialog-border-radius, var(--noctis-radius-xl));
2112
+ --_search-dialog-transition-duration: var(--noctis-search-dialog-transition-duration, var(--noctis-duration-overlay));
2113
+ --_search-dialog-centered-padding-inline: var(--noctis-search-dialog-centered-padding-inline, var(--noctis-space-4));
2114
+ }
2115
+ [data-slot="noctis-search-dialog-input"] {
2116
+ --_search-dialog-input-height: var(--noctis-search-dialog-input-height, 3rem);
2117
+ }
2118
+ [data-slot="noctis-search-dialog-result"] {
2119
+ --_search-dialog-result-padding-inline: var(--noctis-search-dialog-result-padding-inline, 0.625rem);
2120
+ --_search-dialog-result-padding-block: var(--noctis-search-dialog-result-padding-block, 0.5rem);
2121
+ --_search-dialog-result-border-radius: var(--noctis-search-dialog-result-border-radius, var(--noctis-radius-md));
2122
+ --_search-dialog-result-gap: var(--noctis-search-dialog-result-gap, 0.75rem);
2123
+ --_search-dialog-result-background-color-highlighted: var(
2124
+ --noctis-search-dialog-result-background-color-highlighted,
2125
+ var(--noctis-color-selected)
2126
+ );
2127
+ --_search-dialog-result-body-gap: var(--noctis-search-dialog-result-body-gap, var(--noctis-space-0\.5));
2128
+ --_search-dialog-result-title-row-gap: var(--noctis-search-dialog-result-title-row-gap, var(--noctis-space-3));
2129
+ --_search-dialog-result-meta-gap: var(--noctis-search-dialog-result-meta-gap, var(--noctis-space-1\.5));
2130
+ --_search-dialog-result-mark-border-radius: var(
2131
+ --noctis-search-dialog-result-mark-border-radius,
2132
+ var(--noctis-radius-xs)
2133
+ );
2134
+ --_search-dialog-result-mark-padding-inline: var(
2135
+ --noctis-search-dialog-result-mark-padding-inline,
2136
+ var(--noctis-space-0\.5)
2137
+ );
2138
+ }
2139
+ [data-slot="noctis-search-dialog-header"] {
2140
+ --_search-dialog-header-gap: var(--noctis-search-dialog-header-gap, var(--noctis-space-3));
2141
+ --_search-dialog-header-padding-inline: var(--noctis-search-dialog-header-padding-inline, var(--noctis-space-4));
2142
+ --_search-dialog-esc-key-height: var(--noctis-search-dialog-esc-key-height, var(--noctis-size-control-xs));
2143
+ --_search-dialog-esc-key-border-radius: var(--noctis-search-dialog-esc-key-border-radius, 0.3em);
2144
+ --_search-dialog-esc-key-shadow: var(
2145
+ --noctis-search-dialog-esc-key-shadow,
2146
+ inset 0 0.07em 0 0 oklch(from var(--noctis-color-kbd) calc(l + 0.05) c h),
2147
+ inset 0 -0.09em 0 0 oklch(from var(--noctis-color-kbd) calc(l - 0.08) c h),
2148
+ 0 0.1em 0.12em -0.04em oklch(from var(--noctis-engine-shadow-color) l c h / 0.2)
2149
+ );
2150
+ --_search-dialog-esc-key-padding-inline: var(--noctis-search-dialog-esc-key-padding-inline, var(--noctis-space-1\.5));
2151
+ }
2152
+ [data-slot="noctis-search-dialog-results"] {
2153
+ --_search-dialog-results-gap: var(--noctis-search-dialog-results-gap, var(--noctis-space-px));
2154
+ --_search-dialog-results-padding: var(--noctis-search-dialog-results-padding, var(--noctis-space-2));
2155
+ }
2156
+ [data-slot="noctis-search-dialog-footer"] {
2157
+ --_search-dialog-footer-gap: var(--noctis-search-dialog-footer-gap, var(--noctis-space-4));
2158
+ --_search-dialog-footer-padding-inline: var(--noctis-search-dialog-footer-padding-inline, var(--noctis-space-3));
2159
+ --_search-dialog-footer-padding-block: var(--noctis-search-dialog-footer-padding-block, var(--noctis-space-2));
2160
+ --_search-dialog-hint-gap: var(--noctis-search-dialog-hint-gap, var(--noctis-space-1\.5));
2161
+ --_search-dialog-hint-keys-gap: var(--noctis-search-dialog-hint-keys-gap, var(--noctis-space-1));
2162
+ }
2163
+ [data-slot="noctis-dialog-popup"] {
2164
+ --_dialog-popup-max-inline-size: var(--noctis-dialog-popup-max-inline-size, 32rem);
2165
+ --_dialog-popup-border-radius: var(--noctis-dialog-popup-border-radius, var(--noctis-radius-lg));
2166
+ --_dialog-popup-min-inline-size: var(--noctis-dialog-popup-min-inline-size, 20rem);
2167
+ --_dialog-popup-peek-scale: var(--noctis-dialog-popup-peek-scale, 0.97);
2168
+ --_dialog-popup-transition-duration: var(--noctis-dialog-popup-transition-duration, var(--noctis-duration-overlay));
2169
+ }
2170
+ [data-slot="noctis-dialog-header"],
2171
+ [data-slot="noctis-dialog-body"],
2172
+ [data-slot="noctis-dialog-footer"] {
2173
+ --_dialog-region-padding: var(--noctis-dialog-region-padding, var(--noctis-space-region));
2174
+ }
2175
+ [data-slot="noctis-dialog-header"] {
2176
+ --_dialog-header-gap: var(--noctis-dialog-header-gap, 0.25rem);
2177
+ --_dialog-header-gutter-gap: var(--noctis-dialog-header-gutter-gap, 0.5rem);
2178
+ }
2179
+ [data-slot="noctis-dialog-footer"] {
2180
+ --_dialog-footer-gap: var(--noctis-dialog-footer-gap, 0.5rem);
2181
+ }
2182
+ [data-slot="noctis-dialog-body"] {
2183
+ --_dialog-body-scroll-cue-start: var(
2184
+ --noctis-dialog-body-scroll-cue-start,
2185
+ linear-gradient(to bottom, var(--noctis-color-overlay), transparent)
2186
+ );
2187
+ --_dialog-body-scroll-cue-end: var(
2188
+ --noctis-dialog-body-scroll-cue-end,
2189
+ linear-gradient(to top, var(--noctis-color-overlay), transparent)
2190
+ );
2191
+ }
2192
+ [data-slot="noctis-dialog-popup"][data-size="sm"] {
2193
+ --_dialog-popup-max-inline-size: var(--noctis-dialog-popup-max-inline-size, 24rem);
2194
+ }
2195
+ [data-slot="noctis-dialog-popup"][data-size="md"] {
2196
+ --_dialog-popup-max-inline-size: var(--noctis-dialog-popup-max-inline-size, 32rem);
2197
+ }
2198
+ [data-slot="noctis-dialog-popup"][data-size="lg"] {
2199
+ --_dialog-popup-max-inline-size: var(--noctis-dialog-popup-max-inline-size, 42rem);
2200
+ }
2201
+ [data-slot="noctis-dialog-popup"][data-size="full"] {
2202
+ --_dialog-popup-max-inline-size: var(--noctis-dialog-popup-max-inline-size, none);
2203
+ }
2204
+ [data-slot="noctis-color-picker-panel"] {
2205
+ --_color-picker-panel-width: var(--noctis-color-picker-panel-width, 16rem);
2206
+ --_color-picker-panel-padding: var(--noctis-color-picker-panel-padding, 0.75rem);
2207
+ --_color-picker-panel-gap: var(--noctis-color-picker-panel-gap, 0.75rem);
2208
+ --_color-picker-panel-border-radius: var(--noctis-color-picker-panel-border-radius, var(--noctis-radius-md));
2209
+ }
2210
+ [data-slot="noctis-color-picker-area"] {
2211
+ --_color-picker-area-height: var(--noctis-color-picker-area-height, 11rem);
2212
+ --_color-picker-area-border-radius: var(--noctis-color-picker-area-border-radius, var(--noctis-radius-sm));
2213
+ }
2214
+ [data-slot="noctis-color-picker-area-thumb"] {
2215
+ --_color-picker-area-thumb-size: var(--noctis-color-picker-area-thumb-size, 1rem);
2216
+ --_color-picker-area-thumb-border-width: var(--noctis-color-picker-area-thumb-border-width, 2px);
2217
+ --_color-picker-area-thumb-ring-width: var(--noctis-color-picker-area-thumb-ring-width, 1px);
2218
+ }
2219
+ [data-slot="noctis-color-picker-hue"] {
2220
+ --_color-picker-hue-height: var(--noctis-color-picker-hue-height, 0.875rem);
2221
+ }
2222
+ [data-slot="noctis-color-picker-alpha"] {
2223
+ --_color-picker-alpha-height: var(--noctis-color-picker-alpha-height, 0.875rem);
2224
+ }
2225
+ [data-slot="noctis-color-picker-swatch"] {
2226
+ --_color-picker-swatch-size: var(--noctis-color-picker-swatch-size, var(--noctis-size-control-sm));
2227
+ --_color-picker-swatch-border-radius: var(--noctis-color-picker-swatch-border-radius, var(--noctis-radius-control));
2228
+ --_color-picker-swatch-border-color: var(--noctis-color-picker-swatch-border-color, var(--noctis-color-border));
2229
+ }
2230
+ [data-slot="noctis-color-picker-input"] {
2231
+ --_color-picker-input-height: var(--noctis-color-picker-input-height, var(--noctis-size-control-md));
2232
+ --_color-picker-input-border-radius: var(--noctis-color-picker-input-border-radius, var(--noctis-radius-sm));
2233
+ --_color-picker-input-padding-inline: var(--noctis-color-picker-input-padding-inline, var(--noctis-space-2));
2234
+ }
2235
+ [data-slot="noctis-color-picker-hue"],
2236
+ [data-slot="noctis-color-picker-alpha"] {
2237
+ --_color-picker-channel-row-height: var(--noctis-color-picker-channel-row-height, var(--noctis-space-5));
2238
+ }
2239
+ [data-slot="noctis-color-picker-hue-thumb"],
2240
+ [data-slot="noctis-color-picker-alpha-thumb"] {
2241
+ --_color-picker-channel-thumb-size: var(--noctis-color-picker-channel-thumb-size, var(--noctis-space-4));
2242
+ }
2243
+ [data-slot="noctis-color-picker-format-tabs"] {
2244
+ --_color-picker-format-tabs-gap: var(--noctis-color-picker-format-tabs-gap, var(--noctis-space-0\.5));
2245
+ --_color-picker-format-tabs-padding: var(--noctis-color-picker-format-tabs-padding, var(--noctis-space-0\.5));
2246
+ --_color-picker-format-tabs-border-radius: var(--noctis-color-picker-format-tabs-border-radius, var(--noctis-radius-sm));
2247
+ --_color-picker-format-toggle-border-radius: var(
2248
+ --noctis-color-picker-format-toggle-border-radius,
2249
+ var(--noctis-radius-xs)
2250
+ );
2251
+ --_color-picker-format-toggle-padding-inline: var(
2252
+ --noctis-color-picker-format-toggle-padding-inline,
2253
+ var(--noctis-space-2)
2254
+ );
2255
+ --_color-picker-format-toggle-padding-block: var(
2256
+ --noctis-color-picker-format-toggle-padding-block,
2257
+ var(--noctis-space-1)
2258
+ );
2259
+ }
2260
+ [data-slot="noctis-radio"] {
2261
+ --_radio-size: var(--noctis-radio-size, 1.125rem);
2262
+ --_radio-border-width: var(--noctis-radio-border-width, 1px);
2263
+ --_radio-border-radius: var(--noctis-radio-border-radius, 9999px);
2264
+ }
2265
+ [data-slot="noctis-radio-indicator"] {
2266
+ --_radio-indicator-size: var(--noctis-radio-indicator-size, 0.5rem);
2267
+ }
2268
+ [data-slot="noctis-radio-group"] {
2269
+ --_radio-group-gap: var(--noctis-radio-group-gap, 0.625rem);
2270
+ }
2271
+ [data-slot="noctis-radio-field"] {
2272
+ --_radio-field-gap: var(--noctis-radio-field-gap, 0.5rem);
2273
+ }
2274
+ [data-slot="noctis-radio-description"] {
2275
+ --_radio-description-gap: var(--noctis-radio-description-gap, 0.25rem);
2276
+ }
2277
+ [data-slot="noctis-radio-card"] {
2278
+ --_radio-card-padding: var(--noctis-radio-card-padding, 0.75rem);
2279
+ }
2280
+ [data-slot="noctis-radio"][data-size="sm"] {
2281
+ --_radio-size: var(--noctis-radio-size, 1rem);
2282
+ }
2283
+ [data-slot="noctis-radio"][data-size="sm"] [data-slot="noctis-radio-indicator"] {
2284
+ --_radio-indicator-size: var(--noctis-radio-indicator-size, 0.375rem);
2285
+ }
2286
+ [data-slot="noctis-radio"][data-size="lg"] {
2287
+ --_radio-size: var(--noctis-radio-size, 1.25rem);
2288
+ }
2289
+ [data-slot="noctis-radio"][data-size="lg"] [data-slot="noctis-radio-indicator"] {
2290
+ --_radio-indicator-size: var(--noctis-radio-indicator-size, 0.625rem);
2291
+ }
2292
+ [data-slot="noctis-color-swatch"] {
2293
+ --_color-swatch-size: var(--noctis-color-swatch-size, var(--noctis-size-control-md));
2294
+ --_color-swatch-border-radius: var(--noctis-color-swatch-border-radius, var(--noctis-radius-control));
2295
+ --_color-swatch-border-radius-soft: var(--noctis-color-swatch-border-radius-soft, var(--noctis-radius-sm));
2296
+ }
2297
+ [data-slot="noctis-color-swatch-picker"] {
2298
+ --_color-swatch-picker-gap: var(--noctis-color-swatch-picker-gap, 0.5rem);
2299
+ }
2300
+ [data-slot="noctis-color-swatch-picker-item"] {
2301
+ --_color-swatch-picker-item-ring-width: var(--noctis-color-swatch-picker-item-ring-width, 2px);
2302
+ --_color-swatch-picker-item-ring-offset-width: var(--noctis-color-swatch-picker-item-ring-offset-width, 2px);
2303
+ --_color-swatch-picker-item-border-radius: var(
2304
+ --noctis-color-swatch-picker-item-border-radius,
2305
+ var(--noctis-radius-control)
2306
+ );
2307
+ --_color-swatch-picker-item-border-radius-soft: var(
2308
+ --noctis-color-swatch-picker-item-border-radius-soft,
2309
+ var(--noctis-radius-sm)
2310
+ );
2311
+ }
2312
+ [data-slot="noctis-color-swatch"][data-size="xs"] {
2313
+ --_color-swatch-size: var(--noctis-color-swatch-size, var(--noctis-size-control-xs));
2314
+ }
2315
+ [data-slot="noctis-color-swatch"][data-size="sm"] {
2316
+ --_color-swatch-size: var(--noctis-color-swatch-size, var(--noctis-size-control-sm));
2317
+ }
2318
+ [data-slot="noctis-color-swatch"][data-size="lg"] {
2319
+ --_color-swatch-size: var(--noctis-color-swatch-size, var(--noctis-size-control-lg));
2320
+ }
2321
+ [data-slot="noctis-slider"] {
2322
+ --_slider-root-gap: var(--noctis-slider-root-gap, var(--noctis-space-2));
2323
+ }
2324
+ [data-slot="noctis-slider-control"] {
2325
+ --_slider-control-block-size: var(--noctis-slider-control-block-size, var(--noctis-size-control-md));
2326
+ }
2327
+ [data-slot="noctis-slider-track"] {
2328
+ --_slider-track-block-size: var(--noctis-slider-track-block-size, 0.375rem);
2329
+ --_slider-track-border-radius: var(--noctis-slider-track-border-radius, var(--noctis-radius-full));
2330
+ --_slider-track-background-color: var(--noctis-slider-track-background-color, var(--noctis-color-well));
2331
+ }
2332
+ [data-slot="noctis-slider-indicator"] {
2333
+ --_slider-indicator-background-color: var(--noctis-slider-indicator-background-color, var(--noctis-color-accent));
2334
+ }
2335
+ [data-slot="noctis-slider-thumb"] {
2336
+ --_slider-thumb-size: var(--noctis-slider-thumb-size, 1.125rem);
2337
+ --_slider-thumb-border-width: var(--noctis-slider-thumb-border-width, 2px);
2338
+ --_slider-thumb-outline-width: var(--noctis-slider-thumb-outline-width, 3px);
2339
+ }
2340
+ [data-slot="noctis-slider-thumb-value"] {
2341
+ --_slider-thumb-value-background-color: var(--noctis-slider-thumb-value-background-color, var(--noctis-color-inverse));
2342
+ --_slider-thumb-value-color: var(--noctis-slider-thumb-value-color, var(--noctis-color-inverse-foreground));
2343
+ --_slider-thumb-value-gap: var(--noctis-slider-thumb-value-gap, 0.5rem);
2344
+ }
2345
+ [data-slot="noctis-slider-mark"] {
2346
+ --_slider-mark-size: var(--noctis-slider-mark-size, 2px);
2347
+ --_slider-mark-background-color: var(--noctis-slider-mark-background-color, var(--noctis-color-border));
2348
+ }
2349
+ [data-slot="noctis-slider"][data-size="sm"] [data-slot="noctis-slider-control"] {
2350
+ --_slider-control-block-size: var(--noctis-slider-control-block-size, var(--noctis-size-control-sm));
2351
+ }
2352
+ [data-slot="noctis-slider"][data-size="sm"] [data-slot="noctis-slider-track"] {
2353
+ --_slider-track-block-size: var(--noctis-slider-track-block-size, 0.25rem);
2354
+ }
2355
+ [data-slot="noctis-slider"][data-size="sm"] [data-slot="noctis-slider-thumb"] {
2356
+ --_slider-thumb-size: var(--noctis-slider-thumb-size, 0.875rem);
2357
+ }
2358
+ [data-slot="noctis-checkbox"] {
2359
+ --_checkbox-size: var(--noctis-checkbox-size, 1.125rem);
2360
+ --_checkbox-border-radius: var(--noctis-checkbox-border-radius, var(--noctis-radius-xs));
2361
+ --_checkbox-border-width: var(--noctis-checkbox-border-width, 1px);
2362
+ --_checkbox-hit-area: var(--noctis-checkbox-hit-area, 1.5rem);
2363
+ }
2364
+ [data-slot="noctis-checkbox-indicator"] {
2365
+ --_checkbox-indicator-size: var(--noctis-checkbox-indicator-size, 0.875rem);
2366
+ }
2367
+ [data-slot="noctis-checkbox-field"] {
2368
+ --_checkbox-field-gap: var(--noctis-checkbox-field-gap, 0.5rem);
2369
+ }
2370
+ [data-slot="noctis-checkbox-group"] {
2371
+ --_checkbox-group-gap: var(--noctis-checkbox-group-gap, 0.625rem);
2372
+ }
2373
+ [data-slot="noctis-checkbox"][data-size="sm"] {
2374
+ --_checkbox-size: var(--noctis-checkbox-size, 1rem);
2375
+ }
2376
+ [data-slot="noctis-checkbox"][data-size="sm"] [data-slot="noctis-checkbox-indicator"] {
2377
+ --_checkbox-indicator-size: var(--noctis-checkbox-indicator-size, 0.75rem);
2378
+ }
2379
+ [data-slot="noctis-checkbox"][data-size="lg"] {
2380
+ --_checkbox-size: var(--noctis-checkbox-size, 1.25rem);
2381
+ }
2382
+ [data-slot="noctis-checkbox"][data-size="lg"] [data-slot="noctis-checkbox-indicator"] {
2383
+ --_checkbox-indicator-size: var(--noctis-checkbox-indicator-size, 1rem);
2384
+ }
2385
+ [data-slot="noctis-avatar"] {
2386
+ --_avatar-size: var(--noctis-avatar-size, 2.5rem);
2387
+ --_avatar-font-size: var(--noctis-avatar-font-size, var(--noctis-text-small));
2388
+ --_avatar-border-radius: var(--noctis-avatar-border-radius, var(--noctis-radius-md));
2389
+ --_avatar-ring-width: var(--noctis-avatar-ring-width, 1px);
2390
+ --_avatar-ring-offset-width: var(--noctis-avatar-ring-offset-width, 2px);
2391
+ --_avatar-group-overlap: var(--noctis-avatar-group-overlap, 0.625rem);
2392
+ }
2393
+ [data-slot="noctis-avatar-group"] {
2394
+ --_avatar-group-ring-color: var(--noctis-avatar-group-ring-color, var(--noctis-color-background));
2395
+ }
2396
+ [data-slot="noctis-avatar-indicator"] {
2397
+ --_avatar-indicator-size: var(--noctis-avatar-indicator-size, 0.75rem);
2398
+ --_avatar-indicator-inset: var(--noctis-avatar-indicator-inset, 0px);
2399
+ }
2400
+ [data-slot="noctis-avatar"][data-size="2xs"] {
2401
+ --_avatar-size: var(--noctis-avatar-size, 1.25rem);
2402
+ --_avatar-font-size: var(--noctis-avatar-font-size, var(--noctis-text-mini));
2403
+ --_avatar-group-overlap: var(--noctis-avatar-group-overlap, 0.3125rem);
2404
+ }
2405
+ [data-slot="noctis-avatar"][data-size="2xs"] [data-slot="noctis-avatar-indicator"] {
2406
+ --_avatar-indicator-size: var(--noctis-avatar-indicator-size, 0.375rem);
2407
+ }
2408
+ [data-slot="noctis-avatar"][data-size="xs"] {
2409
+ --_avatar-size: var(--noctis-avatar-size, 1.5rem);
2410
+ --_avatar-font-size: var(--noctis-avatar-font-size, var(--noctis-text-mini));
2411
+ --_avatar-group-overlap: var(--noctis-avatar-group-overlap, 0.375rem);
2412
+ }
2413
+ [data-slot="noctis-avatar"][data-size="xs"] [data-slot="noctis-avatar-indicator"] {
2414
+ --_avatar-indicator-size: var(--noctis-avatar-indicator-size, 0.5rem);
2415
+ }
2416
+ [data-slot="noctis-avatar"][data-size="sm"] {
2417
+ --_avatar-size: var(--noctis-avatar-size, 2rem);
2418
+ --_avatar-font-size: var(--noctis-avatar-font-size, var(--noctis-text-mini));
2419
+ --_avatar-group-overlap: var(--noctis-avatar-group-overlap, 0.5rem);
2420
+ }
2421
+ [data-slot="noctis-avatar"][data-size="sm"] [data-slot="noctis-avatar-indicator"] {
2422
+ --_avatar-indicator-size: var(--noctis-avatar-indicator-size, 0.625rem);
2423
+ }
2424
+ [data-slot="noctis-avatar"][data-size="lg"] {
2425
+ --_avatar-size: var(--noctis-avatar-size, 3rem);
2426
+ --_avatar-font-size: var(--noctis-avatar-font-size, var(--noctis-text-regular));
2427
+ --_avatar-group-overlap: var(--noctis-avatar-group-overlap, 0.75rem);
2428
+ }
2429
+ [data-slot="noctis-avatar"][data-size="lg"] [data-slot="noctis-avatar-indicator"] {
2430
+ --_avatar-indicator-size: var(--noctis-avatar-indicator-size, 0.875rem);
2431
+ }
2432
+ [data-slot="noctis-avatar"][data-size="xl"] {
2433
+ --_avatar-size: var(--noctis-avatar-size, 4rem);
2434
+ --_avatar-font-size: var(--noctis-avatar-font-size, var(--noctis-text-large));
2435
+ --_avatar-group-overlap: var(--noctis-avatar-group-overlap, 1rem);
2436
+ }
2437
+ [data-slot="noctis-avatar"][data-size="xl"] [data-slot="noctis-avatar-indicator"] {
2438
+ --_avatar-indicator-size: var(--noctis-avatar-indicator-size, 1rem);
2439
+ }
2440
+ [data-slot="noctis-otp-field"] {
2441
+ --_otp-field-gap: var(--noctis-otp-field-gap, 0.5rem);
2442
+ }
2443
+ [data-slot="noctis-otp-field-input"] {
2444
+ --_otp-field-input-block-size: var(--noctis-otp-field-input-block-size, var(--noctis-size-control-md));
2445
+ --_otp-field-input-inline-size: var(--noctis-otp-field-input-inline-size, var(--noctis-size-control-md));
2446
+ --_otp-field-input-font-size: var(--noctis-otp-field-input-font-size, var(--noctis-text-regular));
2447
+ --_otp-field-input-border-radius: var(--noctis-otp-field-input-border-radius, var(--noctis-radius-control));
2448
+ --_otp-field-input-ring-width: var(--noctis-otp-field-input-ring-width, var(--noctis-size-focus-ring-width));
2449
+ }
2450
+ [data-slot="noctis-otp-field-separator"] {
2451
+ --_otp-field-separator-size: var(--noctis-otp-field-separator-size, 1rem);
2452
+ }
2453
+ [data-slot="noctis-otp-field"][data-size="lg"] [data-slot="noctis-otp-field-input"] {
2454
+ --_otp-field-input-block-size: var(--noctis-otp-field-input-block-size, var(--noctis-size-control-lg));
2455
+ --_otp-field-input-inline-size: var(--noctis-otp-field-input-inline-size, var(--noctis-size-control-lg));
2456
+ --_otp-field-input-font-size: var(--noctis-otp-field-input-font-size, var(--noctis-text-large));
2457
+ }
2458
+ [data-slot="noctis-switch"] {
2459
+ --_switch-block-size: var(--noctis-switch-block-size, var(--noctis-size-control-xs));
2460
+ --_switch-inline-size: var(--noctis-switch-inline-size, calc(var(--noctis-size-control-xs) * 1.8));
2461
+ --_switch-padding: var(--noctis-switch-padding, 2px);
2462
+ --_switch-border-width: var(--noctis-switch-border-width, 1px);
2463
+ --_switch-inset: var(--noctis-switch-inset, 6px);
2464
+ --_switch-outline-width: var(--noctis-switch-outline-width, 3px);
2465
+ --_switch-transition-duration: var(--noctis-switch-transition-duration, var(--noctis-duration-quick));
2466
+ --_switch-background-color: var(--noctis-switch-background-color, var(--noctis-color-well));
2467
+ --_switch-background-color-checked: var(--noctis-switch-background-color-checked, var(--noctis-color-accent));
2468
+ --_switch-border-color: var(--noctis-switch-border-color, var(--noctis-color-border-strong));
2469
+ --_switch-border-color-checked: var(--noctis-switch-border-color-checked, var(--noctis-color-accent));
2470
+ }
2471
+ [data-slot="noctis-switch-thumb"] {
2472
+ --_switch-thumb-size: var(--noctis-switch-thumb-size, calc(var(--noctis-size-control-xs) * 0.7));
2473
+ --_switch-thumb-background-color: var(--noctis-switch-thumb-background-color, var(--noctis-color-accent-foreground));
2474
+ --_switch-thumb-background-color-checked: var(
2475
+ --noctis-switch-thumb-background-color-checked,
2476
+ var(--noctis-color-accent-foreground)
2477
+ );
2478
+ }
2479
+ [data-slot="noctis-switch-field"] {
2480
+ --_switch-field-gap: var(--noctis-switch-field-gap, 0.75rem);
2481
+ }
2482
+ [data-slot="noctis-switch"][data-size="sm"] {
2483
+ --_switch-block-size: var(--noctis-switch-block-size, calc(var(--noctis-size-control-xs) * 0.8));
2484
+ --_switch-inline-size: var(--noctis-switch-inline-size, calc(var(--noctis-size-control-xs) * 1.4));
2485
+ }
2486
+ [data-slot="noctis-switch"][data-size="sm"] [data-slot="noctis-switch-thumb"] {
2487
+ --_switch-thumb-size: var(--noctis-switch-thumb-size, calc(var(--noctis-size-control-xs) * 0.5));
2488
+ }
2489
+ [data-slot="noctis-switch"][data-size="lg"] {
2490
+ --_switch-block-size: var(--noctis-switch-block-size, calc(var(--noctis-size-control-xs) * 1.2));
2491
+ --_switch-inline-size: var(--noctis-switch-inline-size, calc(var(--noctis-size-control-xs) * 2.2));
2492
+ }
2493
+ [data-slot="noctis-switch"][data-size="lg"] [data-slot="noctis-switch-thumb"] {
2494
+ --_switch-thumb-size: var(--noctis-switch-thumb-size, calc(var(--noctis-size-control-xs) * 0.9));
2495
+ }
2496
+ [data-slot="noctis-progress"] {
2497
+ --_progress-root-gap: var(--noctis-progress-root-gap, var(--noctis-space-2));
2498
+ }
2499
+ [data-slot="noctis-progress-track"] {
2500
+ --_progress-track-block-size: var(--noctis-progress-track-block-size, 0.5rem);
2501
+ --_progress-track-border-radius: var(--noctis-progress-track-border-radius, var(--noctis-radius-control));
2502
+ --_progress-track-background-color: var(--noctis-progress-track-background-color, var(--noctis-color-well));
2503
+ }
2504
+ [data-slot="noctis-progress-indicator"] {
2505
+ --_progress-indicator-background-color: var(--noctis-progress-indicator-background-color, var(--noctis-color-accent));
2506
+ --_progress-indicator-border-radius: var(--noctis-progress-indicator-border-radius, var(--noctis-radius-control));
2507
+ --_progress-indicator-transition-duration: var(
2508
+ --noctis-progress-indicator-transition-duration,
2509
+ var(--noctis-duration-regular)
2510
+ );
2511
+ }
2512
+ [data-slot="noctis-progress-label"] {
2513
+ --_progress-label-color: var(--noctis-progress-label-color, var(--noctis-color-foreground));
2514
+ --_progress-label-font-size: var(--noctis-progress-label-font-size, var(--noctis-text-small));
2515
+ }
2516
+ [data-slot="noctis-progress-value"] {
2517
+ --_progress-value-color: var(--noctis-progress-value-color, var(--noctis-color-muted));
2518
+ --_progress-value-font-size: var(--noctis-progress-value-font-size, var(--noctis-text-small));
2519
+ }
2520
+ [data-slot="noctis-progress"][data-size="sm"] [data-slot="noctis-progress-track"] {
2521
+ --_progress-track-block-size: var(--noctis-progress-track-block-size, 0.25rem);
2522
+ }
2523
+ [data-slot="noctis-progress"][data-tone="success"] [data-slot="noctis-progress-indicator"] {
2524
+ --_progress-indicator-background-color: var(--noctis-progress-indicator-background-color, var(--noctis-color-success));
2525
+ }
2526
+ [data-slot="noctis-progress"][data-tone="warning"] [data-slot="noctis-progress-indicator"] {
2527
+ --_progress-indicator-background-color: var(--noctis-progress-indicator-background-color, var(--noctis-color-warning));
2528
+ }
2529
+ [data-slot="noctis-progress"][data-tone="danger"] [data-slot="noctis-progress-indicator"] {
2530
+ --_progress-indicator-background-color: var(--noctis-progress-indicator-background-color, var(--noctis-color-danger));
2531
+ }
2532
+ [data-slot="noctis-select-trigger"] {
2533
+ --_select-trigger-height: var(--noctis-select-trigger-height, var(--noctis-size-control-md));
2534
+ --_select-trigger-padding-inline: var(--noctis-select-trigger-padding-inline, var(--noctis-space-3));
2535
+ --_select-trigger-gap: var(--noctis-select-trigger-gap, var(--noctis-space-2));
2536
+ --_select-trigger-border-radius: var(--noctis-select-trigger-border-radius, var(--noctis-radius-control));
2537
+ --_select-trigger-font-size: var(--noctis-select-trigger-font-size, var(--noctis-text-small));
2538
+ --_select-trigger-shadow: var(--noctis-select-trigger-shadow, var(--noctis-shadow-inset));
2539
+ }
2540
+ [data-slot="noctis-select-popup"] {
2541
+ --_select-popup-min-width: var(--noctis-select-popup-min-width, 8rem);
2542
+ --_select-popup-max-width: var(--noctis-select-popup-max-width, 24rem);
2543
+ --_select-popup-overlay-inset: var(--noctis-select-popup-overlay-inset, 0px);
2544
+ }
2545
+ [data-slot="noctis-select-backdrop"] {
2546
+ --_select-backdrop-background-color: var(--noctis-select-backdrop-background-color, transparent);
2547
+ }
2548
+ [data-slot="noctis-select-scroll-up-arrow"] {
2549
+ --_select-scroll-up-arrow-height: var(--noctis-select-scroll-up-arrow-height, var(--noctis-space-6));
2550
+ --_select-scroll-up-arrow-color: var(--noctis-select-scroll-up-arrow-color, var(--noctis-color-muted));
2551
+ }
2552
+ [data-slot="noctis-select-scroll-down-arrow"] {
2553
+ --_select-scroll-down-arrow-height: var(--noctis-select-scroll-down-arrow-height, var(--noctis-space-6));
2554
+ --_select-scroll-down-arrow-color: var(--noctis-select-scroll-down-arrow-color, var(--noctis-color-muted));
2555
+ }
2556
+ [data-slot="noctis-select-list"] {
2557
+ --_select-list-padding: var(--noctis-select-list-padding, 0.25rem);
2558
+ }
2559
+ [data-slot="noctis-select-item"] {
2560
+ --_select-item-height: var(--noctis-select-item-height, 2rem);
2561
+ --_select-item-padding-inline: var(--noctis-select-item-padding-inline, 0.625rem);
2562
+ --_select-item-gap: var(--noctis-select-item-gap, 0.625rem);
2563
+ --_select-item-border-radius: var(--noctis-select-item-border-radius, var(--noctis-radius-sm));
2564
+ --_select-item-color: var(--noctis-select-item-color, var(--noctis-color-foreground));
2565
+ --_select-item-color-highlighted: var(--noctis-select-item-color-highlighted, var(--noctis-color-foreground));
2566
+ --_select-item-background-color-highlighted: var(
2567
+ --noctis-select-item-background-color-highlighted,
2568
+ var(--noctis-color-control-ghost-hover)
2569
+ );
2570
+ --_select-item-icon-size: var(--noctis-select-item-icon-size, 1rem);
2571
+ }
2572
+ [data-slot="noctis-select-item-description"] {
2573
+ --_select-item-description-font-size: var(--noctis-select-item-description-font-size, var(--noctis-text-mini));
2574
+ --_select-item-description-color: var(--noctis-select-item-description-color, var(--noctis-color-muted));
2575
+ }
2576
+ [data-slot="noctis-select-item-indicator"] {
2577
+ --_select-item-indicator-size: var(--noctis-select-item-indicator-size, 0.875rem);
2578
+ }
2579
+ [data-slot="noctis-select-separator"] {
2580
+ --_select-separator-thickness: var(--noctis-select-separator-thickness, var(--noctis-space-px));
2581
+ }
2582
+ [data-slot="noctis-select-group-label"] {
2583
+ --_select-group-label-padding-inline: var(--noctis-select-group-label-padding-inline, 0.625rem);
2584
+ --_select-group-label-padding-block-start: var(--noctis-select-group-label-padding-block-start, var(--noctis-space-2));
2585
+ --_select-group-label-padding-block-end: var(--noctis-select-group-label-padding-block-end, var(--noctis-space-1\.5));
2586
+ }
2587
+ [data-slot="noctis-select-trigger"][data-size="lg"] {
2588
+ --_select-trigger-height: var(--noctis-select-trigger-height, var(--noctis-size-control-lg));
2589
+ --_select-trigger-padding-inline: var(--noctis-select-trigger-padding-inline, var(--noctis-space-4));
2590
+ --_select-trigger-font-size: var(--noctis-select-trigger-font-size, var(--noctis-text-regular));
2591
+ }
2592
+ [data-slot="noctis-icon"] {
2593
+ --_icon-size: var(--noctis-icon-size, var(--noctis-space-4));
2594
+ }
2595
+ [data-slot="noctis-icon"][data-size="xs"] {
2596
+ --_icon-size: var(--noctis-icon-size, var(--noctis-space-3));
2597
+ }
2598
+ [data-slot="noctis-icon"][data-size="sm"] {
2599
+ --_icon-size: var(--noctis-icon-size, var(--noctis-space-3\.5));
2600
+ }
2601
+ [data-slot="noctis-icon"][data-size="lg"] {
2602
+ --_icon-size: var(--noctis-icon-size, var(--noctis-space-5));
2603
+ }
2604
+ [data-slot="noctis-icon"][data-size="xl"] {
2605
+ --_icon-size: var(--noctis-icon-size, var(--noctis-space-6));
2606
+ }
2607
+ }