nuvox 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUILDING-COMPONENTS.md +555 -551
- package/CHANGELOG.md +66 -147
- package/dist/chunk-HAMPWL7I.js +2457 -0
- package/dist/chunk-HAMPWL7I.js.map +1 -0
- package/dist/index.cjs +967 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +65 -1
- package/dist/pdf-viewer-CF7o-73J.d.cts +1092 -0
- package/dist/pdf-viewer-CF7o-73J.d.ts +1092 -0
- package/dist/react/index.cjs +11754 -5768
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.css +3446 -918
- package/dist/react/index.css.map +1 -1
- package/dist/react/index.d.cts +521 -5
- package/dist/react/index.d.ts +521 -5
- package/dist/react/index.js +11273 -6430
- package/dist/react/index.js.map +1 -1
- package/dist/themes/generated.css +55 -55
- package/package.json +2 -2
- package/dist/chunk-KKRVJF3Y.js +0 -1159
- package/dist/chunk-KKRVJF3Y.js.map +0 -1
- package/dist/context-menu-CcYi_Dc_.d.cts +0 -635
- package/dist/context-menu-CcYi_Dc_.d.ts +0 -635
package/dist/react/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react/Button.css","../../src/react/Field.css","../../src/react/Input.css","../../src/react/Textarea.css","../../src/react/Checkbox.css","../../src/react/Radio.css","../../src/react/Toggle.css","../../src/react/Badge.css","../../src/react/Avatar.css","../../src/react/Spinner.css","../../src/react/Divider.css","../../src/react/Card.css","../../src/react/Alert.css","../../src/react/Modal.css","../../src/react/Tooltip.css","../../src/react/Toast.css","../../src/react/Progress.css","../../src/react/Tabs.css","../../src/react/Accordion.css","../../src/react/DropdownMenu.css","../../src/react/Select.css","../../src/react/Slider.css","../../src/react/Combobox.css","../../src/react/Calendar.css","../../src/react/Popover.css","../../src/react/DatePicker.css","../../src/react/TimePicker.css","../../src/react/ColorPicker.css","../../src/react/Carousel.css","../../src/react/Timeline.css","../../src/react/CommandPalette.css","../../src/react/NumberInput.css","../../src/react/FileUpload.css","../../src/react/Pagination.css","../../src/react/Breadcrumb.css","../../src/react/Skeleton.css","../../src/react/Table.css","../../src/react/Drawer.css","../../src/react/Rating.css","../../src/react/OTPInput.css","../../src/react/PhoneInput.css","../../src/react/StatCard.css"],"sourcesContent":["/* Every value below is a var(--x, fallback) reading from the active\n theme's generated CSS custom properties — this is what makes\n switching data-theme (via NuvoxProvider or Storybook's toolbar)\n restyle the button with zero JS, per CONTRACT.md's CSS-cascade\n theming approach. No hardcoded colors, radii, or durations. */\n\n.nx-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n border-radius: var(--radius-md, 8px);\n /*\n Reads the theme's own border color instead of hardcoding\n transparent — for most themes color.border is a subtle\n near-invisible gray, so this is a barely-there refinement, but\n for brutalism/neobrutalism (color.border: #000000) it's the\n difference between a filled button having no border at all and\n having the bold black border that's core to that theme's whole\n visual identity. No per-theme conditional here — every theme just\n supplies its own value for the same token, per CONTRACT.md.\n */\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n cursor: pointer;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n white-space: nowrap;\n position: relative;\n}\n\n/*\n Every filled/bordered variant gets a resting shadow, and presses in\n slightly with a reduced shadow on :active. This was the one\n component that never picked up shadow at all — every other\n component (Card, Input, Badge, Avatar) got a `var(--shadow-*, ...)`\n pass, but Button was missed, which is exactly why neobrutalism's\n signature hard 4px offset black shadow never appeared on it even\n though the token itself was always correct and available.\n\n The 1px press-in transform is deliberately theme-agnostic (it\n doesn't know or care which direction a given theme's shadow is\n offset) — in flat themes (shadow: none) it's an imperceptible\n no-op, but in neobrutalism specifically it reads as the button\n physically pressing into its own hard shadow, which is that\n theme's whole visual idea.\n*/\n.nx-btn--solid,\n.nx-btn--soft,\n.nx-btn--danger,\n.nx-btn--outline {\n box-shadow: var(--shadow-sm, none);\n}\n.nx-btn--solid:active:not(:disabled),\n.nx-btn--soft:active:not(:disabled),\n.nx-btn--danger:active:not(:disabled),\n.nx-btn--outline:active:not(:disabled) {\n box-shadow: var(--shadow-xs, none);\n transform: translate(1px, 1px);\n}\n\n.nx-btn:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-btn:disabled,\n.nx-btn--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-btn--full {\n width: 100%;\n}\n\n/* Sizes */\n.nx-btn--xs { padding: 4px 10px; font-size: var(--typography-sizeXs, 12px); border-radius: var(--radius-sm, 6px); }\n.nx-btn--sm { padding: 6px 14px; font-size: var(--typography-sizeSm, 14px); border-radius: var(--radius-sm, 6px); }\n.nx-btn--md { padding: 8px 18px; font-size: var(--typography-sizeMd, 16px); }\n.nx-btn--lg { padding: 10px 22px; font-size: var(--typography-sizeLg, 18px); border-radius: var(--radius-lg, 14px); }\n.nx-btn--xl { padding: 12px 28px; font-size: var(--typography-sizeXl, 22px); border-radius: var(--radius-lg, 14px); }\n\n/* Variants */\n.nx-btn--solid {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n}\n.nx-btn--solid:hover:not(:disabled) { background: var(--color-brand-600, #4f46e5); }\n.nx-btn--solid:active:not(:disabled) { background: var(--color-brand-700, #4338ca); }\n\n.nx-btn--outline {\n background: transparent;\n /* Blended toward the theme's own text color (guaranteed readable\n against this theme's background by the theme's own design) so a\n dark-leaning accent like graphite doesn't go low-contrast against\n a dark theme's background — see tokens/contrast.ts. */\n color: color-mix(in srgb, var(--color-brand-600, #4f46e5) 65%, var(--color-text, #111827) 35%);\n border-color: var(--color-brand-500, #6366f1);\n}\n.nx-btn--outline:hover:not(:disabled) { background: var(--color-brand-50, #f0f4ff); }\n\n.nx-btn--ghost {\n background: transparent;\n color: var(--color-text, #111827);\n border-color: transparent;\n}\n.nx-btn--ghost:hover:not(:disabled) { background: var(--color-surfaceRaised, #f3f4f6); }\n\n.nx-btn--soft {\n background: var(--color-brand-50, #f0f4ff);\n color: var(--color-brand-700, #4338ca);\n}\n.nx-btn--soft:hover:not(:disabled) { background: var(--color-brand-100, #e0e8ff); }\n\n.nx-btn--danger {\n background: var(--color-danger-base, #ef4444);\n color: var(--color-textInverse, #ffffff);\n}\n.nx-btn--danger:hover:not(:disabled) { background: var(--color-danger-dark, #dc2626); }\n\n/* Loading state */\n.nx-btn--loading {\n cursor: wait;\n}\n\n.nx-btn__spinner {\n width: 1em;\n height: 1em;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: nx-btn-spin 0.6s linear infinite;\n}\n\n@keyframes nx-btn-spin {\n to { transform: rotate(360deg); }\n}\n\n/* Icon slots */\n.nx-btn__icon {\n display: inline-flex;\n align-items: center;\n}\n","/* Shared across Input/Textarea/Checkbox/Radio/Toggle — the label +\n helper/error text markup every Category B component needs. Kept\n in one file so this gets decided once (CONTRACT.md's \"decide the\n shape once\" principle applied to CSS, not just props). */\n\n.nx-field {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-field__label {\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #111827);\n}\n\n.nx-field__required {\n color: var(--color-danger-base, #ef4444);\n margin-left: 2px;\n}\n\n.nx-field__helper {\n font-size: var(--typography-sizeXs, 12px);\n color: var(--color-textMuted, #6b7280);\n line-height: var(--typography-lineHeightNormal, 1.5);\n}\n\n.nx-field__helper--error {\n color: var(--color-danger-base, #ef4444);\n}\n\n.nx-field__count {\n font-size: var(--typography-sizeXs, 12px);\n color: var(--color-textMuted, #6b7280);\n align-self: flex-end;\n}\n\n.nx-field__count--over {\n color: var(--color-danger-base, #ef4444);\n}\n",".nx-input-wrapper {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs, 4px);\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, none);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-input-wrapper:focus-within {\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-input-wrapper--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n.nx-input-wrapper--invalid:focus-within {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #ef4444) 20%, transparent);\n}\n\n.nx-input-wrapper--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n}\n\n.nx-input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n}\n\n.nx-input::placeholder {\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-input:disabled {\n cursor: not-allowed;\n}\n\n/* Sizes — set padding on the wrapper (not the input) so prefix/suffix\n adornments align with the same vertical rhythm as the text. */\n.nx-input-wrapper--xs { padding: 4px 8px; font-size: var(--typography-sizeXs, 12px); }\n.nx-input-wrapper--sm { padding: 5px 10px; font-size: var(--typography-sizeSm, 14px); }\n.nx-input-wrapper--md { padding: 8px 12px; font-size: var(--typography-sizeMd, 16px); }\n.nx-input-wrapper--lg { padding: 10px 14px; font-size: var(--typography-sizeLg, 18px); }\n.nx-input-wrapper--xl { padding: 12px 16px; font-size: var(--typography-sizeXl, 22px); }\n\n.nx-input--xs, .nx-input--sm, .nx-input--md, .nx-input--lg, .nx-input--xl {\n font-size: inherit;\n}\n\n.nx-input__adornment {\n display: inline-flex;\n align-items: center;\n color: var(--color-textMuted, #6b7280);\n flex-shrink: 0;\n}\n",".nx-textarea {\n width: 100%;\n min-height: 5em;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, none);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n padding: 8px 12px;\n resize: vertical;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-textarea::placeholder {\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-textarea:focus {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-textarea--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n.nx-textarea--invalid:focus {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #ef4444) 20%, transparent);\n}\n\n.nx-textarea--disabled,\n.nx-textarea:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n resize: none;\n}\n\n.nx-textarea--auto-grow {\n resize: none;\n overflow: hidden;\n}\n\n.nx-textarea--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-textarea--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-textarea--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-textarea--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-textarea--xl { font-size: var(--typography-sizeXl, 22px); }\n\n.nx-textarea__footer {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-sm, 8px);\n}\n",".nx-checkbox {\n display: inline-flex;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n cursor: pointer;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-checkbox--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-checkbox__control {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n}\n\n/* The real input sits invisibly on top of the box for correct\n hit-testing, keyboard focus, and form semantics — see\n Checkbox.tsx / core/checkbox.ts for why the box itself carries\n no JS-computed checked state. */\n.nx-checkbox__input {\n position: absolute;\n inset: 0;\n margin: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n}\n.nx-checkbox__input:disabled {\n cursor: not-allowed;\n}\n\n.nx-checkbox__box {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthMedium, 1.5px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-sm, 6px);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n pointer-events: none;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-checkbox--invalid .nx-checkbox__box {\n border-color: var(--color-danger-base, #ef4444);\n}\n\n.nx-checkbox__check {\n width: 70%;\n height: 70%;\n color: var(--color-brand-onAccent, #ffffff);\n opacity: 0;\n transform: scale(0.6);\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-checkbox__dash {\n display: none;\n width: 55%;\n height: 2px;\n background: var(--color-brand-onAccent, #ffffff);\n border-radius: 1px;\n}\n\n.nx-checkbox__input:checked + .nx-checkbox__box,\n.nx-checkbox__input:indeterminate + .nx-checkbox__box {\n background: var(--color-brand-500, #6366f1);\n border-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-checkbox__input:checked + .nx-checkbox__box .nx-checkbox__check {\n opacity: 1;\n transform: scale(1);\n}\n\n.nx-checkbox__input:indeterminate + .nx-checkbox__box .nx-checkbox__check {\n display: none;\n}\n.nx-checkbox__input:indeterminate + .nx-checkbox__box .nx-checkbox__dash {\n display: block;\n}\n\n.nx-checkbox__input:focus-visible + .nx-checkbox__box {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-checkbox__label {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-text, #111827);\n line-height: var(--typography-lineHeightNormal, 1.5);\n padding-top: 1px;\n}\n\n/* Sizes */\n.nx-checkbox--xs .nx-checkbox__control { width: 14px; height: 14px; }\n.nx-checkbox--sm .nx-checkbox__control { width: 16px; height: 16px; }\n.nx-checkbox--md .nx-checkbox__control { width: 18px; height: 18px; }\n.nx-checkbox--lg .nx-checkbox__control { width: 22px; height: 22px; }\n.nx-checkbox--xl .nx-checkbox__control { width: 26px; height: 26px; }\n\n.nx-checkbox--xs .nx-checkbox__label { font-size: var(--typography-sizeXs, 12px); }\n.nx-checkbox--lg .nx-checkbox__label { font-size: var(--typography-sizeLg, 18px); }\n.nx-checkbox--xl .nx-checkbox__label { font-size: var(--typography-sizeXl, 22px); }\n",".nx-radio {\n display: inline-flex;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n cursor: pointer;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-radio--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-radio__control {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n}\n\n.nx-radio__input {\n position: absolute;\n inset: 0;\n margin: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n border-radius: 50%;\n}\n.nx-radio__input:disabled {\n cursor: not-allowed;\n}\n\n/* The ring is a real sibling span of the input (not a pseudo-\n element of their shared parent), so a plain adjacent-sibling\n selector off :checked/:focus-visible can reach it directly — same\n reasoning as Checkbox.css's box. */\n.nx-radio__ring {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthMedium, 1.5px) var(--border-style, solid) var(--color-border, #e5e7eb);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n pointer-events: none;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-radio--invalid .nx-radio__ring {\n border-color: var(--color-danger-base, #ef4444);\n}\n\n.nx-radio__dot {\n width: 45%;\n height: 45%;\n border-radius: 50%;\n background: var(--color-brand-500, #6366f1);\n opacity: 0;\n transform: scale(0.4);\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-radio__input:checked + .nx-radio__ring {\n border-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-radio__input:checked + .nx-radio__ring .nx-radio__dot {\n opacity: 1;\n transform: scale(1);\n}\n\n.nx-radio__input:focus-visible + .nx-radio__ring {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-radio__label {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-text, #111827);\n line-height: var(--typography-lineHeightNormal, 1.5);\n padding-top: 1px;\n}\n\n.nx-radio--xs .nx-radio__control { width: 14px; height: 14px; }\n.nx-radio--sm .nx-radio__control { width: 16px; height: 16px; }\n.nx-radio--md .nx-radio__control { width: 18px; height: 18px; }\n.nx-radio--lg .nx-radio__control { width: 22px; height: 22px; }\n.nx-radio--xl .nx-radio__control { width: 26px; height: 26px; }\n\n.nx-radio--xs .nx-radio__label { font-size: var(--typography-sizeXs, 12px); }\n.nx-radio--lg .nx-radio__label { font-size: var(--typography-sizeLg, 18px); }\n.nx-radio--xl .nx-radio__label { font-size: var(--typography-sizeXl, 22px); }\n",".nx-toggle {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n cursor: pointer;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-toggle--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-toggle__control {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n width: 36px;\n height: 20px;\n}\n\n.nx-toggle__input {\n position: absolute;\n inset: 0;\n margin: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n}\n.nx-toggle__input:disabled {\n cursor: not-allowed;\n}\n\n.nx-toggle__track {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-neutral-300, #d1d5db);\n pointer-events: none;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-toggle--invalid .nx-toggle__track {\n box-shadow: inset 0 0 0 1.5px var(--color-danger-base, #ef4444);\n}\n\n.nx-toggle__thumb {\n width: 16px;\n height: 16px;\n margin-left: 2px;\n border-radius: 50%;\n background: var(--color-neutral-0, #ffffff);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n transition: transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-toggle__input:checked + .nx-toggle__track {\n background: var(--color-brand-500, #6366f1);\n}\n\n.nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb {\n transform: translateX(16px);\n}\n\n.nx-toggle__input:focus-visible + .nx-toggle__track {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-toggle__label {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-text, #111827);\n line-height: var(--typography-lineHeightNormal, 1.5);\n}\n\n/* Sizes */\n.nx-toggle--xs .nx-toggle__control { width: 28px; height: 16px; }\n.nx-toggle--xs .nx-toggle__thumb { width: 12px; height: 12px; }\n.nx-toggle--xs .nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb { transform: translateX(12px); }\n\n.nx-toggle--sm .nx-toggle__control { width: 32px; height: 18px; }\n.nx-toggle--sm .nx-toggle__thumb { width: 14px; height: 14px; }\n.nx-toggle--sm .nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb { transform: translateX(14px); }\n\n.nx-toggle--lg .nx-toggle__control { width: 44px; height: 24px; }\n.nx-toggle--lg .nx-toggle__thumb { width: 20px; height: 20px; }\n.nx-toggle--lg .nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb { transform: translateX(20px); }\n\n.nx-toggle--xl .nx-toggle__control { width: 52px; height: 28px; }\n.nx-toggle--xl .nx-toggle__thumb { width: 24px; height: 24px; }\n.nx-toggle--xl .nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb { transform: translateX(24px); }\n\n.nx-toggle--xs .nx-toggle__label { font-size: var(--typography-sizeXs, 12px); }\n.nx-toggle--lg .nx-toggle__label { font-size: var(--typography-sizeLg, 18px); }\n.nx-toggle--xl .nx-toggle__label { font-size: var(--typography-sizeXl, 22px); }\n",".nx-badge {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n border-radius: var(--radius-full, 9999px);\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n white-space: nowrap;\n}\n\n/* Sizes */\n.nx-badge--xs { padding: 1px 6px; font-size: 10px; }\n.nx-badge--sm { padding: 2px 8px; font-size: var(--typography-sizeXs, 12px); }\n.nx-badge--md { padding: 3px 10px; font-size: var(--typography-sizeXs, 12px); }\n.nx-badge--lg { padding: 4px 12px; font-size: var(--typography-sizeSm, 14px); }\n.nx-badge--xl { padding: 5px 14px; font-size: var(--typography-sizeMd, 16px); }\n\n/* Variants */\n.nx-badge--solid {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n box-shadow: var(--shadow-xs, none);\n}\n\n.nx-badge--outline {\n background: transparent;\n color: color-mix(in srgb, var(--color-brand-600, #4f46e5) 65%, var(--color-text, #111827) 35%);\n border-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-badge--soft {\n background: var(--color-brand-50, #f0f4ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n/* Dot mode — collapses to a small circle, no label */\n.nx-badge--dot {\n padding: 0;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n}\n.nx-badge--dot.nx-badge--xs { width: 6px; height: 6px; }\n.nx-badge--dot.nx-badge--lg { width: 10px; height: 10px; }\n.nx-badge--dot.nx-badge--xl { width: 12px; height: 12px; }\n\n.nx-badge__icon {\n display: inline-flex;\n align-items: center;\n}\n\n.nx-badge__dismiss {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0 -4px 0 0;\n border: none;\n background: transparent;\n color: inherit;\n cursor: pointer;\n border-radius: 50%;\n opacity: 0.7;\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-badge__dismiss:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.1);\n}\n",".nx-avatar {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n user-select: none;\n}\n\n.nx-avatar__visual {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-weight: var(--typography-weightMedium, 500);\n background: var(--color-neutral-200, #e5e7eb);\n color: var(--color-textMuted, #6b7280);\n box-shadow: var(--shadow-xs, none);\n}\n\n.nx-avatar--circle .nx-avatar__visual { border-radius: 50%; }\n.nx-avatar--square .nx-avatar__visual { border-radius: var(--radius-md, 8px); }\n\n.nx-avatar--clickable {\n cursor: pointer;\n}\n.nx-avatar--clickable:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-avatar__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.nx-avatar__initials {\n line-height: 1;\n}\n\n/* Sizes */\n.nx-avatar--xs { width: 24px; height: 24px; font-size: 10px; }\n.nx-avatar--sm { width: 32px; height: 32px; font-size: var(--typography-sizeXs, 12px); }\n.nx-avatar--md { width: 40px; height: 40px; font-size: var(--typography-sizeSm, 14px); }\n.nx-avatar--lg { width: 56px; height: 56px; font-size: var(--typography-sizeLg, 18px); }\n.nx-avatar--xl { width: 72px; height: 72px; font-size: var(--typography-sizeXl, 22px); }\n.nx-avatar--2xl { width: 96px; height: 96px; font-size: 28px; }\n\n.nx-avatar__status {\n position: absolute;\n right: 0;\n bottom: 0;\n width: 28%;\n height: 28%;\n min-width: 8px;\n min-height: 8px;\n border-radius: 50%;\n border: 2px solid var(--color-surface, #ffffff);\n}\n\n.nx-avatar__status--online { background: var(--color-success-base, #22c55e); }\n.nx-avatar__status--offline { background: var(--color-neutral-400, #9ca3af); }\n.nx-avatar__status--away { background: var(--color-warning-base, #f59e0b); }\n.nx-avatar__status--busy { background: var(--color-danger-base, #ef4444); }\n",".nx-spinner {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--color-brand-500, #6366f1);\n}\n\n/* Sizes — applies to both variants via em-relative inner sizing */\n.nx-spinner--xs { width: 14px; height: 14px; }\n.nx-spinner--sm { width: 18px; height: 18px; }\n.nx-spinner--md { width: 24px; height: 24px; }\n.nx-spinner--lg { width: 32px; height: 32px; }\n.nx-spinner--xl { width: 44px; height: 44px; }\n\n/* =========================================================\n Circular and geometric — unchanged\n ========================================================= */\n\n.nx-spinner__ring-svg {\n width: 100%;\n height: 100%;\n animation: nx-spinner-rotate 0.8s linear infinite;\n}\n\n@keyframes nx-spinner-rotate {\n to { transform: rotate(360deg); }\n}\n\n.nx-spinner__dots {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.3em;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__dot {\n width: 22%;\n height: 22%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-dot-bounce 0.9s var(--motion-easeStandard, ease) infinite;\n}\n\n.nx-spinner__dot:nth-child(2) { animation-delay: 0.15s; }\n.nx-spinner__dot:nth-child(3) { animation-delay: 0.3s; }\n\n@keyframes nx-spinner-dot-bounce {\n 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }\n 40% { opacity: 1; transform: scale(1); }\n}\n\n.nx-spinner__bars {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.18em;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__bar {\n width: 18%;\n height: 40%;\n background: currentColor;\n border-radius: var(--radius-full, 2px);\n animation: nx-spinner-bar-scale 1s ease-in-out infinite;\n}\n\n.nx-spinner__bar:nth-child(1) { animation-delay: -0.4s; }\n.nx-spinner__bar:nth-child(2) { animation-delay: -0.2s; }\n.nx-spinner__bar:nth-child(3) { animation-delay: 0s; }\n.nx-spinner__bar:nth-child(4) { animation-delay: 0.2s; }\n\n@keyframes nx-spinner-bar-scale {\n 0%, 100% { transform: scaleY(0.4); opacity: 0.5; }\n 50% { transform: scaleY(1); opacity: 1; }\n}\n\n.nx-spinner__pulse {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-pulse 1.1s var(--motion-easeStandard, ease) infinite;\n}\n\n@keyframes nx-spinner-pulse {\n 0% { transform: scale(0.6); opacity: 1; }\n 100% { transform: scale(1); opacity: 0; }\n}\n\n.nx-spinner__dual-ring {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__dual-ring-outer,\n.nx-spinner__dual-ring-inner {\n position: absolute;\n inset: 0;\n border-radius: 50%;\n border: 3px solid transparent;\n}\n\n.nx-spinner__dual-ring-outer {\n border-top-color: currentColor;\n animation: nx-spinner-rotate 1s linear infinite;\n}\n\n.nx-spinner__dual-ring-inner {\n inset: 22%;\n opacity: 0.5;\n border-top-color: currentColor;\n animation: nx-spinner-rotate 0.7s linear infinite reverse;\n}\n\n.nx-spinner__ripple {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__ripple-wave {\n position: absolute;\n inset: 0;\n margin: auto;\n width: 0;\n height: 0;\n border-radius: 50%;\n border: 3px solid currentColor;\n animation: nx-spinner-ripple 1.4s var(--motion-easeStandard, ease) infinite;\n}\n\n.nx-spinner__ripple-wave:nth-child(2) {\n animation-delay: 0.7s;\n}\n\n@keyframes nx-spinner-ripple {\n 0% { width: 0; height: 0; opacity: 1; }\n 100% { width: 100%; height: 100%; opacity: 0; }\n}\n\n/* Orbit (fixed) — a nucleus dot at center, two plain concentric\n circles (drawn face-on, no tilt/scaleY, so no ellipse distortion),\n each with its own satellite dot riding on it. The spin wrappers\n are now full-size (inset: 0) siblings of the rings rather than\n nested inside each ring's own (shrunk) box, and each satellite is\n positioned by the ring's actual radius as a percentage of the full\n container. That fixes two bugs: the outer satellite was centered\n directly on the ring's stroke and, being large relative to the\n ring, visually fused with it into an oval; and the inner satellite\n was sized against the inner ring's own already-shrunk box (inset:\n 27%), making it tiny and off-track. Sizing the outer dot down a\n notch also reduces overlap with the ring so it reads as a distinct\n circle rather than a merged blob. */\n.nx-spinner__orbit {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__orbit-nucleus {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 20%;\n height: 20%;\n aspect-ratio: 1;\n transform: translate(-50%, -50%);\n border-radius: 50%;\n background: currentColor;\n}\n\n.nx-spinner__orbit-ring {\n position: absolute;\n aspect-ratio: 1;\n border: 1.5px solid currentColor;\n border-radius: 50%;\n opacity: 0.5;\n}\n\n.nx-spinner__orbit-ring--outer { inset: 0; }\n.nx-spinner__orbit-ring--inner { inset: 27%; }\n\n.nx-spinner__orbit-spin {\n position: absolute;\n inset: 0;\n animation: nx-spinner-rotate 1.5s linear infinite;\n}\n\n.nx-spinner__orbit-spin--inner {\n animation-duration: 1s;\n animation-direction: reverse;\n}\n\n.nx-spinner__orbit-satellite {\n position: absolute;\n left: 50%;\n border-radius: 50%;\n background: currentColor;\n}\n\n.nx-spinner__orbit-satellite--outer {\n top: -8%;\n width: 16%;\n height: 16%;\n margin-left: -8%;\n}\n\n.nx-spinner__orbit-satellite--inner {\n top: 20.5%;\n width: 13%;\n height: 13%;\n margin-left: -6.5%;\n}\n\n.nx-spinner__bounce-track {\n display: flex;\n align-items: flex-end;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__bounce-ball {\n width: 40%;\n height: 40%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-bounce 0.6s ease-in-out infinite;\n}\n\n@keyframes nx-spinner-bounce {\n 0%, 100% { transform: translateY(0) scaleX(1.15) scaleY(0.85); }\n 50% { transform: translateY(-65%) scaleX(1) scaleY(1); }\n}\n\n.nx-spinner__conic {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: conic-gradient(from 0deg, transparent 0%, currentColor 100%);\n -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));\n mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));\n animation: nx-spinner-rotate 0.9s linear infinite;\n}\n\n/* Buffer — moved here from the extended set: it's a full-rotation\n ring motion (same family as ring/dual-ring/conic), not a creative\n silhouette. Twelve short ticks arranged in a ring, fading from full\n opacity down to faint across the circle, the whole ring spinning as\n one rigid body — the classic video-buffering / native\n activity-indicator look (the fading tail is what reads as\n \"loading\", distinct from \"ring\"'s single stroked arc or \"spiral\"'s\n concentric rings). */\n.nx-spinner__buffer-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__buffer-group {\n transform-box: fill-box;\n transform-origin: 50% 50%;\n animation: nx-spinner-rotate 1s linear infinite;\n}\n\n/* =========================================================\n Creative and non-circular\n ========================================================= */\n\n/* Linear — kept as-is, it was fine. */\n.nx-spinner__linear-track {\n position: relative;\n width: 100%;\n height: 22%;\n border-radius: var(--radius-full, 999px);\n background: color-mix(in srgb, currentColor 18%, transparent);\n overflow: hidden;\n}\n\n.nx-spinner__linear-bar {\n position: absolute;\n top: 0;\n left: -40%;\n width: 40%;\n height: 100%;\n border-radius: inherit;\n background: currentColor;\n animation: nx-spinner-linear-slide 1.2s ease-in-out infinite;\n}\n\n@keyframes nx-spinner-linear-slide {\n 0% { left: -40%; }\n 100% { left: 100%; }\n}\n\n/* Heartbeat — kept as-is, it was fine. */\n.nx-spinner__heartbeat-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__heartbeat-path {\n stroke-dasharray: 20 60;\n animation: nx-spinner-heartbeat-dash 1.3s linear infinite;\n}\n\n@keyframes nx-spinner-heartbeat-dash {\n to { stroke-dashoffset: -80; }\n}\n\n/* Infinity (rebuilt on true circular arcs) — traced highlight along\n the lemniscate; dasharray/offset tuned to the new path's length\n (~76 units) so the highlight completes one clean lap. */\n.nx-spinner__infinity-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__infinity-path {\n stroke-dasharray: 19 57;\n animation: nx-spinner-infinity-dash 1.6s linear infinite;\n}\n\n@keyframes nx-spinner-infinity-dash {\n to { stroke-dashoffset: -76; }\n}\n\n/* Hourglass — sand visibly drains from the top bulb into the bottom\n one, then the whole glass flips and it repeats the other way. */\n.nx-spinner__hourglass-svg {\n width: 100%;\n height: 100%;\n animation: nx-spinner-hourglass-flip 2.6s ease-in-out infinite;\n}\n\n.nx-spinner__hourglass-sand-top {\n transform-box: fill-box;\n transform-origin: 50% 0%;\n animation: nx-spinner-hourglass-top 2.6s ease-in-out infinite;\n}\n\n.nx-spinner__hourglass-sand-bottom {\n transform-box: fill-box;\n transform-origin: 50% 100%;\n animation: nx-spinner-hourglass-bottom 2.6s ease-in-out infinite;\n}\n\n.nx-spinner__hourglass-grain {\n animation: nx-spinner-hourglass-grain 2.6s linear infinite;\n}\n\n@keyframes nx-spinner-hourglass-flip {\n 0%, 42% { transform: rotate(0deg); }\n 50%, 92% { transform: rotate(180deg); }\n 100% { transform: rotate(360deg); }\n}\n\n@keyframes nx-spinner-hourglass-top {\n 0% { transform: scaleY(1); }\n 42% { transform: scaleY(0); }\n 50% { transform: scaleY(0); }\n 92% { transform: scaleY(1); }\n 100% { transform: scaleY(1); }\n}\n\n@keyframes nx-spinner-hourglass-bottom {\n 0% { transform: scaleY(0); }\n 42% { transform: scaleY(1); }\n 50% { transform: scaleY(1); }\n 92% { transform: scaleY(0); }\n 100% { transform: scaleY(0); }\n}\n\n@keyframes nx-spinner-hourglass-grain {\n 0%, 42% { opacity: 1; }\n 43%, 49% { opacity: 0; }\n 50%, 92% { opacity: 1; }\n 93%, 100% { opacity: 0; }\n}\n\n/* Pinwheel — curved sail blades around a fixed hub, spinning as one\n rigid body. */\n.nx-spinner__pinwheel-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__pinwheel-blades {\n transform-box: fill-box;\n transform-origin: 50% 50%;\n animation: nx-spinner-rotate 1.1s linear infinite;\n}\n\n/* Radar — a solid sweeping wedge inside a bordered disc; a filled\n sonar-screen sweep, not a thin stroked arc. No blip layer — it\n added noise and never read cleanly as it faded. */\n.nx-spinner__radar {\n position: relative;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n overflow: hidden;\n border: 1.5px solid color-mix(in srgb, currentColor 35%, transparent);\n}\n\n.nx-spinner__radar-sweep {\n position: absolute;\n inset: 0;\n background: conic-gradient(from 0deg, currentColor 0deg, transparent 75deg, transparent 360deg);\n opacity: 0.6;\n animation: nx-spinner-rotate 1.4s linear infinite;\n}\n\n/* Wave — five dots bobbing vertically in sequence: a traveling wave,\n distinct from \"bars\" (in-place height pulse). Dots are ovals\n (taller than wide) with a locked aspect-ratio so flexbox rounding\n can't make any single dot render larger than the rest. */\n.nx-spinner__wave {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.16em;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__wave-dot {\n width: 14%;\n height: 22%;\n aspect-ratio: 7 / 11;\n flex: 0 0 14%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-wave-bob 1s ease-in-out infinite;\n}\n\n.nx-spinner__wave-dot:nth-child(1) { animation-delay: -0.4s; }\n.nx-spinner__wave-dot:nth-child(2) { animation-delay: -0.3s; }\n.nx-spinner__wave-dot:nth-child(3) { animation-delay: -0.2s; }\n.nx-spinner__wave-dot:nth-child(4) { animation-delay: -0.1s; }\n.nx-spinner__wave-dot:nth-child(5) { animation-delay: 0s; }\n\n@keyframes nx-spinner-wave-bob {\n 0%, 60%, 100% { transform: translateY(0); }\n 30% { transform: translateY(-45%); }\n}\n\n/* Helix (rebuilt) — a genuine double helix. Five rows stacked\n vertically; each row holds two dots (strand A and strand B)\n swinging horizontally in mirrored phase, so they cross in the\n middle like two intertwined DNA strands rather than one column\n swaying as a unit. */\n.nx-spinner__helix {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__helix-row {\n position: relative;\n width: 100%;\n height: 16%;\n}\n\n.nx-spinner__helix-dot {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 30%;\n height: 30%;\n margin: -15% 0 0 -15%;\n border-radius: 50%;\n background: currentColor;\n animation-duration: 1.3s;\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n}\n\n.nx-spinner__helix-dot--a { animation-name: nx-spinner-helix-strand-a; z-index: 1; }\n.nx-spinner__helix-dot--b { animation-name: nx-spinner-helix-strand-b; }\n\n.nx-spinner__helix-row:nth-child(1) .nx-spinner__helix-dot { animation-delay: 0s; }\n.nx-spinner__helix-row:nth-child(2) .nx-spinner__helix-dot { animation-delay: 0.1s; }\n.nx-spinner__helix-row:nth-child(3) .nx-spinner__helix-dot { animation-delay: 0.2s; }\n.nx-spinner__helix-row:nth-child(4) .nx-spinner__helix-dot { animation-delay: 0.3s; }\n.nx-spinner__helix-row:nth-child(5) .nx-spinner__helix-dot { animation-delay: 0.4s; }\n\n@keyframes nx-spinner-helix-strand-a {\n 0%, 100% { transform: translateX(-70%) scale(1); opacity: 1; }\n 50% { transform: translateX(70%) scale(0.7); opacity: 0.55; }\n}\n\n@keyframes nx-spinner-helix-strand-b {\n 0%, 100% { transform: translateX(70%) scale(0.7); opacity: 0.55; }\n 50% { transform: translateX(-70%) scale(1); opacity: 1; }\n}\n\n/* Atom (rebuilt) — three tilted orbit tracks, each with its own\n electron. The ring is squashed into an ellipse (scaleY) and\n tilted; a full-size `.atom-spin` inside it rotates continuously,\n carrying the electron around in that squashed coordinate space,\n which is what produces the elliptical orbit *path*.\n\n The electron's own shape is kept perfectly circular via a\n counter-rotation wrapper (`.atom-electron-counter`) that spins at\n the exact same speed as `.atom-spin` but in the opposite\n direction. Rotation and non-uniform scale don't commute, so a\n static counter-scale on the electron (the old approach) only\n cancelled the ring's squash at two points in the orbit and left\n it visibly oval everywhere else. Counter-rotating first cancels\n the ambient rotation the electron sits in, so the squash and its\n plain scaleY(2.5) correction are always axis-aligned and always\n cancel exactly — the electron stays round at every point on the\n orbit, while its *position* (set on `.atom-electron-orbit`, one\n level up, unaffected by the counter-rotation) still sweeps the\n correct ellipse. */\n.nx-spinner__atom {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__atom-nucleus {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 17%;\n height: 17%;\n aspect-ratio: 1;\n /* translate() percentages resolve against the element's OWN box,\n not the parent's — unlike a negative-percent margin trick\n (margin percentages always resolve against the parent's WIDTH,\n even for margin-top), which is what previously distorted this\n into an ellipse. This is a guaranteed circle regardless of the\n parent's aspect ratio. */\n transform: translate(-50%, -50%);\n border-radius: 50%;\n background: currentColor;\n z-index: 1;\n}\n\n.nx-spinner__atom-ring {\n position: absolute;\n inset: 6%;\n border: 1.5px solid currentColor;\n border-radius: 50%;\n opacity: 0.4;\n}\n\n.nx-spinner__atom-ring--a { transform: rotate(0deg) scaleY(0.4); }\n.nx-spinner__atom-ring--b { transform: rotate(60deg) scaleY(0.4); }\n.nx-spinner__atom-ring--c { transform: rotate(120deg) scaleY(0.4); }\n\n.nx-spinner__atom-spin {\n position: absolute;\n inset: 0;\n animation: nx-spinner-rotate 1s linear infinite;\n}\n\n.nx-spinner__atom-ring--b .nx-spinner__atom-spin { animation-duration: 1.3s; animation-direction: reverse; }\n.nx-spinner__atom-ring--c .nx-spinner__atom-spin { animation-duration: 1.6s; }\n\n/* Position-only wrapper: sets where on the orbit the electron sits.\n Never rotated or scaled itself, so it doesn't distort shape. */\n.nx-spinner__atom-electron-orbit {\n position: absolute;\n top: -3%;\n left: 50%;\n width: 14%;\n height: 14%;\n margin-left: -7%;\n}\n\n/* Spins opposite to (and in sync with) the matching .atom-spin, so\n the ambient rotation the electron sits in is always cancelled out\n before the shape-correcting scaleY below is applied. */\n.nx-spinner__atom-electron-counter {\n position: absolute;\n inset: 0;\n animation: nx-spinner-rotate 1s linear infinite reverse;\n}\n\n.nx-spinner__atom-ring--b .nx-spinner__atom-electron-counter {\n animation-duration: 1.3s;\n animation-direction: normal;\n}\n\n.nx-spinner__atom-ring--c .nx-spinner__atom-electron-counter {\n animation-duration: 1.6s;\n}\n\n.nx-spinner__atom-electron {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: currentColor;\n /* Counters the ring's scaleY(0.4). Because the electron-counter\n wrapper above has already cancelled the ambient spin rotation,\n this scale is always axis-aligned with the ring's squash, so it\n cancels it exactly (0.4 x 2.5 = 1) at every point on the orbit —\n not just at two angles like the old single-layer approach. */\n transform: scaleY(2.5);\n}\n\n/* Comet — a head dot with a fading trail, rotating as one rigid arc;\n \"orbit\" has a single satellite and no trail, so this reads\n genuinely differently. */\n.nx-spinner__comet {\n position: relative;\n width: 100%;\n height: 100%;\n animation: nx-spinner-rotate 1s linear infinite;\n}\n\n.nx-spinner__comet-dot {\n position: absolute;\n inset: 0;\n}\n\n.nx-spinner__comet-dot::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 50%;\n border-radius: 50%;\n background: currentColor;\n}\n\n.nx-spinner__comet-dot:nth-child(1) { transform: rotate(0deg); }\n.nx-spinner__comet-dot:nth-child(1)::before { width: 24%; height: 24%; margin-left: -12%; opacity: 1; }\n\n.nx-spinner__comet-dot:nth-child(2) { transform: rotate(-14deg); }\n.nx-spinner__comet-dot:nth-child(2)::before { width: 19%; height: 19%; margin-left: -9.5%; opacity: 0.7; }\n\n.nx-spinner__comet-dot:nth-child(3) { transform: rotate(-28deg); }\n.nx-spinner__comet-dot:nth-child(3)::before { width: 15%; height: 15%; margin-left: -7.5%; opacity: 0.5; }\n\n.nx-spinner__comet-dot:nth-child(4) { transform: rotate(-42deg); }\n.nx-spinner__comet-dot:nth-child(4)::before { width: 11%; height: 11%; margin-left: -5.5%; opacity: 0.3; }\n\n.nx-spinner__comet-dot:nth-child(5) { transform: rotate(-56deg); }\n.nx-spinner__comet-dot:nth-child(5)::before { width: 8%; height: 8%; margin-left: -4%; opacity: 0.15; }\n\n/* =========================================================\n Extended set\n ========================================================= */\n\n/* Gauge — a half-circle arc filling and unfilling, speedometer\n style; the one variant that's a semicircle rather than a full\n circle or a straight line. */\n.nx-spinner__gauge-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__gauge-arc {\n stroke-dasharray: 31.4;\n animation: nx-spinner-gauge-sweep 1.6s ease-in-out infinite alternate;\n}\n\n@keyframes nx-spinner-gauge-sweep {\n 0% { stroke-dashoffset: 31.4; }\n 100% { stroke-dashoffset: 0; }\n}\n\n/* Stack — three cards cycling through a shuffle: rise, shrink,\n settle back — distinct from \"grid\"'s static fading squares. */\n.nx-spinner__stack {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__stack-card {\n position: absolute;\n inset: 15%;\n border-radius: 22%;\n background: currentColor;\n animation: nx-spinner-stack-cycle 1.2s ease-in-out infinite;\n}\n\n.nx-spinner__stack-card:nth-child(1) { animation-delay: 0s; }\n.nx-spinner__stack-card:nth-child(2) { animation-delay: -0.4s; }\n.nx-spinner__stack-card:nth-child(3) { animation-delay: -0.8s; }\n\n@keyframes nx-spinner-stack-cycle {\n 0% { transform: translateY(0) scale(1); opacity: 1; }\n 33% { transform: translateY(-30%) scale(0.85); opacity: 0.6; }\n 66% { transform: translateY(0) scale(0.7); opacity: 0.3; }\n 100% { transform: translateY(0) scale(1); opacity: 1; }\n}\n\n/* Spiral — three concentric rings spinning at different speeds and\n directions, reading as a vortex. */\n.nx-spinner__spiral {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__spiral-ring {\n position: absolute;\n border-radius: 50%;\n border: 2px solid transparent;\n border-top-color: currentColor;\n}\n\n.nx-spinner__spiral-ring:nth-child(1) { inset: 0; opacity: 1; animation: nx-spinner-rotate 0.6s linear infinite; }\n.nx-spinner__spiral-ring:nth-child(2) { inset: 20%; opacity: 0.65; animation: nx-spinner-rotate 0.9s linear infinite reverse; }\n.nx-spinner__spiral-ring:nth-child(3) { inset: 38%; opacity: 0.35; animation: nx-spinner-rotate 1.3s linear infinite; }\n\n/* Burst (rebuilt) — six particles popping outward from the center,\n all at the same instant, same speed, same distance, in every\n direction — true radial symmetry rather than a staggered ripple.\n The earlier per-particle animation-delay broke that symmetry, so\n it's removed; the only difference between particles now is their\n fixed rotation, which is what fans them out evenly. Driven\n entirely by `transform` (translateY + scale) rather than animating\n `top` alongside `scale`, which previously caused a subtle\n non-circular wobble mid-flight. */\n.nx-spinner__burst {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__burst-particle {\n position: absolute;\n inset: 0;\n}\n\n.nx-spinner__burst-particle::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 22%;\n height: 22%;\n margin: -11% 0 0 -11%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-burst-pop 1.1s ease-out infinite;\n}\n\n.nx-spinner__burst-particle:nth-child(1) { transform: rotate(0deg); }\n.nx-spinner__burst-particle:nth-child(2) { transform: rotate(60deg); }\n.nx-spinner__burst-particle:nth-child(3) { transform: rotate(120deg); }\n.nx-spinner__burst-particle:nth-child(4) { transform: rotate(180deg); }\n.nx-spinner__burst-particle:nth-child(5) { transform: rotate(240deg); }\n.nx-spinner__burst-particle:nth-child(6) { transform: rotate(300deg); }\n\n@keyframes nx-spinner-burst-pop {\n 0% { transform: translateY(0) scale(0.4); opacity: 1; }\n 70% { opacity: 0.55; }\n 100% { transform: translateY(-160%) scale(1); opacity: 0; }\n}\n\n/* Eclipse — a solid disc sliding across a faint base disc, clipped\n to a circle: a moon-phase style reveal. */\n.nx-spinner__eclipse {\n position: relative;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n overflow: hidden;\n background: color-mix(in srgb, currentColor 20%, transparent);\n}\n\n.nx-spinner__eclipse-shadow {\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-eclipse-slide 2s ease-in-out infinite;\n}\n\n@keyframes nx-spinner-eclipse-slide {\n 0% { left: -100%; }\n 50% { left: 0%; }\n 100% { left: 100%; }\n}\n\n/* Petal — six leaf shapes blooming (scale + fade) in a staggered\n sequence while the whole flower slowly rotates. */\n.nx-spinner__petal {\n position: relative;\n width: 100%;\n height: 100%;\n animation: nx-spinner-rotate 4s linear infinite;\n}\n\n.nx-spinner__petal-leaf {\n position: absolute;\n inset: 0;\n}\n\n.nx-spinner__petal-leaf::before {\n content: \"\";\n position: absolute;\n top: 4%;\n left: 50%;\n width: 20%;\n height: 38%;\n margin-left: -10%;\n background: currentColor;\n border-radius: 50% 50% 4% 4%;\n transform-origin: 50% 100%;\n animation: nx-spinner-petal-bloom 1.6s ease-in-out infinite;\n}\n\n.nx-spinner__petal-leaf:nth-child(1) { transform: rotate(0deg); }\n.nx-spinner__petal-leaf:nth-child(2) { transform: rotate(60deg); }\n.nx-spinner__petal-leaf:nth-child(2)::before { animation-delay: 0.13s; }\n.nx-spinner__petal-leaf:nth-child(3) { transform: rotate(120deg); }\n.nx-spinner__petal-leaf:nth-child(3)::before { animation-delay: 0.26s; }\n.nx-spinner__petal-leaf:nth-child(4) { transform: rotate(180deg); }\n.nx-spinner__petal-leaf:nth-child(4)::before { animation-delay: 0.39s; }\n.nx-spinner__petal-leaf:nth-child(5) { transform: rotate(240deg); }\n.nx-spinner__petal-leaf:nth-child(5)::before { animation-delay: 0.52s; }\n.nx-spinner__petal-leaf:nth-child(6) { transform: rotate(300deg); }\n.nx-spinner__petal-leaf:nth-child(6)::before { animation-delay: 0.65s; }\n\n@keyframes nx-spinner-petal-bloom {\n 0%, 100% { transform: scale(0.55); opacity: 0.45; }\n 50% { transform: scale(1); opacity: 1; }\n}\n\n/* Sine — a smooth traced wave, distinct from \"heartbeat\"'s jagged\n ECG line. */\n.nx-spinner__sine-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__sine-path {\n stroke-dasharray: 16 44;\n animation: nx-spinner-sine-dash 1.4s linear infinite;\n}\n\n@keyframes nx-spinner-sine-dash {\n to { stroke-dashoffset: -60; }\n}\n\n/* Gear — a thick stroked ring with eight radiating teeth, spinning\n as one; a genuinely mechanical silhouette. */\n.nx-spinner__gear-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__gear-group {\n transform-box: fill-box;\n transform-origin: 50% 50%;\n animation: nx-spinner-rotate 3s linear infinite;\n}\n\n/* Pendulum (rebuilt as SVG) — the old percentage-sized HTML-span\n version rendered as a near-invisible diagonal sliver at small\n sizes; a fixed-viewBox SVG is crisp at every size instead. A\n static pivot dot sits at the top; the arm + ball are grouped\n together and rotate as one rigid body around that pivot — the one\n variant that oscillates in an arc rather than completing a full\n rotation. */\n.nx-spinner__pendulum-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__pendulum-swing {\n transform-box: fill-box;\n transform-origin: 50% 0%;\n animation: nx-spinner-pendulum-swing 1s ease-in-out infinite;\n}\n\n@keyframes nx-spinner-pendulum-swing {\n 0%, 100% { transform: rotate(-32deg); }\n 50% { transform: rotate(32deg); }\n}\n\n/* Dancer — two squares held in a row that pivot together as a rigid\n pair (the container flips a half-turn), while each square also\n slides sideways and swaps places with the other. Adapted from a\n pseudo-element loader that used two hardcoded colors to tell the\n pair apart; ported here to real currentColor-only elements sized\n as percentages of the component's own box (not fixed pixels, so it\n scales with `size` like every other variant), with opacity as the\n distinguishing signal instead of a second color — the same\n convention \"dual-ring\" and \"comet\" already use. */\n.nx-spinner__dancer {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 62%;\n height: 34%;\n animation: nx-spinner-dancer-pivot 2s ease-in-out infinite alternate;\n}\n\n.nx-spinner__dancer-square {\n width: 40%;\n height: 100%;\n border-radius: var(--radius-sm, 2px);\n background: currentColor;\n animation: nx-spinner-dancer-swap 1s ease-in-out infinite alternate;\n}\n\n.nx-spinner__dancer-square--a {\n --nx-dancer-dir: 1;\n}\n\n.nx-spinner__dancer-square--b {\n opacity: 0.55;\n --nx-dancer-dir: -1;\n}\n\n@keyframes nx-spinner-dancer-pivot {\n 0%, 40% { transform: rotate(0deg); }\n 80%, 100% { transform: rotate(0.5turn); }\n}\n\n@keyframes nx-spinner-dancer-swap {\n 80%, 100% { transform: translateX(calc(var(--nx-dancer-dir) * 60%)); }\n}\n\n/* =========================================================\n Reduced motion — slow every animated variant down instead of\n disabling motion outright (keeps the \"loading\" signal legible).\n ========================================================= */\n@media (prefers-reduced-motion: reduce) {\n .nx-spinner__ring-svg,\n .nx-spinner__dot,\n .nx-spinner__bar,\n .nx-spinner__pulse,\n .nx-spinner__dual-ring-outer,\n .nx-spinner__dual-ring-inner,\n .nx-spinner__ripple-wave,\n .nx-spinner__orbit-spin,\n .nx-spinner__bounce-ball,\n .nx-spinner__conic,\n .nx-spinner__buffer-group,\n .nx-spinner__linear-bar,\n .nx-spinner__heartbeat-path,\n .nx-spinner__infinity-path,\n .nx-spinner__hourglass-svg,\n .nx-spinner__hourglass-sand-top,\n .nx-spinner__hourglass-sand-bottom,\n .nx-spinner__hourglass-grain,\n .nx-spinner__pinwheel-blades,\n .nx-spinner__radar-sweep,\n .nx-spinner__wave-dot,\n .nx-spinner__helix-dot,\n .nx-spinner__atom-spin,\n .nx-spinner__atom-electron-counter,\n .nx-spinner__comet,\n .nx-spinner__gauge-arc,\n .nx-spinner__stack-card,\n .nx-spinner__spiral-ring,\n .nx-spinner__burst-particle::before,\n .nx-spinner__eclipse-shadow,\n .nx-spinner__petal,\n .nx-spinner__petal-leaf::before,\n .nx-spinner__sine-path,\n .nx-spinner__gear-group,\n .nx-spinner__pendulum-swing,\n .nx-spinner__dancer,\n .nx-spinner__dancer-square {\n animation-duration: 2s;\n }\n}",".nx-divider {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n}\n\n.nx-divider--horizontal {\n width: 100%;\n}\n.nx-divider--horizontal .nx-divider__line {\n flex: 1;\n height: var(--border-widthThin, 1px);\n background: var(--color-border, #e5e7eb);\n}\n\n.nx-divider--vertical {\n flex-direction: column;\n height: 100%;\n align-self: stretch;\n}\n.nx-divider--vertical .nx-divider__line {\n flex: 1;\n width: var(--border-widthThin, 1px);\n background: var(--color-border, #e5e7eb);\n}\n\n.nx-divider__content {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n white-space: nowrap;\n}\n",".nx-card {\n position: relative;\n display: flex;\n flex-direction: column;\n background: var(--color-surface, #ffffff);\n border-radius: var(--radius-lg, 14px);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n overflow: hidden;\n transition: box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-card--horizontal {\n flex-direction: row;\n}\n\n.nx-card--elevated {\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08));\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n}\n\n.nx-card--outlined {\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n.nx-card--flat {\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n}\n\n/* \"flat\" with no border/shadow reads as bare content on themes where\n surface and background are close in tone — \"filled\" is the answer\n to that: no border or shadow either, but a background tint that's\n deliberately distinct from the page, so it still reads as a\n contained block at rest. */\n.nx-card--filled {\n background: var(--color-surfaceRaised, #f3f4f6);\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n}\n\n.nx-card--clickable {\n cursor: pointer;\n}\n.nx-card--clickable:hover {\n box-shadow: var(--shadow-lg, 0 8px 20px rgba(0, 0, 0, 0.1));\n}\n.nx-card--clickable:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-card--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.nx-card__media {\n overflow: hidden;\n line-height: 0;\n background: var(--color-neutral-100, #f3f4f6); /* visible while media loads */\n}\n\n/*\n This is the actual fix for a real, confirmed bug — not a guess.\n A consuming site's own typography/\"prose\" stylesheet (Fumadocs'\n docs-content styling, in this case) commonly gives every <img> a\n default vertical margin, since that's a sensible default for\n images floating in the middle of long-form article text. Card\n never reset it. The result: the image sat 32px lower than its\n container's top edge — confirmed directly via\n `getComputedStyle(img).marginTop` in a real browser, not inferred\n from a screenshot — while still being exactly the container's\n height, so the excess got clipped off the bottom by `overflow:\n hidden`. That produced exactly the symptom it looked like: a gap\n of empty placeholder-background above the photo. A fixed\n aspect-ratio box and object-fit: cover (below) can't compensate\n for a margin doing this — margin isn't part of the size the\n container is even aware of.\n*/\n.nx-card__media img,\n.nx-card__media video {\n margin: 0;\n}\n\n/*\n Vertical (default): a fixed aspect ratio + object-fit: cover,\n deliberately NOT the media's natural height. Relying on natural\n height (`height: auto`) meant the rendered size depended on\n whatever the browser/Next.js Image decided the image's intrinsic\n box was — which could end up smaller than the container for\n reasons outside this component's control, leaving a visible gap\n around the image showing the placeholder background through it\n (a letterboxed-looking band above and below the photo). A fixed\n aspect ratio removes that dependency entirely: the media area is\n always exactly this size, and object-fit: cover always fills it\n completely, regardless of the actual image's own dimensions. It's\n also simply better card design — every card in a list ends up the\n same height instead of jumping around per image.\n*/\n.nx-card--vertical .nx-card__media {\n width: 100%;\n aspect-ratio: 16 / 9;\n}\n.nx-card--vertical .nx-card__media img,\n.nx-card--vertical .nx-card__media video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n/* Horizontal: media is a fixed-width column, cropped to fill the\n card's full height (stretch comes from the parent flex row's\n default align-items: stretch — no extra CSS needed for that part). */\n.nx-card--horizontal .nx-card__media {\n width: 38%;\n flex-shrink: 0;\n}\n.nx-card--horizontal .nx-card__media img,\n.nx-card--horizontal .nx-card__media video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.nx-card--horizontal .nx-card__content {\n min-width: 0; /* lets text truncate/wrap instead of overflowing the flex row */\n}\n\n/*\n Overlay/hero: media fills the whole card as a backdrop; content\n sits on top at the bottom, with a gradient scrim behind it for\n legibility over an arbitrary image.\n\n This is a deliberate rebuild, not the original version: an explicit\n `height` (not just a `min-height` floor) makes the card's size\n fully deterministic instead of depending on how much slack space\n content's own `margin-top: auto` happened to have to push against\n — with only one in-flow flex child, there's no guarantee that slack\n space exists at all. Content is now positioned absolutely to the\n bottom directly, matching how media is already positioned, rather\n than relying on flex behavior for it. The scrim is also its own\n layer (`::after`, sized to the full card) instead of living on\n `.nx-card__content`'s own background — the old approach only\n darkened the area directly behind the text (a thin band), not a\n graceful fade across a real portion of the photo.\n*/\n/*\n width: 100% is not decorative here — it's the actual fix for a\n confirmed bug. Both .nx-card__media and .nx-card__content are\n position: absolute in overlay mode (that's what lets content sit\n on top of the photo), which removes ALL in-flow content from the\n card. A block-level flex item with no explicit width defaults to\n shrink-to-fit based on its in-flow content's own intrinsic size —\n with nothing left in flow, that collapsed to almost nothing\n (measured 2px in a real browser, not a guess). A `maxWidth` passed\n via `style` only caps a width, it doesn't establish one on its own.\n*/\n.nx-card--overlay {\n width: 100%;\n height: 320px;\n}\n.nx-card--overlay .nx-card__media {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n}\n.nx-card--overlay .nx-card__media img,\n.nx-card--overlay .nx-card__media video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n.nx-card--overlay::after {\n content: \"\";\n position: absolute;\n inset: 0;\n z-index: 1;\n background: linear-gradient(\n to top,\n rgba(0, 0, 0, 0.85) 0%,\n rgba(0, 0, 0, 0.55) 35%,\n rgba(0, 0, 0, 0.15) 70%,\n transparent 100%\n );\n pointer-events: none;\n}\n.nx-card--overlay .nx-card__content {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 2;\n}\n/* Overlay text is always on top of a photo/video, not the theme's\n own surface — it needs to stay light regardless of which theme\n (light or dark) is active, unlike every other card variant where\n text correctly follows --color-text. */\n.nx-card--overlay .nx-card__header,\n.nx-card--overlay .nx-card__body {\n color: #ffffff;\n}\n.nx-card--overlay .nx-card__header,\n.nx-card--overlay .nx-card__footer {\n border-color: transparent;\n}\n\n.nx-card__header,\n.nx-card__footer {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n/* Padding applies to header/body/footer, not media (media should\n bleed to the card's edge). */\n.nx-card--padding-none .nx-card__header,\n.nx-card--padding-none .nx-card__body,\n.nx-card--padding-none .nx-card__footer { padding: 0; }\n\n.nx-card--padding-sm .nx-card__header,\n.nx-card--padding-sm .nx-card__body,\n.nx-card--padding-sm .nx-card__footer { padding: var(--spacing-sm, 8px) var(--spacing-md, 16px); }\n\n.nx-card--padding-md .nx-card__header,\n.nx-card--padding-md .nx-card__body,\n.nx-card--padding-md .nx-card__footer { padding: var(--spacing-md, 16px) var(--spacing-lg, 24px); }\n\n.nx-card--padding-lg .nx-card__header,\n.nx-card--padding-lg .nx-card__body,\n.nx-card--padding-lg .nx-card__footer { padding: var(--spacing-lg, 24px) var(--spacing-xl, 32px); }\n\n.nx-card__body {\n flex: 1;\n color: var(--color-text, #111827);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n}\n\n.nx-card__header {\n font-weight: var(--typography-weightBold, 700);\n color: var(--color-text, #111827);\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n.nx-card__footer {\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeXs, 12px);\n}\n\n.nx-card__badge {\n position: absolute;\n top: var(--spacing-sm, 8px);\n right: var(--spacing-sm, 8px);\n z-index: 2;\n}\n",".nx-alert {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n padding: var(--spacing-md, 16px);\n border-radius: var(--radius-md, 8px);\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n border-left-width: 3px;\n /* Every other surface component (Button, Card, Badge's solid\n variant, Input) picks up each theme's shadow.xs — the soft blur\n in Light, the hard black offset in Neobrutalism, the neon glow\n in Cyberpunk, the embossed inset+outer pair in Skeuomorphism,\n none at all in Brutalism/Minimalism (their own deliberate\n flatness). Alert didn't have this line, so it rendered\n identically flat everywhere regardless of theme. */\n box-shadow: var(--shadow-xs, none);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-alert--info {\n background: var(--color-info-light, #dbeafe);\n border-left-color: var(--color-info-base, #3b82f6);\n color: var(--color-info-deeper, #1e3a5f);\n}\n.nx-alert--success {\n background: var(--color-success-light, #d1fae5);\n border-left-color: var(--color-success-base, #10b981);\n color: var(--color-success-deeper, #064e3b);\n}\n.nx-alert--warning {\n background: var(--color-warning-light, #fef3c7);\n border-left-color: var(--color-warning-base, #f59e0b);\n color: var(--color-warning-deeper, #78350f);\n}\n.nx-alert--danger {\n background: var(--color-danger-light, #fee2e2);\n border-left-color: var(--color-danger-base, #ef4444);\n color: var(--color-danger-deeper, #7f1d1d);\n}\n\n.nx-alert__icon {\n flex-shrink: 0;\n display: inline-flex;\n padding-top: 1px; /* optical alignment with the title's cap-height */\n}\n\n.nx-alert__body {\n flex: 1;\n min-width: 0;\n}\n\n.nx-alert__title {\n font-weight: var(--typography-weightBold, 700);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightTight, 1.2);\n}\n\n.nx-alert__description {\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n margin-top: 2px;\n}\n.nx-alert__title + .nx-alert__description {\n margin-top: 4px;\n}\n\n.nx-alert__action {\n flex-shrink: 0;\n}\n\n.nx-alert__dismiss {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 2px;\n margin: -2px -2px -2px 0;\n border: none;\n background: transparent;\n color: inherit;\n cursor: pointer;\n border-radius: var(--radius-sm, 6px);\n opacity: 0.6;\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-alert__dismiss:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.08);\n}",".nx-modal-backdrop {\n position: fixed;\n inset: 0;\n z-index: 1000;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-lg, 24px);\n background: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(2px);\n animation: nx-modal-backdrop-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-modal-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.nx-modal {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: calc(100vh - var(--spacing-lg, 24px) * 2);\n background: var(--color-surface, #ffffff);\n border-radius: var(--radius-lg, 14px);\n box-shadow: var(--shadow-xl, 0 20px 40px rgba(0, 0, 0, 0.2));\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n outline: none; /* focus lands here programmatically; a visible browser outline on the whole panel isn't useful */\n animation: nx-modal-panel-in var(--motion-durationNormal, 180ms) var(--motion-easeEmphasized, ease);\n}\n\n@keyframes nx-modal-panel-in {\n from { opacity: 0; transform: translateY(8px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n.nx-modal--xs { max-width: 360px; }\n.nx-modal--sm { max-width: 480px; }\n.nx-modal--md { max-width: 640px; }\n.nx-modal--lg { max-width: 860px; }\n.nx-modal--xl { max-width: 1100px; }\n.nx-modal--full {\n max-width: none;\n width: calc(100vw - var(--spacing-lg, 24px) * 2);\n height: calc(100vh - var(--spacing-lg, 24px) * 2);\n}\n\n.nx-modal__header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-md, 16px);\n padding: var(--spacing-lg, 24px) var(--spacing-lg, 24px) 0;\n flex-shrink: 0;\n}\n\n.nx-modal__title {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeLg, 18px);\n font-weight: var(--typography-weightBold, 700);\n color: var(--color-text, #111827);\n}\n\n.nx-modal__close {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: var(--color-textMuted, #6b7280);\n cursor: pointer;\n border-radius: var(--radius-sm, 6px);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-modal__close:hover {\n background: var(--color-surfaceRaised, #f3f4f6);\n color: var(--color-text, #111827);\n}\n.nx-modal__close:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-modal__body {\n flex: 1;\n overflow-y: auto;\n padding: var(--spacing-lg, 24px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n color: var(--color-text, #111827);\n}\n\n.nx-modal__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--spacing-sm, 8px);\n padding: 0 var(--spacing-lg, 24px) var(--spacing-lg, 24px);\n flex-shrink: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-modal-backdrop, .nx-modal {\n animation-duration: 0.01ms;\n }\n}\n",".nx-tooltip {\n z-index: 1100;\n max-width: 240px;\n padding: 6px 10px;\n border-radius: var(--radius-sm, 6px);\n background: var(--color-neutral-900, #171717);\n color: var(--color-neutral-0, #ffffff);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.15));\n pointer-events: none; /* never intercepts hover meant for the trigger/page underneath */\n animation: nx-tooltip-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-tooltip-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.nx-tooltip::after {\n content: \"\";\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n}\n\n.nx-tooltip--top::after {\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n.nx-tooltip--bottom::after {\n top: -4px;\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n.nx-tooltip--left::after {\n right: -4px;\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n.nx-tooltip--right::after {\n left: -4px;\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-tooltip {\n animation-duration: 0.01ms;\n }\n}\n",".nx-toast-container {\n position: fixed;\n z-index: 1200;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm, 8px);\n padding: var(--spacing-md, 16px);\n max-width: 380px;\n pointer-events: none; /* the gaps between toasts shouldn't block clicks to the page underneath */\n}\n.nx-toast-container > * {\n pointer-events: auto;\n}\n\n.nx-toast-container--top-left { top: 0; left: 0; align-items: flex-start; }\n.nx-toast-container--top-center { top: 0; left: 50%; transform: translateX(-50%); align-items: center; }\n.nx-toast-container--top-right { top: 0; right: 0; align-items: flex-end; }\n.nx-toast-container--bottom-left { bottom: 0; left: 0; align-items: flex-start; flex-direction: column-reverse; }\n.nx-toast-container--bottom-center { bottom: 0; left: 50%; transform: translateX(-50%); align-items: center; flex-direction: column-reverse; }\n.nx-toast-container--bottom-right { bottom: 0; right: 0; align-items: flex-end; flex-direction: column-reverse; }\n\n.nx-toast {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n width: 100%;\n padding: var(--spacing-sm, 8px) var(--spacing-md, 16px);\n border-radius: var(--radius-md, 8px);\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n box-shadow: var(--shadow-lg, 0 8px 20px rgba(0, 0, 0, 0.12));\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n animation: nx-toast-in var(--motion-durationNormal, 180ms) var(--motion-easeEmphasized, ease);\n}\n\n@keyframes nx-toast-in {\n from { opacity: 0; transform: translateY(8px) scale(0.97); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n.nx-toast--info .nx-toast__icon { color: var(--color-info-base, #3b82f6); }\n.nx-toast--success .nx-toast__icon { color: var(--color-success-base, #10b981); }\n.nx-toast--warning .nx-toast__icon { color: var(--color-warning-base, #f59e0b); }\n.nx-toast--danger .nx-toast__icon { color: var(--color-danger-base, #ef4444); }\n\n.nx-toast__icon {\n flex-shrink: 0;\n display: inline-flex;\n padding-top: 2px;\n}\n\n.nx-toast__body {\n flex: 1;\n min-width: 0;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-toast__title {\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightBold, 700);\n color: var(--color-text, #111827);\n line-height: var(--typography-lineHeightTight, 1.2);\n}\n\n.nx-toast__description {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n line-height: var(--typography-lineHeightNormal, 1.5);\n margin-top: 2px;\n}\n\n.nx-toast__action {\n flex-shrink: 0;\n align-self: center;\n}\n\n.nx-toast__dismiss {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 2px;\n margin: -2px -4px -2px 0;\n border: none;\n background: transparent;\n color: var(--color-textMuted, #6b7280);\n cursor: pointer;\n border-radius: var(--radius-sm, 6px);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-toast__dismiss:hover {\n background: var(--color-surfaceRaised, #f3f4f6);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-toast {\n animation-duration: 0.01ms;\n }\n}\n","/* Category A meter. Every value is a var(--token, fallback), no\n literal colors/radii/durations (BUILDING-COMPONENTS.md step 3).\n The fill is a solid accent surface with NO text on it, so the\n raw-color onAccent gap (CONTRACT.md Rule 5c) doesn't apply here —\n nothing is painted on top of --color-brand-500 that needs a\n guaranteed-contrast foreground. */\n\n.nx-progress-wrap {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n inline-size: 100%;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-progress {\n position: relative;\n flex: 1;\n min-inline-size: 0;\n overflow: hidden;\n background: var(--color-surfaceRaised, #f3f4f6);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n border-radius: var(--radius-full, 9999px);\n box-shadow: var(--shadow-xs, none);\n}\n\n.nx-progress__fill {\n block-size: 100%;\n inline-size: 0;\n border-radius: inherit;\n background: var(--color-brand-500, #6366f1);\n transition: inline-size var(--motion-durationNormal, 180ms) var(--motion-easeStandard, ease);\n}\n\n/* Semantic tones — theme-defined colors, kept separate from the\n brand accent (CONTRACT.md Rule 5b's success/warning/danger note). */\n.nx-progress--success .nx-progress__fill { background: var(--color-success-base, #16a34a); }\n.nx-progress--warning .nx-progress__fill { background: var(--color-warning-base, #d97706); }\n.nx-progress--danger .nx-progress__fill { background: var(--color-danger-base, #ef4444); }\n\n/* Track height per size — the one dimension that scales. */\n.nx-progress--xs { block-size: 4px; }\n.nx-progress--sm { block-size: 6px; }\n.nx-progress--md { block-size: 8px; }\n.nx-progress--lg { block-size: 12px; }\n.nx-progress--xl { block-size: 16px; }\n\n.nx-progress__value {\n flex-shrink: 0;\n font-size: var(--typography-sizeXs, 12px);\n font-variant-numeric: tabular-nums;\n color: var(--color-textMuted, #6b7280);\n min-inline-size: 3ch;\n text-align: end;\n}\n\n/* Indeterminate: the fill becomes a shuttle of fixed width sliding\n across the track. No inline width is set by the component in this\n state, so the animation fully owns it. */\n.nx-progress--indeterminate .nx-progress__fill {\n inline-size: 40%;\n border-radius: var(--radius-full, 9999px);\n animation: nx-progress-indeterminate 1.2s var(--motion-easeStandard, ease) infinite;\n will-change: transform;\n}\n\n@keyframes nx-progress-indeterminate {\n 0% { transform: translateX(-120%); }\n 100% { transform: translateX(320%); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-progress__fill {\n transition-duration: 0.01ms;\n }\n /* An infinite slide is exactly the kind of motion prefers-reduced\n -motion is meant to stop — replace it with a static, obviously\n \"busy\" 60% fill rather than an empty or animated bar. */\n .nx-progress--indeterminate .nx-progress__fill {\n animation: none;\n inline-size: 60%;\n transform: none;\n }\n}","/* Category E: tablist/tab/tabpanel. Every value is a\n var(--token, fallback) reading from the active theme's generated\n custom properties, so switching data-theme restyles Tabs with\n zero JS (CONTRACT.md CSS-cascade theming). No literal colors,\n radii, durations, or shadows. */\n\n.nx-tabs {\n display: flex;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n}\n\n/* Orientation drives the top-level layout: tabs above panels\n (horizontal) vs. tabs beside panels (vertical). */\n.nx-tabs--horizontal {\n flex-direction: column;\n}\n.nx-tabs--vertical {\n flex-direction: row;\n gap: var(--spacing-md, 16px);\n}\n\n/* ---- Tab list ---- */\n.nx-tabs__list {\n display: flex;\n}\n.nx-tabs--horizontal .nx-tabs__list {\n flex-direction: row;\n}\n.nx-tabs--vertical .nx-tabs__list {\n flex-direction: column;\n}\n\n/* ---- Tab (button) ---- */\n.nx-tabs__tab {\n appearance: none;\n background: transparent;\n border: none;\n margin: 0;\n cursor: pointer;\n font-family: inherit;\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n color: var(--color-textMuted, #6b7280);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs, 4px);\n white-space: nowrap;\n transition: color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-tabs__tab:hover:not(.nx-tabs__tab--disabled) {\n color: var(--color-text, #111827);\n}\n\n.nx-tabs__tab--selected {\n color: var(--color-brand-600, #4f46e5);\n}\n\n.nx-tabs__tab:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n border-radius: var(--radius-sm, 6px);\n}\n\n.nx-tabs__tab--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Sizes — padding + font-size only, from the shared scale. */\n.nx-tabs--xs .nx-tabs__tab { padding: 4px 10px; font-size: var(--typography-sizeXs, 12px); }\n.nx-tabs--sm .nx-tabs__tab { padding: 6px 12px; font-size: var(--typography-sizeSm, 14px); }\n.nx-tabs--md .nx-tabs__tab { padding: 8px 14px; font-size: var(--typography-sizeMd, 16px); }\n.nx-tabs--lg .nx-tabs__tab { padding: 10px 18px; font-size: var(--typography-sizeLg, 18px); }\n.nx-tabs--xl .nx-tabs__tab { padding: 12px 22px; font-size: var(--typography-sizeXl, 22px); }\n\n/* ---- Variant: line (default) — an underline/inline rule that the\n selected tab lights up in the accent color. The tab's edge border\n overlaps the list's rule via a -1px margin so the two align. ---- */\n.nx-tabs--line.nx-tabs--horizontal .nx-tabs__list {\n border-block-end: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n.nx-tabs--line.nx-tabs--horizontal .nx-tabs__tab {\n border-block-end: 2px solid transparent;\n margin-block-end: -1px;\n}\n.nx-tabs--line.nx-tabs--horizontal .nx-tabs__tab--selected {\n border-block-end-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-tabs--line.nx-tabs--vertical .nx-tabs__list {\n border-inline-start: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n.nx-tabs--line.nx-tabs--vertical .nx-tabs__tab {\n border-inline-start: 2px solid transparent;\n margin-inline-start: -1px;\n justify-content: flex-start;\n}\n.nx-tabs--line.nx-tabs--vertical .nx-tabs__tab--selected {\n border-inline-start-color: var(--color-brand-500, #6366f1);\n}\n\n/* ---- Variant: soft — selected tab gets a subtle brand-tinted\n pill; no rule/underline. ---- */\n.nx-tabs--soft .nx-tabs__list {\n gap: var(--spacing-xs, 4px);\n}\n.nx-tabs--soft .nx-tabs__tab {\n border-radius: var(--radius-md, 8px);\n}\n.nx-tabs--soft .nx-tabs__tab--selected {\n background: var(--color-brand-50, #f0f4ff);\n color: var(--color-brand-700, #4338ca);\n /* Parity with --solid's selected tab below, which already reads\n shadow.xs — without this, soft was purely accent-driven (bg +\n text only) and looked identical across every theme regardless\n of Neobrutalism's hard offset shadow, Cyberpunk's glow, etc. */\n box-shadow: var(--shadow-xs, none);\n}\n\n/* ---- Variant: solid — a segmented control; the selected tab is a\n filled accent chip. Text uses --color-brand-onAccent, matching\n Button's solid variant. (Same known limitation as Button: a *raw*\n color accent doesn't supply onAccent, so it falls back to white —\n registered accents always define it. Tracked library-wide, not\n solved unilaterally here.) ---- */\n.nx-tabs--solid .nx-tabs__list {\n gap: var(--spacing-xs, 4px);\n padding: var(--spacing-xs, 4px);\n background: var(--color-surfaceRaised, #f3f4f6);\n border-radius: var(--radius-md, 8px);\n align-self: flex-start;\n}\n.nx-tabs--vertical.nx-tabs--solid .nx-tabs__list {\n align-self: stretch;\n}\n.nx-tabs--solid .nx-tabs__tab {\n border-radius: var(--radius-sm, 6px);\n}\n.nx-tabs--solid .nx-tabs__tab--selected {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n box-shadow: var(--shadow-sm, none);\n}\n\n/* ---- Panel ---- */\n.nx-tabs__panel {\n padding-block-start: var(--spacing-md, 16px);\n color: var(--color-text, #111827);\n}\n.nx-tabs--vertical .nx-tabs__panel {\n padding-block-start: 0;\n flex: 1;\n min-inline-size: 0;\n}\n/* The panel is a focus stop (tabIndex 0 in core); give it the same\n visible focus ring as everything else rather than a bare outline. */\n.nx-tabs__panel:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n border-radius: var(--radius-sm, 6px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-tabs__tab {\n transition: none;\n }\n}","/* Category E: disclosure. Every value is a var(--token, fallback)\n from the active theme's generated custom properties, so switching\n data-theme restyles the accordion with zero JS. No literal\n colors, radii, durations, or shadows. */\n\n.nx-accordion {\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n overflow: hidden;\n background: var(--color-surface, #ffffff);\n}\n\n/* Items are separated by a divider rather than each carrying its own\n border, so the group reads as one surface. */\n.nx-accordion__item + .nx-accordion__item {\n border-block-start: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n/* ---- Header + trigger ---- */\n.nx-accordion__header {\n margin: 0;\n /* The heading element is structural only — it inherits its visual\n size from the trigger, not from the browser's default h1–h6. */\n font: inherit;\n}\n\n.nx-accordion__trigger {\n appearance: none;\n inline-size: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-sm, 8px);\n background: transparent;\n border: none;\n margin: 0;\n cursor: pointer;\n text-align: start;\n font-family: inherit;\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n color: var(--color-text, #111827);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-accordion__trigger:hover:not(:disabled) {\n background: var(--color-surfaceRaised, #f3f4f6);\n}\n\n.nx-accordion__trigger:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: -2px; /* inset, so the ring isn't clipped by overflow:hidden */\n}\n\n.nx-accordion__trigger:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-accordion__trigger--open {\n color: var(--color-brand-600, #4f46e5);\n}\n\n.nx-accordion__label {\n flex: 1;\n min-inline-size: 0;\n}\n\n/* The chevron rotates to point up when its section is open; the\n rotation is disabled under prefers-reduced-motion below. */\n.nx-accordion__icon {\n flex-shrink: 0;\n color: var(--color-textMuted, #6b7280);\n transition: transform var(--motion-durationNormal, 180ms) var(--motion-easeStandard, ease);\n}\n.nx-accordion__trigger--open .nx-accordion__icon {\n transform: rotate(180deg);\n}\n\n/* Sizes — header padding + font-size, from the shared scale. */\n.nx-accordion--xs .nx-accordion__trigger { padding: 8px 10px; font-size: var(--typography-sizeXs, 12px); }\n.nx-accordion--sm .nx-accordion__trigger { padding: 10px 12px; font-size: var(--typography-sizeSm, 14px); }\n.nx-accordion--md .nx-accordion__trigger { padding: 12px 16px; font-size: var(--typography-sizeMd, 16px); }\n.nx-accordion--lg .nx-accordion__trigger { padding: 16px 20px; font-size: var(--typography-sizeLg, 18px); }\n.nx-accordion--xl .nx-accordion__trigger { padding: 20px 24px; font-size: var(--typography-sizeXl, 22px); }\n\n/* ---- Panel ---- */\n.nx-accordion__panel {\n color: var(--color-text, #111827);\n}\n.nx-accordion__panel-inner {\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n}\n/* Panel padding mirrors the trigger's horizontal padding per size, so\n content lines up under the header label. */\n.nx-accordion--xs .nx-accordion__panel-inner { padding: 4px 10px 10px; }\n.nx-accordion--sm .nx-accordion__panel-inner { padding: 4px 12px 12px; }\n.nx-accordion--md .nx-accordion__panel-inner { padding: 4px 16px 16px; }\n.nx-accordion--lg .nx-accordion__panel-inner { padding: 4px 20px 20px; }\n.nx-accordion--xl .nx-accordion__panel-inner { padding: 4px 24px 24px; }\n\n@media (prefers-reduced-motion: reduce) {\n .nx-accordion__trigger,\n .nx-accordion__icon {\n transition: none;\n }\n}\n","/* Category C: overlay menu. Every value is a var(--token, fallback)\n from the active theme's generated custom properties, so switching\n data-theme restyles the menu with zero JS. The menu is rendered\n through ThemedPortal, which mirrors data-theme/data-accent onto the\n portal node, so these tokens resolve to the right theme even though\n the menu lives at the end of <body>. No literal colors, radii,\n durations, or shadows — except the destructive item, which pulls\n from the semantic danger-* registry (Rule 5b), never the accent. */\n\n.nx-dropdown__menu {\n /* Above Modal (1000), below Tooltip (1100) so a tooltip on a menu\n item still layers over it, and below Toast (1200). */\n z-index: 1050;\n box-sizing: border-box;\n min-inline-size: 10rem;\n max-inline-size: min(20rem, calc(100vw - 16px));\n max-block-size: calc(100vh - 16px);\n overflow-y: auto;\n padding: var(--spacing-xs, 4px);\n margin: 0;\n background: var(--color-surface, #ffffff);\n color: var(--color-text, #111827);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-lg, 0 10px 24px rgba(0, 0, 0, 0.18));\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n animation: nx-dropdown-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-dropdown-in {\n from { opacity: 0; transform: translateY(-2px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n/* ---- Items ---- */\n.nx-dropdown__item {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n inline-size: 100%;\n box-sizing: border-box;\n border-radius: var(--radius-sm, 6px);\n color: var(--color-text, #111827);\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n outline: none;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n/* Hover AND programmatic keyboard focus share one highlight: the menu\n moves real DOM focus between items with the arrow keys, so :focus is\n the \"active item\" indicator, not just a mouse affordance. */\n.nx-dropdown__item:not(.nx-dropdown__item--disabled):hover,\n.nx-dropdown__item:not(.nx-dropdown__item--disabled):focus {\n background: var(--color-brand-50, #eef2ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n/* A crisp ring for keyboard users on top of the background tint. */\n.nx-dropdown__item:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: -2px;\n}\n\n.nx-dropdown__item--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Destructive action: color from the semantic danger registry, which\n stays red across every accent (Rule 5b) so \"Delete\" never blends\n into a brand-tinted menu. */\n.nx-dropdown__item--danger {\n color: var(--color-danger-base, #dc2626);\n}\n.nx-dropdown__item--danger:not(.nx-dropdown__item--disabled):hover,\n.nx-dropdown__item--danger:not(.nx-dropdown__item--disabled):focus {\n background: var(--color-danger-subtle, #fee2e2);\n color: var(--color-danger-dark, #b91c1c);\n}\n.nx-dropdown__item--danger:focus-visible {\n outline-color: var(--color-danger-base, #dc2626);\n}\n\n/* ---- Separator + section label ---- */\n.nx-dropdown__separator {\n block-size: var(--border-widthThin, 1px);\n background: var(--color-border, #e5e7eb);\n margin: var(--spacing-xs, 4px) 0;\n}\n\n.nx-dropdown__label {\n padding: var(--spacing-xs, 4px) var(--spacing-sm, 8px);\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n}\n\n/* ---- Sizes: item padding + font-size, from the shared scale ---- */\n.nx-dropdown__menu--xs .nx-dropdown__item { padding: 4px 8px; font-size: var(--typography-sizeXs, 12px); }\n.nx-dropdown__menu--sm .nx-dropdown__item { padding: 6px 10px; font-size: var(--typography-sizeSm, 14px); }\n.nx-dropdown__menu--md .nx-dropdown__item { padding: 8px 12px; font-size: var(--typography-sizeMd, 16px); }\n.nx-dropdown__menu--lg .nx-dropdown__item { padding: 10px 14px; font-size: var(--typography-sizeLg, 18px); }\n.nx-dropdown__menu--xl .nx-dropdown__item { padding: 12px 16px; font-size: var(--typography-sizeXl, 22px); }\n\n.nx-dropdown__menu--xs { min-inline-size: 8rem; }\n.nx-dropdown__menu--sm { min-inline-size: 9rem; }\n.nx-dropdown__menu--lg { min-inline-size: 12rem; }\n.nx-dropdown__menu--xl { min-inline-size: 14rem; }\n\n@media (prefers-reduced-motion: reduce) {\n .nx-dropdown__menu {\n animation-duration: 0.01ms;\n }\n .nx-dropdown__item {\n transition: none;\n }\n}\n","/* ============================================================\n SELECT — combobox trigger + portalled listbox.\n\n Every value is var(--token, fallback) (Rule 2): the trigger\n reuses the Input field shape (so a Select sits flush next to a\n text field), and the listbox reuses the Dropdown surface (border\n + radius-md + shadow-lg). Active/selected/hover option states use\n the ACCENT (--color-brand-*), which flips correctly under an\n accent override; nothing here is a semantic (success/danger)\n color, so this file has no danger-* dependency.\n ============================================================ */\n\n.nx-select {\n display: inline-block;\n position: relative;\n inline-size: 100%;\n max-inline-size: 20rem;\n}\n\n/* ---- trigger (role=combobox), shaped like the Input field ---- */\n.nx-select__trigger {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n inline-size: 100%;\n box-sizing: border-box;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-neutral-900, #171717);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n cursor: pointer;\n text-align: start;\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n/* keyboard focus + open both read as \"engaged\": accent ring */\n.nx-select__trigger:focus-visible,\n.nx-select__trigger--open {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-select__trigger--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-select__trigger--invalid:focus-visible,\n.nx-select__trigger--invalid.nx-select__trigger--open {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-select__trigger--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #fafafa);\n}\n\n/* size scale — matches Input's padding/type ramp */\n.nx-select__trigger--xs {\n padding: 4px 8px;\n min-block-size: 28px;\n font-size: var(--typography-sizeXs, 12px);\n}\n.nx-select__trigger--sm {\n padding: 5px 10px;\n min-block-size: 32px;\n font-size: var(--typography-sizeSm, 14px);\n}\n.nx-select__trigger--md {\n padding: 8px 12px;\n min-block-size: 38px;\n font-size: var(--typography-sizeMd, 16px);\n}\n.nx-select__trigger--lg {\n padding: 10px 14px;\n min-block-size: 44px;\n font-size: var(--typography-sizeLg, 18px);\n}\n.nx-select__trigger--xl {\n padding: 12px 16px;\n min-block-size: 52px;\n font-size: var(--typography-sizeXl, 20px);\n}\n\n/* ---- value / placeholder (single) ---- */\n.nx-select__value {\n flex: 1 1 auto;\n min-inline-size: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.nx-select__value--placeholder {\n color: var(--color-neutral-400, #a3a3a3);\n}\n\n/* ---- chips (multiple) ---- */\n.nx-select__chips {\n flex: 1 1 auto;\n min-inline-size: 0;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n.nx-select__chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 4px 2px 8px;\n font-size: 0.85em;\n line-height: 1.4;\n color: var(--color-brand-700, #4338ca);\n background: var(--color-brand-50, #eef2ff);\n border-radius: var(--radius-sm, 4px);\n}\n.nx-select__chip-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n inline-size: 16px;\n block-size: 16px;\n color: inherit;\n background: transparent;\n border: none;\n border-radius: var(--radius-full, 9999px);\n cursor: pointer;\n opacity: 0.7;\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease), background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-select__chip-remove:hover {\n opacity: 1;\n background: color-mix(in srgb, var(--color-brand-700, #4338ca) 15%, transparent);\n}\n.nx-select__chip-remove-icon {\n inline-size: 12px;\n block-size: 12px;\n}\n\n/* ---- chevron ---- */\n.nx-select__chevron {\n flex: none;\n inline-size: 1em;\n block-size: 1em;\n color: var(--color-neutral-500, #737373);\n transition: transform var(--motion-durationNormal, 180ms) var(--motion-easeStandard, ease);\n}\n.nx-select__trigger--open .nx-select__chevron {\n transform: rotate(180deg);\n}\n\n/* ---- listbox (portalled), shaped like the Dropdown surface ---- */\n.nx-select__listbox {\n box-sizing: border-box;\n max-block-size: 16rem;\n overflow-y: auto;\n padding: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-200, #e5e5e5);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-lg, 0 10px 15px rgba(0, 0, 0, 0.1));\n /* Peer of the Dropdown menu in the overlay stack (below Modal 1000? no —\n these are anchored popups, above Modal, below Tooltip 1100). */\n z-index: 1050;\n animation: nx-select-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-select__listbox--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-select__listbox--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-select__listbox--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-select__listbox--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-select__listbox--xl { font-size: var(--typography-sizeXl, 20px); }\n\n/* ---- option ---- */\n.nx-select__option {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n padding: 6px 8px;\n border-radius: var(--radius-sm, 4px);\n color: var(--color-neutral-800, #262626);\n cursor: pointer;\n user-select: none;\n}\n\n/* \"active\" = the aria-activedescendant highlight (keyboard or hover) */\n.nx-select__option--active {\n background: var(--color-brand-50, #eef2ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n.nx-select__option--selected {\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-select__option--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* fixed gutter so labels align whether or not a check is shown */\n.nx-select__option-check {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 1em;\n block-size: 1em;\n color: var(--color-brand-600, #4f46e5);\n}\n.nx-select__check-icon {\n inline-size: 1em;\n block-size: 1em;\n}\n.nx-select__option-label {\n flex: 1 1 auto;\n min-inline-size: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@keyframes nx-select-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-select__trigger,\n .nx-select__chevron,\n .nx-select__chip-remove {\n transition: none;\n }\n .nx-select__listbox {\n animation: none;\n }\n}\n","/* Category B: form input. Every value is a var(--token, fallback)\n from the active theme's generated custom properties — no literal\n colors, radii, or durations. */\n\n.nx-slider {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n min-inline-size: 10rem;\n box-sizing: border-box;\n padding-block: var(--spacing-sm, 8px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n touch-action: none; /* dragging a thumb shouldn't also scroll the page on touch devices */\n}\n\n.nx-slider__track {\n position: relative;\n inline-size: 100%;\n border-radius: var(--radius-full, 999px);\n background: var(--color-neutral-200, #e5e7eb);\n cursor: pointer;\n}\n\n.nx-slider--xs .nx-slider__track { block-size: 3px; }\n.nx-slider--sm .nx-slider__track { block-size: 4px; }\n.nx-slider--md .nx-slider__track { block-size: 5px; }\n.nx-slider--lg .nx-slider__track { block-size: 6px; }\n.nx-slider--xl .nx-slider__track { block-size: 8px; }\n\n/* Reserves room for .nx-slider__value-label above the track instead\n of letting it overflow into whatever sits above .nx-slider in\n .nx-field — which, when the slider has a `label`, is the label\n text itself (the reported \"Price range\" text sitting behind the\n \"$0\" bubble). 32px comfortably clears the tallest case: an xl\n thumb's radius (12px) + the bubble's 8px offset + the bubble's\n own ~14px content height, with a little headroom. */\n.nx-slider--with-value-label {\n margin-block-start: 32px;\n}\n\n.nx-slider__range {\n position: absolute;\n inset-block: 0;\n border-radius: inherit;\n background: var(--color-brand-500, #6366f1);\n /* Purely visual — without this, the filled portion of the track\n sits on top and silently swallows pointer events aimed at the\n track underneath it (handleTrackPointerDown's target check\n rejects anything that isn't the track element itself). Since a\n slider at any nonzero value has visible fill covering part of\n the track, that made clicking directly on the fill do nothing —\n only the empty remainder or the small thumb itself responded. */\n pointer-events: none;\n}\n\n.nx-slider__thumb {\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n border-radius: var(--radius-full, 999px);\n background: var(--color-surface, #ffffff);\n border: 2px solid var(--color-brand-500, #6366f1);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.12));\n cursor: grab;\n touch-action: none;\n outline: none;\n transition: box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-slider__thumb:active {\n cursor: grabbing;\n transform: translate(-50%, -50%) scale(1.08);\n}\n\n.nx-slider__thumb:focus-visible {\n box-shadow: 0 0 0 4px var(--color-brand-100, #e0e7ff);\n}\n\n.nx-slider--xs .nx-slider__thumb { inline-size: 12px; block-size: 12px; }\n.nx-slider--sm .nx-slider__thumb { inline-size: 14px; block-size: 14px; }\n.nx-slider--md .nx-slider__thumb { inline-size: 16px; block-size: 16px; }\n.nx-slider--lg .nx-slider__thumb { inline-size: 20px; block-size: 20px; }\n.nx-slider--xl .nx-slider__thumb { inline-size: 24px; block-size: 24px; }\n\n.nx-slider__value-label {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n padding: 2px 8px;\n border-radius: var(--radius-sm, 6px);\n background: var(--color-neutral-900, #111827);\n color: var(--color-neutral-0, #ffffff);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n white-space: nowrap;\n pointer-events: none;\n}\n\n.nx-slider--disabled {\n opacity: 0.5;\n}\n\n.nx-slider--disabled .nx-slider__track,\n.nx-slider--disabled .nx-slider__thumb {\n cursor: not-allowed;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-slider__thumb {\n transition: none;\n }\n}","/* ============================================================\n COMBOBOX — an editable text field + portalled listbox.\n\n Deliberately mirrors Select.css's shape (same field sizing ramp,\n same listbox surface as the Dropdown/Select popups) rather than\n re-deriving its own — the visual language should be identical\n since a Combobox is a Select someone can also type into, not a\n different kind of control.\n ============================================================ */\n\n.nx-combobox__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n max-inline-size: 20rem;\n}\n\n.nx-combobox__input {\n inline-size: 100%;\n box-sizing: border-box;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-neutral-900, #171717);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n /* room for the clear + chevron buttons, regardless of which is showing */\n padding-inline-end: 56px;\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-combobox__input:focus-visible,\n.nx-combobox__input--open {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-combobox__input--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-combobox__input--invalid:focus-visible,\n.nx-combobox__input--invalid.nx-combobox__input--open {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-combobox__input--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #fafafa);\n}\n\n.nx-combobox__input--xs { padding-block: 4px; padding-inline-start: 8px; min-block-size: 28px; font-size: var(--typography-sizeXs, 12px); }\n.nx-combobox__input--sm { padding-block: 5px; padding-inline-start: 10px; min-block-size: 32px; font-size: var(--typography-sizeSm, 14px); }\n.nx-combobox__input--md { padding-block: 8px; padding-inline-start: 12px; min-block-size: 38px; font-size: var(--typography-sizeMd, 16px); }\n.nx-combobox__input--lg { padding-block: 10px; padding-inline-start: 14px; min-block-size: 44px; font-size: var(--typography-sizeLg, 18px); }\n.nx-combobox__input--xl { padding-block: 12px; padding-inline-start: 16px; min-block-size: 52px; font-size: var(--typography-sizeXl, 20px); }\n\n.nx-combobox__clear,\n.nx-combobox__toggle {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 24px;\n block-size: 24px;\n padding: 0;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-neutral-500, #737373);\n cursor: pointer;\n}\n\n.nx-combobox__clear:hover,\n.nx-combobox__toggle:hover:not(:disabled) {\n background: var(--color-neutral-100, #f5f5f5);\n color: var(--color-neutral-700, #404040);\n}\n\n.nx-combobox__toggle:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.nx-combobox__clear {\n inset-inline-end: 32px;\n}\n.nx-combobox__clear-icon {\n inline-size: 0.9em;\n block-size: 0.9em;\n}\n\n.nx-combobox__toggle {\n inset-inline-end: 4px;\n}\n.nx-combobox__chevron {\n inline-size: 1em;\n block-size: 1em;\n transition: transform var(--motion-durationNormal, 180ms) var(--motion-easeStandard, ease);\n}\n.nx-combobox__input--open ~ .nx-combobox__toggle .nx-combobox__chevron {\n transform: rotate(180deg);\n}\n\n/* ---- listbox (portalled), same surface as Select's ---- */\n.nx-combobox__listbox {\n box-sizing: border-box;\n max-block-size: 16rem;\n overflow-y: auto;\n padding: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-200, #e5e5e5);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-lg, 0 10px 15px rgba(0, 0, 0, 0.1));\n z-index: 1050;\n animation: nx-combobox-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-combobox__listbox--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-combobox__listbox--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-combobox__listbox--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-combobox__listbox--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-combobox__listbox--xl { font-size: var(--typography-sizeXl, 20px); }\n\n.nx-combobox__option {\n padding: 6px 8px;\n border-radius: var(--radius-sm, 4px);\n color: var(--color-neutral-800, #262626);\n cursor: pointer;\n user-select: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.nx-combobox__option--active {\n background: var(--color-brand-50, #eef2ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n.nx-combobox__option--selected {\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-combobox__option--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-combobox__empty {\n padding: 10px 8px;\n color: var(--color-neutral-400, #a3a3a3);\n font-size: 0.9em;\n text-align: center;\n}\n\n@keyframes nx-combobox-in {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-combobox__listbox {\n animation-duration: 0.01ms;\n }\n .nx-combobox__chevron {\n transition: none;\n }\n}\n","/* Standalone month-grid, also embedded inside DatePicker's Popover\n (DatePicker.css strips the surrounding PopoverContent's own\n border/shadow/background for that specific case — see\n .nx-datepicker__popover — so this surface is always the only one\n visible, standalone or embedded, never doubled up). */\n\n.nx-calendar {\n display: inline-flex;\n flex-direction: column;\n gap: 8px;\n box-sizing: border-box;\n padding: 12px;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e5e5);\n border-radius: var(--radius-lg, 14px);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08));\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #171717);\n user-select: none;\n}\n\n.nx-calendar__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.nx-calendar__month-label {\n font-weight: var(--typography-weightMedium, 500);\n font-size: var(--typography-sizeSm, 14px);\n text-align: center;\n flex: 1;\n}\n\n.nx-calendar__month-label--button {\n border: none;\n background: transparent;\n border-radius: var(--radius-sm, 6px);\n padding: 4px 8px;\n color: inherit;\n cursor: pointer;\n}\n\n.nx-calendar__month-label--button:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-calendar__month-label--button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-calendar__nav {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 28px;\n block-size: 28px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-text, #525252);\n cursor: pointer;\n}\n\n.nx-calendar__nav:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n color: var(--color-text, #171717);\n}\n\n.nx-calendar__nav:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-calendar__weekdays,\n.nx-calendar__grid {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n gap: 2px;\n}\n\n.nx-calendar__weekday {\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: 28px;\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-textMuted, #a3a3a3);\n}\n\n.nx-calendar__day {\n display: flex;\n align-items: center;\n justify-content: center;\n inline-size: 34px;\n block-size: 34px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-text, #262626);\n font-size: var(--typography-sizeSm, 14px);\n cursor: pointer;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-calendar__day:hover:not(:disabled) {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-calendar__day:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-calendar__day--outside {\n color: var(--color-textMuted, #d4d4d4);\n}\n\n.nx-calendar__day--today {\n font-weight: var(--typography-weightBold, 700);\n box-shadow: inset 0 0 0 1px var(--color-brand-300, #a5b4fc);\n}\n\n.nx-calendar__day--selected {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-calendar__day--selected:hover:not(:disabled) {\n background: var(--color-brand-600, #4f46e5);\n}\n\n.nx-calendar__day--disabled {\n color: var(--color-textMuted, #d4d4d4);\n cursor: not-allowed;\n}\n\n/* --- month/year \"zoom out\" grids --- */\n\n.nx-calendar__grid--months,\n.nx-calendar__grid--years {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 4px;\n min-inline-size: 220px;\n}\n\n.nx-calendar__cell {\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: 44px;\n border: none;\n background: transparent;\n border-radius: var(--radius-md, 10px);\n color: var(--color-text, #262626);\n font-size: var(--typography-sizeSm, 14px);\n cursor: pointer;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-calendar__cell:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-calendar__cell:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-calendar__cell--selected {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-calendar__cell--selected:hover {\n background: var(--color-brand-600, #4f46e5);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-calendar__day {\n transition: none;\n }\n}","/* Category C: overlay panel. Every value is a var(--token, fallback)\n from the active theme's generated custom properties. Rendered\n through ThemedPortal, which mirrors data-theme/data-accent onto\n the portal node, so these tokens resolve correctly even though\n the panel lives at the end of <body>. No literal colors, radii,\n durations, or shadows. */\n\n.nx-popover__content {\n /* Between Dropdown's menu (1050) and Tooltip (1100) — a popover\n can itself contain a dropdown or tooltip trigger, and those\n should still layer over it. */\n z-index: 1060;\n box-sizing: border-box;\n min-inline-size: 12rem;\n max-inline-size: min(24rem, calc(100vw - 16px));\n max-block-size: calc(100vh - 16px);\n overflow: auto;\n padding: var(--spacing-md, 16px);\n margin: 0;\n background: var(--color-surface, #ffffff);\n color: var(--color-text, #111827);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-lg, 12px);\n box-shadow: var(--shadow-lg, 0 10px 24px rgba(0, 0, 0, 0.18));\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n animation: nx-popover-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-popover__content:focus-visible {\n outline: none;\n}\n\n@keyframes nx-popover-in {\n from { opacity: 0; transform: translateY(-4px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-popover__content {\n animation-duration: 0.01ms;\n }\n}",".nx-datepicker__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n max-inline-size: 16rem;\n}\n\n.nx-datepicker__input {\n inline-size: 100%;\n box-sizing: border-box;\n padding: 8px 40px 8px 12px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeMd, 16px);\n color: var(--color-text, #171717);\n background: var(--color-surface, #ffffff);\n border: 1px solid var(--color-border, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-datepicker__input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-datepicker__input--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-datepicker__input--invalid:focus-visible {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-datepicker__input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-surface, #fafafa);\n}\n\n.nx-datepicker__icon-button {\n position: absolute;\n inset-inline-end: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 28px;\n block-size: 28px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-textMuted, #737373);\n cursor: pointer;\n}\n\n.nx-datepicker__icon-button:hover:not(:disabled) {\n background: var(--color-surfaceRaised, #f5f5f5);\n color: var(--color-text, #404040);\n}\n\n.nx-datepicker__icon-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-datepicker__icon-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.nx-datepicker__popover {\n /* Strips PopoverContent's own card chrome (border/shadow/\n background/padding) specifically for this composition — Calendar\n now provides its own full surface treatment (background, border,\n radius, shadow, glass-blur support), so this only needs to be a\n transparent, unstyled wrapper around it. Otherwise the calendar\n would render inside a visibly doubled \"card within a card\". */\n padding: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n}",".nx-timepicker__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n max-inline-size: 16rem;\n}\n\n.nx-timepicker__input {\n inline-size: 100%;\n box-sizing: border-box;\n padding: 8px 40px 8px 12px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeMd, 16px);\n color: var(--color-text, #171717);\n background: var(--color-surface, #ffffff);\n border: 1px solid var(--color-border, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-timepicker__input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-timepicker__input--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-timepicker__input--invalid:focus-visible {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-timepicker__input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-surface, #fafafa);\n}\n\n.nx-timepicker__icon-button {\n position: absolute;\n inset-inline-end: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 28px;\n block-size: 28px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-textMuted, #737373);\n cursor: pointer;\n}\n\n.nx-timepicker__icon-button:hover:not(:disabled) {\n background: var(--color-surfaceRaised, #f5f5f5);\n color: var(--color-text, #404040);\n}\n\n.nx-timepicker__icon-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-timepicker__icon-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.nx-timepicker__popover {\n /* Same reasoning as DatePicker.css's own .nx-datepicker__popover:\n strip PopoverContent's card chrome since .nx-timepicker__clock-panel\n provides its own full surface treatment, so the panel isn't a\n visibly doubled \"card within a card\". */\n padding: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n}\n\n/* --- the clock panel: dial + digital entry --- */\n\n.nx-timepicker__clock-panel {\n display: flex;\n flex-direction: column;\n gap: 12px;\n inline-size: 15.5rem;\n padding: 14px;\n background: var(--color-surfaceRaised, #ffffff);\n border: 1px solid var(--color-border, #e5e5e5);\n border-radius: var(--radius-lg, 12px);\n box-shadow: var(--shadow-lg, 0 10px 24px rgba(0, 0, 0, 0.12));\n}\n\n.nx-timepicker__panel-title {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-textMuted, #737373);\n}\n\n.nx-timepicker__readout {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n}\n\n.nx-timepicker__readout-segment {\n padding: 4px 10px;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: 28px;\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #404040);\n background: var(--color-surface, #f5f5f5);\n border: none;\n border-radius: var(--radius-sm, 4px);\n cursor: pointer;\n}\n\n.nx-timepicker__readout-segment:disabled {\n cursor: default;\n opacity: 0.85;\n}\n\n.nx-timepicker__readout-segment--active {\n color: var(--color-brand-onAccent, #ffffff);\n background: var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__readout-colon {\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: 28px;\n color: var(--color-textMuted, #a3a3a3);\n}\n\n.nx-timepicker__meridiem-group {\n display: flex;\n flex-direction: column;\n margin-inline-start: 8px;\n border: 1px solid var(--color-border, #e5e5e5);\n border-radius: var(--radius-sm, 4px);\n overflow: hidden;\n}\n\n.nx-timepicker__meridiem-button {\n padding: 4px 10px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #525252);\n background: var(--color-surface, #ffffff);\n border: none;\n cursor: pointer;\n}\n\n.nx-timepicker__meridiem-button:first-child {\n border-block-end: 1px solid var(--color-border, #e5e5e5);\n}\n\n.nx-timepicker__meridiem-button:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 2px var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__meridiem-button--active {\n color: var(--color-brand-onAccent, #ffffff);\n background: var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__dial-face {\n position: relative;\n inline-size: 220px;\n block-size: 220px;\n margin: 4px auto;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-surface, #f5f5f5);\n touch-action: none;\n user-select: none;\n}\n\n.nx-timepicker__dial-center {\n position: absolute;\n inset-inline-start: 50%;\n inset-block-start: 50%;\n inline-size: 6px;\n block-size: 6px;\n transform: translate(-50%, -50%);\n border-radius: var(--radius-full, 9999px);\n background: var(--color-brand-500, #6366f1);\n}\n\n/* Marks the exact selected point on the ring, independent of the 12\n labeled ticks — a dragged/arrow-keyed minute that lands between two\n labels (e.g. :17) has no label of its own, but still needs a\n visible marker for where it landed. */\n.nx-timepicker__dial-knob {\n position: absolute;\n inline-size: 32px;\n block-size: 32px;\n transform: translate(-50%, -50%);\n border-radius: var(--radius-full, 9999px);\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 18%, transparent);\n pointer-events: none;\n}\n\n.nx-timepicker__dial-hand {\n position: absolute;\n inset-inline-start: 50%;\n inset-block-start: 50%;\n inline-size: 2px;\n block-size: 42%;\n transform-origin: top center;\n /* translateX(-50%) + rotate() both come from dialHandStyle's own\n inline `transform`, computed together so rotation always pivots\n on the already-centered bar rather than relying on the separate\n `translate`/`transform` CSS properties' composition order. */\n background: var(--color-brand-500, #6366f1);\n pointer-events: none;\n}\n\n.nx-timepicker__dial-tick {\n position: absolute;\n inline-size: 32px;\n block-size: 32px;\n transform: translate(-50%, -50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-text, #404040);\n background: transparent;\n border: none;\n border-radius: var(--radius-full, 9999px);\n cursor: pointer;\n}\n\n.nx-timepicker__dial-tick:hover:not(:disabled) {\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 15%, transparent);\n}\n\n.nx-timepicker__dial-tick:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__dial-tick--selected {\n color: var(--color-brand-onAccent, #ffffff);\n background: var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__dial-tick--disabled {\n color: var(--color-textMuted, #d4d4d4);\n cursor: not-allowed;\n}\n\n.nx-timepicker__digital-entry {\n display: flex;\n align-items: flex-end;\n justify-content: center;\n gap: 6px;\n padding: 8px 0 4px;\n}\n\n.nx-timepicker__digital-field {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n}\n\n.nx-timepicker__digital-input {\n inline-size: 56px;\n box-sizing: border-box;\n padding: 8px 0;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: 24px;\n text-align: center;\n color: var(--color-text, #171717);\n background: var(--color-surface, #f5f5f5);\n border: 1px solid var(--color-border, #e5e5e5);\n border-radius: var(--radius-sm, 4px);\n}\n\n.nx-timepicker__digital-input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-timepicker__digital-caption {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: 11px;\n color: var(--color-textMuted, #737373);\n}\n\n.nx-timepicker__digital-colon {\n padding-block-end: 22px;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: 24px;\n color: var(--color-textMuted, #a3a3a3);\n}\n\n.nx-timepicker__panel-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-block-start: 1px solid var(--color-border, #e5e5e5);\n padding-block-start: 10px;\n}\n\n.nx-timepicker__mode-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 32px;\n block-size: 32px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-text, #525252);\n cursor: pointer;\n}\n\n.nx-timepicker__mode-button:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-timepicker__mode-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-timepicker__panel-actions {\n display: flex;\n gap: 4px;\n}\n\n.nx-timepicker__text-button {\n padding: 6px 12px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #525252);\n background: transparent;\n border: none;\n border-radius: var(--radius-sm, 4px);\n cursor: pointer;\n}\n\n.nx-timepicker__text-button:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-timepicker__text-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-timepicker__text-button--primary {\n color: var(--color-brand-600, #4f46e5);\n}\n\n.nx-timepicker__text-button:disabled {\n color: var(--color-textMuted, #d4d4d4);\n cursor: not-allowed;\n background: transparent;\n}",".nx-colorpicker__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n max-inline-size: 12rem;\n}\n\n.nx-colorpicker__input {\n inline-size: 100%;\n box-sizing: border-box;\n padding: 8px 40px 8px 12px;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: var(--typography-sizeMd, 16px);\n color: var(--color-neutral-900, #171717);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-colorpicker__input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-colorpicker__input--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-colorpicker__input--invalid:focus-visible {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-colorpicker__input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #fafafa);\n}\n\n.nx-colorpicker__swatch-button {\n position: absolute;\n inset-inline-end: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 26px;\n block-size: 26px;\n padding: 0;\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n background:\n linear-gradient(45deg, #ccc 25%, transparent 25%, transparent 75%, #ccc 75%) 0 0 / 8px 8px,\n linear-gradient(45deg, #ccc 25%, transparent 25%, transparent 75%, #ccc 75%) 4px 4px / 8px 8px;\n border-radius: var(--radius-sm, 4px);\n cursor: pointer;\n}\n\n.nx-colorpicker__swatch-preview {\n inline-size: 100%;\n block-size: 100%;\n border-radius: var(--radius-sm, 4px);\n border: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.nx-colorpicker__swatch-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-colorpicker__swatch-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.nx-colorpicker__popover {\n display: flex;\n flex-direction: column;\n gap: 10px;\n inline-size: 15.5rem;\n}\n\n.nx-colorpicker__swatch-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.nx-colorpicker__swatch-option {\n inline-size: 22px;\n block-size: 22px;\n border-radius: var(--radius-sm, 4px);\n border: 1px solid rgba(0, 0, 0, 0.1);\n cursor: pointer;\n}\n\n.nx-colorpicker__swatch-option--selected {\n box-shadow: 0 0 0 2px var(--color-neutral-0, #fff), 0 0 0 4px var(--color-brand-500, #6366f1);\n}\n\n.nx-colorpicker__swatch-option:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--color-neutral-0, #fff), 0 0 0 4px var(--color-brand-500, #6366f1);\n}\n\n/* --- custom color panel: SV area + hue slider + format fields --- */\n\n.nx-colorpicker__custom-panel {\n display: flex;\n flex-direction: column;\n gap: 10px;\n border-top: 1px solid var(--color-neutral-200, #e5e5e5);\n padding-top: 10px;\n}\n\n/* variant=\"custom\": this panel is the popover's only content, so the\n divider that normally separates it from the swatch grid above\n would just be an orphan line with nothing above it. */\n.nx-colorpicker__custom-panel--standalone {\n border-top: none;\n padding-top: 0;\n}\n\n.nx-colorpicker__sv-area {\n position: relative;\n inline-size: 100%;\n block-size: 120px;\n border-radius: var(--radius-md, 8px);\n /* backgroundColor (the pure hue) is set inline per-render; these two\n layers give the white->transparent (saturation) and\n black->transparent (value) gradients on top of it. */\n background-image: linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, transparent);\n cursor: crosshair;\n touch-action: none;\n border: 1px solid var(--color-neutral-200, #e5e5e5);\n}\n\n.nx-colorpicker__sv-thumb {\n position: absolute;\n inline-size: 14px;\n block-size: 14px;\n transform: translate(-50%, -50%);\n border-radius: var(--radius-full, 9999px);\n border: 2px solid #fff;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35), var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.25));\n cursor: grab;\n touch-action: none;\n}\n\n.nx-colorpicker__sv-thumb:active {\n cursor: grabbing;\n}\n\n.nx-colorpicker__sv-thumb:focus-visible {\n outline: none;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35), 0 0 0 3px var(--color-brand-500, #6366f1);\n}\n\n.nx-colorpicker__hue-slider {\n -webkit-appearance: none;\n appearance: none;\n inline-size: 100%;\n block-size: 12px;\n margin: 0;\n border-radius: var(--radius-full, 9999px);\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n cursor: pointer;\n}\n\n.nx-colorpicker__hue-slider:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-colorpicker__hue-slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n inline-size: 18px;\n block-size: 18px;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-neutral-0, #fff);\n border: 2px solid var(--color-neutral-400, #a3a3a3);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.25));\n cursor: grab;\n}\n\n.nx-colorpicker__hue-slider::-moz-range-thumb {\n inline-size: 18px;\n block-size: 18px;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-neutral-0, #fff);\n border: 2px solid var(--color-neutral-400, #a3a3a3);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.25));\n cursor: grab;\n}\n\n.nx-colorpicker__hue-slider::-moz-range-track {\n block-size: 12px;\n border-radius: var(--radius-full, 9999px);\n background: transparent;\n}\n\n.nx-colorpicker__format-tabs {\n display: flex;\n gap: 4px;\n border-bottom: 1px solid var(--color-neutral-200, #e5e5e5);\n}\n\n.nx-colorpicker__format-tab {\n flex: 1 1 auto;\n padding: 4px 0 6px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-neutral-500, #737373);\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n}\n\n.nx-colorpicker__format-tab--active {\n color: var(--color-brand-500, #6366f1);\n border-bottom-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-colorpicker__format-tab:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-colorpicker__format-tab:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand-500, #6366f1) 30%, transparent);\n}\n\n.nx-colorpicker__format-fields {\n display: flex;\n gap: 6px;\n}\n\n.nx-colorpicker__format-field {\n flex: 1 1 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.nx-colorpicker__format-field--wide {\n flex: 1 1 100%;\n}\n\n.nx-colorpicker__format-field label {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: 11px;\n color: var(--color-neutral-500, #737373);\n text-align: center;\n}\n\n.nx-colorpicker__format-field input {\n inline-size: 100%;\n box-sizing: border-box;\n padding: 4px 6px;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: var(--typography-sizeXs, 12px);\n text-align: center;\n color: var(--color-neutral-900, #171717);\n background: var(--color-neutral-0, #fff);\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n border-radius: var(--radius-sm, 4px);\n}\n\n.nx-colorpicker__format-field input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-colorpicker__format-field input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}",".nx-carousel {\n position: relative;\n display: grid;\n grid-auto-rows: auto;\n gap: 10px;\n}\n\n/* `grid-row`/`grid-column` here isn't a layout preference — it's\n what makes the fix below work. A grid item with explicit (non-\n auto) placement on both axes becomes the containing block for any\n absolutely-positioned grid item placed in that same area (CSS\n Grid §10.1). Pinning the viewport to row 1 / column 1 gives\n CarouselPrevious/CarouselNext (placed in that same cell below) a\n containing block that's exactly the viewport's own box — not\n `.nx-carousel`'s full height including whatever else (indicators,\n anything else a consumer adds) sits below it. */\n.nx-carousel__viewport {\n position: relative;\n overflow: hidden;\n border-radius: var(--radius-lg, 12px);\n grid-row: 1;\n grid-column: 1;\n}\n\n.nx-carousel__viewport:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 30%, transparent);\n}\n\n.nx-carousel__track {\n display: flex;\n transition: transform var(--motion-durationSlow, 320ms) var(--motion-easeStandard, ease);\n will-change: transform;\n}\n\n.nx-carousel__track--vertical {\n flex-direction: column;\n}\n\n.nx-carousel__slide {\n flex: 0 0 100%;\n min-inline-size: 0;\n min-block-size: 0;\n}\n\n/* A slide's children are arbitrary (Rule: CarouselSlide takes\n `children`, no special-cased \"image\" prop) — an <img> or <video>\n dropped straight in otherwise renders at its own intrinsic pixel\n size, ignoring the slide entirely, which is what actually broke\n for image carousels. `block-size: 100%` here is a no-op (computes\n to `auto`) unless the consumer also gives CarouselViewport an\n explicit height — the standard pattern for a fixed-height image\n carousel (see the \"Images\" docs example) — so this is safe for\n auto-height content carousels too. */\n.nx-carousel__slide img,\n.nx-carousel__slide video {\n display: block;\n inline-size: 100%;\n block-size: 100%;\n object-fit: cover;\n}\n\n.nx-carousel__button {\n position: absolute;\n /* Same grid area as .nx-carousel__viewport (see the comment there)\n — this is what makes `top: 50%` mean \"middle of the viewport,\"\n regardless of whether CarouselPrevious/CarouselNext are rendered\n as flush siblings of the viewport or nested inside it, and\n regardless of what else (CarouselIndicators, a consumer's own\n wrapper) sits below in the carousel. */\n grid-row: 1;\n grid-column: 1;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 36px;\n block-size: 36px;\n border: 1px solid var(--color-neutral-200, #e5e5e5);\n border-radius: var(--radius-full, 9999px);\n background: color-mix(in srgb, var(--color-neutral-0, #ffffff) 85%, transparent);\n color: var(--color-neutral-800, #262626);\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.1));\n cursor: pointer;\n}\n\n.nx-carousel__button--prev {\n inset-inline-start: 10px;\n}\n\n.nx-carousel__button--next {\n inset-inline-end: 10px;\n}\n\n.nx-carousel__button:hover:not(:disabled) {\n background: var(--color-neutral-0, #ffffff);\n}\n\n.nx-carousel__button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 30%, transparent);\n}\n\n.nx-carousel__button:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.nx-carousel__indicators {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.nx-carousel__indicator {\n inline-size: 8px;\n block-size: 8px;\n padding: 0;\n border: none;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-neutral-300, #d4d4d4);\n cursor: pointer;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease), transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-carousel__indicator:hover {\n background: var(--color-neutral-400, #a3a3a3);\n}\n\n.nx-carousel__indicator:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 30%, transparent);\n}\n\n.nx-carousel__indicator--active {\n background: var(--color-brand-500, #6366f1);\n transform: scale(1.25);\n}",".nx-timeline {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n inline-size: 100%;\n}\n\n/* --- vertical (default) --- */\n\n.nx-timeline--vertical {\n flex-direction: column;\n}\n\n.nx-timeline--vertical .nx-timeline__item {\n display: flex;\n gap: 16px;\n}\n\n.nx-timeline--vertical .nx-timeline__marker {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 0 0 auto;\n}\n\n.nx-timeline--vertical .nx-timeline__connector {\n flex: 1 1 auto;\n inline-size: 2px;\n min-block-size: 20px;\n margin-block: 4px;\n background: var(--color-border, #e5e5e5);\n}\n\n.nx-timeline--vertical .nx-timeline__item:last-child .nx-timeline__connector {\n display: none;\n}\n\n.nx-timeline--vertical .nx-timeline__content {\n padding-block-end: 20px;\n}\n\n/* alternate: even items flip to the other side of the line */\n.nx-timeline--align-alternate.nx-timeline--vertical .nx-timeline__item:nth-child(even) {\n flex-direction: row-reverse;\n text-align: end;\n}\n.nx-timeline--align-alternate.nx-timeline--vertical .nx-timeline__item:nth-child(even) .nx-timeline__header {\n flex-direction: row-reverse;\n}\n\n.nx-timeline--align-end.nx-timeline--vertical .nx-timeline__item {\n flex-direction: row-reverse;\n text-align: end;\n}\n.nx-timeline--align-end.nx-timeline--vertical .nx-timeline__header {\n flex-direction: row-reverse;\n}\n\n/* --- horizontal --- */\n\n.nx-timeline--horizontal {\n flex-direction: row;\n overflow-x: auto;\n}\n\n.nx-timeline--horizontal .nx-timeline__item {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1 0 10rem;\n}\n\n.nx-timeline--horizontal .nx-timeline__marker {\n display: flex;\n align-items: center;\n inline-size: 100%;\n}\n\n.nx-timeline--horizontal .nx-timeline__connector {\n flex: 1 1 auto;\n block-size: 2px;\n margin-inline: 4px;\n background: var(--color-border, #e5e5e5);\n}\n\n.nx-timeline--horizontal .nx-timeline__item:last-child .nx-timeline__connector {\n display: none;\n}\n\n.nx-timeline--horizontal .nx-timeline__content {\n text-align: center;\n padding-block-start: 10px;\n}\n\n/* --- marker / dot --- */\n\n.nx-timeline__dot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 12px;\n block-size: 12px;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-textMuted, #a3a3a3);\n border: 2px solid var(--color-background, #ffffff);\n box-shadow: 0 0 0 1px var(--color-border, #e5e5e5);\n flex: 0 0 auto;\n}\n\n.nx-timeline__dot--icon {\n inline-size: 22px;\n block-size: 22px;\n background: var(--color-surface, #ffffff);\n color: var(--color-text, #404040);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: 12px;\n line-height: 1;\n font-weight: var(--typography-weightMedium, 500);\n}\n\n/* Normalizes whatever the consumer's own icon renders at (an icon\n component's `size` prop defaults to 20px in this library, too big\n for a 22px dot with any breathing room) down to a size that\n actually fits — \"large for icon type automatically\" holds\n regardless of what the icon itself was told to render at. CSS\n width/height take precedence over an SVG's own width/height\n presentation attributes, so this applies even when the consumer\n passed an explicit size. */\n.nx-timeline__dot--icon svg,\n.nx-timeline__dot--icon img {\n inline-size: 14px;\n block-size: 14px;\n display: block;\n}\n\n.nx-timeline__dot--success {\n background: var(--color-success-base, #16a34a);\n}\n.nx-timeline__dot--warning {\n background: var(--color-warning-base, #d97706);\n}\n.nx-timeline__dot--danger {\n background: var(--color-danger-base, #dc2626);\n}\n.nx-timeline__dot--info {\n background: var(--color-brand-500, #6366f1);\n}\n\n/* --- content --- */\n\n.nx-timeline__header {\n display: flex;\n align-items: baseline;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.nx-timeline__title {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeMd, 16px);\n font-weight: var(--typography-weightSemibold, 600);\n color: var(--color-text, #171717);\n}\n\n.nx-timeline__timestamp {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n color: var(--color-textMuted, #737373);\n}\n\n.nx-timeline__description {\n margin-block-start: 4px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #525252);\n}","/* Mirrors Modal.css's backdrop/panel shape (same z-index tier,\n same entrance-animation convention) since this genuinely is a\n modal dialog, just shaped like a search box + list. Item styling\n mirrors the shared .nx-list-item look from ListPanel.css (used by\n Dropdown/Select) for visual consistency across every \"list of\n things to pick\" surface in the library, even though this file\n defines its own classes rather than importing that one — the\n backdrop-anchored top alignment here doesn't share ListPanel's\n floating-popover positioning concerns. */\n\n.nx-command__backdrop {\n position: fixed;\n inset: 0;\n z-index: 1000;\n display: flex;\n justify-content: center;\n padding-top: 12vh;\n padding-inline: var(--spacing-lg, 24px);\n background: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(2px);\n animation: nx-command-backdrop-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-command-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.nx-command {\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n max-inline-size: 640px;\n max-block-size: min(480px, 70vh);\n background: var(--color-neutral-0, #ffffff);\n border-radius: var(--radius-lg, 14px);\n box-shadow: var(--shadow-xl, 0 20px 40px rgba(0, 0, 0, 0.25));\n border: 1px solid var(--color-neutral-200, #e5e5e5);\n overflow: hidden;\n outline: none;\n animation: nx-command-panel-in var(--motion-durationNormal, 180ms) var(--motion-easeEmphasized, ease);\n}\n\n@keyframes nx-command-panel-in {\n from { opacity: 0; transform: translateY(-8px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n.nx-command__search {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 16px;\n border-bottom: 1px solid var(--color-neutral-200, #e5e5e5);\n flex-shrink: 0;\n}\n\n.nx-command__search-icon {\n flex-shrink: 0;\n color: var(--color-neutral-400, #a3a3a3);\n}\n\n.nx-command__input {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeMd, 16px);\n color: var(--color-neutral-900, #171717);\n}\n\n.nx-command__input::placeholder {\n color: var(--color-neutral-400, #a3a3a3);\n}\n\n.nx-command__list {\n overflow-y: auto;\n padding: 8px;\n}\n\n.nx-command__group + .nx-command__group {\n margin-top: 4px;\n}\n\n.nx-command__group-label {\n padding: 6px 8px 4px;\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-neutral-400, #a3a3a3);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.nx-command__item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 9px 10px;\n border-radius: var(--radius-sm, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-neutral-800, #262626);\n cursor: pointer;\n}\n\n.nx-command__item--active {\n background: var(--color-brand-50, #eef2ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n.nx-command__item--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-command__item-label {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.nx-command__item-description {\n color: var(--color-neutral-400, #a3a3a3);\n font-size: 0.9em;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.nx-command__item-shortcut {\n flex-shrink: 0;\n padding: 2px 6px;\n border-radius: var(--radius-sm, 4px);\n background: var(--color-neutral-100, #f5f5f5);\n color: var(--color-neutral-500, #737373);\n font-size: var(--typography-sizeXs, 12px);\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n}\n\n.nx-command__item--active .nx-command__item-shortcut {\n background: var(--color-neutral-0, #ffffff);\n}\n\n.nx-command__empty {\n padding: 24px 8px;\n text-align: center;\n color: var(--color-neutral-400, #a3a3a3);\n font-size: var(--typography-sizeSm, 14px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-command__backdrop,\n .nx-command {\n animation-duration: 0.01ms;\n }\n}\n",".nx-number-input-wrapper {\n display: flex;\n align-items: stretch;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, none);\n overflow: hidden;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-number-input-wrapper:focus-within {\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-number-input-wrapper--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n.nx-number-input-wrapper--invalid:focus-within {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #ef4444) 20%, transparent);\n}\n\n.nx-number-input-wrapper--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n}\n\n.nx-number-input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n padding: 8px 12px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n}\n\n.nx-number-input:disabled {\n cursor: not-allowed;\n}\n\n.nx-number-input-wrapper--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-number-input-wrapper--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-number-input-wrapper--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-number-input-wrapper--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-number-input-wrapper--xl { font-size: var(--typography-sizeXl, 22px); }\n\n.nx-number-input--xs, .nx-number-input--sm, .nx-number-input--md, .nx-number-input--lg, .nx-number-input--xl {\n font-size: inherit;\n}\n\n.nx-number-input__stepper {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n border-left: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n.nx-number-input__stepper-btn {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 1.75em;\n border: none;\n background: transparent;\n color: var(--color-textMuted, #6b7280);\n font-family: inherit;\n font-size: inherit;\n line-height: 1;\n cursor: pointer;\n padding: 0 8px;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-number-input__stepper-btn:first-child {\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n.nx-number-input__stepper-btn:not(:disabled):hover {\n background: var(--color-neutral-100, #f3f4f6);\n color: var(--color-text, #111827);\n}\n\n.nx-number-input__stepper-btn:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n",".nx-file-upload {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-sm, 8px);\n inline-size: 100%;\n box-sizing: border-box;\n padding: var(--spacing-lg, 24px);\n border: var(--border-widthMedium, 2px) dashed var(--color-border, #e5e7eb);\n border-radius: var(--radius-lg, 12px);\n background: var(--color-surface, #ffffff);\n text-align: center;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-file-upload--dragging {\n border-color: var(--color-brand-500, #6366f1);\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 6%, var(--color-surface, #ffffff));\n}\n\n.nx-file-upload--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n\n.nx-file-upload--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-file-upload--xs, .nx-file-upload--sm { padding: var(--spacing-md, 16px); }\n.nx-file-upload--lg, .nx-file-upload--xl { padding: var(--spacing-xl, 32px); }\n\n/* Visually hidden, not display:none — a hidden-by-display input\n can't receive drag/drop focus semantics or be reached by a form\n library that queries for it. Same visually-hidden technique used\n for other \"real control, styled invisible\" cases across the web\n platform. */\n.nx-file-upload__input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.nx-file-upload__prompt {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n}\n\n.nx-file-upload__hint {\n margin: 0;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-file-upload__list {\n list-style: none;\n margin: var(--spacing-sm, 8px) 0 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 4px);\n}\n\n.nx-file-upload__item {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n padding: 6px 10px;\n border-radius: var(--radius-sm, 4px);\n background: var(--color-neutral-50, #f9fafb);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n}\n\n.nx-file-upload__item-name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--color-text, #111827);\n}\n\n.nx-file-upload__item-size {\n flex-shrink: 0;\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeXs, 12px);\n}\n\n.nx-file-upload__item-remove {\n flex-shrink: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeMd, 16px);\n line-height: 1;\n padding: 0 4px;\n}\n\n.nx-file-upload__item-remove:hover {\n color: var(--color-danger-base, #ef4444);\n}\n\n.nx-file-upload__item-remove:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n",".nx-pagination {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-pagination__list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--spacing-xs, 4px);\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.nx-pagination__item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 2.25em;\n height: 2.25em;\n padding: 0 8px;\n /* Reads the theme's own border color (not a hardcoded transparent)\n the same way Button.css does — for most themes color.border is a\n barely-there gray, but for neobrutalism/brutalism/cyberpunk this\n is the difference between every page button looking like plain\n text and actually carrying that theme's signature bold/neon\n border. See Button.css's own comment for the full reasoning. */\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n border-radius: var(--radius-md, 8px);\n background: transparent;\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n box-shadow: var(--shadow-xs, none);\n color: var(--color-text, #111827);\n font-family: inherit;\n font-size: inherit;\n cursor: pointer;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-pagination__item:not(:disabled):not(.nx-pagination__item--active):hover {\n background: var(--color-neutral-100, #f3f4f6);\n}\n\n/* Same press-in convention as Button.css: an imperceptible no-op on\n flat/shadowless themes, but on neobrutalism specifically it reads\n as the button physically pressing into its own hard offset shadow. */\n.nx-pagination__item:not(:disabled):active {\n box-shadow: none;\n transform: translate(1px, 1px);\n}\n\n.nx-pagination__item--active {\n background: var(--color-brand-500, #6366f1);\n border-color: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n box-shadow: var(--shadow-sm, none);\n}\n\n.nx-pagination__item:disabled,\n.nx-pagination__item--disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.nx-pagination__ellipsis {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 2.25em;\n height: 2.25em;\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-pagination--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-pagination--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-pagination--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-pagination--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-pagination--xl { font-size: var(--typography-sizeXl, 22px); }\n\n.nx-pagination--disabled {\n opacity: 0.6;\n}\n",".nx-breadcrumb {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-breadcrumb__list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.nx-breadcrumb__item {\n display: inline-flex;\n align-items: center;\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-breadcrumb__item--current {\n color: var(--color-text, #111827);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-breadcrumb__item--disabled {\n opacity: 0.5;\n}\n\n.nx-breadcrumb__label,\n.nx-breadcrumb__link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: var(--radius-sm, 4px);\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-breadcrumb__link {\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n}\n\n.nx-breadcrumb__link:hover {\n color: var(--color-brand-500, #6366f1);\n background: var(--color-neutral-100, #f3f4f6);\n border-color: var(--color-border, transparent);\n}\n\n.nx-breadcrumb__link:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n/* The trail's current item reads as a small themed surface — the\n same border/shadow/radius fingerprint every other bordered element\n in the library uses (see Card--filled, Badge--soft) — rather than\n plain text, which is what left this the one component with nothing\n for a theme's border/shadow tokens to actually attach to. */\n.nx-breadcrumb__item--current .nx-breadcrumb__label {\n background: var(--color-surfaceRaised, #f3f4f6);\n border-color: var(--color-border, transparent);\n box-shadow: var(--shadow-xs, none);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n}\n\n.nx-breadcrumb__icon {\n display: inline-flex;\n align-items: center;\n}\n\n.nx-breadcrumb__separator {\n margin: 0 8px;\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-breadcrumb--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-breadcrumb--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-breadcrumb--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-breadcrumb--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-breadcrumb--xl { font-size: var(--typography-sizeXl, 22px); }\n",".nx-skeleton {\n display: block;\n background: color-mix(in srgb, var(--color-text, #111827) 12%, var(--color-surface, #ffffff));\n position: relative;\n overflow: hidden;\n}\n\n.nx-skeleton--text {\n border-radius: var(--radius-sm, 4px);\n block-size: 1em;\n inline-size: 100%;\n}\n\n.nx-skeleton--circular {\n border-radius: var(--radius-full, 999px);\n inline-size: 40px;\n block-size: 40px;\n}\n\n.nx-skeleton--rectangular {\n border-radius: var(--radius-md, 8px);\n inline-size: 100%;\n block-size: 100px;\n}\n\n.nx-skeleton-group {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 4px);\n}\n\n.nx-skeleton--pulse {\n animation: nx-skeleton-pulse var(--motion-durationSlow, 1.5s) var(--motion-easeStandard, ease) infinite;\n}\n\n@keyframes nx-skeleton-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n}\n\n.nx-skeleton--wave::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: linear-gradient(\n 90deg,\n transparent,\n color-mix(in srgb, var(--color-surface, #ffffff) 50%, transparent),\n transparent\n );\n animation: nx-skeleton-wave var(--motion-durationSlow, 1.5s) linear infinite;\n}\n\n@keyframes nx-skeleton-wave {\n 0% { transform: translateX(-100%); }\n 100% { transform: translateX(100%); }\n}\n\n/* Shine — a diagonal glossy sweep baked into the element's own\n background and animated via background-position, distinct from\n \"wave\"'s horizontal ::after overlay: this one is a single\n continuous gradient moving through the shape at an angle, not a\n separate translating layer. */\n.nx-skeleton--shine {\n background: linear-gradient(\n 110deg,\n color-mix(in srgb, var(--color-text, #111827) 12%, var(--color-surface, #ffffff)) 35%,\n color-mix(in srgb, var(--color-surface, #ffffff) 65%, var(--color-text, #111827) 12%) 50%,\n color-mix(in srgb, var(--color-text, #111827) 12%, var(--color-surface, #ffffff)) 65%\n );\n background-size: 300% 100%;\n animation: nx-skeleton-shine var(--motion-durationSlow, 1.5s) ease-in-out infinite;\n}\n\n@keyframes nx-skeleton-shine {\n 0% { background-position: 150% 0; }\n 100% { background-position: -50% 0; }\n}\n\n/* Glow — a pulsing ambient halo around the shape's own edge, using\n the active brand accent; distinct from \"pulse\" (the shape itself\n never dims here, only the shadow around it breathes). */\n.nx-skeleton--glow {\n animation: nx-skeleton-glow var(--motion-durationSlow, 1.5s) var(--motion-easeStandard, ease) infinite;\n}\n\n@keyframes nx-skeleton-glow {\n 0%, 100% {\n box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-brand-500, #6366f1) 35%, transparent);\n }\n 50% {\n box-shadow: 0 0 12px 4px color-mix(in srgb, var(--color-brand-500, #6366f1) 35%, transparent);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-skeleton--pulse,\n .nx-skeleton--wave::after,\n .nx-skeleton--shine,\n .nx-skeleton--glow {\n animation: none;\n }\n}","/* Category F: complex/stateful. Every value is a var(--token,\n fallback) from the active theme, same discipline as every other\n component — no literal colors, radii, or durations. */\n\n.nx-table-wrapper {\n width: 100%;\n overflow: auto;\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n background: var(--color-surface, #ffffff);\n box-shadow: var(--shadow-sm, none);\n}\n\n.nx-table {\n width: 100%;\n border-collapse: collapse;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n}\n\n.nx-table__caption {\n caption-side: top;\n text-align: left;\n padding: var(--spacing-sm, 8px) var(--spacing-md, 16px);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-table__caption--sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* ---- Header ---- */\n.nx-table__header {\n background: var(--color-surfaceRaised, #f9fafb);\n}\n\n.nx-table--sticky-header .nx-table__header {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.nx-table__head-cell {\n text-align: left;\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-textMuted, #6b7280);\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n white-space: nowrap;\n}\n\n.nx-table__head-cell-content {\n display: inline-flex;\n align-items: center;\n gap: 0.35em;\n}\n\n.nx-table__head-cell--sortable {\n cursor: pointer;\n user-select: none;\n outline: none;\n}\n.nx-table__head-cell--sortable:hover {\n color: var(--color-text, #111827);\n}\n.nx-table__head-cell--sortable:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: -2px;\n}\n\n.nx-table__sort-icon {\n display: inline-flex;\n flex-direction: column;\n width: 10px;\n height: 12px;\n}\n.nx-table__sort-arrow-up,\n.nx-table__sort-arrow-down {\n opacity: 0.25;\n}\n.nx-table__sort-icon[data-direction=\"asc\"] .nx-table__sort-arrow-up { opacity: 1; }\n.nx-table__sort-icon[data-direction=\"desc\"] .nx-table__sort-arrow-down { opacity: 1; }\n\n/* ---- Body / rows / cells ---- */\n.nx-table__body .nx-table__row {\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-table__body .nx-table__row:last-child {\n border-bottom: none;\n}\n\n.nx-table--striped .nx-table__body .nx-table__row:nth-child(even) {\n background: var(--color-surfaceRaised, #f9fafb);\n}\n\n.nx-table__row--clickable {\n cursor: pointer;\n}\n.nx-table__row--clickable:hover {\n background: var(--color-neutral-100, #f3f4f6);\n}\n\n.nx-table__row--selected {\n background: var(--color-brand-50, #eef2ff);\n}\n.nx-table__row--selected.nx-table__row--clickable:hover {\n background: var(--color-brand-50, #eef2ff);\n}\n\n.nx-table__cell {\n vertical-align: middle;\n}\n\n.nx-table__empty-cell {\n text-align: center;\n padding: var(--spacing-xl, 32px) var(--spacing-md, 16px);\n color: var(--color-textMuted, #6b7280);\n}\n\n/* A Checkbox composed inside a table cell (Rule 12 — see Table's\n docs page) shouldn't carry its normal field spacing/label gap;\n this scopes the reset to table cells only, leaving standalone\n Checkbox usage everywhere else untouched. */\n.nx-table__cell .nx-field,\n.nx-table__head-cell .nx-field {\n display: inline-flex;\n}\n\n/* ---- Bordered variant ---- */\n.nx-table--bordered .nx-table__head-cell,\n.nx-table--bordered .nx-table__cell {\n border-right: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n.nx-table--bordered .nx-table__head-cell:last-child,\n.nx-table--bordered .nx-table__cell:last-child {\n border-right: none;\n}\n\n/* ---- Sizes: cell padding + font-size, from the shared scale ---- */\n.nx-table--xs .nx-table__head-cell, .nx-table--xs .nx-table__cell { padding: 6px 10px; font-size: var(--typography-sizeXs, 12px); }\n.nx-table--sm .nx-table__head-cell, .nx-table--sm .nx-table__cell { padding: 8px 12px; font-size: var(--typography-sizeSm, 14px); }\n.nx-table--md .nx-table__head-cell, .nx-table--md .nx-table__cell { padding: 10px 16px; font-size: var(--typography-sizeSm, 14px); }\n.nx-table--lg .nx-table__head-cell, .nx-table--lg .nx-table__cell { padding: 12px 18px; font-size: var(--typography-sizeMd, 16px); }\n.nx-table--xl .nx-table__head-cell, .nx-table--xl .nx-table__cell { padding: 14px 20px; font-size: var(--typography-sizeLg, 18px); }\n\n@media (prefers-reduced-motion: reduce) {\n .nx-table__row {\n transition: none;\n }\n}","/* Category C overlay. Every value is a var(--token, fallback) from\n the active theme, same as Modal.css — the panel itself positions\n with `position: fixed` and a side-specific inset/transform rather\n than relying on the backdrop's own layout (no `:has()` dependency,\n which keeps this working the same way in every supported browser). */\n\n.nx-drawer-backdrop {\n position: fixed;\n inset: 0;\n z-index: 1000;\n background: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(2px);\n animation: nx-drawer-backdrop-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-drawer-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.nx-drawer {\n position: fixed;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n background: var(--color-surface, #ffffff);\n box-shadow: var(--shadow-xl, 0 20px 40px rgba(0, 0, 0, 0.2));\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n outline: none; /* focus lands here programmatically */\n animation-duration: var(--motion-durationNormal, 220ms);\n animation-timing-function: var(--motion-easeEmphasized, ease);\n animation-fill-mode: both;\n}\n\n/* ---- Side anchoring + slide-in direction ---- */\n.nx-drawer--left,\n.nx-drawer--right {\n top: 0;\n bottom: 0;\n max-width: calc(100vw - var(--spacing-lg, 24px));\n}\n.nx-drawer--left {\n left: 0;\n border-right: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n animation-name: nx-drawer-slide-left-in;\n}\n.nx-drawer--right {\n right: 0;\n border-left: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n animation-name: nx-drawer-slide-right-in;\n}\n\n.nx-drawer--top,\n.nx-drawer--bottom {\n left: 0;\n right: 0;\n max-height: calc(100vh - var(--spacing-lg, 24px));\n}\n.nx-drawer--top {\n top: 0;\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n animation-name: nx-drawer-slide-top-in;\n}\n.nx-drawer--bottom {\n bottom: 0;\n border-top: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n animation-name: nx-drawer-slide-bottom-in;\n}\n\n@keyframes nx-drawer-slide-left-in {\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n}\n@keyframes nx-drawer-slide-right-in {\n from { transform: translateX(100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n}\n@keyframes nx-drawer-slide-top-in {\n from { transform: translateY(-100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes nx-drawer-slide-bottom-in {\n from { transform: translateY(100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n\n/* ---- Sizes: left/right control width, top/bottom control height,\n \"size\" always means \"how far the panel extends from its edge\" ---- */\n.nx-drawer--left.nx-drawer--xs, .nx-drawer--right.nx-drawer--xs { width: 280px; }\n.nx-drawer--left.nx-drawer--sm, .nx-drawer--right.nx-drawer--sm { width: 360px; }\n.nx-drawer--left.nx-drawer--md, .nx-drawer--right.nx-drawer--md { width: 420px; }\n.nx-drawer--left.nx-drawer--lg, .nx-drawer--right.nx-drawer--lg { width: 520px; }\n.nx-drawer--left.nx-drawer--xl, .nx-drawer--right.nx-drawer--xl { width: 640px; }\n.nx-drawer--left.nx-drawer--full, .nx-drawer--right.nx-drawer--full { width: 100vw; max-width: none; }\n\n.nx-drawer--top.nx-drawer--xs, .nx-drawer--bottom.nx-drawer--xs { height: 200px; }\n.nx-drawer--top.nx-drawer--sm, .nx-drawer--bottom.nx-drawer--sm { height: 280px; }\n.nx-drawer--top.nx-drawer--md, .nx-drawer--bottom.nx-drawer--md { height: 360px; }\n.nx-drawer--top.nx-drawer--lg, .nx-drawer--bottom.nx-drawer--lg { height: 460px; }\n.nx-drawer--top.nx-drawer--xl, .nx-drawer--bottom.nx-drawer--xl { height: 560px; }\n.nx-drawer--top.nx-drawer--full, .nx-drawer--bottom.nx-drawer--full { height: 100vh; max-height: none; }\n\n/* ---- Header / body / footer — same structure as Modal's ---- */\n.nx-drawer__header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-md, 16px);\n padding: var(--spacing-lg, 24px) var(--spacing-lg, 24px) 0;\n flex-shrink: 0;\n}\n\n.nx-drawer__title {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeLg, 18px);\n font-weight: var(--typography-weightBold, 700);\n color: var(--color-text, #111827);\n}\n\n.nx-drawer__close {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: var(--color-textMuted, #6b7280);\n cursor: pointer;\n border-radius: var(--radius-sm, 6px);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-drawer__close:hover {\n background: var(--color-surfaceRaised, #f3f4f6);\n color: var(--color-text, #111827);\n}\n.nx-drawer__close:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-drawer__body {\n flex: 1;\n overflow-y: auto;\n padding: var(--spacing-lg, 24px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n color: var(--color-text, #111827);\n}\n\n.nx-drawer__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--spacing-sm, 8px);\n padding: 0 var(--spacing-lg, 24px) var(--spacing-lg, 24px);\n flex-shrink: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-drawer-backdrop, .nx-drawer {\n animation-duration: 0.01ms;\n }\n}\n",".nx-rating {\n display: inline-flex;\n align-items: center;\n gap: calc(var(--spacing-xs, 4px) / 2);\n outline: none;\n border-radius: var(--radius-sm, 4px);\n}\n\n.nx-rating:focus-visible {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-rating--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-rating--readonly {\n cursor: default;\n}\n\n.nx-rating__star {\n display: inline-flex;\n cursor: pointer;\n color: var(--color-textMuted, #d1d5db);\n transition: color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-rating--disabled .nx-rating__star,\n.nx-rating--readonly .nx-rating__star {\n cursor: inherit;\n}\n\n.nx-rating__star--half,\n.nx-rating__star--full {\n color: var(--color-brand-500, #6366f1);\n}\n\n.nx-rating:not(.nx-rating--disabled):not(.nx-rating--readonly) .nx-rating__star:hover {\n transform: scale(1.08);\n}\n\n.nx-rating--xs .nx-rating__star-icon { width: 14px; height: 14px; }\n.nx-rating--sm .nx-rating__star-icon { width: 16px; height: 16px; }\n.nx-rating--md .nx-rating__star-icon { width: 20px; height: 20px; }\n.nx-rating--lg .nx-rating__star-icon { width: 26px; height: 26px; }\n.nx-rating--xl .nx-rating__star-icon { width: 32px; height: 32px; }\n\n/* Every other visual difference in this codebase comes from\n tokens, with zero theme-conditional CSS anywhere else — this is\n the one deliberate exception. Star color is driven by `color`\n (drives both SVG fill and stroke via currentColor), so a filled\n star's 1px stroke is the same brand color as its fill and reads\n as no outline at all. Neobrutalism's whole identity is a visible\n black outline on every surface (buttons, cards, inputs all get\n one via the `border` token); stars were the one thing that\n didn't, because \"stroke color independent of fill color\" isn't\n something the token contract has a slot for, and adding one\n would mean threading a new field through all 11 themes for a\n single component. Scoped override instead of a contract change. */\n[data-theme=\"neobrutalism\"] .nx-rating__star-icon {\n stroke: #000000;\n}",".nx-otp-input {\n display: inline-flex;\n gap: var(--spacing-sm, 8px);\n}\n\n.nx-otp-input--disabled {\n opacity: 0.5;\n}\n\n.nx-otp-input__box {\n text-align: center;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #111827);\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n outline: none;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-otp-input__box:disabled {\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n}\n\n.nx-otp-input__box:focus {\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-otp-input__box--filled {\n border-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-otp-input__box--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n.nx-otp-input__box--invalid:focus {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #ef4444) 20%, transparent);\n}\n\n/* Sizes control box dimensions and font-size together, same pattern as NumberInput's font-size-only scale but with an explicit box footprint since these aren't flowing text inputs. */\n.nx-otp-input--xs .nx-otp-input__box { width: 28px; height: 32px; font-size: var(--typography-sizeSm, 14px); }\n.nx-otp-input--sm .nx-otp-input__box { width: 34px; height: 38px; font-size: var(--typography-sizeMd, 16px); }\n.nx-otp-input--md .nx-otp-input__box { width: 42px; height: 48px; font-size: var(--typography-sizeLg, 18px); }\n.nx-otp-input--lg .nx-otp-input__box { width: 50px; height: 56px; font-size: var(--typography-sizeXl, 22px); }\n.nx-otp-input--xl .nx-otp-input__box { width: 58px; height: 64px; font-size: var(--typography-sizeXl, 22px); }\n","/* The nested Select sits inside Input's own bordered wrapper (as its\n `prefix` adornment), so its own trigger chrome — border, shadow,\n background, the 100%-width/max-width sizing meant for a\n standalone Select — is stripped/overridden here rather than\n presenting as \"a select nested inside another bordered field\". A\n thin divider on the trigger takes over the border's job of\n separating it from the number field.\n\n A fixed width (not `auto`/content-based) keeps the trigger from\n growing wider than the number field it sits beside. The trigger\n itself only ever shows toSelectOptions' short, flag-less\n `triggerLabel` (\"US +1\", \"GG +441481\", ...) rather than the\n full-name `label` the open listbox uses (\"United States +1\") —\n see the comment on toSelectOptions for why. 104px comfortably\n fits every default-list entry, including the longest\n (\"GG +441481\"); the ellipsis below is just a safety net for a\n custom `countries` list with something longer still. */\n.nx-phone-input__country-select {\n inline-size: 104px;\n max-inline-size: 104px;\n flex: none;\n}\n\n.nx-phone-input__country-select .nx-select__trigger {\n border: none;\n box-shadow: none !important;\n background: transparent;\n padding-inline-end: var(--spacing-xs, 4px);\n padding-inline-start: 0;\n border-inline-end: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: 0;\n}\n\n.nx-phone-input__country-select .nx-select__value {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}",".nx-stat-card {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 4px);\n}\n\n.nx-stat-card__header {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-stat-card__icon {\n display: inline-flex;\n flex: none;\n color: var(--color-brand-500, #6366f1);\n}\n\n.nx-stat-card__label {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-stat-card__value {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXl, 22px);\n font-weight: var(--typography-weightBold, 700);\n line-height: var(--typography-lineHeightTight, 1.2);\n color: var(--color-text, #111827);\n}\n\n.nx-stat-card__trend {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-stat-card__trend-icon {\n inline-size: 1em;\n block-size: 1em;\n}\n\n/* Semantic — good/bad movement, never the accent system (CONTRACT.md\n Rule 5b: success/danger stay theme-defined). */\n.nx-stat-card__trend--up {\n color: var(--color-success-base, #10b981);\n}\n.nx-stat-card__trend--down {\n color: var(--color-danger-base, #ef4444);\n}\n.nx-stat-card__trend--flat {\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-stat-card__trend-label {\n color: var(--color-textMuted, #6b7280);\n font-weight: var(--typography-weightNormal, 400);\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/react/Button.css","../../src/react/Field.css","../../src/react/Input.css","../../src/react/Textarea.css","../../src/react/Checkbox.css","../../src/react/Radio.css","../../src/react/Toggle.css","../../src/react/Badge.css","../../src/react/Avatar.css","../../src/react/Spinner.css","../../src/react/Divider.css","../../src/react/Card.css","../../src/react/ScrollArea.css","../../src/react/Alert.css","../../src/react/Modal.css","../../src/react/Tooltip.css","../../src/react/Toast.css","../../src/react/Progress.css","../../src/react/Tabs.css","../../src/react/Accordion.css","../../src/react/DropdownMenu.css","../../src/react/Select.css","../../src/react/StepWizard.css","../../src/react/Slider.css","../../src/react/Combobox.css","../../src/react/SearchBar.css","../../src/react/Calendar.css","../../src/react/Popover.css","../../src/react/DatePicker.css","../../src/react/TimePicker.css","../../src/react/ColorPicker.css","../../src/react/Carousel.css","../../src/react/Timeline.css","../../src/react/ChatBubble.css","../../src/react/ResizablePanel.css","../../src/react/Sidebar.css","../../src/react/SpeedDial.css","../../src/react/CommandPalette.css","../../src/react/NumberInput.css","../../src/react/FileUpload.css","../../src/react/Pagination.css","../../src/react/Breadcrumb.css","../../src/react/Skeleton.css","../../src/react/Table.css","../../src/react/Kanban.css","../../src/react/Drawer.css","../../src/react/Rating.css","../../src/react/OTPInput.css","../../src/react/PhoneInput.css","../../src/react/StatCard.css","../../src/react/CodeBlock.css","../../src/react/RichTextEditor.css","../../src/react/Image.css","../../src/react/Lightbox.css","../../src/react/Gallery.css","../../src/react/VideoPlayer.css","../../src/react/AudioPlayer.css","../../src/react/PdfViewer.css"],"sourcesContent":["/* Every value below is a var(--x, fallback) reading from the active\n theme's generated CSS custom properties — this is what makes\n switching data-theme (via NuvoxProvider or Storybook's toolbar)\n restyle the button with zero JS, per CONTRACT.md's CSS-cascade\n theming approach. No hardcoded colors, radii, or durations. */\n\n.nx-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n border-radius: var(--radius-md, 8px);\n /*\n Reads the theme's own border color instead of hardcoding\n transparent — for most themes color.border is a subtle\n near-invisible gray, so this is a barely-there refinement, but\n for brutalism/neobrutalism (color.border: #000000) it's the\n difference between a filled button having no border at all and\n having the bold black border that's core to that theme's whole\n visual identity. No per-theme conditional here — every theme just\n supplies its own value for the same token, per CONTRACT.md.\n */\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n cursor: pointer;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n white-space: nowrap;\n position: relative;\n}\n\n/*\n Every filled/bordered variant gets a resting shadow, and presses in\n slightly with a reduced shadow on :active. This was the one\n component that never picked up shadow at all — every other\n component (Card, Input, Badge, Avatar) got a `var(--shadow-*, ...)`\n pass, but Button was missed, which is exactly why neobrutalism's\n signature hard 4px offset black shadow never appeared on it even\n though the token itself was always correct and available.\n\n The 1px press-in transform is deliberately theme-agnostic (it\n doesn't know or care which direction a given theme's shadow is\n offset) — in flat themes (shadow: none) it's an imperceptible\n no-op, but in neobrutalism specifically it reads as the button\n physically pressing into its own hard shadow, which is that\n theme's whole visual idea.\n*/\n.nx-btn--solid,\n.nx-btn--soft,\n.nx-btn--danger,\n.nx-btn--outline {\n box-shadow: var(--shadow-sm, none);\n}\n.nx-btn--solid:active:not(:disabled),\n.nx-btn--soft:active:not(:disabled),\n.nx-btn--danger:active:not(:disabled),\n.nx-btn--outline:active:not(:disabled) {\n box-shadow: var(--shadow-xs, none);\n transform: translate(1px, 1px);\n}\n\n.nx-btn:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-btn:disabled,\n.nx-btn--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-btn--full {\n width: 100%;\n}\n\n/* Sizes */\n.nx-btn--xs { padding: 4px 10px; font-size: var(--typography-sizeXs, 12px); border-radius: var(--radius-sm, 6px); }\n.nx-btn--sm { padding: 6px 14px; font-size: var(--typography-sizeSm, 14px); border-radius: var(--radius-sm, 6px); }\n.nx-btn--md { padding: 8px 18px; font-size: var(--typography-sizeMd, 16px); }\n.nx-btn--lg { padding: 10px 22px; font-size: var(--typography-sizeLg, 18px); border-radius: var(--radius-lg, 14px); }\n.nx-btn--xl { padding: 12px 28px; font-size: var(--typography-sizeXl, 22px); border-radius: var(--radius-lg, 14px); }\n\n/* Variants */\n.nx-btn--solid {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n}\n.nx-btn--solid:hover:not(:disabled) { background: var(--color-brand-600, #4f46e5); }\n.nx-btn--solid:active:not(:disabled) { background: var(--color-brand-700, #4338ca); }\n\n.nx-btn--outline {\n background: transparent;\n /* Blended toward the theme's own text color (guaranteed readable\n against this theme's background by the theme's own design) so a\n dark-leaning accent like graphite doesn't go low-contrast against\n a dark theme's background — see tokens/contrast.ts. */\n color: color-mix(in srgb, var(--color-brand-600, #4f46e5) 65%, var(--color-text, #111827) 35%);\n border-color: var(--color-brand-500, #6366f1);\n}\n.nx-btn--outline:hover:not(:disabled) { background: var(--color-brand-50, #f0f4ff); }\n\n.nx-btn--ghost {\n background: transparent;\n color: var(--color-text, #111827);\n border-color: transparent;\n}\n.nx-btn--ghost:hover:not(:disabled) { background: var(--color-surfaceRaised, #f3f4f6); }\n\n.nx-btn--soft {\n background: var(--color-brand-50, #f0f4ff);\n color: var(--color-brand-700, #4338ca);\n}\n.nx-btn--soft:hover:not(:disabled) { background: var(--color-brand-100, #e0e8ff); }\n\n.nx-btn--danger {\n background: var(--color-danger-base, #ef4444);\n color: var(--color-textInverse, #ffffff);\n}\n.nx-btn--danger:hover:not(:disabled) { background: var(--color-danger-dark, #dc2626); }\n\n/* Loading state */\n.nx-btn--loading {\n cursor: wait;\n}\n\n.nx-btn__spinner {\n width: 1em;\n height: 1em;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: nx-btn-spin 0.6s linear infinite;\n}\n\n@keyframes nx-btn-spin {\n to { transform: rotate(360deg); }\n}\n\n/* Icon slots */\n.nx-btn__icon {\n display: inline-flex;\n align-items: center;\n}\n","/* Shared across Input/Textarea/Checkbox/Radio/Toggle — the label +\n helper/error text markup every Category B component needs. Kept\n in one file so this gets decided once (CONTRACT.md's \"decide the\n shape once\" principle applied to CSS, not just props). */\n\n.nx-field {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-field__label {\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #111827);\n}\n\n.nx-field__required {\n color: var(--color-danger-base, #ef4444);\n margin-left: 2px;\n}\n\n.nx-field__helper {\n font-size: var(--typography-sizeXs, 12px);\n color: var(--color-textMuted, #6b7280);\n line-height: var(--typography-lineHeightNormal, 1.5);\n}\n\n.nx-field__helper--error {\n color: var(--color-danger-base, #ef4444);\n}\n\n.nx-field__count {\n font-size: var(--typography-sizeXs, 12px);\n color: var(--color-textMuted, #6b7280);\n align-self: flex-end;\n}\n\n.nx-field__count--over {\n color: var(--color-danger-base, #ef4444);\n}\n",".nx-input-wrapper {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs, 4px);\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, none);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-input-wrapper:focus-within {\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-input-wrapper--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n.nx-input-wrapper--invalid:focus-within {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #ef4444) 20%, transparent);\n}\n\n.nx-input-wrapper--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n}\n\n.nx-input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n}\n\n.nx-input::placeholder {\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-input:disabled {\n cursor: not-allowed;\n}\n\n/* Sizes — set padding on the wrapper (not the input) so prefix/suffix\n adornments align with the same vertical rhythm as the text. */\n.nx-input-wrapper--xs { padding: 4px 8px; font-size: var(--typography-sizeXs, 12px); }\n.nx-input-wrapper--sm { padding: 5px 10px; font-size: var(--typography-sizeSm, 14px); }\n.nx-input-wrapper--md { padding: 8px 12px; font-size: var(--typography-sizeMd, 16px); }\n.nx-input-wrapper--lg { padding: 10px 14px; font-size: var(--typography-sizeLg, 18px); }\n.nx-input-wrapper--xl { padding: 12px 16px; font-size: var(--typography-sizeXl, 22px); }\n\n.nx-input--xs, .nx-input--sm, .nx-input--md, .nx-input--lg, .nx-input--xl {\n font-size: inherit;\n}\n\n.nx-input__adornment {\n display: inline-flex;\n align-items: center;\n color: var(--color-textMuted, #6b7280);\n flex-shrink: 0;\n}\n\n/* Password-reveal toggle. A real <button> (not another\n .nx-input__adornment span) since it's interactive, not just\n decorative — same \"icon-btn\" idiom used by AudioPlayer/\n VideoPlayer's transport buttons, scaled down to sit inline in a\n text field instead of a control bar. */\n.nx-input__toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n padding: 2px;\n border: none;\n border-radius: var(--radius-sm, 4px);\n background: transparent;\n color: var(--color-textMuted, #6b7280);\n cursor: pointer;\n transition: color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-input__toggle:hover {\n color: var(--color-text, #111827);\n background: var(--color-neutral-100, #f3f4f6);\n}\n.nx-input__toggle:focus-visible {\n outline: 2px solid var(--color-brand-400, #818cf8);\n outline-offset: 1px;\n}\n.nx-input__toggle:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n background: transparent;\n}",".nx-textarea {\n width: 100%;\n min-height: 5em;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, none);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n padding: 8px 12px;\n resize: vertical;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-textarea::placeholder {\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-textarea:focus {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-textarea--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n.nx-textarea--invalid:focus {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #ef4444) 20%, transparent);\n}\n\n.nx-textarea--disabled,\n.nx-textarea:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n resize: none;\n}\n\n.nx-textarea--auto-grow {\n resize: none;\n overflow: hidden;\n}\n\n.nx-textarea--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-textarea--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-textarea--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-textarea--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-textarea--xl { font-size: var(--typography-sizeXl, 22px); }\n\n.nx-textarea__footer {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-sm, 8px);\n}\n",".nx-checkbox {\n display: inline-flex;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n cursor: pointer;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-checkbox--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-checkbox__control {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n}\n\n/* The real input sits invisibly on top of the box for correct\n hit-testing, keyboard focus, and form semantics — see\n Checkbox.tsx / core/checkbox.ts for why the box itself carries\n no JS-computed checked state. */\n.nx-checkbox__input {\n position: absolute;\n inset: 0;\n margin: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n}\n.nx-checkbox__input:disabled {\n cursor: not-allowed;\n}\n\n.nx-checkbox__box {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthMedium, 1.5px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-sm, 6px);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n pointer-events: none;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-checkbox--invalid .nx-checkbox__box {\n border-color: var(--color-danger-base, #ef4444);\n}\n\n.nx-checkbox__check {\n width: 70%;\n height: 70%;\n color: var(--color-brand-onAccent, #ffffff);\n opacity: 0;\n transform: scale(0.6);\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-checkbox__dash {\n display: none;\n width: 55%;\n height: 2px;\n background: var(--color-brand-onAccent, #ffffff);\n border-radius: 1px;\n}\n\n.nx-checkbox__input:checked + .nx-checkbox__box,\n.nx-checkbox__input:indeterminate + .nx-checkbox__box {\n background: var(--color-brand-500, #6366f1);\n border-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-checkbox__input:checked + .nx-checkbox__box .nx-checkbox__check {\n opacity: 1;\n transform: scale(1);\n}\n\n.nx-checkbox__input:indeterminate + .nx-checkbox__box .nx-checkbox__check {\n display: none;\n}\n.nx-checkbox__input:indeterminate + .nx-checkbox__box .nx-checkbox__dash {\n display: block;\n}\n\n.nx-checkbox__input:focus-visible + .nx-checkbox__box {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-checkbox__label {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-text, #111827);\n line-height: var(--typography-lineHeightNormal, 1.5);\n padding-top: 1px;\n}\n\n/* Sizes */\n.nx-checkbox--xs .nx-checkbox__control { width: 14px; height: 14px; }\n.nx-checkbox--sm .nx-checkbox__control { width: 16px; height: 16px; }\n.nx-checkbox--md .nx-checkbox__control { width: 18px; height: 18px; }\n.nx-checkbox--lg .nx-checkbox__control { width: 22px; height: 22px; }\n.nx-checkbox--xl .nx-checkbox__control { width: 26px; height: 26px; }\n\n.nx-checkbox--xs .nx-checkbox__label { font-size: var(--typography-sizeXs, 12px); }\n.nx-checkbox--lg .nx-checkbox__label { font-size: var(--typography-sizeLg, 18px); }\n.nx-checkbox--xl .nx-checkbox__label { font-size: var(--typography-sizeXl, 22px); }\n",".nx-radio {\n display: inline-flex;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n cursor: pointer;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-radio--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-radio__control {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n}\n\n.nx-radio__input {\n position: absolute;\n inset: 0;\n margin: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n border-radius: 50%;\n}\n.nx-radio__input:disabled {\n cursor: not-allowed;\n}\n\n/* The ring is a real sibling span of the input (not a pseudo-\n element of their shared parent), so a plain adjacent-sibling\n selector off :checked/:focus-visible can reach it directly — same\n reasoning as Checkbox.css's box. */\n.nx-radio__ring {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthMedium, 1.5px) var(--border-style, solid) var(--color-border, #e5e7eb);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n pointer-events: none;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-radio--invalid .nx-radio__ring {\n border-color: var(--color-danger-base, #ef4444);\n}\n\n.nx-radio__dot {\n width: 45%;\n height: 45%;\n border-radius: 50%;\n background: var(--color-brand-500, #6366f1);\n opacity: 0;\n transform: scale(0.4);\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-radio__input:checked + .nx-radio__ring {\n border-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-radio__input:checked + .nx-radio__ring .nx-radio__dot {\n opacity: 1;\n transform: scale(1);\n}\n\n.nx-radio__input:focus-visible + .nx-radio__ring {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-radio__label {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-text, #111827);\n line-height: var(--typography-lineHeightNormal, 1.5);\n padding-top: 1px;\n}\n\n.nx-radio--xs .nx-radio__control { width: 14px; height: 14px; }\n.nx-radio--sm .nx-radio__control { width: 16px; height: 16px; }\n.nx-radio--md .nx-radio__control { width: 18px; height: 18px; }\n.nx-radio--lg .nx-radio__control { width: 22px; height: 22px; }\n.nx-radio--xl .nx-radio__control { width: 26px; height: 26px; }\n\n.nx-radio--xs .nx-radio__label { font-size: var(--typography-sizeXs, 12px); }\n.nx-radio--lg .nx-radio__label { font-size: var(--typography-sizeLg, 18px); }\n.nx-radio--xl .nx-radio__label { font-size: var(--typography-sizeXl, 22px); }\n",".nx-toggle {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n cursor: pointer;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-toggle--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-toggle__control {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n width: 36px;\n height: 20px;\n}\n\n.nx-toggle__input {\n position: absolute;\n inset: 0;\n margin: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n}\n.nx-toggle__input:disabled {\n cursor: not-allowed;\n}\n\n.nx-toggle__track {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-neutral-300, #d1d5db);\n pointer-events: none;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-toggle--invalid .nx-toggle__track {\n box-shadow: inset 0 0 0 1.5px var(--color-danger-base, #ef4444);\n}\n\n.nx-toggle__thumb {\n width: 16px;\n height: 16px;\n margin-left: 2px;\n border-radius: 50%;\n background: var(--color-neutral-0, #ffffff);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n transition: transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-toggle__input:checked + .nx-toggle__track {\n background: var(--color-brand-500, #6366f1);\n}\n\n.nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb {\n transform: translateX(16px);\n}\n\n.nx-toggle__input:focus-visible + .nx-toggle__track {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-toggle__label {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-text, #111827);\n line-height: var(--typography-lineHeightNormal, 1.5);\n}\n\n/* Sizes */\n.nx-toggle--xs .nx-toggle__control { width: 28px; height: 16px; }\n.nx-toggle--xs .nx-toggle__thumb { width: 12px; height: 12px; }\n.nx-toggle--xs .nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb { transform: translateX(12px); }\n\n.nx-toggle--sm .nx-toggle__control { width: 32px; height: 18px; }\n.nx-toggle--sm .nx-toggle__thumb { width: 14px; height: 14px; }\n.nx-toggle--sm .nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb { transform: translateX(14px); }\n\n.nx-toggle--lg .nx-toggle__control { width: 44px; height: 24px; }\n.nx-toggle--lg .nx-toggle__thumb { width: 20px; height: 20px; }\n.nx-toggle--lg .nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb { transform: translateX(20px); }\n\n.nx-toggle--xl .nx-toggle__control { width: 52px; height: 28px; }\n.nx-toggle--xl .nx-toggle__thumb { width: 24px; height: 24px; }\n.nx-toggle--xl .nx-toggle__input:checked + .nx-toggle__track .nx-toggle__thumb { transform: translateX(24px); }\n\n.nx-toggle--xs .nx-toggle__label { font-size: var(--typography-sizeXs, 12px); }\n.nx-toggle--lg .nx-toggle__label { font-size: var(--typography-sizeLg, 18px); }\n.nx-toggle--xl .nx-toggle__label { font-size: var(--typography-sizeXl, 22px); }\n",".nx-badge {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n border-radius: var(--radius-full, 9999px);\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n white-space: nowrap;\n}\n\n/* Sizes */\n.nx-badge--xs { padding: 1px 6px; font-size: 10px; }\n.nx-badge--sm { padding: 2px 8px; font-size: var(--typography-sizeXs, 12px); }\n.nx-badge--md { padding: 3px 10px; font-size: var(--typography-sizeXs, 12px); }\n.nx-badge--lg { padding: 4px 12px; font-size: var(--typography-sizeSm, 14px); }\n.nx-badge--xl { padding: 5px 14px; font-size: var(--typography-sizeMd, 16px); }\n\n/* Variants */\n.nx-badge--solid {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n box-shadow: var(--shadow-xs, none);\n}\n\n.nx-badge--outline {\n background: transparent;\n color: color-mix(in srgb, var(--color-brand-600, #4f46e5) 65%, var(--color-text, #111827) 35%);\n border-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-badge--soft {\n background: var(--color-brand-50, #f0f4ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n/* Dot mode — collapses to a small circle, no label */\n.nx-badge--dot {\n padding: 0;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n}\n.nx-badge--dot.nx-badge--xs { width: 6px; height: 6px; }\n.nx-badge--dot.nx-badge--lg { width: 10px; height: 10px; }\n.nx-badge--dot.nx-badge--xl { width: 12px; height: 12px; }\n\n.nx-badge__icon {\n display: inline-flex;\n align-items: center;\n}\n\n.nx-badge__dismiss {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0 -4px 0 0;\n border: none;\n background: transparent;\n color: inherit;\n cursor: pointer;\n border-radius: 50%;\n opacity: 0.7;\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-badge__dismiss:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.1);\n}\n",".nx-avatar {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n user-select: none;\n}\n\n.nx-avatar__visual {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-weight: var(--typography-weightMedium, 500);\n background: var(--color-neutral-200, #e5e7eb);\n color: var(--color-textMuted, #6b7280);\n box-shadow: var(--shadow-xs, none);\n}\n\n.nx-avatar--circle .nx-avatar__visual { border-radius: 50%; }\n.nx-avatar--square .nx-avatar__visual { border-radius: var(--radius-md, 8px); }\n\n.nx-avatar--clickable {\n cursor: pointer;\n}\n.nx-avatar--clickable:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-avatar__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.nx-avatar__initials {\n line-height: 1;\n}\n\n/* Sizes */\n.nx-avatar--xs { width: 24px; height: 24px; font-size: 10px; }\n.nx-avatar--sm { width: 32px; height: 32px; font-size: var(--typography-sizeXs, 12px); }\n.nx-avatar--md { width: 40px; height: 40px; font-size: var(--typography-sizeSm, 14px); }\n.nx-avatar--lg { width: 56px; height: 56px; font-size: var(--typography-sizeLg, 18px); }\n.nx-avatar--xl { width: 72px; height: 72px; font-size: var(--typography-sizeXl, 22px); }\n.nx-avatar--2xl { width: 96px; height: 96px; font-size: 28px; }\n\n.nx-avatar__status {\n position: absolute;\n right: 0;\n bottom: 0;\n width: 28%;\n height: 28%;\n min-width: 8px;\n min-height: 8px;\n border-radius: 50%;\n border: 2px solid var(--color-surface, #ffffff);\n}\n\n.nx-avatar__status--online { background: var(--color-success-base, #22c55e); }\n.nx-avatar__status--offline { background: var(--color-neutral-400, #9ca3af); }\n.nx-avatar__status--away { background: var(--color-warning-base, #f59e0b); }\n.nx-avatar__status--busy { background: var(--color-danger-base, #ef4444); }\n",".nx-spinner {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--color-brand-500, #6366f1);\n}\n\n/* Sizes — applies to both variants via em-relative inner sizing */\n.nx-spinner--xs { width: 14px; height: 14px; }\n.nx-spinner--sm { width: 18px; height: 18px; }\n.nx-spinner--md { width: 24px; height: 24px; }\n.nx-spinner--lg { width: 32px; height: 32px; }\n.nx-spinner--xl { width: 44px; height: 44px; }\n\n/* =========================================================\n Circular and geometric — unchanged\n ========================================================= */\n\n.nx-spinner__ring-svg {\n width: 100%;\n height: 100%;\n animation: nx-spinner-rotate 0.8s linear infinite;\n}\n\n@keyframes nx-spinner-rotate {\n to { transform: rotate(360deg); }\n}\n\n.nx-spinner__dots {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.3em;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__dot {\n width: 22%;\n height: 22%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-dot-bounce 0.9s var(--motion-easeStandard, ease) infinite;\n}\n\n.nx-spinner__dot:nth-child(2) { animation-delay: 0.15s; }\n.nx-spinner__dot:nth-child(3) { animation-delay: 0.3s; }\n\n@keyframes nx-spinner-dot-bounce {\n 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }\n 40% { opacity: 1; transform: scale(1); }\n}\n\n.nx-spinner__bars {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.18em;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__bar {\n width: 18%;\n height: 40%;\n background: currentColor;\n border-radius: var(--radius-full, 2px);\n animation: nx-spinner-bar-scale 1s ease-in-out infinite;\n}\n\n.nx-spinner__bar:nth-child(1) { animation-delay: -0.4s; }\n.nx-spinner__bar:nth-child(2) { animation-delay: -0.2s; }\n.nx-spinner__bar:nth-child(3) { animation-delay: 0s; }\n.nx-spinner__bar:nth-child(4) { animation-delay: 0.2s; }\n\n@keyframes nx-spinner-bar-scale {\n 0%, 100% { transform: scaleY(0.4); opacity: 0.5; }\n 50% { transform: scaleY(1); opacity: 1; }\n}\n\n.nx-spinner__pulse {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-pulse 1.1s var(--motion-easeStandard, ease) infinite;\n}\n\n@keyframes nx-spinner-pulse {\n 0% { transform: scale(0.6); opacity: 1; }\n 100% { transform: scale(1); opacity: 0; }\n}\n\n.nx-spinner__dual-ring {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__dual-ring-outer,\n.nx-spinner__dual-ring-inner {\n position: absolute;\n inset: 0;\n border-radius: 50%;\n border: 3px solid transparent;\n}\n\n.nx-spinner__dual-ring-outer {\n border-top-color: currentColor;\n animation: nx-spinner-rotate 1s linear infinite;\n}\n\n.nx-spinner__dual-ring-inner {\n inset: 22%;\n opacity: 0.5;\n border-top-color: currentColor;\n animation: nx-spinner-rotate 0.7s linear infinite reverse;\n}\n\n.nx-spinner__ripple {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__ripple-wave {\n position: absolute;\n inset: 0;\n margin: auto;\n width: 0;\n height: 0;\n border-radius: 50%;\n border: 3px solid currentColor;\n animation: nx-spinner-ripple 1.4s var(--motion-easeStandard, ease) infinite;\n}\n\n.nx-spinner__ripple-wave:nth-child(2) {\n animation-delay: 0.7s;\n}\n\n@keyframes nx-spinner-ripple {\n 0% { width: 0; height: 0; opacity: 1; }\n 100% { width: 100%; height: 100%; opacity: 0; }\n}\n\n/* Orbit (fixed) — a nucleus dot at center, two plain concentric\n circles (drawn face-on, no tilt/scaleY, so no ellipse distortion),\n each with its own satellite dot riding on it. The spin wrappers\n are now full-size (inset: 0) siblings of the rings rather than\n nested inside each ring's own (shrunk) box, and each satellite is\n positioned by the ring's actual radius as a percentage of the full\n container. That fixes two bugs: the outer satellite was centered\n directly on the ring's stroke and, being large relative to the\n ring, visually fused with it into an oval; and the inner satellite\n was sized against the inner ring's own already-shrunk box (inset:\n 27%), making it tiny and off-track. Sizing the outer dot down a\n notch also reduces overlap with the ring so it reads as a distinct\n circle rather than a merged blob. */\n.nx-spinner__orbit {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__orbit-nucleus {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 20%;\n height: 20%;\n aspect-ratio: 1;\n transform: translate(-50%, -50%);\n border-radius: 50%;\n background: currentColor;\n}\n\n.nx-spinner__orbit-ring {\n position: absolute;\n aspect-ratio: 1;\n border: 1.5px solid currentColor;\n border-radius: 50%;\n opacity: 0.5;\n}\n\n.nx-spinner__orbit-ring--outer { inset: 0; }\n.nx-spinner__orbit-ring--inner { inset: 27%; }\n\n.nx-spinner__orbit-spin {\n position: absolute;\n inset: 0;\n animation: nx-spinner-rotate 1.5s linear infinite;\n}\n\n.nx-spinner__orbit-spin--inner {\n animation-duration: 1s;\n animation-direction: reverse;\n}\n\n.nx-spinner__orbit-satellite {\n position: absolute;\n left: 50%;\n border-radius: 50%;\n background: currentColor;\n}\n\n.nx-spinner__orbit-satellite--outer {\n top: -8%;\n width: 16%;\n height: 16%;\n margin-left: -8%;\n}\n\n.nx-spinner__orbit-satellite--inner {\n top: 20.5%;\n width: 13%;\n height: 13%;\n margin-left: -6.5%;\n}\n\n.nx-spinner__bounce-track {\n display: flex;\n align-items: flex-end;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__bounce-ball {\n width: 40%;\n height: 40%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-bounce 0.6s ease-in-out infinite;\n}\n\n@keyframes nx-spinner-bounce {\n 0%, 100% { transform: translateY(0) scaleX(1.15) scaleY(0.85); }\n 50% { transform: translateY(-65%) scaleX(1) scaleY(1); }\n}\n\n.nx-spinner__conic {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: conic-gradient(from 0deg, transparent 0%, currentColor 100%);\n -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));\n mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));\n animation: nx-spinner-rotate 0.9s linear infinite;\n}\n\n/* Buffer — moved here from the extended set: it's a full-rotation\n ring motion (same family as ring/dual-ring/conic), not a creative\n silhouette. Twelve short ticks arranged in a ring, fading from full\n opacity down to faint across the circle, the whole ring spinning as\n one rigid body — the classic video-buffering / native\n activity-indicator look (the fading tail is what reads as\n \"loading\", distinct from \"ring\"'s single stroked arc or \"spiral\"'s\n concentric rings). */\n.nx-spinner__buffer-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__buffer-group {\n transform-box: fill-box;\n transform-origin: 50% 50%;\n animation: nx-spinner-rotate 1s linear infinite;\n}\n\n/* =========================================================\n Creative and non-circular\n ========================================================= */\n\n/* Linear — kept as-is, it was fine. */\n.nx-spinner__linear-track {\n position: relative;\n width: 100%;\n height: 22%;\n border-radius: var(--radius-full, 999px);\n background: color-mix(in srgb, currentColor 18%, transparent);\n overflow: hidden;\n}\n\n.nx-spinner__linear-bar {\n position: absolute;\n top: 0;\n left: -40%;\n width: 40%;\n height: 100%;\n border-radius: inherit;\n background: currentColor;\n animation: nx-spinner-linear-slide 1.2s ease-in-out infinite;\n}\n\n@keyframes nx-spinner-linear-slide {\n 0% { left: -40%; }\n 100% { left: 100%; }\n}\n\n/* Heartbeat — kept as-is, it was fine. */\n.nx-spinner__heartbeat-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__heartbeat-path {\n stroke-dasharray: 20 60;\n animation: nx-spinner-heartbeat-dash 1.3s linear infinite;\n}\n\n@keyframes nx-spinner-heartbeat-dash {\n to { stroke-dashoffset: -80; }\n}\n\n/* Infinity (rebuilt on true circular arcs) — traced highlight along\n the lemniscate; dasharray/offset tuned to the new path's length\n (~76 units) so the highlight completes one clean lap. */\n.nx-spinner__infinity-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__infinity-path {\n stroke-dasharray: 19 57;\n animation: nx-spinner-infinity-dash 1.6s linear infinite;\n}\n\n@keyframes nx-spinner-infinity-dash {\n to { stroke-dashoffset: -76; }\n}\n\n/* Hourglass — sand visibly drains from the top bulb into the bottom\n one, then the whole glass flips and it repeats the other way. */\n.nx-spinner__hourglass-svg {\n width: 100%;\n height: 100%;\n animation: nx-spinner-hourglass-flip 2.6s ease-in-out infinite;\n}\n\n.nx-spinner__hourglass-sand-top {\n transform-box: fill-box;\n transform-origin: 50% 0%;\n animation: nx-spinner-hourglass-top 2.6s ease-in-out infinite;\n}\n\n.nx-spinner__hourglass-sand-bottom {\n transform-box: fill-box;\n transform-origin: 50% 100%;\n animation: nx-spinner-hourglass-bottom 2.6s ease-in-out infinite;\n}\n\n.nx-spinner__hourglass-grain {\n animation: nx-spinner-hourglass-grain 2.6s linear infinite;\n}\n\n@keyframes nx-spinner-hourglass-flip {\n 0%, 42% { transform: rotate(0deg); }\n 50%, 92% { transform: rotate(180deg); }\n 100% { transform: rotate(360deg); }\n}\n\n@keyframes nx-spinner-hourglass-top {\n 0% { transform: scaleY(1); }\n 42% { transform: scaleY(0); }\n 50% { transform: scaleY(0); }\n 92% { transform: scaleY(1); }\n 100% { transform: scaleY(1); }\n}\n\n@keyframes nx-spinner-hourglass-bottom {\n 0% { transform: scaleY(0); }\n 42% { transform: scaleY(1); }\n 50% { transform: scaleY(1); }\n 92% { transform: scaleY(0); }\n 100% { transform: scaleY(0); }\n}\n\n@keyframes nx-spinner-hourglass-grain {\n 0%, 42% { opacity: 1; }\n 43%, 49% { opacity: 0; }\n 50%, 92% { opacity: 1; }\n 93%, 100% { opacity: 0; }\n}\n\n/* Pinwheel — curved sail blades around a fixed hub, spinning as one\n rigid body. */\n.nx-spinner__pinwheel-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__pinwheel-blades {\n transform-box: fill-box;\n transform-origin: 50% 50%;\n animation: nx-spinner-rotate 1.1s linear infinite;\n}\n\n/* Radar — a solid sweeping wedge inside a bordered disc; a filled\n sonar-screen sweep, not a thin stroked arc. No blip layer — it\n added noise and never read cleanly as it faded. */\n.nx-spinner__radar {\n position: relative;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n overflow: hidden;\n border: 1.5px solid color-mix(in srgb, currentColor 35%, transparent);\n}\n\n.nx-spinner__radar-sweep {\n position: absolute;\n inset: 0;\n background: conic-gradient(from 0deg, currentColor 0deg, transparent 75deg, transparent 360deg);\n opacity: 0.6;\n animation: nx-spinner-rotate 1.4s linear infinite;\n}\n\n/* Wave — five dots bobbing vertically in sequence: a traveling wave,\n distinct from \"bars\" (in-place height pulse). Dots are ovals\n (taller than wide) with a locked aspect-ratio so flexbox rounding\n can't make any single dot render larger than the rest. */\n.nx-spinner__wave {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.16em;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__wave-dot {\n width: 14%;\n height: 22%;\n aspect-ratio: 7 / 11;\n flex: 0 0 14%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-wave-bob 1s ease-in-out infinite;\n}\n\n.nx-spinner__wave-dot:nth-child(1) { animation-delay: -0.4s; }\n.nx-spinner__wave-dot:nth-child(2) { animation-delay: -0.3s; }\n.nx-spinner__wave-dot:nth-child(3) { animation-delay: -0.2s; }\n.nx-spinner__wave-dot:nth-child(4) { animation-delay: -0.1s; }\n.nx-spinner__wave-dot:nth-child(5) { animation-delay: 0s; }\n\n@keyframes nx-spinner-wave-bob {\n 0%, 60%, 100% { transform: translateY(0); }\n 30% { transform: translateY(-45%); }\n}\n\n/* Helix (rebuilt) — a genuine double helix. Five rows stacked\n vertically; each row holds two dots (strand A and strand B)\n swinging horizontally in mirrored phase, so they cross in the\n middle like two intertwined DNA strands rather than one column\n swaying as a unit. */\n.nx-spinner__helix {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__helix-row {\n position: relative;\n width: 100%;\n height: 16%;\n}\n\n.nx-spinner__helix-dot {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 30%;\n height: 30%;\n margin: -15% 0 0 -15%;\n border-radius: 50%;\n background: currentColor;\n animation-duration: 1.3s;\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n}\n\n.nx-spinner__helix-dot--a { animation-name: nx-spinner-helix-strand-a; z-index: 1; }\n.nx-spinner__helix-dot--b { animation-name: nx-spinner-helix-strand-b; }\n\n.nx-spinner__helix-row:nth-child(1) .nx-spinner__helix-dot { animation-delay: 0s; }\n.nx-spinner__helix-row:nth-child(2) .nx-spinner__helix-dot { animation-delay: 0.1s; }\n.nx-spinner__helix-row:nth-child(3) .nx-spinner__helix-dot { animation-delay: 0.2s; }\n.nx-spinner__helix-row:nth-child(4) .nx-spinner__helix-dot { animation-delay: 0.3s; }\n.nx-spinner__helix-row:nth-child(5) .nx-spinner__helix-dot { animation-delay: 0.4s; }\n\n@keyframes nx-spinner-helix-strand-a {\n 0%, 100% { transform: translateX(-70%) scale(1); opacity: 1; }\n 50% { transform: translateX(70%) scale(0.7); opacity: 0.55; }\n}\n\n@keyframes nx-spinner-helix-strand-b {\n 0%, 100% { transform: translateX(70%) scale(0.7); opacity: 0.55; }\n 50% { transform: translateX(-70%) scale(1); opacity: 1; }\n}\n\n/* Atom (rebuilt) — three tilted orbit tracks, each with its own\n electron. The ring is squashed into an ellipse (scaleY) and\n tilted; a full-size `.atom-spin` inside it rotates continuously,\n carrying the electron around in that squashed coordinate space,\n which is what produces the elliptical orbit *path*.\n\n The electron's own shape is kept perfectly circular via a\n counter-rotation wrapper (`.atom-electron-counter`) that spins at\n the exact same speed as `.atom-spin` but in the opposite\n direction. Rotation and non-uniform scale don't commute, so a\n static counter-scale on the electron (the old approach) only\n cancelled the ring's squash at two points in the orbit and left\n it visibly oval everywhere else. Counter-rotating first cancels\n the ambient rotation the electron sits in, so the squash and its\n plain scaleY(2.5) correction are always axis-aligned and always\n cancel exactly — the electron stays round at every point on the\n orbit, while its *position* (set on `.atom-electron-orbit`, one\n level up, unaffected by the counter-rotation) still sweeps the\n correct ellipse. */\n.nx-spinner__atom {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__atom-nucleus {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 17%;\n height: 17%;\n aspect-ratio: 1;\n /* translate() percentages resolve against the element's OWN box,\n not the parent's — unlike a negative-percent margin trick\n (margin percentages always resolve against the parent's WIDTH,\n even for margin-top), which is what previously distorted this\n into an ellipse. This is a guaranteed circle regardless of the\n parent's aspect ratio. */\n transform: translate(-50%, -50%);\n border-radius: 50%;\n background: currentColor;\n z-index: 1;\n}\n\n.nx-spinner__atom-ring {\n position: absolute;\n inset: 6%;\n border: 1.5px solid currentColor;\n border-radius: 50%;\n opacity: 0.4;\n}\n\n.nx-spinner__atom-ring--a { transform: rotate(0deg) scaleY(0.4); }\n.nx-spinner__atom-ring--b { transform: rotate(60deg) scaleY(0.4); }\n.nx-spinner__atom-ring--c { transform: rotate(120deg) scaleY(0.4); }\n\n.nx-spinner__atom-spin {\n position: absolute;\n inset: 0;\n animation: nx-spinner-rotate 1s linear infinite;\n}\n\n.nx-spinner__atom-ring--b .nx-spinner__atom-spin { animation-duration: 1.3s; animation-direction: reverse; }\n.nx-spinner__atom-ring--c .nx-spinner__atom-spin { animation-duration: 1.6s; }\n\n/* Position-only wrapper: sets where on the orbit the electron sits.\n Never rotated or scaled itself, so it doesn't distort shape. */\n.nx-spinner__atom-electron-orbit {\n position: absolute;\n top: -3%;\n left: 50%;\n width: 14%;\n height: 14%;\n margin-left: -7%;\n}\n\n/* Spins opposite to (and in sync with) the matching .atom-spin, so\n the ambient rotation the electron sits in is always cancelled out\n before the shape-correcting scaleY below is applied. */\n.nx-spinner__atom-electron-counter {\n position: absolute;\n inset: 0;\n animation: nx-spinner-rotate 1s linear infinite reverse;\n}\n\n.nx-spinner__atom-ring--b .nx-spinner__atom-electron-counter {\n animation-duration: 1.3s;\n animation-direction: normal;\n}\n\n.nx-spinner__atom-ring--c .nx-spinner__atom-electron-counter {\n animation-duration: 1.6s;\n}\n\n.nx-spinner__atom-electron {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: currentColor;\n /* Counters the ring's scaleY(0.4). Because the electron-counter\n wrapper above has already cancelled the ambient spin rotation,\n this scale is always axis-aligned with the ring's squash, so it\n cancels it exactly (0.4 x 2.5 = 1) at every point on the orbit —\n not just at two angles like the old single-layer approach. */\n transform: scaleY(2.5);\n}\n\n/* Comet — a head dot with a fading trail, rotating as one rigid arc;\n \"orbit\" has a single satellite and no trail, so this reads\n genuinely differently. */\n.nx-spinner__comet {\n position: relative;\n width: 100%;\n height: 100%;\n animation: nx-spinner-rotate 1s linear infinite;\n}\n\n.nx-spinner__comet-dot {\n position: absolute;\n inset: 0;\n}\n\n.nx-spinner__comet-dot::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 50%;\n border-radius: 50%;\n background: currentColor;\n}\n\n.nx-spinner__comet-dot:nth-child(1) { transform: rotate(0deg); }\n.nx-spinner__comet-dot:nth-child(1)::before { width: 24%; height: 24%; margin-left: -12%; opacity: 1; }\n\n.nx-spinner__comet-dot:nth-child(2) { transform: rotate(-14deg); }\n.nx-spinner__comet-dot:nth-child(2)::before { width: 19%; height: 19%; margin-left: -9.5%; opacity: 0.7; }\n\n.nx-spinner__comet-dot:nth-child(3) { transform: rotate(-28deg); }\n.nx-spinner__comet-dot:nth-child(3)::before { width: 15%; height: 15%; margin-left: -7.5%; opacity: 0.5; }\n\n.nx-spinner__comet-dot:nth-child(4) { transform: rotate(-42deg); }\n.nx-spinner__comet-dot:nth-child(4)::before { width: 11%; height: 11%; margin-left: -5.5%; opacity: 0.3; }\n\n.nx-spinner__comet-dot:nth-child(5) { transform: rotate(-56deg); }\n.nx-spinner__comet-dot:nth-child(5)::before { width: 8%; height: 8%; margin-left: -4%; opacity: 0.15; }\n\n/* =========================================================\n Extended set\n ========================================================= */\n\n/* Gauge — a half-circle arc filling and unfilling, speedometer\n style; the one variant that's a semicircle rather than a full\n circle or a straight line. */\n.nx-spinner__gauge-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__gauge-arc {\n stroke-dasharray: 31.4;\n animation: nx-spinner-gauge-sweep 1.6s ease-in-out infinite alternate;\n}\n\n@keyframes nx-spinner-gauge-sweep {\n 0% { stroke-dashoffset: 31.4; }\n 100% { stroke-dashoffset: 0; }\n}\n\n/* Stack — three cards cycling through a shuffle: rise, shrink,\n settle back — distinct from \"grid\"'s static fading squares. */\n.nx-spinner__stack {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__stack-card {\n position: absolute;\n inset: 15%;\n border-radius: 22%;\n background: currentColor;\n animation: nx-spinner-stack-cycle 1.2s ease-in-out infinite;\n}\n\n.nx-spinner__stack-card:nth-child(1) { animation-delay: 0s; }\n.nx-spinner__stack-card:nth-child(2) { animation-delay: -0.4s; }\n.nx-spinner__stack-card:nth-child(3) { animation-delay: -0.8s; }\n\n@keyframes nx-spinner-stack-cycle {\n 0% { transform: translateY(0) scale(1); opacity: 1; }\n 33% { transform: translateY(-30%) scale(0.85); opacity: 0.6; }\n 66% { transform: translateY(0) scale(0.7); opacity: 0.3; }\n 100% { transform: translateY(0) scale(1); opacity: 1; }\n}\n\n/* Spiral — three concentric rings spinning at different speeds and\n directions, reading as a vortex. */\n.nx-spinner__spiral {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__spiral-ring {\n position: absolute;\n border-radius: 50%;\n border: 2px solid transparent;\n border-top-color: currentColor;\n}\n\n.nx-spinner__spiral-ring:nth-child(1) { inset: 0; opacity: 1; animation: nx-spinner-rotate 0.6s linear infinite; }\n.nx-spinner__spiral-ring:nth-child(2) { inset: 20%; opacity: 0.65; animation: nx-spinner-rotate 0.9s linear infinite reverse; }\n.nx-spinner__spiral-ring:nth-child(3) { inset: 38%; opacity: 0.35; animation: nx-spinner-rotate 1.3s linear infinite; }\n\n/* Burst (rebuilt) — six particles popping outward from the center,\n all at the same instant, same speed, same distance, in every\n direction — true radial symmetry rather than a staggered ripple.\n The earlier per-particle animation-delay broke that symmetry, so\n it's removed; the only difference between particles now is their\n fixed rotation, which is what fans them out evenly. Driven\n entirely by `transform` (translateY + scale) rather than animating\n `top` alongside `scale`, which previously caused a subtle\n non-circular wobble mid-flight. */\n.nx-spinner__burst {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__burst-particle {\n position: absolute;\n inset: 0;\n}\n\n.nx-spinner__burst-particle::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 22%;\n height: 22%;\n margin: -11% 0 0 -11%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-burst-pop 1.1s ease-out infinite;\n}\n\n.nx-spinner__burst-particle:nth-child(1) { transform: rotate(0deg); }\n.nx-spinner__burst-particle:nth-child(2) { transform: rotate(60deg); }\n.nx-spinner__burst-particle:nth-child(3) { transform: rotate(120deg); }\n.nx-spinner__burst-particle:nth-child(4) { transform: rotate(180deg); }\n.nx-spinner__burst-particle:nth-child(5) { transform: rotate(240deg); }\n.nx-spinner__burst-particle:nth-child(6) { transform: rotate(300deg); }\n\n@keyframes nx-spinner-burst-pop {\n 0% { transform: translateY(0) scale(0.4); opacity: 1; }\n 70% { opacity: 0.55; }\n 100% { transform: translateY(-160%) scale(1); opacity: 0; }\n}\n\n/* Eclipse — a solid disc sliding across a faint base disc, clipped\n to a circle: a moon-phase style reveal. */\n.nx-spinner__eclipse {\n position: relative;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n overflow: hidden;\n background: color-mix(in srgb, currentColor 20%, transparent);\n}\n\n.nx-spinner__eclipse-shadow {\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: currentColor;\n animation: nx-spinner-eclipse-slide 2s ease-in-out infinite;\n}\n\n@keyframes nx-spinner-eclipse-slide {\n 0% { left: -100%; }\n 50% { left: 0%; }\n 100% { left: 100%; }\n}\n\n/* Petal — six leaf shapes blooming (scale + fade) in a staggered\n sequence while the whole flower slowly rotates. */\n.nx-spinner__petal {\n position: relative;\n width: 100%;\n height: 100%;\n animation: nx-spinner-rotate 4s linear infinite;\n}\n\n.nx-spinner__petal-leaf {\n position: absolute;\n inset: 0;\n}\n\n.nx-spinner__petal-leaf::before {\n content: \"\";\n position: absolute;\n top: 4%;\n left: 50%;\n width: 20%;\n height: 38%;\n margin-left: -10%;\n background: currentColor;\n border-radius: 50% 50% 4% 4%;\n transform-origin: 50% 100%;\n animation: nx-spinner-petal-bloom 1.6s ease-in-out infinite;\n}\n\n.nx-spinner__petal-leaf:nth-child(1) { transform: rotate(0deg); }\n.nx-spinner__petal-leaf:nth-child(2) { transform: rotate(60deg); }\n.nx-spinner__petal-leaf:nth-child(2)::before { animation-delay: 0.13s; }\n.nx-spinner__petal-leaf:nth-child(3) { transform: rotate(120deg); }\n.nx-spinner__petal-leaf:nth-child(3)::before { animation-delay: 0.26s; }\n.nx-spinner__petal-leaf:nth-child(4) { transform: rotate(180deg); }\n.nx-spinner__petal-leaf:nth-child(4)::before { animation-delay: 0.39s; }\n.nx-spinner__petal-leaf:nth-child(5) { transform: rotate(240deg); }\n.nx-spinner__petal-leaf:nth-child(5)::before { animation-delay: 0.52s; }\n.nx-spinner__petal-leaf:nth-child(6) { transform: rotate(300deg); }\n.nx-spinner__petal-leaf:nth-child(6)::before { animation-delay: 0.65s; }\n\n@keyframes nx-spinner-petal-bloom {\n 0%, 100% { transform: scale(0.55); opacity: 0.45; }\n 50% { transform: scale(1); opacity: 1; }\n}\n\n/* Sine — a smooth traced wave, distinct from \"heartbeat\"'s jagged\n ECG line. */\n.nx-spinner__sine-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__sine-path {\n stroke-dasharray: 16 44;\n animation: nx-spinner-sine-dash 1.4s linear infinite;\n}\n\n@keyframes nx-spinner-sine-dash {\n to { stroke-dashoffset: -60; }\n}\n\n/* Gear — a thick stroked ring with eight radiating teeth, spinning\n as one; a genuinely mechanical silhouette. */\n.nx-spinner__gear-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__gear-group {\n transform-box: fill-box;\n transform-origin: 50% 50%;\n animation: nx-spinner-rotate 3s linear infinite;\n}\n\n/* Pendulum (rebuilt as SVG) — the old percentage-sized HTML-span\n version rendered as a near-invisible diagonal sliver at small\n sizes; a fixed-viewBox SVG is crisp at every size instead. A\n static pivot dot sits at the top; the arm + ball are grouped\n together and rotate as one rigid body around that pivot — the one\n variant that oscillates in an arc rather than completing a full\n rotation. */\n.nx-spinner__pendulum-svg {\n width: 100%;\n height: 100%;\n}\n\n.nx-spinner__pendulum-swing {\n transform-box: fill-box;\n transform-origin: 50% 0%;\n animation: nx-spinner-pendulum-swing 1s ease-in-out infinite;\n}\n\n@keyframes nx-spinner-pendulum-swing {\n 0%, 100% { transform: rotate(-32deg); }\n 50% { transform: rotate(32deg); }\n}\n\n/* Dancer — two squares held in a row that pivot together as a rigid\n pair (the container flips a half-turn), while each square also\n slides sideways and swaps places with the other. Adapted from a\n pseudo-element loader that used two hardcoded colors to tell the\n pair apart; ported here to real currentColor-only elements sized\n as percentages of the component's own box (not fixed pixels, so it\n scales with `size` like every other variant), with opacity as the\n distinguishing signal instead of a second color — the same\n convention \"dual-ring\" and \"comet\" already use. */\n.nx-spinner__dancer {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 62%;\n height: 34%;\n animation: nx-spinner-dancer-pivot 2s ease-in-out infinite alternate;\n}\n\n.nx-spinner__dancer-square {\n width: 40%;\n height: 100%;\n border-radius: var(--radius-sm, 2px);\n background: currentColor;\n animation: nx-spinner-dancer-swap 1s ease-in-out infinite alternate;\n}\n\n.nx-spinner__dancer-square--a {\n --nx-dancer-dir: 1;\n}\n\n.nx-spinner__dancer-square--b {\n opacity: 0.55;\n --nx-dancer-dir: -1;\n}\n\n@keyframes nx-spinner-dancer-pivot {\n 0%, 40% { transform: rotate(0deg); }\n 80%, 100% { transform: rotate(0.5turn); }\n}\n\n@keyframes nx-spinner-dancer-swap {\n 80%, 100% { transform: translateX(calc(var(--nx-dancer-dir) * 60%)); }\n}\n\n/* =========================================================\n Reduced motion — slow every animated variant down instead of\n disabling motion outright (keeps the \"loading\" signal legible).\n ========================================================= */\n@media (prefers-reduced-motion: reduce) {\n .nx-spinner__ring-svg,\n .nx-spinner__dot,\n .nx-spinner__bar,\n .nx-spinner__pulse,\n .nx-spinner__dual-ring-outer,\n .nx-spinner__dual-ring-inner,\n .nx-spinner__ripple-wave,\n .nx-spinner__orbit-spin,\n .nx-spinner__bounce-ball,\n .nx-spinner__conic,\n .nx-spinner__buffer-group,\n .nx-spinner__linear-bar,\n .nx-spinner__heartbeat-path,\n .nx-spinner__infinity-path,\n .nx-spinner__hourglass-svg,\n .nx-spinner__hourglass-sand-top,\n .nx-spinner__hourglass-sand-bottom,\n .nx-spinner__hourglass-grain,\n .nx-spinner__pinwheel-blades,\n .nx-spinner__radar-sweep,\n .nx-spinner__wave-dot,\n .nx-spinner__helix-dot,\n .nx-spinner__atom-spin,\n .nx-spinner__atom-electron-counter,\n .nx-spinner__comet,\n .nx-spinner__gauge-arc,\n .nx-spinner__stack-card,\n .nx-spinner__spiral-ring,\n .nx-spinner__burst-particle::before,\n .nx-spinner__eclipse-shadow,\n .nx-spinner__petal,\n .nx-spinner__petal-leaf::before,\n .nx-spinner__sine-path,\n .nx-spinner__gear-group,\n .nx-spinner__pendulum-swing,\n .nx-spinner__dancer,\n .nx-spinner__dancer-square {\n animation-duration: 2s;\n }\n}",".nx-divider {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n}\n\n.nx-divider--horizontal {\n width: 100%;\n}\n.nx-divider--horizontal .nx-divider__line {\n flex: 1;\n height: var(--border-widthThin, 1px);\n background: var(--color-border, #e5e7eb);\n}\n\n.nx-divider--vertical {\n flex-direction: column;\n height: 100%;\n align-self: stretch;\n}\n.nx-divider--vertical .nx-divider__line {\n flex: 1;\n width: var(--border-widthThin, 1px);\n background: var(--color-border, #e5e7eb);\n}\n\n.nx-divider__content {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n white-space: nowrap;\n}\n",".nx-card {\n position: relative;\n display: flex;\n flex-direction: column;\n background: var(--color-surface, #ffffff);\n border-radius: var(--radius-lg, 14px);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n overflow: hidden;\n transition: box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-card--horizontal {\n flex-direction: row;\n}\n\n.nx-card--elevated {\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08));\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n}\n\n.nx-card--outlined {\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n.nx-card--flat {\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n}\n\n/* \"flat\" with no border/shadow reads as bare content on themes where\n surface and background are close in tone — \"filled\" is the answer\n to that: no border or shadow either, but a background tint that's\n deliberately distinct from the page, so it still reads as a\n contained block at rest. */\n.nx-card--filled {\n background: var(--color-surfaceRaised, #f3f4f6);\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n}\n\n.nx-card--clickable {\n cursor: pointer;\n}\n.nx-card--clickable:hover {\n box-shadow: var(--shadow-lg, 0 8px 20px rgba(0, 0, 0, 0.1));\n}\n.nx-card--clickable:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-card--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.nx-card__media {\n overflow: hidden;\n line-height: 0;\n background: var(--color-neutral-100, #f3f4f6); /* visible while media loads */\n}\n\n/*\n This is the actual fix for a real, confirmed bug — not a guess.\n A consuming site's own typography/\"prose\" stylesheet (Fumadocs'\n docs-content styling, in this case) commonly gives every <img> a\n default vertical margin, since that's a sensible default for\n images floating in the middle of long-form article text. Card\n never reset it. The result: the image sat 32px lower than its\n container's top edge — confirmed directly via\n `getComputedStyle(img).marginTop` in a real browser, not inferred\n from a screenshot — while still being exactly the container's\n height, so the excess got clipped off the bottom by `overflow:\n hidden`. That produced exactly the symptom it looked like: a gap\n of empty placeholder-background above the photo. A fixed\n aspect-ratio box and object-fit: cover (below) can't compensate\n for a margin doing this — margin isn't part of the size the\n container is even aware of.\n*/\n.nx-card__media img,\n.nx-card__media video {\n margin: 0;\n}\n\n/*\n Vertical (default): a fixed aspect ratio + object-fit: cover,\n deliberately NOT the media's natural height. Relying on natural\n height (`height: auto`) meant the rendered size depended on\n whatever the browser/Next.js Image decided the image's intrinsic\n box was — which could end up smaller than the container for\n reasons outside this component's control, leaving a visible gap\n around the image showing the placeholder background through it\n (a letterboxed-looking band above and below the photo). A fixed\n aspect ratio removes that dependency entirely: the media area is\n always exactly this size, and object-fit: cover always fills it\n completely, regardless of the actual image's own dimensions. It's\n also simply better card design — every card in a list ends up the\n same height instead of jumping around per image.\n*/\n.nx-card--vertical .nx-card__media {\n width: 100%;\n aspect-ratio: 16 / 9;\n}\n.nx-card--vertical .nx-card__media img,\n.nx-card--vertical .nx-card__media video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n/* Horizontal: media is a fixed-width column, cropped to fill the\n card's full height (stretch comes from the parent flex row's\n default align-items: stretch — no extra CSS needed for that part). */\n.nx-card--horizontal .nx-card__media {\n width: 38%;\n flex-shrink: 0;\n}\n.nx-card--horizontal .nx-card__media img,\n.nx-card--horizontal .nx-card__media video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.nx-card--horizontal .nx-card__content {\n min-width: 0; /* lets text truncate/wrap instead of overflowing the flex row */\n}\n\n/*\n Overlay/hero: media fills the whole card as a backdrop; content\n sits on top at the bottom, with a gradient scrim behind it for\n legibility over an arbitrary image.\n\n This is a deliberate rebuild, not the original version: an explicit\n `height` (not just a `min-height` floor) makes the card's size\n fully deterministic instead of depending on how much slack space\n content's own `margin-top: auto` happened to have to push against\n — with only one in-flow flex child, there's no guarantee that slack\n space exists at all. Content is now positioned absolutely to the\n bottom directly, matching how media is already positioned, rather\n than relying on flex behavior for it. The scrim is also its own\n layer (`::after`, sized to the full card) instead of living on\n `.nx-card__content`'s own background — the old approach only\n darkened the area directly behind the text (a thin band), not a\n graceful fade across a real portion of the photo.\n*/\n/*\n width: 100% is not decorative here — it's the actual fix for a\n confirmed bug. Both .nx-card__media and .nx-card__content are\n position: absolute in overlay mode (that's what lets content sit\n on top of the photo), which removes ALL in-flow content from the\n card. A block-level flex item with no explicit width defaults to\n shrink-to-fit based on its in-flow content's own intrinsic size —\n with nothing left in flow, that collapsed to almost nothing\n (measured 2px in a real browser, not a guess). A `maxWidth` passed\n via `style` only caps a width, it doesn't establish one on its own.\n*/\n.nx-card--overlay {\n width: 100%;\n height: 320px;\n}\n.nx-card--overlay .nx-card__media {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n}\n.nx-card--overlay .nx-card__media img,\n.nx-card--overlay .nx-card__media video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n.nx-card--overlay::after {\n content: \"\";\n position: absolute;\n inset: 0;\n z-index: 1;\n background: linear-gradient(\n to top,\n rgba(0, 0, 0, 0.85) 0%,\n rgba(0, 0, 0, 0.55) 35%,\n rgba(0, 0, 0, 0.15) 70%,\n transparent 100%\n );\n pointer-events: none;\n}\n.nx-card--overlay .nx-card__content {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 2;\n}\n/* Overlay text is always on top of a photo/video, not the theme's\n own surface — it needs to stay light regardless of which theme\n (light or dark) is active, unlike every other card variant where\n text correctly follows --color-text. */\n.nx-card--overlay .nx-card__header,\n.nx-card--overlay .nx-card__body {\n color: #ffffff;\n}\n.nx-card--overlay .nx-card__header,\n.nx-card--overlay .nx-card__footer {\n border-color: transparent;\n}\n\n.nx-card__header,\n.nx-card__footer {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n/* Padding applies to header/body/footer, not media (media should\n bleed to the card's edge). */\n.nx-card--padding-none .nx-card__header,\n.nx-card--padding-none .nx-card__body,\n.nx-card--padding-none .nx-card__footer { padding: 0; }\n\n.nx-card--padding-sm .nx-card__header,\n.nx-card--padding-sm .nx-card__body,\n.nx-card--padding-sm .nx-card__footer { padding: var(--spacing-sm, 8px) var(--spacing-md, 16px); }\n\n.nx-card--padding-md .nx-card__header,\n.nx-card--padding-md .nx-card__body,\n.nx-card--padding-md .nx-card__footer { padding: var(--spacing-md, 16px) var(--spacing-lg, 24px); }\n\n.nx-card--padding-lg .nx-card__header,\n.nx-card--padding-lg .nx-card__body,\n.nx-card--padding-lg .nx-card__footer { padding: var(--spacing-lg, 24px) var(--spacing-xl, 32px); }\n\n.nx-card__body {\n flex: 1;\n color: var(--color-text, #111827);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n}\n\n.nx-card__header {\n font-weight: var(--typography-weightBold, 700);\n color: var(--color-text, #111827);\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n.nx-card__footer {\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeXs, 12px);\n}\n\n.nx-card__badge {\n position: absolute;\n top: var(--spacing-sm, 8px);\n right: var(--spacing-sm, 8px);\n z-index: 2;\n}\n",".nx-scroll-area {\r\n position: relative;\r\n overflow: hidden;\r\n --nx-scrollbar-thickness: var(--spacing-sm, 10px);\r\n}\r\n\r\n/* The actual scrolling element. Native scrollbar is hidden on every\r\n engine so the custom track/thumb pair below is the only visible\r\n indicator — content is still fully scrollable by wheel, touch,\r\n keyboard, and drag-to-select regardless. */\r\n.nx-scroll-area__viewport {\r\n width: 100%;\r\n height: 100%;\r\n scrollbar-width: none; /* Firefox */\r\n -ms-overflow-style: none; /* legacy Edge */\r\n overscroll-behavior: contain;\r\n}\r\n.nx-scroll-area__viewport::-webkit-scrollbar {\r\n width: 0;\r\n height: 0;\r\n display: none;\r\n}\r\n\r\n.nx-scroll-area__viewport--vertical {\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n}\r\n.nx-scroll-area__viewport--horizontal {\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n}\r\n.nx-scroll-area__viewport--both {\r\n overflow: auto;\r\n}\r\n\r\n/* Deliberately unstyled beyond this — it exists so ScrollArea has a\r\n stable node to measure the content's natural (unclipped) size from\r\n and to observe for size changes (see react/ScrollArea.tsx), not to\r\n impose any layout of its own on whatever `children` actually is.\r\n `color` IS set explicitly, though (same convention Card.css uses\r\n for its own text sub-elements): without it, plain text children\r\n just inherit whatever `color` happens to be ambient outside\r\n ScrollArea, which is invisible on some themes/surfaces — inheriting\r\n a page's own light-mode text color into a component rendered over\r\n a dark theme override, for instance. */\r\n.nx-scroll-area__content {\r\n min-width: 100%;\r\n width: fit-content;\r\n color: var(--color-text, #111827);\r\n}\r\n.nx-scroll-area__viewport--vertical .nx-scroll-area__content {\r\n width: 100%;\r\n}\r\n\r\n.nx-scroll-area__track {\r\n position: absolute;\r\n z-index: 2;\r\n opacity: 0;\r\n pointer-events: none;\r\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-scroll-area__track--vertical {\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n width: var(--nx-scrollbar-thickness);\r\n padding: 2px;\r\n}\r\n.nx-scroll-area__track--horizontal {\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n height: var(--nx-scrollbar-thickness);\r\n padding: 2px;\r\n}\r\n/* Both tracks present: each stops short of the other so they don't\r\n overlap in the shared corner (filled separately, below). */\r\n.nx-scroll-area--both .nx-scroll-area__track--vertical {\r\n bottom: var(--nx-scrollbar-thickness);\r\n}\r\n.nx-scroll-area--both .nx-scroll-area__track--horizontal {\r\n right: var(--nx-scrollbar-thickness);\r\n}\r\n\r\n/* Base color is neutral-gray by default; `thumbColor=\"accent\"` or a\r\n literal color sets --nx-scroll-area-thumb-color inline (see\r\n react/ScrollArea.tsx's resolveThumbColorValue), which this falls\r\n back to. Visibility across themes is opacity-driven rather than a\r\n second background color per state, so it works the same way\r\n whatever color is actually in use: a translucent overlay that\r\n solidifies on hover/drag, the same convention native OS overlay\r\n scrollbars use.\r\n\r\n border/box-shadow use the same theme tokens Card.css and Slider.css\r\n do, so the thumb actually carries each theme's shape identity\r\n instead of looking identical everywhere: sharp/borderless on\r\n brutalism (radius 0, shadow \"none\"), a bold black-outlined hard\r\n offset on neobrutalism, a soft diffuse shadow on glass, an embossed\r\n inset+outset shadow on skeuomorphism, and so on — see\r\n tests/theme-distinctness.test.ts for what each theme actually sets. */\r\n.nx-scroll-area__thumb {\r\n position: absolute;\r\n background: var(--nx-scroll-area-thumb-color, var(--color-textMuted, #6b7280));\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\r\n opacity: 0.55;\r\n border-radius: var(--radius-full, 9999px);\r\n cursor: pointer;\r\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n/* Track already insets its content via `padding: 2px` above — the\r\n thumb fills that padded box exactly (0 further inset), rather than\r\n insetting a second time, which would leave almost nothing of the\r\n thumb visible on a thin track. */\r\n.nx-scroll-area__track--vertical .nx-scroll-area__thumb {\r\n left: 0;\r\n right: 0;\r\n}\r\n.nx-scroll-area__track--horizontal .nx-scroll-area__thumb {\r\n top: 0;\r\n bottom: 0;\r\n}\r\n.nx-scroll-area__thumb:hover,\r\n.nx-scroll-area__thumb.is-dragging {\r\n opacity: 1;\r\n}\r\n\r\n.nx-scroll-area__corner {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n width: var(--nx-scrollbar-thickness);\r\n height: var(--nx-scrollbar-thickness);\r\n z-index: 2;\r\n background: transparent;\r\n}\r\n\r\n/* Visibility modes. \"never\" renders no track elements at all (see\r\n getScrollAreaClasses/hasVerticalTrack/hasHorizontalTrack in\r\n core/scroll-area.ts), so it needs no rule here. */\r\n.nx-scroll-area--scrollbar-always .nx-scroll-area__track {\r\n opacity: 1;\r\n pointer-events: auto;\r\n}\r\n.nx-scroll-area--scrollbar-hover:hover .nx-scroll-area__track,\r\n.nx-scroll-area--scrollbar-hover.nx-scroll-area--active .nx-scroll-area__track,\r\n.nx-scroll-area--scrollbar-auto.nx-scroll-area--active .nx-scroll-area__track {\r\n opacity: 1;\r\n pointer-events: auto;\r\n}",".nx-alert {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n padding: var(--spacing-md, 16px);\n border-radius: var(--radius-md, 8px);\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n border-left-width: 3px;\n /* Every other surface component (Button, Card, Badge's solid\n variant, Input) picks up each theme's shadow.xs — the soft blur\n in Light, the hard black offset in Neobrutalism, the neon glow\n in Cyberpunk, the embossed inset+outer pair in Skeuomorphism,\n none at all in Brutalism/Minimalism (their own deliberate\n flatness). Alert didn't have this line, so it rendered\n identically flat everywhere regardless of theme. */\n box-shadow: var(--shadow-xs, none);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-alert--info {\n background: var(--color-info-light, #dbeafe);\n border-left-color: var(--color-info-base, #3b82f6);\n color: var(--color-info-deeper, #1e3a5f);\n}\n.nx-alert--success {\n background: var(--color-success-light, #d1fae5);\n border-left-color: var(--color-success-base, #10b981);\n color: var(--color-success-deeper, #064e3b);\n}\n.nx-alert--warning {\n background: var(--color-warning-light, #fef3c7);\n border-left-color: var(--color-warning-base, #f59e0b);\n color: var(--color-warning-deeper, #78350f);\n}\n.nx-alert--danger {\n background: var(--color-danger-light, #fee2e2);\n border-left-color: var(--color-danger-base, #ef4444);\n color: var(--color-danger-deeper, #7f1d1d);\n}\n\n.nx-alert__icon {\n flex-shrink: 0;\n display: inline-flex;\n padding-top: 1px; /* optical alignment with the title's cap-height */\n}\n\n.nx-alert__body {\n flex: 1;\n min-width: 0;\n}\n\n.nx-alert__title {\n font-weight: var(--typography-weightBold, 700);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightTight, 1.2);\n}\n\n.nx-alert__description {\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n margin-top: 2px;\n}\n.nx-alert__title + .nx-alert__description {\n margin-top: 4px;\n}\n\n.nx-alert__action {\n flex-shrink: 0;\n}\n\n.nx-alert__dismiss {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 2px;\n margin: -2px -2px -2px 0;\n border: none;\n background: transparent;\n color: inherit;\n cursor: pointer;\n border-radius: var(--radius-sm, 6px);\n opacity: 0.6;\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-alert__dismiss:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.08);\n}",".nx-modal-backdrop {\n position: fixed;\n inset: 0;\n z-index: var(--elevation-modal, 1000);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-lg, 24px);\n background: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(2px);\n animation: nx-modal-backdrop-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-modal-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.nx-modal {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: calc(100vh - var(--spacing-lg, 24px) * 2);\n background: var(--color-surface, #ffffff);\n border-radius: var(--radius-lg, 14px);\n box-shadow: var(--shadow-xl, 0 20px 40px rgba(0, 0, 0, 0.2));\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n outline: none; /* focus lands here programmatically; a visible browser outline on the whole panel isn't useful */\n animation: nx-modal-panel-in var(--motion-durationNormal, 180ms) var(--motion-easeEmphasized, ease);\n}\n\n@keyframes nx-modal-panel-in {\n from { opacity: 0; transform: translateY(8px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n.nx-modal--xs { max-width: 360px; }\n.nx-modal--sm { max-width: 480px; }\n.nx-modal--md { max-width: 640px; }\n.nx-modal--lg { max-width: 860px; }\n.nx-modal--xl { max-width: 1100px; }\n.nx-modal--full {\n max-width: none;\n width: calc(100vw - var(--spacing-lg, 24px) * 2);\n height: calc(100vh - var(--spacing-lg, 24px) * 2);\n}\n\n.nx-modal__header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-md, 16px);\n padding: var(--spacing-lg, 24px) var(--spacing-lg, 24px) 0;\n flex-shrink: 0;\n}\n\n.nx-modal__title {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeLg, 18px);\n font-weight: var(--typography-weightBold, 700);\n color: var(--color-text, #111827);\n}\n\n.nx-modal__close {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: var(--color-textMuted, #6b7280);\n cursor: pointer;\n border-radius: var(--radius-sm, 6px);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-modal__close:hover {\n background: var(--color-surfaceRaised, #f3f4f6);\n color: var(--color-text, #111827);\n}\n.nx-modal__close:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-modal__body {\n flex: 1;\n overflow-y: auto;\n padding: var(--spacing-lg, 24px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n color: var(--color-text, #111827);\n}\n\n.nx-modal__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--spacing-sm, 8px);\n padding: 0 var(--spacing-lg, 24px) var(--spacing-lg, 24px);\n flex-shrink: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-modal-backdrop, .nx-modal {\n animation-duration: 0.01ms;\n }\n}",".nx-tooltip {\n z-index: var(--elevation-tooltip, 1100);\n max-width: 240px;\n padding: 6px 10px;\n border-radius: var(--radius-sm, 6px);\n background: var(--color-neutral-900, #171717);\n color: var(--color-neutral-0, #ffffff);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.15));\n pointer-events: none; /* never intercepts hover meant for the trigger/page underneath */\n animation: nx-tooltip-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-tooltip-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.nx-tooltip::after {\n content: \"\";\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n}\n\n.nx-tooltip--top::after {\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n.nx-tooltip--bottom::after {\n top: -4px;\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n.nx-tooltip--left::after {\n right: -4px;\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n.nx-tooltip--right::after {\n left: -4px;\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-tooltip {\n animation-duration: 0.01ms;\n }\n}",".nx-toast-container {\n position: fixed;\n z-index: var(--elevation-toast, 1200);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm, 8px);\n padding: var(--spacing-md, 16px);\n max-width: 380px;\n pointer-events: none; /* the gaps between toasts shouldn't block clicks to the page underneath */\n}\n.nx-toast-container > * {\n pointer-events: auto;\n}\n\n.nx-toast-container--top-left { top: 0; left: 0; align-items: flex-start; }\n.nx-toast-container--top-center { top: 0; left: 50%; transform: translateX(-50%); align-items: center; }\n.nx-toast-container--top-right { top: 0; right: 0; align-items: flex-end; }\n.nx-toast-container--bottom-left { bottom: 0; left: 0; align-items: flex-start; flex-direction: column-reverse; }\n.nx-toast-container--bottom-center { bottom: 0; left: 50%; transform: translateX(-50%); align-items: center; flex-direction: column-reverse; }\n.nx-toast-container--bottom-right { bottom: 0; right: 0; align-items: flex-end; flex-direction: column-reverse; }\n\n.nx-toast {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n width: 100%;\n padding: var(--spacing-sm, 8px) var(--spacing-md, 16px);\n border-radius: var(--radius-md, 8px);\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n box-shadow: var(--shadow-lg, 0 8px 20px rgba(0, 0, 0, 0.12));\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n animation: nx-toast-in var(--motion-durationNormal, 180ms) var(--motion-easeEmphasized, ease);\n}\n\n@keyframes nx-toast-in {\n from { opacity: 0; transform: translateY(8px) scale(0.97); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n.nx-toast--info .nx-toast__icon { color: var(--color-info-base, #3b82f6); }\n.nx-toast--success .nx-toast__icon { color: var(--color-success-base, #10b981); }\n.nx-toast--warning .nx-toast__icon { color: var(--color-warning-base, #f59e0b); }\n.nx-toast--danger .nx-toast__icon { color: var(--color-danger-base, #ef4444); }\n\n.nx-toast__icon {\n flex-shrink: 0;\n display: inline-flex;\n padding-top: 2px;\n}\n\n.nx-toast__body {\n flex: 1;\n min-width: 0;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-toast__title {\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightBold, 700);\n color: var(--color-text, #111827);\n line-height: var(--typography-lineHeightTight, 1.2);\n}\n\n.nx-toast__description {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n line-height: var(--typography-lineHeightNormal, 1.5);\n margin-top: 2px;\n}\n\n.nx-toast__action {\n flex-shrink: 0;\n align-self: center;\n}\n\n.nx-toast__dismiss {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 2px;\n margin: -2px -4px -2px 0;\n border: none;\n background: transparent;\n color: var(--color-textMuted, #6b7280);\n cursor: pointer;\n border-radius: var(--radius-sm, 6px);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-toast__dismiss:hover {\n background: var(--color-surfaceRaised, #f3f4f6);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-toast {\n animation-duration: 0.01ms;\n }\n}","/* Category A meter. Every value is a var(--token, fallback), no\n literal colors/radii/durations (BUILDING-COMPONENTS.md step 3).\n The fill is a solid accent surface with NO text on it, so the\n raw-color onAccent gap (CONTRACT.md Rule 5c) doesn't apply here —\n nothing is painted on top of --color-brand-500 that needs a\n guaranteed-contrast foreground. */\n\n.nx-progress-wrap {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n inline-size: 100%;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-progress {\n position: relative;\n flex: 1;\n min-inline-size: 0;\n overflow: hidden;\n background: var(--color-surfaceRaised, #f3f4f6);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n border-radius: var(--radius-full, 9999px);\n box-shadow: var(--shadow-xs, none);\n}\n\n.nx-progress__fill {\n block-size: 100%;\n inline-size: 0;\n border-radius: inherit;\n background: var(--color-brand-500, #6366f1);\n transition: inline-size var(--motion-durationNormal, 180ms) var(--motion-easeStandard, ease);\n}\n\n/* Semantic tones — theme-defined colors, kept separate from the\n brand accent (CONTRACT.md Rule 5b's success/warning/danger note). */\n.nx-progress--success .nx-progress__fill { background: var(--color-success-base, #16a34a); }\n.nx-progress--warning .nx-progress__fill { background: var(--color-warning-base, #d97706); }\n.nx-progress--danger .nx-progress__fill { background: var(--color-danger-base, #ef4444); }\n\n/* Track height per size — the one dimension that scales. */\n.nx-progress--xs { block-size: 4px; }\n.nx-progress--sm { block-size: 6px; }\n.nx-progress--md { block-size: 8px; }\n.nx-progress--lg { block-size: 12px; }\n.nx-progress--xl { block-size: 16px; }\n\n.nx-progress__value {\n flex-shrink: 0;\n font-size: var(--typography-sizeXs, 12px);\n font-variant-numeric: tabular-nums;\n color: var(--color-textMuted, #6b7280);\n min-inline-size: 3ch;\n text-align: end;\n}\n\n/* Indeterminate: the fill becomes a shuttle of fixed width sliding\n across the track. No inline width is set by the component in this\n state, so the animation fully owns it. */\n.nx-progress--indeterminate .nx-progress__fill {\n inline-size: 40%;\n border-radius: var(--radius-full, 9999px);\n animation: nx-progress-indeterminate 1.2s var(--motion-easeStandard, ease) infinite;\n will-change: transform;\n}\n\n@keyframes nx-progress-indeterminate {\n 0% { transform: translateX(-120%); }\n 100% { transform: translateX(320%); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-progress__fill {\n transition-duration: 0.01ms;\n }\n /* An infinite slide is exactly the kind of motion prefers-reduced\n -motion is meant to stop — replace it with a static, obviously\n \"busy\" 60% fill rather than an empty or animated bar. */\n .nx-progress--indeterminate .nx-progress__fill {\n animation: none;\n inline-size: 60%;\n transform: none;\n }\n}","/* Category E: tablist/tab/tabpanel. Every value is a\n var(--token, fallback) reading from the active theme's generated\n custom properties, so switching data-theme restyles Tabs with\n zero JS (CONTRACT.md CSS-cascade theming). No literal colors,\n radii, durations, or shadows. */\n\n.nx-tabs {\n display: flex;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n}\n\n/* Orientation drives the top-level layout: tabs above panels\n (horizontal) vs. tabs beside panels (vertical). */\n.nx-tabs--horizontal {\n flex-direction: column;\n}\n.nx-tabs--vertical {\n flex-direction: row;\n gap: var(--spacing-md, 16px);\n}\n\n/* ---- Tab list ---- */\n.nx-tabs__list {\n display: flex;\n}\n.nx-tabs--horizontal .nx-tabs__list {\n flex-direction: row;\n}\n.nx-tabs--vertical .nx-tabs__list {\n flex-direction: column;\n}\n\n/* ---- Tab (button) ---- */\n.nx-tabs__tab {\n appearance: none;\n background: transparent;\n border: none;\n margin: 0;\n cursor: pointer;\n font-family: inherit;\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n color: var(--color-textMuted, #6b7280);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs, 4px);\n white-space: nowrap;\n transition: color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-tabs__tab:hover:not(.nx-tabs__tab--disabled) {\n color: var(--color-text, #111827);\n}\n\n.nx-tabs__tab--selected {\n color: var(--color-brand-600, #4f46e5);\n}\n\n.nx-tabs__tab:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n border-radius: var(--radius-sm, 6px);\n}\n\n.nx-tabs__tab--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* ---- Menu tab (Tab menu — dropdown-trigger tabs, e.g. \"Login ▾\") ---- */\n.nx-tabs__chevron {\n transition: transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-tabs__tab--menu[aria-expanded=\"true\"] .nx-tabs__chevron {\n transform: rotate(180deg);\n}\n\n/* Sizes — padding + font-size only, from the shared scale. */\n.nx-tabs--xs .nx-tabs__tab { padding: 4px 10px; font-size: var(--typography-sizeXs, 12px); }\n.nx-tabs--sm .nx-tabs__tab { padding: 6px 12px; font-size: var(--typography-sizeSm, 14px); }\n.nx-tabs--md .nx-tabs__tab { padding: 8px 14px; font-size: var(--typography-sizeMd, 16px); }\n.nx-tabs--lg .nx-tabs__tab { padding: 10px 18px; font-size: var(--typography-sizeLg, 18px); }\n.nx-tabs--xl .nx-tabs__tab { padding: 12px 22px; font-size: var(--typography-sizeXl, 22px); }\n\n/* ---- Variant: line (default) — an underline/inline rule that the\n selected tab lights up in the accent color. The tab's edge border\n overlaps the list's rule via a -1px margin so the two align. ---- */\n.nx-tabs--line.nx-tabs--horizontal .nx-tabs__list {\n border-block-end: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n.nx-tabs--line.nx-tabs--horizontal .nx-tabs__tab {\n border-block-end: 2px solid transparent;\n margin-block-end: -1px;\n}\n.nx-tabs--line.nx-tabs--horizontal .nx-tabs__tab--selected {\n border-block-end-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-tabs--line.nx-tabs--vertical .nx-tabs__list {\n border-inline-start: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n.nx-tabs--line.nx-tabs--vertical .nx-tabs__tab {\n border-inline-start: 2px solid transparent;\n margin-inline-start: -1px;\n justify-content: flex-start;\n}\n.nx-tabs--line.nx-tabs--vertical .nx-tabs__tab--selected {\n border-inline-start-color: var(--color-brand-500, #6366f1);\n}\n\n/* ---- Variant: soft — selected tab gets a subtle brand-tinted\n pill; no rule/underline. ---- */\n.nx-tabs--soft .nx-tabs__list {\n gap: var(--spacing-xs, 4px);\n}\n.nx-tabs--soft .nx-tabs__tab {\n border-radius: var(--radius-md, 8px);\n}\n.nx-tabs--soft .nx-tabs__tab--selected {\n background: var(--color-brand-50, #f0f4ff);\n color: var(--color-brand-700, #4338ca);\n /* Parity with --solid's selected tab below, which already reads\n shadow.xs — without this, soft was purely accent-driven (bg +\n text only) and looked identical across every theme regardless\n of Neobrutalism's hard offset shadow, Cyberpunk's glow, etc. */\n box-shadow: var(--shadow-xs, none);\n}\n\n/* ---- Variant: solid — a segmented control; the selected tab is a\n filled accent chip. Text uses --color-brand-onAccent, matching\n Button's solid variant. (Same known limitation as Button: a *raw*\n color accent doesn't supply onAccent, so it falls back to white —\n registered accents always define it. Tracked library-wide, not\n solved unilaterally here.) ---- */\n.nx-tabs--solid .nx-tabs__list {\n gap: var(--spacing-xs, 4px);\n padding: var(--spacing-xs, 4px);\n background: var(--color-surfaceRaised, #f3f4f6);\n border-radius: var(--radius-md, 8px);\n align-self: flex-start;\n}\n.nx-tabs--vertical.nx-tabs--solid .nx-tabs__list {\n align-self: stretch;\n}\n.nx-tabs--solid .nx-tabs__tab {\n border-radius: var(--radius-sm, 6px);\n}\n.nx-tabs--solid .nx-tabs__tab--selected {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n box-shadow: var(--shadow-sm, none);\n}\n\n/* ---- Panel ---- */\n.nx-tabs__panel {\n padding-block-start: var(--spacing-md, 16px);\n color: var(--color-text, #111827);\n}\n.nx-tabs--vertical .nx-tabs__panel {\n padding-block-start: 0;\n flex: 1;\n min-inline-size: 0;\n}\n/* The panel is a focus stop (tabIndex 0 in core); give it the same\n visible focus ring as everything else rather than a bare outline. */\n.nx-tabs__panel:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n border-radius: var(--radius-sm, 6px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-tabs__tab {\n transition: none;\n }\n}","/* Category E: disclosure. Every value is a var(--token, fallback)\n from the active theme's generated custom properties, so switching\n data-theme restyles the accordion with zero JS. No literal\n colors, radii, durations, or shadows. */\n\n.nx-accordion {\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n overflow: hidden;\n background: var(--color-surface, #ffffff);\n}\n\n/* Items are separated by a divider rather than each carrying its own\n border, so the group reads as one surface. */\n.nx-accordion__item + .nx-accordion__item {\n border-block-start: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n/* ---- Header + trigger ---- */\n.nx-accordion__header {\n margin: 0;\n /* The heading element is structural only — it inherits its visual\n size from the trigger, not from the browser's default h1–h6. */\n font: inherit;\n}\n\n.nx-accordion__trigger {\n appearance: none;\n inline-size: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-sm, 8px);\n background: transparent;\n border: none;\n margin: 0;\n cursor: pointer;\n text-align: start;\n font-family: inherit;\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n color: var(--color-text, #111827);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-accordion__trigger:hover:not(:disabled) {\n background: var(--color-surfaceRaised, #f3f4f6);\n}\n\n.nx-accordion__trigger:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: -2px; /* inset, so the ring isn't clipped by overflow:hidden */\n}\n\n.nx-accordion__trigger:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-accordion__trigger--open {\n color: var(--color-brand-600, #4f46e5);\n}\n\n.nx-accordion__label {\n flex: 1;\n min-inline-size: 0;\n}\n\n/* The chevron rotates to point up when its section is open; the\n rotation is disabled under prefers-reduced-motion below. */\n.nx-accordion__icon {\n flex-shrink: 0;\n color: var(--color-textMuted, #6b7280);\n transition: transform var(--motion-durationNormal, 180ms) var(--motion-easeStandard, ease);\n}\n.nx-accordion__trigger--open .nx-accordion__icon {\n transform: rotate(180deg);\n}\n\n/* Sizes — header padding + font-size, from the shared scale. */\n.nx-accordion--xs .nx-accordion__trigger { padding: 8px 10px; font-size: var(--typography-sizeXs, 12px); }\n.nx-accordion--sm .nx-accordion__trigger { padding: 10px 12px; font-size: var(--typography-sizeSm, 14px); }\n.nx-accordion--md .nx-accordion__trigger { padding: 12px 16px; font-size: var(--typography-sizeMd, 16px); }\n.nx-accordion--lg .nx-accordion__trigger { padding: 16px 20px; font-size: var(--typography-sizeLg, 18px); }\n.nx-accordion--xl .nx-accordion__trigger { padding: 20px 24px; font-size: var(--typography-sizeXl, 22px); }\n\n/* ---- Panel ---- */\n.nx-accordion__panel {\n color: var(--color-text, #111827);\n}\n.nx-accordion__panel-inner {\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n}\n/* Panel padding mirrors the trigger's horizontal padding per size, so\n content lines up under the header label. */\n.nx-accordion--xs .nx-accordion__panel-inner { padding: 4px 10px 10px; }\n.nx-accordion--sm .nx-accordion__panel-inner { padding: 4px 12px 12px; }\n.nx-accordion--md .nx-accordion__panel-inner { padding: 4px 16px 16px; }\n.nx-accordion--lg .nx-accordion__panel-inner { padding: 4px 20px 20px; }\n.nx-accordion--xl .nx-accordion__panel-inner { padding: 4px 24px 24px; }\n\n@media (prefers-reduced-motion: reduce) {\n .nx-accordion__trigger,\n .nx-accordion__icon {\n transition: none;\n }\n}\n","/* Category C: overlay menu. Every value is a var(--token, fallback)\n from the active theme's generated custom properties, so switching\n data-theme restyles the menu with zero JS. The menu is rendered\n through ThemedPortal, which mirrors data-theme/data-accent onto the\n portal node, so these tokens resolve to the right theme even though\n the menu lives at the end of <body>. No literal colors, radii,\n durations, or shadows — except the destructive item, which pulls\n from the semantic danger-* registry (Rule 5b), never the accent. */\n\n.nx-dropdown__menu {\n /* Above Modal, below Popover/Tooltip so a tooltip on a menu\n item still layers over it, and below Toast. */\n z-index: var(--elevation-dropdown, 1050);\n box-sizing: border-box;\n min-inline-size: 10rem;\n max-inline-size: min(20rem, calc(100vw - 16px));\n max-block-size: calc(100vh - 16px);\n overflow-y: auto;\n padding: var(--spacing-xs, 4px);\n margin: 0;\n background: var(--color-surface, #ffffff);\n color: var(--color-text, #111827);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-lg, 0 10px 24px rgba(0, 0, 0, 0.18));\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n animation: nx-dropdown-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-dropdown-in {\n from { opacity: 0; transform: translateY(-2px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n/* ---- Items ---- */\n.nx-dropdown__item {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n inline-size: 100%;\n box-sizing: border-box;\n border-radius: var(--radius-sm, 6px);\n color: var(--color-text, #111827);\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n outline: none;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n/* Hover AND programmatic keyboard focus share one highlight: the menu\n moves real DOM focus between items with the arrow keys, so :focus is\n the \"active item\" indicator, not just a mouse affordance. */\n.nx-dropdown__item:not(.nx-dropdown__item--disabled):hover,\n.nx-dropdown__item:not(.nx-dropdown__item--disabled):focus {\n background: var(--color-brand-50, #eef2ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n/* A crisp ring for keyboard users on top of the background tint. */\n.nx-dropdown__item:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: -2px;\n}\n\n.nx-dropdown__item--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Destructive action: color from the semantic danger registry, which\n stays red across every accent (Rule 5b) so \"Delete\" never blends\n into a brand-tinted menu. */\n.nx-dropdown__item--danger {\n color: var(--color-danger-base, #dc2626);\n}\n.nx-dropdown__item--danger:not(.nx-dropdown__item--disabled):hover,\n.nx-dropdown__item--danger:not(.nx-dropdown__item--disabled):focus {\n background: var(--color-danger-subtle, #fee2e2);\n color: var(--color-danger-dark, #b91c1c);\n}\n.nx-dropdown__item--danger:focus-visible {\n outline-color: var(--color-danger-base, #dc2626);\n}\n\n/* ---- Separator + section label ---- */\n.nx-dropdown__separator {\n block-size: var(--border-widthThin, 1px);\n background: var(--color-border, #e5e7eb);\n margin: var(--spacing-xs, 4px) 0;\n}\n\n.nx-dropdown__label {\n padding: var(--spacing-xs, 4px) var(--spacing-sm, 8px);\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n line-height: var(--typography-lineHeightTight, 1.2);\n}\n\n/* ---- Sizes: item padding + font-size, from the shared scale ---- */\n.nx-dropdown__menu--xs .nx-dropdown__item { padding: 4px 8px; font-size: var(--typography-sizeXs, 12px); }\n.nx-dropdown__menu--sm .nx-dropdown__item { padding: 6px 10px; font-size: var(--typography-sizeSm, 14px); }\n.nx-dropdown__menu--md .nx-dropdown__item { padding: 8px 12px; font-size: var(--typography-sizeMd, 16px); }\n.nx-dropdown__menu--lg .nx-dropdown__item { padding: 10px 14px; font-size: var(--typography-sizeLg, 18px); }\n.nx-dropdown__menu--xl .nx-dropdown__item { padding: 12px 16px; font-size: var(--typography-sizeXl, 22px); }\n\n.nx-dropdown__menu--xs { min-inline-size: 8rem; }\n.nx-dropdown__menu--sm { min-inline-size: 9rem; }\n.nx-dropdown__menu--lg { min-inline-size: 12rem; }\n.nx-dropdown__menu--xl { min-inline-size: 14rem; }\n\n@media (prefers-reduced-motion: reduce) {\n .nx-dropdown__menu {\n animation-duration: 0.01ms;\n }\n .nx-dropdown__item {\n transition: none;\n }\n}","/* ============================================================\n SELECT — combobox trigger + portalled listbox.\n\n Every value is var(--token, fallback) (Rule 2): the trigger\n reuses the Input field shape (so a Select sits flush next to a\n text field), and the listbox reuses the Dropdown surface (border\n + radius-md + shadow-lg). Active/selected/hover option states use\n the ACCENT (--color-brand-*), which flips correctly under an\n accent override; nothing here is a semantic (success/danger)\n color, so this file has no danger-* dependency.\n ============================================================ */\n\n.nx-select {\n display: inline-block;\n position: relative;\n inline-size: 100%;\n max-inline-size: 20rem;\n}\n\n/* ---- trigger (role=combobox), shaped like the Input field ---- */\n.nx-select__trigger {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n inline-size: 100%;\n box-sizing: border-box;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-neutral-900, #171717);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n cursor: pointer;\n text-align: start;\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n/* keyboard focus + open both read as \"engaged\": accent ring */\n.nx-select__trigger:focus-visible,\n.nx-select__trigger--open {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-select__trigger--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-select__trigger--invalid:focus-visible,\n.nx-select__trigger--invalid.nx-select__trigger--open {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-select__trigger--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #fafafa);\n}\n\n/* size scale — matches Input's padding/type ramp */\n.nx-select__trigger--xs {\n padding: 4px 8px;\n min-block-size: 28px;\n font-size: var(--typography-sizeXs, 12px);\n}\n.nx-select__trigger--sm {\n padding: 5px 10px;\n min-block-size: 32px;\n font-size: var(--typography-sizeSm, 14px);\n}\n.nx-select__trigger--md {\n padding: 8px 12px;\n min-block-size: 38px;\n font-size: var(--typography-sizeMd, 16px);\n}\n.nx-select__trigger--lg {\n padding: 10px 14px;\n min-block-size: 44px;\n font-size: var(--typography-sizeLg, 18px);\n}\n.nx-select__trigger--xl {\n padding: 12px 16px;\n min-block-size: 52px;\n font-size: var(--typography-sizeXl, 20px);\n}\n\n/* ---- value / placeholder (single) ---- */\n.nx-select__value {\n flex: 1 1 auto;\n min-inline-size: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.nx-select__value--placeholder {\n color: var(--color-neutral-400, #a3a3a3);\n}\n\n/* ---- chips (multiple) ---- */\n.nx-select__chips {\n flex: 1 1 auto;\n min-inline-size: 0;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n.nx-select__chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 4px 2px 8px;\n font-size: 0.85em;\n line-height: 1.4;\n color: var(--color-brand-700, #4338ca);\n background: var(--color-brand-50, #eef2ff);\n border-radius: var(--radius-sm, 4px);\n}\n.nx-select__chip-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n inline-size: 16px;\n block-size: 16px;\n color: inherit;\n background: transparent;\n border: none;\n border-radius: var(--radius-full, 9999px);\n cursor: pointer;\n opacity: 0.7;\n transition: opacity var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease), background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-select__chip-remove:hover {\n opacity: 1;\n background: color-mix(in srgb, var(--color-brand-700, #4338ca) 15%, transparent);\n}\n.nx-select__chip-remove-icon {\n inline-size: 12px;\n block-size: 12px;\n}\n\n/* ---- chevron ---- */\n.nx-select__chevron {\n flex: none;\n inline-size: 1em;\n block-size: 1em;\n color: var(--color-neutral-500, #737373);\n transition: transform var(--motion-durationNormal, 180ms) var(--motion-easeStandard, ease);\n}\n.nx-select__trigger--open .nx-select__chevron {\n transform: rotate(180deg);\n}\n\n/* ---- listbox (portalled), shaped like the Dropdown surface ---- */\n.nx-select__listbox {\n box-sizing: border-box;\n max-block-size: 16rem;\n overflow-y: auto;\n padding: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-200, #e5e5e5);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-lg, 0 10px 15px rgba(0, 0, 0, 0.1));\n /* Peer of the Dropdown menu in the overlay stack — anchored popups,\n above Modal, below Popover/Tooltip. See elevation scale in\n src/tokens/contract.ts for why Modal is the lowest tier. */\n z-index: var(--elevation-dropdown, 1050);\n animation: nx-select-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-select__listbox--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-select__listbox--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-select__listbox--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-select__listbox--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-select__listbox--xl { font-size: var(--typography-sizeXl, 20px); }\n\n/* ---- option ---- */\n.nx-select__option {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n padding: 6px 8px;\n border-radius: var(--radius-sm, 4px);\n color: var(--color-neutral-800, #262626);\n cursor: pointer;\n user-select: none;\n}\n\n/* \"active\" = the aria-activedescendant highlight (keyboard or hover) */\n.nx-select__option--active {\n background: var(--color-brand-50, #eef2ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n.nx-select__option--selected {\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-select__option--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* fixed gutter so labels align whether or not a check is shown */\n.nx-select__option-check {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 1em;\n block-size: 1em;\n color: var(--color-brand-600, #4f46e5);\n}\n.nx-select__check-icon {\n inline-size: 1em;\n block-size: 1em;\n}\n.nx-select__option-label {\n flex: 1 1 auto;\n min-inline-size: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@keyframes nx-select-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-select__trigger,\n .nx-select__chevron,\n .nx-select__chip-remove {\n transition: none;\n }\n .nx-select__listbox {\n animation: none;\n }\n}","/* Category E: step trigger list + panel, modeled on Tabs.css. Every\n value is a var(--token, fallback) reading from the active theme's\n generated custom properties (CONTRACT.md CSS-cascade theming). No\n literal colors, radii, durations, or shadows. */\n\n.nx-stepwizard {\n display: flex;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n}\n.nx-stepwizard--horizontal {\n flex-direction: column;\n gap: var(--spacing-md, 16px);\n}\n.nx-stepwizard--vertical {\n flex-direction: row;\n gap: var(--spacing-lg, 24px);\n}\n\n/* ---- List ---- */\n.nx-stepwizard__list {\n display: flex;\n align-items: stretch;\n}\n.nx-stepwizard--horizontal .nx-stepwizard__list {\n flex-direction: row;\n align-items: flex-start;\n}\n.nx-stepwizard--vertical .nx-stepwizard__list {\n flex-direction: column;\n flex: 0 0 auto;\n}\n\n/* ---- Step (button) ---- */\n.nx-stepwizard__step {\n appearance: none;\n background: transparent;\n border: none;\n margin: 0;\n padding: 0;\n cursor: pointer;\n font-family: inherit;\n text-align: start;\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n color: var(--color-textMuted, #6b7280);\n transition: color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-stepwizard--vertical .nx-stepwizard__step {\n align-items: flex-start;\n}\n\n.nx-stepwizard__step:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n border-radius: var(--radius-sm, 6px);\n}\n\n.nx-stepwizard__step--disabled,\n.nx-stepwizard__step:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n/* Reachable-but-not-yet-current steps that aren't the *next* one in\n linear mode still render (so the whole sequence stays visible) but\n read as inert until the wizard actually gets there. */\n.nx-stepwizard__step--upcoming:not(.nx-stepwizard__step--clickable) {\n cursor: default;\n}\n\n.nx-stepwizard__step--current {\n color: var(--color-text, #111827);\n}\n.nx-stepwizard__step--current .nx-stepwizard__label {\n font-weight: var(--typography-weightSemibold, 600);\n}\n.nx-stepwizard__step--complete {\n color: var(--color-text, #111827);\n}\n\n/* ---- Indicator (the number/check circle) ---- */\n.nx-stepwizard__indicator {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--radius-full, 999px);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n background: var(--color-surface, #ffffff);\n /* Pairs with `background: var(--color-surface, ...)` above, the\n same way every other surface-backed element in this library does\n (Card, Input, Pagination items, Checkbox...) — this is what\n makes a translucent `color.surface` (dark-glass) actually read\n as \"glass\" instead of looking identical to an opaque one (dark),\n since without it there's nothing here to blur. */\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n color: var(--color-textMuted, #6b7280);\n font-weight: var(--typography-weightMedium, 500);\n line-height: 1;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n/*\n The current and complete indicators are the \"raised\" ones, so they\n get a resting theme shadow, same convention as Button.css's\n solid/soft/danger/outline variants: `var(--shadow-sm, none)` at\n rest, `var(--shadow-xs, none)` + a 1px press-in translate on\n `:active`. This single pairing is what actually surfaces most of a\n theme's identity here — neobrutalism's hard offset shadow,\n cyberpunk's neon glow, and skeuomorphism's soft emboss are all\n encoded as `--shadow-*` values already; a component that only\n reads the token on `:hover` (the previous version of this file)\n never shows any of them at rest, which is exactly the bug this\n replaces. The current step's halo ring is layered in the same\n `box-shadow` value (comma-separated) rather than a separate\n property, since only the last `box-shadow` declaration on an\n element wins — they don't stack across rules.\n*/\n.nx-stepwizard__step--current .nx-stepwizard__indicator {\n border-color: var(--color-brand-500, #6366f1);\n color: var(--color-brand-600, #4f46e5);\n box-shadow: 0 0 0 3px var(--color-brand-50, #f0f4ff), var(--shadow-sm, none);\n}\n.nx-stepwizard__step--complete .nx-stepwizard__indicator {\n background: var(--color-brand-500, #6366f1);\n border-color: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff); /* Rule 5c: never --color-textInverse here */\n box-shadow: var(--shadow-sm, none);\n}\n.nx-stepwizard__step--clickable:active:not(:disabled) .nx-stepwizard__indicator {\n box-shadow: var(--shadow-xs, none);\n transform: translate(1px, 1px);\n}\n.nx-stepwizard__step--disabled .nx-stepwizard__indicator {\n background: var(--color-surfaceRaised, #f3f4f6);\n}\n\n/* Normalizes whatever the default checkmark (or a consumer's own\n `icon`) renders at down to a size that actually fits the\n indicator, the same technique and the same reasoning as Timeline's\n `.nx-timeline__dot--icon svg` rule: CSS width/height on an <svg>\n take precedence over its own width/height presentation attributes,\n so this holds regardless of what the icon was told to render at.\n Sized relative to `--stepwizard-indicator-size` (set per size\n variant below) so the checkmark scales proportionally at every\n size instead of the fixed-pixel mismatch that made it look\n tiny-and-lost in `lg`/`xl` and, worse, oversized and overflowing\n in the shrunk `dots`/`progress` variants. */\n.nx-stepwizard__indicator svg,\n.nx-stepwizard__indicator img {\n inline-size: calc(var(--stepwizard-indicator-size, 32px) * 0.42);\n block-size: calc(var(--stepwizard-indicator-size, 32px) * 0.42);\n display: block;\n}\n\n/* ---- Text (label + description) ---- */\n.nx-stepwizard__text {\n display: flex;\n flex-direction: column;\n min-inline-size: 0;\n}\n.nx-stepwizard__label {\n white-space: nowrap;\n font-size: var(--typography-sizeMd, 16px);\n line-height: var(--typography-lineHeightTight, 1.2);\n}\n.nx-stepwizard__description {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n line-height: var(--typography-lineHeightNormal, 1.5);\n}\n\n/* ---- Connector (the line between steps) ---- */\n.nx-stepwizard__connector {\n flex: 1 1 auto;\n align-self: center;\n /* Not `--color-border`: a step wizard (like Breadcrumb's separator,\n which reads `--color-textMuted` for the same reason) usually\n renders straight on `--color-background` with no surface behind\n it, and several themes calibrate `border` as a low-opacity tint\n of the *background's own hue* (gradient's border is a 25%-opacity\n violet on a violet-to-indigo gradient background) — meant to be a\n subtle edge around a filled surface, not a line meant to read\n against the page itself. `textMuted` is the token this codebase\n already hand-tunes for exactly that \"visible on bare background\"\n case (see gradient.ts's own comment on why textMuted was\n darkened). */\n background: var(--color-textMuted, #9ca3af);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-stepwizard--horizontal .nx-stepwizard__connector {\n block-size: var(--border-widthThin, 1px);\n min-inline-size: var(--spacing-lg, 24px);\n margin-inline: var(--spacing-sm, 8px);\n}\n.nx-stepwizard--vertical .nx-stepwizard__connector {\n inline-size: var(--border-widthThin, 1px);\n min-block-size: var(--spacing-lg, 24px);\n margin-block: var(--spacing-xs, 4px);\n margin-inline-start: calc(var(--stepwizard-indicator-size, 32px) / 2 - var(--border-widthThin, 1px) / 2);\n align-self: flex-start;\n}\n.nx-stepwizard__connector--complete {\n background: var(--color-brand-500, #6366f1);\n}\n\n/* ---- Sizes — indicator diameter + font-size from the shared scale.\n The vertical connector's inset (above) reads this same variable so\n the line stays centered under the indicator at every size. ---- */\n.nx-stepwizard--xs .nx-stepwizard__indicator { inline-size: 22px; block-size: 22px; font-size: var(--typography-sizeXs, 12px); --stepwizard-indicator-size: 22px; }\n.nx-stepwizard--sm .nx-stepwizard__indicator { inline-size: 26px; block-size: 26px; font-size: var(--typography-sizeXs, 12px); --stepwizard-indicator-size: 26px; }\n.nx-stepwizard--md .nx-stepwizard__indicator { inline-size: 32px; block-size: 32px; font-size: var(--typography-sizeSm, 14px); --stepwizard-indicator-size: 32px; }\n.nx-stepwizard--lg .nx-stepwizard__indicator { inline-size: 38px; block-size: 38px; font-size: var(--typography-sizeMd, 16px); --stepwizard-indicator-size: 38px; }\n.nx-stepwizard--xl .nx-stepwizard__indicator { inline-size: 44px; block-size: 44px; font-size: var(--typography-sizeLg, 18px); --stepwizard-indicator-size: 44px; }\n\n/* ---- Variant: dots — a lightweight indicator with no number/check,\n for compact headers where the label carries the meaning instead. ---- */\n.nx-stepwizard--dots .nx-stepwizard__indicator {\n inline-size: 10px;\n block-size: 10px;\n font-size: 0;\n --stepwizard-indicator-size: 10px;\n}\n.nx-stepwizard--dots .nx-stepwizard__step--current .nx-stepwizard__indicator {\n box-shadow: 0 0 0 3px var(--color-brand-50, #f0f4ff);\n}\n\n/* ---- Variant: progress — the connector carries the visual weight\n (a continuous track), indicator shrinks to a small marker. ---- */\n.nx-stepwizard--progress .nx-stepwizard__indicator {\n inline-size: 12px;\n block-size: 12px;\n font-size: 0;\n border-width: var(--border-widthThick, 2px);\n --stepwizard-indicator-size: 12px;\n}\n.nx-stepwizard--progress.nx-stepwizard--horizontal .nx-stepwizard__connector {\n block-size: 3px;\n border-radius: var(--radius-full, 999px);\n}\n.nx-stepwizard--progress.nx-stepwizard--vertical .nx-stepwizard__connector {\n inline-size: 3px;\n border-radius: var(--radius-full, 999px);\n}\n\n/* `font-size: 0` above hides the plain step-number text node, but a\n checkmark (or a consumer's own `icon`) is sized in pixels via the\n svg-sizing rule, not em/font-size, so it wouldn't shrink with it —\n without this it was rendering bigger than the 10-12px dot/marker\n itself and overflowing. Both variants are meant to be a plain\n marker with no content, so hide whatever's inside outright. */\n.nx-stepwizard--dots .nx-stepwizard__indicator > *,\n.nx-stepwizard--progress .nx-stepwizard__indicator > * {\n display: none;\n}\n\n/* ---- Panel ---- */\n.nx-stepwizard__panel {\n color: var(--color-text, #111827);\n}\n.nx-stepwizard__panel:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n border-radius: var(--radius-sm, 6px);\n}\n\n/* ---- Nav (Back / Next / Finish) ---- */\n.nx-stepwizard__nav {\n display: flex;\n justify-content: space-between;\n gap: var(--spacing-sm, 8px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-stepwizard__step,\n .nx-stepwizard__indicator,\n .nx-stepwizard__connector {\n transition: none;\n }\n}","/* Category B: form input. Every value is a var(--token, fallback)\n from the active theme's generated custom properties — no literal\n colors, radii, or durations. */\n\n.nx-slider {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n min-inline-size: 10rem;\n box-sizing: border-box;\n padding-block: var(--spacing-sm, 8px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n touch-action: none; /* dragging a thumb shouldn't also scroll the page on touch devices */\n}\n\n.nx-slider__track {\n position: relative;\n inline-size: 100%;\n border-radius: var(--radius-full, 999px);\n background: var(--color-neutral-200, #e5e7eb);\n cursor: pointer;\n}\n\n.nx-slider--xs .nx-slider__track { block-size: 3px; }\n.nx-slider--sm .nx-slider__track { block-size: 4px; }\n.nx-slider--md .nx-slider__track { block-size: 5px; }\n.nx-slider--lg .nx-slider__track { block-size: 6px; }\n.nx-slider--xl .nx-slider__track { block-size: 8px; }\n\n/* Reserves room for .nx-slider__value-label above the track instead\n of letting it overflow into whatever sits above .nx-slider in\n .nx-field — which, when the slider has a `label`, is the label\n text itself (the reported \"Price range\" text sitting behind the\n \"$0\" bubble). 32px comfortably clears the tallest case: an xl\n thumb's radius (12px) + the bubble's 8px offset + the bubble's\n own ~14px content height, with a little headroom. */\n.nx-slider--with-value-label {\n margin-block-start: 32px;\n}\n\n.nx-slider__range {\n position: absolute;\n inset-block: 0;\n border-radius: inherit;\n background: var(--color-brand-500, #6366f1);\n /* Purely visual — without this, the filled portion of the track\n sits on top and silently swallows pointer events aimed at the\n track underneath it (handleTrackPointerDown's target check\n rejects anything that isn't the track element itself). Since a\n slider at any nonzero value has visible fill covering part of\n the track, that made clicking directly on the fill do nothing —\n only the empty remainder or the small thumb itself responded. */\n pointer-events: none;\n}\n\n.nx-slider__thumb {\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n border-radius: var(--radius-full, 999px);\n background: var(--color-surface, #ffffff);\n border: 2px solid var(--color-brand-500, #6366f1);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.12));\n cursor: grab;\n touch-action: none;\n outline: none;\n transition: box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-slider__thumb:active {\n cursor: grabbing;\n transform: translate(-50%, -50%) scale(1.08);\n}\n\n.nx-slider__thumb:focus-visible {\n box-shadow: 0 0 0 4px var(--color-brand-100, #e0e7ff);\n}\n\n.nx-slider--xs .nx-slider__thumb { inline-size: 12px; block-size: 12px; }\n.nx-slider--sm .nx-slider__thumb { inline-size: 14px; block-size: 14px; }\n.nx-slider--md .nx-slider__thumb { inline-size: 16px; block-size: 16px; }\n.nx-slider--lg .nx-slider__thumb { inline-size: 20px; block-size: 20px; }\n.nx-slider--xl .nx-slider__thumb { inline-size: 24px; block-size: 24px; }\n\n.nx-slider__value-label {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n padding: 2px 8px;\n border-radius: var(--radius-sm, 6px);\n background: var(--color-neutral-900, #111827);\n color: var(--color-neutral-0, #ffffff);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n white-space: nowrap;\n pointer-events: none;\n}\n\n.nx-slider--disabled {\n opacity: 0.5;\n}\n\n.nx-slider--disabled .nx-slider__track,\n.nx-slider--disabled .nx-slider__thumb {\n cursor: not-allowed;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-slider__thumb {\n transition: none;\n }\n}","/* ============================================================\n COMBOBOX — an editable text field + portalled listbox.\n\n Deliberately mirrors Select.css's shape (same field sizing ramp,\n same listbox surface as the Dropdown/Select popups) rather than\n re-deriving its own — the visual language should be identical\n since a Combobox is a Select someone can also type into, not a\n different kind of control.\n ============================================================ */\n\n.nx-combobox__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n max-inline-size: 20rem;\n}\n\n.nx-combobox__input {\n inline-size: 100%;\n box-sizing: border-box;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-neutral-900, #171717);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n /* room for the clear + chevron buttons, regardless of which is showing */\n padding-inline-end: 56px;\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-combobox__input:focus-visible,\n.nx-combobox__input--open {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-combobox__input--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-combobox__input--invalid:focus-visible,\n.nx-combobox__input--invalid.nx-combobox__input--open {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-combobox__input--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #fafafa);\n}\n\n.nx-combobox__input--xs { padding-block: 4px; padding-inline-start: 8px; min-block-size: 28px; font-size: var(--typography-sizeXs, 12px); }\n.nx-combobox__input--sm { padding-block: 5px; padding-inline-start: 10px; min-block-size: 32px; font-size: var(--typography-sizeSm, 14px); }\n.nx-combobox__input--md { padding-block: 8px; padding-inline-start: 12px; min-block-size: 38px; font-size: var(--typography-sizeMd, 16px); }\n.nx-combobox__input--lg { padding-block: 10px; padding-inline-start: 14px; min-block-size: 44px; font-size: var(--typography-sizeLg, 18px); }\n.nx-combobox__input--xl { padding-block: 12px; padding-inline-start: 16px; min-block-size: 52px; font-size: var(--typography-sizeXl, 20px); }\n\n.nx-combobox__clear,\n.nx-combobox__toggle {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 24px;\n block-size: 24px;\n padding: 0;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-neutral-500, #737373);\n cursor: pointer;\n}\n\n.nx-combobox__clear:hover,\n.nx-combobox__toggle:hover:not(:disabled) {\n background: var(--color-neutral-100, #f5f5f5);\n color: var(--color-neutral-700, #404040);\n}\n\n.nx-combobox__toggle:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.nx-combobox__clear {\n inset-inline-end: 32px;\n}\n.nx-combobox__clear-icon {\n inline-size: 0.9em;\n block-size: 0.9em;\n}\n\n.nx-combobox__toggle {\n inset-inline-end: 4px;\n}\n.nx-combobox__chevron {\n inline-size: 1em;\n block-size: 1em;\n transition: transform var(--motion-durationNormal, 180ms) var(--motion-easeStandard, ease);\n}\n.nx-combobox__input--open ~ .nx-combobox__toggle .nx-combobox__chevron {\n transform: rotate(180deg);\n}\n\n/* ---- listbox (portalled), same surface as Select's ---- */\n.nx-combobox__listbox {\n box-sizing: border-box;\n max-block-size: 16rem;\n overflow-y: auto;\n padding: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-200, #e5e5e5);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-lg, 0 10px 15px rgba(0, 0, 0, 0.1));\n z-index: var(--elevation-dropdown, 1050);\n animation: nx-combobox-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-combobox__listbox--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-combobox__listbox--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-combobox__listbox--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-combobox__listbox--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-combobox__listbox--xl { font-size: var(--typography-sizeXl, 20px); }\n\n.nx-combobox__option {\n padding: 6px 8px;\n border-radius: var(--radius-sm, 4px);\n color: var(--color-neutral-800, #262626);\n cursor: pointer;\n user-select: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.nx-combobox__option--active {\n background: var(--color-brand-50, #eef2ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n.nx-combobox__option--selected {\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-combobox__option--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-combobox__empty {\n padding: 10px 8px;\n color: var(--color-neutral-400, #a3a3a3);\n font-size: 0.9em;\n text-align: center;\n}\n\n@keyframes nx-combobox-in {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-combobox__listbox {\n animation-duration: 0.01ms;\n }\n .nx-combobox__chevron {\n transition: none;\n }\n}","/* ============================================================\r\n SEARCH BAR — an editable text field + an OPTIONAL portalled\r\n listbox (only rendered when `suggestions` was passed at all).\r\n\r\n Deliberately mirrors Combobox.css's field sizing ramp and\r\n listbox surface (see that file) rather than re-deriving one —\r\n same visual language, since this is the same kind of control\r\n with a leading search icon instead of a trailing chevron, and no\r\n \"open/close\" toggle button (there's nothing to manually\r\n open/close — the listbox just follows whether there's anything\r\n to show).\r\n ============================================================ */\r\n\r\n.nx-search-bar__wrapper {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n inline-size: 100%;\r\n max-inline-size: 20rem;\r\n}\r\n\r\n.nx-search-bar__icon {\r\n position: absolute;\r\n inset-inline-start: 10px;\r\n inline-size: 1em;\r\n block-size: 1em;\r\n color: var(--color-neutral-400, #a3a3a3);\r\n pointer-events: none;\r\n}\r\n\r\n.nx-search-bar__input {\r\n inline-size: 100%;\r\n box-sizing: border-box;\r\n font-family: var(--typography-fontSans, system-ui, sans-serif);\r\n color: var(--color-neutral-900, #171717);\r\n background: var(--color-neutral-0, #ffffff);\r\n border: 1px solid var(--color-neutral-300, #d4d4d4);\r\n border-radius: var(--radius-md, 8px);\r\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\r\n /* room for the leading search icon */\r\n padding-inline-start: 34px;\r\n /* room for the clear button, whether or not it's currently showing */\r\n padding-inline-end: 32px;\r\n transition:\r\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\r\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n\r\n.nx-search-bar__input:focus-visible,\r\n.nx-search-bar__input--open {\r\n outline: none;\r\n border-color: var(--color-brand-500, #6366f1);\r\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\r\n}\r\n\r\n.nx-search-bar__input--invalid {\r\n border-color: var(--color-danger-base, #dc2626);\r\n}\r\n.nx-search-bar__input--invalid:focus-visible,\r\n.nx-search-bar__input--invalid.nx-search-bar__input--open {\r\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\r\n}\r\n\r\n.nx-search-bar__input--disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n background: var(--color-neutral-50, #fafafa);\r\n}\r\n.nx-search-bar__input--disabled ~ .nx-search-bar__icon {\r\n opacity: 0.5;\r\n}\r\n\r\n.nx-search-bar__input--xs { padding-block: 4px; min-block-size: 28px; font-size: var(--typography-sizeXs, 12px); }\r\n.nx-search-bar__input--sm { padding-block: 5px; min-block-size: 32px; font-size: var(--typography-sizeSm, 14px); }\r\n.nx-search-bar__input--md { padding-block: 8px; min-block-size: 38px; font-size: var(--typography-sizeMd, 16px); }\r\n.nx-search-bar__input--lg { padding-block: 10px; min-block-size: 44px; font-size: var(--typography-sizeLg, 18px); }\r\n.nx-search-bar__input--xl { padding-block: 12px; min-block-size: 52px; font-size: var(--typography-sizeXl, 20px); }\r\n\r\n.nx-search-bar__clear {\r\n position: absolute;\r\n inset-inline-end: 4px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n inline-size: 24px;\r\n block-size: 24px;\r\n padding: 0;\r\n border: none;\r\n background: transparent;\r\n border-radius: var(--radius-full, 9999px);\r\n color: var(--color-neutral-500, #737373);\r\n cursor: pointer;\r\n}\r\n.nx-search-bar__clear:hover {\r\n background: var(--color-neutral-100, #f5f5f5);\r\n color: var(--color-neutral-700, #404040);\r\n}\r\n.nx-search-bar__clear-icon {\r\n inline-size: 0.9em;\r\n block-size: 0.9em;\r\n}\r\n\r\n/* ---- listbox (portalled), same surface as Combobox's/Select's ---- */\r\n.nx-search-bar__listbox {\r\n box-sizing: border-box;\r\n max-block-size: 16rem;\r\n overflow-y: auto;\r\n padding: var(--spacing-xs, 4px);\r\n font-family: var(--typography-fontSans, system-ui, sans-serif);\r\n background: var(--color-neutral-0, #ffffff);\r\n border: 1px solid var(--color-neutral-200, #e5e5e5);\r\n border-radius: var(--radius-md, 8px);\r\n box-shadow: var(--shadow-lg, 0 10px 15px rgba(0, 0, 0, 0.1));\r\n z-index: var(--elevation-dropdown, 1050);\r\n animation: nx-search-bar-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n\r\n.nx-search-bar__listbox--xs { font-size: var(--typography-sizeXs, 12px); }\r\n.nx-search-bar__listbox--sm { font-size: var(--typography-sizeSm, 14px); }\r\n.nx-search-bar__listbox--md { font-size: var(--typography-sizeMd, 16px); }\r\n.nx-search-bar__listbox--lg { font-size: var(--typography-sizeLg, 18px); }\r\n.nx-search-bar__listbox--xl { font-size: var(--typography-sizeXl, 20px); }\r\n\r\n.nx-search-bar__option {\r\n padding: 6px 8px;\r\n border-radius: var(--radius-sm, 4px);\r\n color: var(--color-neutral-800, #262626);\r\n cursor: pointer;\r\n user-select: none;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n}\r\n\r\n.nx-search-bar__option--active {\r\n background: var(--color-brand-50, #eef2ff);\r\n color: var(--color-brand-700, #4338ca);\r\n}\r\n\r\n.nx-search-bar__option--disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n}\r\n\r\n.nx-search-bar__empty {\r\n padding: 10px 8px;\r\n color: var(--color-neutral-400, #a3a3a3);\r\n font-size: 0.9em;\r\n text-align: center;\r\n}\r\n\r\n.nx-search-bar__loading {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 14px 8px;\r\n}\r\n\r\n@keyframes nx-search-bar-in {\r\n from { opacity: 0; transform: translateY(-4px); }\r\n to { opacity: 1; transform: translateY(0); }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .nx-search-bar__listbox {\r\n animation-duration: 0.01ms;\r\n }\r\n}","/* Standalone month-grid, also embedded inside DatePicker's Popover\n (DatePicker.css strips the surrounding PopoverContent's own\n border/shadow/background for that specific case — see\n .nx-datepicker__popover — so this surface is always the only one\n visible, standalone or embedded, never doubled up). */\n\n.nx-calendar {\n display: inline-flex;\n flex-direction: column;\n gap: 8px;\n box-sizing: border-box;\n padding: 12px;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e5e5);\n border-radius: var(--radius-lg, 14px);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08));\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #171717);\n user-select: none;\n}\n\n.nx-calendar__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.nx-calendar__month-label {\n font-weight: var(--typography-weightMedium, 500);\n font-size: var(--typography-sizeSm, 14px);\n text-align: center;\n flex: 1;\n}\n\n.nx-calendar__month-label--button {\n border: none;\n background: transparent;\n border-radius: var(--radius-sm, 6px);\n padding: 4px 8px;\n color: inherit;\n cursor: pointer;\n}\n\n.nx-calendar__month-label--button:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-calendar__month-label--button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-calendar__nav {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 28px;\n block-size: 28px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-text, #525252);\n cursor: pointer;\n}\n\n.nx-calendar__nav:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n color: var(--color-text, #171717);\n}\n\n.nx-calendar__nav:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-calendar__weekdays,\n.nx-calendar__grid {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n gap: 2px;\n}\n\n.nx-calendar__weekday {\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: 28px;\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-textMuted, #a3a3a3);\n}\n\n.nx-calendar__day {\n display: flex;\n align-items: center;\n justify-content: center;\n inline-size: 34px;\n block-size: 34px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-text, #262626);\n font-size: var(--typography-sizeSm, 14px);\n cursor: pointer;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-calendar__day:hover:not(:disabled) {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-calendar__day:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-calendar__day--outside {\n color: var(--color-textMuted, #d4d4d4);\n}\n\n.nx-calendar__day--today {\n font-weight: var(--typography-weightBold, 700);\n box-shadow: inset 0 0 0 1px var(--color-brand-300, #a5b4fc);\n}\n\n.nx-calendar__day--selected {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-calendar__day--selected:hover:not(:disabled) {\n background: var(--color-brand-600, #4f46e5);\n}\n\n.nx-calendar__day--disabled {\n color: var(--color-textMuted, #d4d4d4);\n cursor: not-allowed;\n}\n\n/* --- month/year \"zoom out\" grids --- */\n\n.nx-calendar__grid--months,\n.nx-calendar__grid--years {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 4px;\n min-inline-size: 220px;\n}\n\n.nx-calendar__cell {\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: 44px;\n border: none;\n background: transparent;\n border-radius: var(--radius-md, 10px);\n color: var(--color-text, #262626);\n font-size: var(--typography-sizeSm, 14px);\n cursor: pointer;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-calendar__cell:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-calendar__cell:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-calendar__cell--selected {\n background: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-calendar__cell--selected:hover {\n background: var(--color-brand-600, #4f46e5);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-calendar__day {\n transition: none;\n }\n}","/* Category C: overlay panel. Every value is a var(--token, fallback)\n from the active theme's generated custom properties. Rendered\n through ThemedPortal, which mirrors data-theme/data-accent onto\n the portal node, so these tokens resolve correctly even though\n the panel lives at the end of <body>. No literal colors, radii,\n durations, or shadows. */\n\n.nx-popover__content {\n /* Between Dropdown's menu (1050) and Tooltip (1100) — a popover\n can itself contain a dropdown or tooltip trigger, and those\n should still layer over it. */\n z-index: var(--elevation-popover, 1060);\n box-sizing: border-box;\n min-inline-size: 12rem;\n max-inline-size: min(24rem, calc(100vw - 16px));\n max-block-size: calc(100vh - 16px);\n overflow: auto;\n padding: var(--spacing-md, 16px);\n margin: 0;\n background: var(--color-surface, #ffffff);\n color: var(--color-text, #111827);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-lg, 12px);\n box-shadow: var(--shadow-lg, 0 10px 24px rgba(0, 0, 0, 0.18));\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n animation: nx-popover-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-popover__content:focus-visible {\n outline: none;\n}\n\n@keyframes nx-popover-in {\n from { opacity: 0; transform: translateY(-4px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-popover__content {\n animation-duration: 0.01ms;\n }\n}",".nx-datepicker__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n max-inline-size: 16rem;\n}\n\n.nx-datepicker__input {\n inline-size: 100%;\n box-sizing: border-box;\n padding: 8px 40px 8px 12px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeMd, 16px);\n color: var(--color-text, #171717);\n background: var(--color-surface, #ffffff);\n border: 1px solid var(--color-border, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-datepicker__input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-datepicker__input--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-datepicker__input--invalid:focus-visible {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-datepicker__input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-surface, #fafafa);\n}\n\n.nx-datepicker__icon-button {\n position: absolute;\n inset-inline-end: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 28px;\n block-size: 28px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-textMuted, #737373);\n cursor: pointer;\n}\n\n.nx-datepicker__icon-button:hover:not(:disabled) {\n background: var(--color-surfaceRaised, #f5f5f5);\n color: var(--color-text, #404040);\n}\n\n.nx-datepicker__icon-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-datepicker__icon-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.nx-datepicker__popover {\n /* Strips PopoverContent's own card chrome (border/shadow/\n background/padding) specifically for this composition — Calendar\n now provides its own full surface treatment (background, border,\n radius, shadow, glass-blur support), so this only needs to be a\n transparent, unstyled wrapper around it. Otherwise the calendar\n would render inside a visibly doubled \"card within a card\". */\n padding: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n}",".nx-timepicker__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n max-inline-size: 16rem;\n}\n\n.nx-timepicker__input {\n inline-size: 100%;\n box-sizing: border-box;\n padding: 8px 40px 8px 12px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeMd, 16px);\n color: var(--color-text, #171717);\n background: var(--color-surface, #ffffff);\n border: 1px solid var(--color-border, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-timepicker__input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-timepicker__input--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-timepicker__input--invalid:focus-visible {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-timepicker__input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-surface, #fafafa);\n}\n\n.nx-timepicker__icon-button {\n position: absolute;\n inset-inline-end: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 28px;\n block-size: 28px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-textMuted, #737373);\n cursor: pointer;\n}\n\n.nx-timepicker__icon-button:hover:not(:disabled) {\n background: var(--color-surfaceRaised, #f5f5f5);\n color: var(--color-text, #404040);\n}\n\n.nx-timepicker__icon-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-timepicker__icon-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.nx-timepicker__popover {\n /* Same reasoning as DatePicker.css's own .nx-datepicker__popover:\n strip PopoverContent's card chrome since .nx-timepicker__clock-panel\n provides its own full surface treatment, so the panel isn't a\n visibly doubled \"card within a card\". */\n padding: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n}\n\n/* --- the clock panel: dial + digital entry --- */\n\n.nx-timepicker__clock-panel {\n display: flex;\n flex-direction: column;\n gap: 12px;\n inline-size: 15.5rem;\n padding: 14px;\n background: var(--color-surfaceRaised, #ffffff);\n border: 1px solid var(--color-border, #e5e5e5);\n border-radius: var(--radius-lg, 12px);\n box-shadow: var(--shadow-lg, 0 10px 24px rgba(0, 0, 0, 0.12));\n}\n\n.nx-timepicker__panel-title {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-textMuted, #737373);\n}\n\n.nx-timepicker__readout {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n}\n\n.nx-timepicker__readout-segment {\n padding: 4px 10px;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: 28px;\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #404040);\n background: var(--color-surface, #f5f5f5);\n border: none;\n border-radius: var(--radius-sm, 4px);\n cursor: pointer;\n}\n\n.nx-timepicker__readout-segment:disabled {\n cursor: default;\n opacity: 0.85;\n}\n\n.nx-timepicker__readout-segment--active {\n color: var(--color-brand-onAccent, #ffffff);\n background: var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__readout-colon {\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: 28px;\n color: var(--color-textMuted, #a3a3a3);\n}\n\n.nx-timepicker__meridiem-group {\n display: flex;\n flex-direction: column;\n margin-inline-start: 8px;\n border: 1px solid var(--color-border, #e5e5e5);\n border-radius: var(--radius-sm, 4px);\n overflow: hidden;\n}\n\n.nx-timepicker__meridiem-button {\n padding: 4px 10px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #525252);\n background: var(--color-surface, #ffffff);\n border: none;\n cursor: pointer;\n}\n\n.nx-timepicker__meridiem-button:first-child {\n border-block-end: 1px solid var(--color-border, #e5e5e5);\n}\n\n.nx-timepicker__meridiem-button:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 2px var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__meridiem-button--active {\n color: var(--color-brand-onAccent, #ffffff);\n background: var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__dial-face {\n position: relative;\n inline-size: 220px;\n block-size: 220px;\n margin: 4px auto;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-surface, #f5f5f5);\n touch-action: none;\n user-select: none;\n}\n\n.nx-timepicker__dial-center {\n position: absolute;\n inset-inline-start: 50%;\n inset-block-start: 50%;\n inline-size: 6px;\n block-size: 6px;\n transform: translate(-50%, -50%);\n border-radius: var(--radius-full, 9999px);\n background: var(--color-brand-500, #6366f1);\n}\n\n/* Marks the exact selected point on the ring, independent of the 12\n labeled ticks — a dragged/arrow-keyed minute that lands between two\n labels (e.g. :17) has no label of its own, but still needs a\n visible marker for where it landed. */\n.nx-timepicker__dial-knob {\n position: absolute;\n inline-size: 32px;\n block-size: 32px;\n transform: translate(-50%, -50%);\n border-radius: var(--radius-full, 9999px);\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 18%, transparent);\n pointer-events: none;\n}\n\n.nx-timepicker__dial-hand {\n position: absolute;\n inset-inline-start: 50%;\n inset-block-start: 50%;\n inline-size: 2px;\n block-size: 42%;\n transform-origin: top center;\n /* translateX(-50%) + rotate() both come from dialHandStyle's own\n inline `transform`, computed together so rotation always pivots\n on the already-centered bar rather than relying on the separate\n `translate`/`transform` CSS properties' composition order. */\n background: var(--color-brand-500, #6366f1);\n pointer-events: none;\n}\n\n.nx-timepicker__dial-tick {\n position: absolute;\n inline-size: 32px;\n block-size: 32px;\n transform: translate(-50%, -50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-text, #404040);\n background: transparent;\n border: none;\n border-radius: var(--radius-full, 9999px);\n cursor: pointer;\n}\n\n.nx-timepicker__dial-tick:hover:not(:disabled) {\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 15%, transparent);\n}\n\n.nx-timepicker__dial-tick:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__dial-tick--selected {\n color: var(--color-brand-onAccent, #ffffff);\n background: var(--color-brand-500, #6366f1);\n}\n\n.nx-timepicker__dial-tick--disabled {\n color: var(--color-textMuted, #d4d4d4);\n cursor: not-allowed;\n}\n\n.nx-timepicker__digital-entry {\n display: flex;\n align-items: flex-end;\n justify-content: center;\n gap: 6px;\n padding: 8px 0 4px;\n}\n\n.nx-timepicker__digital-field {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n}\n\n.nx-timepicker__digital-input {\n inline-size: 56px;\n box-sizing: border-box;\n padding: 8px 0;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: 24px;\n text-align: center;\n color: var(--color-text, #171717);\n background: var(--color-surface, #f5f5f5);\n border: 1px solid var(--color-border, #e5e5e5);\n border-radius: var(--radius-sm, 4px);\n}\n\n.nx-timepicker__digital-input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-timepicker__digital-caption {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: 11px;\n color: var(--color-textMuted, #737373);\n}\n\n.nx-timepicker__digital-colon {\n padding-block-end: 22px;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: 24px;\n color: var(--color-textMuted, #a3a3a3);\n}\n\n.nx-timepicker__panel-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-block-start: 1px solid var(--color-border, #e5e5e5);\n padding-block-start: 10px;\n}\n\n.nx-timepicker__mode-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 32px;\n block-size: 32px;\n border: none;\n background: transparent;\n border-radius: var(--radius-full, 9999px);\n color: var(--color-text, #525252);\n cursor: pointer;\n}\n\n.nx-timepicker__mode-button:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-timepicker__mode-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-timepicker__panel-actions {\n display: flex;\n gap: 4px;\n}\n\n.nx-timepicker__text-button {\n padding: 6px 12px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #525252);\n background: transparent;\n border: none;\n border-radius: var(--radius-sm, 4px);\n cursor: pointer;\n}\n\n.nx-timepicker__text-button:hover {\n background: var(--color-surfaceRaised, #f5f5f5);\n}\n\n.nx-timepicker__text-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-timepicker__text-button--primary {\n color: var(--color-brand-600, #4f46e5);\n}\n\n.nx-timepicker__text-button:disabled {\n color: var(--color-textMuted, #d4d4d4);\n cursor: not-allowed;\n background: transparent;\n}",".nx-colorpicker__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n inline-size: 100%;\n max-inline-size: 12rem;\n}\n\n.nx-colorpicker__input {\n inline-size: 100%;\n box-sizing: border-box;\n padding: 8px 40px 8px 12px;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: var(--typography-sizeMd, 16px);\n color: var(--color-neutral-900, #171717);\n background: var(--color-neutral-0, #ffffff);\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.05));\n transition:\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-colorpicker__input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-colorpicker__input--invalid {\n border-color: var(--color-danger-base, #dc2626);\n}\n.nx-colorpicker__input--invalid:focus-visible {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #dc2626) 20%, transparent);\n}\n\n.nx-colorpicker__input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #fafafa);\n}\n\n.nx-colorpicker__swatch-button {\n position: absolute;\n inset-inline-end: 6px;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 26px;\n block-size: 26px;\n padding: 0;\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n background:\n linear-gradient(45deg, #ccc 25%, transparent 25%, transparent 75%, #ccc 75%) 0 0 / 8px 8px,\n linear-gradient(45deg, #ccc 25%, transparent 25%, transparent 75%, #ccc 75%) 4px 4px / 8px 8px;\n border-radius: var(--radius-sm, 4px);\n cursor: pointer;\n}\n\n.nx-colorpicker__swatch-preview {\n inline-size: 100%;\n block-size: 100%;\n border-radius: var(--radius-sm, 4px);\n border: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.nx-colorpicker__swatch-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-colorpicker__swatch-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.nx-colorpicker__popover {\n display: flex;\n flex-direction: column;\n gap: 10px;\n inline-size: 15.5rem;\n}\n\n.nx-colorpicker__swatch-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.nx-colorpicker__swatch-option {\n inline-size: 22px;\n block-size: 22px;\n border-radius: var(--radius-sm, 4px);\n border: 1px solid rgba(0, 0, 0, 0.1);\n cursor: pointer;\n}\n\n.nx-colorpicker__swatch-option--selected {\n box-shadow: 0 0 0 2px var(--color-neutral-0, #fff), 0 0 0 4px var(--color-brand-500, #6366f1);\n}\n\n.nx-colorpicker__swatch-option:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--color-neutral-0, #fff), 0 0 0 4px var(--color-brand-500, #6366f1);\n}\n\n/* --- custom color panel: SV area + hue slider + format fields --- */\n\n.nx-colorpicker__custom-panel {\n display: flex;\n flex-direction: column;\n gap: 10px;\n border-top: 1px solid var(--color-neutral-200, #e5e5e5);\n padding-top: 10px;\n}\n\n/* variant=\"custom\": this panel is the popover's only content, so the\n divider that normally separates it from the swatch grid above\n would just be an orphan line with nothing above it. */\n.nx-colorpicker__custom-panel--standalone {\n border-top: none;\n padding-top: 0;\n}\n\n.nx-colorpicker__sv-area {\n position: relative;\n inline-size: 100%;\n block-size: 120px;\n border-radius: var(--radius-md, 8px);\n /* backgroundColor (the pure hue) is set inline per-render; these two\n layers give the white->transparent (saturation) and\n black->transparent (value) gradients on top of it. */\n background-image: linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, transparent);\n cursor: crosshair;\n touch-action: none;\n border: 1px solid var(--color-neutral-200, #e5e5e5);\n}\n\n.nx-colorpicker__sv-thumb {\n position: absolute;\n inline-size: 14px;\n block-size: 14px;\n transform: translate(-50%, -50%);\n border-radius: var(--radius-full, 9999px);\n border: 2px solid #fff;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35), var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.25));\n cursor: grab;\n touch-action: none;\n}\n\n.nx-colorpicker__sv-thumb:active {\n cursor: grabbing;\n}\n\n.nx-colorpicker__sv-thumb:focus-visible {\n outline: none;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35), 0 0 0 3px var(--color-brand-500, #6366f1);\n}\n\n.nx-colorpicker__hue-slider {\n -webkit-appearance: none;\n appearance: none;\n inline-size: 100%;\n block-size: 12px;\n margin: 0;\n border-radius: var(--radius-full, 9999px);\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n cursor: pointer;\n}\n\n.nx-colorpicker__hue-slider:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-colorpicker__hue-slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n inline-size: 18px;\n block-size: 18px;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-neutral-0, #fff);\n border: 2px solid var(--color-neutral-400, #a3a3a3);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.25));\n cursor: grab;\n}\n\n.nx-colorpicker__hue-slider::-moz-range-thumb {\n inline-size: 18px;\n block-size: 18px;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-neutral-0, #fff);\n border: 2px solid var(--color-neutral-400, #a3a3a3);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.25));\n cursor: grab;\n}\n\n.nx-colorpicker__hue-slider::-moz-range-track {\n block-size: 12px;\n border-radius: var(--radius-full, 9999px);\n background: transparent;\n}\n\n.nx-colorpicker__format-tabs {\n display: flex;\n gap: 4px;\n border-bottom: 1px solid var(--color-neutral-200, #e5e5e5);\n}\n\n.nx-colorpicker__format-tab {\n flex: 1 1 auto;\n padding: 4px 0 6px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-neutral-500, #737373);\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n}\n\n.nx-colorpicker__format-tab--active {\n color: var(--color-brand-500, #6366f1);\n border-bottom-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-colorpicker__format-tab:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-colorpicker__format-tab:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand-500, #6366f1) 30%, transparent);\n}\n\n.nx-colorpicker__format-fields {\n display: flex;\n gap: 6px;\n}\n\n.nx-colorpicker__format-field {\n flex: 1 1 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.nx-colorpicker__format-field--wide {\n flex: 1 1 100%;\n}\n\n.nx-colorpicker__format-field label {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: 11px;\n color: var(--color-neutral-500, #737373);\n text-align: center;\n}\n\n.nx-colorpicker__format-field input {\n inline-size: 100%;\n box-sizing: border-box;\n padding: 4px 6px;\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n font-size: var(--typography-sizeXs, 12px);\n text-align: center;\n color: var(--color-neutral-900, #171717);\n background: var(--color-neutral-0, #fff);\n border: 1px solid var(--color-neutral-300, #d4d4d4);\n border-radius: var(--radius-sm, 4px);\n}\n\n.nx-colorpicker__format-field input:focus-visible {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-colorpicker__format-field input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}",".nx-carousel {\n position: relative;\n display: grid;\n grid-auto-rows: auto;\n gap: 10px;\n}\n\n/* `grid-row`/`grid-column` here isn't a layout preference — it's\n what makes the fix below work. A grid item with explicit (non-\n auto) placement on both axes becomes the containing block for any\n absolutely-positioned grid item placed in that same area (CSS\n Grid §10.1). Pinning the viewport to row 1 / column 1 gives\n CarouselPrevious/CarouselNext (placed in that same cell below) a\n containing block that's exactly the viewport's own box — not\n `.nx-carousel`'s full height including whatever else (indicators,\n anything else a consumer adds) sits below it. */\n.nx-carousel__viewport {\n position: relative;\n overflow: hidden;\n border-radius: var(--radius-lg, 12px);\n /* Same border + shadow tokens every other framed surface (Card,\n Input, Badge...) reads — without these the viewport stayed a\n bare, borderless rectangle on every theme, so brutalism/\n neobrutalism's signature thick black border and hard offset\n shadow, and cyberpunk's glow, only ever showed up on the nav\n buttons floating over the image, never on the image itself. */\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08));\n grid-row: 1;\n grid-column: 1;\n}\n\n.nx-carousel__viewport:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 30%, transparent);\n}\n\n.nx-carousel__track {\n display: flex;\n transition: transform var(--motion-durationSlow, 320ms) var(--motion-easeStandard, ease);\n will-change: transform;\n}\n\n.nx-carousel__track--vertical {\n flex-direction: column;\n}\n\n.nx-carousel__slide {\n flex: 0 0 100%;\n min-inline-size: 0;\n min-block-size: 0;\n}\n\n/* A slide's children are arbitrary (Rule: CarouselSlide takes\n `children`, no special-cased \"image\" prop) — an <img> or <video>\n dropped straight in otherwise renders at its own intrinsic pixel\n size, ignoring the slide entirely, which is what actually broke\n for image carousels. `block-size: 100%` here is a no-op (computes\n to `auto`) unless the consumer also gives CarouselViewport an\n explicit height — the standard pattern for a fixed-height image\n carousel (see the \"Images\" docs example) — so this is safe for\n auto-height content carousels too. */\n.nx-carousel__slide img,\n.nx-carousel__slide video {\n display: block;\n inline-size: 100%;\n block-size: 100%;\n object-fit: cover;\n}\n\n.nx-carousel__button {\n position: absolute;\n /* Same grid area as .nx-carousel__viewport (see the comment there)\n — this is what makes `top: 50%` mean \"middle of the viewport,\"\n regardless of whether CarouselPrevious/CarouselNext are rendered\n as flush siblings of the viewport or nested inside it, and\n regardless of what else (CarouselIndicators, a consumer's own\n wrapper) sits below in the carousel. */\n grid-row: 1;\n grid-column: 1;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 36px;\n block-size: 36px;\n /* Was a hardcoded 1px neutral-200 border regardless of theme —\n reading the same border-width + color-border tokens as the\n viewport (and Card/Button) so the button's frame is drawn from\n the same theme identity as everything it sits on top of. */\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e5e5);\n border-radius: var(--radius-full, 9999px);\n background: color-mix(in srgb, var(--color-neutral-0, #ffffff) 85%, transparent);\n color: var(--color-neutral-800, #262626);\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.1));\n cursor: pointer;\n}\n\n.nx-carousel__button--prev {\n inset-inline-start: 10px;\n}\n\n.nx-carousel__button--next {\n inset-inline-end: 10px;\n}\n\n.nx-carousel__button:hover:not(:disabled) {\n background: var(--color-neutral-0, #ffffff);\n}\n\n.nx-carousel__button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 30%, transparent);\n}\n\n.nx-carousel__button:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.nx-carousel__indicators {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.nx-carousel__indicator {\n inline-size: 8px;\n block-size: 8px;\n padding: 0;\n border: none;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-neutral-300, #d4d4d4);\n cursor: pointer;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease), transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-carousel__indicator:hover {\n background: var(--color-neutral-400, #a3a3a3);\n}\n\n.nx-carousel__indicator:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 30%, transparent);\n}\n\n.nx-carousel__indicator--active {\n background: var(--color-brand-500, #6366f1);\n transform: scale(1.25);\n}",".nx-timeline {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n inline-size: 100%;\n}\n\n/* --- vertical (default) --- */\n\n.nx-timeline--vertical {\n flex-direction: column;\n}\n\n.nx-timeline--vertical .nx-timeline__item {\n display: flex;\n gap: 16px;\n}\n\n.nx-timeline--vertical .nx-timeline__marker {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 0 0 auto;\n}\n\n.nx-timeline--vertical .nx-timeline__connector {\n flex: 1 1 auto;\n inline-size: 2px;\n min-block-size: 20px;\n margin-block: 4px;\n background: var(--color-border, #e5e5e5);\n}\n\n.nx-timeline--vertical .nx-timeline__item:last-child .nx-timeline__connector {\n display: none;\n}\n\n.nx-timeline--vertical .nx-timeline__content {\n padding-block-end: 20px;\n}\n\n/* alternate: even items flip to the other side of the line */\n.nx-timeline--align-alternate.nx-timeline--vertical .nx-timeline__item:nth-child(even) {\n flex-direction: row-reverse;\n text-align: end;\n}\n.nx-timeline--align-alternate.nx-timeline--vertical .nx-timeline__item:nth-child(even) .nx-timeline__header {\n flex-direction: row-reverse;\n}\n\n.nx-timeline--align-end.nx-timeline--vertical .nx-timeline__item {\n flex-direction: row-reverse;\n text-align: end;\n}\n.nx-timeline--align-end.nx-timeline--vertical .nx-timeline__header {\n flex-direction: row-reverse;\n}\n\n/* --- horizontal --- */\n\n.nx-timeline--horizontal {\n flex-direction: row;\n overflow-x: auto;\n}\n\n.nx-timeline--horizontal .nx-timeline__item {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1 0 10rem;\n}\n\n.nx-timeline--horizontal .nx-timeline__marker {\n display: flex;\n align-items: center;\n inline-size: 100%;\n}\n\n.nx-timeline--horizontal .nx-timeline__connector {\n flex: 1 1 auto;\n block-size: 2px;\n margin-inline: 4px;\n background: var(--color-border, #e5e5e5);\n}\n\n.nx-timeline--horizontal .nx-timeline__item:last-child .nx-timeline__connector {\n display: none;\n}\n\n.nx-timeline--horizontal .nx-timeline__content {\n text-align: center;\n padding-block-start: 10px;\n}\n\n/* --- marker / dot --- */\n\n.nx-timeline__dot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 12px;\n block-size: 12px;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-textMuted, #a3a3a3);\n border: 2px solid var(--color-background, #ffffff);\n box-shadow: 0 0 0 1px var(--color-border, #e5e5e5);\n flex: 0 0 auto;\n}\n\n.nx-timeline__dot--icon {\n inline-size: 22px;\n block-size: 22px;\n background: var(--color-surface, #ffffff);\n color: var(--color-text, #404040);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: 12px;\n line-height: 1;\n font-weight: var(--typography-weightMedium, 500);\n}\n\n/* Normalizes whatever the consumer's own icon renders at (an icon\n component's `size` prop defaults to 20px in this library, too big\n for a 22px dot with any breathing room) down to a size that\n actually fits — \"large for icon type automatically\" holds\n regardless of what the icon itself was told to render at. CSS\n width/height take precedence over an SVG's own width/height\n presentation attributes, so this applies even when the consumer\n passed an explicit size. */\n.nx-timeline__dot--icon svg,\n.nx-timeline__dot--icon img {\n inline-size: 14px;\n block-size: 14px;\n display: block;\n}\n\n.nx-timeline__dot--success {\n background: var(--color-success-base, #16a34a);\n}\n.nx-timeline__dot--warning {\n background: var(--color-warning-base, #d97706);\n}\n.nx-timeline__dot--danger {\n background: var(--color-danger-base, #dc2626);\n}\n.nx-timeline__dot--info {\n background: var(--color-brand-500, #6366f1);\n}\n\n/* --- content --- */\n\n.nx-timeline__header {\n display: flex;\n align-items: baseline;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.nx-timeline__title {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeMd, 16px);\n font-weight: var(--typography-weightSemibold, 600);\n color: var(--color-text, #171717);\n}\n\n.nx-timeline__timestamp {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n color: var(--color-textMuted, #737373);\n}\n\n.nx-timeline__description {\n margin-block-start: 4px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #525252);\n}","/* Category A: static display primitive. Every value is a\r\n var(--token, fallback) read from the active theme's generated\r\n custom properties, so switching data-theme restyles it with zero\r\n JS. No literal colors, radii, durations, or shadows — except the\r\n \"read\" status tick, which pulls from the semantic info-* registry\r\n (Rule 5b), never the accent.\r\n\r\n Borders and shadows on the bubble itself follow Button.css's own\r\n established pattern: solid/soft/outline read --color-border (not\r\n a hardcoded transparent) so neobrutalism's solid-black border\r\n token shows up here too, and get a shadow token so its hard\r\n offset shadow (e.g. \"4px 4px 0 #000\") renders — matching exactly\r\n which Button variants get a border/shadow and which don't (ghost\r\n gets neither, on bubbles same as on buttons). The neutral\r\n \"incoming message\" surface (surfaceRaised, used regardless of\r\n variant on the `start` side) also gets backdrop-filter, matching\r\n every other static, always-present surface panel in this library\r\n (Card, Input, Sidebar) — small floating overlays like Dropdown/\r\n Popover/Tooltip deliberately skip it, but a chat bubble sits\r\n inline in the page, not in a portal, so it follows Card's\r\n precedent instead. */\r\n\r\n.nx-chat-bubble {\r\n display: flex;\r\n align-items: flex-end;\r\n gap: var(--spacing-sm, 8px);\r\n font-family: var(--typography-fontSans, system-ui, sans-serif);\r\n max-inline-size: 100%;\r\n}\r\n\r\n.nx-chat-bubble--end {\r\n flex-direction: row-reverse;\r\n}\r\n\r\n.nx-chat-bubble__avatar {\r\n flex-shrink: 0;\r\n}\r\n\r\n/* Reserves the avatar's width even when this row has none (a\r\n consecutive message from the same sender) so bubbles from the\r\n same sender still align under one another instead of the bubble\r\n sliding over to fill the gap. */\r\n.nx-chat-bubble--no-avatar {\r\n padding-inline-start: 0;\r\n}\r\n\r\n.nx-chat-bubble__content {\r\n display: flex;\r\n flex-direction: column;\r\n max-inline-size: min(480px, 75%);\r\n}\r\n.nx-chat-bubble--end .nx-chat-bubble__content {\r\n align-items: flex-end;\r\n}\r\n\r\n.nx-chat-bubble__name {\r\n font-size: var(--typography-sizeXs, 12px);\r\n font-weight: var(--typography-weightMedium, 500);\r\n color: var(--color-textMuted, #6b7280);\r\n margin-bottom: var(--spacing-xs, 4px);\r\n padding-inline: var(--spacing-sm, 8px);\r\n}\r\n\r\n.nx-chat-bubble__bubble {\r\n position: relative;\r\n padding: var(--spacing-sm, 8px) var(--spacing-md, 16px);\r\n border-radius: var(--radius-lg, 12px);\r\n line-height: var(--typography-lineHeightNormal, 1.5);\r\n font-size: var(--typography-sizeMd, 16px);\r\n word-break: break-word;\r\n white-space: pre-wrap;\r\n}\r\n\r\n/* ---- Variants — same vocabulary as Button/Badge (Rule 1) ---- */\r\n.nx-chat-bubble__bubble--solid,\r\n.nx-chat-bubble__bubble--soft {\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\r\n}\r\n.nx-chat-bubble__bubble--solid,\r\n.nx-chat-bubble__bubble--soft,\r\n.nx-chat-bubble__bubble--outline {\r\n box-shadow: var(--shadow-sm, none);\r\n}\r\n\r\n.nx-chat-bubble__bubble--solid {\r\n background: var(--color-brand-500, #6366f1);\r\n color: var(--color-brand-onAccent, #ffffff);\r\n}\r\n.nx-chat-bubble--start .nx-chat-bubble__bubble--solid {\r\n /* An incoming message rendered in flat neutral surface, not the\r\n accent — the accent fill is reserved for the reader's own\r\n messages (align=\"end\") so the two sides stay visually distinct\r\n regardless of which variant is picked. */\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n color: var(--color-text, #111827);\r\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\r\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\r\n}\r\n\r\n.nx-chat-bubble__bubble--soft {\r\n background: var(--color-brand-50, #f0f4ff);\r\n color: var(--color-brand-700, #4338ca);\r\n}\r\n.nx-chat-bubble--start .nx-chat-bubble__bubble--soft {\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n color: var(--color-text, #111827);\r\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\r\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\r\n}\r\n\r\n.nx-chat-bubble__bubble--outline {\r\n background: transparent;\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n color: var(--color-text, #111827);\r\n}\r\n\r\n.nx-chat-bubble__bubble--ghost {\r\n background: transparent;\r\n color: var(--color-text, #111827);\r\n}\r\n\r\n/* ---- Tail —————————————————————————————————————————————————\r\n A small pointer on the corner nearest the avatar, drawn with a\r\n clipped pseudo-element so it inherits the bubble's own background\r\n color exactly (no separate color to keep in sync, and it\r\n automatically follows a custom bubbleColor too — see ChatBubble.tsx).\r\n\r\n Two things make this gap-free where a naive version isn't:\r\n\r\n 1. The corner the tail actually touches gets its OWN, smaller\r\n border-radius (4px, vs. the bubble's usual --radius-lg) —\r\n leaving it at the full bubble radius means the corner curves\r\n away right where the tail's straight edge needs to meet it,\r\n which is exactly the visible notch/gap a screenshot review\r\n caught in an earlier version of this file.\r\n 2. The pseudo-element doesn't start flush at the bubble's own\r\n edge (inset: 0) — it's shifted so roughly 4px of it sits\r\n INSIDE the bubble, overlapping that flattened corner by the\r\n same amount the corner's own radius is. Since the tail shares\r\n the bubble's exact background (`background: inherit`), that\r\n overlap is invisible — it just guarantees there's no sub-pixel\r\n seam at the boundary, regardless of zoom level or how the\r\n corner's curve rasterizes.\r\n\r\n Kept as a 4-point clip-path (not a plain right-triangle) so the\r\n outward point is slightly curved-looking rather than a hard,\r\n blocky wedge — closer to the rounded tail most chat UIs use,\r\n without needing an SVG asset. */\r\n.nx-chat-bubble__bubble--tail-end {\r\n border-end-end-radius: 4px;\r\n}\r\n.nx-chat-bubble__bubble--tail-start {\r\n border-end-start-radius: 4px;\r\n}\r\n\r\n.nx-chat-bubble__bubble--tail-start::before,\r\n.nx-chat-bubble__bubble--tail-end::before {\r\n content: \"\";\r\n position: absolute;\r\n bottom: 0;\r\n inline-size: 12px;\r\n block-size: 16px;\r\n background: inherit;\r\n /* Shadow/border live on the bubble itself, not this pseudo-element\r\n — duplicating them here would double up right where the two\r\n shapes overlap. */\r\n}\r\n.nx-chat-bubble__bubble--tail-end::before {\r\n inset-inline-end: -8px; /* box spans bubble-right -4px .. bubble-right +8px: a 4px overlap into the bubble, matching the 4px flattened corner above */\r\n clip-path: polygon(0 0, 100% 55%, 65% 100%, 0 100%);\r\n}\r\n.nx-chat-bubble__bubble--tail-start::before {\r\n inset-inline-start: -8px;\r\n clip-path: polygon(100% 0, 0 55%, 35% 100%, 100% 100%);\r\n}\r\n\r\n.nx-chat-bubble__meta {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--spacing-xs, 4px);\r\n margin-top: var(--spacing-xs, 4px);\r\n padding-inline: var(--spacing-sm, 8px);\r\n font-size: var(--typography-sizeXs, 12px);\r\n color: var(--color-textMuted, #6b7280);\r\n}\r\n\r\n.nx-chat-bubble__status {\r\n display: inline-flex;\r\n align-items: center;\r\n color: var(--color-textMuted, #6b7280);\r\n}\r\n/* \"Read\" is the one semantically meaningful state (message seen) —\r\n colored from the info registry, never the accent (Rule 5b), so it\r\n reads the same regardless of which brand color is active. */\r\n.nx-chat-bubble__status[data-status=\"read\"] {\r\n color: var(--color-info-base, #3b82f6);\r\n}\r\n\r\n/* ---- Reactions ---- */\r\n.nx-chat-bubble__reactions {\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n gap: var(--spacing-xs, 4px);\r\n margin-top: var(--spacing-xs, 4px);\r\n padding-inline: var(--spacing-sm, 8px);\r\n}\r\n\r\n.nx-chat-bubble__reaction {\r\n appearance: none;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 4px;\r\n padding: 2px 8px;\r\n border-radius: var(--radius-full, 9999px);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n color: var(--color-text, #111827);\r\n font-size: var(--typography-sizeXs, 12px);\r\n line-height: 1;\r\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\r\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-chat-bubble__reaction:hover {\r\n background: var(--color-brand-50, #f0f4ff);\r\n}\r\n.nx-chat-bubble__reaction--active {\r\n background: var(--color-brand-50, #f0f4ff);\r\n border-color: var(--color-brand-500, #6366f1);\r\n color: var(--color-brand-700, #4338ca);\r\n}\r\n.nx-chat-bubble__reaction:focus-visible {\r\n outline: 2px solid var(--color-brand-500, #6366f1);\r\n outline-offset: 2px;\r\n}\r\n\r\n.nx-chat-bubble__add-reaction {\r\n appearance: none;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n inline-size: 24px;\r\n block-size: 24px;\r\n border-radius: var(--radius-full, 9999px);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\r\n background: transparent;\r\n color: var(--color-textMuted, #6b7280);\r\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\r\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-chat-bubble__add-reaction:hover {\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n color: var(--color-text, #111827);\r\n}\r\n.nx-chat-bubble__add-reaction:focus-visible {\r\n outline: 2px solid var(--color-brand-500, #6366f1);\r\n outline-offset: 2px;\r\n}\r\n\r\n.nx-chat-bubble__reaction-picker {\r\n display: grid;\r\n grid-template-columns: repeat(6, 1fr);\r\n gap: 4px;\r\n padding: 4px;\r\n}\r\n.nx-chat-bubble__reaction-option {\r\n appearance: none;\r\n cursor: pointer;\r\n border: none;\r\n background: transparent;\r\n border-radius: var(--radius-sm, 6px);\r\n font-size: var(--typography-sizeLg, 18px);\r\n line-height: 1;\r\n padding: 6px;\r\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-chat-bubble__reaction-option:hover,\r\n.nx-chat-bubble__reaction-option:focus-visible {\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n outline: none;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .nx-chat-bubble__reaction,\r\n .nx-chat-bubble__add-reaction,\r\n .nx-chat-bubble__reaction-option {\r\n transition: none;\r\n }\r\n}","/* Every value is a var(--token, fallback) read from the active\r\n theme's generated custom properties, so switching data-theme\r\n restyles it with zero JS. No literal colors, radii, durations —\r\n including the handle's own thickness below, which reads\r\n --border-widthThin instead of a literal 1px specifically so bolder\r\n themes (e.g. neobrutalism, which sets it to 2px) get a visibly\r\n thicker, more legible divider rather than the same hairline width\r\n everywhere regardless of theme. */\r\n\r\n.nx-resizable-group {\r\n display: flex;\r\n inline-size: 100%;\r\n block-size: 100%;\r\n overflow: hidden;\r\n /* Missing on every earlier version of this file — every other\r\n component in this library sets its own color/font-family on its\r\n root rather than leaving text to inherit whatever the\r\n surrounding page happens to have, and this one didn't, which is\r\n exactly why panel content rendered in a faint, barely-visible\r\n color inherited from an unrelated ancestor instead of the\r\n theme's own text color. */\r\n color: var(--color-text, #111827);\r\n font-family: var(--typography-fontSans, system-ui, sans-serif);\r\n}\r\n.nx-resizable-group--horizontal {\r\n flex-direction: row;\r\n}\r\n.nx-resizable-group--vertical {\r\n flex-direction: column;\r\n}\r\n\r\n.nx-resizable-panel {\r\n min-inline-size: 0;\r\n min-block-size: 0;\r\n overflow: auto;\r\n}\r\n\r\n/* ---- Handle ---- */\r\n.nx-resizable-handle {\r\n position: relative;\r\n flex: 0 0 auto;\r\n background: var(--color-border, #e5e7eb);\r\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n\r\n.nx-resizable-handle--horizontal {\r\n inline-size: var(--border-widthThin, 1px);\r\n cursor: col-resize;\r\n touch-action: none;\r\n}\r\n.nx-resizable-handle--vertical {\r\n block-size: var(--border-widthThin, 1px);\r\n cursor: row-resize;\r\n touch-action: none;\r\n}\r\n\r\n/* An invisible hit-target wider than the visible 1px line — the\r\n same \"generous hit area around a thin visual element\" reasoning\r\n Slider's thumb and Divider's own affordances use elsewhere in\r\n this library. */\r\n.nx-resizable-handle--horizontal::before {\r\n content: \"\";\r\n position: absolute;\r\n inset-block: 0;\r\n inset-inline-start: -4px;\r\n inset-inline-end: -4px;\r\n}\r\n.nx-resizable-handle--vertical::before {\r\n content: \"\";\r\n position: absolute;\r\n inset-inline: 0;\r\n inset-block-start: -4px;\r\n inset-block-end: -4px;\r\n}\r\n\r\n.nx-resizable-handle:hover:not(.nx-resizable-handle--disabled),\r\n.nx-resizable-handle--dragging {\r\n background: var(--color-brand-500, #6366f1);\r\n}\r\n\r\n.nx-resizable-handle:focus-visible {\r\n outline: 2px solid var(--color-brand-500, #6366f1);\r\n outline-offset: 2px;\r\n}\r\n\r\n.nx-resizable-handle--disabled {\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .nx-resizable-handle {\r\n transition: none;\r\n }\r\n}","/* Category E: persistent navigation. Every value is a\r\n var(--token, fallback) read from the active theme's generated\r\n custom properties, so switching data-theme restyles it with zero\r\n JS. No literal colors, radii, durations, or shadows.\r\n\r\n The root panel gets a resting box-shadow for the same reason\r\n Input (`--shadow-xs`) and ChatBubble (`--shadow-sm`) do on their\r\n own persistent, non-floating surfaces — a shadow token isn't\r\n reserved for floating/portalled overlays, it's how neobrutalism's\r\n hard offset shadow, cyberpunk's glow, glass's blur, etc. actually\r\n render at all. Without it, a shadow-driven theme has no way to\r\n show its identity here beyond the single-pixel edge border, which\r\n is what made the sidebar look nearly identical across themes.\r\n Combined with backdrop-filter like every other static,\r\n always-present surface (Card, Input, ChatBubble's incoming-message\r\n surface). The toggle and nav items stay border-less like Button's\r\n own ghost variant (invisible chrome until hovered is the whole\r\n point of that variant, independent of theme) — only the selected\r\n nav item's soft brand fill picks up a shadow, matching Button's\r\n soft variant getting one too. */\r\n\r\n.nx-sidebar {\r\n display: flex;\r\n flex-direction: column;\r\n inline-size: 240px;\r\n block-size: 100%;\r\n background: var(--color-surface, #ffffff);\r\n border-inline-end: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n box-shadow: var(--shadow-sm, none);\r\n /* --shadow-sm is an ambient shadow meant for a box that's floating\r\n on all four sides (a Card, a Toast) — it has both a vertical and\r\n a horizontal offset/blur. A sidebar is flush with its container's\r\n full block-size, top and bottom, so there's nothing up there for\r\n a shadow to fall onto; left unclipped, every theme's shadow shows\r\n a visible (and, for the harder-edged themes, a fairly odd-looking)\r\n band poking out above and below the rail. Clipping to the box's\r\n own top/bottom edges while leaving extra room past the\r\n border-inline-end edge turns the same token into a one-sided\r\n \"elevation toward the content\" shadow instead — every theme's\r\n shadow shape (neobrutalism's flat offset, cyberpunk's glow,\r\n glass's blur, ...) still renders, just only where a persistent\r\n edge panel actually makes sense for it to.\r\n Physical left/right here, not inline-start/inline-end — clip-path's\r\n inset() has no logical-property form — so the :dir(rtl) rule\r\n below exists to keep this mirrored the same way border-inline-end\r\n mirrors itself automatically. 32px comfortably clears the largest\r\n blur any current theme's shadow-sm uses (20px, gradient); bump it\r\n if a future theme's shadow ever gets softer than that. */\r\n clip-path: inset(0 -32px 0 0);\r\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\r\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\r\n font-family: var(--typography-fontSans, system-ui, sans-serif);\r\n color: var(--color-text, #111827);\r\n transition: inline-size var(--motion-durationNormal, 200ms) var(--motion-easeStandard, ease);\r\n box-sizing: border-box;\r\n overflow-x: hidden;\r\n}\r\n\r\n/* Mirrors the clip so the shadow keeps bleeding out of whichever\r\n edge border-inline-end actually rendered on — border-inline-end is\r\n the left edge in RTL, so the shadow needs to bleed left there too. */\r\n.nx-sidebar:dir(rtl) {\r\n clip-path: inset(0 0 0 -32px);\r\n}\r\n\r\n.nx-sidebar--sm {\r\n inline-size: 200px;\r\n}\r\n.nx-sidebar--sm .nx-sidebar__nav-item {\r\n font-size: var(--typography-sizeXs, 12px);\r\n padding: 6px 8px;\r\n}\r\n.nx-sidebar--sm .nx-sidebar__nav-item-icon {\r\n inline-size: 16px;\r\n block-size: 16px;\r\n}\r\n\r\n.nx-sidebar--lg {\r\n inline-size: 280px;\r\n}\r\n.nx-sidebar--lg .nx-sidebar__nav-item {\r\n font-size: var(--typography-sizeMd, 16px);\r\n padding: 10px 12px;\r\n}\r\n.nx-sidebar--lg .nx-sidebar__nav-item-icon {\r\n inline-size: 24px;\r\n block-size: 24px;\r\n}\r\n\r\n/* Collapsed width always wins over the size scale — an icon-only\r\n rail is a fixed narrow width regardless of sm/md/lg, same as the\r\n base (unsized) rule below. */\r\n.nx-sidebar--collapsed {\r\n inline-size: 64px;\r\n}\r\n\r\n/* ---- Header / Footer ---- */\r\n.nx-sidebar__header,\r\n.nx-sidebar__footer {\r\n display: flex;\r\n align-items: center;\r\n padding: var(--spacing-md, 16px);\r\n flex-shrink: 0;\r\n}\r\n.nx-sidebar__header {\r\n border-block-end: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n}\r\n.nx-sidebar__footer {\r\n border-block-start: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n margin-block-start: auto;\r\n}\r\n\r\n/* ---- Toggle ---- */\r\n.nx-sidebar__toggle {\r\n appearance: none;\r\n background: transparent;\r\n border: none;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n inline-size: 32px;\r\n block-size: 32px;\r\n border-radius: var(--radius-md, 8px);\r\n color: var(--color-textMuted, #6b7280);\r\n flex-shrink: 0;\r\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-sidebar__toggle:hover {\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n color: var(--color-text, #111827);\r\n}\r\n.nx-sidebar__toggle:focus-visible {\r\n outline: 2px solid var(--color-brand-500, #6366f1);\r\n outline-offset: 2px;\r\n}\r\n\r\n/* ---- Nav / Section ---- */\r\n.nx-sidebar__nav {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--spacing-xs, 4px);\r\n padding: var(--spacing-sm, 8px);\r\n overflow-y: auto;\r\n flex: 1;\r\n}\r\n\r\n.nx-sidebar__section {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--spacing-xs, 4px);\r\n}\r\n.nx-sidebar__section + .nx-sidebar__section {\r\n margin-block-start: var(--spacing-md, 16px);\r\n}\r\n\r\n.nx-sidebar__section-label {\r\n padding: var(--spacing-xs, 4px) var(--spacing-sm, 8px);\r\n font-size: var(--typography-sizeXs, 12px);\r\n font-weight: var(--typography-weightMedium, 500);\r\n color: var(--color-textMuted, #6b7280);\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n white-space: nowrap;\r\n}\r\n/* Hidden, not removed — stays in the accessible tree for a screen\r\n reader even when the rail is too narrow to show it visually. */\r\n.nx-sidebar__section-label--hidden {\r\n position: absolute;\r\n inline-size: 1px;\r\n block-size: 1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n}\r\n\r\n/* ---- Nav item ---- */\r\n.nx-sidebar__nav-item {\r\n appearance: none;\r\n background: transparent;\r\n border: none;\r\n margin: 0;\r\n cursor: pointer;\r\n text-decoration: none;\r\n font-family: inherit;\r\n font-size: var(--typography-sizeSm, 14px);\r\n font-weight: var(--typography-weightMedium, 500);\r\n line-height: var(--typography-lineHeightTight, 1.2);\r\n color: var(--color-textMuted, #6b7280);\r\n display: flex;\r\n align-items: center;\r\n gap: var(--spacing-sm, 8px);\r\n padding: 8px 10px;\r\n border-radius: var(--radius-md, 8px);\r\n white-space: nowrap;\r\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\r\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n\r\n.nx-sidebar__nav-item:hover:not(.nx-sidebar__nav-item--disabled) {\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n color: var(--color-text, #111827);\r\n}\r\n\r\n.nx-sidebar__nav-item--selected {\r\n background: var(--color-brand-50, #f0f4ff);\r\n color: var(--color-brand-700, #4338ca);\r\n box-shadow: var(--shadow-sm, none);\r\n}\r\n.nx-sidebar__nav-item--selected:hover {\r\n background: var(--color-brand-50, #f0f4ff);\r\n}\r\n\r\n.nx-sidebar__nav-item:focus-visible {\r\n outline: 2px solid var(--color-brand-500, #6366f1);\r\n outline-offset: -2px;\r\n}\r\n\r\n.nx-sidebar__nav-item--disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n}\r\n\r\n.nx-sidebar__nav-item-icon {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n inline-size: 20px;\r\n block-size: 20px;\r\n}\r\n\r\n.nx-sidebar__nav-item-label {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n\r\n/* Collapsed: center the icon, hide the label visually (it stays in\r\n the DOM as the item's accessible name — see Sidebar.tsx), and let\r\n Tooltip (composed in collapsed mode) carry the label on hover. */\r\n.nx-sidebar__nav-item--collapsed {\r\n justify-content: center;\r\n padding-inline: 0;\r\n}\r\n.nx-sidebar--collapsed .nx-sidebar__nav-item-label {\r\n position: absolute;\r\n inline-size: 1px;\r\n block-size: 1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n}\r\n\r\n/* ---- Nav group (nested items) ---- */\r\n.nx-sidebar__group {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n/* Navigable mode: the header <a>/<button> and the chevron <button>\r\n are SIBLINGS side by side — never nested (a button inside a button\r\n or link is invalid HTML and breaks SSR hydration). Pure-toggle mode\r\n has no second control, so it skips this row wrapper entirely. */\r\n.nx-sidebar__group-header-row {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--spacing-xs, 4px);\r\n}\r\n.nx-sidebar__group-header-row > .nx-sidebar__nav-item--group {\r\n flex: 1;\r\n min-inline-size: 0;\r\n}\r\n\r\n/* The header is a nav item (getGroupHeaderClasses composes the same\r\n base classes); in pure-toggle mode the chevron renders directly as\r\n its last child, pushed to the end via auto margin. */\r\n.nx-sidebar__nav-item--group {\r\n justify-content: flex-start;\r\n}\r\n\r\n.nx-sidebar__group-chevron {\r\n flex-shrink: 0;\r\n margin-inline-start: auto;\r\n transition: transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-sidebar__group-chevron--open {\r\n transform: rotate(90deg);\r\n}\r\n/* Inside the standalone toggle button (navigable mode) there's\r\n nothing else in the row to push away from. */\r\n.nx-sidebar__group-toggle .nx-sidebar__group-chevron {\r\n margin-inline-start: 0;\r\n}\r\n\r\n.nx-sidebar__group-toggle {\r\n appearance: none;\r\n background: transparent;\r\n border: none;\r\n margin: 0;\r\n padding: 2px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n color: inherit;\r\n cursor: pointer;\r\n border-radius: var(--radius-sm, 6px);\r\n}\r\n.nx-sidebar__group-toggle:hover {\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n}\r\n.nx-sidebar__group-toggle:focus-visible {\r\n outline: 2px solid var(--color-brand-500, #6366f1);\r\n outline-offset: 1px;\r\n}\r\n.nx-sidebar__group-toggle:disabled {\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n}\r\n\r\n.nx-sidebar__group-children {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--spacing-xs, 4px);\r\n padding-inline-start: var(--spacing-lg, 24px);\r\n margin-block-start: var(--spacing-xs, 4px);\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .nx-sidebar,\r\n .nx-sidebar__toggle,\r\n .nx-sidebar__nav-item,\r\n .nx-sidebar__group-chevron {\r\n transition: none;\r\n }\r\n}","/* Category C: overlay-adjacent trigger + floating action list. Every\r\n value is a var(--token, fallback) from the active theme's generated\r\n custom properties, so switching data-theme restyles it with zero JS.\r\n The list is rendered through ThemedPortal, which mirrors\r\n data-theme/data-accent onto the portal node, so these tokens\r\n resolve to the right theme even though it lives at the end of\r\n <body>. No literal colors, radii, durations, or shadows.\r\n\r\n Borders and shadows specifically follow Button.css's own established\r\n pattern (see that file's comments): every filled/bordered control\r\n reads --color-border (not a hardcoded transparent) so a theme like\r\n neobrutalism, which sets color.border to solid black, automatically\r\n gets that signature bold outline on these controls too — and gets\r\n its hard, unblurred offset shadow (shadow.md = \"4px 4px 0 #000\",\r\n etc.) applied everywhere Button's own solid/soft/outline variants\r\n get one, not just its resting box-shadow. Skipped on transparent/\r\n ghost-like surfaces for the same reason Button's own ghost variant\r\n skips both. */\r\n\r\n.nx-speed-dial {\r\n display: inline-flex;\r\n}\r\n\r\n/* ---- FAB trigger ---- */\r\n.nx-speed-dial__fab {\r\n appearance: none;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: var(--radius-full, 9999px);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\r\n background: var(--color-brand-500, #6366f1);\r\n color: var(--color-brand-onAccent, #ffffff);\r\n box-shadow: var(--shadow-lg, 0 10px 24px rgba(0, 0, 0, 0.18));\r\n transition: transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\r\n background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\r\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-speed-dial__fab:hover {\r\n background: var(--color-brand-600, #4f46e5);\r\n}\r\n/* A translate-based press-in (like Button's) would fight the open\r\n state's own rotate(45deg) transform below — both can't cleanly\r\n share one `transform` property at once — so the tactile feedback\r\n here is shadow-only: still gives neobrutalism's hard-shadow\r\n controls a \"pressing in\" moment without the conflict. */\r\n.nx-speed-dial__fab:active {\r\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.12));\r\n}\r\n.nx-speed-dial__fab:focus-visible {\r\n outline: 2px solid var(--color-brand-700, #4338ca);\r\n outline-offset: 2px;\r\n}\r\n/* The closed-state icon (typically a plus) rotates into an \"×\" purely\r\n with CSS — no separate open-state icon prop needed. */\r\n.nx-speed-dial__fab--open {\r\n transform: rotate(45deg);\r\n}\r\n\r\n.nx-speed-dial__fab--xs { inline-size: 32px; block-size: 32px; }\r\n.nx-speed-dial__fab--sm { inline-size: 40px; block-size: 40px; }\r\n.nx-speed-dial__fab--md { inline-size: 56px; block-size: 56px; }\r\n.nx-speed-dial__fab--lg { inline-size: 68px; block-size: 68px; }\r\n.nx-speed-dial__fab--xl { inline-size: 80px; block-size: 80px; }\r\n\r\n/* ---- Action list ---- */\r\n.nx-speed-dial__list {\r\n /* Same tier as Dropdown's own open menu (1050) — this is the same\r\n kind of thing (an open Category C popup), just shaped as a\r\n stack of circles instead of a boxed list. */\r\n z-index: var(--elevation-dropdown, 1050);\r\n display: flex;\r\n gap: var(--spacing-md, 16px);\r\n padding: 0;\r\n margin: 0;\r\n animation: nx-speed-dial-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-speed-dial__list--vertical {\r\n flex-direction: column;\r\n align-items: center;\r\n}\r\n.nx-speed-dial__list--horizontal {\r\n flex-direction: row;\r\n align-items: center;\r\n}\r\n\r\n@keyframes nx-speed-dial-in {\r\n from { opacity: 0; transform: scale(0.9); }\r\n to { opacity: 1; transform: scale(1); }\r\n}\r\n\r\n.nx-speed-dial__action-wrapper {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n}\r\n/* Vertical list (top/bottom placement): label sits to the left of\r\n the action, matching the common bottom-right-corner FAB\r\n convention. Horizontal list (left/right placement): label sits\r\n above, since there's no natural side left. */\r\n.nx-speed-dial__list--vertical .nx-speed-dial__action-wrapper {\r\n flex-direction: row-reverse;\r\n justify-content: flex-end;\r\n}\r\n.nx-speed-dial__list--horizontal .nx-speed-dial__action-wrapper {\r\n flex-direction: column-reverse;\r\n}\r\n\r\n.nx-speed-dial__action {\r\n appearance: none;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: var(--radius-full, 9999px);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\r\n background: var(--color-surface, #ffffff);\r\n color: var(--color-text, #111827);\r\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.12));\r\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\r\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\r\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-speed-dial__action:hover:not(.nx-speed-dial__action--disabled),\r\n.nx-speed-dial__action:focus-visible {\r\n background: var(--color-brand-50, #f0f4ff);\r\n color: var(--color-brand-700, #4338ca);\r\n}\r\n.nx-speed-dial__action:active:not(.nx-speed-dial__action--disabled) {\r\n box-shadow: var(--shadow-xs, 0 1px 3px rgba(0, 0, 0, 0.1));\r\n transform: translate(1px, 1px);\r\n}\r\n.nx-speed-dial__action:focus-visible {\r\n outline: 2px solid var(--color-brand-500, #6366f1);\r\n outline-offset: 2px;\r\n}\r\n.nx-speed-dial__action--disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n}\r\n\r\n.nx-speed-dial__action--xs { inline-size: 26px; block-size: 26px; }\r\n.nx-speed-dial__action--sm { inline-size: 32px; block-size: 32px; }\r\n.nx-speed-dial__action--md { inline-size: 40px; block-size: 40px; }\r\n.nx-speed-dial__action--lg { inline-size: 48px; block-size: 48px; }\r\n.nx-speed-dial__action--xl { inline-size: 56px; block-size: 56px; }\r\n\r\n/* Always visible while the dial is open — not hover-only. A\r\n hover-reveal label is invisible on any touch device (there's no\r\n hover event there at all), which would leave a touchscreen user\r\n looking at a stack of bare, unlabeled icons with no way to learn\r\n what any of them do before tapping one. Plain CSS, not a composed\r\n Tooltip: this list already renders inside one portal with its own\r\n floating position; giving each action its own independent floating\r\n Tooltip would multiply that positioning work per item for a label\r\n that only ever needs to sit in one fixed spot next to its own\r\n button. */\r\n.nx-speed-dial__action-label {\r\n white-space: nowrap;\r\n padding: 4px 10px;\r\n border-radius: var(--radius-sm, 6px);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n color: var(--color-text, #111827);\r\n font-family: var(--typography-fontSans, system-ui, sans-serif);\r\n font-size: var(--typography-sizeSm, 14px);\r\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.1));\r\n}\r\n.nx-speed-dial__list--vertical .nx-speed-dial__action-label {\r\n margin-inline-end: var(--spacing-sm, 8px);\r\n}\r\n.nx-speed-dial__list--horizontal .nx-speed-dial__action-label {\r\n margin-block-end: var(--spacing-sm, 8px);\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .nx-speed-dial__fab,\r\n .nx-speed-dial__list,\r\n .nx-speed-dial__action {\r\n transition: none;\r\n animation-duration: 0.01ms;\r\n }\r\n}","/* Mirrors Modal.css's backdrop/panel shape (same z-index tier,\n same entrance-animation convention) since this genuinely is a\n modal dialog, just shaped like a search box + list. Item styling\n mirrors the shared .nx-list-item look from ListPanel.css (used by\n Dropdown/Select) for visual consistency across every \"list of\n things to pick\" surface in the library, even though this file\n defines its own classes rather than importing that one — the\n backdrop-anchored top alignment here doesn't share ListPanel's\n floating-popover positioning concerns. */\n\n.nx-command__backdrop {\n position: fixed;\n inset: 0;\n z-index: var(--elevation-modal, 1000);\n display: flex;\n justify-content: center;\n padding-top: 12vh;\n padding-inline: var(--spacing-lg, 24px);\n background: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(2px);\n animation: nx-command-backdrop-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-command-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.nx-command {\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n max-inline-size: 640px;\n max-block-size: min(480px, 70vh);\n background: var(--color-neutral-0, #ffffff);\n border-radius: var(--radius-lg, 14px);\n box-shadow: var(--shadow-xl, 0 20px 40px rgba(0, 0, 0, 0.25));\n border: 1px solid var(--color-neutral-200, #e5e5e5);\n overflow: hidden;\n outline: none;\n animation: nx-command-panel-in var(--motion-durationNormal, 180ms) var(--motion-easeEmphasized, ease);\n}\n\n@keyframes nx-command-panel-in {\n from { opacity: 0; transform: translateY(-8px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n.nx-command__search {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 16px;\n border-bottom: 1px solid var(--color-neutral-200, #e5e5e5);\n flex-shrink: 0;\n}\n\n.nx-command__search-icon {\n flex-shrink: 0;\n color: var(--color-neutral-400, #a3a3a3);\n}\n\n.nx-command__input {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeMd, 16px);\n color: var(--color-neutral-900, #171717);\n}\n\n.nx-command__input::placeholder {\n color: var(--color-neutral-400, #a3a3a3);\n}\n\n.nx-command__list {\n overflow-y: auto;\n padding: 8px;\n}\n\n.nx-command__group + .nx-command__group {\n margin-top: 4px;\n}\n\n.nx-command__group-label {\n padding: 6px 8px 4px;\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-neutral-400, #a3a3a3);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.nx-command__item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 9px 10px;\n border-radius: var(--radius-sm, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-neutral-800, #262626);\n cursor: pointer;\n}\n\n.nx-command__item--active {\n background: var(--color-brand-50, #eef2ff);\n color: var(--color-brand-700, #4338ca);\n}\n\n.nx-command__item--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-command__item-label {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.nx-command__item-description {\n color: var(--color-neutral-400, #a3a3a3);\n font-size: 0.9em;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.nx-command__item-shortcut {\n flex-shrink: 0;\n padding: 2px 6px;\n border-radius: var(--radius-sm, 4px);\n background: var(--color-neutral-100, #f5f5f5);\n color: var(--color-neutral-500, #737373);\n font-size: var(--typography-sizeXs, 12px);\n font-family: var(--typography-fontMono, ui-monospace, monospace);\n}\n\n.nx-command__item--active .nx-command__item-shortcut {\n background: var(--color-neutral-0, #ffffff);\n}\n\n.nx-command__empty {\n padding: 24px 8px;\n text-align: center;\n color: var(--color-neutral-400, #a3a3a3);\n font-size: var(--typography-sizeSm, 14px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-command__backdrop,\n .nx-command {\n animation-duration: 0.01ms;\n }\n}",".nx-number-input-wrapper {\n display: flex;\n align-items: stretch;\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, none);\n overflow: hidden;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-number-input-wrapper:focus-within {\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-number-input-wrapper--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n.nx-number-input-wrapper--invalid:focus-within {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #ef4444) 20%, transparent);\n}\n\n.nx-number-input-wrapper--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n}\n\n.nx-number-input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n padding: 8px 12px;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n}\n\n.nx-number-input:disabled {\n cursor: not-allowed;\n}\n\n.nx-number-input-wrapper--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-number-input-wrapper--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-number-input-wrapper--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-number-input-wrapper--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-number-input-wrapper--xl { font-size: var(--typography-sizeXl, 22px); }\n\n.nx-number-input--xs, .nx-number-input--sm, .nx-number-input--md, .nx-number-input--lg, .nx-number-input--xl {\n font-size: inherit;\n}\n\n.nx-number-input__stepper {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n border-left: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n.nx-number-input__stepper-btn {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 1.75em;\n border: none;\n background: transparent;\n color: var(--color-textMuted, #6b7280);\n font-family: inherit;\n font-size: inherit;\n line-height: 1;\n cursor: pointer;\n padding: 0 8px;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-number-input__stepper-btn:first-child {\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n.nx-number-input__stepper-btn:not(:disabled):hover {\n background: var(--color-neutral-100, #f3f4f6);\n color: var(--color-text, #111827);\n}\n\n.nx-number-input__stepper-btn:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n",".nx-file-upload {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-sm, 8px);\n inline-size: 100%;\n box-sizing: border-box;\n padding: var(--spacing-lg, 24px);\n border: var(--border-widthMedium, 2px) dashed var(--color-border, #e5e7eb);\n border-radius: var(--radius-lg, 12px);\n background: var(--color-surface, #ffffff);\n text-align: center;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-file-upload--dragging {\n border-color: var(--color-brand-500, #6366f1);\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 6%, var(--color-surface, #ffffff));\n}\n\n.nx-file-upload--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n\n.nx-file-upload--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-file-upload--xs, .nx-file-upload--sm { padding: var(--spacing-md, 16px); }\n.nx-file-upload--lg, .nx-file-upload--xl { padding: var(--spacing-xl, 32px); }\n\n/* Visually hidden, not display:none — a hidden-by-display input\n can't receive drag/drop focus semantics or be reached by a form\n library that queries for it. Same visually-hidden technique used\n for other \"real control, styled invisible\" cases across the web\n platform. */\n.nx-file-upload__input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.nx-file-upload__prompt {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n}\n\n.nx-file-upload__hint {\n margin: 0;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-file-upload__list {\n list-style: none;\n margin: var(--spacing-sm, 8px) 0 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 4px);\n}\n\n.nx-file-upload__item {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n padding: 6px 10px;\n border-radius: var(--radius-sm, 4px);\n background: var(--color-neutral-50, #f9fafb);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n}\n\n.nx-file-upload__item-name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--color-text, #111827);\n}\n\n.nx-file-upload__item-size {\n flex-shrink: 0;\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeXs, 12px);\n}\n\n.nx-file-upload__item-remove {\n flex-shrink: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--color-textMuted, #6b7280);\n font-size: var(--typography-sizeMd, 16px);\n line-height: 1;\n padding: 0 4px;\n}\n\n.nx-file-upload__item-remove:hover {\n color: var(--color-danger-base, #ef4444);\n}\n\n.nx-file-upload__item-remove:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n",".nx-pagination {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-pagination__list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--spacing-xs, 4px);\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.nx-pagination__item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 2.25em;\n height: 2.25em;\n padding: 0 8px;\n /* Reads the theme's own border color (not a hardcoded transparent)\n the same way Button.css does — for most themes color.border is a\n barely-there gray, but for neobrutalism/brutalism/cyberpunk this\n is the difference between every page button looking like plain\n text and actually carrying that theme's signature bold/neon\n border. See Button.css's own comment for the full reasoning. */\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n border-radius: var(--radius-md, 8px);\n background: transparent;\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n box-shadow: var(--shadow-xs, none);\n color: var(--color-text, #111827);\n font-family: inherit;\n font-size: inherit;\n cursor: pointer;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-pagination__item:not(:disabled):not(.nx-pagination__item--active):hover {\n background: var(--color-neutral-100, #f3f4f6);\n}\n\n/* Same press-in convention as Button.css: an imperceptible no-op on\n flat/shadowless themes, but on neobrutalism specifically it reads\n as the button physically pressing into its own hard offset shadow. */\n.nx-pagination__item:not(:disabled):active {\n box-shadow: none;\n transform: translate(1px, 1px);\n}\n\n.nx-pagination__item--active {\n background: var(--color-brand-500, #6366f1);\n border-color: var(--color-brand-500, #6366f1);\n color: var(--color-brand-onAccent, #ffffff);\n box-shadow: var(--shadow-sm, none);\n}\n\n.nx-pagination__item:disabled,\n.nx-pagination__item--disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.nx-pagination__ellipsis {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 2.25em;\n height: 2.25em;\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-pagination--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-pagination--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-pagination--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-pagination--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-pagination--xl { font-size: var(--typography-sizeXl, 22px); }\n\n.nx-pagination--disabled {\n opacity: 0.6;\n}\n",".nx-breadcrumb {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n.nx-breadcrumb__list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.nx-breadcrumb__item {\n display: inline-flex;\n align-items: center;\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-breadcrumb__item--current {\n color: var(--color-text, #111827);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-breadcrumb__item--disabled {\n opacity: 0.5;\n}\n\n.nx-breadcrumb__label,\n.nx-breadcrumb__link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: var(--radius-sm, 4px);\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\n transition: background var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-breadcrumb__link {\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n}\n\n.nx-breadcrumb__link:hover {\n color: var(--color-brand-500, #6366f1);\n background: var(--color-neutral-100, #f3f4f6);\n border-color: var(--color-border, transparent);\n}\n\n.nx-breadcrumb__link:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n/* The trail's current item reads as a small themed surface — the\n same border/shadow/radius fingerprint every other bordered element\n in the library uses (see Card--filled, Badge--soft) — rather than\n plain text, which is what left this the one component with nothing\n for a theme's border/shadow tokens to actually attach to. */\n.nx-breadcrumb__item--current .nx-breadcrumb__label {\n background: var(--color-surfaceRaised, #f3f4f6);\n border-color: var(--color-border, transparent);\n box-shadow: var(--shadow-xs, none);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n}\n\n.nx-breadcrumb__icon {\n display: inline-flex;\n align-items: center;\n}\n\n.nx-breadcrumb__separator {\n margin: 0 8px;\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-breadcrumb--xs { font-size: var(--typography-sizeXs, 12px); }\n.nx-breadcrumb--sm { font-size: var(--typography-sizeSm, 14px); }\n.nx-breadcrumb--md { font-size: var(--typography-sizeMd, 16px); }\n.nx-breadcrumb--lg { font-size: var(--typography-sizeLg, 18px); }\n.nx-breadcrumb--xl { font-size: var(--typography-sizeXl, 22px); }\n",".nx-skeleton {\n display: block;\n background: color-mix(in srgb, var(--color-text, #111827) 12%, var(--color-surface, #ffffff));\n position: relative;\n overflow: hidden;\n}\n\n.nx-skeleton--text {\n border-radius: var(--radius-sm, 4px);\n block-size: 1em;\n inline-size: 100%;\n}\n\n.nx-skeleton--circular {\n border-radius: var(--radius-full, 999px);\n inline-size: 40px;\n block-size: 40px;\n}\n\n.nx-skeleton--rectangular {\n border-radius: var(--radius-md, 8px);\n inline-size: 100%;\n block-size: 100px;\n}\n\n.nx-skeleton-group {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 4px);\n}\n\n.nx-skeleton--pulse {\n animation: nx-skeleton-pulse var(--motion-durationSlow, 1.5s) var(--motion-easeStandard, ease) infinite;\n}\n\n@keyframes nx-skeleton-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n}\n\n.nx-skeleton--wave::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: linear-gradient(\n 90deg,\n transparent,\n color-mix(in srgb, var(--color-surface, #ffffff) 50%, transparent),\n transparent\n );\n animation: nx-skeleton-wave var(--motion-durationSlow, 1.5s) linear infinite;\n}\n\n@keyframes nx-skeleton-wave {\n 0% { transform: translateX(-100%); }\n 100% { transform: translateX(100%); }\n}\n\n/* Shine — a diagonal glossy sweep baked into the element's own\n background and animated via background-position, distinct from\n \"wave\"'s horizontal ::after overlay: this one is a single\n continuous gradient moving through the shape at an angle, not a\n separate translating layer. */\n.nx-skeleton--shine {\n background: linear-gradient(\n 110deg,\n color-mix(in srgb, var(--color-text, #111827) 12%, var(--color-surface, #ffffff)) 35%,\n color-mix(in srgb, var(--color-surface, #ffffff) 65%, var(--color-text, #111827) 12%) 50%,\n color-mix(in srgb, var(--color-text, #111827) 12%, var(--color-surface, #ffffff)) 65%\n );\n background-size: 300% 100%;\n animation: nx-skeleton-shine var(--motion-durationSlow, 1.5s) ease-in-out infinite;\n}\n\n@keyframes nx-skeleton-shine {\n 0% { background-position: 150% 0; }\n 100% { background-position: -50% 0; }\n}\n\n/* Glow — a pulsing ambient halo around the shape's own edge, using\n the active brand accent; distinct from \"pulse\" (the shape itself\n never dims here, only the shadow around it breathes). */\n.nx-skeleton--glow {\n animation: nx-skeleton-glow var(--motion-durationSlow, 1.5s) var(--motion-easeStandard, ease) infinite;\n}\n\n@keyframes nx-skeleton-glow {\n 0%, 100% {\n box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-brand-500, #6366f1) 35%, transparent);\n }\n 50% {\n box-shadow: 0 0 12px 4px color-mix(in srgb, var(--color-brand-500, #6366f1) 35%, transparent);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-skeleton--pulse,\n .nx-skeleton--wave::after,\n .nx-skeleton--shine,\n .nx-skeleton--glow {\n animation: none;\n }\n}","/* Category F: complex/stateful. Every value is a var(--token,\n fallback) from the active theme, same discipline as every other\n component — no literal colors, radii, or durations. */\n\n.nx-table-wrapper {\n width: 100%;\n overflow: auto;\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n background: var(--color-surface, #ffffff);\n box-shadow: var(--shadow-sm, none);\n}\n\n.nx-table {\n width: 100%;\n border-collapse: collapse;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n color: var(--color-text, #111827);\n}\n\n.nx-table__caption {\n caption-side: top;\n text-align: left;\n padding: var(--spacing-sm, 8px) var(--spacing-md, 16px);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-table__caption--sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* ---- Header ---- */\n.nx-table__header {\n background: var(--color-surfaceRaised, #f9fafb);\n}\n\n.nx-table--sticky-header .nx-table__header {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.nx-table__head-cell {\n text-align: left;\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-textMuted, #6b7280);\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n white-space: nowrap;\n}\n\n.nx-table__head-cell-content {\n display: inline-flex;\n align-items: center;\n gap: 0.35em;\n}\n\n.nx-table__head-cell--sortable {\n cursor: pointer;\n user-select: none;\n outline: none;\n}\n.nx-table__head-cell--sortable:hover {\n color: var(--color-text, #111827);\n}\n.nx-table__head-cell--sortable:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: -2px;\n}\n\n.nx-table__sort-icon {\n display: inline-flex;\n flex-direction: column;\n width: 10px;\n height: 12px;\n}\n.nx-table__sort-arrow-up,\n.nx-table__sort-arrow-down {\n opacity: 0.25;\n}\n.nx-table__sort-icon[data-direction=\"asc\"] .nx-table__sort-arrow-up { opacity: 1; }\n.nx-table__sort-icon[data-direction=\"desc\"] .nx-table__sort-arrow-down { opacity: 1; }\n\n/* ---- Body / rows / cells ---- */\n.nx-table__body .nx-table__row {\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-table__body .nx-table__row:last-child {\n border-bottom: none;\n}\n\n.nx-table--striped .nx-table__body .nx-table__row:nth-child(even) {\n background: var(--color-surfaceRaised, #f9fafb);\n}\n\n.nx-table__row--clickable {\n cursor: pointer;\n}\n.nx-table__row--clickable:hover {\n background: var(--color-neutral-100, #f3f4f6);\n}\n\n.nx-table__row--selected {\n background: var(--color-brand-50, #eef2ff);\n}\n.nx-table__row--selected.nx-table__row--clickable:hover {\n background: var(--color-brand-50, #eef2ff);\n}\n\n.nx-table__cell {\n vertical-align: middle;\n}\n\n.nx-table__empty-cell {\n text-align: center;\n padding: var(--spacing-xl, 32px) var(--spacing-md, 16px);\n color: var(--color-textMuted, #6b7280);\n}\n\n/* A Checkbox composed inside a table cell (Rule 12 — see Table's\n docs page) shouldn't carry its normal field spacing/label gap;\n this scopes the reset to table cells only, leaving standalone\n Checkbox usage everywhere else untouched. */\n.nx-table__cell .nx-field,\n.nx-table__head-cell .nx-field {\n display: inline-flex;\n}\n\n/* ---- Bordered variant ---- */\n.nx-table--bordered .nx-table__head-cell,\n.nx-table--bordered .nx-table__cell {\n border-right: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n.nx-table--bordered .nx-table__head-cell:last-child,\n.nx-table--bordered .nx-table__cell:last-child {\n border-right: none;\n}\n\n/* ---- Sizes: cell padding + font-size, from the shared scale ---- */\n.nx-table--xs .nx-table__head-cell, .nx-table--xs .nx-table__cell { padding: 6px 10px; font-size: var(--typography-sizeXs, 12px); }\n.nx-table--sm .nx-table__head-cell, .nx-table--sm .nx-table__cell { padding: 8px 12px; font-size: var(--typography-sizeSm, 14px); }\n.nx-table--md .nx-table__head-cell, .nx-table--md .nx-table__cell { padding: 10px 16px; font-size: var(--typography-sizeSm, 14px); }\n.nx-table--lg .nx-table__head-cell, .nx-table--lg .nx-table__cell { padding: 12px 18px; font-size: var(--typography-sizeMd, 16px); }\n.nx-table--xl .nx-table__head-cell, .nx-table--xl .nx-table__cell { padding: 14px 20px; font-size: var(--typography-sizeLg, 18px); }\n\n@media (prefers-reduced-motion: reduce) {\n .nx-table__row {\n transition: none;\n }\n}","/* Category F: complex/stateful. Every value is a var(--token,\n fallback) from the active theme — no literal colors, radii, or\n durations, same discipline as every other component. */\n\n.nx-kanban {\n position: relative;\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-md, 16px);\n overflow-x: auto;\n padding-block-end: var(--spacing-sm, 8px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n}\n\n/* ---- Visually-hidden utility (instructions text + live region) ---- */\n.nx-kanban__sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* ---- Column ---- */\n.nx-kanban__column {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n width: var(--kanban-column-width, 280px);\n max-height: inherit;\n background: var(--color-surfaceRaised, #f9fafb);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-lg, 14px);\n /* Same elevation token Card uses for its default surface, so a\n column reads as a surface on every theme rather than only the\n cards inside it doing so — on neobrutalism/brutalism, where\n --shadow-* is a hard offset block rather than a soft blur, a\n column with no shadow at all looked unfinished next to its own\n cards, which were getting the offset. */\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08));\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-kanban__column--drop-target {\n border-color: var(--color-brand-500, #6366f1);\n /* The highlight ring is layered ON TOP of the base elevation rather\n than replacing it — dropping the second shadow here would make a\n column visibly flatten the moment you dragged a card over it. */\n box-shadow: 0 0 0 2px var(--color-brand-100, #e0e7ff), var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08));\n}\n\n.nx-kanban__column--dragging {\n opacity: 0.5;\n}\n\n.nx-kanban__column-drop-indicator {\n align-self: stretch;\n width: 3px;\n min-height: 80px;\n flex-shrink: 0;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-brand-500, #6366f1);\n}\n\n.nx-kanban__column-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-sm, 8px);\n padding: var(--spacing-sm, 8px) var(--spacing-md, 16px);\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n cursor: grab;\n outline: none;\n}\n\n.nx-kanban__column-heading {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.nx-kanban__column-header-end {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs, 4px);\n flex-shrink: 0;\n}\n\n.nx-kanban__column-description {\n font-size: var(--typography-sizeXs, 12px);\n color: var(--color-textMuted, #6b7280);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.nx-kanban__column-header:focus-visible,\n.nx-kanban__column-header--picked-up {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: -2px;\n border-radius: var(--radius-lg, 14px) var(--radius-lg, 14px) 0 0;\n}\n\n.nx-kanban--compact .nx-kanban__column-header {\n padding: var(--spacing-xs, 4px) var(--spacing-sm, 8px);\n}\n\n.nx-kanban__column-title {\n font-weight: var(--typography-weightMedium, 500);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-text, #111827);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.nx-kanban__column-count {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n line-height: var(--typography-lineHeightTight, 1.2);\n font-size: var(--typography-sizeXs, 12px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-textMuted, #6b7280);\n background: var(--color-neutral-100, #f3f4f6);\n border-radius: var(--radius-full, 9999px);\n padding: 2px var(--spacing-sm, 8px);\n}\n\n.nx-kanban__column-count--over-limit {\n color: var(--color-danger-deeper, #7f1d1d);\n background: var(--color-danger-light, #fee2e2);\n}\n\n.nx-kanban__column-body {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm, 8px);\n padding: var(--spacing-md, 16px);\n overflow-y: auto;\n min-height: 60px;\n flex: 1;\n}\n\n.nx-kanban--compact .nx-kanban__column-body {\n gap: var(--spacing-xs, 4px);\n padding: var(--spacing-sm, 8px);\n}\n\n.nx-kanban__column-footer {\n padding: var(--spacing-sm, 8px) var(--spacing-md, 16px);\n border-top: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n}\n\n.nx-kanban__empty-state {\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n text-align: center;\n padding: var(--spacing-md, 16px) var(--spacing-sm, 8px);\n}\n\n.nx-kanban__drop-indicator {\n height: 3px;\n border-radius: var(--radius-full, 9999px);\n background: var(--color-brand-500, #6366f1);\n flex-shrink: 0;\n}\n\n/* ---- Card ---- */\n.nx-kanban__card {\n cursor: grab;\n outline: none;\n border-radius: var(--radius-lg, 14px);\n}\n\n.nx-kanban__card:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-kanban__card-chrome {\n cursor: inherit;\n}\n\n.nx-kanban__card--picked-up {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n.nx-kanban__card--picked-up .nx-kanban__card-chrome {\n box-shadow: var(--shadow-lg, 0 8px 20px rgba(0, 0, 0, 0.12));\n}\n\n.nx-kanban__card--dragging {\n display: none;\n}\n\n.nx-kanban__card--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* ---- Drag ghost (portaled) ---- */\n.nx-kanban__ghost {\n z-index: 1300;\n pointer-events: none;\n cursor: grabbing;\n}\n.nx-kanban__ghost .nx-card {\n box-shadow: var(--shadow-lg, 0 12px 28px rgba(0, 0, 0, 0.18));\n opacity: 0.95;\n transform: rotate(-1.5deg);\n}\n\n.nx-kanban__column-ghost {\n z-index: 1300;\n pointer-events: none;\n cursor: grabbing;\n}\n.nx-kanban__column-ghost .nx-card {\n box-shadow: var(--shadow-lg, 0 12px 28px rgba(0, 0, 0, 0.18));\n opacity: 0.95;\n font-weight: var(--typography-weightMedium, 500);\n font-size: var(--typography-sizeSm, 14px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-kanban__column {\n transition: none;\n }\n}","/* Category C overlay. Every value is a var(--token, fallback) from\n the active theme, same as Modal.css — the panel itself positions\n with `position: fixed` and a side-specific inset/transform rather\n than relying on the backdrop's own layout (no `:has()` dependency,\n which keeps this working the same way in every supported browser). */\n\n.nx-drawer-backdrop {\n position: fixed;\n inset: 0;\n z-index: var(--elevation-modal, 1000);\n background: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(2px);\n animation: nx-drawer-backdrop-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-drawer-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.nx-drawer {\n position: fixed;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n background: var(--color-surface, #ffffff);\n box-shadow: var(--shadow-xl, 0 20px 40px rgba(0, 0, 0, 0.2));\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n outline: none; /* focus lands here programmatically */\n animation-duration: var(--motion-durationNormal, 220ms);\n animation-timing-function: var(--motion-easeEmphasized, ease);\n animation-fill-mode: both;\n}\n\n/* ---- Side anchoring + slide-in direction ---- */\n.nx-drawer--left,\n.nx-drawer--right {\n top: 0;\n bottom: 0;\n max-width: calc(100vw - var(--spacing-lg, 24px));\n}\n.nx-drawer--left {\n left: 0;\n border-right: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n animation-name: nx-drawer-slide-left-in;\n}\n.nx-drawer--right {\n right: 0;\n border-left: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n animation-name: nx-drawer-slide-right-in;\n}\n\n.nx-drawer--top,\n.nx-drawer--bottom {\n left: 0;\n right: 0;\n max-height: calc(100vh - var(--spacing-lg, 24px));\n}\n.nx-drawer--top {\n top: 0;\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n animation-name: nx-drawer-slide-top-in;\n}\n.nx-drawer--bottom {\n bottom: 0;\n border-top: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n animation-name: nx-drawer-slide-bottom-in;\n}\n\n@keyframes nx-drawer-slide-left-in {\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n}\n@keyframes nx-drawer-slide-right-in {\n from { transform: translateX(100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n}\n@keyframes nx-drawer-slide-top-in {\n from { transform: translateY(-100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes nx-drawer-slide-bottom-in {\n from { transform: translateY(100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n\n/* ---- Sizes: left/right control width, top/bottom control height,\n \"size\" always means \"how far the panel extends from its edge\" ---- */\n.nx-drawer--left.nx-drawer--xs, .nx-drawer--right.nx-drawer--xs { width: 280px; }\n.nx-drawer--left.nx-drawer--sm, .nx-drawer--right.nx-drawer--sm { width: 360px; }\n.nx-drawer--left.nx-drawer--md, .nx-drawer--right.nx-drawer--md { width: 420px; }\n.nx-drawer--left.nx-drawer--lg, .nx-drawer--right.nx-drawer--lg { width: 520px; }\n.nx-drawer--left.nx-drawer--xl, .nx-drawer--right.nx-drawer--xl { width: 640px; }\n.nx-drawer--left.nx-drawer--full, .nx-drawer--right.nx-drawer--full { width: 100vw; max-width: none; }\n\n.nx-drawer--top.nx-drawer--xs, .nx-drawer--bottom.nx-drawer--xs { height: 200px; }\n.nx-drawer--top.nx-drawer--sm, .nx-drawer--bottom.nx-drawer--sm { height: 280px; }\n.nx-drawer--top.nx-drawer--md, .nx-drawer--bottom.nx-drawer--md { height: 360px; }\n.nx-drawer--top.nx-drawer--lg, .nx-drawer--bottom.nx-drawer--lg { height: 460px; }\n.nx-drawer--top.nx-drawer--xl, .nx-drawer--bottom.nx-drawer--xl { height: 560px; }\n.nx-drawer--top.nx-drawer--full, .nx-drawer--bottom.nx-drawer--full { height: 100vh; max-height: none; }\n\n/* ---- Header / body / footer — same structure as Modal's ---- */\n.nx-drawer__header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-md, 16px);\n padding: var(--spacing-lg, 24px) var(--spacing-lg, 24px) 0;\n flex-shrink: 0;\n}\n\n.nx-drawer__title {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeLg, 18px);\n font-weight: var(--typography-weightBold, 700);\n color: var(--color-text, #111827);\n}\n\n.nx-drawer__close {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: var(--color-textMuted, #6b7280);\n cursor: pointer;\n border-radius: var(--radius-sm, 6px);\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-drawer__close:hover {\n background: var(--color-surfaceRaised, #f3f4f6);\n color: var(--color-text, #111827);\n}\n.nx-drawer__close:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-drawer__body {\n flex: 1;\n overflow-y: auto;\n padding: var(--spacing-lg, 24px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n line-height: var(--typography-lineHeightNormal, 1.5);\n color: var(--color-text, #111827);\n}\n\n.nx-drawer__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--spacing-sm, 8px);\n padding: 0 var(--spacing-lg, 24px) var(--spacing-lg, 24px);\n flex-shrink: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-drawer-backdrop, .nx-drawer {\n animation-duration: 0.01ms;\n }\n}",".nx-rating {\n display: inline-flex;\n align-items: center;\n gap: calc(var(--spacing-xs, 4px) / 2);\n outline: none;\n border-radius: var(--radius-sm, 4px);\n}\n\n.nx-rating:focus-visible {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 25%, transparent);\n}\n\n.nx-rating--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.nx-rating--readonly {\n cursor: default;\n}\n\n.nx-rating__star {\n display: inline-flex;\n cursor: pointer;\n color: var(--color-textMuted, #d1d5db);\n transition: color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-rating--disabled .nx-rating__star,\n.nx-rating--readonly .nx-rating__star {\n cursor: inherit;\n}\n\n.nx-rating__star--half,\n.nx-rating__star--full {\n color: var(--color-brand-500, #6366f1);\n}\n\n.nx-rating:not(.nx-rating--disabled):not(.nx-rating--readonly) .nx-rating__star:hover {\n transform: scale(1.08);\n}\n\n.nx-rating--xs .nx-rating__star-icon { width: 14px; height: 14px; }\n.nx-rating--sm .nx-rating__star-icon { width: 16px; height: 16px; }\n.nx-rating--md .nx-rating__star-icon { width: 20px; height: 20px; }\n.nx-rating--lg .nx-rating__star-icon { width: 26px; height: 26px; }\n.nx-rating--xl .nx-rating__star-icon { width: 32px; height: 32px; }\n\n/* Every other visual difference in this codebase comes from\n tokens, with zero theme-conditional CSS anywhere else — this is\n the one deliberate exception. Star color is driven by `color`\n (drives both SVG fill and stroke via currentColor), so a filled\n star's 1px stroke is the same brand color as its fill and reads\n as no outline at all. Neobrutalism's whole identity is a visible\n black outline on every surface (buttons, cards, inputs all get\n one via the `border` token); stars were the one thing that\n didn't, because \"stroke color independent of fill color\" isn't\n something the token contract has a slot for, and adding one\n would mean threading a new field through all 11 themes for a\n single component. Scoped override instead of a contract change. */\n[data-theme=\"neobrutalism\"] .nx-rating__star-icon {\n stroke: #000000;\n}",".nx-otp-input {\n display: inline-flex;\n gap: var(--spacing-sm, 8px);\n}\n\n.nx-otp-input--disabled {\n opacity: 0.5;\n}\n\n.nx-otp-input__box {\n text-align: center;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #111827);\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n outline: none;\n transition: border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n.nx-otp-input__box:disabled {\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n}\n\n.nx-otp-input__box:focus {\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-500, #6366f1) 20%, transparent);\n}\n\n.nx-otp-input__box--filled {\n border-color: var(--color-brand-500, #6366f1);\n}\n\n.nx-otp-input__box--invalid {\n border-color: var(--color-danger-base, #ef4444);\n}\n.nx-otp-input__box--invalid:focus {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger-base, #ef4444) 20%, transparent);\n}\n\n/* Sizes control box dimensions and font-size together, same pattern as NumberInput's font-size-only scale but with an explicit box footprint since these aren't flowing text inputs. */\n.nx-otp-input--xs .nx-otp-input__box { width: 28px; height: 32px; font-size: var(--typography-sizeSm, 14px); }\n.nx-otp-input--sm .nx-otp-input__box { width: 34px; height: 38px; font-size: var(--typography-sizeMd, 16px); }\n.nx-otp-input--md .nx-otp-input__box { width: 42px; height: 48px; font-size: var(--typography-sizeLg, 18px); }\n.nx-otp-input--lg .nx-otp-input__box { width: 50px; height: 56px; font-size: var(--typography-sizeXl, 22px); }\n.nx-otp-input--xl .nx-otp-input__box { width: 58px; height: 64px; font-size: var(--typography-sizeXl, 22px); }\n","/* The nested Select sits inside Input's own bordered wrapper (as its\n `prefix` adornment), so its own trigger chrome — border, shadow,\n background, the 100%-width/max-width sizing meant for a\n standalone Select — is stripped/overridden here rather than\n presenting as \"a select nested inside another bordered field\". A\n thin divider on the trigger takes over the border's job of\n separating it from the number field.\n\n A fixed width (not `auto`/content-based) keeps the trigger from\n growing wider than the number field it sits beside. The trigger\n itself only ever shows toSelectOptions' short, flag-less\n `triggerLabel` (\"US +1\", \"GG +441481\", ...) rather than the\n full-name `label` the open listbox uses (\"United States +1\") —\n see the comment on toSelectOptions for why. 104px comfortably\n fits every default-list entry, including the longest\n (\"GG +441481\"); the ellipsis below is just a safety net for a\n custom `countries` list with something longer still. */\n.nx-phone-input__country-select {\n inline-size: 104px;\n max-inline-size: 104px;\n flex: none;\n}\n\n.nx-phone-input__country-select .nx-select__trigger {\n border: none;\n box-shadow: none !important;\n background: transparent;\n padding-inline-end: var(--spacing-xs, 4px);\n padding-inline-start: 0;\n border-inline-end: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: 0;\n}\n\n.nx-phone-input__country-select .nx-select__value {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}",".nx-stat-card {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 4px);\n}\n\n.nx-stat-card__header {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-stat-card__icon {\n display: inline-flex;\n flex: none;\n color: var(--color-brand-500, #6366f1);\n}\n\n.nx-stat-card__label {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-stat-card__value {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXl, 22px);\n font-weight: var(--typography-weightBold, 700);\n line-height: var(--typography-lineHeightTight, 1.2);\n color: var(--color-text, #111827);\n}\n\n.nx-stat-card__trend {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs, 4px);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightMedium, 500);\n}\n\n.nx-stat-card__trend-icon {\n inline-size: 1em;\n block-size: 1em;\n}\n\n/* Semantic — good/bad movement, never the accent system (CONTRACT.md\n Rule 5b: success/danger stay theme-defined). */\n.nx-stat-card__trend--up {\n color: var(--color-success-base, #10b981);\n}\n.nx-stat-card__trend--down {\n color: var(--color-danger-base, #ef4444);\n}\n.nx-stat-card__trend--flat {\n color: var(--color-textMuted, #6b7280);\n}\n\n.nx-stat-card__trend-label {\n color: var(--color-textMuted, #6b7280);\n font-weight: var(--typography-weightNormal, 400);\n}\n","/* ============================================================\r\n CODE-BLOCK\r\n Chrome (background/border/text/radius/motion) reads the same\r\n theme tokens every other component reads, so it reshapes/recolors\r\n correctly across all themes automatically.\r\n\r\n Token colors (keyword/string/comment/...) are NOT part of the\r\n ThemeTokens contract (see core/code-block.ts's module comment) —\r\n adding 8+ new required tokens to all themes was a larger, separate\r\n change than this component needed. Instead each token type reads\r\n its own dedicated --nx-code-* variable with a fixed fallback (a\r\n deliberately theme-neutral palette that reads fine on both light\r\n and dark surfaces). Any theme can still override any of these\r\n later by simply setting the variable — nothing here prevents that,\r\n it just isn't required today the way --color-surface etc. are.\r\n ============================================================ */\r\n\r\n.nx-code-block {\r\n width: 100%;\r\n position: relative;\r\n border-radius: var(--radius-md);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n /* Shadow (and border width/style above) is what actually makes a\r\n theme like Neo Brutalism (thick border + hard offset shadow) or\r\n Brutalism (shadow: none, hairline border) look distinct here —\r\n hardcoding \"1px solid\" + no shadow, as this used to do, silently\r\n ignored both and made every theme render identically flat. */\r\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.06));\r\n background: var(--color-surfaceRaised, var(--color-surface));\r\n color: var(--color-text);\r\n font-family: var(--typography-fontMono, ui-monospace, \"SFMono-Regular\", Menlo, Consolas, monospace);\r\n font-size: var(--typography-sizeSm, 0.875rem);\r\n line-height: var(--typography-lineHeightNormal, 1.6);\r\n overflow: hidden;\r\n transition: border-color var(--motion-durationFast, 150ms) var(--motion-easeStandard, ease);\r\n}\r\n\r\n.nx-code-block--sm { font-size: var(--typography-sizeXs, 0.75rem); }\r\n.nx-code-block--lg { font-size: var(--typography-sizeMd, 1rem); }\r\n\r\n.nx-code-block__header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: var(--spacing-sm);\r\n padding: var(--spacing-xs) var(--spacing-md);\r\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n background: var(--color-surface);\r\n}\r\n\r\n.nx-code-block__filename {\r\n font-size: var(--typography-sizeXs, 0.75rem);\r\n color: var(--color-textMuted, var(--color-text));\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.nx-code-block__copy-button {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 1.75rem;\r\n height: 1.75rem;\r\n border: none;\r\n border-radius: var(--radius-sm);\r\n background: transparent;\r\n color: var(--color-textMuted, var(--color-text));\r\n cursor: pointer;\r\n transition: background var(--motion-durationFast, 150ms) var(--motion-easeStandard, ease);\r\n}\r\n\r\n.nx-code-block__copy-button:hover {\r\n /* Header sits on --color-surface, so raising to --color-surfaceRaised\r\n on hover gives real contrast — the same convention Sidebar's\r\n toggle button uses for a neutral (non-accent-tinted) hover. */\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n}\r\n\r\n.nx-code-block__copy-button:focus-visible {\r\n outline: 2px solid var(--color-brand-500);\r\n outline-offset: 2px;\r\n}\r\n\r\n.nx-code-block__pre {\r\n margin: 0;\r\n padding: var(--spacing-md);\r\n overflow-x: auto;\r\n}\r\n\r\n.nx-code-block--wrap .nx-code-block__pre {\r\n white-space: pre-wrap;\r\n word-break: break-word;\r\n overflow-x: hidden;\r\n}\r\n\r\n.nx-code-block__code {\r\n display: block;\r\n}\r\n\r\n.nx-code-block__line {\r\n display: block;\r\n}\r\n\r\n.nx-code-block__line--highlighted {\r\n background: color-mix(in srgb, var(--color-brand-500) 12%, transparent);\r\n margin-inline: calc(var(--spacing-md) * -1);\r\n padding-inline: var(--spacing-md);\r\n}\r\n\r\n.nx-code-block__line-number {\r\n display: inline-block;\r\n inline-size: 2.25em;\r\n margin-inline-end: var(--spacing-sm);\r\n color: var(--color-textMuted, var(--color-text));\r\n opacity: 0.5;\r\n text-align: right;\r\n user-select: none;\r\n}\r\n\r\n/* ---- token colors --------------------------------------------- */\r\n.nx-code-token--keyword { color: var(--nx-code-keyword, #c678dd); }\r\n.nx-code-token--string { color: var(--nx-code-string, #98c379); }\r\n.nx-code-token--comment { color: var(--nx-code-comment, #7f848e); font-style: italic; }\r\n.nx-code-token--number { color: var(--nx-code-number, #d19a66); }\r\n.nx-code-token--function { color: var(--nx-code-function, #61afef); }\r\n.nx-code-token--builtin { color: var(--nx-code-builtin, #56b6c2); }\r\n.nx-code-token--tag { color: var(--nx-code-tag, #e06c75); }\r\n.nx-code-token--attrName { color: var(--nx-code-attr, #d19a66); }\r\n.nx-code-token--property { color: var(--nx-code-property, #e5c07b); }\r\n.nx-code-token--selector { color: var(--nx-code-selector, #e06c75); }\r\n.nx-code-token--atrule { color: var(--nx-code-atrule, #c678dd); }\r\n.nx-code-token--variable { color: var(--nx-code-variable, #e06c75); }\r\n.nx-code-token--boolean { color: var(--nx-code-boolean, #d19a66); }\r\n.nx-code-token--regex { color: var(--nx-code-regex, #56b6c2); }\r\n.nx-code-token--decorator { color: var(--nx-code-decorator, #e5c07b); }\r\n.nx-code-token--pseudo { color: var(--nx-code-pseudo, #56b6c2); }\r\n.nx-code-token--punctuation { color: var(--nx-code-punctuation, var(--color-textMuted, currentColor)); }\r\n.nx-code-token--plain { color: inherit; }",".nx-rich-text {\r\n width: 100%;\r\n border-radius: var(--radius-md);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n /* See CodeBlock.css's comment on the same pattern — a hardcoded\r\n \"1px solid\" + no shadow used to make every theme render\r\n identically, ignoring Neo Brutalism's thick-border/hard-shadow\r\n signature and Brutalism's shadow:none entirely. */\r\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.06));\r\n background: var(--color-surface);\r\n color: var(--color-text);\r\n overflow: hidden;\r\n transition: border-color var(--motion-durationFast, 150ms) var(--motion-easeStandard, ease);\r\n}\r\n\r\n.nx-rich-text--sm { font-size: var(--typography-sizeSm, 0.875rem); }\r\n.nx-rich-text--lg { font-size: var(--typography-sizeLg, 1.125rem); }\r\n\r\n.nx-rich-text--disabled { opacity: 0.6; }\r\n.nx-rich-text--readonly { background: var(--color-surfaceRaised, var(--color-surface)); }\r\n\r\n.nx-rich-text__toolbar {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: var(--spacing-xs);\r\n padding: var(--spacing-xs) var(--spacing-sm);\r\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n background: var(--color-surfaceRaised, var(--color-surface));\r\n}\r\n\r\n.nx-rich-text__toolbar-button {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 2rem;\r\n height: 2rem;\r\n border: none;\r\n border-radius: var(--radius-sm);\r\n background: transparent;\r\n color: var(--color-text);\r\n cursor: pointer;\r\n font-size: var(--typography-sizeSm, 0.875rem);\r\n transition: background var(--motion-durationFast, 150ms) var(--motion-easeStandard, ease);\r\n}\r\n\r\n.nx-rich-text__toolbar-button:hover:not(:disabled) {\r\n /* The toolbar itself already sits on --color-surfaceRaised, so\r\n hovering to that same value would be invisible — using the\r\n accent-tinted hover SpeedDial's action buttons use instead. */\r\n background: var(--color-brand-50, #f0f4ff);\r\n}\r\n\r\n.nx-rich-text__toolbar-button:focus-visible {\r\n outline: 2px solid var(--color-brand-500);\r\n outline-offset: 2px;\r\n}\r\n\r\n.nx-rich-text__toolbar-button[data-active=\"true\"] {\r\n background: color-mix(in srgb, var(--color-brand-500) 16%, transparent);\r\n color: var(--color-brand-500);\r\n}\r\n\r\n.nx-rich-text__toolbar-button:disabled {\r\n cursor: not-allowed;\r\n opacity: 0.4;\r\n}\r\n\r\n.nx-rich-text__glyph {\r\n display: inline-flex;\r\n font-size: 0.8em;\r\n line-height: 1;\r\n}\r\n\r\n.nx-rich-text__content {\r\n min-height: 8em;\r\n padding: var(--spacing-md);\r\n outline: none;\r\n line-height: var(--typography-lineHeightNormal, 1.6);\r\n}\r\n\r\n.nx-rich-text__content:empty::before {\r\n content: attr(data-placeholder);\r\n color: var(--color-textMuted, var(--color-text));\r\n opacity: 0.5;\r\n pointer-events: none;\r\n}\r\n\r\n.nx-rich-text__content h1,\r\n.nx-rich-text__content h2,\r\n.nx-rich-text__content h3 {\r\n margin: 0.6em 0 0.3em;\r\n line-height: 1.25;\r\n}\r\n\r\n.nx-rich-text__content p { margin: 0 0 0.6em; }\r\n.nx-rich-text__content p:last-child { margin-bottom: 0; }\r\n\r\n.nx-rich-text__content blockquote {\r\n margin: 0 0 0.6em;\r\n padding-inline-start: var(--spacing-md);\r\n border-inline-start: var(--border-widthThick, 3px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n color: var(--color-textMuted, var(--color-text));\r\n}\r\n\r\n.nx-rich-text__content ul,\r\n.nx-rich-text__content ol {\r\n margin: 0 0 0.6em;\r\n padding-inline-start: 1.5em;\r\n}\r\n\r\n.nx-rich-text__content code {\r\n font-family: var(--typography-fontMono, ui-monospace, monospace);\r\n background: var(--color-surfaceRaised, var(--color-surface));\r\n border-radius: var(--radius-sm);\r\n padding: 0.1em 0.35em;\r\n}\r\n\r\n.nx-rich-text__content a {\r\n color: var(--color-brand-500);\r\n text-decoration: underline;\r\n}\r\n\r\n.nx-rich-text__link-popover {\r\n padding: var(--spacing-sm);\r\n}\r\n\r\n.nx-rich-text__link-input {\r\n width: 16rem;\r\n max-width: 100%;\r\n padding: var(--spacing-xs) var(--spacing-sm);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n border-radius: var(--radius-sm);\r\n background: var(--color-surface);\r\n color: var(--color-text);\r\n font-size: var(--typography-sizeSm, 0.875rem);\r\n}\r\n\r\n.nx-rich-text__link-input:focus-visible {\r\n outline: 2px solid var(--color-brand-500);\r\n outline-offset: 2px;\r\n}\r\n\r\n.nx-rich-text__color-popover {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--spacing-sm);\r\n padding: var(--spacing-sm);\r\n}\r\n\r\n.nx-rich-text__color-input {\r\n width: 2.25rem;\r\n height: 2.25rem;\r\n padding: 0;\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n border-radius: var(--radius-sm);\r\n background: none;\r\n cursor: pointer;\r\n}\r\n\r\n/* Native <input type=\"color\"> swatch insets differ per browser —\r\n strip them so the swatch fills the token-driven border box above. */\r\n.nx-rich-text__color-input::-webkit-color-swatch-wrapper { padding: 0; }\r\n.nx-rich-text__color-input::-webkit-color-swatch { border: none; border-radius: var(--radius-sm); }\r\n.nx-rich-text__color-input::-moz-color-swatch { border: none; border-radius: var(--radius-sm); }\r\n\r\n.nx-rich-text__color-clear {\r\n padding: var(--spacing-xs) var(--spacing-sm);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\r\n border-radius: var(--radius-sm);\r\n background: var(--color-surface);\r\n color: var(--color-text);\r\n font-size: var(--typography-sizeXs, 0.75rem);\r\n cursor: pointer;\r\n}\r\n\r\n.nx-rich-text__color-clear:hover {\r\n background: var(--color-surfaceRaised, #f3f4f6);\r\n}\r\n\r\n.nx-rich-text__color-clear:focus-visible {\r\n outline: 2px solid var(--color-brand-500);\r\n outline-offset: 2px;\r\n}",".nx-image {\n position: relative;\n display: block;\n inline-size: 100%;\n overflow: hidden;\n background: var(--color-neutral-100, #f3f4f6);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08));\n line-height: 0;\n}\n\n.nx-image__img {\n display: block;\n inline-size: 100%;\n block-size: 100%;\n transition: opacity var(--motion-durationNormal, 200ms) var(--motion-easeStandard, ease);\n}\n\n.nx-image--loading .nx-image__img {\n opacity: 0;\n}\n\n.nx-image--loaded .nx-image__img {\n opacity: 1;\n}\n\n.nx-image__img--cover {\n object-fit: cover;\n}\n\n.nx-image__img--contain {\n object-fit: contain;\n}\n\n.nx-image__img--fill {\n object-fit: fill;\n}\n\n.nx-image__img--none {\n object-fit: none;\n}\n\n.nx-image__img--scale-down {\n object-fit: scale-down;\n}\n\n.nx-image__placeholder {\n position: absolute;\n inset: 0;\n}\n\n.nx-image__fallback {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs, 6px);\n color: var(--color-textMuted, #9ca3af);\n background: var(--color-neutral-100, #f3f4f6);\n}\n\n.nx-image__fallback-text {\n font-size: var(--typography-sizeXs, 12px);\n font-family: var(--typography-fontSans, inherit);\n}",".nx-lightbox-backdrop {\n position: fixed;\n inset: 0;\n z-index: var(--elevation-toast, 1200);\n display: flex;\n flex-direction: column;\n background: rgba(0, 0, 0, 0.92);\n animation: nx-lightbox-backdrop-in var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n\n@keyframes nx-lightbox-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.nx-lightbox {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n outline: none;\n animation: nx-lightbox-in var(--motion-durationNormal, 180ms) var(--motion-easeEmphasized, ease);\n}\n\n@keyframes nx-lightbox-in {\n from { opacity: 0; transform: scale(0.98); }\n to { opacity: 1; transform: scale(1); }\n}\n\n/* A dark, near-opaque backdrop is deliberate regardless of the\n active theme (the same reasoning Card.css documents for its own\n overlay/hero variant: content on top of a photo needs to stay\n legible against arbitrary image content, not follow the page's\n light/dark mode) — but the toolbar/nav chrome sitting ON TOP of\n that backdrop still should, and now does, pick up the theme's\n actual border width/style and blur, not just a fixed rgba. */\n.nx-lightbox__toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n padding: var(--spacing-md, 16px) var(--spacing-lg, 24px);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n}\n\n.nx-lightbox__counter {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-neutral-0, #ffffff);\n opacity: 0.85;\n}\n\n.nx-lightbox__actions {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs, 6px);\n}\n\n.nx-lightbox__icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border: var(--border-widthThin, 1px) var(--border-style, solid) rgba(255, 255, 255, 0.16);\n border-radius: var(--radius-md, 8px);\n background: rgba(255, 255, 255, 0.06);\n color: var(--color-neutral-0, #ffffff);\n cursor: pointer;\n text-decoration: none;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-lightbox__icon-btn:hover {\n background: rgba(255, 255, 255, 0.14);\n}\n.nx-lightbox__icon-btn:focus-visible {\n outline: 2px solid var(--color-brand-400, #818cf8);\n outline-offset: 2px;\n}\n\n.nx-lightbox__stage {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n min-height: 0;\n padding: 0 var(--spacing-2xl, 32px) var(--spacing-lg, 24px);\n}\n\n/* Image's own default border/background (see Image.css) is reset\n here — floating on the dark backdrop, a boxed background behind a\n contain-fitted photo would show as an unwanted matte. The photo\n itself is the only thing that should be visible in the stage. */\n.nx-lightbox__image.nx-image {\n border: none;\n background: transparent;\n}\n.nx-lightbox__image {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n background: transparent;\n box-shadow: var(--shadow-xl, 0 20px 48px rgba(0, 0, 0, 0.4));\n}\n.nx-lightbox__image .nx-image__img {\n max-width: 100%;\n max-height: calc(100vh - 160px);\n width: auto;\n height: auto;\n inline-size: auto;\n block-size: auto;\n}\n\n/* Nav buttons carry the theme's own border + shadow at rest (not\n only on hover) — a real, visible difference between e.g.\n brutalism's flat black outline / zero shadow and glass's blurred,\n softly-lit ring. */\n.nx-lightbox__nav {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border: var(--border-widthThin, 1px) var(--border-style, solid) rgba(255, 255, 255, 0.2);\n border-radius: var(--radius-full, 999px);\n background: rgba(255, 255, 255, 0.08);\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.2));\n color: var(--color-neutral-0, #ffffff);\n cursor: pointer;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n z-index: 1;\n}\n.nx-lightbox__nav:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n.nx-lightbox__nav:focus-visible {\n outline: 2px solid var(--color-brand-400, #818cf8);\n outline-offset: 2px;\n}\n.nx-lightbox__nav--prev {\n left: var(--spacing-md, 16px);\n}\n.nx-lightbox__nav--next {\n right: var(--spacing-md, 16px);\n}\n\n.nx-lightbox__caption {\n flex-shrink: 0;\n padding: var(--spacing-sm, 8px) var(--spacing-lg, 24px) var(--spacing-lg, 24px);\n text-align: center;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-neutral-0, #ffffff);\n opacity: 0.85;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .nx-lightbox-backdrop, .nx-lightbox {\n animation-duration: 0.01ms;\n }\n}",".nx-gallery {\n display: grid;\n inline-size: 100%;\n gap: var(--spacing-sm, 8px);\n}\n\n/* --- grid: equal-size cells ------------------------------------- */\n.nx-gallery--grid {\n grid-template-columns: repeat(var(--nx-gallery-columns, 3), 1fr);\n grid-auto-rows: 1fr;\n}\n.nx-gallery--grid .nx-gallery__item {\n aspect-ratio: 1 / 1;\n}\n\n/* --- masonry: CSS multi-column, each item keeps its own ratio --- */\n.nx-gallery--masonry {\n display: block;\n column-count: var(--nx-gallery-columns, 3);\n column-gap: var(--spacing-sm, 8px);\n}\n.nx-gallery--masonry .nx-gallery__item {\n display: block;\n width: 100%;\n break-inside: avoid;\n margin-bottom: var(--spacing-sm, 8px);\n}\n\n/* --- justified: rows are laid out inline via style, not CSS ----- */\n.nx-gallery--justified {\n display: flex;\n flex-direction: column;\n}\n.nx-gallery__row {\n display: flex;\n}\n.nx-gallery--justified .nx-gallery__row:not(:last-child) {\n margin-bottom: var(--spacing-sm, 8px);\n}\n.nx-gallery--justified .nx-gallery__item {\n flex-shrink: 0;\n}\n\n/* Each item's real Image already gets its own border/radius by\n default (see Image.css) — reset both here so there's a single\n border per thumbnail (this item's own, styled below) instead of\n a nested double border/radius mismatch. */\n.nx-gallery__item .nx-image {\n border: none;\n border-radius: 0;\n background: transparent;\n}\n\n/* --- shared item chrome ------------------------------------------ */\n.nx-gallery__item {\n position: relative;\n display: block;\n overflow: hidden;\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n padding: 0;\n margin: 0;\n cursor: pointer;\n background: transparent;\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.06));\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n transition: transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\n box-shadow var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-gallery__item:hover {\n transform: scale(1.02);\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.12));\n}\n.nx-gallery__item:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-gallery__image {\n width: 100%;\n height: 100%;\n}",".nx-video-player {\r\n position: relative;\r\n display: block;\r\n inline-size: 100%;\r\n background: #000;\r\n border-radius: var(--radius-md, 8px);\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #1f2937);\r\n box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.12));\r\n overflow: hidden;\r\n /* The button row's width isn't fixed — track-nav (onNext/onPrevious)\r\n and pip (feature-detected) each add or remove a button, so how\r\n much room the row needs varies per instance. container-type lets\r\n the row react to ITS actual rendered width rather than the\r\n viewport's, which matters here since this is normally embedded at\r\n some fraction of page width, not full-bleed. */\r\n container-type: inline-size;\r\n container-name: nx-video-player;\r\n}\r\n\r\n.nx-video-player__video {\r\n display: block;\r\n width: 100%;\r\n height: auto;\r\n max-height: 100%;\r\n}\r\n\r\n/* The video element is now a real keyboard target (see\r\n handlePlayerKeyDown in VideoPlayer.tsx) — it needs its own\r\n focus-visible ring like every other focusable control here,\r\n inset so it doesn't get clipped by the player's own\r\n overflow: hidden. */\r\n.nx-video-player__video:focus-visible {\r\n outline: 2px solid var(--color-brand-400, #818cf8);\r\n outline-offset: -2px;\r\n}\r\n\r\n.nx-video-player:fullscreen .nx-video-player__video {\r\n height: 100%;\r\n object-fit: contain;\r\n}\r\n\r\n.nx-video-player__controls {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--spacing-sm, 8px);\r\n padding: var(--spacing-sm, 8px) var(--spacing-md, 16px) var(--spacing-md, 16px);\r\n background: linear-gradient(to top, rgba(0, 0, 0, 0.75), transparent);\r\n /* The gradient above is already translucent, so a backdrop blur is\r\n meaningful here even though the player's own opaque black frame\r\n (a real video needs an opaque letterbox, not a see-through one)\r\n deliberately doesn't get one. Only glass/dark-glass set\r\n effects.backdropBlur above 0px — everywhere else this is a\r\n no-op. */\r\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\r\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\r\n}\r\n\r\n.nx-video-player__progress {\r\n position: relative;\r\n height: 4px;\r\n border-radius: var(--radius-full, 999px);\r\n background: rgba(255, 255, 255, 0.25);\r\n cursor: pointer;\r\n touch-action: none;\r\n}\r\n.nx-video-player__progress:focus-visible {\r\n outline: 2px solid var(--color-brand-400, #818cf8);\r\n outline-offset: 3px;\r\n}\r\n.nx-video-player__progress-buffered,\r\n.nx-video-player__progress-played {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n border-radius: var(--radius-full, 999px);\r\n}\r\n.nx-video-player__progress-buffered {\r\n background: rgba(255, 255, 255, 0.4);\r\n}\r\n.nx-video-player__progress-played {\r\n background: var(--color-brand-500, #6366f1);\r\n}\r\n/* Thumb design matches the real Slider component's own thumb\r\n exactly (see Slider.css: a surface-colored circle, a 2px colored\r\n border, a resting shadow, and a focus-visible glow ring) rather\r\n than a flat solid dot — same visual language, same theme\r\n reactivity (border-width/style included, not just color), just\r\n hand-built instead of composed (see this file's header for why). */\r\n.nx-video-player__progress-thumb {\r\n position: absolute;\r\n top: 50%;\r\n width: 14px;\r\n height: 14px;\r\n box-sizing: border-box;\r\n border-radius: var(--radius-full, 999px);\r\n background: var(--color-surface, #ffffff);\r\n border: var(--border-widthMedium, 2px) var(--border-style, solid) var(--color-brand-500, #6366f1);\r\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.25));\r\n transform: translate(-50%, -50%);\r\n transition: transform var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n pointer-events: none;\r\n}\r\n.nx-video-player__progress:focus-visible .nx-video-player__progress-thumb {\r\n box-shadow: 0 0 0 4px var(--color-brand-100, #e0e7ff);\r\n}\r\n.nx-video-player__progress:active .nx-video-player__progress-thumb {\r\n transform: translate(-50%, -50%) scale(1.1);\r\n}\r\n\r\n.nx-video-player__row {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--spacing-sm, 8px);\r\n /* Which buttons exist here isn't fixed — track-nav and pip are both\r\n conditional — so the row's needed width isn't fixed either. A\r\n single no-wrap line means anything that doesn't fit gets clipped\r\n by the wrapper's own overflow: hidden rather than just looking\r\n cramped, and fullscreen (last in DOM order) is the first casualty.\r\n Wrapping is the correctness floor: nothing ever becomes\r\n unreachable, worst case the bar is two lines tall instead of one.\r\n The @container rules below reduce how often that actually\r\n triggers. */\r\n flex-wrap: wrap;\r\n row-gap: var(--spacing-xs, 6px);\r\n}\r\n\r\n/* Time (current/duration) is the one purely informational item in\r\n the row — the least costly thing to drop first when space is\r\n tight, well before any control needs to move to a second line.\r\n With track-nav (prev/next) and pip both present, the full row\r\n (9 icon buttons + volume bar + time, at ~8px gaps) needs upwards\r\n of ~550px of container width before it fits on one line — well\r\n above the width a player is normally embedded at (e.g. a 480px\r\n max-width playlist demo). The threshold below is set above that\r\n overflow point (with headroom for font/theme variance) so time\r\n actually hides BEFORE the row runs out of room, instead of only\r\n below a width the row had already wrapped at. container-name is\r\n scoped to THIS player, so nesting one inside another layout that\r\n also uses container queries can't cross-match. */\r\n@container nx-video-player (max-width: 560px) {\r\n .nx-video-player__time {\r\n display: none;\r\n }\r\n}\r\n\r\n.nx-video-player__icon-btn {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 32px;\r\n height: 32px;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n border: var(--border-widthThin, 1px) var(--border-style, solid) transparent;\r\n border-radius: var(--radius-md, 8px);\r\n background: transparent;\r\n color: var(--color-neutral-0, #ffffff);\r\n cursor: pointer;\r\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease),\r\n border-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\r\n}\r\n.nx-video-player__icon-btn:hover {\r\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 35%, transparent);\r\n border-color: color-mix(in srgb, var(--color-brand-300, #a5b4fc) 50%, transparent);\r\n}\r\n/* Same reasoning as AudioPlayer's: at the ends of a playlist the\r\n track-nav button disables in place instead of unmounting, so the\r\n control row's layout doesn't jump on the first/last item. */\r\n.nx-video-player__icon-btn:disabled {\r\n opacity: 0.45;\r\n cursor: not-allowed;\r\n}\r\n.nx-video-player__icon-btn:disabled:hover {\r\n background: transparent;\r\n border-color: transparent;\r\n}\r\n.nx-video-player__icon-btn:focus-visible {\r\n outline: 2px solid var(--color-brand-400, #818cf8);\r\n outline-offset: 2px;\r\n}\r\n\r\n/* The play/pause button is the primary action — filled with the\r\n accent color like a real transport control, the same treatment\r\n AudioPlayer's play button already uses, instead of blending in as\r\n just another icon in the row.\r\n\r\n border-color reads the theme's own --color-border rather than\r\n matching the brand fill — matching fill makes the border\r\n invisible in every theme, which is exactly what most themes want,\r\n but it also means brutalism/neobrutalism's signature bold black\r\n border (color.border: #000000) never appears on this button even\r\n though every other solid/filled control in the library gets it\r\n (see Button.css's .nx-btn--solid comment — same reasoning here).\r\n The shadow + :active press are the same idiom for the same reason:\r\n flat themes render shadow: none as a no-op, neobrutalism gets its\r\n hard offset shadow that visibly presses in on click. */\r\n.nx-video-player__icon-btn--play {\r\n background: var(--color-brand-500, #6366f1);\r\n border-color: var(--color-border, transparent);\r\n color: var(--color-neutral-0, #ffffff);\r\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.25));\r\n}\r\n.nx-video-player__icon-btn--play:hover {\r\n background: var(--color-brand-600, #4f46e5);\r\n border-color: var(--color-border, transparent);\r\n}\r\n.nx-video-player__icon-btn--play:active {\r\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.25));\r\n transform: translate(1px, 1px);\r\n}\r\n\r\n/* Compact volume bar — hand-built (not the Slider component), see\r\n this file's module header. Same visual language as the progress\r\n bar above, including the Slider-matching thumb design. */\r\n.nx-video-player__volume {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--spacing-xs, 6px);\r\n}\r\n.nx-video-player__volume-track {\r\n position: relative;\r\n height: 4px;\r\n border-radius: var(--radius-full, 999px);\r\n background: rgba(255, 255, 255, 0.25);\r\n cursor: pointer;\r\n touch-action: none;\r\n flex-shrink: 0;\r\n}\r\n.nx-video-player__volume-track:focus-visible {\r\n outline: 2px solid var(--color-brand-400, #818cf8);\r\n outline-offset: 3px;\r\n}\r\n.nx-video-player__volume-fill {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n border-radius: var(--radius-full, 999px);\r\n background: var(--color-brand-500, #6366f1);\r\n}\r\n.nx-video-player__volume-thumb {\r\n position: absolute;\r\n top: 50%;\r\n width: 12px;\r\n height: 12px;\r\n box-sizing: border-box;\r\n border-radius: var(--radius-full, 999px);\r\n background: var(--color-surface, #ffffff);\r\n border: var(--border-widthMedium, 2px) var(--border-style, solid) var(--color-brand-500, #6366f1);\r\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.25));\r\n transform: translate(-50%, -50%);\r\n pointer-events: none;\r\n}\r\n.nx-video-player__volume-track:focus-visible .nx-video-player__volume-thumb {\r\n box-shadow: 0 0 0 4px var(--color-brand-100, #e0e7ff);\r\n}\r\n\r\n/* Extra breathing room before the time readout specifically — the\r\n row's own gap alone read as too tight between the volume bar and\r\n the time text, like the two controls were merged into one. */\r\n.nx-video-player__time {\r\n margin-inline-start: var(--spacing-xs, 6px);\r\n font-family: var(--typography-fontSans, system-ui, sans-serif);\r\n font-size: var(--typography-sizeXs, 12px);\r\n color: var(--color-neutral-0, #ffffff);\r\n white-space: nowrap;\r\n}\r\n\r\n.nx-video-player__spacer {\r\n flex: 1;\r\n}",".nx-audio-player {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm, 8px);\n width: 100%;\n padding: var(--spacing-md, 16px);\n border-radius: var(--radius-lg, 14px);\n background: var(--color-surface, #ffffff);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08));\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n}\n\n/* The <audio> element itself renders as nothing visible, so this\n card — not the element — is the real target for the player-wide\n keyboard shortcuts in handlePlayerKeyDown (AudioPlayer.tsx). */\n.nx-audio-player:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-audio-player__top {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm, 8px);\n}\n\n.nx-audio-player__cover {\n width: 44px;\n height: 44px;\n flex-shrink: 0;\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.08));\n}\n\n.nx-audio-player__meta {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n line-height: 1.25;\n}\n.nx-audio-player__title {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n font-weight: var(--typography-weightMedium, 500);\n color: var(--color-text, #111827);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.nx-audio-player__artist {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n color: var(--color-textMuted, #6b7280);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Progress — thicker than the old version and with real theme-token\n framing, per feedback that the previous bar was both too thin to\n grab and functionally invisible (see this component's own git\n history: a since-removed composed Slider was eating almost all of\n the row's width, squeezing this down to a couple of visible\n pixels). */\n.nx-audio-player__progress {\n position: relative;\n height: 6px;\n border-radius: var(--radius-full, 999px);\n background: var(--color-neutral-200, #e5e7eb);\n cursor: pointer;\n touch-action: none;\n}\n.nx-audio-player__progress:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 3px;\n}\n.nx-audio-player__progress-buffered,\n.nx-audio-player__progress-played {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n border-radius: var(--radius-full, 999px);\n}\n.nx-audio-player__progress-buffered {\n background: var(--color-neutral-300, #d1d5db);\n}\n.nx-audio-player__progress-played {\n background: var(--color-brand-500, #6366f1);\n}\n.nx-audio-player__progress-thumb {\n position: absolute;\n top: 50%;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--color-brand-500, #6366f1);\n transform: translate(-50%, -50%);\n box-shadow: 0 0 0 2px var(--color-surface, #fff);\n}\n\n.nx-audio-player__times {\n display: flex;\n justify-content: space-between;\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeXs, 12px);\n color: var(--color-textMuted, #6b7280);\n margin-top: -2px;\n}\n\n/* Volume and settings sit at the row's two natural ends via ordinary\n flex space-between; the transport group is taken out of flow and\n centered independently with left:50%/translateX(-50%). This is\n deliberate, not accidental: a 3-column `1fr auto 1fr` grid forces\n both outer columns to match the WIDER side's content (volume, with\n its slider, is much wider than the lone settings icon), so the\n settings icon ends up hugging the far edge with a big dead-space\n gap before it while volume sits tight against the transport group\n on the other side — centered play button, visually lopsided row.\n Absolute-centering the transport group sidesteps that entirely:\n volume and settings each take only the space they need, and the\n transport group is centered against the row's actual width, not\n against two artificially-equalized columns. */\n.nx-audio-player__row {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-xs, 6px);\n min-height: 38px;\n}\n\n.nx-audio-player__transport {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs, 6px);\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n}\n\n.nx-audio-player__settings-btn {\n flex-shrink: 0;\n}\n\n.nx-audio-player__icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n flex-shrink: 0;\n box-sizing: border-box;\n border: none;\n border-radius: var(--radius-md, 8px);\n background: transparent;\n color: var(--color-text, #111827);\n cursor: pointer;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-audio-player__icon-btn:hover {\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 12%, transparent);\n}\n/* A track-nav button at the end of the playlist stays rendered and\n goes disabled rather than disappearing — a button vanishing out of\n the transport group on the last track would shift the whole\n centered group sideways mid-playback. */\n.nx-audio-player__icon-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n.nx-audio-player__icon-btn:disabled:hover {\n background: transparent;\n}\n.nx-audio-player__icon-btn:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n/* The play/pause button reads as the primary action — filled with\n the accent color, like a real transport control, not just another\n icon in the row.\n\n The base .nx-audio-player__icon-btn above sets border: none (ghost\n buttons in this row never get one — matches Button.css's ghost\n variant), so this is the one icon button here that opts back in:\n border-color reads the theme's own --color-border rather than\n matching the brand fill, since a border that matches its own fill\n is invisible everywhere — which most themes want, but it also\n means brutalism/neobrutalism's signature bold black border never\n shows up here even though it's core to those themes' identity (see\n Button.css's .nx-btn--solid comment for the same reasoning). The\n :active press is the same idiom: a no-op under shadow: none, but\n neobrutalism's button visibly presses into its own hard shadow. */\n.nx-audio-player__icon-btn--play {\n width: 38px;\n height: 38px;\n border-radius: var(--radius-full, 999px);\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, transparent);\n background: var(--color-brand-500, #6366f1);\n color: var(--color-neutral-0, #ffffff);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08));\n}\n.nx-audio-player__icon-btn--play:hover {\n background: var(--color-brand-600, #4f46e5);\n}\n.nx-audio-player__icon-btn--play:active {\n box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.08));\n transform: translate(1px, 1px);\n}\n\n.nx-audio-player__volume {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs, 6px);\n}\n.nx-audio-player__volume-track {\n position: relative;\n height: 4px;\n border-radius: var(--radius-full, 999px);\n background: var(--color-neutral-200, #e5e7eb);\n cursor: pointer;\n touch-action: none;\n flex-shrink: 0;\n}\n.nx-audio-player__volume-track:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 3px;\n}\n.nx-audio-player__volume-fill {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n border-radius: var(--radius-full, 999px);\n background: var(--color-brand-500, #6366f1);\n}\n.nx-audio-player__volume-thumb {\n position: absolute;\n top: 50%;\n width: 9px;\n height: 9px;\n border-radius: 50%;\n background: var(--color-brand-500, #6366f1);\n transform: translate(-50%, -50%);\n box-shadow: 0 0 0 2px var(--color-surface, #fff);\n}",".nx-pdf-viewer {\n display: flex;\n flex-direction: column;\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-md, 8px);\n box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08));\n backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n -webkit-backdrop-filter: blur(var(--effects-backdropBlur, 0px));\n overflow: hidden;\n background: var(--color-surface, #ffffff);\n /* No default width/height here — same convention as every other Nuvox component (VideoPlayer, AudioPlayer, Lightbox): size this via the style/className props on the component itself, not a dedicated width/height prop. Left unsized, the frame below sizes itself from a real page's aspect ratio (see PdfViewer.tsx's pageWidthPt/pageHeightPt); set an explicit height here and the frame fills it instead, via the flex rule below. */\n}\n\n.nx-pdf-viewer__toolbar {\n flex-shrink: 0;\n}\n\n.nx-pdf-viewer__frame {\n width: 100%;\n /* flex-basis comes from the iframe's own inline aspect-ratio (pageWidthPt/pageHeightPt) when the container's height is left auto — flex-grow/shrink only have anything to redistribute once a consumer gives .nx-pdf-viewer an explicit height via style/className, at which point this fills exactly that height instead (and the aspect ratio no longer applies, since the consumer has deliberately chosen a different shape). min-height: 0 is required for a flex child with an intrinsic aspect-ratio size to actually shrink inside a height-constrained flex column, rather than refusing to go below its aspect-ratio height. */\n flex: 1 1 auto;\n min-height: 0;\n max-height: 90vh; /* only takes effect when the container's height is left auto — caps runaway aspect-ratio height on a very wide box */\n border: none;\n display: block;\n background: var(--color-neutral-100, #f3f4f6);\n}\n@supports not (aspect-ratio: 1) {\n .nx-pdf-viewer__frame {\n height: 600px;\n }\n}\n\n.nx-pdf-viewer__toolbar {\n display: flex;\n align-items: center;\n gap: var(--spacing-md, 16px);\n padding: var(--spacing-xs, 6px) var(--spacing-sm, 8px);\n border-bottom: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n background: var(--color-surfaceRaised, #f9fafb);\n flex-wrap: wrap;\n}\n\n.nx-pdf-viewer__nav,\n.nx-pdf-viewer__zoom {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs, 6px);\n}\n\n.nx-pdf-viewer__page-input {\n width: 52px;\n}\n\n.nx-pdf-viewer__zoom-level {\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n color: var(--color-textMuted, #6b7280);\n min-width: 40px;\n text-align: center;\n}\n\n.nx-pdf-viewer__fit-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 28px;\n padding: 0 var(--spacing-sm, 8px);\n flex-shrink: 0;\n box-sizing: border-box;\n border: var(--border-widthThin, 1px) var(--border-style, solid) var(--color-border, #e5e7eb);\n border-radius: var(--radius-sm, 4px);\n background: transparent;\n color: var(--color-text, #111827);\n font-family: var(--typography-fontSans, system-ui, sans-serif);\n font-size: var(--typography-sizeSm, 14px);\n cursor: pointer;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-pdf-viewer__fit-btn:hover:not(:disabled) {\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 12%, transparent);\n}\n.nx-pdf-viewer__fit-btn:disabled {\n color: var(--color-neutral-300, #d1d5db);\n border-color: var(--color-neutral-200, #e5e7eb);\n cursor: not-allowed;\n}\n.nx-pdf-viewer__fit-btn:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}\n\n.nx-pdf-viewer__icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n flex-shrink: 0;\n border: none;\n border-radius: var(--radius-sm, 4px);\n background: transparent;\n color: var(--color-text, #111827);\n cursor: pointer;\n text-decoration: none;\n transition: background-color var(--motion-durationFast, 120ms) var(--motion-easeStandard, ease);\n}\n.nx-pdf-viewer__icon-btn:hover:not(:disabled) {\n background: color-mix(in srgb, var(--color-brand-500, #6366f1) 12%, transparent);\n}\n.nx-pdf-viewer__icon-btn:disabled {\n color: var(--color-neutral-300, #d1d5db);\n cursor: not-allowed;\n}\n.nx-pdf-viewer__icon-btn:focus-visible {\n outline: 2px solid var(--color-brand-500, #6366f1);\n outline-offset: 2px;\n}"],"mappings":"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","names":[]}
|