@codenhub/styles 0.0.2

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/README.md ADDED
@@ -0,0 +1,134 @@
1
+ # @codenhub/styles
2
+
3
+ Shared Codenhub CSS package with compiled styles, design tokens, theme support, component helper classes, layout helpers, typography utilities, and Tailwind CSS v4 source entrypoints.
4
+
5
+ This package is CSS-only. It does not ship JavaScript behavior, DOM helpers, React components, or TypeScript APIs.
6
+
7
+ ## Installation
8
+
9
+ ```sh
10
+ pnpm add @codenhub/styles
11
+ ```
12
+
13
+ Install Tailwind CSS only when importing Tailwind source entrypoints:
14
+
15
+ ```sh
16
+ pnpm add @codenhub/styles tailwindcss
17
+ ```
18
+
19
+ `tailwindcss` is an optional peer dependency. Compiled CSS imports do not require Tailwind in consumer apps.
20
+
21
+ ## Usage
22
+
23
+ ### Compiled CSS
24
+
25
+ Use compiled CSS when the app does not process this package through Tailwind.
26
+
27
+ ```css
28
+ @import "@codenhub/styles";
29
+ ```
30
+
31
+ ```html
32
+ <main class="sect">
33
+ <section class="sect-container stack">
34
+ <article class="card">
35
+ <p class="text-label">Status</p>
36
+ <h1 class="text-title">Ready to publish</h1>
37
+ <button class="btn primary">Continue</button>
38
+ </article>
39
+ </section>
40
+ </main>
41
+ ```
42
+
43
+ ### Tailwind Source CSS
44
+
45
+ Use Tailwind source CSS when the app already builds Tailwind CSS v4 and needs Codenhub tokens/classes available during that build.
46
+
47
+ ```css
48
+ @import "tailwindcss";
49
+ @import "@codenhub/styles/tw";
50
+
51
+ @source "./src";
52
+ ```
53
+
54
+ ### Theme Classes
55
+
56
+ Apply `.dark` to any ancestor to switch token values for that subtree.
57
+
58
+ ```html
59
+ <html class="dark">
60
+ <body>
61
+ <button class="btn primary">Dark themed button</button>
62
+ </body>
63
+ </html>
64
+ ```
65
+
66
+ Apps own adding/removing `.dark`. This package only defines styles that respond to it.
67
+
68
+ ## Reference
69
+
70
+ ### Import Paths
71
+
72
+ | Path | Kind | Contents |
73
+ | -------------------------------- | ------------------- | ------------------------------------------------------------------- |
74
+ | `@codenhub/styles` | Compiled CSS | Full stylesheet: theme, base styles, components, typography. |
75
+ | `@codenhub/styles/theme` | Compiled CSS | Theme tokens, light/dark variables, Tailwind theme output. |
76
+ | `@codenhub/styles/components` | Compiled CSS | Theme tokens plus component classes. |
77
+ | `@codenhub/styles/tw` | Tailwind source CSS | Full Tailwind v4 source: theme, base styles, components, utilities. |
78
+ | `@codenhub/styles/tw/theme` | Tailwind source CSS | Theme tokens, light/dark variables, custom dark variant. |
79
+ | `@codenhub/styles/tw/components` | Tailwind source CSS | Theme tokens plus component classes. |
80
+
81
+ ### Detailed Docs
82
+
83
+ Detailed package reference ships with the package under `.docs/`:
84
+
85
+ | Document | Purpose |
86
+ | ----------------------------------------- | ------------------------------------------------------------- |
87
+ | [Overview](./.docs/index.md) | Package model, entrypoints, and class model. |
88
+ | [Tokens](./.docs/tokens.md) | Color and foundation token contracts. |
89
+ | [Classes](./.docs/classes.md) | Layout, surface, action, form, feedback, and tooltip helpers. |
90
+ | [Accessibility](./.docs/accessibility.md) | CSS accessibility hooks and non-goals. |
91
+ | [Tests](./.docs/tests.md) | Build and browser validation strategy. |
92
+
93
+ ## Examples
94
+
95
+ ### Composed Buttons
96
+
97
+ Intent classes set color meaning. Presentation classes set visual treatment and consume active intent tone slots.
98
+
99
+ ```html
100
+ <button class="btn primary">Primary</button>
101
+ <button class="btn success out">Success outline</button>
102
+ <button class="btn destructive ghost">Ghost danger</button>
103
+ <button class="btn secondary loading" disabled>Saving</button>
104
+ ```
105
+
106
+ ### Forms And Feedback
107
+
108
+ ```html
109
+ <label class="field">
110
+ <span class="label">Email</span>
111
+ <input class="ipt" type="email" aria-describedby="email-hint" />
112
+ <span class="hint" id="email-hint">Use a work email.</span>
113
+ </label>
114
+
115
+ <div class="alert success" role="status">Saved successfully.</div>
116
+ ```
117
+
118
+ ## Requirements
119
+
120
+ | Requirement | Details |
121
+ | --------------- | ------------------------------------------------------------------------------------------ |
122
+ | CSS imports | Consumer tooling must support package CSS imports. |
123
+ | Tailwind CSS | Required only for `@codenhub/styles/tw` entrypoints. Version 4 or newer. |
124
+ | Browser runtime | Styles target browsers. There is no JavaScript runtime behavior. |
125
+ | Dark mode | Consumers apply or remove `.dark`; package CSS reacts to that class. |
126
+ | Accessibility | Styles do not provide semantic HTML, labels, ARIA, keyboard behavior, or focus management. |
127
+
128
+ ## Notes
129
+
130
+ This package publishes CSS as its public runtime surface. It does not expose JavaScript or TypeScript entrypoints.
131
+
132
+ Lifecycle exception: `@codenhub/styles` intentionally omits `main`, `module`, and `types` from `package.json` because it is a CSS-only package with no JavaScript API. Every supported consumer import path is listed explicitly in `exports`, build output is generated into `dist`, and package checks validate the CSS build contract.
133
+
134
+ The package intentionally does not expose private files outside the documented import paths. If exports change, this README and the related `.docs/` documents must be updated in the same change.
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-100:oklch(96.2% .059 95.617);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-800:oklch(43.2% .095 166.913);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-800:oklch(39.8% .195 277.366);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--spacing:.25rem;--breakpoint-2xl:90rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-default:"Segoe UI", system-ui, sans-serif;--color-primary:var(--color-neutral-950);--color-primary-contrast:var(--color-neutral-50);--color-primary-hover:var(--color-neutral-700);--color-primary-subtle:var(--color-neutral-200);--color-primary-strong:var(--color-neutral-900);--color-accent:var(--color-neutral-300);--color-accent-contrast:var(--color-neutral-950);--color-accent-hover:var(--color-neutral-400);--color-accent-subtle:var(--color-neutral-200);--color-accent-strong:var(--color-neutral-800);--color-border:var(--color-neutral-300);--color-border-hover:var(--color-neutral-600);--color-background:var(--color-neutral-50);--color-foreground:var(--color-neutral-100);--color-surface:var(--color-neutral-200);--color-text:var(--color-neutral-950);--color-text-secondary:var(--color-neutral-700);--color-success:var(--color-emerald-600);--color-success-contrast:var(--color-neutral-50);--color-success-hover:#008d61}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-success-hover:color-mix(in srgb, var(--color-success) 82%, var(--color-success-strong))}}:root,:host{--color-success-subtle:var(--color-emerald-100);--color-success-strong:var(--color-emerald-800);--color-warning:var(--color-amber-600);--color-warning-contrast:var(--color-neutral-50);--color-warning-hover:#d06a00}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-warning-hover:color-mix(in srgb, var(--color-warning) 82%, var(--color-warning-strong))}}:root,:host{--color-warning-subtle:var(--color-amber-100);--color-warning-strong:var(--color-amber-800);--color-destructive:var(--color-rose-700);--color-destructive-contrast:var(--color-neutral-50);--color-destructive-hover:#bc0039}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-destructive-hover:color-mix(in srgb, var(--color-destructive) 82%, var(--color-destructive-strong))}}:root,:host{--color-destructive-subtle:var(--color-rose-100);--color-destructive-strong:var(--color-rose-800);--color-info:var(--color-indigo-600);--color-info-contrast:var(--color-neutral-50);--color-info-hover:#4b36e9}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-info-hover:color-mix(in srgb, var(--color-info) 82%, var(--color-info-strong))}}:root,:host{--color-info-subtle:var(--color-indigo-100);--color-info-strong:var(--color-indigo-800);--breakpoint-xs:30rem}}@layer base{@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.sect{padding-inline:var(--layout-gutter);padding-block:var(--layout-section-block);flex-direction:column;justify-content:center;align-items:center;gap:clamp(2rem,5vw,4rem);display:flex}.sect-container,.sect-inn{width:100%;max-width:var(--container-max);flex-direction:column;gap:clamp(1.5rem,4vw,3rem);margin-inline:auto;display:flex}:is(.sect-container,.sect-inn).narrow{max-width:var(--container-narrow)}:is(.sect-container,.sect-inn).wide{max-width:var(--container-wide)}:is(.sect-container,.sect-inn).left{align-items:flex-start}:is(.sect-container,.sect-inn).right{align-items:flex-end}:is(.sect-container,.sect-inn).center{align-items:center}.stack{gap:var(--layout-stack-gap);flex-direction:column;display:flex}.stack.tight{--layout-stack-gap:.5rem}.stack.loose{--layout-stack-gap:1.5rem}.cluster{align-items:center;gap:var(--layout-cluster-gap);flex-wrap:wrap;display:flex}.cluster.between{justify-content:space-between}.auto-grid{gap:var(--layout-stack-gap);grid-template-columns:repeat(auto-fit, minmax(min(var(--layout-grid-min), 100%), 1fr));display:grid}.card,.panel{--surface-bg:var(--color-background);--surface-border:var(--color-border);--surface-border-hover:var(--color-border-hover);--surface-radius:var(--radius-surface);--surface-elevation:var(--elevation-low);gap:calc(var(--spacing) * 4);border-radius:var(--surface-radius);border-style:var(--tw-border-style);border-width:1px;border-color:var(--surface-border);background-color:var(--surface-bg);color:var(--color-text);--tw-shadow:var(--surface-elevation);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:border-color,box-shadow,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);flex-direction:column;padding:clamp(1rem,3vw,2rem);display:flex}:is(.card,.panel).interactive{cursor:pointer}:is(.card,.panel).interactive:hover,:is(.card,.panel)[data-state=open]{border-color:var(--surface-border-hover);transform:translateY(-1px)}.card{--surface-bg:var(--color-background)}.panel{--surface-bg:var(--color-foreground)}.btn{--button-color:var(--color-primary);--button-contrast:var(--color-primary-contrast);--button-hover:var(--color-primary-hover);--button-subtle:var(--color-primary-subtle);--button-strong:var(--color-primary-strong);--button-bg:var(--button-color);--button-fg:var(--button-contrast);--button-border:var(--button-bg);--button-hover-bg:var(--button-hover);--button-hover-fg:var(--button-fg);--button-hover-border:var(--button-hover-bg);--button-text:var(--button-strong);--button-soft-bg:var(--button-subtle);--button-subtle-hover-bg:var(--button-soft-bg)}@supports (color:color-mix(in lab, red, red)){.btn{--button-subtle-hover-bg:color-mix(in srgb, var(--button-soft-bg) 80%, transparent)}}.btn{--button-soft-hover-bg:var(--button-soft-bg)}@supports (color:color-mix(in lab, red, red)){.btn{--button-soft-hover-bg:color-mix(in srgb, var(--button-soft-bg) 84%, var(--button-text))}}.btn{--button-spinner:var(--button-fg);min-height:var(--control-height,2.5rem);justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-control);border-style:var(--tw-border-style);border-width:1px;border-color:var(--button-border);background-color:var(--button-bg);width:fit-content;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);white-space:nowrap;color:var(--button-fg);transition-property:background-color,border-color,color,opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-fast);transition-duration:var(--motion-duration-fast);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);-webkit-user-select:none;user-select:none;text-decoration-line:none;display:inline-flex;position:relative}.btn.primary{--button-color:var(--color-primary);--button-contrast:var(--color-primary-contrast);--button-hover:var(--color-primary-hover);--button-subtle:var(--color-primary-subtle);--button-strong:var(--color-primary-strong)}.btn.secondary{--button-color:var(--color-accent);--button-contrast:var(--color-accent-contrast);--button-hover:var(--color-accent-hover);--button-subtle:var(--color-accent-subtle);--button-strong:var(--color-accent-strong)}.btn.success{--button-color:var(--color-success);--button-contrast:var(--color-success-contrast);--button-hover:var(--color-success-hover);--button-subtle:var(--color-success-subtle);--button-strong:var(--color-success-strong)}.btn.warning{--button-color:var(--color-warning);--button-contrast:var(--color-warning-contrast);--button-hover:var(--color-warning-hover);--button-subtle:var(--color-warning-subtle);--button-strong:var(--color-warning-strong)}.btn.destructive,.btn.danger,.btn.error{--button-color:var(--color-destructive);--button-contrast:var(--color-destructive-contrast);--button-hover:var(--color-destructive-hover);--button-subtle:var(--color-destructive-subtle);--button-strong:var(--color-destructive-strong)}.btn.info{--button-color:var(--color-info);--button-contrast:var(--color-info-contrast);--button-hover:var(--color-info-hover);--button-subtle:var(--color-info-subtle);--button-strong:var(--color-info-strong)}.btn.out{--button-spinner:var(--button-text);border-style:var(--tw-border-style);border-width:2px;border-color:var(--button-color);color:var(--button-color);background-color:#0000}.btn.out:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover{border-color:var(--button-color);background-color:var(--button-subtle);color:var(--button-color)}.btn.out.fill:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover{border-color:var(--button-color);background-color:var(--button-color);color:var(--button-contrast)}.btn.ghost{--button-spinner:var(--button-text);color:var(--button-text);background-color:#0000;border-color:#0000}.btn.ghost:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover{background-color:var(--button-subtle-hover-bg);color:var(--button-text);border-color:#0000}.btn.soft{--button-spinner:var(--button-text);background-color:var(--button-soft-bg);color:var(--button-text);border-color:#0000}.btn.soft:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover{background-color:var(--button-soft-hover-bg);color:var(--button-text);border-color:#0000}.btn.sm{min-height:calc(var(--spacing) * 8);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.btn.lg{min-height:calc(var(--spacing) * 12);padding-inline:calc(var(--spacing) * 5);padding-block:calc(var(--spacing) * 2.5);font-size:1.0625rem}.btn.icon{aspect-ratio:1;min-width:var(--control-height,2.5rem);padding:calc(var(--spacing) * 2);aspect-ratio:1}.btn.pill{border-radius:3.40282e38px}.btn:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover:not(.out,.ghost,.soft){border-color:var(--button-hover-border);background-color:var(--button-hover-bg);color:var(--button-hover-fg)}.btn:disabled,.btn.disabled,.btn[aria-disabled=true],.btn[data-disabled]{cursor:not-allowed;opacity:.58}.btn.loading{pointer-events:none;transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));color:#0000!important}.btn.loading:after{top:calc(50% + var(--border-width));left:calc(50% + var(--border-width));width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);background-color:var(--button-spinner);content:"";border-radius:3.40282e38px;display:block;position:absolute;-webkit-mask-image:url("data:image/svg+xml;utf8,<svg stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class=\"spinner_V8m1\"><circle cx=\"12\" cy=\"12\" r=\"9.5\" fill=\"none\" stroke-width=\"3\"></circle></g></svg>");mask-image:url("data:image/svg+xml;utf8,<svg stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class=\"spinner_V8m1\"><circle cx=\"12\" cy=\"12\" r=\"9.5\" fill=\"none\" stroke-width=\"3\"></circle></g></svg>");-webkit-mask-size:contain;mask-size:contain}.field{gap:calc(var(--spacing) * 1.5);flex-direction:column;width:100%;display:flex}.field .label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-text)}.field .hint{color:var(--color-text-secondary);font-size:.8125rem}.field .error:not(.btn),-error.field{--tw-font-weight:var(--font-weight-medium);font-size:.8125rem;font-weight:var(--font-weight-medium);color:var(--color-destructive)}.ipt,.textarea,.select{--control-bg:var(--color-background);--control-border:var(--color-border);--control-border-active:var(--color-primary);--control-fg:var(--color-text);--control-placeholder:var(--color-text-secondary);min-height:var(--control-height,2.5rem);border-radius:var(--radius-control);border-style:var(--tw-border-style);border-width:1px;border-color:var(--control-border);background-color:var(--control-bg);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);color:var(--control-fg);transition-property:border-color,box-shadow,color,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-fast);transition-duration:var(--motion-duration-fast);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease)}:is(.ipt,.textarea,.select)::placeholder{color:var(--control-placeholder)}:is(.ipt,.textarea,.select):focus{--tw-outline-style:none;outline-style:none}:is(.ipt,.textarea,.select):focus-visible{border-color:var(--control-border-active);box-shadow:0 0 0 var(--focus-ring-width) var(--focus-ring)}:is(.ipt,.textarea,.select)[aria-invalid=true]{--control-border:var(--color-destructive);--control-border-active:var(--color-destructive)}:is(.ipt,.textarea,.select):disabled,:is(.ipt,.textarea,.select)[aria-disabled=true],:is(.ipt,.textarea,.select)[data-disabled]{cursor:not-allowed;opacity:.58}.textarea{min-height:calc(var(--spacing) * 28);resize:vertical}.select{appearance:none}input[type=checkbox].checkbox{--control-color:var(--color-primary);--control-contrast:var(--color-primary-contrast);width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);cursor:pointer;appearance:none;border-radius:var(--radius-sm);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border);background-color:var(--color-background);transition-property:background-color,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);place-content:center;display:inline-grid}input[type=checkbox].checkbox:hover{border-color:var(--color-border-hover)}input[type=checkbox].checkbox:focus{--tw-outline-style:none;outline-style:none}input[type=checkbox].checkbox:focus-visible{border-color:var(--control-color);box-shadow:0 0 0 var(--focus-ring-width) var(--focus-ring)}input[type=checkbox].checkbox:after{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3);opacity:0;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);background-color:var(--control-contrast);content:"";display:block;-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>");-webkit-mask-size:contain;mask-size:contain}input[type=checkbox].checkbox:checked{border-color:var(--control-color);background-color:var(--control-color)}input[type=checkbox].checkbox:checked:after{opacity:1}input[type=checkbox].checkbox.success{--control-color:var(--color-success);--control-contrast:var(--color-success-contrast)}input[type=checkbox].checkbox.warning{--control-color:var(--color-warning);--control-contrast:var(--color-warning-contrast)}input[type=checkbox].checkbox.destructive,input[type=checkbox].checkbox.danger,input[type=checkbox].checkbox.error{--control-color:var(--color-destructive);--control-contrast:var(--color-destructive-contrast)}input[type=checkbox].checkbox.info{--control-color:var(--color-info);--control-contrast:var(--color-info-contrast)}input[type=checkbox].checkbox[aria-invalid=true]{border-color:var(--color-destructive)}input[type=checkbox].checkbox:disabled,input[type=checkbox].checkbox[aria-disabled=true],input[type=checkbox].checkbox[data-disabled]{cursor:not-allowed;opacity:.58}input[type=checkbox].switch{--control-color:var(--color-primary);--control-contrast:var(--color-primary-contrast);height:calc(var(--spacing) * 4.5);width:calc(var(--spacing) * 9);cursor:pointer;appearance:none;background-color:var(--color-surface);transition-property:background-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);border-radius:3.40282e38px;position:relative}input[type=checkbox].switch:after{top:calc(var(--spacing) * .5);left:calc(var(--spacing) * .5);width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5);background-color:var(--color-text-secondary);transition-property:transform,translate,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);content:"";border-radius:3.40282e38px;position:absolute}input[type=checkbox].switch:hover{border-color:var(--color-border-hover)}input[type=checkbox].switch:focus{--tw-outline-style:none;outline-style:none}input[type=checkbox].switch:focus-visible{border-color:var(--control-color);box-shadow:0 0 0 var(--focus-ring-width) var(--focus-ring)}input[type=checkbox].switch:checked{border-color:var(--control-color);background-color:var(--control-color)}input[type=checkbox].switch:checked:after{--tw-translate-x:calc(var(--spacing) * 4.5);translate:var(--tw-translate-x) var(--tw-translate-y);background-color:var(--control-contrast)}input[type=checkbox].switch.success{--control-color:var(--color-success);--control-contrast:var(--color-success-contrast)}input[type=checkbox].switch.warning{--control-color:var(--color-warning);--control-contrast:var(--color-warning-contrast)}input[type=checkbox].switch.destructive,input[type=checkbox].switch.danger,input[type=checkbox].switch.error{--control-color:var(--color-destructive);--control-contrast:var(--color-destructive-contrast)}input[type=checkbox].switch.info{--control-color:var(--color-info);--control-contrast:var(--color-info-contrast)}input[type=checkbox].switch[aria-invalid=true]{border-color:var(--color-destructive)}input[type=checkbox].switch:disabled,input[type=checkbox].switch[aria-disabled=true],input[type=checkbox].switch[data-disabled]{cursor:not-allowed;opacity:.58}.alert,.toast,.badge,.banner{--feedback-color:var(--color-info);--feedback-surface:var(--feedback-color)}@supports (color:color-mix(in lab, red, red)){.alert,.toast,.badge,.banner{--feedback-surface:color-mix(in srgb, var(--feedback-color) 12%, var(--color-background))}}.alert,.toast,.badge,.banner{--feedback-border:var(--feedback-color)}@supports (color:color-mix(in lab, red, red)){.alert,.toast,.badge,.banner{--feedback-border:color-mix(in srgb, var(--feedback-color) 42%, var(--color-border))}}.alert,.toast,.badge,.banner{border-style:var(--tw-border-style);border-width:1px;border-color:var(--feedback-border);color:var(--feedback-color)}:is(.alert,.toast,.badge,.banner).success{--feedback-color:var(--color-success)}:is(.alert,.toast,.badge,.banner).warning{--feedback-color:var(--color-warning)}:is(.alert,.toast,.badge,.banner).destructive,:is(.alert,.toast,.badge,.banner).danger,:is(.alert,.toast,.badge,.banner).error{--feedback-color:var(--color-destructive)}:is(.alert,.toast,.badge,.banner).info{--feedback-color:var(--color-info)}.alert,.toast,.banner{gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 4);display:flex}.alert{border-radius:var(--radius-surface);background-color:var(--feedback-surface)}.toast{top:calc(var(--spacing) * 4);right:calc(var(--spacing) * 4);z-index:var(--z-toast);border-radius:var(--radius-overlay);background-color:oklch(98.5% 0 0);max-width:min(24rem,100vw - 2rem);position:fixed}@supports (color:color-mix(in lab, red, red)){.toast{background-color:color-mix(in srgb,var(--color-background) 92%,var(--feedback-color))}}.toast{--tw-shadow:var(--elevation-overlay);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.banner{border-inline-style:var(--tw-border-style);background-color:var(--feedback-surface);border-inline-width:0;border-radius:0}.badge{min-height:calc(var(--spacing) * 6);align-items:center;gap:calc(var(--spacing) * 1);background-color:var(--feedback-surface);width:fit-content;padding-inline:calc(var(--spacing) * 2.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);border-radius:3.40282e38px;display:inline-flex}.spinner{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6);background-color:var(--color-text);border-radius:3.40282e38px;display:inline-block}.spinner.lg{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.spinner.sm{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.spinner{content:"";-webkit-mask-image:url("data:image/svg+xml;utf8,<svg stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class=\"spinner_V8m1\"><circle cx=\"12\" cy=\"12\" r=\"9.5\" fill=\"none\" stroke-width=\"3\"></circle></g></svg>");mask-image:url("data:image/svg+xml;utf8,<svg stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class=\"spinner_V8m1\"><circle cx=\"12\" cy=\"12\" r=\"9.5\" fill=\"none\" stroke-width=\"3\"></circle></g></svg>");-webkit-mask-size:contain;mask-size:contain}.skeleton{min-height:calc(var(--spacing) * 4);border-radius:var(--radius-control);width:100%;animation:codenhub-skeleton var(--motion-duration-slow) linear infinite;background:linear-gradient(90deg, var(--color-surface), var(--color-foreground), var(--color-surface));background-size:200% 100%}.progress{--progress-color:var(--color-primary);--progress-surface:var(--color-surface);height:calc(var(--spacing) * 2.5);background-color:var(--progress-surface);border-radius:3.40282e38px;width:100%;overflow:hidden}.progress>*{height:100%;transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-slow);transition-duration:var(--motion-duration-slow);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);background-color:var(--progress-color);width:var(--progress-value,0%);display:block}.progress.success{--progress-color:var(--color-success);--progress-surface:color-mix(oklch(95% .052 163.051) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.progress.success{--progress-surface:color-mix(var(--color-success-subtle) 60%, transparent)}}.progress.warning{--progress-color:var(--color-warning);--progress-surface:color-mix(oklch(96.2% .059 95.617) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.progress.warning{--progress-surface:color-mix(var(--color-warning-subtle) 60%, transparent)}}.progress.destructive,.progress.danger,.progress.error{--progress-color:var(--color-destructive);--progress-surface:color-mix(oklch(94.1% .03 12.58) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.progress.destructive,.progress.danger,.progress.error{--progress-surface:color-mix(var(--color-destructive-subtle) 60%, transparent)}}.progress.info{--progress-color:var(--color-info);--progress-surface:color-mix(oklch(93% .034 272.788) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.progress.info{--progress-surface:color-mix(var(--color-info-subtle) 60%, transparent)}}.empty-state{align-items:center;gap:calc(var(--spacing) * 3);text-align:center;color:var(--color-text-secondary);flex-direction:column;padding:clamp(2rem,8vw,5rem);display:flex}.tooltip{--tooltip-bg:var(--color-surface);--tooltip-fg:var(--color-text);--tooltip-gap:.5rem;--tooltip-top:calc(var(--tooltip-gap) * -1);--tooltip-right:auto;--tooltip-bottom:auto;--tooltip-left:50%;--tooltip-origin:bottom;--tooltip-transform:translate(-50%, -100%);position:relative}.tooltip.icon{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:default;background-color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-text);border-radius:3.40282e38px;justify-content:center;align-items:center;display:inline-flex}.tooltip[data-tooltip-position=bottom]{--tooltip-top:auto;--tooltip-bottom:calc(var(--tooltip-gap) * -1);--tooltip-origin:top;--tooltip-transform:translate(-50%, 100%)}.tooltip[data-tooltip-position=left]{--tooltip-top:50%;--tooltip-left:calc(var(--tooltip-gap) * -1);--tooltip-origin:right;--tooltip-transform:translate(-100%, -50%)}.tooltip[data-tooltip-position=right]{--tooltip-top:50%;--tooltip-left:auto;--tooltip-right:calc(var(--tooltip-gap) * -1);--tooltip-origin:left;--tooltip-transform:translate(100%, -50%)}.tooltip:after{pointer-events:none;z-index:var(--z-popover);width:max-content;max-width:calc(var(--spacing) * 72);border-radius:var(--radius-control);background-color:var(--tooltip-bg);padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);white-space:normal;color:var(--tooltip-fg);opacity:0;--tw-shadow:var(--elevation-high);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);content:attr(data-tooltip);left:var(--tooltip-left);right:var(--tooltip-right);top:var(--tooltip-top);bottom:var(--tooltip-bottom);transform:var(--tooltip-transform) scale(0);transform-origin:var(--tooltip-origin);position:absolute}.tooltip:hover:after,.tooltip:focus-visible:after,.tooltip[data-state=open]:after{opacity:1;transform:var(--tooltip-transform) scale(1)}[aria-current=page]{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-primary)}@media not all and (min-width:40rem){.sect{align-items:stretch}.toast{right:calc(var(--spacing) * 4);left:calc(var(--spacing) * 4);max-width:none}}@media (forced-colors:active){.btn,.ipt,.textarea,.select,.card,.panel,.alert,.toast,.badge{border-color:canvastext}}}@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.container{width:100%}@media (min-width:30rem){.container{max-width:30rem}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:90rem){.container{max-width:90rem}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-border{border-color:var(--color-border)}.bg-background{background-color:var(--color-background)}.p-4{padding:calc(var(--spacing) * 4)}.font-default{font-family:var(--font-default)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-text{color:var(--color-text)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (min-width:30rem){.xs\:flex{display:flex}}.dark\:text-primary:where(.dark,.dark *){color:var(--color-primary)}}:root{color-scheme:light;--container-narrow:48rem;--container-max:80rem;--container-wide:90rem;--layout-gutter:clamp(1rem, 4vw, 2rem);--layout-section-block:clamp(4rem, 9vw, 7rem);--layout-stack-gap:1rem;--layout-cluster-gap:.75rem;--layout-grid-min:16rem;--radius-control:.5rem;--radius-surface:.875rem;--radius-overlay:.75rem;--control-height:2.5rem;--border-width:1px;--elevation-low:0 1px 2px #0f172a0f, 0 1px 3px #0f172a14;--elevation-mid:0 4px 6px -1px #0f172a14, 0 2px 4px -2px #0f172a14;--elevation-high:0 20px 25px -5px #0f172a1a, 0 8px 10px -6px #0f172a1a;--elevation-overlay:0 24px 48px #0f172a2e;--focus-ring:#0a0a0aa3}@supports (color:color-mix(in lab, red, red)){:root{--focus-ring:color-mix(in srgb, var(--color-primary) 64%, transparent)}}:root{--focus-ring-offset:2px;--focus-ring-width:3px;--motion-duration-fast:.12s;--motion-duration-normal:.2s;--motion-duration-slow:.4s;--motion-ease:cubic-bezier(.2, 0, 0, 1);--backdrop-overlay:blur(16px);--z-popover:40;--z-toast:60}.dark{color-scheme:dark;--color-primary:var(--color-neutral-50);--color-primary-contrast:var(--color-neutral-950);--color-primary-hover:var(--color-neutral-200);--color-primary-subtle:var(--color-neutral-900);--color-primary-strong:var(--color-neutral-100);--color-accent:var(--color-neutral-700);--color-accent-contrast:var(--color-neutral-50);--color-accent-hover:var(--color-neutral-500);--color-accent-subtle:var(--color-neutral-800);--color-accent-strong:var(--color-neutral-200);--color-border:var(--color-neutral-700);--color-border-hover:var(--color-neutral-500);--color-background:var(--color-neutral-950);--color-foreground:var(--color-neutral-900);--color-surface:var(--color-neutral-800);--color-text:var(--color-neutral-50);--color-text-secondary:var(--color-neutral-400);--color-success:var(--color-emerald-600);--color-success-contrast:var(--color-neutral-50);--color-success-hover:#008d61}@supports (color:color-mix(in lab, red, red)){.dark{--color-success-hover:color-mix(in srgb, var(--color-success) 82%, var(--color-success-strong))}}.dark{--color-success-subtle:var(--color-emerald-800);--color-success-strong:var(--color-emerald-100);--color-warning:var(--color-amber-600);--color-warning-contrast:var(--color-neutral-50);--color-warning-hover:#d06a00}@supports (color:color-mix(in lab, red, red)){.dark{--color-warning-hover:color-mix(in srgb, var(--color-warning) 82%, var(--color-warning-strong))}}.dark{--color-warning-subtle:var(--color-amber-800);--color-warning-strong:var(--color-amber-100);--color-destructive:var(--color-rose-700);--color-destructive-contrast:var(--color-neutral-50);--color-destructive-hover:#bc0039}@supports (color:color-mix(in lab, red, red)){.dark{--color-destructive-hover:color-mix(in srgb, var(--color-destructive) 82%, var(--color-destructive-strong))}}.dark{--color-destructive-subtle:var(--color-rose-800);--color-destructive-strong:var(--color-rose-100);--color-info:var(--color-indigo-600);--color-info-contrast:var(--color-neutral-50);--color-info-hover:#4b36e9}@supports (color:color-mix(in lab, red, red)){.dark{--color-info-hover:color-mix(in srgb, var(--color-info) 82%, var(--color-info-strong))}}.dark{--color-info-subtle:var(--color-indigo-800);--color-info-strong:var(--color-indigo-100)}@keyframes codenhub-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}
package/dist/index.css ADDED
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-100:oklch(96.2% .059 95.617);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-800:oklch(43.2% .095 166.913);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-800:oklch(39.8% .195 277.366);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--spacing:.25rem;--breakpoint-2xl:90rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--radius-sm:.25rem;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-default:"Segoe UI", system-ui, sans-serif;--color-primary:var(--color-neutral-950);--color-primary-contrast:var(--color-neutral-50);--color-primary-hover:var(--color-neutral-700);--color-primary-subtle:var(--color-neutral-200);--color-primary-strong:var(--color-neutral-900);--color-accent:var(--color-neutral-300);--color-accent-contrast:var(--color-neutral-950);--color-accent-hover:var(--color-neutral-400);--color-accent-subtle:var(--color-neutral-200);--color-accent-strong:var(--color-neutral-800);--color-border:var(--color-neutral-300);--color-border-hover:var(--color-neutral-600);--color-background:var(--color-neutral-50);--color-foreground:var(--color-neutral-100);--color-surface:var(--color-neutral-200);--color-text:var(--color-neutral-950);--color-text-secondary:var(--color-neutral-700);--color-success:var(--color-emerald-600);--color-success-contrast:var(--color-neutral-50);--color-success-hover:#008d61}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-success-hover:color-mix(in srgb, var(--color-success) 82%, var(--color-success-strong))}}:root,:host{--color-success-subtle:var(--color-emerald-100);--color-success-strong:var(--color-emerald-800);--color-warning:var(--color-amber-600);--color-warning-contrast:var(--color-neutral-50);--color-warning-hover:#d06a00}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-warning-hover:color-mix(in srgb, var(--color-warning) 82%, var(--color-warning-strong))}}:root,:host{--color-warning-subtle:var(--color-amber-100);--color-warning-strong:var(--color-amber-800);--color-destructive:var(--color-rose-700);--color-destructive-contrast:var(--color-neutral-50);--color-destructive-hover:#bc0039}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-destructive-hover:color-mix(in srgb, var(--color-destructive) 82%, var(--color-destructive-strong))}}:root,:host{--color-destructive-subtle:var(--color-rose-100);--color-destructive-strong:var(--color-rose-800);--color-info:var(--color-indigo-600);--color-info-contrast:var(--color-neutral-50);--color-info-hover:#4b36e9}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-info-hover:color-mix(in srgb, var(--color-info) 82%, var(--color-info-strong))}}:root,:host{--color-info-subtle:var(--color-indigo-100);--color-info-strong:var(--color-indigo-800);--breakpoint-xs:30rem}}@layer base{@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}::-webkit-scrollbar{width:calc(var(--spacing) * 4)}::-webkit-scrollbar-thumb{background:var(--color-primary);border:var(--spacing) solid var(--color-background);border-radius:calc(var(--spacing) * 2)}html,body{background-color:var(--color-background);min-height:100dvh;font-family:var(--font-default);color:var(--color-text);overflow-x:hidden}body{flex-direction:column;display:flex}button:not(:disabled){cursor:pointer}img{-webkit-user-select:none;user-select:none}::selection{background:var(--color-primary);color:var(--color-primary-contrast)}.selection-contrast::selection{background:var(--color-primary-contrast);color:var(--color-primary)}.selection-contrast ::selection{background:var(--color-primary-contrast);color:var(--color-primary)}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}p,li,a{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}}@layer components{.sect{padding-inline:var(--layout-gutter);padding-block:var(--layout-section-block);flex-direction:column;justify-content:center;align-items:center;gap:clamp(2rem,5vw,4rem);display:flex}.sect-container,.sect-inn{width:100%;max-width:var(--container-max);flex-direction:column;gap:clamp(1.5rem,4vw,3rem);margin-inline:auto;display:flex}:is(.sect-container,.sect-inn).narrow{max-width:var(--container-narrow)}:is(.sect-container,.sect-inn).wide{max-width:var(--container-wide)}:is(.sect-container,.sect-inn).left{align-items:flex-start}:is(.sect-container,.sect-inn).right{align-items:flex-end}:is(.sect-container,.sect-inn).center{align-items:center}.stack{gap:var(--layout-stack-gap);flex-direction:column;display:flex}.stack.tight{--layout-stack-gap:.5rem}.stack.loose{--layout-stack-gap:1.5rem}.cluster{align-items:center;gap:var(--layout-cluster-gap);flex-wrap:wrap;display:flex}.cluster.between{justify-content:space-between}.auto-grid{gap:var(--layout-stack-gap);grid-template-columns:repeat(auto-fit, minmax(min(var(--layout-grid-min), 100%), 1fr));display:grid}.card,.panel{--surface-bg:var(--color-background);--surface-border:var(--color-border);--surface-border-hover:var(--color-border-hover);--surface-radius:var(--radius-surface);--surface-elevation:var(--elevation-low);gap:calc(var(--spacing) * 4);border-radius:var(--surface-radius);border-style:var(--tw-border-style);border-width:1px;border-color:var(--surface-border);background-color:var(--surface-bg);color:var(--color-text);--tw-shadow:var(--surface-elevation);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:border-color,box-shadow,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);flex-direction:column;padding:clamp(1rem,3vw,2rem);display:flex}:is(.card,.panel).interactive{cursor:pointer}:is(.card,.panel).interactive:hover,:is(.card,.panel)[data-state=open]{border-color:var(--surface-border-hover);transform:translateY(-1px)}.card{--surface-bg:var(--color-background)}.panel{--surface-bg:var(--color-foreground)}.btn{--button-color:var(--color-primary);--button-contrast:var(--color-primary-contrast);--button-hover:var(--color-primary-hover);--button-subtle:var(--color-primary-subtle);--button-strong:var(--color-primary-strong);--button-bg:var(--button-color);--button-fg:var(--button-contrast);--button-border:var(--button-bg);--button-hover-bg:var(--button-hover);--button-hover-fg:var(--button-fg);--button-hover-border:var(--button-hover-bg);--button-text:var(--button-strong);--button-soft-bg:var(--button-subtle);--button-subtle-hover-bg:var(--button-soft-bg)}@supports (color:color-mix(in lab, red, red)){.btn{--button-subtle-hover-bg:color-mix(in srgb, var(--button-soft-bg) 80%, transparent)}}.btn{--button-soft-hover-bg:var(--button-soft-bg)}@supports (color:color-mix(in lab, red, red)){.btn{--button-soft-hover-bg:color-mix(in srgb, var(--button-soft-bg) 84%, var(--button-text))}}.btn{--button-spinner:var(--button-fg);min-height:var(--control-height,2.5rem);justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-control);border-style:var(--tw-border-style);border-width:1px;border-color:var(--button-border);background-color:var(--button-bg);width:fit-content;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);white-space:nowrap;color:var(--button-fg);transition-property:background-color,border-color,color,opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-fast);transition-duration:var(--motion-duration-fast);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);-webkit-user-select:none;user-select:none;text-decoration-line:none;display:inline-flex;position:relative}.btn.primary{--button-color:var(--color-primary);--button-contrast:var(--color-primary-contrast);--button-hover:var(--color-primary-hover);--button-subtle:var(--color-primary-subtle);--button-strong:var(--color-primary-strong)}.btn.secondary{--button-color:var(--color-accent);--button-contrast:var(--color-accent-contrast);--button-hover:var(--color-accent-hover);--button-subtle:var(--color-accent-subtle);--button-strong:var(--color-accent-strong)}.btn.success{--button-color:var(--color-success);--button-contrast:var(--color-success-contrast);--button-hover:var(--color-success-hover);--button-subtle:var(--color-success-subtle);--button-strong:var(--color-success-strong)}.btn.warning{--button-color:var(--color-warning);--button-contrast:var(--color-warning-contrast);--button-hover:var(--color-warning-hover);--button-subtle:var(--color-warning-subtle);--button-strong:var(--color-warning-strong)}.btn.destructive,.btn.danger,.btn.error{--button-color:var(--color-destructive);--button-contrast:var(--color-destructive-contrast);--button-hover:var(--color-destructive-hover);--button-subtle:var(--color-destructive-subtle);--button-strong:var(--color-destructive-strong)}.btn.info{--button-color:var(--color-info);--button-contrast:var(--color-info-contrast);--button-hover:var(--color-info-hover);--button-subtle:var(--color-info-subtle);--button-strong:var(--color-info-strong)}.btn.out{--button-spinner:var(--button-text);border-style:var(--tw-border-style);border-width:2px;border-color:var(--button-color);color:var(--button-color);background-color:#0000}.btn.out:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover{border-color:var(--button-color);background-color:var(--button-subtle);color:var(--button-color)}.btn.out.fill:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover{border-color:var(--button-color);background-color:var(--button-color);color:var(--button-contrast)}.btn.ghost{--button-spinner:var(--button-text);color:var(--button-text);background-color:#0000;border-color:#0000}.btn.ghost:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover{background-color:var(--button-subtle-hover-bg);color:var(--button-text);border-color:#0000}.btn.soft{--button-spinner:var(--button-text);background-color:var(--button-soft-bg);color:var(--button-text);border-color:#0000}.btn.soft:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover{background-color:var(--button-soft-hover-bg);color:var(--button-text);border-color:#0000}.btn.sm{min-height:calc(var(--spacing) * 8);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.btn.lg{min-height:calc(var(--spacing) * 12);padding-inline:calc(var(--spacing) * 5);padding-block:calc(var(--spacing) * 2.5);font-size:1.0625rem}.btn.icon{aspect-ratio:1;min-width:var(--control-height,2.5rem);padding:calc(var(--spacing) * 2);aspect-ratio:1}.btn.pill{border-radius:3.40282e38px}.btn:not(:disabled,.disabled,[aria-disabled=true],[data-disabled]):hover:not(.out,.ghost,.soft){border-color:var(--button-hover-border);background-color:var(--button-hover-bg);color:var(--button-hover-fg)}.btn:disabled,.btn.disabled,.btn[aria-disabled=true],.btn[data-disabled]{cursor:not-allowed;opacity:.58}.btn.loading{pointer-events:none;transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));color:#0000!important}.btn.loading:after{top:calc(50% + var(--border-width));left:calc(50% + var(--border-width));width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);background-color:var(--button-spinner);content:"";border-radius:3.40282e38px;display:block;position:absolute;-webkit-mask-image:url("data:image/svg+xml;utf8,<svg stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class=\"spinner_V8m1\"><circle cx=\"12\" cy=\"12\" r=\"9.5\" fill=\"none\" stroke-width=\"3\"></circle></g></svg>");mask-image:url("data:image/svg+xml;utf8,<svg stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class=\"spinner_V8m1\"><circle cx=\"12\" cy=\"12\" r=\"9.5\" fill=\"none\" stroke-width=\"3\"></circle></g></svg>");-webkit-mask-size:contain;mask-size:contain}.field{gap:calc(var(--spacing) * 1.5);flex-direction:column;width:100%;display:flex}.field .label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-text)}.field .hint{color:var(--color-text-secondary);font-size:.8125rem}.field .error:not(.btn),-error.field{--tw-font-weight:var(--font-weight-medium);font-size:.8125rem;font-weight:var(--font-weight-medium);color:var(--color-destructive)}.ipt,.textarea,.select{--control-bg:var(--color-background);--control-border:var(--color-border);--control-border-active:var(--color-primary);--control-fg:var(--color-text);--control-placeholder:var(--color-text-secondary);min-height:var(--control-height,2.5rem);border-radius:var(--radius-control);border-style:var(--tw-border-style);border-width:1px;border-color:var(--control-border);background-color:var(--control-bg);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);color:var(--control-fg);transition-property:border-color,box-shadow,color,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-fast);transition-duration:var(--motion-duration-fast);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease)}:is(.ipt,.textarea,.select)::placeholder{color:var(--control-placeholder)}:is(.ipt,.textarea,.select):focus{--tw-outline-style:none;outline-style:none}:is(.ipt,.textarea,.select):focus-visible{border-color:var(--control-border-active);box-shadow:0 0 0 var(--focus-ring-width) var(--focus-ring)}:is(.ipt,.textarea,.select)[aria-invalid=true]{--control-border:var(--color-destructive);--control-border-active:var(--color-destructive)}:is(.ipt,.textarea,.select):disabled,:is(.ipt,.textarea,.select)[aria-disabled=true],:is(.ipt,.textarea,.select)[data-disabled]{cursor:not-allowed;opacity:.58}.textarea{min-height:calc(var(--spacing) * 28);resize:vertical}.select{appearance:none}input[type=checkbox].checkbox{--control-color:var(--color-primary);--control-contrast:var(--color-primary-contrast);width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);cursor:pointer;appearance:none;border-radius:var(--radius-sm);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border);background-color:var(--color-background);transition-property:background-color,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);place-content:center;display:inline-grid}input[type=checkbox].checkbox:hover{border-color:var(--color-border-hover)}input[type=checkbox].checkbox:focus{--tw-outline-style:none;outline-style:none}input[type=checkbox].checkbox:focus-visible{border-color:var(--control-color);box-shadow:0 0 0 var(--focus-ring-width) var(--focus-ring)}input[type=checkbox].checkbox:after{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3);opacity:0;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);background-color:var(--control-contrast);content:"";display:block;-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>");-webkit-mask-size:contain;mask-size:contain}input[type=checkbox].checkbox:checked{border-color:var(--control-color);background-color:var(--control-color)}input[type=checkbox].checkbox:checked:after{opacity:1}input[type=checkbox].checkbox.success{--control-color:var(--color-success);--control-contrast:var(--color-success-contrast)}input[type=checkbox].checkbox.warning{--control-color:var(--color-warning);--control-contrast:var(--color-warning-contrast)}input[type=checkbox].checkbox.destructive,input[type=checkbox].checkbox.danger,input[type=checkbox].checkbox.error{--control-color:var(--color-destructive);--control-contrast:var(--color-destructive-contrast)}input[type=checkbox].checkbox.info{--control-color:var(--color-info);--control-contrast:var(--color-info-contrast)}input[type=checkbox].checkbox[aria-invalid=true]{border-color:var(--color-destructive)}input[type=checkbox].checkbox:disabled,input[type=checkbox].checkbox[aria-disabled=true],input[type=checkbox].checkbox[data-disabled]{cursor:not-allowed;opacity:.58}input[type=checkbox].switch{--control-color:var(--color-primary);--control-contrast:var(--color-primary-contrast);height:calc(var(--spacing) * 4.5);width:calc(var(--spacing) * 9);cursor:pointer;appearance:none;background-color:var(--color-surface);transition-property:background-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);border-radius:3.40282e38px;position:relative}input[type=checkbox].switch:after{top:calc(var(--spacing) * .5);left:calc(var(--spacing) * .5);width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5);background-color:var(--color-text-secondary);transition-property:transform,translate,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);content:"";border-radius:3.40282e38px;position:absolute}input[type=checkbox].switch:hover{border-color:var(--color-border-hover)}input[type=checkbox].switch:focus{--tw-outline-style:none;outline-style:none}input[type=checkbox].switch:focus-visible{border-color:var(--control-color);box-shadow:0 0 0 var(--focus-ring-width) var(--focus-ring)}input[type=checkbox].switch:checked{border-color:var(--control-color);background-color:var(--control-color)}input[type=checkbox].switch:checked:after{--tw-translate-x:calc(var(--spacing) * 4.5);translate:var(--tw-translate-x) var(--tw-translate-y);background-color:var(--control-contrast)}input[type=checkbox].switch.success{--control-color:var(--color-success);--control-contrast:var(--color-success-contrast)}input[type=checkbox].switch.warning{--control-color:var(--color-warning);--control-contrast:var(--color-warning-contrast)}input[type=checkbox].switch.destructive,input[type=checkbox].switch.danger,input[type=checkbox].switch.error{--control-color:var(--color-destructive);--control-contrast:var(--color-destructive-contrast)}input[type=checkbox].switch.info{--control-color:var(--color-info);--control-contrast:var(--color-info-contrast)}input[type=checkbox].switch[aria-invalid=true]{border-color:var(--color-destructive)}input[type=checkbox].switch:disabled,input[type=checkbox].switch[aria-disabled=true],input[type=checkbox].switch[data-disabled]{cursor:not-allowed;opacity:.58}.alert,.toast,.badge,.banner{--feedback-color:var(--color-info);--feedback-surface:var(--feedback-color)}@supports (color:color-mix(in lab, red, red)){.alert,.toast,.badge,.banner{--feedback-surface:color-mix(in srgb, var(--feedback-color) 12%, var(--color-background))}}.alert,.toast,.badge,.banner{--feedback-border:var(--feedback-color)}@supports (color:color-mix(in lab, red, red)){.alert,.toast,.badge,.banner{--feedback-border:color-mix(in srgb, var(--feedback-color) 42%, var(--color-border))}}.alert,.toast,.badge,.banner{border-style:var(--tw-border-style);border-width:1px;border-color:var(--feedback-border);color:var(--feedback-color)}:is(.alert,.toast,.badge,.banner).success{--feedback-color:var(--color-success)}:is(.alert,.toast,.badge,.banner).warning{--feedback-color:var(--color-warning)}:is(.alert,.toast,.badge,.banner).destructive,:is(.alert,.toast,.badge,.banner).danger,:is(.alert,.toast,.badge,.banner).error{--feedback-color:var(--color-destructive)}:is(.alert,.toast,.badge,.banner).info{--feedback-color:var(--color-info)}.alert,.toast,.banner{gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 4);display:flex}.alert{border-radius:var(--radius-surface);background-color:var(--feedback-surface)}.toast{top:calc(var(--spacing) * 4);right:calc(var(--spacing) * 4);z-index:var(--z-toast);border-radius:var(--radius-overlay);background-color:oklch(98.5% 0 0);max-width:min(24rem,100vw - 2rem);position:fixed}@supports (color:color-mix(in lab, red, red)){.toast{background-color:color-mix(in srgb,var(--color-background) 92%,var(--feedback-color))}}.toast{--tw-shadow:var(--elevation-overlay);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.banner{border-inline-style:var(--tw-border-style);background-color:var(--feedback-surface);border-inline-width:0;border-radius:0}.badge{min-height:calc(var(--spacing) * 6);align-items:center;gap:calc(var(--spacing) * 1);background-color:var(--feedback-surface);width:fit-content;padding-inline:calc(var(--spacing) * 2.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);border-radius:3.40282e38px;display:inline-flex}.spinner{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6);background-color:var(--color-text);border-radius:3.40282e38px;display:inline-block}.spinner.lg{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.spinner.sm{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.spinner{content:"";-webkit-mask-image:url("data:image/svg+xml;utf8,<svg stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class=\"spinner_V8m1\"><circle cx=\"12\" cy=\"12\" r=\"9.5\" fill=\"none\" stroke-width=\"3\"></circle></g></svg>");mask-image:url("data:image/svg+xml;utf8,<svg stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class=\"spinner_V8m1\"><circle cx=\"12\" cy=\"12\" r=\"9.5\" fill=\"none\" stroke-width=\"3\"></circle></g></svg>");-webkit-mask-size:contain;mask-size:contain}.skeleton{min-height:calc(var(--spacing) * 4);border-radius:var(--radius-control);width:100%;animation:codenhub-skeleton var(--motion-duration-slow) linear infinite;background:linear-gradient(90deg, var(--color-surface), var(--color-foreground), var(--color-surface));background-size:200% 100%}.progress{--progress-color:var(--color-primary);--progress-surface:var(--color-surface);height:calc(var(--spacing) * 2.5);background-color:var(--progress-surface);border-radius:3.40282e38px;width:100%;overflow:hidden}.progress>*{height:100%;transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-slow);transition-duration:var(--motion-duration-slow);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);background-color:var(--progress-color);width:var(--progress-value,0%);display:block}.progress.success{--progress-color:var(--color-success);--progress-surface:color-mix(oklch(95% .052 163.051) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.progress.success{--progress-surface:color-mix(var(--color-success-subtle) 60%, transparent)}}.progress.warning{--progress-color:var(--color-warning);--progress-surface:color-mix(oklch(96.2% .059 95.617) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.progress.warning{--progress-surface:color-mix(var(--color-warning-subtle) 60%, transparent)}}.progress.destructive,.progress.danger,.progress.error{--progress-color:var(--color-destructive);--progress-surface:color-mix(oklch(94.1% .03 12.58) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.progress.destructive,.progress.danger,.progress.error{--progress-surface:color-mix(var(--color-destructive-subtle) 60%, transparent)}}.progress.info{--progress-color:var(--color-info);--progress-surface:color-mix(oklch(93% .034 272.788) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.progress.info{--progress-surface:color-mix(var(--color-info-subtle) 60%, transparent)}}.empty-state{align-items:center;gap:calc(var(--spacing) * 3);text-align:center;color:var(--color-text-secondary);flex-direction:column;padding:clamp(2rem,8vw,5rem);display:flex}.tooltip{--tooltip-bg:var(--color-surface);--tooltip-fg:var(--color-text);--tooltip-gap:.5rem;--tooltip-top:calc(var(--tooltip-gap) * -1);--tooltip-right:auto;--tooltip-bottom:auto;--tooltip-left:50%;--tooltip-origin:bottom;--tooltip-transform:translate(-50%, -100%);position:relative}.tooltip.icon{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:default;background-color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-text);border-radius:3.40282e38px;justify-content:center;align-items:center;display:inline-flex}.tooltip[data-tooltip-position=bottom]{--tooltip-top:auto;--tooltip-bottom:calc(var(--tooltip-gap) * -1);--tooltip-origin:top;--tooltip-transform:translate(-50%, 100%)}.tooltip[data-tooltip-position=left]{--tooltip-top:50%;--tooltip-left:calc(var(--tooltip-gap) * -1);--tooltip-origin:right;--tooltip-transform:translate(-100%, -50%)}.tooltip[data-tooltip-position=right]{--tooltip-top:50%;--tooltip-left:auto;--tooltip-right:calc(var(--tooltip-gap) * -1);--tooltip-origin:left;--tooltip-transform:translate(100%, -50%)}.tooltip:after{pointer-events:none;z-index:var(--z-popover);width:max-content;max-width:calc(var(--spacing) * 72);border-radius:var(--radius-control);background-color:var(--tooltip-bg);padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);white-space:normal;color:var(--tooltip-fg);opacity:0;--tw-shadow:var(--elevation-high);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal);--tw-ease:var(--motion-ease);transition-timing-function:var(--motion-ease);content:attr(data-tooltip);left:var(--tooltip-left);right:var(--tooltip-right);top:var(--tooltip-top);bottom:var(--tooltip-bottom);transform:var(--tooltip-transform) scale(0);transform-origin:var(--tooltip-origin);position:absolute}.tooltip:hover:after,.tooltip:focus-visible:after,.tooltip[data-state=open]:after{opacity:1;transform:var(--tooltip-transform) scale(1)}[aria-current=page]{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-primary)}@media not all and (min-width:40rem){.sect{align-items:stretch}.toast{right:calc(var(--spacing) * 4);left:calc(var(--spacing) * 4);max-width:none}}@media (forced-colors:active){.btn,.ipt,.textarea,.select,.card,.panel,.alert,.toast,.badge{border-color:canvastext}}}@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.container{width:100%}@media (min-width:30rem){.container{max-width:30rem}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:90rem){.container{max-width:90rem}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-border{border-color:var(--color-border)}.bg-background{background-color:var(--color-background)}.p-4{padding:calc(var(--spacing) * 4)}.font-default{font-family:var(--font-default)}.text-display{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}@media (min-width:48rem){.text-display{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}}.text-title-lg{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}@media (min-width:48rem){.text-title-lg{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}}.text-body{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-label{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-label-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-title{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-title-sm{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-text{color:var(--color-text)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (min-width:30rem){.xs\:flex{display:flex}}.dark\:text-primary:where(.dark,.dark *){color:var(--color-primary)}}:root{color-scheme:light;--container-narrow:48rem;--container-max:80rem;--container-wide:90rem;--layout-gutter:clamp(1rem, 4vw, 2rem);--layout-section-block:clamp(4rem, 9vw, 7rem);--layout-stack-gap:1rem;--layout-cluster-gap:.75rem;--layout-grid-min:16rem;--radius-control:.5rem;--radius-surface:.875rem;--radius-overlay:.75rem;--control-height:2.5rem;--border-width:1px;--elevation-low:0 1px 2px #0f172a0f, 0 1px 3px #0f172a14;--elevation-mid:0 4px 6px -1px #0f172a14, 0 2px 4px -2px #0f172a14;--elevation-high:0 20px 25px -5px #0f172a1a, 0 8px 10px -6px #0f172a1a;--elevation-overlay:0 24px 48px #0f172a2e;--focus-ring:#0a0a0aa3}@supports (color:color-mix(in lab, red, red)){:root{--focus-ring:color-mix(in srgb, var(--color-primary) 64%, transparent)}}:root{--focus-ring-offset:2px;--focus-ring-width:3px;--motion-duration-fast:.12s;--motion-duration-normal:.2s;--motion-duration-slow:.4s;--motion-ease:cubic-bezier(.2, 0, 0, 1);--backdrop-overlay:blur(16px);--z-popover:40;--z-toast:60}.dark{color-scheme:dark;--color-primary:var(--color-neutral-50);--color-primary-contrast:var(--color-neutral-950);--color-primary-hover:var(--color-neutral-200);--color-primary-subtle:var(--color-neutral-900);--color-primary-strong:var(--color-neutral-100);--color-accent:var(--color-neutral-700);--color-accent-contrast:var(--color-neutral-50);--color-accent-hover:var(--color-neutral-500);--color-accent-subtle:var(--color-neutral-800);--color-accent-strong:var(--color-neutral-200);--color-border:var(--color-neutral-700);--color-border-hover:var(--color-neutral-500);--color-background:var(--color-neutral-950);--color-foreground:var(--color-neutral-900);--color-surface:var(--color-neutral-800);--color-text:var(--color-neutral-50);--color-text-secondary:var(--color-neutral-400);--color-success:var(--color-emerald-600);--color-success-contrast:var(--color-neutral-50);--color-success-hover:#008d61}@supports (color:color-mix(in lab, red, red)){.dark{--color-success-hover:color-mix(in srgb, var(--color-success) 82%, var(--color-success-strong))}}.dark{--color-success-subtle:var(--color-emerald-800);--color-success-strong:var(--color-emerald-100);--color-warning:var(--color-amber-600);--color-warning-contrast:var(--color-neutral-50);--color-warning-hover:#d06a00}@supports (color:color-mix(in lab, red, red)){.dark{--color-warning-hover:color-mix(in srgb, var(--color-warning) 82%, var(--color-warning-strong))}}.dark{--color-warning-subtle:var(--color-amber-800);--color-warning-strong:var(--color-amber-100);--color-destructive:var(--color-rose-700);--color-destructive-contrast:var(--color-neutral-50);--color-destructive-hover:#bc0039}@supports (color:color-mix(in lab, red, red)){.dark{--color-destructive-hover:color-mix(in srgb, var(--color-destructive) 82%, var(--color-destructive-strong))}}.dark{--color-destructive-subtle:var(--color-rose-800);--color-destructive-strong:var(--color-rose-100);--color-info:var(--color-indigo-600);--color-info-contrast:var(--color-neutral-50);--color-info-hover:#4b36e9}@supports (color:color-mix(in lab, red, red)){.dark{--color-info-hover:color-mix(in srgb, var(--color-info) 82%, var(--color-info-strong))}}.dark{--color-info-subtle:var(--color-indigo-800);--color-info-strong:var(--color-indigo-100)}@keyframes codenhub-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}
package/dist/theme.css ADDED
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-100:oklch(96.2% .059 95.617);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-800:oklch(43.2% .095 166.913);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-800:oklch(39.8% .195 277.366);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--spacing:.25rem;--breakpoint-2xl:90rem;--font-weight-medium:500;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-default:"Segoe UI", system-ui, sans-serif;--color-primary:var(--color-neutral-950);--color-primary-contrast:var(--color-neutral-50);--color-primary-hover:var(--color-neutral-700);--color-primary-subtle:var(--color-neutral-200);--color-primary-strong:var(--color-neutral-900);--color-accent:var(--color-neutral-300);--color-accent-contrast:var(--color-neutral-950);--color-accent-hover:var(--color-neutral-400);--color-accent-subtle:var(--color-neutral-200);--color-accent-strong:var(--color-neutral-800);--color-border:var(--color-neutral-300);--color-border-hover:var(--color-neutral-600);--color-background:var(--color-neutral-50);--color-foreground:var(--color-neutral-100);--color-surface:var(--color-neutral-200);--color-text:var(--color-neutral-950);--color-text-secondary:var(--color-neutral-700);--color-success:var(--color-emerald-600);--color-success-contrast:var(--color-neutral-50);--color-success-hover:#008d61}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-success-hover:color-mix(in srgb, var(--color-success) 82%, var(--color-success-strong))}}:root,:host{--color-success-subtle:var(--color-emerald-100);--color-success-strong:var(--color-emerald-800);--color-warning:var(--color-amber-600);--color-warning-contrast:var(--color-neutral-50);--color-warning-hover:#d06a00}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-warning-hover:color-mix(in srgb, var(--color-warning) 82%, var(--color-warning-strong))}}:root,:host{--color-warning-subtle:var(--color-amber-100);--color-warning-strong:var(--color-amber-800);--color-destructive:var(--color-rose-700);--color-destructive-contrast:var(--color-neutral-50);--color-destructive-hover:#bc0039}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-destructive-hover:color-mix(in srgb, var(--color-destructive) 82%, var(--color-destructive-strong))}}:root,:host{--color-destructive-subtle:var(--color-rose-100);--color-destructive-strong:var(--color-rose-800);--color-info:var(--color-indigo-600);--color-info-contrast:var(--color-neutral-50);--color-info-hover:#4b36e9}@supports (color:color-mix(in lab, red, red)){:root,:host{--color-info-hover:color-mix(in srgb, var(--color-info) 82%, var(--color-info-strong))}}:root,:host{--color-info-subtle:var(--color-indigo-100);--color-info-strong:var(--color-indigo-800);--breakpoint-xs:30rem}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.container{width:100%}@media (min-width:30rem){.container{max-width:30rem}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:90rem){.container{max-width:90rem}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-border{border-color:var(--color-border)}.bg-background{background-color:var(--color-background)}.p-4{padding:calc(var(--spacing) * 4)}.font-default{font-family:var(--font-default)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-text{color:var(--color-text)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (min-width:30rem){.xs\:flex{display:flex}}.dark\:text-primary:where(.dark,.dark *){color:var(--color-primary)}}:root{color-scheme:light;--container-narrow:48rem;--container-max:80rem;--container-wide:90rem;--layout-gutter:clamp(1rem, 4vw, 2rem);--layout-section-block:clamp(4rem, 9vw, 7rem);--layout-stack-gap:1rem;--layout-cluster-gap:.75rem;--layout-grid-min:16rem;--radius-control:.5rem;--radius-surface:.875rem;--radius-overlay:.75rem;--control-height:2.5rem;--border-width:1px;--elevation-low:0 1px 2px #0f172a0f, 0 1px 3px #0f172a14;--elevation-mid:0 4px 6px -1px #0f172a14, 0 2px 4px -2px #0f172a14;--elevation-high:0 20px 25px -5px #0f172a1a, 0 8px 10px -6px #0f172a1a;--elevation-overlay:0 24px 48px #0f172a2e;--focus-ring:#0a0a0aa3}@supports (color:color-mix(in lab, red, red)){:root{--focus-ring:color-mix(in srgb, var(--color-primary) 64%, transparent)}}:root{--focus-ring-offset:2px;--focus-ring-width:3px;--motion-duration-fast:.12s;--motion-duration-normal:.2s;--motion-duration-slow:.4s;--motion-ease:cubic-bezier(.2, 0, 0, 1);--backdrop-overlay:blur(16px);--z-popover:40;--z-toast:60}.dark{color-scheme:dark;--color-primary:var(--color-neutral-50);--color-primary-contrast:var(--color-neutral-950);--color-primary-hover:var(--color-neutral-200);--color-primary-subtle:var(--color-neutral-900);--color-primary-strong:var(--color-neutral-100);--color-accent:var(--color-neutral-700);--color-accent-contrast:var(--color-neutral-50);--color-accent-hover:var(--color-neutral-500);--color-accent-subtle:var(--color-neutral-800);--color-accent-strong:var(--color-neutral-200);--color-border:var(--color-neutral-700);--color-border-hover:var(--color-neutral-500);--color-background:var(--color-neutral-950);--color-foreground:var(--color-neutral-900);--color-surface:var(--color-neutral-800);--color-text:var(--color-neutral-50);--color-text-secondary:var(--color-neutral-400);--color-success:var(--color-emerald-600);--color-success-contrast:var(--color-neutral-50);--color-success-hover:#008d61}@supports (color:color-mix(in lab, red, red)){.dark{--color-success-hover:color-mix(in srgb, var(--color-success) 82%, var(--color-success-strong))}}.dark{--color-success-subtle:var(--color-emerald-800);--color-success-strong:var(--color-emerald-100);--color-warning:var(--color-amber-600);--color-warning-contrast:var(--color-neutral-50);--color-warning-hover:#d06a00}@supports (color:color-mix(in lab, red, red)){.dark{--color-warning-hover:color-mix(in srgb, var(--color-warning) 82%, var(--color-warning-strong))}}.dark{--color-warning-subtle:var(--color-amber-800);--color-warning-strong:var(--color-amber-100);--color-destructive:var(--color-rose-700);--color-destructive-contrast:var(--color-neutral-50);--color-destructive-hover:#bc0039}@supports (color:color-mix(in lab, red, red)){.dark{--color-destructive-hover:color-mix(in srgb, var(--color-destructive) 82%, var(--color-destructive-strong))}}.dark{--color-destructive-subtle:var(--color-rose-800);--color-destructive-strong:var(--color-rose-100);--color-info:var(--color-indigo-600);--color-info-contrast:var(--color-neutral-50);--color-info-hover:#4b36e9}@supports (color:color-mix(in lab, red, red)){.dark{--color-info-hover:color-mix(in srgb, var(--color-info) 82%, var(--color-info-strong))}}.dark{--color-info-subtle:var(--color-indigo-800);--color-info-strong:var(--color-indigo-100)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@codenhub/styles",
3
+ "version": "0.0.2",
4
+ "private": false,
5
+ "description": "CSS-only Codenhub design tokens, base styles, and composable UI helper classes.",
6
+ "homepage": "https://github.com/codenhub/codenhub/tree/main/packages/styles",
7
+ "license": "Apache-2.0",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/codenhub/codenhub.git",
11
+ "directory": "packages/styles"
12
+ },
13
+ "files": [
14
+ ".docs",
15
+ "dist",
16
+ "src"
17
+ ],
18
+ "type": "module",
19
+ "exports": {
20
+ ".": "./dist/index.css",
21
+ "./theme": "./dist/theme.css",
22
+ "./components": "./dist/components.css",
23
+ "./tw": "./src/index.css",
24
+ "./tw/theme": "./src/theme.css",
25
+ "./tw/components": "./src/components.css"
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "devDependencies": {
31
+ "@playwright/test": "^1.57.0",
32
+ "@tailwindcss/cli": "^4.3.0",
33
+ "@types/node": "^25.9.1",
34
+ "tailwindcss": "^4.3.0",
35
+ "typescript": "^6.0.3"
36
+ },
37
+ "peerDependencies": {
38
+ "tailwindcss": ">=4.0.0"
39
+ },
40
+ "peerDependenciesMeta": {
41
+ "tailwindcss": {
42
+ "optional": true
43
+ }
44
+ },
45
+ "scripts": {
46
+ "dev": "node ./scripts/dev.js",
47
+ "build": "pnpm build:styles",
48
+ "build:styles": "tailwindcss -i ./src/index.css -o ./dist/index.css --minify && tailwindcss -i ./src/theme.css -o ./dist/theme.css --minify && tailwindcss -i ./src/components.css -o ./dist/components.css --minify",
49
+ "status:npm": "npm view @codenhub/styles version dist-tags time --json && npm dist-tag ls @codenhub/styles && npm access get status @codenhub/styles",
50
+ "status:pack": "npm pack --dry-run",
51
+ "test": "pnpm typecheck && pnpm test:build && pnpm test:visual",
52
+ "test:build": "pnpm build && pnpm test:build:vanilla && pnpm test:build:tw",
53
+ "test:build:tw": "tailwindcss -i ./tests/build/index.css -o ./tests/build/output.css --minify",
54
+ "test:build:vanilla": "tailwindcss -i ./tests/vanilla/index.css -o ./tests/vanilla/output.css --minify",
55
+ "test:visual": "playwright test",
56
+ "test:watch": "playwright test --ui",
57
+ "typecheck": "tsc --project tsconfig.json --noEmit"
58
+ }
59
+ }