@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2'),
url('/fonts/ibm-plex-sans-latin-400-normal.woff') format('woff');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/fonts/ibm-plex-sans-latin-ext-400-normal.woff2') format('woff2'),
url('/fonts/ibm-plex-sans-latin-ext-400-normal.woff') format('woff');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url('/fonts/ibm-plex-sans-latin-500-normal.woff2') format('woff2'),
url('/fonts/ibm-plex-sans-latin-500-normal.woff') format('woff');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url('/fonts/ibm-plex-sans-latin-ext-500-normal.woff2') format('woff2'),
url('/fonts/ibm-plex-sans-latin-ext-500-normal.woff') format('woff');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('/fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2'),
url('/fonts/ibm-plex-sans-latin-600-normal.woff') format('woff');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('/fonts/ibm-plex-sans-latin-ext-600-normal.woff2') format('woff2'),
url('/fonts/ibm-plex-sans-latin-ext-600-normal.woff') format('woff');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/fonts/ibm-plex-sans-latin-700-normal.woff2') format('woff2'),
url('/fonts/ibm-plex-sans-latin-700-normal.woff') format('woff');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/fonts/ibm-plex-sans-latin-ext-700-normal.woff2') format('woff2'),
url('/fonts/ibm-plex-sans-latin-ext-700-normal.woff') format('woff');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
:root {
--primitive-neutral-950: 220 16% 11%;
--primitive-neutral-900: 217 32% 17%;
--primitive-neutral-800: 215 25% 27%;
--primitive-neutral-700: 217 19% 35%;
--primitive-neutral-600: 215 14% 48%;
--primitive-neutral-500: 220 9% 60%;
--primitive-neutral-400: 218 11% 73%;
--primitive-neutral-300: 216 12% 84%;
--primitive-neutral-200: 220 13% 91%;
--primitive-neutral-100: 220 14% 96%;
--primitive-neutral-50: 210 20% 98%;
--primitive-white: 0 0% 100%;
--primitive-black: 0 0% 0%;
--primitive-amber-500: 38 92% 50%;
--primitive-amber-600: 32 95% 44%;
--primitive-red-500: 0 84% 60%;
--primitive-red-600: 0 72% 51%;
--primitive-green-500: 142 71% 45%;
--primitive-green-600: 142 76% 36%;
--primitive-space-0: 0;
--primitive-space-1: 0.25rem;
--primitive-space-2: 0.5rem;
--primitive-space-3: 0.75rem;
--primitive-space-4: 1rem;
--primitive-space-5: 1.25rem;
--primitive-space-6: 1.5rem;
--primitive-space-8: 2rem;
--primitive-space-12: 3rem;
--primitive-space-16: 4rem;
--primitive-space-24: 6rem;
--primitive-space-10: 2.5rem;
--primitive-radius-0: 0;
--primitive-radius-1: 0.25rem;
--primitive-radius-2: 0.375rem;
--primitive-radius-3: 0.5rem;
--primitive-radius-full: 9999px;
--primitive-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.05);
--primitive-shadow-md: 0 4px 6px rgb(0 0 0 / 0.1);
--primitive-shadow-lg: 0 10px 15px rgb(0 0 0 / 0.15);
--primitive-shadow-xs: 0 1px 2px rgb(0 0 0 / 0.05);
--primitive-shadow-xl: 0 12px 24px rgb(0 0 0 / 0.12);
--primitive-shadow-2xl: 0 20px 40px rgb(0 0 0 / 0.14);
--primitive-overlay-30: rgba(0, 0, 0, 0.3);
--primitive-overlay-50: rgba(0, 0, 0, 0.5);
--primitive-overlay-80: rgba(0, 0, 0, 0.8);
--primitive-divider: rgba(0, 0, 0, 0.08);
--primitive-font-sans: ui-sans-serif, system-ui, sans-serif;
--primitive-font-mono: ui-monospace, monospace;
--primitive-font-serif: ui-serif, Georgia, serif;
--primitive-primary-h: 239;
--primitive-primary-s: 84%;
--primitive-primary-l: 67%;
--primitive-font-size-1: 0.75rem;
--primitive-font-size-2: 0.875rem;
--primitive-font-size-3: 1rem;
--primitive-font-size-4: 1.125rem;
--primitive-font-size-5: 1.25rem;
--primitive-font-size-6: 1.5rem;
--primitive-font-weight-400: 400;
--primitive-font-weight-500: 500;
--primitive-font-weight-600: 600;
--primitive-font-weight-700: 700;
--primitive-line-height-1: 1.25;
--primitive-line-height-2: 1.5;
--primitive-line-height-3: 1.75;
--primitive-motion-duration-fast: 150ms;
--primitive-motion-duration-normal: 200ms;
--primitive-motion-duration-slow: 300ms;
--primitive-motion-ease-linear: linear;
--primitive-motion-ease-standard: cubic-bezier(0.4, 0.0, 0.2, 1);
--primitive-z-base: 0;
--primitive-z-dropdown: 1000;
--primitive-z-overlay: 1300;
--primitive-z-modal: 1400;
}
:root {
--size-2xs: 1.25rem;
--size-xs: 1.5rem;
--size-sm: 1.75rem;
--size-md: 2rem;
--size-lg: 2.5rem;
--size-xl: 3rem;
--size-2xl: 3.5rem;
--size-3xl: 4rem;
--space-2xs: 0.125rem;
--space-xs: 0.25rem;
--space-sm: 0.5rem;
--space-md: 0.75rem;
--space-lg: 1rem;
--space-xl: 1.5rem;
--space-2xl: 2rem;
--space-3xl: 3rem;
--space-4xl: 4rem;
--size-input-sm: 1.75rem;
--size-icon-sm: 1rem;
--size-icon-md: 1.25rem;
--size-icon-lg: 1.75rem;
--size-nav-item: 2rem;
--size-cell: 2rem;
--size-color-picker: 16rem;
--size-textarea-min: 6rem;
--size-button-xs: 1.75rem;
--size-button-sm: 2rem;
--size-button-md: 2.25rem;
--size-button-lg: 2.75rem;
--size-button-xl: 3.25rem;
--size-header: 3.5rem;
--size-nav-sm: 2.25rem;
--radius-xs: 0.125rem;
--radius-sm: 0.25rem;
--radius-md: 0.375rem;
--radius-lg: 0.5rem;
--radius-xl: 0.75rem;
--radius-2xl: 1rem;
--radius-full: 9999px;
--motion-duration-instant: 0ms;
--motion-duration-fast: 120ms;
--motion-duration-normal: 200ms;
--motion-duration-slow: 300ms;
--motion-duration-deliberate: 500ms;
--motion-ease-standard: cubic-bezier(0.2, 0, 0, 1);
--motion-ease-in: cubic-bezier(0.4, 0, 1, 1);
--motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
--motion-ease-linear: linear;
--motion-reduced-duration: 0ms;
--font-family-sans: var(--primitive-font-sans);
--font-family-mono: var(--primitive-font-mono);
--font-family-serif: var(--primitive-font-serif);
--font-size-2xs: 0.625rem;
--font-size-xs: 0.75rem;
--font-size-sm: 0.875rem;
--font-size-md: 1rem;
--font-size-base: 1rem;
--font-size-lg: 1.125rem;
--font-size-xl: 1.25rem;
--font-size-2xl: 1.5rem;
--font-size-3xl: 1.875rem;
--font-size-4xl: 2.25rem;
--font-size-5xl: 3rem;
--font-weight-normal: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700;
--line-height-tight: 1.2;
--line-height-normal: 1.5;
--line-height-relaxed: 1.7;
--color-overlay-50: var(--primitive-overlay-50);
--color-overlay-30: var(--primitive-overlay-30);
--color-overlay-80: var(--primitive-overlay-80);
--color-primary-alpha-05: hsl(var(--primitive-primary-h) var(--primitive-primary-s) var(--primitive-primary-l) / 0.05);
--color-primary-alpha-06: hsl(var(--primitive-primary-h) var(--primitive-primary-s) var(--primitive-primary-l) / 0.06);
--color-primary-alpha-08: hsl(var(--primitive-primary-h) var(--primitive-primary-s) var(--primitive-primary-l) / 0.08);
--color-primary-alpha-10: hsl(var(--primitive-primary-h) var(--primitive-primary-s) var(--primitive-primary-l) / 0.10);
--color-primary-alpha-12: hsl(var(--primitive-primary-h) var(--primitive-primary-s) var(--primitive-primary-l) / 0.12);
--color-primary-alpha-18: hsl(var(--primitive-primary-h) var(--primitive-primary-s) var(--primitive-primary-l) / 0.18);
--color-primary-alpha-20: hsl(var(--primitive-primary-h) var(--primitive-primary-s) var(--primitive-primary-l) / 0.20);
--color-primary-border-soft: hsl(var(--primitive-primary-h) var(--primitive-primary-s) 80%);
--color-success-glow: hsl(142 71% 45% / 0.4);
--color-divider-subtle: var(--primitive-divider);
--shadow-xs: var(--primitive-shadow-xs);
--shadow-sm: var(--primitive-shadow-sm);
--shadow-md: var(--primitive-shadow-md);
--shadow-lg: var(--primitive-shadow-lg);
--shadow-xl: var(--primitive-shadow-xl);
--shadow-2xl: var(--primitive-shadow-2xl);
--border-thin: 1px;
--border-medium: 2px;
--border-thick: 3px;
--breakpoint-xs: 320px;
--breakpoint-sm: 480px;
--breakpoint-md: 768px;
--breakpoint-lg: 1024px;
--breakpoint-xl: 1280px;
--breakpoint-2xl: 1536px;
}
[data-theme="amber-minimal"] {
--theme-surface-elevated-fg: hsl(0 0% 14.902%);
--theme-action-secondary-fg: hsl(215 13.7931% 34.1176%);
--theme-state-success-fg: hsl(0 0% 100%);
--theme-overlay-bg: hsl(0 0% 100%);
--theme-action-accent-bg: hsl(48 100% 96.0784%);
--theme-action-accent-fg: hsl(22.7273 82.5% 31.3725%);
--theme-state-error-bg: hsl(0 84.2365% 60.1961%);
--theme-chart-1: hsl(37.6923 92.126% 50.1961%);
--theme-sidebar-accent-bg: hsl(48 100% 96.0784%);
--theme-sidebar-bg: hsl(210 20% 98.0392%);
--theme-sidebar-border: hsl(220 13.0435% 90.9804%);
--theme-surface-bg: hsl(0 0% 100%);
--theme-state-success-bg: hsl(142 76% 36%);
--theme-state-warning-fg: hsl(0 0% 0%);
--theme-state-error-fg: hsl(0 0% 100%);
--theme-shadow-color: hsl(0 0% 0%);
--theme-sidebar-primary-bg: hsl(37.6923 92.126% 50.1961%);
--theme-state-info-fg: hsl(0 0% 100%);
--theme-chart-3: hsl(25.9649 90.4762% 37.0588%);
--theme-surface-elevated: hsl(0 0% 100%);
--theme-chart-4: hsl(22.7273 82.5% 31.3725%);
--theme-surface-border: hsl(220 13.0435% 90.9804%);
--theme-sidebar-ring: hsl(37.6923 92.126% 50.1961%);
--theme-state-warning-bg: hsl(38 92% 50%);
--theme-surface-muted: hsl(210 20% 98.0392%);
--theme-action-primary-bg: hsl(37.6923 92.126% 50.1961%);
--theme-action-focus-ring: hsl(37.6923 92.126% 50.1961%);
--theme-action-secondary-bg: hsl(220 14.2857% 95.8824%);
--theme-chart-5: hsl(21.7143 77.7778% 26.4706%);
--theme-state-info-bg: hsl(221 83% 53%);
--theme-surface-fg-muted: hsl(220 8.9362% 46.0784%);
--theme-overlay-fg: hsl(0 0% 14.902%);
--theme-sidebar-fg: hsl(0 0% 14.902%);
--theme-chart-2: hsl(32.1327 94.6188% 43.7255%);
--theme-sidebar-primary-fg: hsl(0 0% 100%);
--theme-sidebar-accent-fg: hsl(22.7273 82.5% 31.3725%);
--theme-surface-border: hsl(220 13.0435% 90.9804%);
--theme-action-primary-fg: hsl(0 0% 0%);
--theme-surface-fg: hsl(0 0% 14.902%);
--primitive-font-sans: Inter, sans-serif;
--primitive-font-serif: Source Serif 4, serif;
--primitive-font-mono: JetBrains Mono, monospace;
--primitive-radius-base: 0.375rem;
}
[data-theme="amber-minimal"].dark {
--theme-surface-fg: hsl(0 0% 89.8039%);
--theme-surface-elevated: hsl(0 0% 14.902%);
--theme-surface-fg-muted: hsl(0 0% 63.9216%);
--theme-sidebar-bg: hsl(0 0% 5.8824%);
--theme-state-success-bg: hsl(142 76% 36%);
--theme-state-success-fg: hsl(0 0% 100%);
--theme-chart-2: hsl(32.1327 94.6188% 43.7255%);
--theme-state-info-fg: hsl(0 0% 100%);
--theme-surface-border: hsl(0 0% 25.098%);
--theme-state-info-bg: hsl(221 83% 53%);
--theme-action-secondary-bg: hsl(0 0% 14.902%);
--theme-sidebar-border: hsl(0 0% 25.098%);
--theme-surface-muted: hsl(0 0% 12.1569%);
--theme-action-primary-bg: hsl(37.6923 92.126% 50.1961%);
--theme-chart-5: hsl(22.7273 82.5% 31.3725%);
--theme-chart-1: hsl(43.2558 96.4126% 56.2745%);
--theme-action-accent-bg: hsl(22.7273 82.5% 31.3725%);
--theme-overlay-bg: hsl(0 0% 14.902%);
--theme-chart-3: hsl(22.7273 82.5% 31.3725%);
--theme-sidebar-accent-fg: hsl(48 96.6387% 76.6667%);
--theme-action-accent-fg: hsl(48 96.6387% 76.6667%);
--theme-state-warning-bg: hsl(38 92% 50%);
--theme-sidebar-primary-fg: hsl(0 0% 100%);
--theme-state-error-fg: hsl(0 0% 100%);
--theme-surface-elevated-fg: hsl(0 0% 89.8039%);
--theme-action-secondary-fg: hsl(0 0% 89.8039%);
--theme-sidebar-ring: hsl(37.6923 92.126% 50.1961%);
--theme-sidebar-accent-bg: hsl(22.7273 82.5% 31.3725%);
--theme-shadow-color: hsl(0 0% 0%);
--theme-state-warning-fg: hsl(0 0% 0%);
--theme-surface-bg: hsl(0 0% 9.0196%);
--theme-surface-border: hsl(0 0% 25.098%);
--theme-sidebar-fg: hsl(0 0% 89.8039%);
--theme-sidebar-primary-bg: hsl(37.6923 92.126% 50.1961%);
--theme-overlay-fg: hsl(0 0% 89.8039%);
--theme-state-error-bg: hsl(0 84.2365% 60.1961%);
--theme-chart-4: hsl(25.9649 90.4762% 37.0588%);
--theme-action-primary-fg: hsl(0 0% 0%);
--theme-action-focus-ring: hsl(37.6923 92.126% 50.1961%);
}
[data-theme="canonrs-theme"] {
--theme-action-accent-bg: hsl(38 95% 60%);
--theme-chart-4: hsl(222 35% 55%);
--theme-surface-muted: hsl(220 18% 95%);
--theme-surface-elevated-fg: hsl(222 25% 12%);
--theme-state-warning-bg: hsl(38 92% 50%);
--theme-state-success-fg: hsl(0 0% 100%);
--theme-state-info-bg: hsl(221 83% 53%);
--theme-state-error-bg: hsl(0 84% 60%);
--theme-chart-1: hsl(38 91% 50%);
--theme-sidebar-fg: hsl(222 25% 12%);
--theme-sidebar-bg: hsl(220 18% 97%);
--theme-overlay-fg: hsl(222 25% 12%);
--theme-chart-2: hsl(32 95% 44%);
--theme-surface-fg: hsl(222 25% 12%);
--theme-action-secondary-bg: hsl(222 20% 92%);
--theme-sidebar-border: hsl(220 14% 88%);
--theme-sidebar-accent-fg: hsl(38 91% 28%);
--theme-surface-bg: hsl(220 18% 98%);
--theme-action-focus-ring: hsl(38 91% 50%);
--theme-state-warning-fg: hsl(0 0% 0%);
--theme-chart-5: hsl(26 90% 37%);
--theme-shadow-color: hsl(222 25% 8%);
--theme-sidebar-accent-bg: hsl(38 100% 94%);
--theme-chart-3: hsl(222 45% 40%);
--theme-action-primary-fg: hsl(0 0% 0%);
--theme-sidebar-ring: hsl(38 91% 50%);
--theme-state-success-bg: hsl(142 76% 36%);
--theme-surface-border: hsl(220 14% 88%);
--theme-state-error-fg: hsl(0 0% 100%);
--theme-action-primary-bg: hsl(38 91% 50%);
--theme-sidebar-primary-bg: hsl(38 91% 50%);
--theme-action-accent-fg: hsl(38 91% 28%);
--theme-sidebar-primary-fg: hsl(0 0% 0%);
--theme-overlay-bg: hsl(0 0% 100%);
--theme-action-secondary-fg: hsl(222 25% 22%);
--theme-surface-fg-muted: hsl(220 12% 46%);
--theme-surface-border: hsl(220 14% 88%);
--theme-state-info-fg: hsl(0 0% 100%);
--theme-surface-elevated: hsl(0 0% 100%);
--primitive-font-sans: Inter, sans-serif;
--primitive-font-serif: Source Serif 4, serif;
--primitive-font-mono: JetBrains Mono, monospace;
--primitive-radius-base: 0.375rem;
}
[data-theme="canonrs-theme"].dark {
--theme-sidebar-accent-bg: hsl(38 88% 28%);
--theme-overlay-fg: hsl(220 18% 92%);
--theme-state-error-bg: hsl(0 72% 52%);
--theme-state-error-fg: hsl(0 0% 100%);
--theme-surface-fg: hsl(220 18% 92%);
--theme-action-primary-bg: hsl(38 91% 50%);
--theme-chart-5: hsl(26 85% 45%);
--theme-chart-3: hsl(222 60% 60%);
--theme-sidebar-accent-fg: hsl(38 100% 85%);
--theme-chart-2: hsl(32 90% 50%);
--theme-sidebar-fg: hsl(220 18% 88%);
--theme-surface-elevated: hsl(222 20% 10%);
--theme-sidebar-primary-bg: hsl(38 91% 50%);
--theme-action-primary-fg: hsl(0 0% 0%);
--theme-surface-bg: hsl(222 18% 7%);
--theme-surface-border: hsl(222 20% 20%);
--theme-sidebar-border: hsl(222 20% 16%);
--theme-surface-elevated-fg: hsl(220 18% 92%);
--theme-overlay-bg: hsl(222 20% 10%);
--theme-state-warning-bg: hsl(38 92% 50%);
--theme-action-focus-ring: hsl(38 91% 50%);
--theme-shadow-color: hsl(0 0% 0%);
--theme-action-accent-bg: hsl(38 95% 42%);
--theme-state-info-bg: hsl(221 83% 53%);
--theme-sidebar-bg: hsl(222 22% 6%);
--theme-sidebar-primary-fg: hsl(0 0% 0%);
--theme-state-success-bg: hsl(142 76% 36%);
--theme-sidebar-ring: hsl(38 91% 50%);
--theme-state-info-fg: hsl(0 0% 100%);
--theme-action-accent-fg: hsl(38 100% 85%);
--theme-surface-border: hsl(222 20% 20%);
--theme-state-success-fg: hsl(0 0% 100%);
--theme-action-secondary-bg: hsl(222 22% 23%);
--theme-chart-1: hsl(38 95% 58%);
--theme-state-warning-fg: hsl(0 0% 0%);
--theme-chart-4: hsl(222 45% 72%);
--theme-surface-fg-muted: hsl(220 14% 58%);
--theme-surface-muted: hsl(222 20% 13%);
--theme-action-secondary-fg: hsl(220 18% 88%);
}
[data-theme="clean-slate"] {
--theme-action-secondary-bg: hsl(220 13.0435% 90.9804%);
--theme-chart-2: hsl(243.3962 75.3555% 58.6275%);
--theme-sidebar-accent-bg: hsl(226.4516 100% 93.9216%);
--theme-state-info-fg: hsl(0 0% 100%);
--theme-sidebar-bg: hsl(220 14.2857% 95.8824%);
--theme-chart-3: hsl(244.5205 57.9365% 50.5882%);
--theme-overlay-fg: hsl(217.2414 32.5843% 17.451%);
--theme-chart-5: hsl(242.1687 47.4286% 34.3137%);
--theme-surface-bg: hsl(210 40% 98.0392%);
--theme-sidebar-accent-fg: hsl(216.9231 19.1176% 26.6667%);
--theme-action-secondary-fg: hsl(216.9231 19.1176% 26.6667%);
--theme-surface-fg: hsl(217.2414 32.5843% 17.451%);
--theme-action-accent-fg: hsl(216.9231 19.1176% 26.6667%);
--theme-action-primary-fg: hsl(0 0% 100%);
--theme-shadow-color: hsl(0 0% 0%);
--theme-sidebar-primary-bg: hsl(238.7324 83.5294% 66.6667%);
--theme-state-error-bg: hsl(0 84.2365% 60.1961%);
--theme-overlay-bg: hsl(0 0% 100%);
--theme-chart-4: hsl(243.6522 54.5024% 41.3725%);
--theme-surface-elevated: hsl(0 0% 100%);
--theme-surface-border: hsl(216 12.1951% 83.9216%);
--theme-chart-1: hsl(238.7324 83.5294% 66.6667%);
--theme-sidebar-primary-fg: hsl(0 0% 100%);
--theme-sidebar-border: hsl(216 12.1951% 83.9216%);
--theme-state-success-fg: hsl(0 0% 100%);
--theme-state-warning-bg: hsl(38 92% 50%);
--theme-state-warning-fg: hsl(0 0% 0%);
--theme-action-accent-bg: hsl(226.4516 100% 93.9216%);
--theme-state-error-fg: hsl(0 0% 100%);
--theme-surface-border: hsl(216 12.1951% 83.9216%);
--theme-sidebar-fg: hsl(217.2414 32.5843% 17.451%);
--theme-state-success-bg: hsl(142 76% 36%);
--theme-surface-elevated-fg: hsl(217.2414 32.5843% 17.451%);
--theme-action-primary-bg: hsl(238.7324 83.5294% 66.6667%);
--theme-surface-muted: hsl(220 14.2857% 95.8824%);
--theme-action-focus-ring: hsl(238.7324 83.5294% 66.6667%);
--theme-surface-fg-muted: hsl(220 8.9362% 46.0784%);
--theme-state-info-bg: hsl(221 83% 53%);
--theme-sidebar-ring: hsl(238.7324 83.5294% 66.6667%);
--primitive-font-sans: Inter, sans-serif;
--primitive-font-serif: Merriweather, serif;
--primitive-font-mono: JetBrains Mono, monospace;
--primitive-radius-base: 0.5rem;
}
[data-theme="clean-slate"].dark {
--theme-surface-fg-muted: hsl(217.8947 10.6145% 64.902%);
--theme-chart-2: hsl(238.7324 83.5294% 66.6667%);
--theme-state-info-bg: hsl(221 83% 53%);
--theme-action-secondary-fg: hsl(216 12.1951% 83.9216%);
--theme-action-primary-fg: hsl(222.2222 47.3684% 11.1765%);
--theme-surface-muted: hsl(217.2414 40.8451% 13.9216%);
--theme-state-error-bg: hsl(0 84.2365% 60.1961%);
--theme-sidebar-border: hsl(215 13.7931% 34.1176%);
--theme-action-accent-bg: hsl(216.9231 19.1176% 26.6667%);
--theme-surface-border: hsl(215 13.7931% 34.1176%);
--theme-state-success-fg: hsl(0 0% 100%);
--theme-state-warning-bg: hsl(38 92% 50%);
--theme-action-focus-ring: hsl(234.4538 89.4737% 73.9216%);
--theme-surface-elevated-fg: hsl(214.2857 31.8182% 91.3725%);
--theme-action-secondary-bg: hsl(217.7778 23.0769% 22.9412%);
--theme-state-error-fg: hsl(222.2222 47.3684% 11.1765%);
--theme-surface-fg: hsl(214.2857 31.8182% 91.3725%);
--theme-overlay-bg: hsl(217.2414 32.5843% 17.451%);
--theme-sidebar-accent-bg: hsl(216.9231 19.1176% 26.6667%);
--theme-action-primary-bg: hsl(234.4538 89.4737% 73.9216%);
--theme-sidebar-ring: hsl(234.4538 89.4737% 73.9216%);
--theme-sidebar-primary-bg: hsl(234.4538 89.4737% 73.9216%);
--theme-overlay-fg: hsl(214.2857 31.8182% 91.3725%);
--theme-sidebar-accent-fg: hsl(216 12.1951% 83.9216%);
--theme-sidebar-bg: hsl(217.2414 32.5843% 17.451%);
--theme-shadow-color: hsl(0 0% 0%);
--theme-state-success-bg: hsl(142 76% 36%);
--theme-surface-border: hsl(215 13.7931% 34.1176%);
--theme-sidebar-fg: hsl(214.2857 31.8182% 91.3725%);
--theme-chart-4: hsl(244.5205 57.9365% 50.5882%);
--theme-chart-1: hsl(234.4538 89.4737% 73.9216%);
--theme-action-accent-fg: hsl(216 12.1951% 83.9216%);
--theme-sidebar-primary-fg: hsl(222.2222 47.3684% 11.1765%);
--theme-chart-3: hsl(243.3962 75.3555% 58.6275%);
--theme-state-warning-fg: hsl(0 0% 0%);
--theme-state-info-fg: hsl(0 0% 100%);
--theme-surface-bg: hsl(222.2222 47.3684% 11.1765%);
--theme-surface-elevated: hsl(217.2414 32.5843% 17.451%);
--theme-chart-5: hsl(243.6522 54.5024% 41.3725%);
}
[data-theme] {
--color-background: var(--theme-surface-bg);
--color-foreground: var(--theme-surface-fg);
--color-muted: var(--theme-surface-muted);
--color-muted-foreground: var(--theme-surface-fg-muted);
--color-border: var(--theme-surface-border);
--color-popover: var(--theme-overlay-bg);
--color-popover-foreground: var(--theme-overlay-fg);
--color-ring: var(--theme-action-focus-ring);
--color-primary: var(--theme-action-primary-bg);
--color-primary-foreground: var(--theme-action-primary-fg);
--color-primary-hover: var(--theme-action-primary-hover);
--color-primary-active: var(--theme-action-primary-active);
--color-secondary: var(--theme-action-secondary-bg);
--color-secondary-foreground: var(--theme-action-secondary-fg);
--color-accent: var(--theme-action-accent-bg);
--color-accent-foreground: var(--theme-action-accent-fg);
--color-destructive: var(--theme-state-error-bg);
--color-destructive-foreground: var(--theme-state-error-fg);
--color-success: var(--theme-state-success-bg);
--color-success-foreground: var(--theme-state-success-fg);
--color-warning: var(--theme-state-warning-bg);
--color-warning-foreground: var(--theme-state-warning-fg);
--color-error: var(--theme-state-error-bg);
--color-error-foreground: var(--theme-state-error-fg);
--color-info: var(--theme-state-info-bg);
--color-info-foreground: var(--theme-state-info-fg);
--color-neutral-900: var(--theme-surface-fg);
--color-neutral-50: var(--theme-surface-bg);
}
[data-theme] {
--overlay-z-index: var(--layer-overlay);
--overlay-backdrop-bg: var(--color-overlay-50);
--overlay-backdrop-blur: var(--blur-sm);
--overlay-transition-duration: var(--motion-duration-normal);
--overlay-transition-ease: var(--motion-ease-standard);
--dialog-overlay-bg: var(--color-overlay-50);
--dialog-overlay-z-index: var(--layer-overlay);
--dialog-content-bg: var(--theme-surface-bg);
--dialog-content-fg: var(--theme-surface-fg);
--dialog-content-width: var(--layout-width-lg);
--dialog-content-max-width: 90vw;
--dialog-content-padding: var(--space-lg);
--dialog-content-radius: var(--radius-md);
--dialog-content-shadow: var(--shadow-2xl);
--dialog-header-gap: var(--space-sm);
--dialog-footer-gap: var(--space-sm);
--dialog-title-fg: var(--theme-surface-fg);
--dialog-title-font-size: var(--font-size-lg);
--dialog-title-font-weight: var(--font-weight-semibold);
--dialog-description-fg: var(--theme-surface-fg-muted);
--dialog-description-font-size: var(--font-size-sm);
--dialog-close-fg: var(--theme-surface-fg-muted);
--dialog-close-hover-fg: var(--theme-surface-fg);
--dialog-transition-duration: var(--motion-duration-normal);
--popover-bg: var(--theme-surface-bg);
--popover-fg: var(--theme-surface-fg);
--popover-border-color: var(--theme-surface-border);
--popover-border-width: var(--border-thin);
--popover-radius: var(--radius-md);
--popover-shadow: var(--shadow-lg);
--popover-padding: var(--space-md);
--popover-width: 16rem;
--popover-z-index: var(--layer-overlay);
--popover-transition-duration: var(--motion-duration-fast);
--popover-transition-ease: var(--motion-ease-standard);
--hover-card-bg: var(--theme-surface-bg);
--hover-card-fg: var(--theme-surface-fg);
--hover-card-border-color: var(--theme-surface-border);
--hover-card-border-width: var(--border-thin);
--hover-card-radius: var(--radius-md);
--hover-card-shadow: var(--shadow-lg);
--hover-card-padding: var(--space-md);
--hover-card-width: 16rem;
--hover-card-z-index: var(--layer-overlay);
--hover-card-transition-duration: var(--motion-duration-fast);
--hover-card-transition-ease: var(--motion-ease-standard);
--tooltip-bg: var(--theme-surface-fg);
--tooltip-fg: var(--theme-surface-bg);
--tooltip-padding: var(--space-xs) var(--space-sm);
--tooltip-radius: var(--radius-sm);
--tooltip-font-size: var(--font-size-xs);
--tooltip-font-weight: var(--font-weight-medium);
--tooltip-shadow: var(--shadow-md);
--tooltip-z-index: var(--layer-tooltip);
--tooltip-transition-duration: var(--motion-duration-fast);
--tooltip-transition-ease: var(--motion-ease-standard);
--tooltip-max-width: var(--size-3xl);
--tooltip-offset: var(--space-xs);
--tooltip-arrow-size: var(--space-sm);
--confirm-dialog-overlay-bg: var(--color-overlay-50);
--confirm-dialog-overlay-z-index: var(--layer-overlay);
--confirm-dialog-content-bg: var(--theme-surface-bg);
--confirm-dialog-content-fg: var(--theme-surface-fg);
--confirm-dialog-content-width: 28rem;
--confirm-dialog-content-max-width: 90vw;
--confirm-dialog-content-padding: var(--space-lg);
--confirm-dialog-content-radius: var(--radius-md);
--confirm-dialog-content-shadow: var(--shadow-2xl);
--confirm-dialog-title-fg: var(--theme-surface-fg);
--confirm-dialog-title-font-size: var(--font-size-lg);
--confirm-dialog-title-font-weight: var(--font-weight-semibold);
--confirm-dialog-description-fg: var(--theme-surface-fg-muted);
--confirm-dialog-description-font-size: var(--font-size-sm);
--confirm-dialog-footer-gap: var(--space-sm);
--confirm-dialog-header-gap: var(--space-sm);
--confirm-dialog-transition-duration: var(--motion-duration-normal);
--confirm-dialog-transition-ease: var(--motion-ease-standard);
--modal-overlay-bg: var(--color-overlay-50);
--modal-overlay-z-index: var(--layer-overlay);
--modal-content-bg: var(--theme-surface-bg);
--modal-content-fg: var(--theme-surface-fg);
--modal-content-width: var(--layout-width-lg);
--modal-content-max-width: 90vw;
--modal-content-padding: var(--space-lg);
--modal-content-radius: var(--radius-lg);
--modal-content-shadow: var(--shadow-2xl);
--modal-title-fg: var(--theme-surface-fg);
--modal-title-font-size: var(--font-size-lg);
--modal-title-font-weight: var(--font-weight-semibold);
--modal-header-gap: var(--space-sm);
--modal-footer-gap: var(--space-sm);
--modal-description-fg: var(--theme-surface-fg-muted);
--modal-description-font-size: var(--font-size-sm);
--modal-transition-duration: var(--motion-duration-normal);
--modal-transition-ease: var(--motion-ease-standard);
--drawer-overlay-bg: var(--color-overlay-50);
--drawer-overlay-z-index: var(--layer-overlay);
--drawer-bg: var(--theme-surface-bg);
--drawer-fg: var(--theme-surface-fg);
--drawer-width: var(--layout-width-md);
--drawer-height: 40vh;
--drawer-padding: var(--space-lg);
--drawer-shadow: var(--shadow-2xl);
--drawer-header-gap: var(--space-sm);
--drawer-footer-gap: var(--space-sm);
--drawer-title-fg: var(--theme-surface-fg);
--drawer-title-font-size: var(--font-size-lg);
--drawer-title-font-weight: var(--font-weight-semibold);
--drawer-description-fg: var(--theme-surface-fg-muted);
--drawer-description-font-size: var(--font-size-sm);
--drawer-close-fg: var(--theme-surface-fg-muted);
--drawer-close-hover-fg: var(--theme-surface-fg);
--drawer-transition-duration: var(--motion-duration-normal);
--drawer-transition-ease: var(--motion-ease-standard);
--drawer-transform-open: translateX(0);
--drawer-transform-closed-right: translateX(100%);
--drawer-transform-closed-left: translateX(-100%);
--drawer-transform-closed-top: translateY(-100%);
--drawer-transform-closed-bottom: translateY(100%);
--sheet-overlay-bg: var(--color-overlay-50);
--sheet-overlay-z-index: var(--layer-overlay);
--sheet-bg: var(--theme-surface-bg);
--sheet-fg: var(--theme-surface-fg);
--sheet-width: var(--layout-width-md);
--sheet-height: 40vh;
--sheet-padding: var(--space-lg);
--sheet-shadow: var(--shadow-2xl);
--sheet-header-gap: var(--space-sm);
--sheet-footer-gap: var(--space-sm);
--sheet-title-fg: var(--theme-surface-fg);
--sheet-title-font-size: var(--font-size-lg);
--sheet-title-font-weight: var(--font-weight-semibold);
--sheet-description-fg: var(--theme-surface-fg-muted);
--sheet-description-font-size: var(--font-size-sm);
--sheet-close-fg: var(--theme-surface-fg-muted);
--sheet-close-hover-fg: var(--theme-surface-fg);
--sheet-transition-duration: var(--motion-duration-normal);
--sheet-transition-ease: var(--motion-ease-standard);
--sheet-transform-closed-right: translateX(100%);
--sheet-transform-closed-left: translateX(-100%);
--sheet-transform-closed-top: translateY(-100%);
--sheet-transform-closed-bottom: translateY(100%);
--sheet-transform-open: translateX(0) translateY(0);
--dropdown-menu-bg: var(--theme-overlay-bg);
--dropdown-menu-fg: var(--theme-surface-fg);
--dropdown-menu-radius: var(--radius-md);
--dropdown-menu-shadow: var(--shadow-lg);
--dropdown-menu-border-color: var(--theme-surface-border);
--dropdown-menu-border-width: var(--border-thin);
--dropdown-menu-min-width: 12rem;
--dropdown-menu-z-index: var(--layer-dropdown);
--dropdown-menu-padding-y: var(--space-2xs);
--dropdown-menu-item-height: 2rem;
--dropdown-menu-item-padding: var(--space-md);
--dropdown-menu-item-hover-bg: var(--theme-surface-muted);
--dropdown-menu-item-hover-fg: var(--theme-surface-fg);
--dropdown-menu-item-selected-bg: var(--theme-surface-muted);
--dropdown-menu-item-destructive-fg: var(--theme-status-error-fg);
--dropdown-menu-item-checked-bg: transparent;
--dropdown-menu-item-checked-fg: var(--theme-surface-fg);
--dropdown-menu-separator-color: var(--theme-surface-border);
--dropdown-menu-separator-margin-y: var(--space-xs);
--dropdown-menu-transition-duration: var(--motion-duration-fast);
--dropdown-menu-transition-ease: var(--motion-ease-standard);
}
[data-theme] {
--selection-color: var(--theme-action-primary-bg);
--selection-spacing: var(--space-sm);
--checkbox-size: var(--space-lg);
--checkbox-radius: var(--radius-sm);
--checkbox-bg: var(--theme-surface-bg);
--checkbox-checked-fg: var(--theme-action-primary-fg);
--checkbox-border-color: var(--theme-surface-border);
--checkbox-border-width: var(--border-thin);
--checkbox-checked-border-color: var(--theme-action-primary-bg);
--checkbox-checked-bg: var(--theme-action-primary-bg);
--checkbox-gap: var(--space-sm);
--checkbox-transition-duration: var(--motion-duration-fast);
--checkbox-disabled-opacity: var(--opacity-disabled);
--checkbox-focus-ring-width: var(--focus-ring-width);
--checkbox-focus-ring-color: var(--theme-action-focus-ring);
--radio-size: var(--space-lg);
--radio-bg: var(--theme-surface-bg);
--radio-border-color: var(--theme-surface-border);
--radio-border-width: var(--border-thin);
--radio-checked-border-color: var(--theme-action-primary-bg);
--radio-dot-size: var(--space-sm);
--radio-dot-color: var(--theme-action-primary-fg);
--radio-checked-dot-color: var(--theme-action-primary-fg);
--radio-disabled-dot-color: var(--theme-surface-fg-muted);
--radio-checked-bg: var(--theme-action-primary-bg);
--radio-disabled-bg: var(--theme-surface-muted);
--radio-disabled-border-color: var(--theme-surface-border);
--radio-hover-border-color: var(--theme-action-primary-bg);
--radio-disabled-fg: var(--theme-surface-fg-muted);
--radio-bg-disabled: var(--theme-surface-muted);
--radio-border-color-disabled: var(--theme-surface-border);
--radio-dot-color-disabled: var(--theme-surface-fg-muted);
--radio-focus-ring-shadow: 0 0 0 var(--focus-ring-width) var(--theme-action-focus-ring);
--radio-group-gap: var(--space-sm);
--radio-group-item-gap: var(--space-xs);
--radio-group-label-font-size: var(--font-size-sm);
--radio-transition-duration: var(--motion-duration-fast);
--radio-disabled-opacity: var(--opacity-disabled);
--radio-focus-ring-width: var(--focus-ring-width);
--radio-focus-ring-color: var(--theme-action-focus-ring);
--tabs-gap: var(--space-xs);
--tabs-list-bg: var(--theme-surface-muted);
--tabs-list-padding: var(--space-xs);
--tabs-list-radius: var(--radius-md);
--tabs-list-gap: var(--space-xs);
--tabs-trigger-padding-x: var(--space-md);
--tabs-trigger-padding-y: var(--space-sm);
--tabs-trigger-radius: var(--radius-sm);
--tabs-trigger-fg: var(--theme-surface-fg-muted);
--tabs-trigger-font-size: var(--font-size-sm);
--tabs-trigger-font-weight: var(--font-weight-medium);
--tabs-trigger-transition-duration: var(--motion-duration-fast);
--tabs-trigger-active-fg: var(--theme-action-primary-fg);
--tabs-trigger-active-bg: var(--theme-action-primary-bg);
--tabs-trigger-hover-bg: var(--theme-surface-muted);
--tabs-trigger-hover-fg: var(--theme-surface-fg);
--tabs-trigger-disabled-opacity: var(--opacity-disabled);
--tabs-trigger-focus-ring-color: var(--theme-action-focus-ring);
--tabs-trigger-focus-ring-width: var(--focus-ring-width);
--tabs-trigger-focus-ring-offset: var(--focus-ring-offset);
--tabs-content-padding: var(--space-md);
--accordion-gap: var(--space-sm);
--accordion-item-border-width: var(--border-thin);
--accordion-item-border-color: var(--theme-surface-border);
--accordion-item-border-color-active: var(--theme-action-primary-bg);
--accordion-item-border-radius: var(--radius-md);
--accordion-trigger-bg: transparent;
--accordion-trigger-fg: var(--theme-surface-fg);
--accordion-trigger-padding-x: var(--space-md);
--accordion-trigger-padding-y: var(--space-sm);
--accordion-trigger-font-weight: var(--font-weight-medium);
--accordion-trigger-transition-duration: var(--motion-duration-fast);
--accordion-trigger-transition-ease: var(--motion-ease-standard);
--accordion-trigger-hover-bg: var(--theme-surface-muted);
--accordion-trigger-open-fg: var(--theme-action-primary-bg);
--accordion-trigger-open-bg: var(--theme-surface-muted);
--accordion-trigger-disabled-fg: var(--theme-surface-fg-muted);
--accordion-trigger-disabled-opacity: var(--opacity-disabled);
--accordion-trigger-fg-disabled: var(--theme-surface-fg-muted);
--accordion-trigger-opacity-disabled: var(--opacity-disabled);
--accordion-content-padding-top: var(--space-sm);
--accordion-content-padding-x: var(--space-md);
--accordion-content-padding-y: var(--space-sm);
--accordion-icon-size: var(--space-md);
--accordion-icon-rotation: var(--motion-rotate-open);
--collapsible-gap: var(--space-sm);
--collapsible-trigger-bg: transparent;
--collapsible-trigger-fg: var(--theme-surface-fg);
--collapsible-trigger-padding: var(--space-sm);
--collapsible-trigger-radius: var(--radius-sm);
--collapsible-trigger-hover-bg: var(--theme-surface-muted);
--collapsible-trigger-open-fg: var(--theme-action-primary-bg);
--collapsible-content-padding: var(--space-sm);
--collapsible-transition-duration: var(--motion-duration-normal);
--collapsible-transition-ease: var(--motion-ease-standard);
--combobox-bg: var(--theme-surface-bg);
--combobox-fg: var(--theme-surface-fg);
--combobox-border-color: var(--theme-surface-border);
--combobox-border-width: var(--border-thin);
--combobox-height: var(--space-2xl);
--combobox-padding-x: var(--space-sm);
--combobox-radius: var(--radius-sm);
--combobox-gap: var(--space-sm);
--combobox-disabled-opacity: var(--opacity-disabled);
--combobox-focus-ring-width: var(--focus-ring-width);
--combobox-focus-ring-color: var(--theme-action-focus-ring);
--combobox-popover-bg: var(--theme-overlay-bg);
--combobox-popover-padding-y: var(--space-xs);
--combobox-popover-radius: var(--radius-md);
--combobox-popover-shadow: var(--shadow-lg);
--combobox-item-height: var(--space-xl);
--combobox-item-padding: var(--space-sm);
--combobox-item-hover-bg: var(--theme-action-accent-bg);
--combobox-item-selected-bg: var(--theme-action-accent-bg);
--combobox-empty-fg: var(--theme-surface-fg-muted);
--combobox-empty-padding: var(--space-sm);
--context-menu-bg: var(--theme-overlay-bg);
--context-menu-fg: var(--theme-surface-fg);
--context-menu-padding: var(--space-xs);
--context-menu-radius: var(--radius-md);
--context-menu-shadow: var(--shadow-lg);
--context-menu-border-color: var(--theme-surface-border);
--context-menu-border-width: var(--border-thin);
--context-menu-min-width: var(--layout-width-sm);
--context-menu-z-index: var(--layer-overlay);
--context-menu-item-height: var(--space-xl);
--context-menu-item-padding: var(--space-sm);
--context-menu-item-fg: var(--theme-surface-fg);
--context-menu-item-hover-bg: var(--theme-action-accent-bg);
--context-menu-separator-color: var(--theme-surface-border);
--context-menu-separator-margin-y: var(--space-xs);
--context-menu-label-fg: var(--theme-surface-fg-muted);
--context-menu-label-font-size: var(--font-size-xs);
--context-menu-label-padding: var(--space-sm);
--context-menu-shortcut-fg: var(--theme-surface-fg-muted);
--context-menu-shortcut-font-size: var(--font-size-xs);
--context-menu-transition-duration: var(--motion-duration-fast);
--context-menu-transition-ease: var(--motion-ease-standard);
--context-menu-x: 0px;
--context-menu-y: 0px;
--menu-bg: var(--theme-surface-bg);
--menu-padding: var(--space-sm);
--menu-gap: var(--space-xs);
--menu-item-bg: transparent;
--menu-item-height: var(--space-2xl);
--menu-item-padding: var(--space-sm);
--menu-item-radius: var(--radius-sm);
--menu-item-fg: var(--theme-surface-fg);
--menu-item-font-size: var(--font-size-sm);
--menu-item-hover-bg: var(--theme-surface-muted);
--menu-item-active-bg: var(--theme-action-accent-bg);
--menu-item-active-fg: var(--theme-action-accent-fg);
--menu-item-transition-duration: var(--motion-duration-fast);
--menu-item-transition-ease: var(--motion-ease-standard);
--menu-separator-margin: var(--space-xs) 0;
--menubar-bg: var(--theme-surface-bg);
--menubar-border-color: var(--theme-surface-border);
--menubar-border-width: 0 0 var(--border-thin) 0;
--menubar-padding: var(--space-sm);
--menubar-gap: var(--space-xs);
--menubar-radius: var(--radius-md);
--menubar-trigger-padding: var(--space-sm);
--menubar-trigger-radius: var(--radius-sm);
--menubar-trigger-fg: var(--theme-surface-fg);
--menubar-trigger-hover-bg: var(--theme-surface-muted);
--menubar-trigger-expanded-bg: var(--theme-action-accent-bg);
--menubar-trigger-expanded-fg: var(--theme-action-accent-fg);
--menubar-subitem-bg-hover: var(--theme-surface-muted);
--menubar-content-bg: var(--theme-overlay-bg);
--menubar-content-padding-y: var(--space-xs);
--menubar-content-radius: var(--radius-md);
--menubar-content-shadow: var(--shadow-lg);
--menubar-content-min-width: var(--layout-width-sm);
--menubar-subitem-height: var(--space-xl);
--menubar-subitem-padding: var(--space-sm) var(--space-md);
--menubar-subitem-fg: var(--theme-surface-fg);
--menubar-subitem-radius: var(--radius-sm);
--menubar-subitem-hover-bg: var(--theme-action-accent-bg);
--menubar-subitem-transition: var(--motion-duration-fast);
--menubar-separator-height: var(--border-thin);
--menubar-separator-bg: var(--theme-surface-border);
--menubar-separator-margin: var(--space-xs) 0;
--menubar-transition-duration: var(--motion-duration-fast);
--menubar-transition-ease: var(--motion-ease-standard);
--tree-gap: var(--space-2xs);
--tree-indent: var(--space-md);
--tree-item-height: var(--space-xl);
--tree-item-padding-x: var(--space-sm);
--tree-item-padding-y: var(--space-2xs);
--tree-item-radius: var(--radius-sm);
--tree-item-fg: var(--theme-surface-fg);
--tree-item-fg-muted: var(--theme-surface-fg-muted);
--tree-item-font-size: var(--font-size-sm);
--tree-item-font-weight-parent: var(--font-weight-medium);
--tree-item-font-weight-leaf: var(--font-weight-normal);
--tree-item-hover-bg: var(--theme-action-secondary-bg);
--tree-item-selected-bg: var(--theme-action-accent-bg);
--tree-item-active-bg: var(--theme-action-primary-bg);
--tree-item-focus-bg: var(--theme-surface-muted);
--tree-item-active-indicator: var(--theme-action-primary-bg);
--tree-icon-size: var(--space-md);
--tree-icon-rotation: 90deg;
--tree-indent-depth-1: var(--space-lg);
--tree-indent-depth-2: var(--space-xl);
--tree-guide-color: var(--theme-surface-border);
--tree-transition-duration: var(--motion-duration-fast);
--tree-transition-ease: var(--motion-ease-standard);
--command-bg: var(--theme-overlay-bg);
--command-fg: var(--theme-surface-fg);
--command-radius: var(--radius-md);
--command-shadow: var(--shadow-2xl);
--command-border-color: var(--theme-surface-border);
--command-border-width: var(--border-thin);
--command-padding: var(--space-xs);
--command-gap: var(--space-xs);
--command-input-height: var(--space-2xl);
--command-input-padding: var(--space-sm) var(--space-md);
--command-input-font-size: var(--font-size-sm);
--command-input-border-bottom: var(--border-thin) solid var(--theme-surface-border);
--command-list-padding: var(--space-sm);
--command-list-max-height: var(--layout-width-md);
--command-item-height: var(--space-2xl);
--command-item-padding: var(--space-sm);
--command-item-radius: var(--radius-sm);
--command-item-hover-bg: var(--theme-action-accent-bg);
--command-item-selected-bg: var(--theme-action-accent-bg);
--command-item-active-bg: var(--theme-action-accent-bg);
--command-item-active-fg: var(--theme-action-accent-fg);
--command-group-heading-fg: var(--theme-surface-fg-muted);
--command-group-heading-font-size: var(--font-size-xs);
--command-group-heading-padding: var(--space-sm);
--command-separator-color: var(--theme-surface-border);
--command-separator-margin-y: var(--space-xs);
--command-empty-fg: var(--theme-surface-fg-muted);
--command-empty-padding: var(--space-xl) var(--space-md);
}
[data-theme] {
--forms-color: var(--theme-action-primary-bg);
--forms-radius: var(--radius-sm);
--forms-padding-y: var(--space-sm);
--forms-disabled-opacity: var(--opacity-disabled);
--validation-error-shadow: 0 0 0 var(--focus-ring-width) var(--color-error);
--validation-warning-shadow: 0 0 0 var(--focus-ring-width) var(--color-warning);
--validation-success-shadow: 0 0 0 var(--focus-ring-width) var(--color-success);
--validation-error: var(--color-destructive);
--validation-warning: var(--color-warning);
--validation-success: var(--color-success);
--button-height: var(--size-button-md);
--button-padding-x: var(--space-md);
--button-padding-y: 0.375rem;
--button-xs-height: var(--size-button-xs);
--button-xs-padding-x: var(--space-sm);
--button-xs-padding-y: 0.125rem;
--button-xs-font-size: var(--font-size-xs);
--button-sm-height: var(--size-button-sm);
--button-sm-padding-x: 0.75rem;
--button-sm-padding-y: 0.25rem;
--button-sm-font-size: var(--font-size-sm);
--button-lg-height: var(--size-button-lg);
--button-lg-padding-x: var(--space-lg);
--button-lg-padding-y: 0.5rem;
--button-lg-font-size: var(--font-size-md);
--button-xl-height: var(--size-button-xl);
--button-xl-padding-x: var(--space-xl);
--button-xl-padding-y: 0.625rem;
--button-xl-font-size: var(--font-size-lg);
--button-radius: var(--radius-sm);
--button-gap: var(--space-sm);
--button-primary-bg: var(--theme-action-primary-bg);
--button-primary-fg: var(--color-primary-foreground);
--button-outline-fg: var(--theme-action-primary-bg);
--button-outline-border: var(--theme-surface-border);
--button-ghost-bg: transparent;
--button-ghost-fg: var(--theme-surface-fg);
--button-ghost-bg-hover: color-mix(in srgb, var(--theme-surface-fg) 8%, transparent);
--button-danger-bg: var(--color-destructive);
--button-danger-fg: var(--color-destructive-foreground);
--button-success-bg: var(--color-success);
--button-success-fg: var(--color-success-foreground);
--button-warning-bg: var(--color-warning);
--button-warning-fg: var(--theme-surface-fg);
--button-secondary-bg: var(--theme-surface-muted);
--button-secondary-fg: var(--theme-surface-fg);
--button-secondary-border: var(--theme-surface-border);
--button-link-bg: transparent;
--button-link-fg: var(--theme-action-primary-bg);
--button-link-underline-thickness: 2px;
--button-link-underline-offset: 3px;
--button-link-underline-thickness-hover: 3px;
--button-link-underline-thickness: 2px;
--button-link-underline-offset: 3px;
--button-link-underline-thickness-hover: 3px;
--button-info-bg: var(--color-info);
--button-info-fg: var(--color-info-foreground);
--button-subtle-bg: var(--theme-surface-accent);
--button-subtle-fg: var(--theme-surface-fg);
--button-muted-bg: transparent;
--button-muted-fg: var(--theme-surface-muted-fg);
--button-outline-bg: transparent;
--button-default-bg: var(--theme-surface-bg);
--button-default-fg: var(--theme-surface-fg);
--button-default-border: var(--theme-surface-border);
--button-focus-ring-shadow: 0 0 0 var(--focus-ring-width) var(--theme-action-focus-ring);
--button-active-transform: translateY(1px);
--button-group-border-overlap: -1px;
--button-group-gap: var(--space-xs);
--button-group-direction: row;
--button-group-align: center;
--button-group-radius-merge: 0;
--field-border: 1px solid var(--theme-surface-border);
--field-height: var(--space-2xl);
--field-padding: var(--space-sm);
--field-gap: var(--space-sm);
--field-disabled-opacity: var(--opacity-disabled);
--field-label-fg: var(--theme-surface-fg);
--field-label-fg-disabled: var(--theme-surface-fg-muted);
--field-label-font-size: var(--font-size-sm);
--field-label-font-weight: var(--font-weight-medium);
--field-description-fg: var(--theme-surface-fg-muted);
--field-description-font-size: var(--font-size-sm);
--field-description-line-height: var(--line-height-normal);
--field-error-fg: var(--color-destructive);
--field-error-font-size: var(--font-size-sm);
--field-error-list-gap: var(--space-xs);
--field-validation-error-fg: var(--color-destructive);
--field-validation-success-fg: var(--color-success);
--field-validation-warning-fg: var(--color-warning);
--field-separator-color: var(--theme-surface-border);
--field-separator-label-fg: var(--theme-surface-fg-muted);
--field-separator-label-padding-x: var(--space-sm);
--field-separator-margin-y: var(--space-md);
--field-orientation-gap-horizontal: var(--space-sm);
--field-orientation-gap-vertical: var(--space-xs);
--input-bg: var(--theme-surface-bg);
--input-fg: var(--theme-surface-fg);
--input-border-color: var(--theme-surface-border);
--input-border-width: 1px;
--input-height: var(--space-2xl);
--input-padding-x: var(--space-sm);
--input-padding-y: var(--space-sm);
--input-radius: var(--radius-sm);
--input-font-family: inherit;
--input-font-size: var(--font-size-sm);
--input-font-weight: var(--font-weight-normal);
--input-line-height: var(--line-height-normal);
--input-placeholder: var(--theme-surface-fg-muted);
--input-disabled-opacity: var(--opacity-disabled);
--input-focus-ring-width: var(--focus-ring-width);
--input-focus-ring-color: var(--theme-action-focus-ring);
--input-focus-ring-offset: var(--focus-ring-offset);
--input-focus-ring-shadow: 0 0 0 var(--focus-ring-width) var(--theme-action-focus-ring);
--input-error-border: var(--color-destructive);
--input-warning-border: var(--color-warning);
--input-success-border: var(--color-success);
--input-sm-height: var(--size-input-sm);
--input-sm-font-size: var(--font-size-xs);
--input-md-height: var(--space-2xl);
--input-lg-height: var(--size-icon-lg);
--input-lg-font-size: var(--font-size-base);
--input-group-gap: 0;
--input-group-radius-merge: 0;
--input-group-align: center;
--input-group-addon-bg: var(--theme-surface-muted);
--input-group-addon-fg: var(--theme-surface-fg-muted);
--input-group-addon-border: var(--theme-surface-border);
--input-otp-slot-size: var(--space-2xl);
--input-otp-slot-bg: var(--theme-surface-bg);
--input-otp-slot-fg: var(--theme-surface-fg);
--input-otp-slot-border: 1px solid var(--theme-surface-border);
--input-otp-slot-radius: var(--radius-sm);
--input-otp-slot-active-bg: var(--theme-action-accent-bg);
--input-otp-slot-active-border: var(--color-ring);
--input-otp-slot-disabled-bg: var(--theme-surface-muted);
--input-otp-slot-disabled-fg: var(--theme-surface-fg-muted);
--input-otp-font-family: monospace;
--input-otp-font-size: var(--font-size-base);
--input-otp-font-weight: var(--font-weight-semibold);
--textarea-min-height: var(--size-textarea-min);
--textarea-max-height: var(--layout-width-md);
--textarea-resize: vertical;
--select-bg: var(--theme-surface-bg);
--select-hover-bg: var(--theme-surface-muted);
--select-border-color-hover: var(--theme-surface-fg-muted);
--select-min-width: 12rem;
--select-fg: var(--theme-surface-fg);
--select-border-color: var(--theme-surface-border);
--select-border-width: 1px;
--select-height: var(--space-xl);
--select-padding-x: var(--space-sm);
--select-radius: var(--radius-sm);
--select-gap: var(--space-sm);
--select-disabled-opacity: var(--opacity-disabled);
--select-focus-ring-width: var(--focus-ring-width);
--select-focus-ring-color: var(--theme-action-focus-ring);
--select-focus-ring-offset: var(--focus-ring-offset);
--select-content-bg: var(--theme-overlay-bg);
--select-content-padding-y: var(--space-xs);
--select-content-radius: var(--radius-md);
--select-content-shadow: var(--shadow-lg);
--select-content-border-color: var(--theme-surface-border);
--select-content-border-width: 1px;
--select-item-height: var(--size-input-sm);
--select-item-padding: var(--space-sm);
--select-item-hover-bg: var(--theme-action-accent-bg);
--select-item-selected-bg: var(--theme-action-primary-bg);
--select-item-selected-fg: var(--theme-action-primary-fg);
--select-separator-color: var(--theme-surface-border);
--select-separator-height: 1px;
--select-separator-margin-y: var(--space-xs);
--switch-width: calc(var(--space-lg) * 2);
--switch-height: var(--space-lg);
--switch-radius: var(--radius-full);
--switch-track-bg: var(--color-secondary);
--switch-thumb-bg: var(--theme-surface-bg);
--switch-thumb-size: var(--space-md);
--switch-thumb-radius: var(--radius-full);
--switch-thumb-translate-unchecked: var(--space-xs);
--switch-thumb-translate-checked: var(--space-lg);
--switch-disabled-opacity: var(--opacity-disabled);
--switch-track-bg-checked: var(--theme-action-accent-bg);
--switch-thumb-bg-checked: var(--theme-action-accent-fg);
--switch-focus-ring-width: 2px;
--toggle-padding: var(--space-sm);
--toggle-radius: var(--radius-sm);
--toggle-border-width: 1px;
--toggle-fg: var(--theme-surface-fg);
--toggle-hover-bg: var(--theme-surface-hover);
--toggle-active-bg: var(--theme-surface-active);
--toggle-active-fg: var(--color-accent-foreground);
--toggle-group-gap: 0;
--toggle-group-direction: row;
--toggle-group-wrap: nowrap;
--toggle-group-bg: var(--theme-surface-muted);
--toggle-group-radius: var(--radius-md);
--toggle-group-border: var(--theme-surface-border);
--toggle-group-item-padding-x: var(--space-sm);
--toggle-group-item-padding-y: var(--space-xs);
--toggle-group-item-divider: var(--theme-surface-border);
--toggle-group-item-hover-bg: var(--theme-surface-bg);
--toggle-focus-ring-width: 2px;
--toggle-on-bg: var(--theme-action-accent-bg);
--toggle-on-fg: var(--theme-action-accent-fg);
--toggle-off-bg: transparent;
--toggle-disabled-opacity: var(--opacity-disabled);
--slider-height: var(--font-size-xl);
--slider-padding: 0;
--slider-track-bg: var(--color-secondary);
--slider-track-height: var(--space-md);
--slider-track-radius: var(--radius-full);
--slider-range-bg: var(--theme-action-primary-bg);
--slider-thumb-bg: var(--theme-action-primary-bg);
--slider-thumb-size: var(--space-xl);
--slider-thumb-radius: var(--radius-full);
--slider-thumb-border-color: var(--theme-action-primary-bg);
--slider-thumb-border-width: 2px;
--slider-thumb-hover-scale: 1.2;
--slider-thumb-focus-ring-color: var(--theme-action-focus-ring);
--slider-thumb-focus-ring-width: var(--focus-ring-width);
--slider-disabled-opacity: var(--opacity-disabled);
--slider-transition-duration: var(--motion-duration-fast);
--slider-transition-ease: var(--motion-ease-standard);
--slider-mark-width: 1px;
--slider-mark-height: 6px;
--slider-mark-gap: var(--space-xs);
--slider-mark-color: var(--color-secondary);
--calendar-bg: var(--theme-overlay-bg);
--calendar-padding: var(--space-md);
--calendar-radius: var(--radius-md);
--calendar-border-color: var(--theme-surface-border);
--calendar-border-width: 1px;
--calendar-header-fg: var(--theme-surface-fg);
--calendar-header-font-size: var(--font-size-sm);
--calendar-header-font-weight: var(--font-weight-medium);
--calendar-header-gap: var(--space-sm);
--calendar-grid-gap: var(--space-xs);
--calendar-cell-size: var(--size-cell);
--calendar-cell-radius: var(--radius-sm);
--calendar-cell-font-size: var(--font-size-sm);
--calendar-cell-fg: var(--theme-surface-fg);
--calendar-cell-fg-disabled: var(--theme-surface-fg-muted);
--calendar-cell-bg-disabled: transparent;
--calendar-cell-bg-hover: var(--theme-action-accent-bg);
--calendar-cell-bg-selected: var(--theme-action-primary-bg);
--calendar-cell-fg-selected: var(--theme-action-primary-fg);
--calendar-transition-duration: var(--motion-duration-fast);
--calendar-transition-ease: var(--motion-ease-standard);
--calendar-shadow: var(--shadow-sm);
--calendar-hover-scale: 1.05;
--calendar-nav-size: 36px;
--calendar-nav-radius: var(--radius-full);
--calendar-nav-bg: var(--theme-action-accent-bg);
--calendar-nav-fg: var(--theme-surface-fg);
--color-picker-size: var(--size-color-picker);
--color-picker-radius: var(--radius-md);
--color-picker-border-color: var(--theme-surface-border);
--color-picker-border-width: 1px;
--color-picker-trigger-size: var(--space-3xl);
--color-picker-trigger-radius: var(--radius-sm);
--color-picker-swatch-size: 1.75rem;
--color-picker-swatch-radius: var(--radius-xs);
--color-picker-swatch-border-width: 1px;
--color-picker-swatch-border-color: var(--theme-surface-border);
--color-picker-swatch-border-color-selected: var(--theme-action-primary-bg);
--color-picker-panel-bg: var(--theme-overlay-bg);
--color-picker-panel-padding: var(--space-md);
--color-picker-panel-radius: var(--radius-md);
--color-picker-panel-shadow: var(--shadow-lg);
--color-picker-transition-duration: var(--motion-duration-fast);
--color-picker-transition-ease: var(--motion-ease-standard);
--label-fg: var(--theme-surface-fg);
--label-fg-muted: var(--theme-surface-fg-muted);
--label-fg-disabled: var(--theme-surface-fg-muted);
--label-font-size: var(--font-size-sm);
--label-font-weight: var(--font-weight-medium);
--label-line-height: var(--line-height-normal);
--label-margin-bottom: var(--space-sm);
--radio-group-gap: var(--space-sm);
--radio-group-item-gap: var(--space-sm);
--radio-group-label-fg: var(--theme-surface-fg);
--radio-group-label-fg-disabled: var(--theme-surface-fg-muted);
--radio-group-label-font-size: var(--font-size-sm);
--radio-group-label-font-weight: var(--font-weight-medium);
--radio-group-item-indicator-size: var(--space-2xs);
--color-picker-example-gap: var(--space-md);
--color-picker-labels-gap: var(--space-xs);
--color-picker-label-gap: var(--space-xs);
--color-picker-label-font-size: var(--font-size-xs);
--color-picker-label-font-family: var(--font-family-mono);
--color-picker-label-key-fg: var(--theme-surface-fg-muted);
--color-picker-label-value-fg: var(--theme-surface-fg);
--color-picker-disabled-opacity: var(--opacity-disabled);
--form-gap: var(--space-lg);
--form-actions-gap: var(--space-sm);
--form-actions-justify: flex-end;
--form-actions-padding-top: var(--space-lg);
--form-actions-border-top: 1px solid var(--theme-surface-border);
--form-error-summary-bg: var(--theme-state-error-bg);
--form-error-summary-padding-x: var(--space-md);
--form-error-summary-padding-y: var(--space-sm);
--form-error-summary-radius: var(--radius-md);
--form-error-summary-border-color: var(--color-destructive);
--form-error-summary-border-width: 1px;
--form-error-summary-gap: var(--space-sm);
--form-error-summary-title-fg: var(--color-destructive-foreground);
--form-error-summary-title-font-size: var(--font-size-sm);
--form-error-summary-title-font-weight: var(--font-weight-semibold);
--form-error-summary-list-gap: var(--space-sm);
--form-error-summary-item-fg: var(--color-destructive-foreground);
--form-error-summary-item-font-size: var(--font-size-sm);
--form-error-summary-item-gap: var(--space-sm);
--form-error-summary-item-icon-color: var(--color-destructive);
--form-error-summary-item-icon-size: var(--space-md);
--form-help-text-fg: var(--theme-surface-fg-muted);
--radio-group-item-size: 1rem;
--radio-group-item-bg: var(--theme-surface-bg);
--radio-group-item-border-color: var(--theme-action-primary-bg);
--radio-group-item-border-width: 2px;
--form-section-gap: var(--space-md);
--form-field-gap: var(--space-xs);
--form-label-font-weight: var(--font-weight-medium);
--form-label-fg: var(--theme-surface-fg);
--form-label-font-size: var(--font-size-sm);
--form-label-required-color: var(--color-destructive);
--form-error-font-size: var(--font-size-xs);
--form-error-fg: var(--color-destructive);
--form-hint-font-size: var(--font-size-xs);
--form-hint-fg: var(--theme-surface-fg-muted);
--form-field-valid-color: var(--color-success);
--form-field-invalid-color: var(--color-destructive);
--form-field-warning-color: var(--color-warning);
--form-disabled-opacity: 0.5;
}
[data-theme] {
--navigation-color: var(--theme-action-primary-bg);
--navigation-spacing: var(--space-sm);
--navigation-font-weight: var(--font-weight-medium);
--menubar-gap: var(--space-xs);
--menubar-padding: var(--space-xs);
--menubar-bg: var(--theme-surface-bg);
--menubar-radius: var(--radius-md);
--menubar-border-color: var(--theme-surface-border);
--menubar-border-width: 1px;
--sidebar-width: 16rem;
--sidebar-bg: var(--theme-surface-bg);
--sidebar-border-color: var(--theme-surface-border);
--sidebar-border-width: 1px;
--sidebar-padding: var(--space-md);
--sidebar-menu-gap: var(--space-xs);
--sidebar-menu-item-height: var(--space-2xl);
--sidebar-menu-item-padding-x: var(--space-sm);
--sidebar-menu-item-padding-y: var(--space-sm);
--sidebar-menu-item-radius: var(--radius-sm);
--sidebar-menu-item-fg: var(--theme-surface-fg);
--sidebar-menu-item-font-size: var(--font-size-sm);
--sidebar-header-padding: var(--space-md);
--sidebar-content-padding: var(--space-md);
--sidebar-footer-padding: var(--space-md);
--sidebar-menu-item-gap: var(--space-sm);
--sidebar-menu-item-bg: transparent;
--sidebar-menu-item-transition-duration: var(--motion-duration-fast);
--sidebar-menu-item-transition-ease: var(--motion-ease-standard);
--sidebar-menu-item-font-weight-active: var(--font-weight-medium);
--sidebar-menu-item-bg-hover: var(--theme-surface-muted);
--sidebar-menu-item-bg-active: var(--theme-action-accent-bg);
--sidebar-menu-item-fg-active: var(--theme-action-primary-fg);
--sidebar-group-label-padding-x: var(--space-sm);
--sidebar-group-label-padding-y: var(--space-xs);
--sidebar-group-label-font-size: var(--font-size-xs);
--sidebar-group-label-font-weight: var(--font-weight-semibold);
--sidebar-group-label-fg: var(--theme-surface-fg-muted);
--sidebar-separator-height: var(--border-thin);
--sidebar-separator-color: var(--theme-surface-border);
--sidebar-separator-margin-y: var(--space-sm);
--sidebar-inset-padding-left: var(--space-lg);
--sidebar-group-toggle-padding-x: var(--space-sm);
--sidebar-group-toggle-padding-y: var(--space-sm);
--sidebar-group-toggle-radius: var(--radius-sm);
--sidebar-group-toggle-fg: var(--theme-surface-fg);
--sidebar-group-toggle-font-size: var(--font-size-sm);
--sidebar-group-toggle-bg-hover: var(--theme-surface-muted);
--sidebar-group-chevron-size: var(--font-size-xs);
--sidebar-label-collapsed-display: none;
--sidebar-item-collapsed-justify: center;
--sidebar-item-collapsed-padding-x: 0;
--sidebar-width-collapsed: var(--layout-sidebar-width-collapsed);
--navigation-menu-bg: var(--theme-surface-bg);
--navigation-menu-padding: var(--space-sm);
--navigation-menu-gap: var(--space-xs);
--navigation-menu-border-color: var(--theme-surface-border);
--navigation-menu-border-width: 1px;
--navigation-menu-trigger-fg: var(--theme-surface-fg);
--navigation-menu-trigger-icon-size: var(--space-md);
--navigation-menu-trigger-icon-rotation: 180deg;
--navigation-menu-trigger-transition-duration: var(--motion-duration-normal);
--navigation-menu-trigger-transition-ease: var(--motion-ease-standard);
--navigation-menu-item-fg: var(--theme-surface-fg);
--navigation-menu-item-height: var(--size-nav-item);
--navigation-menu-item-padding-x: var(--space-md);
--navigation-menu-item-padding-y: var(--space-sm);
--navigation-menu-link-fg: var(--theme-surface-fg);
--navigation-menu-link-text-decoration: none;
--navigation-menu-content-bg: var(--theme-overlay-bg);
--navigation-menu-content-padding: var(--space-md);
--navigation-menu-content-radius: var(--radius-md);
--navigation-menu-content-shadow: var(--shadow-lg);
--navigation-menu-trigger-bg-hover: var(--theme-surface-muted);
--navigation-menu-trigger-bg-active: var(--theme-action-accent-bg);
--navigation-menu-trigger-fg-active: var(--theme-action-primary-fg);
--navigation-menu-link-fg-hover: var(--theme-action-primary-bg);
--navigation-menu-content-border-width: 1px;
--navigation-menu-content-border-color: var(--theme-surface-border);
--navigation-menu-z-index: var(--layer-overlay);
--navigation-menu-content-min-width: var(--layout-width-sm);
--navigation-menu-list-gap: var(--space-xs);
--navigation-menu-trigger-hover-fg: var(--nav-item-hover-fg);
--navigation-menu-trigger-active-fg: var(--nav-item-active-fg);
--pagination-gap: var(--space-sm);
--pagination-item-size: var(--size-nav-item);
--pagination-item-padding: var(--space-sm);
--pagination-item-radius: var(--radius-sm);
--pagination-item-bg: transparent;
--pagination-item-fg: var(--theme-surface-fg);
--pagination-item-font-size: var(--font-size-sm);
--pagination-item-font-weight: var(--font-weight-normal);
--pagination-item-font-weight-active: var(--font-weight-medium);
--pagination-item-disabled-opacity: var(--opacity-disabled);
--pagination-item-transition-duration: var(--motion-duration-fast);
--pagination-item-transition-ease: var(--motion-ease-standard);
--pagination-ellipsis-fg: var(--theme-surface-fg-muted);
--pagination-item-bg-hover: var(--theme-surface-muted);
--pagination-item-bg-active: var(--theme-action-primary-bg);
--pagination-item-fg-active: var(--color-primary-foreground);
--toc-width: var(--layout-width-toc);
--toc-bg: transparent;
--toc-gap: var(--space-xs);
--toc-title-fg: var(--theme-surface-fg-muted);
--toc-title-font-size: var(--font-size-xs);
--toc-title-font-weight: var(--font-weight-bold);
--toc-title-letter-spacing: 0.06em;
--toc-link-fg: var(--theme-surface-fg-muted);
--toc-link-font-size: var(--font-size-sm);
--toc-link-padding-x: var(--space-sm);
--toc-link-padding-y: var(--space-xs);
--toc-link-radius: var(--radius-sm);
--toc-link-border-width: 2px;
--toc-link-border-active: var(--theme-action-primary-bg);
--toc-link-font-weight-active: var(--font-weight-semibold);
--toc-indent-l3: var(--space-md);
--toc-indent-l4: var(--space-lg);
--toc-indent-l5: var(--space-xl);
--toc-expand-btn-size: var(--space-md);
--toc-expand-btn-fg: var(--theme-surface-fg-muted);
--toc-expand-btn-radius: var(--radius-sm);
--toc-subtree-transition-duration: var(--motion-duration-normal);
--toc-subtree-transition-ease: var(--motion-ease-standard);
--toc-child-transition-duration: var(--motion-duration-normal);
--toc-child-transition-ease: var(--motion-ease-standard);
--toc-sticky-top: var(--space-xl);
--toc-sticky-padding: var(--space-md);
--toc-sticky-border-color: var(--theme-surface-border-muted);
--toc-sticky-border-radius: var(--radius-md);
--toc-sticky-bg: var(--theme-surface-bg);
--toc-item-fg: var(--theme-surface-fg-muted);
--toc-item-active-fg: var(--theme-action-primary-bg);
--toc-item-font-size: var(--font-size-sm);
--toc-item-indent-step: var(--space-md);
--toc-button-padding-x: var(--space-sm);
--toc-button-padding-y: var(--space-sm);
--toc-button-radius: var(--radius-sm);
--toc-link-fg-ancestor: var(--theme-surface-fg);
--toc-link-bg-ancestor: transparent;
--toc-link-border-ancestor: color-mix(in srgb, var(--theme-action-primary-bg) 40%, transparent);
--toc-link-font-weight-ancestor: var(--font-weight-medium);
--toc-subtree-gap: var(--space-2xs);
--toc-child-max-height: 2.5rem;
--toc-subtree-indent: var(--space-sm);
--toc-indent-l2: var(--space-sm);
--toc-link-bg-hover: var(--theme-surface-muted);
--toc-progress-scale: 0;
--tabs-gap: var(--space-sm);
--tabs-border-color: var(--theme-surface-border);
--tabs-border-width: 1px;
--tab-fg: var(--theme-surface-fg-muted);
--tab-padding-x: var(--space-md);
--tab-padding-y: var(--space-sm);
--tab-font-size: var(--font-size-sm);
--tab-font-weight: var(--font-weight-normal);
--tab-font-weight-active: var(--font-weight-medium);
--tab-indicator-color: var(--theme-action-primary-bg);
--tab-indicator-height: 2px;
--tab-content-padding-y: var(--space-md);
--tab-transition-duration: var(--motion-duration-normal);
--tab-transition-ease: var(--motion-ease-standard);
--breadcrumb-fg: var(--theme-surface-fg-muted);
--breadcrumb-font-size: var(--font-size-sm);
--breadcrumb-font-weight: var(--font-weight-normal);
--breadcrumb-font-weight-active: var(--font-weight-medium);
--breadcrumb-gap: var(--space-sm);
--breadcrumb-separator-fg: var(--theme-surface-fg-muted);
--breadcrumb-transition-duration: var(--motion-duration-fast);
--breadcrumb-transition-ease: var(--motion-ease-standard);
--breadcrumb-collapse-min-width: 12rem;
--breadcrumb-collapse-max-width: 20rem;
--breadcrumb-fg-hover: var(--theme-action-primary-bg);
--breadcrumb-page-fg: var(--theme-action-primary-fg);
--breadcrumb-collapse-border-width: 1px;
--link-group-label-letter-spacing: var(--letter-spacing-wide);
--link-fg: var(--theme-action-primary-bg);
--link-font-weight: var(--font-weight-normal);
--link-text-decoration: none;
--link-text-decoration-hover: underline;
--link-disabled-opacity: var(--opacity-disabled);
--link-transition-duration: var(--motion-duration-fast);
--link-fg-hover: color-mix(in srgb, var(--theme-action-primary-bg) 80%, white);
--link-fg-active: var(--theme-action-primary-active);
--link-transition-ease: var(--motion-ease-standard);
--link-muted-fg: var(--theme-surface-fg-muted);
--link-underline-decoration: underline;
--link-default-decoration: none;
--link-default-decoration-hover: underline;
--link-muted-decoration: none;
--link-muted-decoration-hover: none;
--link-underline-decoration-hover: underline;
--toolbar-bg: var(--theme-surface-bg);
--toolbar-border-color: var(--theme-surface-border);
--toolbar-gap: var(--space-sm);
--toolbar-padding: var(--space-sm);
--toolbar-item-padding-x: var(--space-sm);
--toolbar-item-padding-y: var(--space-xs);
--toolbar-item-radius: var(--radius-sm);
--toolbar-item-fg: var(--theme-surface-fg);
--toolbar-item-bg-hover: var(--theme-surface-muted);
--toolbar-item-fg-hover: var(--theme-surface-fg);
--toolbar-item-bg-pressed: var(--theme-action-primary-bg);
--toolbar-item-fg-pressed: var(--theme-action-primary-fg);
--toolbar-item-size: var(--size-nav-item);
--toolbar-item-transition: var(--motion-duration-fast);
--toolbar-item-disabled-opacity: var(--opacity-disabled);
--breadcrumb-item-fg: var(--theme-surface-fg-muted);
--menu-item-bg: transparent;
--menu-item-padding: var(--space-sm);
--nav-item-height: var(--space-2xl);
--nav-item-padding-x: var(--space-sm);
--nav-item-padding-y: var(--space-xs);
--nav-item-gap: var(--space-xs);
--nav-item-radius: var(--radius-sm);
--nav-item-font-size: var(--font-size-sm);
--nav-item-font-weight: var(--font-weight-medium);
--nav-item-active-font-weight: var(--font-weight-semibold);
--nav-item-fg: var(--theme-surface-fg);
--nav-item-icon-size: 1.25em;
--nav-item-line-height: var(--line-height-normal);
--nav-item-hover-bg: transparent;
--nav-item-hover-fg: var(--theme-action-primary-bg);
--nav-item-active-bg: transparent;
--nav-item-active-fg: var(--theme-action-primary-bg);
--nav-item-focus-ring-width: var(--focus-ring-width);
--nav-item-focus-ring-color: var(--theme-action-primary-bg);
--link-group-gap: var(--space-xs);
--link-group-label-font-size: var(--font-size-xs);
--link-group-label-font-weight: var(--font-weight-semibold);
--link-group-label-color: var(--theme-surface-fg-muted);
--link-group-label-margin-bottom: var(--space-xs);
--link-group-horizontal-gap: var(--space-md);
--link-group-item-hover-bg: var(--theme-surface-muted);
--link-group-item-hover-fg: var(--theme-surface-fg);
--link-group-item-active-fg: var(--theme-action-primary-bg);
--link-group-item-active-border: var(--theme-action-primary-bg);
--link-group-item-active-weight: var(--font-weight-semibold);
--link-group-item-padding-x: var(--space-sm);
--link-group-item-padding-y: var(--space-xs);
--link-group-item-radius: var(--radius-sm);
--link-group-item-border-width: var(--border-medium);
--page-header-gap: var(--space-sm);
--page-header-padding: var(--space-md) var(--space-lg);
--page-header-bg: var(--theme-surface-bg);
--page-header-border-width: 1px;
--page-header-border-color: var(--theme-surface-border);
--page-header-breadcrumbs-gap: var(--space-xs);
--page-header-breadcrumbs-fg: var(--theme-surface-fg-muted);
--page-header-title-font-size: var(--font-size-xl);
--page-header-title-font-weight: var(--font-weight-semibold);
--page-header-title-fg: var(--theme-surface-fg);
--page-header-description-font-size: var(--font-size-sm);
--page-header-description-line-height: var(--line-height-normal);
--page-header-description-fg: var(--theme-surface-fg-muted);
--page-header-actions-gap: var(--space-sm);
--page-header-tabs-margin-top: var(--space-sm);
--doc-progress-height: 3px;
--doc-progress-bg: color-mix(in srgb, var(--theme-surface-fg) 15%, transparent);
--doc-progress-bar-bg: var(--theme-action-primary-bg);
--doc-progress-z-index: 1000;
--doc-progress-transition: width var(--motion-duration-normal) var(--motion-ease-standard);
}
[data-theme] {
--feedback-color: var(--theme-action-primary-bg);
--status-dot-size: var(--space-sm);
--status-dot-radius: var(--radius-full);
--status-dot-bg-online: var(--color-success);
--status-dot-bg-offline: var(--theme-surface-fg-muted);
--status-dot-bg-away: var(--color-warning);
--status-dot-bg-busy: var(--theme-state-error-bg);
--status-dot-bg-do-not-disturb: var(--theme-state-error-bg);
--feedback-transition-duration: var(--motion-duration-normal);
--feedback-radius: var(--radius-lg);
--alert-bg: var(--theme-surface-bg);
--alert-bg-default: var(--theme-surface-muted);
--alert-bg-info: var(--theme-state-info-bg);
--alert-bg-success: var(--theme-state-success-bg);
--alert-bg-warning: var(--theme-state-warning-bg);
--alert-bg-error: var(--theme-state-error-bg);
--alert-border-color: var(--theme-surface-border);
--alert-border-color-default: var(--theme-surface-border);
--alert-border-color-info: var(--color-info);
--alert-border-color-success: var(--color-success);
--alert-border-color-warning: var(--color-warning);
--alert-border-color-error: var(--color-destructive);
--alert-border-width: 1px;
--alert-padding-x: var(--space-md);
--alert-padding-y: var(--space-sm);
--alert-radius: var(--radius-lg);
--alert-title-fg: var(--theme-surface-fg);
--alert-title-font-size: var(--font-size-sm);
--alert-title-font-weight: var(--font-weight-semibold);
--alert-description-fg: var(--theme-surface-fg-muted);
--alert-description-font-size: var(--font-size-sm);
--alert-description-line-height: var(--line-height-normal);
--alert-close-fg: var(--theme-surface-fg);
--alert-close-fg-hover: var(--theme-surface-fg-muted);
--alert-close-size: var(--space-md);
--alert-close-opacity-disabled: 0.5;
--alert-dialog-z-index: var(--layer-modal);
--alert-dialog-overlay-bg: var(--color-overlay-50);
--alert-dialog-overlay-opacity: 0.5;
--alert-dialog-overlay-blur: 4px;
--alert-dialog-content-bg: var(--theme-surface-bg);
--alert-dialog-content-width: var(--layout-width-dialog);
--alert-dialog-content-radius: var(--radius-lg);
--alert-dialog-content-padding: var(--space-xl);
--alert-dialog-content-shadow: var(--shadow-2xl);
--alert-dialog-header-gap: var(--space-sm);
--alert-dialog-header-padding: 0 0 var(--space-md) 0;
--alert-dialog-title-fg: var(--theme-surface-fg);
--alert-dialog-title-font-size: var(--font-size-lg);
--alert-dialog-title-font-weight: var(--font-weight-semibold);
--alert-dialog-description-fg: var(--theme-surface-fg-muted);
--alert-dialog-description-font-size: var(--font-size-sm);
--alert-dialog-description-line-height: var(--line-height-relaxed);
--alert-dialog-footer-gap: var(--space-sm);
--alert-dialog-footer-padding: var(--space-md) 0 0 0;
--alert-dialog-action-gap: var(--space-sm);
--alert-dialog-transition-duration: var(--motion-duration-normal);
--alert-dialog-transition-ease: var(--motion-ease-standard);
--callout-border-accent-width: var(--border-medium);
--callout-gap: var(--space-sm);
--callout-padding-x: var(--space-md);
--callout-padding-y: var(--space-sm);
--callout-radius: var(--radius-lg);
--callout-border-width: 1px;
--callout-icon-size: var(--font-size-xl);
--callout-bg-default: color-mix(in srgb, var(--theme-surface-border) 30%, transparent);
--callout-bg-info: color-mix(in srgb, var(--theme-state-info-bg) 15%, transparent);
--callout-bg-success: color-mix(in srgb, var(--theme-state-success-bg) 15%, transparent);
--callout-bg-warning: color-mix(in srgb, var(--theme-state-warning-bg) 15%, transparent);
--callout-bg-error: color-mix(in srgb, var(--theme-state-error-bg) 15%, transparent);
--callout-border-default: var(--theme-surface-border);
--callout-border-info: var(--theme-state-info-bg);
--callout-border-success: var(--theme-state-success-bg);
--callout-border-warning: var(--theme-state-warning-bg);
--callout-border-error: var(--theme-state-error-bg);
--callout-title-fg: var(--theme-surface-fg);
--callout-title-font-size: var(--font-size-sm);
--callout-title-font-weight: var(--font-weight-semibold);
--callout-description-fg: var(--theme-surface-fg-muted);
--callout-description-font-size: var(--font-size-sm);
--callout-description-line-height: var(--line-height-normal);
--badge-padding-x: var(--space-sm);
--badge-padding-y: var(--space-xs);
--badge-radius: var(--radius-full);
--badge-font-size: var(--font-size-xs);
--badge-font-weight: var(--font-weight-medium);
--badge-line-height: var(--line-height-tight);
--badge-bg-default: var(--theme-action-secondary-bg);
--badge-bg-primary: var(--theme-action-primary-bg);
--badge-bg-success: var(--theme-state-success-bg);
--badge-bg-warning: var(--theme-state-warning-bg);
--badge-bg-destructive: var(--theme-state-error-bg);
--badge-fg-default: var(--theme-action-secondary-fg);
--badge-fg-primary: var(--theme-action-primary-fg);
--badge-fg-success: var(--theme-state-success-fg);
--badge-fg-warning: var(--theme-state-warning-fg);
--badge-fg-destructive: var(--theme-state-error-fg);
--badge-bg-outline: transparent;
--badge-fg-outline: var(--theme-text-primary);
--badge-border-outline: var(--theme-surface-border);
--badge-transition-duration: var(--motion-duration-fast);
--badge-transition-ease: var(--motion-ease-standard);
--badge-hover-opacity: 0.8;
--toast-bg: var(--theme-surface-bg);
--toast-padding: var(--space-md);
--toast-radius: var(--radius-lg);
--toast-shadow: var(--shadow-lg);
--toast-gap: var(--space-sm);
--toast-border-color: var(--theme-surface-border);
--toast-border-width: 1px;
--toast-success-bg: var(--theme-state-success-bg);
--toast-success-border: var(--theme-state-success-bg);
--toast-warning-bg: var(--theme-state-warning-bg);
--toast-warning-border: var(--theme-state-warning-bg);
--toast-error-bg: var(--theme-state-error-bg);
--toast-error-border: var(--theme-state-error-bg);
--toast-z-index: var(--layer-toast);
--toast-viewport-padding: var(--space-md);
--toast-viewport-gap: var(--space-sm);
--toast-viewport-max-width: var(--layout-width-lg);
--toast-title-fg: var(--theme-surface-fg);
--toast-title-font-size: var(--font-size-sm);
--toast-title-font-weight: var(--font-weight-semibold);
--toast-description-fg: var(--theme-surface-fg-muted);
--toast-description-font-size: var(--font-size-sm);
--toast-close-fg: var(--theme-surface-fg);
--toast-close-size: var(--space-md);
--banner-gap: var(--space-sm);
--banner-padding-x: var(--space-md);
--banner-padding-y: var(--space-sm);
--banner-radius: 0;
--banner-shadow: var(--shadow-sm);
--banner-border-color: var(--theme-surface-border);
--banner-border-width: 1px;
--banner-bg-info: var(--theme-state-info-bg);
--banner-bg-success: var(--theme-state-success-bg);
--banner-bg-warning: var(--theme-state-warning-bg);
--banner-bg-error: var(--theme-state-error-bg);
--banner-fg: var(--theme-surface-fg);
--banner-content-fg: var(--theme-surface-fg);
--banner-content-font-size: var(--font-size-sm);
--banner-close-fg: var(--theme-surface-fg);
--banner-close-fg-hover: var(--theme-surface-fg-muted);
--banner-close-size: var(--space-md);
--banner-border-color-error: var(--color-destructive);
--banner-border-color-warning: var(--color-warning);
--banner-border-color-success: var(--color-success);
--banner-border-color-info: var(--color-info);
--banner-actions-gap: var(--space-sm);
--inline-notice-gap: var(--space-sm);
--inline-notice-padding-x: var(--space-sm);
--inline-notice-padding-y: var(--space-xs);
--inline-notice-radius: var(--radius-md);
--inline-notice-border-color: var(--theme-surface-border);
--inline-notice-border-width: 1px;
--inline-notice-bg-default: var(--theme-surface-muted);
--inline-notice-bg-info: color-mix(in srgb, var(--theme-state-info-bg) 12%, transparent);
--inline-notice-bg-success: color-mix(in srgb, var(--theme-state-success-bg) 12%, transparent);
--inline-notice-bg-warning: color-mix(in srgb, var(--theme-state-warning-bg) 12%, transparent);
--inline-notice-bg-error: color-mix(in srgb, var(--theme-state-error-bg) 12%, transparent);
--inline-notice-fg: var(--theme-surface-fg);
--inline-notice-font-size: var(--font-size-xs);
--inline-notice-icon-size: var(--space-md);
--empty-state-padding: var(--space-xl);
--empty-state-gap: var(--space-md);
--empty-state-icon-size: var(--size-icon-lg);
--empty-state-icon-fg: var(--theme-surface-fg-muted);
--empty-state-title-fg: var(--theme-surface-fg);
--empty-state-title-font-size: var(--font-size-lg);
--empty-state-title-font-weight: var(--font-weight-semibold);
--empty-state-description-fg: var(--theme-surface-fg-muted);
--empty-state-description-font-size: var(--font-size-sm);
--empty-state-actions-gap: var(--space-sm);
--error-state-padding: var(--space-xl);
--error-state-gap: var(--space-md);
--error-state-icon-size: var(--size-icon-lg);
--error-state-icon-fg: var(--theme-state-error-bg);
--error-state-title-fg: var(--theme-surface-fg);
--error-state-title-font-size: var(--font-size-lg);
--error-state-title-font-weight: var(--font-weight-semibold);
--error-state-description-fg: var(--theme-surface-fg-muted);
--error-state-description-font-size: var(--font-size-sm);
--error-state-actions-gap: var(--space-sm);
--spinner-size: var(--space-lg);
--spinner-border-width: 2px;
--spinner-stroke-width: 2px;
--spinner-color: var(--theme-action-primary-bg);
--spinner-track-color: var(--theme-surface-muted);
--spinner-duration: var(--motion-duration-slow);
--spinner-ease: var(--motion-ease-linear);
--progress-height: var(--space-sm);
--progress-radius: var(--radius-full);
--progress-bg: var(--theme-surface-muted);
--progress-fill-bg: var(--theme-action-primary-bg);
--progress-transition-duration: var(--motion-duration-normal);
--progress-transition-ease: var(--motion-ease-standard);
--progress-fill: 0%;
--skeleton-bg: var(--theme-surface-muted);
--skeleton-radius: var(--radius-md);
--skeleton-pulse-duration: var(--motion-duration-slow);
--skeleton-pulse-ease: var(--motion-ease-standard);
--alert-fg: var(--theme-surface-fg);
--alert-gap: var(--space-sm);
--badge-bg: var(--theme-action-secondary-bg);
--badge-fg: var(--theme-action-secondary-fg);
--callout-bg: var(--theme-surface-muted);
--callout-fg: var(--theme-surface-fg);
--callout-padding: var(--space-md);
--progress-fg: var(--theme-action-primary-fg);
--skeleton-shimmer-duration: var(--motion-duration-slow);
--skeleton-shimmer-ease: var(--motion-ease-standard);
--skeleton-shimmer-color-start: transparent;
--skeleton-shimmer-color-end: var(--theme-surface-overlay);
--skeleton-text-height: var(--space-sm);
--skeleton-text-radius: var(--radius-sm);
--skeleton-circle-size: var(--space-xl);
--skeleton-circle-radius: var(--radius-full);
--skeleton-rectangle-height: var(--space-lg);
--skeleton-rectangle-radius: var(--radius-md);
--spinner-size-sm: var(--space-md);
--spinner-size-md: var(--space-lg);
--spinner-size-lg: var(--space-xl);
--spinner-rotation-duration: var(--motion-duration-normal);
--spinner-rotation-ease: var(--motion-ease-linear);
--spinner-opacity-paused: 0.5;
--pulse-size: var(--space-sm);
--pulse-delay: calc(var(--motion-duration-slow) / 2);
--pulse-size-small: var(--space-xs);
--pulse-size-large: var(--space-md);
--pulse-bg-subtle: var(--theme-action-secondary-bg);
--pulse-bg-emphasized: var(--theme-action-primary-bg);
--loading-overlay-z-index: var(--layer-overlay);
--loading-overlay-bg: var(--theme-surface-bg);
--loading-overlay-opacity: 0.8;
--loading-overlay-transition-duration: var(--motion-duration-fast);
--loading-overlay-transition-ease: var(--motion-ease-standard);
--loading-overlay-spinner-size: 1.25rem;
--loading-overlay-spin-duration: var(--motion-duration-slower, 0.9s);
--pulse-radius: var(--radius-full);
--pulse-bg-default: var(--theme-action-primary-bg);
--pulse-scale-subtle: 1.3;
--pulse-scale-default: 1.5;
--pulse-scale-emphasized: 1.8;
--pulse-shadow-emphasized: 0 0 8px 2px;
--pulse-shadow-color-emphasized: hsl(142 71% 45% / 0.4);
--pulse-duration-slow: var(--motion-duration-deliberate);
--pulse-duration-normal: var(--motion-duration-slow);
--pulse-duration-fast: var(--motion-duration-fast);
--pulse-ease: var(--motion-ease-standard);
--pulse-duration: var(--pulse-duration-normal);
--pulse-scale: var(--pulse-scale-default);
--doc-progress-radius: var(--radius-full);
--doc-progress-z-index: var(--layer-sticky);
--doc-progress-duration: var(--motion-duration-fast);
--doc-progress-ease: var(--motion-ease-standard);
--empty-table-padding: var(--space-xl);
--empty-table-content-gap: var(--space-sm);
--empty-table-title-font-size: var(--font-size-lg);
--empty-table-title-font-weight: var(--font-weight-semibold);
--empty-table-title-fg: var(--theme-text-primary);
--empty-table-description-font-size: var(--font-size-sm);
--empty-table-description-line-height: var(--line-height-relaxed);
--empty-table-description-fg: var(--theme-text-secondary);
}
[data-theme] {
--data-radius: var(--radius-md);
--data-shadow: var(--shadow-sm);
--data-spacing: var(--space-md);
--card-bg: var(--theme-surface-bg);
--card-border: var(--theme-surface-border);
--card-radius: var(--radius-md);
--card-shadow: var(--shadow-sm);
--card-hover-transform: translateY(calc(-1 * var(--space-2xs)));
--card-hover-transform: translateY(calc(-1 * var(--space-2xs)));
--card-border-width: 1px;
--card-border-color: var(--theme-surface-border);
--card-padding: var(--space-lg);
--card-content-gap: var(--space-md);
--card-header-gap: var(--space-sm);
--card-header-padding: 0 0 var(--space-md) 0;
--card-footer-gap: var(--space-sm);
--card-footer-padding: var(--space-md) 0 0 0;
--card-fg: var(--theme-surface-fg);
--card-title-fg: var(--theme-surface-fg);
--card-title-font-size: var(--font-size-lg);
--card-title-font-weight: var(--font-weight-semibold);
--card-description-fg: var(--theme-surface-fg-muted);
--card-description-font-size: var(--font-size-sm);
--card-description-line-height: var(--line-height-tight);
--table-border-color: var(--theme-surface-border);
--table-border-width: 1px;
--table-row-height: var(--space-2xl);
--table-row-bg-striped: color-mix(in srgb, var(--theme-surface-fg) 3%, transparent);
--table-row-bg-hover: var(--theme-surface-muted);
--table-row-bg-selected: color-mix(in srgb, var(--theme-action-primary-bg) 15%, transparent);
--table-select-checkbox-size: 1rem;
--table-select-checkbox-radius: var(--radius-xs);
--table-select-checkbox-border: var(--theme-surface-border);
--table-select-checkbox-bg: var(--theme-action-primary-bg);
--table-select-col-width: 2.5rem;
--table-row-bg-editing: color-mix(in srgb, var(--theme-action-accent-bg) 12%, transparent);
--table-row-border-editing: var(--theme-action-accent-bg);
--table-row-bg-deleting: color-mix(in srgb, var(--theme-action-destructive-bg, #ef4444) 12%, transparent);
--table-row-border-deleting: var(--theme-action-destructive-bg, #ef4444);
--table-expand-row-bg: var(--theme-surface-muted);
--table-expand-row-padding: var(--space-md);
--table-expand-btn-size: var(--space-lg);
--table-expand-btn-color: var(--theme-surface-fg);
--table-col-min-width: 40px;
--table-resize-handle-width: 4px;
--table-resize-handle-color: var(--theme-action-primary-bg);
--table-resize-handle-opacity: 0.4;
--table-resize-handle-opacity-active: 0.8;
--table-resize-handle-z: 2;
--table-row-transition-duration: var(--motion-duration-fast);
--table-row-transition-ease: var(--motion-ease-standard);
--table-cell-fg: var(--theme-surface-fg);
--table-cell-font-size: var(--font-size-sm);
--table-cell-padding-x: var(--space-md);
--table-cell-padding-y: var(--space-sm);
--table-header-bg: var(--theme-surface-muted);
--table-header-fg: var(--theme-surface-fg);
--table-header-font-size: var(--font-size-sm);
--table-header-font-weight: var(--font-weight-semibold);
--table-header-height: var(--space-xl);
--table-caption-fg: var(--theme-surface-fg-muted);
--table-caption-font-size: var(--font-size-sm);
--table-caption-padding-y: var(--space-sm);
--datatable-border-color: var(--table-border-color);
--datatable-header-bg: var(--table-header-bg);
--datatable-toolbar-gap: var(--space-sm);
--datatable-toolbar-padding-y: var(--space-sm);
--datatable-toolbar-padding-x: var(--space-sm);
--datatable-filter-max-width: 300px;
--datatable-density-compact-padding-y: var(--space-xs);
--datatable-density-compact-padding-x: var(--space-sm);
--datatable-density-comfortable-padding-y: var(--space-sm);
--datatable-density-comfortable-padding-x: var(--space-md);
--datatable-density-spacious-padding-y: var(--space-md);
--datatable-density-spacious-padding-x: var(--space-lg);
--virtual-list-bg: var(--theme-surface-bg);
--virtual-list-border-color: var(--theme-surface-border);
--virtual-list-border-width: 1px;
--virtual-list-item-height: var(--space-2xl);
--virtual-list-item-fg: var(--theme-surface-fg);
--virtual-list-item-font-size: var(--font-size-sm);
--virtual-list-item-padding-x: var(--space-md);
--virtual-list-item-gap: var(--space-sm);
--virtual-list-item-hover-bg: color-mix(in srgb, var(--theme-surface-fg) 6%, transparent);
--virtual-list-item-selected-bg: color-mix(in srgb, var(--theme-action-accent-bg) 12%, transparent);
--icon-size-sm: var(--space-md);
--icon-size-md: var(--font-size-xl);
--icon-size-lg: var(--space-lg);
--icon-color: var(--theme-surface-fg);
--icon-color-muted: var(--theme-surface-fg-muted);
--icon-color-disabled: var(--theme-surface-fg-muted);
--icon-vertical-align: middle;
--icon-color-primary: var(--color-primary);
--icon-color-destructive: var(--color-destructive);
--icon-color-success: var(--color-success);
--icon-color-warning: var(--color-warning);
--icon-stroke-width: 2;
--icon-button-size-xs: 1.5rem;
--icon-button-size-sm: 1.75rem;
--icon-button-size-md: 2rem;
--icon-button-size-lg: 2.5rem;
--icon-button-size-xl: 3.5rem;
--icon-button-padding-xs: var(--space-xs);
--icon-button-padding-sm: var(--space-xs);
--icon-button-padding-md: var(--space-sm);
--icon-button-padding-lg: var(--space-sm);
--icon-button-padding-xl: var(--space-md);
--icon-button-radius: var(--radius-sm);
--icon-button-bg: transparent;
--icon-button-fg: var(--theme-surface-fg);
--icon-button-fg-disabled: var(--theme-surface-fg-muted);
--icon-button-transition-duration: var(--motion-duration-fast);
--icon-button-transition-ease: var(--motion-ease-standard);
--icon-button-outline-border: var(--theme-surface-border);
--icon-button-solid-bg: var(--theme-action-primary-bg);
--icon-button-solid-fg: var(--theme-action-primary-fg);
--icon-button-destructive-bg: var(--color-destructive);
--icon-button-destructive-fg: var(--color-destructive-foreground);
--icon-button-focus-ring: 0 0 0 2px var(--theme-action-focus-ring);
--icon-button-loading-opacity: 0.6;
--icon-button-bg-hover: var(--theme-surface-muted);
--icon-button-bg-active: var(--theme-action-accent-bg);
--icon-button-ghost-bg-hover: var(--theme-surface-muted);
--icon-button-ghost-opacity: 0.5;
--icon-button-border: none;
--icon-button-rotate-from: 0deg;
--icon-button-rotate-to: 360deg;
--icon-button-subtle-bg: var(--theme-surface-muted);
--icon-button-subtle-fg: var(--theme-surface-fg);
--icon-button-pressed-bg: var(--theme-action-accent-bg);
--icon-button-pressed-fg: var(--theme-action-accent-fg);
--chart-bg: var(--theme-surface-bg);
--chart-padding: var(--space-md);
--chart-radius: var(--radius-md);
--chart-grid-color: var(--theme-surface-border);
--chart-grid-stroke-width: 1px;
--chart-axis-fg: var(--theme-surface-fg-muted);
--chart-axis-font-size: var(--font-size-xs);
--chart-axis-tick-size: 4px;
--chart-legend-gap: var(--space-md);
--chart-legend-item-fg: var(--theme-surface-fg);
--chart-legend-item-font-size: var(--font-size-sm);
--chart-tooltip-bg: var(--theme-overlay-bg);
--chart-tooltip-fg: var(--color-popover-foreground);
--chart-tooltip-font-size: var(--font-size-sm);
--chart-tooltip-radius: var(--radius-sm);
--chart-tooltip-shadow: var(--shadow-md);
--chart-tooltip-padding: var(--space-sm) var(--space-md);
--chart-crosshair-color: var(--theme-surface-border);
--chart-crosshair-width: 1px;
--chart-legend-dot-size: 10px;
--chart-sync-highlight-bg: var(--theme-primary-subtle, rgba(99,102,241,0.08));
--chart-overlay-z: 10;
--chart-series-color: var(--color-primary);
--chart-series-color-1: var(--color-primary);
--chart-series-color-2: var(--color-warning);
--chart-series-color-3: var(--color-success);
--chart-series-color-4: var(--color-destructive);
--chart-series-color-5: var(--color-secondary);
--chart-series-color-6: var(--color-info);
--kbd-bg: var(--theme-surface-muted);
--kbd-fg: var(--theme-surface-fg);
--kbd-padding-x: var(--space-sm);
--kbd-padding-y: var(--space-xs);
--kbd-radius: var(--radius-sm);
--kbd-shadow: var(--shadow-sm);
--kbd-border-color: var(--theme-surface-border);
--kbd-border-width: 1px;
--kbd-font-family: monospace;
--kbd-font-size: var(--font-size-xs);
--kbd-font-weight: var(--font-weight-semibold);
--kbd-line-height: var(--space-md);
--kbd-muted-bg: var(--theme-surface-muted);
--kbd-muted-fg: var(--theme-surface-fg-muted);
--kbd-inline-gap: var(--space-xs);
--kbd-gap: var(--space-xs);
--kbd-separator-color: var(--theme-surface-fg-muted);
--kbd-size-sm-font: var(--font-size-2xs);
--kbd-size-sm-padding-x: var(--space-xs);
--kbd-size-sm-padding-y: 2px;
--code-block-bg: var(--theme-surface-muted);
--code-block-radius: var(--radius-md);
--code-block-border-color: var(--theme-surface-border);
--code-block-border-width: 1px;
--code-block-content-padding-x: var(--space-md);
--code-block-content-padding-y: var(--space-md);
--code-block-font-family: monospace;
--code-block-font-size: var(--font-size-sm);
--code-block-line-height: var(--line-height-normal);
--code-block-header-bg: var(--theme-surface-muted);
--code-block-header-fg: var(--theme-surface-fg);
--code-block-header-height: var(--space-xl);
--code-block-header-gap: var(--space-sm);
--code-block-language-fg: var(--theme-surface-fg-muted);
--code-block-language-font-size: var(--font-size-xs);
--avatar-size-xs: 1.5rem;
--avatar-size-sm: 2rem;
--avatar-size-md: 2.5rem;
--avatar-size-lg: 3rem;
--avatar-size-xl: 4rem;
--avatar-radius: var(--radius-full);
--avatar-radius-square: var(--radius-xs);
--avatar-radius-rounded: var(--radius-lg);
--avatar-bg: var(--theme-surface-muted);
--avatar-border-color: var(--theme-surface-border);
--avatar-pulse-ring-size: var(--space-xs);
--avatar-pulse-ring-size: var(--space-xs);
--avatar-border-width: 1px;
--avatar-fallback-bg: var(--theme-surface-muted);
--avatar-fallback-fg: var(--theme-surface-fg-muted);
--avatar-fallback-font-size: var(--font-size-sm);
--avatar-fallback-font-weight: var(--font-weight-medium);
--avatar-image-fit: cover;
--avatar-fg: var(--theme-surface-fg-muted);
--avatar-status-pulse-color: var(--color-success);
--avatar-status-translate-x: 20%;
--avatar-status-translate-y: 20%;
--avatar-status-border-width: 2px;
--avatar-status-online-bg: var(--color-success);
--avatar-status-offline-bg: var(--theme-surface-fg-muted);
--avatar-status-busy-bg: var(--color-destructive);
--avatar-status-away-bg: var(--color-warning);
--avatar-badge-size: var(--space-md);
--avatar-badge-offset: -4px;
--avatar-badge-bg: var(--color-destructive);
--avatar-badge-fg: var(--color-destructive-foreground);
--avatar-badge-font-size: var(--font-size-xs);
--avatar-badge-font-weight: var(--font-weight-semibold);
--avatar-group-overlap: -0.5rem;
--inline-meta-gap: var(--space-xs);
--inline-meta-font-size: var(--font-size-sm);
--inline-meta-label-color: var(--theme-surface-fg-muted);
--inline-meta-label-font-weight: var(--font-weight-normal);
--inline-meta-value-color: var(--theme-surface-fg);
--inline-meta-value-font-weight: var(--font-weight-semibold);
--stat-gap: var(--space-xs);
--stat-align: flex-start;
--stat-value-fg: var(--theme-surface-fg);
--stat-value-font-size: var(--font-size-3xl);
--stat-value-font-weight: var(--font-weight-bold);
--stat-label-fg: var(--theme-surface-fg-muted);
--stat-label-font-size: var(--font-size-sm);
--stat-label-font-weight: var(--font-weight-medium);
--stat-size-sm-value: var(--font-size-xl);
--stat-size-md-value: var(--font-size-3xl);
--stat-size-lg-value: var(--font-size-5xl);
--stat-trend-increase-color: var(--color-success);
--stat-trend-decrease-color: var(--color-destructive);
--stat-trend-neutral-color: var(--theme-surface-fg-muted);
--stat-delta-font-size: var(--font-size-sm);
--stat-delta-font-weight: var(--font-weight-semibold);
--stat-icon-size: var(--space-lg);
--stat-skeleton-bg: var(--theme-surface-muted);
--copy-button-icon-size: var(--space-md);
--copy-button-icon-color: var(--theme-surface-fg-muted);
--copy-button-icon-color-copied: var(--color-success);
--copy-button-success-bg: var(--color-success);
--copy-button-success-fg: var(--color-success-foreground);
--copy-button-success-border: var(--color-success);
--copy-button-error-bg: var(--color-destructive);
--copy-button-error-fg: var(--color-destructive-foreground);
--copy-button-error-border: var(--color-destructive);
--copy-button-bg: transparent;
--copy-button-bg-hover: var(--theme-surface-muted);
--copy-button-border-hover: var(--theme-surface-fg-muted);
--copy-button-fg: var(--theme-surface-fg);
--copy-button-border: var(--theme-surface-border);
--copy-button-copied-bg: var(--color-success);
--copy-button-copied-fg: var(--color-success-foreground);
--copy-button-transition-duration: var(--motion-duration-normal);
--copy-button-transition-ease: var(--motion-ease-standard);
--scroll-area-bg: transparent;
--scroll-area-border: none;
--scroll-area-radius: 0;
--scroll-area-padding: 0;
--scroll-area-max-height: 100%;
--scrollbar-size: 8px;
--scrollbar-radius: var(--radius-full);
--scrollbar-track-bg: transparent;
--scrollbar-thumb-bg: var(--theme-surface-border);
--scrollbar-thumb-hover-bg: var(--theme-surface-fg-muted);
--scrollbar-thumb-active-bg: var(--theme-surface-fg);
--scrollbar-transition: background var(--motion-duration-fast) var(--motion-ease-standard);
--scrollbar-thumb-min-size: 40px;
--scroll-thumb-size: 40px;
--scroll-thumb-offset: 0px;
--list-gap: var(--space-sm);
--list-item-padding: var(--space-sm) var(--space-md);
--list-item-border: 1px solid var(--theme-surface-border);
--list-item-bg-disabled: transparent;
--list-item-fg-disabled: var(--theme-surface-fg-muted);
--list-item-focus-ring: 0 0 0 2px var(--theme-action-focus-ring);
--list-item-bg-hover: color-mix(in srgb, var(--theme-surface-fg) 6%, transparent);
--list-item-bg-selected: color-mix(in srgb, var(--theme-action-accent-bg) 12%, transparent);
--list-item-radius: var(--radius-sm);
--list-title-font-size: var(--font-size-sm);
--list-title-font-weight: var(--font-weight-semibold);
--list-description-font-size: var(--font-size-xs);
--list-description-color: var(--theme-surface-fg-muted);
--markdown-max-width: 75ch;
--markdown-padding: var(--space-lg);
--markdown-font-family: var(--font-family-sans);
--markdown-font-size: var(--font-size-md);
--markdown-line-height: var(--line-height-relaxed);
--markdown-fg: var(--theme-surface-fg);
--markdown-heading-fg: var(--theme-surface-fg);
--markdown-link-fg: var(--theme-action-primary-bg);
--markdown-blockquote-border: var(--theme-action-primary-bg);
--markdown-blockquote-fg: var(--theme-surface-fg-muted);
--markdown-hr-color: var(--theme-surface-border-muted);
--markdown-inline-code-bg: var(--theme-surface-muted);
--markdown-inline-code-fg: var(--color-destructive);
--markdown-inline-code-radius: var(--radius-sm);
--markdown-toolbar-gap: var(--space-xs);
--markdown-toolbar-padding-x: var(--space-sm);
--markdown-toolbar-padding-y: var(--space-xs);
--markdown-toolbar-border-color: var(--theme-surface-border-muted);
--markdown-toolbar-item-padding-x: var(--space-sm);
--markdown-toolbar-item-padding-y: var(--space-xs);
--markdown-toolbar-item-radius: var(--radius-sm);
--markdown-toolbar-item-fg: var(--theme-surface-fg-muted);
--markdown-toolbar-item-border-color: var(--theme-surface-border-muted);
--markdown-toolbar-item-bg-hover: var(--theme-surface-muted);
--markdown-toolbar-item-fg-hover: var(--theme-surface-fg);
--markdown-toc-link-fg-hover: var(--theme-surface-fg);
--markdown-toc-link-bg-hover: var(--theme-surface-muted);
--markdown-toc-link-fg-active: var(--theme-action-primary-bg);
--markdown-toc-link-bg-active: var(--theme-surface-muted);
--markdown-toc-width: 220px;
--markdown-layout-gap: var(--space-xl);
--markdown-toc-border-color: var(--theme-surface-border-muted);
--markdown-toc-border-radius: var(--radius-md);
--markdown-toc-padding: var(--space-md);
--markdown-toc-transition-duration: var(--motion-duration-normal);
--markdown-toc-transition-ease: var(--motion-ease-standard);
--markdown-toc-link-fg: var(--theme-surface-fg-muted);
--markdown-toc-link-border-active: var(--theme-action-primary-bg);
--markdown-toc-link-font-size: var(--font-size-sm);
--markdown-toc-link-font-weight-active: var(--font-weight-semibold);
--markdown-toc-indent-l3: var(--space-md);
--markdown-toc-indent-l4: var(--space-lg);
--markdown-toc-indent-l5: var(--space-xl);
--markdown-toc-max-height: var(--size-5xl);
--markdown-h1-font-size: var(--font-size-2xl);
--markdown-h1-font-weight: var(--font-weight-bold);
--markdown-h1-line-height: var(--line-height-tight);
--markdown-h1-margin-top: 0px;
--markdown-h1-margin-bottom: var(--space-lg);
--markdown-h2-font-size: var(--font-size-xl);
--markdown-h2-font-weight: var(--font-weight-semibold);
--markdown-h2-line-height: var(--line-height-tight);
--markdown-h2-margin-top: var(--space-2xl);
--markdown-h2-margin-bottom: var(--space-md);
--markdown-h2-border-color: var(--theme-surface-border-muted);
--markdown-h3-font-size: var(--font-size-lg);
--markdown-h3-font-weight: var(--font-weight-semibold);
--markdown-h3-margin-top: var(--space-xl);
--markdown-h3-margin-bottom: var(--space-sm);
--markdown-h4-font-size: var(--font-size-md);
--markdown-h4-font-weight: var(--font-weight-semibold);
--markdown-h4-margin-top: var(--space-lg);
--markdown-h4-margin-bottom: var(--space-xs);
--markdown-p-margin-bottom: var(--space-md);
--markdown-li-margin-bottom: var(--space-xs);
--markdown-list-padding-left: var(--space-xl);
--markdown-list-margin-bottom: var(--space-md);
--markdown-block-gap: var(--space-md);
--markdown-blockquote-padding-left: var(--space-lg);
--markdown-blockquote-margin-y: var(--space-lg);
--markdown-blockquote-border-width: var(--space-xs);
--markdown-inline-code-font-size: var(--font-size-sm);
--markdown-inline-code-padding-x: var(--space-xs);
--markdown-inline-code-padding-y: var(--space-2xs);
--markdown-code-block-margin-bottom: var(--space-lg);
--markdown-table-font-size: var(--font-size-sm);
--markdown-table-margin-bottom: var(--space-lg);
--markdown-table-header-font-size: var(--font-size-xs);
--markdown-table-header-font-weight: var(--font-weight-semibold);
--markdown-table-cell-padding-x: var(--space-md);
--markdown-table-cell-padding-y: var(--space-sm);
--markdown-table-border-color: var(--theme-surface-border-muted);
--markdown-table-header-bg: var(--theme-surface-muted);
--event-row-gap: var(--space-sm);
--event-row-padding-y: var(--space-2xs);
--event-row-border-color: var(--theme-surface-border);
--event-row-font-size: var(--font-size-xs);
--event-row-primary-weight: var(--font-weight-bold);
--event-row-primary-width: 11rem;
--event-row-secondary-fg: var(--theme-surface-fg-muted);
--event-row-secondary-font-size: var(--font-size-xs);
--event-row-meta-width: 5rem;
--event-row-meta-fg: var(--theme-surface-fg-muted);
--event-row-meta-font-family: var(--font-family-mono);
--event-row-meta-font-size: var(--font-size-xs);
--worker-card-padding: var(--space-xs) var(--space-sm);
--worker-card-gap: var(--space-sm);
--worker-card-bg: var(--theme-surface-bg);
--worker-card-border-color: var(--theme-surface-border);
--worker-card-border-width: var(--border-thin);
--worker-card-radius: var(--radius-md);
--worker-card-host-fg: var(--theme-surface-fg-muted);
--worker-card-host-font-size: var(--font-size-xs);
--worker-card-id-font-size: var(--font-size-xs);
--worker-card-id-font-family: var(--font-family-mono);
--worker-card-stats-fg: var(--theme-surface-fg-muted);
--worker-card-noc-bg: var(--theme-surface-muted);
--worker-card-compact-padding: var(--space-2xs) var(--space-xs);
}
[data-theme] {
--composite-gap: var(--space-md);
--composite-padding: var(--space-md);
--composite-radius: var(--radius-md);
--composite-bg: var(--theme-surface-bg);
--composite-border-color: var(--theme-surface-border);
--composite-border-width: var(--border-thin);
--composite-active-bg: var(--theme-action-accent-bg);
--composite-selected-bg: var(--theme-action-accent-bg);
--composite-drag-preview-bg: var(--theme-surface-bg);
--composite-dropzone-bg: var(--theme-action-accent-bg);
--composite-dropzone-border-width: var(--border-medium);
--composite-dropzone-border-style: dashed;
--composite-dropzone-border-color: var(--theme-action-primary-bg);
--composite-transition-duration: var(--motion-duration-normal);
--composite-transition-ease: var(--motion-ease-standard);
--resizable-bg: var(--theme-surface-bg);
--resizable-gap: var(--space-sm);
--resizable-border: var(--border-thin) solid var(--theme-surface-border);
--resizable-panel-bg: transparent;
--resizable-panel-padding: var(--space-md);
--resizable-panel-radius: var(--radius-md);
--resizable-panel-basis: 50%;
--resizable-handle-size: var(--space-xs);
--resizable-handle-cursor: col-resize;
--resizable-handle-bg: var(--theme-surface-border);
--resizable-handle-hover-bg: var(--theme-action-primary-bg);
--resizable-handle-disabled-bg: var(--theme-surface-muted);
--carousel-bg: transparent;
--carousel-padding: 0;
--carousel-content-gap: var(--space-sm);
--carousel-content-direction: row;
--carousel-content-scroll-snap: x mandatory;
--carousel-item-width: auto;
--carousel-item-bg: transparent;
--carousel-item-radius: var(--radius-md);
--carousel-item-shadow: none;
--carousel-button-bg: var(--theme-surface-bg);
--carousel-button-fg: var(--theme-surface-fg);
--carousel-button-radius: var(--radius-full);
--carousel-button-shadow: 0 4px 12px rgba(0,0,0,0.4);
--carousel-button-bg: var(--theme-overlay-bg);
--carousel-button-bg-hover: var(--theme-overlay-heavy-bg);
--carousel-button-shadow-hover: var(--shadow-xl);
--carousel-button-size: 3rem;
--carousel-indicator-size: var(--space-sm);
--carousel-indicator-gap: var(--space-xs);
--carousel-indicator-bg: var(--theme-surface-muted);
--carousel-indicator-active-bg: var(--theme-action-primary-bg);
--builder-block-bg: var(--theme-surface-bg);
--builder-block-border: var(--border-thin) solid var(--theme-surface-border);
--builder-block-radius: var(--radius-sm);
--builder-block-padding: var(--space-sm) var(--space-md);
--builder-block-gap: var(--space-xs);
--builder-block-hover-border: var(--border-thin) solid var(--theme-action-primary-bg);
--builder-block-drag-opacity: var(--opacity-disabled);
--builder-remove-size: var(--space-lg);
--builder-remove-bg: var(--color-destructive);
--builder-insert-line-color: var(--theme-action-primary-bg);
--builder-insert-line-height: var(--border-medium);
--builder-dropzone-active-border: var(--theme-action-primary-bg);
--builder-dropzone-hover-bg: var(--color-primary-alpha-12);
--builder-dropzone-drag-bg: var(--color-primary-alpha-06);
--builder-dropzone-drag-border: var(--color-primary-border-soft);
--builder-container-indent: var(--space-sm);
--progress-mini-height: var(--space-xs);
--progress-mini-radius: var(--radius-full);
--progress-mini-bg: var(--theme-surface-muted);
--progress-mini-fill-bg: var(--theme-action-primary-bg);
--progress-mini-transition: width var(--motion-duration-normal) var(--motion-ease-standard);
--pin-button-padding: var(--space-2xs);
--pin-button-gap: var(--space-2xs);
--pin-button-font-size: var(--font-size-xs);
--pin-button-radius: var(--radius-sm);
--pin-button-bg: transparent;
--pin-button-bg-hover: var(--theme-surface-muted);
--pin-button-fg: var(--theme-surface-fg-muted);
--pin-button-fg-pinned: var(--theme-action-primary-bg);
}
[data-theme] {
--layout-gap: var(--space-md);
--layout-padding: var(--space-md);
--layout-max-width: var(--layout-content-max-width);
--layout-min-height: 100vh;
--layout-header-height: var(--layout-height-header);
--layout-footer-height: var(--layout-height-header);
--layout-panel-width: var(--layout-width-md);
--layout-bg: var(--theme-surface-bg);
--layout-border-color: var(--theme-surface-border);
--layout-border-width: 1px;
--layout-scrollbar-size: var(--space-sm);
--layout-scrollbar-bg: var(--theme-surface-muted);
--layout-transition-duration: var(--motion-duration-normal);
--layout-transition-ease: var(--motion-ease-standard);
--layout-region-gap: var(--space-lg);
--layout-region-padding: var(--space-lg);
--layout-divider-color: color-mix(in srgb, var(--theme-surface-fg) 8%, transparent);
--layout-header-border-color: var(--layout-divider-color);
--layout-height-header: var(--size-header);
--layout-height-footer: var(--size-header);
--layout-sidebar-width: 240px;
--layout-sidebar-width-collapsed: 60px;
--layout-content-max-width: 1280px;
--layout-width-xs: 200px;
--layout-width-sm: 280px;
--layout-width-md: 380px;
--layout-width-lg: 560px;
--layout-width-xl: 720px;
--layout-width-dialog: 480px;
--layout-width-toc: 220px;
--layout-aside-width: 280px;
--header-bg: var(--theme-surface-bg);
--header-border: 1px solid var(--layout-header-border-color);
--header-height: var(--layout-height-header);
--header-padding: 0 var(--space-lg);
--header-start-gap: var(--space-md);
--header-end-gap: var(--space-md);
--footer-bg: var(--theme-surface-bg);
--footer-border: 1px solid var(--theme-surface-border);
--footer-padding: var(--space-lg);
--footer-start-gap: var(--space-md);
--footer-end-gap: var(--space-md);
--footer-gap: var(--space-lg);
--logo-icon-size-sm: 1.5rem;
--logo-icon-size-md: 2rem;
--logo-icon-size-lg: 2.5rem;
--logo-wordmark-font-size-sm: var(--font-size-sm);
--logo-wordmark-font-size-md: var(--primitive-font-size-5);
--logo-wordmark-font-size-lg: var(--primitive-font-size-6);
--logo-wordmark-font-weight: var(--font-weight-bold);
--logo-wordmark-color: var(--theme-action-primary-bg);
--logo-gap: var(--space-sm);
--logo-letter-spacing: -0.02em;
--font-family-sans: var(--primitive-font-sans);
--font-family-serif: var(--primitive-font-serif);
--font-family-mono: var(--primitive-font-mono);
--separator-color: var(--theme-surface-border);
--separator-color-muted: var(--theme-surface-muted);
--separator-thickness: 1px;
--separator-length-horizontal: 100%;
--separator-length-vertical: var(--space-lg);
--separator-margin-x: 0;
--separator-margin-y: var(--space-md);
--page-layout-gap: var(--space-lg);
--page-layout-sidebar-width: var(--layout-sidebar-width);
--page-layout-sidebar-bg: var(--theme-surface-bg);
--page-layout-sidebar-border: 1px solid var(--theme-surface-border);
--page-layout-sidebar-padding: var(--space-md);
--page-layout-aside-width: var(--layout-aside-width);
--page-layout-aside-bg: var(--theme-surface-bg);
--page-layout-aside-border: 1px solid var(--theme-surface-border);
--page-layout-aside-padding: var(--space-md);
--page-layout-content-padding: var(--space-lg);
--hero-padding-x: var(--space-2xl);
--hero-padding-y: var(--space-3xl);
--hero-gap: var(--space-xl);
--hero-media-gap: var(--space-2xl);
--hero-actions-gap: var(--space-md);
--hero-title-font-size: var(--font-size-4xl);
--hero-title-font-weight: var(--font-weight-bold);
--hero-title-line-height: var(--line-height-tight);
--hero-title-fg: var(--theme-surface-fg);
--hero-subtitle-font-size: var(--font-size-xl);
--hero-subtitle-font-weight: var(--font-weight-medium);
--hero-subtitle-line-height: var(--line-height-normal);
--hero-subtitle-fg: var(--theme-surface-fg);
--hero-description-font-size: var(--font-size-md);
--hero-description-line-height: var(--line-height-relaxed);
--hero-description-fg: var(--theme-surface-fg-muted);
--hero-max-width: 800px;
--hero-align: center;
--hero-min-height: 80vh;
--page-header-padding-bottom: var(--space-lg);
--page-header-margin-bottom: var(--space-xl);
--page-header-border: 1px solid var(--theme-surface-border);
--page-header-content-gap: var(--space-sm);
--page-header-title-line-height: var(--line-height-tight);
--page-header-subtitle-spacing: var(--space-sm);
--page-header-breadcrumb-spacing: var(--space-sm);
--sidebar-layout-gap: var(--space-lg);
--sidebar-layout-nav-width: var(--layout-sidebar-width);
--sidebar-layout-nav-bg: var(--theme-surface-bg);
--sidebar-layout-nav-border: 1px solid var(--theme-surface-border);
--sidebar-layout-nav-padding: var(--space-md);
--sidebar-layout-main-padding: var(--space-lg);
--section-block-padding: var(--space-xl) 0;
--section-block-gap: var(--space-lg);
--section-block-header-margin: 0 0 var(--space-lg) 0;
--section-block-footer-padding: var(--space-md) 0 0 0;
--section-block-footer-border: 1px solid var(--theme-surface-border);
--stat-group-gap: var(--space-md);
--stat-group-padding: var(--space-lg) 0;
--form-field-gap: var(--space-xs);
--form-field-label-gap: var(--space-xs);
--form-field-hint-fg: var(--theme-surface-fg-muted);
--form-field-hint-font-size: var(--font-size-sm);
--form-field-error-fg: var(--theme-feedback-error);
--form-field-error-font-size: var(--font-size-sm);
--data-table-gap: var(--space-md);
--data-table-toolbar-padding: var(--space-sm) 0;
--data-table-toolbar-gap: var(--space-sm);
--data-table-pagination-padding: var(--space-sm) 0;
--data-table-empty-padding: var(--space-2xl) 0;
--builder-region-border: var(--theme-action-primary-bg);
--builder-region-border-hover: color-mix(in srgb, var(--theme-action-primary-bg) 60%, transparent);
--builder-region-bg-hover: color-mix(in srgb, var(--theme-action-primary-bg) 5%, transparent);
--builder-region-bg-active: color-mix(in srgb, var(--theme-action-primary-bg) 20%, transparent);
--builder-region-bg-pulse: color-mix(in srgb, var(--theme-action-primary-bg) 18%, transparent);
--builder-region-label-color: color-mix(in srgb, var(--theme-action-primary-bg) 70%, transparent);
--builder-region-label-bg: color-mix(in srgb, var(--theme-action-primary-bg) 12%, transparent);
--builder-region-meta-color: color-mix(in srgb, var(--theme-action-primary-bg) 50%, transparent);
--builder-insert-line-color: var(--theme-action-primary-bg);
--builder-placeholder-color: color-mix(in srgb, var(--theme-action-primary-bg) 50%, transparent);
--builder-transition-duration: var(--motion-duration-fast);
--builder-transition-ease: var(--motion-ease-standard);
--builder-pulse-duration: var(--motion-duration-slow);
--flex-wrap: nowrap;
--stack-default-direction: column;
--stack-default-gap: var(--space-sm);
--grid-min-col-width: 200px;
--grid-default-gap: var(--space-sm);
--container-padding-x: var(--space-lg);
--container-size-sm: var(--layout-width-sm);
--container-size-md: var(--layout-width-md);
--container-size-lg: var(--layout-content-max-width);
--container-size-xl: var(--layout-width-xl);
--container-size-content: 640px;
--container-size-xl: var(--layout-width-xl);
--center-min-height: 100%;
--spacer-flex: 1;
--section-title-fg: var(--theme-surface-fg);
--section-title-font-size: var(--font-size-2xl);
--section-title-font-weight: var(--font-weight-bold);
--section-description-fg: var(--theme-surface-fg-muted);
--section-description-font-size: var(--font-size-md);
--section-description-margin: 0;
--section-header-max-width: var(--layout-width-lg);
--section-badge-fg: var(--theme-action-accent-fg);
--aspect-ratio-default: 16 / 9;
--aspect-ratio-square: 1 / 1;
--aspect-ratio-portrait: 3 / 4;
--aspect-ratio-video: 16 / 9;
--aspect-ratio-wide: 21 / 9;
}
[data-theme] {
--animate-duration: var(--motion-duration-normal);
--animate-ease: var(--motion-ease-standard);
--animate-delay: 0ms;
--animate-fade-from: 0;
--animate-fade-to: 1;
--animate-slide-distance: var(--space-sm);
--animate-scale-from: 0.95;
--animate-scale-to: 1;
}
[data-theme] {
--card-block-gap: var(--space-md);
--card-block-padding: var(--space-lg);
--card-block-bg: var(--theme-surface-bg);
--card-block-radius: var(--radius-md);
--card-block-shadow: var(--shadow-sm);
--card-block-border-color: var(--theme-surface-border);
--card-block-border-width: 1px;
--hero-block-padding-x: var(--space-2xl);
--hero-block-padding-y: var(--space-3xl);
--hero-block-gap: var(--space-xl);
--hero-block-media-gap: var(--space-2xl);
--hero-block-actions-gap: var(--space-md);
--hero-block-max-width: 800px;
--hero-block-align: center;
--hero-block-min-height: 80vh;
--section-block-gap: var(--space-lg);
--section-block-padding: var(--space-xl) 0;
--section-block-header-margin: 0 0 var(--space-lg) 0;
--section-block-footer-padding: var(--space-md) 0 0 0;
--section-block-footer-border: 1px solid var(--theme-surface-border);
--stat-group-block-gap: var(--space-md);
--stat-group-block-padding: var(--space-lg) 0;
--page-header-block-gap: var(--space-sm);
--page-header-block-padding: var(--space-md) var(--space-lg);
--page-header-block-breadcrumb-gap: var(--space-xs);
--page-header-block-actions-gap: var(--space-sm);
--page-header-block-border-color: var(--theme-surface-border);
--page-header-block-border-width: 1px;
--form-field-block-gap: var(--space-xs);
--form-field-block-label-gap: var(--space-xs);
--form-field-block-hint-fg: var(--theme-surface-fg-muted);
--form-field-block-hint-font-size: var(--font-size-sm);
--form-field-block-error-fg: var(--color-destructive);
--form-field-block-error-font-size: var(--font-size-sm);
--data-table-block-gap: var(--space-md);
--data-table-block-toolbar-padding: var(--space-sm) 0;
--data-table-block-toolbar-gap: var(--space-sm);
--data-table-block-pagination-padding: var(--space-sm) 0;
--data-table-block-empty-padding: var(--space-2xl) 0;
--sidebar-layout-gap: var(--space-lg);
--sidebar-layout-nav-width: var(--layout-sidebar-width);
--sidebar-layout-nav-bg: var(--theme-surface-bg);
--sidebar-layout-nav-border: var(--border-thin) solid var(--theme-surface-border);
--sidebar-layout-nav-padding: var(--space-md);
--sidebar-layout-main-padding: var(--space-lg);
}
[data-theme] {
--layer-base: 0;
--layer-header: 100;
--layer-sticky: 200;
--layer-dropdown: 1000;
--layer-popover: 1100;
--layer-overlay: 2000;
--layer-modal: 2100;
--layer-tooltip: 3000;
--layer-toast: 4000;
}
[data-theme] {
--opacity-disabled: 0.4;
--opacity-hover: 0.92;
--opacity-active: 0.85;
--opacity-overlay: 0.6;
}
[data-theme] {
--focus-ring-width: 2px;
--focus-ring-offset: 2px;
}
[data-theme] {
--transform-active-press: translateY(1px);
--transform-scale-sm: scale(0.98);
--transform-scale-md: scale(1.02);
}
[data-theme] {
--blur-sm: 4px;
--blur-md: 8px;
--blur-lg: 16px;
}
[data-theme] {
--root-bg: var(--color-background);
--root-fg: var(--color-foreground);
--root-border: var(--color-border);
}
:root[data-size="sm"] {
--kbd-padding-x: 0.25rem;
--kbd-padding-y: 0.0625rem;
--kbd-font-size: 0.6875rem;
--kbd-radius: 0.25rem;
--input-otp-slot-size: 2rem;
--input-otp-font-size: 0.875rem;
--resizable-handle-size: 3px;
--resizable-panel-padding: 0.5rem;
--carousel-content-gap: 0.5rem;
}
--progress-height: 0.375rem;
--toast-padding: 0.75rem;
--toggle-padding: 0.375rem;
:root[data-size="md"] {
--kbd-padding-x: 0.375rem;
--kbd-padding-y: 0.125rem;
--kbd-font-size: 0.75rem;
--kbd-radius: 0.375rem;
--input-otp-slot-size: 2.5rem;
--input-otp-font-size: 1rem;
--resizable-handle-size: 4px;
--resizable-panel-padding: 0.75rem;
--carousel-content-gap: 0.75rem;
}
:root[data-density="spacious"] {
--button-group-gap: 0.5rem;
--toggle-group-gap: 0.5rem;
--carousel-content-gap: 1rem;
--carousel-padding: 0.5rem;
--scroll-area-padding: 1rem;
--resizable-panel-padding: 1rem;
}
:root[data-density="comfortable"] {
--button-group-gap: 0.25rem;
--toggle-group-gap: 0.25rem;
--carousel-content-gap: 0.75rem;
--carousel-padding: 0;
--scroll-area-padding: 0.75rem;
--resizable-panel-padding: 0.75rem;
}
:root[data-size="lg"] {
--kbd-padding-x: 0.5rem;
--kbd-padding-y: 0.1875rem;
--kbd-font-size: 0.875rem;
--kbd-radius: 0.5rem;
--input-otp-slot-size: 3rem;
--input-otp-font-size: 1.125rem;
--resizable-handle-size: 6px;
--resizable-panel-padding: 1rem;
--carousel-content-gap: 1rem;
}
--progress-height: 0.75rem;
--toast-padding: 1.25rem;
--toggle-padding: 0.75rem;
:root[data-density="compact"] {
--button-group-gap: 0.125rem;
--toggle-group-gap: 0.125rem;
--carousel-content-gap: 0.5rem;
--carousel-padding: 0;
--scroll-area-padding: 0.5rem;
--resizable-panel-padding: 0.5rem;
}
[data-rs-accordion] {
display: flex;
flex-direction: column;
gap: var(--accordion-gap);
}
[data-rs-accordion-item] {
border: var(--accordion-item-border-width) solid var(--accordion-item-border-color);
border-radius: var(--accordion-item-border-radius);
overflow: hidden;
transition: border-color var(--accordion-trigger-transition-duration) var(--accordion-trigger-transition-ease);
}
[data-rs-accordion-item][data-rs-state~="open"] {
border-color: var(--accordion-item-border-color-active);
}
[data-rs-accordion-trigger] {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding-inline: var(--accordion-trigger-padding-x);
padding-block: var(--accordion-trigger-padding-y);
background: var(--accordion-trigger-bg);
color: var(--accordion-trigger-fg);
font-weight: var(--accordion-trigger-font-weight);
cursor: pointer;
transition:
background var(--accordion-trigger-transition-duration) var(--accordion-trigger-transition-ease),
color var(--accordion-trigger-transition-duration) var(--accordion-trigger-transition-ease);
}
[data-rs-accordion-trigger]:hover:not([data-rs-state~="disabled"]) {
background: var(--accordion-trigger-hover-bg);
}
[data-rs-accordion-item][data-rs-state~="open"] [data-rs-accordion-trigger] {
color: var(--accordion-trigger-open-fg);
background: var(--accordion-trigger-open-bg);
}
[data-rs-accordion-trigger]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: calc(-1 * var(--focus-ring-width));
z-index: 1;
}
[data-rs-accordion-icon] {
width: var(--accordion-icon-size);
height: var(--accordion-icon-size);
flex-shrink: 0;
transition: transform var(--accordion-trigger-transition-duration) var(--accordion-trigger-transition-ease);
}
[data-rs-accordion-item][data-rs-state~="open"] [data-rs-accordion-icon] {
transform: rotate(var(--accordion-icon-rotation));
}
[data-rs-accordion-item][data-rs-state~="open"] [data-rs-accordion-content] {
display: block;
padding-inline: var(--accordion-content-padding-x);
padding-block: var(--accordion-content-padding-y);
padding-top: var(--accordion-content-padding-top);
}
[data-rs-accordion-item][data-rs-state~="closed"] [data-rs-accordion-content] {
display: none;
}
[data-rs-accordion-item][data-rs-state~="disabled"] [data-rs-accordion-trigger] {
opacity: var(--accordion-trigger-opacity-disabled);
color: var(--accordion-trigger-fg-disabled);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-alert] {
position: relative;
display: flex;
flex-direction: column;
gap: var(--alert-gap);
padding-inline: var(--alert-padding-x);
padding-block: var(--alert-padding-y);
border-radius: var(--alert-radius);
border: var(--alert-border-width) solid var(--alert-border-color);
background: var(--alert-bg);
color: var(--alert-fg);
}
[data-rs-alert][data-rs-variant="success"] { background: var(--alert-bg-success); }
[data-rs-alert][data-rs-variant="warning"] { background: var(--alert-bg-warning); }
[data-rs-alert][data-rs-variant="destructive"] { background: var(--alert-bg-error); }
[data-rs-alert-title] {
font-size: var(--alert-title-font-size);
font-weight: var(--alert-title-font-weight);
color: var(--alert-title-fg);
}
[data-rs-alert-description] {
font-size: var(--alert-description-font-size);
line-height: var(--alert-description-line-height);
color: var(--alert-description-fg);
}
[data-rs-alert-close] {
position: absolute;
top: var(--alert-padding-y);
right: var(--alert-padding-x);
display: flex;
align-items: center;
justify-content: center;
width: var(--alert-close-size);
height: var(--alert-close-size);
color: var(--alert-close-fg);
cursor: pointer;
background: none;
border: none;
padding: 0;
}
[data-rs-alert-close][data-rs-state~="hover"] {
color: var(--alert-close-fg-hover);
}
[data-rs-alert-close][data-rs-state~="disabled"] {
opacity: var(--alert-close-opacity-disabled);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-alert][data-rs-state~="error"] { background: var(--alert-bg-error); border-color: var(--alert-border-color-error); }
[data-rs-alert][data-rs-state~="warning"] { background: var(--alert-bg-warning); border-color: var(--alert-border-color-warning); }
[data-rs-alert][data-rs-state~="success"] { background: var(--alert-bg-success); border-color: var(--alert-border-color-success); }
[data-rs-alert][data-rs-state~="closed"] { display: none; }
[data-rs-alert-dialog-overlay] {
position: fixed;
inset: 0;
z-index: var(--alert-dialog-z-index, var(--layer-overlay));
background: var(--alert-dialog-overlay-bg);
opacity: 0;
visibility: hidden;
transition:
opacity var(--alert-dialog-transition-duration) var(--alert-dialog-transition-ease),
visibility var(--alert-dialog-transition-duration) var(--alert-dialog-transition-ease);
}
[data-rs-dialog][data-rs-state~="open"] [data-rs-alert-dialog-overlay] {
opacity: 1;
visibility: visible;
}
[data-rs-alert-dialog-content],
[data-rs-dialog-content][data-rs-component="AlertDialogContent"] {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(0.95);
z-index: calc(var(--alert-dialog-z-index, var(--layer-overlay)) + 1);
width: var(--alert-dialog-content-width);
background: var(--alert-dialog-content-bg);
border-radius: var(--alert-dialog-content-radius);
padding: var(--alert-dialog-content-padding);
box-shadow: var(--alert-dialog-content-shadow);
opacity: 0;
visibility: hidden;
transition:
opacity var(--alert-dialog-transition-duration) var(--alert-dialog-transition-ease),
transform var(--alert-dialog-transition-duration) var(--alert-dialog-transition-ease),
visibility var(--alert-dialog-transition-duration) var(--alert-dialog-transition-ease);
}
[data-rs-dialog][data-rs-state~="open"] [data-rs-dialog-content][data-rs-component="AlertDialogContent"] {
opacity: 1;
visibility: visible;
transform: translate(-50%, -50%) scale(1);
}
[data-rs-alert-dialog-title] {
font-size: var(--alert-dialog-title-font-size);
font-weight: var(--alert-dialog-title-font-weight);
color: var(--alert-dialog-title-fg);
margin-bottom: var(--alert-dialog-header-gap);
}
[data-rs-alert-dialog-description] {
font-size: var(--alert-dialog-description-font-size);
line-height: var(--alert-dialog-description-line-height);
color: var(--alert-dialog-description-fg);
margin-bottom: var(--alert-dialog-footer-gap);
}
[data-rs-alert-dialog-actions] {
display: flex;
gap: var(--alert-dialog-action-gap);
justify-content: flex-end;
}
@keyframes rs-fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes rs-fade-out {
from { opacity: 1; }
to { opacity: 0; }
}
@keyframes rs-slide-in {
from { opacity: 0; transform: translateY(var(--animate-slide-distance)); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes rs-slide-out {
from { opacity: 1; transform: translateY(0); }
to { opacity: 0; transform: translateY(var(--animate-slide-distance)); }
}
@keyframes rs-scale-in {
from { opacity: 0; transform: scale(var(--animate-scale-from)); }
to { opacity: 1; transform: scale(1); }
}
@keyframes rs-scale-out {
from { opacity: 1; transform: scale(1); }
to { opacity: 0; transform: scale(var(--animate-scale-from)); }
}
[data-rs-animate] {
animation-name: none;
animation-duration: var(--animate-duration);
animation-timing-function: var(--animate-ease);
animation-delay: var(--animate-delay);
animation-fill-mode: both;
animation-iteration-count: 1;
}
[data-rs-animate][data-rs-state~="active"][data-rs-animation="fade-in"] { animation-name: rs-fade-in; }
[data-rs-animate][data-rs-state~="active"][data-rs-animation="fade-out"] { animation-name: rs-fade-out; }
[data-rs-animate][data-rs-state~="active"][data-rs-animation="slide-in"] { animation-name: rs-slide-in; }
[data-rs-animate][data-rs-state~="active"][data-rs-animation="slide-out"] { animation-name: rs-slide-out; }
[data-rs-animate][data-rs-state~="active"][data-rs-animation="scale-in"] { animation-name: rs-scale-in; }
[data-rs-animate][data-rs-state~="active"][data-rs-animation="scale-out"] { animation-name: rs-scale-out; }
[data-rs-animate][data-rs-easing="ease-in"] { animation-timing-function: ease-in; }
[data-rs-animate][data-rs-easing="ease-out"] { animation-timing-function: ease-out; }
[data-rs-animate][data-rs-easing="ease-in-out"] { animation-timing-function: ease-in-out; }
[data-rs-animate][data-rs-easing="linear"] { animation-timing-function: linear; }
[data-rs-showcase-preview-hero] [data-rs-animate][data-rs-state~="active"] {
animation-iteration-count: infinite;
animation-direction: alternate;
animation-duration: var(--motion-duration-slow);
}
[data-rs-animate][data-rs-state~="inactive"] {
animation-name: none;
}
[data-rs-animate][data-rs-animate-reduced] {
animation: none;
opacity: 1;
}
[data-rs-aspect-ratio] {
position: relative;
width: 100%;
aspect-ratio: var(--aspect-ratio-default);
}
[data-rs-aspect-ratio][data-rs-ratio="square"] { aspect-ratio: var(--aspect-ratio-square); }
[data-rs-aspect-ratio][data-rs-ratio="portrait"] { aspect-ratio: var(--aspect-ratio-portrait); }
[data-rs-aspect-ratio][data-rs-ratio="video"] { aspect-ratio: var(--aspect-ratio-video); }
[data-rs-aspect-ratio][data-rs-ratio="wide"] { aspect-ratio: var(--aspect-ratio-wide); }
[data-rs-aspect-ratio-content] {
width: 100%;
height: 100%;
overflow: hidden;
}
[data-rs-avatar-group] {
position: relative;
display: inline-block;
}
[data-rs-avatar] {
position: relative;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
isolation: isolate;
background: var(--avatar-bg);
border: var(--avatar-border-width) solid var(--avatar-border-color);
color: var(--avatar-fg);
border-radius: var(--avatar-radius);
}
[data-rs-avatar-group] [data-rs-avatar] {
width: var(--avatar-size-md);
height: var(--avatar-size-md);
}
[data-rs-avatar-group][data-rs-size="xs"] [data-rs-avatar] { width: var(--avatar-size-xs); height: var(--avatar-size-xs); }
[data-rs-avatar-group][data-rs-size="sm"] [data-rs-avatar] { width: var(--avatar-size-sm); height: var(--avatar-size-sm); }
[data-rs-avatar-group][data-rs-size="md"] [data-rs-avatar] { width: var(--avatar-size-md); height: var(--avatar-size-md); }
[data-rs-avatar-group][data-rs-size="lg"] [data-rs-avatar] { width: var(--avatar-size-lg); height: var(--avatar-size-lg); }
[data-rs-avatar-group][data-rs-size="xl"] [data-rs-avatar] { width: var(--avatar-size-xl); height: var(--avatar-size-xl); }
[data-rs-avatar][data-rs-shape="circle"] { border-radius: var(--avatar-radius); clip-path: circle(50%); }
[data-rs-avatar][data-rs-shape="square"] { border-radius: var(--avatar-radius-square); }
[data-rs-avatar][data-rs-shape="rounded"] { border-radius: var(--avatar-radius-rounded); }
[data-rs-avatar-image] {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: var(--avatar-image-fit);
display: block;
border-radius: inherit;
}
[data-rs-avatar-image][src$=".svg"] {
object-fit: cover;
width: 100%;
height: 100%;
max-width: 100%;
max-height: 100%;
display: block;
}
[data-rs-avatar-fallback] {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background: var(--avatar-fallback-bg);
color: var(--avatar-fallback-fg);
font-size: var(--avatar-fallback-font-size);
font-weight: var(--avatar-fallback-font-weight);
text-transform: uppercase;
}
[data-rs-avatar-group] [data-rs-status-dot] {
position: absolute;
bottom: 0;
right: 0;
box-sizing: border-box;
transform: translate(var(--avatar-status-translate-x), var(--avatar-status-translate-y));
z-index: var(--layer-overlay);
}
[data-rs-avatar-badge] {
position: absolute;
top: var(--avatar-badge-offset);
right: var(--avatar-badge-offset);
display: flex;
align-items: center;
justify-content: center;
min-width: var(--avatar-badge-size);
height: var(--avatar-badge-size);
padding: 0 var(--space-xs);
background: var(--avatar-badge-bg);
color: var(--avatar-badge-fg);
font-size: var(--avatar-badge-font-size);
font-weight: var(--avatar-badge-font-weight);
border-radius: var(--avatar-radius);
line-height: 1;
}
[data-rs-avatar-group][data-rs-state~="loading"] { opacity: var(--opacity-disabled); }
[data-rs-avatar-group][data-rs-state~="error"] [data-rs-avatar-image] { display: none; }
[data-rs-avatar][data-rs-state~="image-closed"] [data-rs-avatar-image] { display: none; }
[data-rs-avatar][data-rs-state~="fallback-closed"] [data-rs-avatar-fallback] { display: none; }
@keyframes avatar-pulse {
0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--avatar-status-pulse-color) 70%, transparent); }
50% { box-shadow: 0 0 0 var(--avatar-pulse-ring-size) color-mix(in srgb, var(--avatar-status-pulse-color) 0%, transparent); }
}
[data-rs-avatar-group] [data-rs-status-dot][data-rs-state~="pulse"] {
animation: avatar-pulse 2s var(--motion-ease-standard) infinite;
}
[data-rs-badge] {
display: inline-flex;
align-items: center;
padding-inline: var(--badge-padding-x);
padding-block: var(--badge-padding-y);
border-radius: var(--badge-radius);
font-size: var(--badge-font-size);
font-weight: var(--badge-font-weight);
line-height: var(--badge-line-height);
transition: background var(--badge-transition-duration) var(--badge-transition-ease);
}
[data-rs-badge][data-rs-variant="default"] {
background: var(--badge-bg-default);
color: var(--badge-fg-default);
}
[data-rs-badge][data-rs-variant="primary"] {
background: var(--badge-bg-primary);
color: var(--badge-fg-primary);
}
[data-rs-badge][data-rs-variant="success"] {
background: var(--badge-bg-success);
color: var(--badge-fg-success);
}
[data-rs-badge][data-rs-variant="warning"] {
background: var(--badge-bg-warning);
color: var(--badge-fg-warning);
}
[data-rs-badge][data-rs-variant="destructive"] {
background: var(--badge-bg-destructive);
color: var(--badge-fg-destructive);
}
[data-rs-badge][data-rs-variant="outline"] {
background: var(--badge-bg-outline);
color: var(--badge-fg-outline);
border: var(--border-thin) solid var(--badge-border-outline);
}
[data-rs-badge][data-rs-interactive] {
cursor: pointer;
}
[data-rs-badge][data-rs-interactive][data-rs-state~="hover"] {
opacity: var(--badge-hover-opacity);
}
[data-rs-banner] {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--banner-gap);
padding-inline: var(--banner-padding-x);
padding-block: var(--banner-padding-y);
border-radius: var(--banner-radius);
border-bottom: var(--banner-border-width) solid var(--banner-border-color);
box-shadow: var(--banner-shadow);
color: var(--banner-fg);
}
[data-rs-banner][data-rs-state~="info"] { background: var(--banner-bg-info); border-color: var(--banner-border-color-info); }
[data-rs-banner][data-rs-state~="success"] { background: var(--banner-bg-success); border-color: var(--banner-border-color-success); }
[data-rs-banner][data-rs-state~="warning"] { background: var(--banner-bg-warning); border-color: var(--banner-border-color-warning); }
[data-rs-banner][data-rs-state~="error"] { background: var(--banner-bg-error); border-color: var(--banner-border-color-error); }
[data-rs-banner-content] {
flex: 1;
min-width: 0;
font-size: var(--banner-content-font-size);
color: var(--banner-content-fg);
}
[data-rs-banner-actions] {
display: flex;
align-items: center;
gap: var(--banner-actions-gap);
flex-shrink: 0;
}
[data-rs-banner-close] {
display: flex;
align-items: center;
justify-content: center;
width: var(--banner-close-size);
height: var(--banner-close-size);
color: var(--banner-close-fg);
cursor: pointer;
flex-shrink: 0;
background: none;
border: none;
padding: 0;
border-radius: var(--radius-sm);
}
[data-rs-banner-close]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-banner][data-rs-state~="closed"] { display: none; }
[data-rs-banner][data-rs-state~="open"] { display: flex; }
[data-rs-breadcrumb] {
display: flex;
align-items: center;
gap: var(--breadcrumb-gap);
font-size: var(--breadcrumb-font-size);
}
[data-rs-breadcrumb-item] {
display: inline-flex;
align-items: center;
gap: var(--breadcrumb-gap);
}
[data-rs-breadcrumb-link] {
color: var(--breadcrumb-fg);
font-weight: var(--breadcrumb-font-weight);
text-decoration: none;
padding-inline: var(--space-2xs);
border-radius: var(--radius-xs);
transition: color var(--breadcrumb-transition-duration) var(--breadcrumb-transition-ease);
}
[data-rs-breadcrumb-link]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-breadcrumb-link]:hover:not([data-rs-state~="active"]) {
color: var(--breadcrumb-fg-hover);
}
[data-rs-breadcrumb-link][data-rs-state~="active"] {
color: var(--breadcrumb-page-fg);
font-weight: var(--breadcrumb-font-weight-active);
}
[data-rs-breadcrumb-page] {
color: var(--breadcrumb-page-fg);
font-weight: var(--breadcrumb-font-weight-active);
padding-inline: var(--space-2xs);
}
[data-rs-breadcrumb-separator] {
color: var(--breadcrumb-separator-fg);
}
[data-rs-breadcrumb-ellipsis-trigger] {
color: var(--breadcrumb-fg);
font-weight: var(--breadcrumb-font-weight);
cursor: pointer;
list-style: none;
transition: color var(--breadcrumb-transition-duration) var(--breadcrumb-transition-ease);
}
[data-rs-breadcrumb-ellipsis-trigger]:hover:not([data-rs-state~="active"]) {
color: var(--breadcrumb-fg-hover);
}
[data-rs-breadcrumb-ellipsis-trigger]::marker {
content: none;
}
[data-rs-breadcrumb-collapse] {
display: inline-flex;
position: relative;
}
[data-rs-breadcrumb-collapse-content] {
position: absolute;
top: 100%;
left: 0;
display: none;
min-width: var(--breadcrumb-collapse-min-width);
max-width: var(--breadcrumb-collapse-max-width);
margin-top: var(--breadcrumb-gap);
padding: var(--breadcrumb-gap);
background: var(--theme-surface-bg);
border: var(--breadcrumb-collapse-border-width) solid var(--theme-surface-border);
border-radius: var(--radius-md);
box-shadow: var(--shadow-md);
}
[data-rs-breadcrumb-collapse][data-rs-state~="open"] [data-rs-breadcrumb-collapse-content] {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--breadcrumb-gap);
}
[data-rs-button] {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--button-gap);
height: var(--button-height);
padding: var(--button-padding-y) var(--button-padding-x);
font-family: var(--font-family-sans);
font-weight: var(--font-weight-medium);
font-size: var(--font-size-md);
line-height: var(--line-height-normal);
border-radius: var(--button-radius);
border: var(--border-thin) solid transparent;
cursor: pointer;
user-select: none;
text-decoration: none;
white-space: nowrap;
transition:
background-color var(--motion-duration-fast) var(--motion-ease-standard),
color var(--motion-duration-fast) var(--motion-ease-standard),
border-color var(--motion-duration-fast) var(--motion-ease-standard),
box-shadow var(--motion-duration-fast) var(--motion-ease-standard),
opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-button][data-rs-size="xs"] {
height: var(--button-xs-height);
padding: var(--button-xs-padding-y) var(--button-xs-padding-x);
font-size: var(--button-xs-font-size);
}
[data-rs-button][data-rs-size="sm"] {
height: var(--button-sm-height);
padding: var(--button-sm-padding-y) var(--button-sm-padding-x);
font-size: var(--button-sm-font-size);
}
[data-rs-button][data-rs-size="lg"] {
height: var(--button-lg-height);
padding: var(--button-lg-padding-y) var(--button-lg-padding-x);
font-size: var(--button-lg-font-size);
}
[data-rs-button][data-rs-size="xl"] {
height: var(--button-xl-height);
padding: var(--button-xl-padding-y) var(--button-xl-padding-x);
font-size: var(--button-xl-font-size);
}
[data-rs-button][data-rs-size="icon"] {
width: var(--button-height);
padding: 0;
}
[data-rs-button][data-rs-variant="primary"],
[data-rs-button][data-rs-variant="solid"] {
background: var(--button-primary-bg);
color: var(--button-primary-fg);
border-color: var(--button-primary-bg);
}
[data-rs-button][data-rs-variant="secondary"] {
background: var(--button-secondary-bg);
color: var(--button-secondary-fg);
border-color: var(--button-secondary-border);
}
[data-rs-button][data-rs-variant="outline"] {
background: var(--button-outline-bg);
color: var(--button-outline-fg);
border-color: var(--button-outline-border);
}
[data-rs-button][data-rs-variant="ghost"] {
background: var(--button-ghost-bg);
color: var(--button-ghost-fg);
border-color: transparent;
}
[data-rs-button][data-rs-variant="link"] {
background: var(--button-link-bg);
color: var(--button-link-fg);
border-color: transparent;
text-decoration: underline;
text-decoration-thickness: var(--button-link-underline-thickness);
text-underline-offset: var(--button-link-underline-offset);
font-weight: var(--font-weight-semibold);
height: auto;
padding: 0;
}
[data-rs-button][data-rs-variant="destructive"] {
background: var(--button-danger-bg);
color: var(--button-danger-fg);
border-color: var(--button-danger-bg);
}
[data-rs-button][data-rs-variant="success"] {
background: var(--button-success-bg);
color: var(--button-success-fg);
border-color: var(--button-success-bg);
}
[data-rs-button][data-rs-variant="warning"] {
background: var(--button-warning-bg);
color: var(--button-warning-fg);
border-color: var(--button-warning-bg);
}
[data-rs-button][data-rs-variant="info"] {
background: var(--button-info-bg);
color: var(--button-info-fg);
border-color: var(--button-info-bg);
}
[data-rs-button][data-rs-variant="default"] {
background: var(--button-default-bg);
color: var(--button-default-fg);
border-color: var(--button-default-border);
}
[data-rs-button][data-rs-variant="subtle"] {
background: var(--button-subtle-bg);
color: var(--button-subtle-fg);
border-color: transparent;
}
[data-rs-button][data-rs-variant="muted"] {
background: var(--button-muted-bg);
color: var(--button-muted-fg);
border-color: transparent;
}
[data-rs-button][data-rs-state~="hover"]:not([data-rs-state~="disabled"]):not([data-rs-variant="ghost"]):not([data-rs-variant="link"]) {
opacity: var(--opacity-hover);
}
[data-rs-button][data-rs-variant="ghost"][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
background: var(--button-ghost-bg-hover);
opacity: 1;
}
[data-rs-button][data-rs-variant="link"][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
opacity: 1;
text-decoration-thickness: var(--button-link-underline-thickness-hover);
filter: brightness(0.92);
}
[data-rs-button][data-rs-state~="active"]:not([data-rs-state~="disabled"]) {
opacity: var(--opacity-active);
transform: var(--button-active-transform);
transition:
transform var(--motion-duration-fast) var(--motion-ease-standard),
opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-button][data-rs-state~="disabled"] {
opacity: var(--opacity-disabled);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-button][data-rs-state~="focus"]:focus-visible,
[data-rs-button]:focus-visible {
outline: none;
box-shadow: var(--button-focus-ring-shadow);
}
[data-rs-button][data-rs-state~="focus"]:not(:focus-visible):not([data-rs-validation]) {
box-shadow: none;
}
[data-rs-button][data-rs-validation="error"] {
box-shadow: var(--validation-error-shadow);
}
[data-rs-button][data-rs-validation="warning"] {
box-shadow: var(--validation-warning-shadow);
}
[data-rs-button][data-rs-validation="success"] {
box-shadow: var(--validation-success-shadow);
}
[data-rs-button-group] {
display: inline-flex;
flex-direction: var(--button-group-direction);
align-items: var(--button-group-align);
gap: var(--button-group-gap);
border-radius: var(--button-radius);
}
[data-rs-button-group][data-rs-state~="attached"] {
gap: 0;
}
[data-rs-button-group][data-rs-state~="attached"] [data-rs-button] {
border-radius: var(--button-group-radius-merge);
margin-left: var(--button-group-border-overlap);
}
[data-rs-button-group][data-rs-state~="attached"] [data-rs-button][data-rs-state~="first"] {
border-start-start-radius: var(--button-radius);
border-end-start-radius: var(--button-radius);
margin-left: 0;
}
[data-rs-button-group][data-rs-state~="attached"] [data-rs-button][data-rs-state~="last"] {
border-start-end-radius: var(--button-radius);
border-end-end-radius: var(--button-radius);
}
[data-rs-button-group][data-rs-state~="attached"] [data-rs-button] {
position: relative;
z-index: 0;
}
[data-rs-button-group][data-rs-state~="attached"] [data-rs-button][data-rs-state~="hover"],
[data-rs-button-group][data-rs-state~="attached"] [data-rs-button][data-rs-state~="focus"] {
z-index: 1;
}
[data-rs-button-group][data-rs-state~="attached"] [data-rs-button][data-rs-state~="hover"]:not([data-rs-state~="disabled"]):not([data-rs-variant="ghost"]):not([data-rs-variant="link"]) {
opacity: var(--opacity-hover);
}
[data-rs-button-group][data-rs-state~="attached"] [data-rs-button][data-rs-state~="focus"] {
outline: none;
box-shadow: var(--focus-ring-shadow);
}
[data-rs-calendar] {
background: var(--calendar-bg);
padding: var(--calendar-padding);
border-radius: var(--calendar-radius);
border: var(--calendar-border-width) solid var(--calendar-border-color);
box-shadow: var(--calendar-shadow);
}
[data-rs-calendar-header] {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--calendar-header-gap);
}
[data-rs-calendar-month-year] {
color: var(--calendar-header-fg);
font-size: var(--calendar-header-font-size);
font-weight: var(--calendar-header-font-weight);
flex: 1;
text-align: center;
}
[data-rs-calendar-nav-button] {
width: var(--calendar-nav-size);
height: var(--calendar-nav-size);
display: flex;
align-items: center;
justify-content: center;
border: none;
border-radius: var(--calendar-nav-radius);
background: var(--calendar-nav-bg);
color: var(--calendar-nav-fg);
cursor: pointer;
transition: all var(--calendar-transition-duration) var(--calendar-transition-ease);
}
[data-rs-calendar-nav-button][data-rs-state~="hover"] {
background: var(--calendar-cell-bg-selected);
color: var(--calendar-cell-fg-selected);
transform: scale(var(--calendar-hover-scale));
}
[data-rs-calendar-grid] {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: var(--calendar-grid-gap);
}
[data-rs-calendar-weekday] {
height: var(--calendar-cell-size);
display: flex;
align-items: center;
justify-content: center;
color: var(--calendar-header-fg);
font-size: var(--calendar-cell-font-size);
font-weight: var(--calendar-header-font-weight);
}
[data-rs-calendar-day] {
width: var(--calendar-cell-size);
height: var(--calendar-cell-size);
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--calendar-cell-radius);
background: transparent;
color: var(--calendar-cell-fg);
font-size: var(--calendar-cell-font-size);
cursor: pointer;
border: var(--border-thin) solid transparent;
transition: all var(--calendar-transition-duration) var(--calendar-transition-ease);
}
[data-rs-calendar-day][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
background: var(--calendar-cell-bg-hover);
transform: scale(var(--calendar-hover-scale));
}
[data-rs-calendar-day][data-rs-state~="disabled"] {
color: var(--calendar-cell-fg-disabled);
background: var(--calendar-cell-bg-disabled);
cursor: not-allowed;
opacity: var(--forms-disabled-opacity);
}
[data-rs-calendar-day][data-rs-state~="selected"] {
background: var(--calendar-cell-bg-selected);
color: var(--calendar-cell-fg-selected);
}
[data-rs-calendar-day][data-rs-state~="today"] {
border-color: var(--calendar-cell-bg-selected);
font-weight: var(--font-weight-semibold);
}
[data-rs-callout] {
display: flex;
gap: var(--callout-gap);
padding-inline: var(--callout-padding-x);
padding-block: var(--callout-padding-y);
border-left: var(--callout-border-accent-width) solid;
border-radius: var(--callout-radius);
}
[data-rs-callout][data-rs-variant="default"] {
background: var(--callout-bg-default);
border-color: var(--callout-border-default);
}
[data-rs-callout][data-rs-variant="info"] {
background: var(--callout-bg-info);
border-color: var(--callout-border-info);
}
[data-rs-callout][data-rs-variant="success"] {
background: var(--callout-bg-success);
border-color: var(--callout-border-success);
}
[data-rs-callout][data-rs-variant="warning"] {
background: var(--callout-bg-warning);
border-color: var(--callout-border-warning);
}
[data-rs-callout][data-rs-variant="error"] {
background: var(--callout-bg-error);
border-color: var(--callout-border-error);
}
[data-rs-callout-icon] {
width: var(--callout-icon-size);
height: var(--callout-icon-size);
flex-shrink: 0;
}
[data-rs-callout-title] {
font-size: var(--callout-title-font-size);
font-weight: var(--callout-title-font-weight);
color: var(--callout-title-fg);
}
[data-rs-callout-description] {
font-size: var(--callout-description-font-size);
line-height: var(--callout-description-line-height);
color: var(--callout-description-fg);
}
[data-rs-card] {
min-height: var(--size-2xl);
display: flex;
flex-direction: column;
height: 100%;
background: var(--card-bg);
border: var(--card-border-width) solid var(--card-border-color);
border-radius: var(--card-radius);
padding: var(--card-padding);
box-shadow: var(--card-shadow);
color: var(--card-fg);
transition:
border-color var(--motion-duration-fast) var(--motion-ease-standard),
box-shadow var(--motion-duration-fast) var(--motion-ease-standard),
transform var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-card][data-rs-variant="interactive"][data-rs-state~="hover"] {
border-color: var(--theme-action-primary-bg);
box-shadow: var(--shadow-md);
transform: var(--card-hover-transform);
}
[data-rs-card][data-rs-variant="elevated"] {
box-shadow: var(--shadow-md);
}
[data-rs-card] [data-rs-region="header"] {
display: flex;
flex-direction: column;
gap: var(--card-header-gap);
}
[data-rs-card] [data-rs-region="content"] {
display: flex;
flex-direction: column;
flex: 1;
gap: var(--card-content-gap);
font-size: var(--card-description-font-size);
line-height: var(--card-description-line-height);
color: var(--card-description-fg);
}
[data-rs-card] [data-rs-region="footer"] {
display: flex;
margin-top: auto;
padding-top: var(--card-footer-padding);
border-top: var(--card-border-width) solid var(--card-border-color);
color: var(--theme-action-primary-bg);
font-size: var(--font-size-xs);
font-weight: var(--font-weight-medium);
}
[data-rs-card-title] {
text-align: left;
font-size: var(--card-title-font-size);
font-weight: var(--card-title-font-weight);
color: var(--card-title-fg);
margin: 0;
}
[data-rs-card-description] {
font-size: var(--card-description-font-size);
line-height: var(--card-description-line-height);
color: var(--card-description-fg);
margin: 0;
}
[data-rs-card-content] {
display: flex;
flex-direction: column;
gap: var(--card-content-gap);
flex: 1;
color: var(--theme-surface-fg-muted);
}
[data-rs-card-footer] {
display: flex;
gap: var(--card-footer-gap);
margin-top: auto;
}
[data-rs-carousel] {
position: relative;
overflow: hidden;
width: 100%;
}
[data-rs-carousel-wrapper] {
position: relative;
width: 100%;
}
[data-rs-carousel-track] {
display: flex;
transition: transform var(--motion-duration-normal) var(--motion-ease-standard);
width: 100%;
position: relative;
}
[data-rs-carousel-item] {
flex: 0 0 100%;
width: 100%;
color: var(--theme-surface-fg);
display: flex;
align-items: center;
justify-content: center;
}
[data-rs-carousel][data-rs-ready] [data-rs-carousel-item][data-rs-state~="inactive"] {
display: none;
}
[data-rs-carousel-item][data-rs-state~="hidden"] {
visibility: hidden;
display: none;
}
[data-rs-carousel-prev],
[data-rs-carousel-next] {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: var(--layer-base);
width: var(--carousel-button-size);
height: var(--carousel-button-size);
background: var(--carousel-button-bg);
backdrop-filter: blur(6px);
color: var(--carousel-button-fg);
border: none;
border-radius: var(--carousel-button-radius);
box-shadow: var(--carousel-button-shadow);
font-size: var(--font-size-2xl);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-carousel-prev]:hover:not([disabled]):not([data-rs-state~="disabled"]),
[data-rs-carousel-next]:hover:not([disabled]):not([data-rs-state~="disabled"]) {
background: var(--carousel-button-bg-hover);
transform: translateY(-50%) scale(1.08);
box-shadow: var(--carousel-button-shadow-hover);
}
[data-rs-carousel-prev]:active,
[data-rs-carousel-next]:active {
transform: translateY(-50%) scale(0.95);
}
[data-rs-carousel-prev] { left: var(--space-md); }
[data-rs-carousel-next] { right: var(--space-md); }
[data-rs-carousel-indicators] {
position: absolute;
bottom: var(--space-md);
left: 50%;
transform: translateX(-50%);
z-index: var(--layer-base);
display: flex;
gap: var(--carousel-indicator-gap);
}
[data-rs-carousel-dot] {
width: var(--carousel-indicator-size);
height: var(--carousel-indicator-size);
background: var(--carousel-indicator-bg);
border: none;
border-radius: var(--radius-full);
cursor: pointer;
transition: all var(--motion-duration-fast) var(--motion-ease-standard);
padding: 0;
}
[data-rs-carousel-dot][data-rs-state~="active"] {
background: var(--carousel-indicator-active-bg);
width: calc(var(--carousel-indicator-size) * 2);
}
[data-rs-carousel-dot]:hover:not([data-rs-state~="active"]) {
background: var(--carousel-indicator-active-bg);
opacity: 0.7;
}
[data-rs-chart] {
position: relative;
container-type: inline-size;
width: 100%;
max-width: 100%;
background: var(--chart-bg);
padding: var(--chart-padding);
border-radius: var(--chart-radius);
}
[data-rs-chart-canvas] {
display: block;
width: 100%;
max-width: 100%;
}
[data-rs-chart-overlay] {
position: absolute;
inset: 0;
pointer-events: none;
z-index: var(--chart-overlay-z);
}
[data-rs-chart-tooltip] {
position: absolute;
background: var(--chart-tooltip-bg);
color: var(--chart-tooltip-fg);
font-size: var(--chart-tooltip-font-size);
padding: var(--chart-tooltip-padding);
border-radius: var(--chart-tooltip-radius);
box-shadow: var(--chart-tooltip-shadow);
pointer-events: none;
white-space: nowrap;
transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-chart-tooltip][data-rs-state~="closed"] {
opacity: 0;
visibility: hidden;
}
[data-rs-chart-tooltip][data-rs-state~="open"] {
opacity: 1;
visibility: visible;
}
[data-rs-chart-crosshair] {
position: absolute;
top: 0;
bottom: 0;
width: var(--chart-crosshair-width);
background: var(--chart-crosshair-color);
pointer-events: none;
opacity: 0;
transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-chart-crosshair][data-rs-state~="open"] {
opacity: 1;
}
[data-rs-chart-grid] {
stroke: var(--chart-grid-color);
stroke-width: var(--chart-grid-stroke-width);
}
[data-rs-chart-axis] {
font-size: var(--chart-axis-font-size);
color: var(--chart-axis-fg);
}
[data-rs-chart-axis-tick] {
height: var(--chart-axis-tick-size);
}
[data-rs-chart-legend] {
display: flex;
flex-wrap: wrap;
gap: var(--chart-legend-gap);
padding-top: var(--space-sm);
}
[data-rs-chart-legend-item] {
display: flex;
align-items: center;
gap: var(--space-xs);
font-size: var(--chart-legend-item-font-size);
color: var(--chart-legend-item-fg);
cursor: pointer;
transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-chart-legend-item][data-rs-state~="inactive"] {
opacity: var(--opacity-disabled);
}
[data-rs-chart-legend-dot] {
width: var(--chart-legend-dot-size);
height: var(--chart-legend-dot-size);
border-radius: var(--radius-full);
flex-shrink: 0;
background: var(--chart-series-color, var(--color-primary));
}
[data-rs-datatable-row][data-rs-chart-highlight] {
background: var(--chart-sync-highlight-bg);
transition: background var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-chart][data-rs-state~="loading"] {
opacity: var(--opacity-disabled);
pointer-events: none;
}
[data-rs-chart][data-rs-state~="error"] [data-rs-chart-canvas] {
opacity: var(--opacity-disabled);
}
[data-rs-checkbox] {
display: inline-flex;
align-items: center;
gap: var(--checkbox-gap);
cursor: pointer;
}
[data-rs-checkbox-input] {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}
[data-rs-checkbox-input]:focus-visible ~ [data-rs-checkbox-indicator],
[data-rs-checkbox][data-rs-state~="focus"] [data-rs-checkbox-indicator] {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-checkbox-indicator] {
min-width: var(--checkbox-size);
min-height: var(--checkbox-size);
display: inline-flex;
align-items: center;
justify-content: center;
width: var(--checkbox-size);
height: var(--checkbox-size);
border: var(--checkbox-border-width) solid var(--checkbox-border-color);
border-radius: var(--checkbox-radius);
background: var(--checkbox-bg);
color: transparent;
transition: all var(--checkbox-transition-duration);
flex-shrink: 0;
}
[data-rs-checkbox][data-rs-state~="indeterminate"] [data-rs-checkbox-indicator] {
background: var(--checkbox-checked-bg);
border-color: var(--checkbox-checked-border-color);
color: var(--checkbox-checked-fg);
opacity: 0.6;
}
[data-rs-checkbox][data-rs-state~="checked"] [data-rs-checkbox-indicator] {
background: var(--checkbox-checked-bg);
border-color: var(--checkbox-checked-border-color);
color: var(--checkbox-checked-fg);
}
[data-rs-checkbox][data-rs-state~="disabled"] [data-rs-checkbox-indicator] {
opacity: var(--checkbox-disabled-opacity);
cursor: not-allowed;
}
[data-rs-checkbox][data-rs-state~="disabled"] {
cursor: not-allowed;
}
[data-rs-checkbox][data-rs-state~="focus"] [data-rs-checkbox-indicator] {
outline: var(--checkbox-focus-ring-width) solid var(--checkbox-focus-ring-color);
outline-offset: var(--focus-ring-offset);
}
[data-rs-code-block] {
background: var(--code-block-bg);
border-radius: var(--code-block-radius);
border: var(--code-block-border-width) solid var(--code-block-border-color);
font-family: var(--code-block-font-family);
font-size: var(--code-block-font-size);
line-height: var(--code-block-line-height);
transition: border-color var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-code-header] {
display: flex;
align-items: center;
gap: var(--code-block-header-gap);
height: var(--code-block-header-height);
background: var(--code-block-header-bg);
color: var(--code-block-header-fg);
}
[data-rs-code-language] {
font-size: var(--code-block-language-font-size);
color: var(--code-block-language-fg);
}
[data-rs-code-pre] {
padding-inline: var(--code-block-content-padding-x);
padding-block: var(--code-block-content-padding-y);
}
[data-rs-code-block][data-rs-line-numbers] [data-rs-code-pre] {
counter-reset: line;
}
[data-rs-code-block][data-rs-line-numbers] [data-rs-code-line] {
display: grid;
grid-template-columns: 3em 1fr;
gap: var(--space-sm);
}
[data-rs-code-block][data-rs-line-numbers] [data-rs-code-line]::before {
content: attr(data-rs-line-number);
text-align: right;
color: var(--theme-surface-fg-muted);
padding-right: var(--space-xs);
border-right: var(--border-thin) solid var(--theme-surface-border);
user-select: none;
}
[data-rs-code-block][data-rs-state~="copied"] {
border-color: var(--theme-action-primary-bg);
box-shadow: var(--shadow-sm);
}
[data-rs-code-block][data-rs-state~="hover"] {
border-color: var(--theme-surface-border);
}
[data-rs-code-block] [data-rs-copy-button] {
opacity: var(--opacity-disabled);
transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-code-block][data-rs-state~="hover"] [data-rs-copy-button] {
opacity: 1;
}
[data-rs-collapsible] {
display: flex;
flex-direction: column;
gap: var(--collapsible-gap);
}
[data-rs-collapsible-trigger] {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding: var(--collapsible-trigger-padding);
background: var(--collapsible-trigger-bg);
border-radius: var(--collapsible-trigger-radius);
color: var(--collapsible-trigger-fg);
cursor: pointer;
transition: background var(--collapsible-transition-duration) var(--collapsible-transition-ease);
}
[data-rs-collapsible-trigger]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-collapsible-trigger][data-rs-state~="hover"]:not([data-rs-state~="disabled"]):not([data-rs-state~="open"]) {
background: var(--collapsible-trigger-hover-bg);
}
[data-rs-collapsible-content] {
padding: var(--collapsible-content-padding);
display: none;
}
[data-rs-collapsible-trigger]::after {
content: "▸";
font-size: var(--font-size-xs);
color: var(--collapsible-trigger-fg);
transition: transform var(--collapsible-transition-duration) var(--collapsible-transition-ease);
flex-shrink: 0;
}
[data-rs-collapsible][data-rs-state~="open"] [data-rs-collapsible-trigger]::after {
content: "▾";
}
[data-rs-collapsible][data-rs-state~="open"] [data-rs-collapsible-trigger] {
color: var(--collapsible-trigger-open-fg);
}
[data-rs-collapsible][data-rs-state~="open"] [data-rs-collapsible-content] {
display: block;
}
[data-rs-collapsible][data-rs-state~="closed"] [data-rs-collapsible-content] {
display: none;
}
[data-rs-color-picker-wrapper] {
display: inline-block;
}
[data-rs-color-picker] {
display: inline-block;
position: relative;
}
[data-rs-color-picker-trigger] {
display: block;
position: relative;
width: var(--color-picker-trigger-size);
height: var(--color-picker-trigger-size);
border: var(--color-picker-border-width) solid var(--color-picker-border-color);
border-radius: var(--color-picker-trigger-radius);
cursor: pointer;
overflow: hidden;
padding: 0;
background: none;
transition: border-color var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-color-picker-trigger]:hover:not([data-rs-disabled="true"]):not([data-rs-state~="disabled"]) {
border-color: var(--theme-action-focus-ring);
}
[data-rs-color-picker-trigger]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-color-picker-input] {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
cursor: pointer;
}
[data-rs-color-swatch] {
width: var(--color-picker-swatch-size);
height: var(--color-picker-swatch-size);
border-radius: var(--color-picker-swatch-radius);
border: var(--color-picker-swatch-border-width) solid var(--color-picker-swatch-border-color);
cursor: pointer;
transition:
transform var(--motion-duration-fast) var(--motion-ease-standard),
outline var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-color-picker-trigger] [data-rs-color-swatch] {
width: 100%;
height: 100%;
border: none;
border-radius: inherit;
}
[data-rs-color-swatch][data-rs-state~="selected"] {
border-color: var(--color-picker-swatch-border-color-selected);
border-width: calc(var(--color-picker-swatch-border-width) * 2);
}
[data-rs-color-swatch]:hover:not([data-rs-state~="disabled"]):not([data-rs-state~="selected"]):not([data-rs-disabled="true"]) {
transform: scale(1.1);
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
}
[data-rs-color-picker][data-rs-disabled="true"],
[data-rs-color-picker-trigger][data-rs-disabled="true"] {
opacity: var(--color-picker-disabled-opacity);
pointer-events: none;
cursor: not-allowed;
}
[data-rs-color-swatch][data-rs-disabled="true"] {
opacity: var(--color-picker-disabled-opacity);
pointer-events: none;
cursor: not-allowed;
}
[data-rs-color-picker-example] {
display: flex;
gap: var(--color-picker-example-gap);
align-items: flex-start;
}
[data-rs-color-labels] {
display: flex;
flex-direction: column;
gap: var(--color-picker-labels-gap);
font-size: var(--color-picker-label-font-size);
font-family: var(--color-picker-label-font-family);
}
[data-rs-color-label] {
display: flex;
gap: var(--color-picker-label-gap);
}
[data-rs-color-label-key] {
color: var(--color-picker-label-key-fg);
}
[data-rs-color-label-value] {
color: var(--color-picker-label-value-fg);
}
[data-rs-color-picker-display] {
display: inline-flex;
align-items: center;
gap: var(--color-picker-label-gap);
font-size: var(--color-picker-label-font-size);
font-family: var(--color-picker-label-font-family);
}
[data-rs-color-display-format] {
color: var(--color-picker-label-key-fg);
font-weight: var(--font-weight-semibold);
min-width: var(--size-sm);
}
[data-rs-color-display-value] {
color: var(--color-picker-label-value-fg);
}
[data-rs-color-picker-swatches] {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: var(--space-sm);
}
[data-rs-color-picker-swatches-row] {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: var(--space-xs);
align-items: center;
justify-content: center;
}
[data-rs-color-picker-swatch-preview] {
width: var(--color-picker-trigger-size);
height: var(--color-picker-trigger-size);
border: var(--color-picker-border-width) solid var(--color-picker-border-color);
border-radius: var(--color-picker-trigger-radius);
overflow: hidden;
pointer-events: none;
}
[data-rs-color-picker-swatch-preview] [data-rs-color-swatch] {
width: 100%;
height: 100%;
border: none;
border-radius: inherit;
cursor: default;
}
[data-rs-combobox] {
position: relative;
background: var(--combobox-bg);
color: var(--combobox-fg);
border: var(--combobox-border-width) solid var(--combobox-border-color);
border-radius: var(--combobox-radius);
height: var(--combobox-height);
padding-inline: var(--combobox-padding-x);
}
[data-rs-combobox][data-rs-state~="focus"] {
outline: var(--combobox-focus-ring-width) solid var(--combobox-focus-ring-color);
outline-offset: var(--focus-ring-offset);
}
[data-rs-combobox-trigger] {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 100%;
gap: var(--combobox-gap);
background: transparent;
border: none;
cursor: pointer;
}
[data-rs-combobox-list] {
display: none;
position: absolute;
top: 100%;
left: 0;
width: 100%;
margin-top: var(--space-xs);
background: var(--combobox-popover-bg);
border-radius: var(--combobox-popover-radius);
box-shadow: var(--combobox-popover-shadow);
padding-block: var(--combobox-popover-padding-y);
z-index: var(--layer-dropdown);
}
[data-rs-combobox][data-rs-state~="open"] [data-rs-combobox-list] {
display: block;
}
[data-rs-combobox][data-rs-state~="closed"] [data-rs-combobox-list] {
display: none;
}
[data-rs-combobox-item] {
display: flex;
align-items: center;
height: var(--combobox-item-height);
padding: var(--combobox-item-padding);
cursor: pointer;
}
[data-rs-combobox-item]:hover:not([data-rs-state~="disabled"]):not([data-rs-state~="selected"]),
[data-rs-combobox-item][data-rs-state~="focus"] {
background: var(--combobox-item-hover-bg);
outline: none;
}
[data-rs-combobox-item][data-rs-state~="selected"] {
background: var(--combobox-item-selected-bg);
}
[data-rs-combobox-item][data-rs-state~="hidden"] {
display: none;
}
[data-rs-combobox][data-rs-state~="disabled"] {
opacity: var(--combobox-disabled-opacity);
pointer-events: none;
}
[data-rs-combobox-item][data-rs-state~="disabled"] {
opacity: var(--combobox-disabled-opacity);
pointer-events: none;
cursor: not-allowed;
}
[data-rs-combobox-empty] {
color: var(--combobox-empty-fg);
padding: var(--combobox-empty-padding);
}
[data-rs-command] {
background: var(--command-bg);
color: var(--command-fg);
border: var(--command-border-width) solid var(--command-border-color);
border-radius: var(--command-radius);
box-shadow: var(--command-shadow);
padding: var(--command-padding);
display: flex;
flex-direction: column;
gap: var(--command-gap);
}
[data-rs-command-input] {
height: var(--command-input-height);
padding: var(--command-input-padding);
font-size: var(--command-input-font-size);
border: none;
border-bottom: var(--command-input-border-bottom);
background: transparent;
outline: none;
}
[data-rs-command-list] {
padding: var(--command-list-padding);
max-height: var(--command-list-max-height);
overflow-y: auto;
}
[data-rs-sidebar-search] [data-rs-command-input]:placeholder-shown ~ [data-rs-command-list],
[data-rs-sidebar-search] [data-rs-command] [data-rs-command-input]:placeholder-shown ~ [data-rs-command-list] {
display: none;
}
[data-rs-command-item] {
display: flex;
align-items: center;
height: var(--command-item-height);
padding: var(--command-item-padding);
border-radius: var(--command-item-radius);
cursor: pointer;
}
[data-rs-command-item][data-rs-state~="hover"]:not([data-rs-state~="active"]) {
background: var(--command-item-hover-bg);
}
[data-rs-command-item][data-rs-state~="active"] {
background: var(--command-item-active-bg);
color: var(--command-item-active-fg);
}
[data-rs-command-item][data-rs-state~="hidden"] {
display: none;
}
[data-rs-command-group-heading] {
color: var(--command-group-heading-fg);
font-size: var(--command-group-heading-font-size);
padding: var(--command-group-heading-padding);
font-weight: var(--font-weight-semibold);
}
[data-rs-command-separator] {
height: var(--border-thin);
background: var(--command-separator-color);
margin: var(--command-separator-margin-y) 0;
}
[data-rs-command-empty] {
color: var(--command-empty-fg);
padding: var(--command-empty-padding);
text-align: center;
}
[data-rs-command][data-rs-state~="closed"] { display: none; }
[data-rs-command][data-rs-state~="open"] { display: flex; }
[data-rs-confirm-dialog] {
display: contents;
}
[data-rs-confirm-dialog-portal] {
display: contents;
}
[data-rs-confirm-dialog-overlay] {
position: fixed;
inset: 0;
z-index: var(--confirm-dialog-overlay-z-index);
background: var(--confirm-dialog-overlay-bg);
opacity: 0;
visibility: hidden;
transition:
opacity var(--confirm-dialog-transition-duration) var(--confirm-dialog-transition-ease),
visibility var(--confirm-dialog-transition-duration) var(--confirm-dialog-transition-ease);
will-change: opacity;
}
[data-rs-confirm-dialog-overlay][data-rs-state~="entering"],
[data-rs-confirm-dialog-overlay][data-rs-state~="open"] {
opacity: 1;
visibility: visible;
}
[data-rs-confirm-dialog-overlay][data-rs-state~="exiting"] {
opacity: 0;
visibility: visible;
}
[data-rs-confirm-dialog-content] {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -48%) scale(0.96);
z-index: calc(var(--confirm-dialog-overlay-z-index) + 1);
width: var(--confirm-dialog-content-width);
max-width: var(--confirm-dialog-content-max-width);
background: var(--confirm-dialog-content-bg);
color: var(--confirm-dialog-content-fg);
padding: var(--confirm-dialog-content-padding);
border-radius: var(--confirm-dialog-content-radius);
box-shadow: var(--confirm-dialog-content-shadow);
opacity: 0;
visibility: hidden;
transition:
opacity var(--confirm-dialog-transition-duration) var(--confirm-dialog-transition-ease),
transform var(--confirm-dialog-transition-duration) var(--confirm-dialog-transition-ease),
visibility var(--confirm-dialog-transition-duration) var(--confirm-dialog-transition-ease);
will-change: transform, opacity;
outline: none;
}
[data-rs-confirm-dialog-content][data-rs-state~="entering"],
[data-rs-confirm-dialog-content][data-rs-state~="open"] {
opacity: 1;
visibility: visible;
transform: translate(-50%, -50%) scale(1);
}
[data-rs-confirm-dialog-content][data-rs-state~="exiting"] {
opacity: 0;
visibility: visible;
transform: translate(-50%, -48%) scale(0.96);
}
[data-rs-confirm-dialog-title] {
color: var(--confirm-dialog-title-fg);
font-size: var(--confirm-dialog-title-font-size);
font-weight: var(--confirm-dialog-title-font-weight);
margin-bottom: var(--confirm-dialog-header-gap);
line-height: 1.3;
}
[data-rs-confirm-dialog-description] {
color: var(--confirm-dialog-description-fg);
font-size: var(--confirm-dialog-description-font-size);
margin-bottom: var(--confirm-dialog-footer-gap);
line-height: 1.5;
}
[data-rs-confirm-dialog-footer] {
display: flex;
justify-content: flex-end;
gap: var(--confirm-dialog-footer-gap);
margin-top: var(--confirm-dialog-footer-gap);
}
[data-rs-context-menu] {
position: relative;
}
[data-rs-context-menu-content] {
position: fixed;
left: var(--context-menu-x, 0);
top: var(--context-menu-y, 0);
z-index: var(--context-menu-z-index);
background: var(--context-menu-bg);
color: var(--context-menu-fg);
border: var(--context-menu-border-width) solid var(--context-menu-border-color);
border-radius: var(--context-menu-radius);
box-shadow: var(--context-menu-shadow);
padding: var(--context-menu-padding);
min-width: var(--context-menu-min-width);
opacity: 0;
visibility: hidden;
transform: scale(0.95);
transition:
opacity var(--context-menu-transition-duration) var(--context-menu-transition-ease),
visibility var(--context-menu-transition-duration) var(--context-menu-transition-ease),
transform var(--context-menu-transition-duration) var(--context-menu-transition-ease);
}
[data-rs-context-menu-item] {
display: flex;
align-items: center;
height: var(--context-menu-item-height);
padding: var(--context-menu-item-padding);
color: var(--context-menu-item-fg);
cursor: pointer;
border-radius: var(--context-menu-radius);
}
[data-rs-context-menu-item]:hover:not([data-rs-state~="active"]):not([data-rs-state~="disabled"]) {
background: var(--context-menu-item-hover-bg);
}
[data-rs-context-menu-item][data-rs-state~="disabled"] {
opacity: var(--opacity-disabled);
pointer-events: none;
cursor: not-allowed;
}
[data-rs-context-menu-separator] {
height: var(--border-thin);
background: var(--context-menu-border-color);
margin: var(--space-xs) 0;
}
[data-rs-context-menu][data-rs-state~="open"] [data-rs-context-menu-content] {
opacity: 1;
visibility: visible;
transform: scale(1);
}
[data-rs-context-menu][data-rs-state~="closed"] [data-rs-context-menu-content] {
opacity: 0;
visibility: hidden;
transform: scale(0.95);
}
[data-rs-copy-button] {
display: inline-flex;
align-self: flex-start;
width: auto;
align-items: center;
gap: var(--space-xs);
padding: var(--space-xs) var(--space-sm);
background: var(--copy-button-bg);
color: var(--copy-button-fg);
border: 1px solid var(--copy-button-border);
border-radius: var(--radius-sm);
font-size: var(--font-size-sm);
cursor: pointer;
transition:
background var(--copy-button-transition-duration) var(--copy-button-transition-ease),
color var(--copy-button-transition-duration) var(--copy-button-transition-ease),
border-color var(--copy-button-transition-duration) var(--copy-button-transition-ease),
opacity var(--copy-button-transition-duration) var(--copy-button-transition-ease);
}
[data-rs-copy-button][data-rs-state~="hover"]:not([data-rs-state~="copied"]):not([data-rs-state~="error"]):not([data-rs-state~="copying"]) {
background: var(--copy-button-bg-hover);
border-color: var(--copy-button-border-hover);
}
[data-rs-copy-content],
[data-rs-copied-content],
[data-rs-error-content] {
display: inline-flex;
align-items: center;
gap: var(--space-xs);
}
[data-rs-copy-button]:not([data-rs-state~="copied"]):not([data-rs-state~="error"]) [data-rs-copied-content],
[data-rs-copy-button]:not([data-rs-state~="copied"]):not([data-rs-state~="error"]) [data-rs-error-content] {
display: none;
}
[data-rs-copy-button][data-rs-state~="copying"] {
cursor: wait;
opacity: var(--opacity-disabled);
pointer-events: none;
}
[data-rs-copy-button][data-rs-state~="copied"] [data-rs-copy-content],
[data-rs-copy-button][data-rs-state~="copied"] [data-rs-error-content] {
display: none;
}
[data-rs-copy-button][data-rs-state~="copied"] [data-rs-copied-content] {
display: inline-flex;
align-items: center;
gap: var(--space-xs);
}
[data-rs-copy-button][data-rs-state~="copied"] {
background: var(--copy-button-copied-bg);
color: var(--copy-button-copied-fg);
border-color: var(--copy-button-copied-bg);
}
[data-rs-copy-button][data-rs-state~="error"] [data-rs-copy-content],
[data-rs-copy-button][data-rs-state~="error"] [data-rs-copied-content] {
display: none;
}
[data-rs-copy-button][data-rs-state~="error"] [data-rs-error-content] {
display: inline-flex;
align-items: center;
gap: var(--space-xs);
}
[data-rs-copy-button][data-rs-state~="error"] {
width: auto;
align-self: flex-start;
background: var(--copy-button-error-bg);
color: var(--copy-button-error-fg);
border-color: var(--copy-button-error-border);
}
[data-rs-copy-icon],
[data-rs-copied-icon],
[data-rs-error-icon] {
width: var(--copy-button-icon-size);
height: var(--copy-button-icon-size);
color: var(--copy-button-icon-color);
flex-shrink: 0;
}
[data-rs-copy-button][data-rs-state~="copied"] [data-rs-copied-icon] {
color: var(--copy-button-icon-color-copied);
}
[data-rs-datatable] {
display: flex;
flex-direction: column;
width: 100%;
border: var(--table-border-width) solid var(--table-border-color);
border-radius: var(--radius-md);
background: var(--theme-surface-bg);
overflow: hidden;
}
[data-rs-datatable-toolbar] {
display: flex;
flex-direction: row;
align-items: center;
gap: var(--datatable-toolbar-gap);
padding: var(--datatable-toolbar-padding-y) var(--datatable-toolbar-padding-x);
border-bottom: var(--table-border-width) solid var(--table-border-color);
background: var(--table-header-bg);
}
[data-rs-datatable-filter] {
flex: 1;
max-width: var(--datatable-filter-max-width);
padding: var(--space-xs) var(--space-sm);
border: var(--table-border-width) solid var(--table-border-color);
border-radius: var(--radius-sm);
background: var(--theme-surface-bg);
color: var(--theme-surface-fg);
font-size: var(--font-size-sm);
}
[data-rs-datatable-scroll] {
width: 100%;
}
[data-rs-datatable-table] {
width: 100%;
min-width: max-content;
border-collapse: collapse;
font-size: var(--table-cell-font-size);
table-layout: auto;
}
[data-rs-datatable-table][data-rs-resizable] [data-rs-datatable-head-cell] {
min-width: var(--table-col-min-width);
}
[data-rs-datatable-head] {
background: var(--datatable-header-bg);
position: sticky;
top: 0;
z-index: var(--layer-sticky);
}
[data-rs-datatable-head-row] {
border-bottom: var(--table-border-width) solid var(--datatable-border-color);
}
.rs-col-hidden {
display: none;
width: 0;
min-width: 0;
max-width: 0;
padding: 0;
border: none;
overflow: hidden;
}
[data-rs-datatable-resize-handle] {
position: absolute;
right: 0;
top: 0;
height: 100%;
width: var(--table-resize-handle-width);
cursor: col-resize;
background: transparent;
z-index: var(--table-resize-handle-z);
touch-action: none;
}
[data-rs-datatable-head-cell][data-rs-state~="hover"] [data-rs-datatable-resize-handle] {
background: var(--table-resize-handle-color);
opacity: var(--table-resize-handle-opacity);
}
.rs-resizing {
cursor: col-resize;
user-select: none;
}
.rs-resizing [data-rs-datatable-resize-handle] {
background: var(--table-resize-handle-color);
opacity: var(--table-resize-handle-opacity-active);
}
[data-rs-datatable-head-cell] {
position: relative;
padding: var(--table-cell-padding-y) var(--table-cell-padding-x);
text-align: left;
font-weight: var(--table-header-font-weight);
font-size: var(--table-header-font-size);
color: var(--table-header-fg);
white-space: nowrap;
cursor: pointer;
user-select: none;
overflow: visible;
transition: background var(--table-row-transition-duration) var(--table-row-transition-ease);
}
[data-rs-datatable-head-cell]:hover:not([data-rs-state~="disabled"]) {
background: var(--table-row-bg-hover);
}
[data-rs-datatable-head-cell] [data-rs-datatable-sort-icon] {
margin-left: var(--space-xs);
opacity: var(--opacity-disabled);
font-size: var(--font-size-xs);
}
[data-rs-datatable-head-cell][data-rs-sort="ascending"] [data-rs-datatable-sort-icon],
[data-rs-datatable-head-cell][data-rs-sort="descending"] [data-rs-datatable-sort-icon] {
opacity: 1;
color: var(--theme-action-accent-fg);
}
[data-rs-datatable-row] {
border-bottom: var(--table-border-width) solid var(--datatable-border-color);
transition: background var(--table-row-transition-duration) var(--table-row-transition-ease);
}
[data-rs-datatable-row][data-rs-state~="striped"] {
background: var(--table-row-bg-striped);
}
[data-rs-datatable-row]:hover:not([data-rs-state~="disabled"]) {
background: var(--table-row-bg-hover);
}
[data-rs-datatable-row][data-rs-state~="selected"] {
background: var(--table-row-bg-selected);
box-shadow: inset var(--border-medium) 0 0 0 var(--theme-action-primary-bg);
}
[data-rs-datatable-expand-row] {
background: var(--table-expand-row-bg);
}
[data-rs-datatable-expand-row][hidden] {
display: none;
}
[data-rs-datatable-expand-content] {
padding: var(--table-expand-row-padding);
}
[data-rs-datatable-expand-btn] {
width: var(--table-expand-btn-size);
height: var(--table-expand-btn-size);
background: transparent;
border: none;
cursor: pointer;
color: var(--table-expand-btn-color);
display: inline-flex;
align-items: center;
justify-content: center;
transition: transform var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-datatable-expand-btn][data-rs-state~="expanded"] {
transform: rotate(90deg);
}
[data-rs-inline-edit-input] {
caret-color: var(--theme-action-primary-bg);
border-bottom: var(--border-thin) solid var(--theme-action-primary-bg) !important;
border-radius: 0;
}
[data-rs-inline-edit-input]:focus-visible {
outline: none;
border-bottom: var(--border-medium) solid var(--theme-action-primary-bg) !important;
}
[data-rs-datatable-row][data-rs-state~="editing"] {
background: var(--table-row-bg-editing);
box-shadow: inset var(--border-medium) 0 0 0 var(--table-row-border-editing);
}
[data-rs-datatable-row][data-rs-state~="deleting"] {
background: var(--table-row-bg-deleting);
box-shadow: inset var(--border-medium) 0 0 0 var(--table-row-border-deleting);
opacity: 0.4;
transition: opacity var(--motion-duration-slow) var(--motion-ease-standard);
}
[data-rs-datatable-cell] {
padding: var(--table-cell-padding-y) var(--table-cell-padding-x);
font-size: var(--table-cell-font-size);
color: var(--table-cell-fg);
}
[data-rs-datatable][data-rs-density="compact"] [data-rs-datatable-cell],
[data-rs-datatable][data-rs-density="compact"] [data-rs-datatable-head-cell] {
padding: var(--datatable-density-compact-padding-y) var(--datatable-density-compact-padding-x);
font-size: var(--font-size-xs);
}
[data-rs-datatable][data-rs-density="comfortable"] [data-rs-datatable-cell],
[data-rs-datatable][data-rs-density="comfortable"] [data-rs-datatable-head-cell] {
padding: var(--datatable-density-comfortable-padding-y) var(--datatable-density-comfortable-padding-x);
}
[data-rs-datatable][data-rs-density="spacious"] [data-rs-datatable-cell],
[data-rs-datatable][data-rs-density="spacious"] [data-rs-datatable-head-cell] {
padding: var(--datatable-density-spacious-padding-y) var(--datatable-density-spacious-padding-x);
font-size: var(--font-size-base);
}
[data-rs-datatable-empty] {
padding: var(--space-xl) var(--table-cell-padding-x);
text-align: center;
color: var(--theme-surface-fg-muted);
font-size: var(--font-size-sm);
}
[data-rs-datatable-loading] {
padding: var(--space-xl) var(--table-cell-padding-x);
text-align: center;
color: var(--theme-surface-fg-muted);
font-size: var(--font-size-sm);
}
[data-rs-datatable-pagination] {
display: flex;
justify-content: space-between;
align-items: center;
padding: var(--table-cell-padding-y) var(--table-cell-padding-x);
border-top: var(--table-border-width) solid var(--datatable-border-color);
background: var(--datatable-header-bg);
}
[data-rs-datatable-pagination-btn] {
padding: var(--space-xs) var(--space-sm);
border-radius: var(--radius-sm);
border: var(--table-border-width) solid var(--datatable-border-color);
background: var(--theme-surface-bg);
color: var(--theme-surface-fg);
cursor: pointer;
transition: background var(--table-row-transition-duration) var(--table-row-transition-ease);
font-size: var(--font-size-sm);
}
[data-rs-datatable-pagination-btn]:hover:not([data-rs-state~="disabled"]) {
background: var(--table-row-bg-hover);
}
[data-rs-datatable-pagination-btn][data-rs-state~="disabled"] {
opacity: var(--opacity-disabled);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-datatable-pagination-info] {
font-size: var(--font-size-sm);
color: var(--theme-surface-fg-muted);
}
[data-rs-datatable][data-rs-state~="loading"] {
opacity: var(--opacity-disabled);
pointer-events: none;
}
[data-rs-col-select] {
width: var(--table-select-col-width);
padding: 0;
text-align: center;
vertical-align: middle;
}
[data-rs-datatable-select-all],
[data-rs-datatable-select-row] {
appearance: none;
width: var(--table-select-checkbox-size);
height: var(--table-select-checkbox-size);
border: var(--border-thin) solid var(--table-select-checkbox-border);
border-radius: var(--table-select-checkbox-radius);
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
transition:
background var(--motion-duration-fast) var(--motion-ease-standard),
border-color var(--motion-duration-fast) var(--motion-ease-standard);
position: relative;
flex-shrink: 0;
}
[data-rs-datatable-select-all][data-rs-state~="checked"],
[data-rs-datatable-select-row][data-rs-state~="checked"],
[data-rs-datatable-row][data-rs-state~="selected"] [data-rs-datatable-select-row] {
background: var(--table-select-checkbox-bg);
border-color: var(--table-select-checkbox-bg);
}
[data-rs-dropdown-menu-checkbox-item][data-rs-col-index] {
cursor: pointer;
display: flex;
align-items: center;
gap: var(--space-xs);
}
[data-rs-dropdown-menu-checkbox-item][data-rs-state~="checked"] {
background: var(--theme-surface-muted);
}
[data-rs-dropdown-menu-checkbox-item][data-rs-state~="unchecked"] {
opacity: var(--opacity-disabled);
}
[data-rs-datatable-density-toggle] {
display: flex;
flex-direction: row;
gap: var(--space-xs);
}
[data-rs-density-btn] {
padding: var(--space-xs) var(--space-sm);
border-radius: var(--radius-sm);
border: var(--table-border-width) solid var(--datatable-border-color);
background: var(--theme-surface-bg);
color: var(--theme-surface-fg);
cursor: pointer;
font-size: var(--font-size-sm);
}
[data-rs-density-btn][data-active="true"] {
background: var(--theme-action-accent-bg);
color: var(--theme-action-accent-fg);
border-color: var(--theme-action-accent-bg);
}
[data-rs-col-actions] {
width: var(--size-2xl);
text-align: center;
padding: 0;
}
[data-rs-col-actions] [data-rs-dropdown-menu-trigger] {
background: transparent;
border: none;
cursor: pointer;
padding: var(--space-xs);
border-radius: var(--radius-sm);
color: var(--theme-surface-fg-muted);
font-size: var(--font-size-md);
line-height: 1;
opacity: 0;
transition:
opacity var(--motion-duration-fast) var(--motion-ease-standard),
background var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-datatable-row]:hover:not([data-rs-state~="disabled"]) [data-rs-col-actions] [data-rs-dropdown-menu-trigger] {
opacity: 1;
}
[data-rs-col-actions] [data-rs-dropdown-menu-trigger]:hover:not([data-rs-state~="disabled"]) {
background: var(--theme-surface-muted);
color: var(--theme-surface-fg);
}
[data-rs-datatable-bulk-bar] {
display: flex;
align-items: center;
gap: var(--space-sm);
padding: var(--space-xs) var(--space-sm);
background: var(--theme-action-accent-bg);
color: var(--theme-action-accent-fg);
border-radius: var(--radius-sm);
margin-bottom: var(--space-xs);
animation: bulk-bar-in var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-datatable-bulk-bar][data-rs-state~="hidden"] {
display: none;
}
@keyframes bulk-bar-in {
from { opacity: 0; transform: translateY(calc(-1 * var(--space-xs))); }
to { opacity: 1; transform: translateY(0); }
}
[data-rs-datatable-bulk-count] {
font-size: var(--font-size-sm);
font-weight: var(--font-weight-medium);
min-width: var(--size-3xl);
}
[data-rs-datatable-bulk-actions] {
display: flex;
align-items: center;
gap: var(--space-xs);
flex: 1;
}
[data-rs-datatable-bulk-action] {
padding: var(--space-xs) var(--space-sm);
border-radius: var(--radius-sm);
border: var(--border-thin) solid var(--theme-action-accent-fg);
background: transparent;
color: var(--theme-action-accent-fg);
cursor: pointer;
font-size: var(--font-size-sm);
transition: background var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-datatable-bulk-action]:hover:not([data-rs-state~="disabled"]) {
background: var(--theme-action-accent-bg);
}
[data-rs-datatable-bulk-action][data-rs-variant="destructive"] {
border-color: var(--theme-state-error-bg);
color: var(--theme-state-error-bg);
}
[data-rs-datatable-bulk-clear] {
margin-left: auto;
background: transparent;
border: none;
color: var(--theme-action-accent-fg);
cursor: pointer;
font-size: var(--font-size-sm);
opacity: var(--opacity-hover);
padding: var(--space-xs);
border-radius: var(--radius-sm);
transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-datatable-bulk-clear]:hover:not([data-rs-state~="disabled"]) {
opacity: 1;
}
[data-rs-datatable-actions-cell] {
display: flex;
align-items: center;
gap: var(--space-xs);
justify-content: flex-end;
}
[data-rs-datatable-inline-action] {
background: transparent;
border: var(--border-thin) solid var(--theme-surface-border);
border-radius: var(--radius-sm);
color: var(--theme-surface-fg-muted);
cursor: pointer;
font-size: var(--font-size-sm);
padding: var(--space-xs) var(--space-sm);
opacity: 0;
transition:
opacity var(--motion-duration-fast) var(--motion-ease-standard),
background var(--motion-duration-fast) var(--motion-ease-standard),
color var(--motion-duration-fast) var(--motion-ease-standard);
white-space: nowrap;
}
[data-rs-datatable-row]:hover:not([data-rs-state~="disabled"]) [data-rs-datatable-inline-action] {
opacity: 1;
}
[data-rs-datatable-inline-action]:hover:not([data-rs-state~="disabled"]) {
background: var(--theme-surface-muted);
color: var(--theme-surface-fg);
}
[data-rs-datatable-inline-action][data-rs-variant="destructive"] {
border-color: var(--theme-state-error-bg);
color: var(--theme-state-error-bg);
}
[data-rs-datatable-inline-action][data-rs-variant="destructive"]:hover:not([data-rs-state~="disabled"]) {
background: var(--theme-state-error-bg);
color: var(--theme-state-error-fg);
}
[data-rs-dialog] {
display: contents;
}
[data-rs-dialog-portal] {
display: contents;
}
[data-rs-dialog-overlay] {
position: fixed;
inset: 0;
z-index: var(--dialog-overlay-z-index);
background: var(--dialog-overlay-bg);
opacity: 0;
visibility: hidden;
transition:
opacity var(--dialog-transition-duration) var(--motion-ease-standard),
visibility var(--dialog-transition-duration) var(--motion-ease-standard);
will-change: opacity;
}
[data-rs-dialog-overlay][data-rs-state~="entering"],
[data-rs-dialog-overlay][data-rs-state~="open"] {
opacity: 1;
visibility: visible;
}
[data-rs-dialog-overlay][data-rs-state~="exiting"] {
opacity: 0;
visibility: visible;
}
[data-rs-dialog-content] {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -48%) scale(0.96);
z-index: calc(var(--dialog-overlay-z-index) + 1);
width: var(--dialog-content-width);
max-width: var(--dialog-content-max-width);
background: var(--dialog-content-bg);
color: var(--dialog-content-fg);
padding: var(--dialog-content-padding);
border-radius: var(--dialog-content-radius);
box-shadow: var(--dialog-content-shadow);
opacity: 0;
visibility: hidden;
transition:
opacity var(--dialog-transition-duration) var(--motion-ease-standard),
transform var(--dialog-transition-duration) var(--motion-ease-standard),
visibility var(--dialog-transition-duration) var(--motion-ease-standard);
will-change: transform, opacity;
outline: none;
}
[data-rs-dialog-content][data-rs-state~="entering"],
[data-rs-dialog-content][data-rs-state~="open"] {
opacity: 1;
visibility: visible;
transform: translate(-50%, -50%) scale(1);
}
[data-rs-dialog-content][data-rs-state~="exiting"] {
opacity: 0;
visibility: visible;
transform: translate(-50%, -48%) scale(0.96);
}
[data-rs-dialog-title] {
color: var(--dialog-title-fg);
font-size: var(--dialog-title-font-size);
font-weight: var(--dialog-title-font-weight);
margin-bottom: var(--dialog-header-gap);
line-height: 1.3;
}
[data-rs-dialog-description] {
color: var(--dialog-description-fg);
font-size: var(--dialog-description-font-size);
margin-bottom: var(--dialog-footer-gap);
line-height: 1.5;
}
[data-rs-dialog-footer] {
display: flex;
justify-content: flex-end;
gap: var(--dialog-footer-gap);
margin-top: var(--dialog-footer-gap);
}
[data-rs-dialog-close] {
position: absolute;
top: var(--dialog-header-gap);
right: var(--dialog-header-gap);
}
[data-rs-doc-progress] {
height: var(--doc-progress-height);
background: var(--doc-progress-bg);
overflow: hidden;
width: 100%;
}
[data-rs-doc-progress][data-rs-position="fixed"] {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: var(--doc-progress-z-index);
}
[data-rs-doc-progress-portal] {
position: absolute;
left: 0;
right: 0;
height: var(--doc-progress-height);
background: var(--doc-progress-bg);
overflow: hidden;
z-index: var(--doc-progress-z-index);
}
[data-rs-doc-progress-portal][data-rs-position="top"] {
top: 0;
bottom: auto;
}
[data-rs-doc-progress-portal][data-rs-position="bottom"] {
bottom: 0;
top: auto;
}
[data-rs-doc-progress-bar] {
position: absolute;
top: 0;
left: 0;
height: 100%;
background: var(--doc-progress-bar-bg);
width: calc(var(--progress, 0) * 1%);
transition: var(--doc-progress-transition);
transform-origin: left;
will-change: width;
}
@media (prefers-reduced-motion: reduce) {
[data-rs-doc-progress-bar] {
transition: none;
}
}
[data-rs-drawer] {
display: contents;
}
[data-rs-drawer-portal] {
display: contents;
}
[data-rs-drawer-overlay] {
position: fixed;
inset: 0;
z-index: var(--drawer-overlay-z-index);
background: var(--drawer-overlay-bg);
opacity: 0;
visibility: hidden;
transition:
opacity var(--drawer-transition-duration) var(--drawer-transition-ease),
visibility var(--drawer-transition-duration) var(--drawer-transition-ease);
}
[data-rs-drawer-overlay][data-rs-state~="open"],
[data-rs-drawer][data-rs-state~="open"] [data-rs-drawer-overlay] {
opacity: 1;
visibility: visible;
}
[data-rs-drawer-content] {
position: fixed;
z-index: calc(var(--drawer-overlay-z-index) + 1);
background: var(--drawer-bg);
color: var(--drawer-fg);
padding: var(--drawer-padding);
box-shadow: var(--drawer-shadow);
opacity: 0;
visibility: hidden;
transition:
opacity var(--drawer-transition-duration) var(--drawer-transition-ease),
transform var(--drawer-transition-duration) var(--drawer-transition-ease),
visibility var(--drawer-transition-duration) var(--drawer-transition-ease);
}
[data-rs-drawer-content][data-rs-side="right"],
[data-rs-drawer-content]:not([data-rs-side]),
[data-rs-drawer][data-rs-side="right"] [data-rs-drawer-content],
[data-rs-drawer]:not([data-rs-side]) [data-rs-drawer-content] {
top: 0; right: 0; bottom: 0;
width: var(--drawer-width);
transform: var(--drawer-transform-closed-right);
}
[data-rs-drawer-content][data-rs-side="right"][data-rs-state~="open"],
[data-rs-drawer-content]:not([data-rs-side])[data-rs-state~="open"],
[data-rs-drawer][data-rs-side="right"][data-rs-state~="open"] [data-rs-drawer-content],
[data-rs-drawer]:not([data-rs-side])[data-rs-state~="open"] [data-rs-drawer-content] {
opacity: 1; visibility: visible;
transform: var(--drawer-transform-open);
}
[data-rs-drawer-content][data-rs-side="left"],
[data-rs-drawer][data-rs-side="left"] [data-rs-drawer-content] {
top: 0; left: 0; bottom: 0;
width: var(--drawer-width);
transform: var(--drawer-transform-closed-left);
}
[data-rs-drawer-content][data-rs-side="left"][data-rs-state~="open"],
[data-rs-drawer][data-rs-side="left"][data-rs-state~="open"] [data-rs-drawer-content] {
opacity: 1; visibility: visible;
transform: var(--drawer-transform-open);
}
[data-rs-drawer-content][data-rs-side="top"],
[data-rs-drawer][data-rs-side="top"] [data-rs-drawer-content] {
top: 0; left: 0; right: 0;
height: var(--drawer-height);
transform: var(--drawer-transform-closed-top);
}
[data-rs-drawer-content][data-rs-side="top"][data-rs-state~="open"],
[data-rs-drawer][data-rs-side="top"][data-rs-state~="open"] [data-rs-drawer-content] {
opacity: 1; visibility: visible;
transform: var(--drawer-transform-open);
}
[data-rs-drawer-content][data-rs-side="bottom"],
[data-rs-drawer][data-rs-side="bottom"] [data-rs-drawer-content] {
bottom: 0; left: 0; right: 0;
height: var(--drawer-height);
transform: var(--drawer-transform-closed-bottom);
}
[data-rs-drawer-content][data-rs-side="bottom"][data-rs-state~="open"],
[data-rs-drawer][data-rs-side="bottom"][data-rs-state~="open"] [data-rs-drawer-content] {
opacity: 1; visibility: visible;
transform: var(--drawer-transform-open);
}
[data-rs-drawer-title] {
color: var(--drawer-title-fg);
font-size: var(--drawer-title-font-size);
font-weight: var(--drawer-title-font-weight);
margin-bottom: var(--drawer-header-gap);
}
[data-rs-drawer-description] {
color: var(--drawer-description-fg);
font-size: var(--drawer-description-font-size);
}
[data-rs-dropdown-menu] {
position: relative;
}
[data-rs-dropdown-menu-content] {
position: absolute;
top: 100%;
left: 0;
margin-top: var(--space-2xs);
z-index: var(--dropdown-menu-z-index);
background: var(--dropdown-menu-bg);
color: var(--dropdown-menu-fg);
padding: var(--dropdown-menu-padding-y) 0;
border-radius: var(--dropdown-menu-radius);
border: var(--dropdown-menu-border-width) solid var(--dropdown-menu-border-color);
box-shadow: var(--dropdown-menu-shadow);
min-width: var(--dropdown-menu-min-width);
opacity: 0;
visibility: hidden;
transform: scale(0.95);
transition:
opacity var(--dropdown-menu-transition-duration) var(--dropdown-menu-transition-ease),
visibility var(--dropdown-menu-transition-duration) var(--dropdown-menu-transition-ease),
transform var(--dropdown-menu-transition-duration) var(--dropdown-menu-transition-ease);
}
[data-rs-dropdown-menu-item] {
display: flex;
align-items: center;
height: var(--dropdown-menu-item-height);
padding: 0 var(--dropdown-menu-item-padding);
cursor: pointer;
transition: background var(--motion-duration-fast) var(--motion-ease-standard),
color var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-dropdown-menu-item][data-rs-variant="destructive"] {
color: var(--dropdown-menu-item-destructive-fg);
}
[data-rs-dropdown-menu-item][data-rs-variant="destructive"]:hover:not([data-rs-state~="disabled"]) {
background: var(--theme-status-error-bg);
color: var(--dropdown-menu-item-destructive-fg);
}
[data-rs-dropdown-menu-item]:hover:not([data-rs-state~="active"]):not([data-rs-state~="disabled"]) {
background: var(--dropdown-menu-item-hover-bg);
}
[data-rs-dropdown-menu-item][data-rs-state~="focus"],
[data-rs-dropdown-menu-checkbox-item][data-rs-state~="focus"] {
background: var(--dropdown-menu-item-hover-bg);
color: var(--dropdown-menu-item-hover-fg);
outline: none;
}
[data-rs-dropdown-menu-item][data-rs-state~="selected"] {
background: var(--dropdown-menu-item-selected-bg);
}
[data-rs-dropdown-menu-separator] {
height: var(--border-thin);
background: var(--dropdown-menu-separator-color);
margin: var(--dropdown-menu-separator-margin-y) 0;
}
[data-rs-dropdown-menu-checkbox-item] {
display: flex;
align-items: center;
gap: var(--space-sm);
width: 100%;
min-height: var(--dropdown-menu-item-height);
padding: 0 var(--dropdown-menu-item-padding);
cursor: pointer;
background: transparent;
border: none;
text-align: left;
color: inherit;
font: inherit;
justify-content: flex-start;
}
[data-rs-dropdown-menu-label] {
flex: 1;
text-align: left;
}
[data-rs-dropdown-menu-checkbox-item]:hover:not([data-rs-state~="checked"]):not([data-rs-state~="disabled"]) {
background: var(--dropdown-menu-item-hover-bg);
}
[data-rs-dropdown-menu-indicator] {
display: inline-flex;
align-items: center;
justify-content: center;
width: var(--space-md);
height: var(--space-md);
flex-shrink: 0;
border: var(--border-thin) solid var(--theme-surface-border);
border-radius: var(--radius-xs);
background: transparent;
font-size: var(--font-size-xs);
font-weight: bold;
color: transparent;
}
[data-rs-dropdown-menu-checkbox-item][data-rs-state~="checked"] [data-rs-dropdown-menu-indicator] {
background: var(--theme-action-primary-bg);
border-color: var(--theme-action-primary-bg);
color: var(--theme-action-primary-fg);
}
[data-rs-dropdown-menu-checkbox-item][data-rs-state~="checked"] [data-rs-dropdown-menu-indicator]::after {
content: "✓";
}
[data-rs-dropdown-menu-checkbox-item][data-rs-state~="disabled"] {
opacity: var(--opacity-disabled);
pointer-events: none;
}
[data-rs-dropdown-menu][data-rs-state~="open"] [data-rs-dropdown-menu-content] {
opacity: 1;
visibility: visible;
transform: scale(1);
}
[data-rs-dropdown-menu][data-rs-state~="closed"] [data-rs-dropdown-menu-content] {
opacity: 0;
visibility: hidden;
transform: scale(0.95);
}
[data-rs-empty] {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--empty-state-gap);
padding: var(--empty-state-padding);
text-align: center;
}
[data-rs-empty-icon] {
width: var(--empty-state-icon-size);
height: var(--empty-state-icon-size);
color: var(--empty-state-icon-fg);
}
[data-rs-empty-title] {
font-size: var(--empty-state-title-font-size);
font-weight: var(--empty-state-title-font-weight);
color: var(--empty-state-title-fg);
}
[data-rs-empty-description] {
font-size: var(--empty-state-description-font-size);
color: var(--empty-state-description-fg);
}
[data-rs-empty-actions] {
display: flex;
gap: var(--empty-state-actions-gap);
}
[data-rs-empty-table-row] {
}
[data-rs-empty-table-content] {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--empty-table-content-gap);
padding: var(--empty-table-padding);
text-align: center;
}
[data-rs-empty-table-title] {
font-size: var(--empty-table-title-font-size);
font-weight: var(--empty-table-title-font-weight);
color: var(--empty-table-title-fg);
}
[data-rs-empty-table-description] {
font-size: var(--empty-table-description-font-size);
line-height: var(--empty-table-description-line-height);
color: var(--empty-table-description-fg);
}
[data-rs-error-state] {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--error-state-gap);
padding: var(--error-state-padding);
text-align: center;
}
[data-rs-error-state][data-rs-state~="error"] {
color: var(--error-state-title-fg);
}
[data-rs-error-state-icon] {
width: var(--error-state-icon-size);
height: var(--error-state-icon-size);
color: var(--error-state-icon-fg);
}
[data-rs-error-state-title] {
font-size: var(--error-state-title-font-size);
font-weight: var(--error-state-title-font-weight);
color: var(--error-state-title-fg);
}
[data-rs-error-state-description] {
font-size: var(--error-state-description-font-size);
color: var(--error-state-description-fg);
}
[data-rs-error-state-actions] {
display: flex;
gap: var(--error-state-actions-gap);
}
[data-rs-field] {
display: flex;
flex-direction: column;
gap: var(--field-orientation-gap-vertical);
}
[data-rs-field][data-rs-orientation="horizontal"] {
flex-direction: row;
align-items: center;
gap: var(--field-orientation-gap-horizontal);
}
[data-rs-field][data-rs-orientation="vertical"] {
flex-direction: column;
gap: var(--field-orientation-gap-vertical);
}
[data-rs-field-label] {
font-size: var(--field-label-font-size);
font-weight: var(--field-label-font-weight);
color: var(--field-label-fg);
}
[data-rs-field][data-rs-state~="disabled"] [data-rs-field-label] {
color: var(--field-label-fg-disabled);
}
[data-rs-field-description] {
font-size: var(--field-description-font-size);
line-height: var(--field-description-line-height);
color: var(--field-description-fg);
}
[data-rs-field-error] {
font-size: var(--field-error-font-size);
color: var(--field-error-fg);
}
[data-rs-field-error-list] {
display: flex;
flex-direction: column;
gap: var(--field-error-list-gap);
}
[data-rs-field][data-rs-state~="disabled"] {
opacity: var(--field-disabled-opacity);
pointer-events: none;
}
[data-rs-field-separator] {
height: var(--border-thin);
background: var(--field-separator-color);
margin-block: var(--field-separator-margin-y);
}
[data-rs-field-separator-content] {
padding-inline: var(--field-separator-label-padding-x);
color: var(--field-separator-label-fg);
}
[data-rs-field][data-rs-state~="error"] [data-rs-field-label] {
color: var(--field-validation-error-fg);
}
[data-rs-form] {
display: flex;
flex-direction: column;
gap: var(--form-gap);
width: 100%;
}
[data-rs-form-section] {
display: flex;
flex-direction: column;
gap: var(--form-section-gap);
}
[data-rs-form-actions] {
display: flex;
align-items: center;
justify-content: var(--form-actions-justify);
gap: var(--form-actions-gap);
padding-top: var(--form-actions-padding-top);
border-top: var(--form-actions-border-top);
}
[data-rs-form-field] {
display: flex;
flex-direction: column;
gap: var(--form-field-gap);
}
[data-rs-form-label] {
font-size: var(--form-label-font-size);
font-weight: var(--form-label-font-weight);
color: var(--form-label-fg);
}
[data-rs-form-label][data-rs-required="true"]::after {
content: " *";
color: var(--form-label-required-color);
}
[data-rs-form-error] {
font-size: var(--form-error-font-size);
color: var(--form-error-fg);
}
[data-rs-form-hint] {
font-size: var(--form-hint-font-size);
color: var(--form-hint-fg);
}
[data-rs-form-field][data-rs-state~="valid"] [data-rs-form-label] {
color: var(--form-field-valid-color);
}
[data-rs-form-field][data-rs-state~="invalid"] [data-rs-form-label] {
color: var(--form-field-invalid-color);
}
[data-rs-form-field][data-rs-state~="warning"] [data-rs-form-label] {
color: var(--form-field-warning-color);
}
[data-rs-form][data-rs-state~="disabled"],
[data-rs-form-field][data-rs-state~="disabled"] {
opacity: var(--form-disabled-opacity);
pointer-events: none;
}
[data-rs-form][data-rs-state~="submitting"] {
pointer-events: none;
opacity: var(--opacity-hover);
}
[data-rs-form][data-rs-state~="submitting"] [data-rs-form-actions] {
cursor: wait;
}
[data-rs-form][data-rs-state~="loading"] {
pointer-events: none;
opacity: var(--opacity-hover);
}
[data-rs-form][data-rs-state~="error"] [data-rs-form-field] {
border-color: var(--form-error-fg);
}
[data-rs-form-error-summary] {
display: flex;
flex-direction: column;
gap: var(--form-error-summary-gap);
padding-inline: var(--form-error-summary-padding-x);
padding-block: var(--form-error-summary-padding-y);
background: var(--form-error-summary-bg);
border: var(--form-error-summary-border-width) solid var(--form-error-summary-border-color);
border-radius: var(--form-error-summary-radius);
}
[data-rs-form-error-summary-title] {
font-size: var(--form-error-summary-title-font-size);
font-weight: var(--form-error-summary-title-font-weight);
color: var(--form-error-summary-title-fg);
}
[data-rs-form-error-summary-list] {
display: flex;
flex-direction: column;
gap: var(--form-error-summary-list-gap);
}
[data-rs-form-error-summary-item] {
display: flex;
align-items: flex-start;
gap: var(--form-error-summary-item-gap);
font-size: var(--form-error-summary-item-font-size);
color: var(--form-error-summary-item-fg);
}
[data-rs-form-error-summary-item-icon] {
width: var(--form-error-summary-item-icon-size);
height: var(--form-error-summary-item-icon-size);
color: var(--form-error-summary-item-icon-color);
flex-shrink: 0;
}
[data-rs-form-error-summary-item-link] {
color: var(--form-error-summary-item-fg);
text-decoration: none;
}
[data-rs-form-error-summary-item-link][data-rs-state~="hover"] {
text-decoration: underline;
}
[data-rs-form-error-summary][data-rs-state~="error"] {
border-color: var(--form-error-summary-border-color);
background: var(--form-error-summary-bg);
}
[data-rs-hover-card] {
position: relative;
display: inline-flex;
}
[data-rs-hover-card-trigger] {
cursor: pointer;
}
[data-rs-hover-card-content] {
position: absolute;
z-index: var(--hover-card-z-index);
width: var(--hover-card-width);
background: var(--hover-card-bg);
color: var(--hover-card-fg);
border: var(--hover-card-border-width) solid var(--hover-card-border-color);
border-radius: var(--hover-card-radius);
box-shadow: var(--hover-card-shadow);
padding: var(--hover-card-padding);
pointer-events: auto;
opacity: 0;
visibility: hidden;
transform: translateY(4px);
transition:
opacity var(--hover-card-transition-duration) var(--hover-card-transition-ease),
visibility var(--hover-card-transition-duration) var(--hover-card-transition-ease),
transform var(--hover-card-transition-duration) var(--hover-card-transition-ease);
}
[data-rs-hover-card-content][data-rs-state~="open"] {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
[data-rs-hover-card-content][data-rs-side="bottom"],
[data-rs-hover-card-content]:not([data-rs-side]) {
top: calc(100% + var(--space-sm));
bottom: auto;
left: 0;
}
[data-rs-hover-card-content][data-rs-side="top"] {
bottom: calc(100% + var(--space-sm));
top: auto;
left: 0;
transform: none;
}
[data-rs-hover-card-content][data-rs-side="right"] {
left: calc(100% + var(--space-xs));
top: 0;
transform: none;
}
[data-rs-hover-card-content][data-rs-side="left"] {
right: calc(100% + var(--space-xs));
left: auto;
top: 0;
transform: none;
}
[data-rs-icon] {
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--icon-color, currentColor);
vertical-align: var(--icon-vertical-align);
}
[data-rs-icon][data-rs-size="sm"] {
width: var(--icon-size-sm);
height: var(--icon-size-sm);
}
[data-rs-icon][data-rs-size="md"] {
width: var(--icon-size-md);
height: var(--icon-size-md);
}
[data-rs-icon][data-rs-size="lg"] {
width: var(--icon-size-lg);
height: var(--icon-size-lg);
}
[data-rs-icon][data-rs-variant="default"] { color: var(--icon-color); }
[data-rs-icon][data-rs-variant="muted"] { color: var(--icon-color-muted); }
[data-rs-icon][data-rs-variant="primary"] { color: var(--icon-color-primary); }
[data-rs-icon][data-rs-variant="destructive"] { color: var(--icon-color-destructive); }
[data-rs-icon][data-rs-variant="success"] { color: var(--icon-color-success); }
[data-rs-icon][data-rs-variant="warning"] { color: var(--icon-color-warning); }
[data-rs-icon-inner] {
display: flex;
width: 100%;
height: 100%;
}
[data-rs-icon-inner] svg {
width: 100%;
height: 100%;
stroke-width: var(--icon-stroke-width);
}
@keyframes icon-spin {
to { transform: rotate(360deg); }
}
[data-rs-icon][data-rs-spin] [data-rs-icon-inner] {
animation: icon-spin var(--motion-duration-slow) linear infinite;
}
[data-rs-icon][data-rs-state~="disabled"] {
color: var(--icon-color-disabled);
pointer-events: none;
}
[data-rs-icon-button] {
display: inline-flex;
align-items: center;
justify-content: center;
border: var(--icon-button-border, none);
border-radius: var(--icon-button-radius);
cursor: pointer;
transition:
background var(--motion-duration-fast) var(--motion-ease-standard),
border-color var(--motion-duration-fast) var(--motion-ease-standard),
box-shadow var(--motion-duration-fast) var(--motion-ease-standard),
opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-icon-button][data-rs-size="xs"] {
width: var(--icon-button-size-xs);
height: var(--icon-button-size-xs);
padding: var(--icon-button-padding-xs);
font-size: var(--font-size-xs);
}
[data-rs-icon-button][data-rs-size="sm"] {
width: var(--icon-button-size-sm);
height: var(--icon-button-size-sm);
padding: var(--icon-button-padding-sm);
font-size: var(--font-size-sm);
}
[data-rs-icon-button][data-rs-size="md"] {
width: var(--icon-button-size-md);
height: var(--icon-button-size-md);
padding: var(--icon-button-padding-md);
font-size: var(--font-size-md);
}
[data-rs-icon-button][data-rs-size="lg"] {
width: var(--icon-button-size-lg);
height: var(--icon-button-size-lg);
padding: var(--icon-button-padding-lg);
font-size: var(--font-size-lg);
}
[data-rs-icon-button][data-rs-size="xl"] {
width: var(--icon-button-size-xl);
height: var(--icon-button-size-xl);
padding: var(--icon-button-padding-xl);
font-size: var(--font-size-xl);
}
[data-rs-icon-button][data-rs-variant="default"] {
background: var(--icon-button-bg);
color: var(--icon-button-fg);
border: var(--border-thin) solid var(--icon-button-outline-border);
}
[data-rs-icon-button][data-rs-variant="default"][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
background: var(--icon-button-bg-hover);
}
[data-rs-icon-button][data-rs-variant="default"][data-rs-state~="active"]:not([data-rs-state~="disabled"]) {
background: var(--icon-button-bg-active);
}
[data-rs-icon-button][data-rs-variant="ghost"] {
background: var(--icon-button-bg);
color: var(--icon-button-fg);
opacity: var(--icon-button-ghost-opacity);
}
[data-rs-icon-button][data-rs-variant="ghost"][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
background: var(--icon-button-ghost-bg-hover);
}
[data-rs-icon-button][data-rs-variant="outline"] {
background: var(--icon-button-bg);
color: var(--icon-button-fg);
border: var(--border-thin) solid var(--icon-button-outline-border);
}
[data-rs-icon-button][data-rs-variant="outline"][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
background: var(--icon-button-bg-hover);
}
[data-rs-icon-button][data-rs-variant="solid"] {
background: var(--icon-button-solid-bg);
color: var(--icon-button-solid-fg);
}
[data-rs-icon-button][data-rs-variant="solid"][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
opacity: var(--opacity-hover);
}
[data-rs-icon-button][data-rs-variant="subtle"] {
background: var(--icon-button-subtle-bg);
color: var(--icon-button-subtle-fg);
border: var(--border-thin) solid var(--icon-button-bg);
}
[data-rs-icon-button][data-rs-variant="subtle"][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
background: var(--icon-button-bg-hover);
}
[data-rs-icon-button][data-rs-variant="destructive"] {
background: var(--icon-button-destructive-bg);
color: var(--icon-button-destructive-fg);
}
[data-rs-icon-button][data-rs-variant="destructive"][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
opacity: var(--opacity-hover);
}
[data-rs-icon-button][data-rs-state~="on"] {
background: var(--icon-button-pressed-bg);
color: var(--icon-button-pressed-fg);
}
[data-rs-icon-button][data-rs-state~="active"]:not([data-rs-state~="disabled"]) {
opacity: var(--opacity-active);
transform: var(--button-active-transform);
}
[data-rs-icon-button][data-rs-state~="focus"] {
outline: none;
box-shadow: var(--focus-ring-shadow);
}
[data-rs-icon-button][data-rs-state~="disabled"] {
cursor: not-allowed;
color: var(--icon-button-fg-disabled);
opacity: var(--opacity-disabled);
pointer-events: none;
}
[data-rs-icon-button][data-rs-state~="loading"] {
cursor: wait;
opacity: var(--icon-button-loading-opacity);
pointer-events: none;
}
[data-rs-icon-button][data-rs-state~="loading"] [data-rs-icon-button-inner] {
animation: rs-spin var(--motion-duration-slow) var(--motion-ease-linear) infinite;
display: inline-block;
}
@keyframes rs-spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
[data-rs-inline-meta] {
display: inline-flex;
align-items: baseline;
gap: var(--inline-meta-gap);
font-size: var(--inline-meta-font-size);
line-height: var(--line-height-normal);
}
[data-rs-inline-meta-label] {
color: var(--inline-meta-label-color);
font-weight: var(--inline-meta-label-font-weight);
}
[data-rs-inline-meta-value] {
color: var(--inline-meta-value-color);
font-weight: var(--inline-meta-value-font-weight);
}
[data-rs-inline-notice] {
display: flex;
align-items: flex-start;
gap: var(--inline-notice-gap);
padding-inline: var(--inline-notice-padding-x);
padding-block: var(--inline-notice-padding-y);
border-radius: var(--inline-notice-radius);
border: var(--inline-notice-border-width) solid var(--inline-notice-border-color);
color: var(--inline-notice-fg);
}
[data-rs-inline-notice][data-rs-variant="default"] {
background: var(--inline-notice-bg-default);
}
[data-rs-inline-notice][data-rs-variant="info"] {
background: var(--inline-notice-bg-info);
}
[data-rs-inline-notice][data-rs-variant="success"] {
background: var(--inline-notice-bg-success);
}
[data-rs-inline-notice][data-rs-variant="warning"] {
background: var(--inline-notice-bg-warning);
}
[data-rs-inline-notice][data-rs-variant="error"] {
background: var(--inline-notice-bg-error);
}
[data-rs-inline-notice-icon] {
width: var(--inline-notice-icon-size);
height: var(--inline-notice-icon-size);
color: var(--inline-notice-fg);
flex-shrink: 0;
}
[data-rs-inline-notice-content] {
flex: 1;
font-size: var(--inline-notice-font-size);
color: var(--inline-notice-fg);
}
[data-rs-input] {
display: inline-flex;
align-items: center;
width: 100%;
height: var(--input-md-height);
padding: var(--input-padding-y) var(--input-padding-x);
background: var(--input-bg);
color: var(--input-fg);
border: var(--input-border-width) solid var(--input-border-color);
border-radius: var(--input-radius);
font-family: var(--input-font-family);
font-size: var(--input-font-size);
font-weight: var(--input-font-weight);
line-height: var(--input-line-height);
transition: border-color var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-input]::placeholder {
color: var(--input-placeholder);
}
[data-rs-input][data-rs-size="sm"] {
height: var(--input-sm-height);
font-size: var(--input-sm-font-size);
}
[data-rs-input][data-rs-size="md"] {
height: var(--input-md-height);
}
[data-rs-input][data-rs-size="lg"] {
height: var(--input-lg-height);
font-size: var(--input-lg-font-size);
}
[data-rs-input][data-rs-variant="error"] {
border-color: var(--input-error-border);
}
[data-rs-input][data-rs-variant="success"] {
border-color: var(--input-success-border);
}
[data-rs-input][data-rs-variant="warning"] {
border-color: var(--input-warning-border);
}
[data-rs-input][data-rs-state~="focus"] {
outline: var(--input-focus-ring-width) solid var(--input-focus-ring-color);
outline-offset: var(--input-focus-ring-offset);
box-shadow: var(--input-focus-ring-shadow);
}
[data-rs-input-group] [data-rs-input][data-rs-state~="focus"] {
outline: none;
box-shadow: none;
}
[data-rs-input][data-rs-state~="disabled"] {
opacity: var(--input-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-input-group] {
display: flex;
align-items: stretch;
gap: var(--input-group-gap);
background: var(--input-bg);
border: var(--input-border-width) solid var(--input-border-color);
border-radius: var(--input-radius);
flex-wrap: nowrap;
overflow: hidden;
transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-input-group][data-rs-state~="merge-radius"] {
border-radius: var(--input-group-radius-merge);
}
[data-rs-input-group][data-rs-state~="merge-radius"] > *:not(:last-child) {
border-inline-end: var(--input-border-width) solid var(--input-group-addon-border);
}
[data-rs-input-group][data-rs-state~="merge-radius"] > *:first-child {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
[data-rs-input-group][data-rs-state~="merge-radius"] > *:last-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
[data-rs-input-group][data-rs-state~="merge-radius"] > *:not(:first-child):not(:last-child) {
border-radius: 0;
}
[data-rs-input-group-addon] {
display: inline-flex;
align-items: center;
padding: var(--input-padding-y) var(--input-padding-x);
background: transparent;
color: var(--input-group-addon-fg);
font-size: var(--input-font-size);
white-space: nowrap;
border-inline-end: var(--input-border-width) solid var(--input-group-addon-border);
flex-shrink: 0;
}
[data-rs-input-group-addon][data-rs-state~="last"] {
border-inline-end: none;
border-inline-start: var(--input-border-width) solid var(--input-group-addon-border);
}
[data-rs-input-group] [data-rs-input] {
flex: 1;
border: none;
background: transparent;
outline: none;
box-shadow: none;
height: var(--input-md-height);
min-width: 0;
color: var(--input-fg);
font-size: var(--input-font-size);
padding: var(--input-padding-y) var(--input-padding-x);
}
[data-rs-input-group] [data-rs-input]::placeholder {
color: var(--input-placeholder);
opacity: 1;
}
[data-rs-input-group][data-rs-state~="focus-within"] {
border-color: var(--input-focus-ring-color);
box-shadow: var(--input-focus-ring-shadow);
}
[data-rs-input-group][data-rs-state~="error"] {
border-color: var(--input-error-border);
}
[data-rs-input-group][data-rs-state~="success"] {
border-color: var(--input-success-border);
}
[data-rs-input-group][data-rs-state~="warning"] {
border-color: var(--input-warning-border);
}
[data-rs-input-group][data-rs-state~="disabled"] {
opacity: var(--input-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-input-group] [data-rs-input] {
background: transparent;
border: none;
box-shadow: none;
flex: 1;
min-width: 0;
}
[data-rs-input-group] [data-rs-input][data-rs-state~="focus"] {
box-shadow: none;
outline: none;
}
[data-rs-input-group-prefix],
[data-rs-input-group-suffix] {
display: flex;
align-items: center;
padding: var(--input-padding-x);
background: var(--input-group-addon-bg, var(--theme-surface-muted));
color: var(--input-group-addon-fg, var(--theme-surface-fg-muted));
font-size: var(--input-font-size);
white-space: nowrap;
flex-shrink: 0;
}
[data-rs-input-group-prefix] {
border-right: var(--input-border-width, 1px) solid var(--input-border-color);
}
[data-rs-input-group-suffix] {
border-left: var(--input-border-width, 1px) solid var(--input-border-color);
}
[data-rs-input-otp] {
position: absolute;
inset: 0;
opacity: 0;
pointer-events: none;
}
[data-rs-input-otp-container] {
position: relative;
display: inline-flex;
align-items: center;
gap: var(--space-xs);
}
[data-rs-input-otp-container][data-rs-state~="disabled"] {
opacity: var(--input-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-input-otp-container][data-rs-state~="disabled"] [data-rs-input-otp-slot] {
background: var(--input-otp-slot-disabled-bg);
color: var(--input-otp-slot-disabled-fg);
}
[data-rs-input-otp-slots] {
display: flex;
gap: var(--space-xs);
}
[data-rs-input-otp-slot] {
width: var(--input-otp-slot-size);
height: var(--input-otp-slot-size);
border-radius: var(--input-otp-slot-radius);
display: flex;
align-items: center;
justify-content: center;
background: var(--input-otp-slot-bg);
color: var(--input-otp-slot-fg);
border: var(--input-otp-slot-border);
font-family: var(--input-otp-font-family);
font-size: var(--input-otp-font-size);
font-weight: var(--input-otp-font-weight);
transition: background var(--motion-duration-fast) var(--motion-ease-standard),
border-color var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-input-otp-slot][data-rs-state~="active"] {
background: var(--input-otp-slot-active-bg);
border-color: var(--input-otp-slot-active-border);
box-shadow: var(--input-focus-ring-shadow);
}
[data-rs-kbd] {
display: inline-flex;
align-items: center;
justify-content: center;
padding: var(--kbd-padding-y) var(--kbd-padding-x);
font-family: var(--kbd-font-family);
font-size: var(--kbd-font-size);
font-weight: var(--kbd-font-weight);
line-height: var(--kbd-line-height);
background: var(--kbd-bg);
color: var(--kbd-fg);
border: var(--kbd-border-width) solid var(--kbd-border-color);
border-radius: var(--kbd-radius);
box-shadow: var(--kbd-shadow);
}
[data-rs-kbd][data-rs-size="sm"] {
font-size: var(--kbd-size-sm-font);
padding: var(--kbd-size-sm-padding-y) var(--kbd-size-sm-padding-x);
}
[data-rs-kbd][data-rs-variant="muted"] {
background: var(--kbd-muted-bg);
color: var(--kbd-muted-fg);
}
[data-rs-kbd-group] {
display: inline-flex;
align-items: center;
gap: var(--kbd-gap);
}
[data-rs-kbd-separator] {
color: var(--kbd-separator-color);
user-select: none;
}
[data-rs-label] {
font-size: var(--label-font-size);
font-weight: var(--label-font-weight);
line-height: var(--label-line-height);
color: var(--label-fg);
margin-bottom: var(--label-margin-bottom);
}
[data-rs-label][data-rs-state~="muted"] {
color: var(--label-fg-muted);
}
[data-rs-label][data-rs-state~="disabled"] {
color: var(--label-fg-disabled);
}
[data-rs-label][data-rs-required]::after {
content: " *";
color: var(--label-fg);
}
[data-rs-link] {
color: var(--link-fg);
font-weight: var(--link-font-weight);
text-decoration: var(--link-text-decoration);
cursor: pointer;
transition: color var(--link-transition-duration) var(--motion-ease-standard),
text-decoration var(--link-transition-duration) var(--motion-ease-standard);
}
[data-rs-link][data-rs-state~="hover"] {
color: var(--link-fg-hover);
text-decoration: var(--link-text-decoration-hover);
}
[data-rs-link][data-rs-state~="active"] {
color: var(--link-fg-active);
}
[data-rs-link][data-rs-state~="disabled"] {
opacity: var(--link-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-link][data-rs-variant="default"] {
text-decoration: var(--link-text-decoration);
}
[data-rs-link][data-rs-variant="default"][data-rs-state~="hover"] {
text-decoration: var(--link-text-decoration-hover);
}
[data-rs-link][data-rs-variant="muted"] {
color: var(--link-muted-fg);
}
[data-rs-link][data-rs-variant="muted"][data-rs-state~="hover"] {
color: var(--link-fg-hover);
}
[data-rs-link][data-rs-variant="underline"] {
text-decoration: underline;
}
[data-rs-link-group] {
display: flex;
flex-direction: column;
gap: var(--link-group-gap);
}
[data-rs-link-group-items] {
display: flex;
flex-direction: column;
gap: var(--link-group-gap);
}
[data-rs-link-group-items][data-rs-direction="horizontal"] {
flex-direction: row;
gap: var(--link-group-horizontal-gap);
align-items: center;
}
[data-rs-link-group-label] {
font-size: var(--link-group-label-font-size);
font-weight: var(--link-group-label-font-weight);
color: var(--link-group-label-color);
margin-bottom: var(--link-group-label-margin-bottom);
text-transform: uppercase;
letter-spacing: var(--link-group-label-letter-spacing);
pointer-events: none;
}
[data-rs-link-group] [data-rs-nav-item] {
padding-inline: var(--link-group-item-padding-x);
padding-block: var(--link-group-item-padding-y);
border-radius: var(--link-group-item-radius);
}
[data-rs-link-group] [data-rs-nav-item]:hover:not([data-rs-state~="disabled"]):not([data-rs-state~="active"]) {
background: var(--link-group-item-hover-bg);
color: var(--link-group-item-hover-fg);
}
[data-rs-link-group] [data-rs-nav-item][data-rs-state~="active"] {
color: var(--link-group-item-active-fg);
font-weight: var(--link-group-item-active-weight);
border-left: var(--link-group-item-border-width) solid var(--link-group-item-active-border);
padding-left: calc(var(--link-group-item-padding-x) - var(--link-group-item-border-width));
}
[data-rs-link-group] [data-rs-nav-item]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-link-group] [data-rs-nav-item][data-rs-state~="disabled"] {
opacity: var(--opacity-disabled);
pointer-events: none;
cursor: not-allowed;
}
[data-rs-list] {
display: flex;
flex-direction: column;
list-style: none;
margin: 0;
padding: 0;
}
[data-rs-list-item] {
display: block;
list-style: none;
transition: background var(--motion-duration-fast) var(--motion-ease-standard);
border-radius: var(--list-item-radius);
}
[data-rs-list-item]:not([data-rs-disabled]):not([data-rs-state~="selected"]):hover {
background: var(--list-item-bg-hover);
cursor: pointer;
}
[data-rs-list-item][data-rs-state~="selected"] {
background: var(--list-item-bg-selected);
}
[data-rs-list-item][data-rs-disabled] {
cursor: not-allowed;
opacity: var(--opacity-disabled);
pointer-events: none;
}
[data-rs-list-item][data-rs-state~="focus"] {
outline: none;
box-shadow: var(--list-item-focus-ring);
}
[data-rs-list-item-content] {
display: flex;
flex-direction: column;
padding: var(--list-item-padding);
border-bottom: var(--list-item-border);
}
[data-rs-list-item-title] {
font-size: var(--font-size-sm);
font-weight: var(--font-weight-semibold);
color: var(--theme-surface-fg);
margin-bottom: var(--space-2xs);
}
[data-rs-list-item-description] {
font-size: var(--font-size-xs);
color: var(--theme-surface-fg-muted);
}
[data-rs-overlay-container] {
position: relative;
isolation: isolate;
}
[data-rs-overlay-content] {
width: 100%;
transition: opacity var(--loading-overlay-transition-duration) var(--loading-overlay-transition-ease);
}
[data-rs-loading-overlay] {
position: absolute;
inset: 0;
z-index: var(--loading-overlay-z-index);
opacity: 0;
pointer-events: none;
transition: opacity var(--loading-overlay-transition-duration) var(--loading-overlay-transition-ease);
}
[data-rs-overlay-container][data-rs-state~="idle"] [data-rs-loading-overlay] {
display: none;
}
[data-rs-overlay-container][data-rs-state~="loading"] [data-rs-loading-overlay] {
display: block;
opacity: 1;
pointer-events: all;
}
[data-rs-overlay-container][data-rs-state~="loading"] [data-rs-overlay-content] {
opacity: 0.5;
pointer-events: none;
user-select: none;
}
[data-rs-overlay-container][data-rs-overlay-mode="blocking"] [data-rs-loading-overlay] {
background: var(--loading-overlay-bg);
}
[data-rs-overlay-container][data-rs-overlay-mode="subtle"] [data-rs-loading-overlay] {
background: transparent;
pointer-events: none;
}
[data-rs-overlay-container][data-rs-overlay-mode="skeleton"] [data-rs-loading-overlay] {
background: transparent;
}
[data-rs-loading-overlay-spinner] {
position: absolute;
top: 50%;
right: var(--space-md);
transform: translateY(-50%);
display: flex;
align-items: center;
justify-content: center;
color: var(--theme-surface-fg);
}
[data-rs-loading-overlay-spinner] svg {
width: var(--loading-overlay-spinner-size);
height: var(--loading-overlay-spinner-size);
display: block;
transform-origin: center;
transform-box: fill-box;
animation: overlay-spin var(--loading-overlay-spin-duration) linear infinite;
}
@keyframes overlay-spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
[data-rs-logo] {
display: inline-flex;
align-items: center;
gap: var(--logo-gap);
text-decoration: none;
flex-shrink: 0;
margin-right: var(--space-xl);
}
[data-rs-logo-icon] {
width: var(--logo-icon-size-md);
height: var(--logo-icon-size-md);
flex-shrink: 0;
display: block;
}
[data-rs-logo-wordmark] {
font-size: var(--logo-wordmark-font-size-md);
font-weight: var(--logo-wordmark-font-weight);
font-family: var(--font-family-sans);
color: var(--logo-wordmark-color);
letter-spacing: var(--logo-letter-spacing);
line-height: var(--line-height-tight);
}
[data-rs-logo][data-rs-variant="brand"] [data-rs-logo-wordmark] {
color: var(--logo-wordmark-color);
}
[data-rs-logo][data-rs-variant="neutral"] [data-rs-logo-wordmark] {
color: var(--theme-surface-fg);
}
[data-rs-logo][data-rs-size="sm"] [data-rs-logo-icon] {
width: var(--logo-icon-size-sm);
height: var(--logo-icon-size-sm);
}
[data-rs-logo][data-rs-size="sm"] [data-rs-logo-wordmark] {
font-size: var(--logo-wordmark-font-size-sm);
}
[data-rs-logo][data-rs-size="lg"] [data-rs-logo-icon] {
width: var(--logo-icon-size-lg);
height: var(--logo-icon-size-lg);
}
[data-rs-logo][data-rs-size="lg"] [data-rs-logo-wordmark] {
font-size: var(--logo-wordmark-font-size-lg);
}
[data-rs-markdown] {
width: 100%;
font-family: var(--markdown-font-family);
font-size: var(--markdown-font-size);
line-height: var(--markdown-line-height);
color: var(--markdown-fg);
}
[data-rs-md-toolbar],
[data-rs-markdown-toolbar] {
display: flex;
align-items: center;
gap: var(--markdown-toolbar-gap);
padding: var(--markdown-toolbar-padding-y) var(--markdown-toolbar-padding-x);
border-bottom: var(--border-thin) solid var(--markdown-toolbar-border-color);
margin-bottom: var(--space-md);
}
[data-rs-md-toolbar-item],
[data-rs-markdown-toolbar-item],
[data-rs-toolbar-toggle] {
display: inline-flex;
align-items: center;
gap: var(--space-xs);
padding: var(--markdown-toolbar-item-padding-y) var(--markdown-toolbar-item-padding-x);
border-radius: var(--markdown-toolbar-item-radius);
border: var(--border-thin) solid var(--markdown-toolbar-item-border-color);
background: transparent;
color: var(--markdown-toolbar-item-fg);
font-size: var(--font-size-sm);
cursor: pointer;
transition: all var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-md-toolbar-item][data-rs-state~="hover"],
[data-rs-markdown-toolbar-item][data-rs-state~="hover"],
[data-rs-toolbar-toggle][data-rs-state~="hover"] {
background: var(--markdown-toolbar-item-bg-hover);
color: var(--markdown-toolbar-item-fg-hover);
}
[data-rs-toolbar-toggle][data-rs-state~="inactive"] {
opacity: var(--opacity-disabled);
}
[data-rs-md-toc-sidebar] {
width: var(--markdown-toc-width);
flex-shrink: 0;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
scrollbar-width: thin;
scrollbar-color: var(--theme-surface-border-muted) transparent;
align-self: flex-start;
position: sticky;
top: 0;
}
[data-rs-md-toc-sidebar]::-webkit-scrollbar { width: var(--space-sm); }
[data-rs-md-toc-sidebar]::-webkit-scrollbar-track { background: transparent; }
[data-rs-md-toc-sidebar]::-webkit-scrollbar-thumb {
background: var(--theme-surface-border-muted);
border-radius: var(--radius-full);
}
[data-rs-markdown-content] {
min-width: 0;
max-width: var(--markdown-max-width);
font-family: var(--markdown-font-family);
font-size: var(--markdown-font-size);
line-height: var(--markdown-line-height);
color: var(--markdown-fg);
}
[data-rs-md-heading][data-rs-md-level="1"] {
font-size: var(--markdown-h1-font-size);
font-weight: var(--markdown-h1-font-weight);
line-height: var(--markdown-h1-line-height);
color: var(--theme-action-primary-bg);
margin-top: var(--markdown-h1-margin-top);
margin-bottom: var(--space-lg);
}
[data-rs-md-heading][data-rs-md-level="2"] {
font-size: var(--markdown-h2-font-size);
font-weight: var(--markdown-h2-font-weight);
line-height: var(--markdown-h2-line-height);
color: var(--theme-action-primary-bg);
margin-top: var(--markdown-h2-margin-top);
margin-bottom: var(--space-md);
padding-top: var(--space-md);
border-top: var(--border-thin) solid var(--markdown-h2-border-color);
}
[data-rs-md-heading][data-rs-md-level="3"] {
font-size: var(--markdown-h3-font-size);
font-weight: var(--markdown-h3-font-weight);
color: var(--theme-action-primary-bg);
margin-top: var(--markdown-h3-margin-top);
margin-bottom: var(--markdown-h3-margin-bottom);
}
[data-rs-md-heading][data-rs-md-level="4"] {
font-size: var(--markdown-h4-font-size);
font-weight: var(--markdown-h4-font-weight);
color: var(--theme-surface-fg-muted);
text-transform: uppercase;
letter-spacing: var(--link-group-label-letter-spacing);
margin-top: var(--markdown-h4-margin-top);
margin-bottom: var(--markdown-h4-margin-bottom);
}
[data-rs-md-heading][data-rs-md-level="5"],
[data-rs-md-heading][data-rs-md-level="6"] {
font-size: var(--markdown-font-size);
font-weight: var(--font-weight-semibold);
color: var(--markdown-heading-fg);
margin-top: var(--space-lg);
margin-bottom: var(--space-xs);
}
[data-rs-md-p] {
color: var(--markdown-fg);
margin-bottom: var(--markdown-p-margin-bottom);
}
[data-rs-md-ul],
[data-rs-md-ol] {
padding-left: var(--markdown-list-padding-left);
margin-bottom: var(--markdown-list-margin-bottom);
}
[data-rs-md-li] { margin-bottom: var(--markdown-li-margin-bottom); }
[data-rs-md-ul] [data-rs-md-li] { list-style-type: disc; }
[data-rs-md-ol] [data-rs-md-li] { list-style-type: decimal; }
[data-rs-md-li]::marker { color: var(--theme-action-primary-bg); }
[data-rs-md-a] {
color: var(--markdown-link-fg);
text-decoration: none;
text-underline-offset: var(--space-2xs);
transition: all var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-md-a][data-rs-state~="hover"] {
text-decoration: underline;
opacity: var(--opacity-hover);
}
[data-rs-md-blockquote] {
border-left: var(--markdown-blockquote-border-width) solid var(--markdown-blockquote-border);
padding-left: var(--markdown-blockquote-padding-left);
color: var(--markdown-blockquote-fg);
font-style: italic;
margin-block: var(--markdown-blockquote-margin-y);
}
[data-rs-md-inline-code] {
font-family: var(--font-family-mono);
font-size: var(--markdown-inline-code-font-size);
background: var(--markdown-inline-code-bg);
color: var(--markdown-inline-code-fg);
padding: var(--markdown-inline-code-padding-y) var(--markdown-inline-code-padding-x);
border-radius: var(--markdown-inline-code-radius);
}
[data-rs-code-block] {
margin-top: var(--space-md);
margin-bottom: var(--markdown-code-block-margin-bottom);
}
[data-rs-code-block] code {
all: unset;
}
[data-rs-code-block][data-rs-state~="hover"] {
border-color: var(--theme-surface-border);
background: var(--theme-surface-muted);
}
[data-rs-md-hr] {
border: none;
border-top: var(--border-thin) solid var(--markdown-hr-color);
margin-block: var(--space-lg);
}
[data-rs-md-img] {
max-width: 100%;
height: auto;
border-radius: var(--radius-md);
}
[data-rs-md-strong] { font-weight: var(--font-weight-bold); }
[data-rs-md-em] { font-style: italic; }
[data-rs-md-del] { text-decoration: line-through; }
[data-rs-md-table] {
width: 100%;
border-collapse: collapse;
font-size: var(--markdown-table-font-size);
margin-top: var(--space-md);
margin-bottom: var(--markdown-table-margin-bottom);
border: var(--border-thin) solid var(--markdown-table-border-color);
border-radius: var(--radius-sm);
overflow: hidden;
}
[data-rs-md-thead] {
background: var(--markdown-table-header-bg);
}
[data-rs-md-thead] [data-rs-md-td],
[data-rs-md-thead] [data-rs-md-th] {
padding: var(--markdown-table-cell-padding-y) var(--markdown-table-cell-padding-x);
text-align: left;
font-size: var(--markdown-table-header-font-size);
font-weight: var(--markdown-table-header-font-weight);
color: var(--theme-action-primary-bg);
border-bottom: var(--border-thin) solid var(--markdown-table-border-color);
}
[data-rs-md-td],
[data-rs-md-th] {
padding: var(--markdown-table-cell-padding-y) var(--markdown-table-cell-padding-x);
border-bottom: var(--border-thin) solid var(--markdown-table-border-color);
color: var(--markdown-fg);
}
html { scroll-behavior: smooth; }
[data-rs-md-ul],
[data-rs-md-ol] { padding-left: var(--markdown-list-padding-left); margin-bottom: var(--markdown-list-margin-bottom); }
[data-rs-md-li] { margin-bottom: var(--markdown-li-margin-bottom); }
[data-rs-md-ul] [data-rs-md-li] { list-style-type: disc; }
[data-rs-md-ol] [data-rs-md-li] { list-style-type: decimal; }
[data-rs-md-li]::marker { color: var(--theme-action-primary-bg); }
[data-rs-md-a] {
color: var(--markdown-link-fg);
text-decoration: none;
text-underline-offset: var(--space-2xs);
transition: all var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-md-a][data-rs-state~="hover"] {
text-decoration: underline;
opacity: var(--opacity-hover);
}
[data-rs-md-blockquote] {
border-left: var(--markdown-blockquote-border-width) solid var(--markdown-blockquote-border);
padding-left: var(--markdown-blockquote-padding-left);
color: var(--markdown-blockquote-fg);
font-style: italic;
margin-block: var(--markdown-blockquote-margin-y);
}
[data-rs-md-hr] {
border: none;
border-top: var(--border-thin) solid var(--markdown-hr-color);
}
[data-rs-md-img] {
max-width: 100%;
height: auto;
border-radius: var(--radius-md);
}
[data-rs-md-strong] { font-weight: var(--font-weight-bold); }
[data-rs-md-em] { font-style: italic; }
[data-rs-md-del] { text-decoration: line-through; }
[data-rs-md-heading][data-rs-md-level="1"] {
font-size: var(--markdown-h1-font-size);
font-weight: var(--markdown-h1-font-weight);
line-height: var(--markdown-h1-line-height);
color: var(--theme-action-primary-bg);
margin-top: var(--markdown-h1-margin-top);
margin-bottom: var(--space-lg);
}
[data-rs-md-heading][data-rs-md-level="2"] {
font-size: var(--markdown-h2-font-size);
font-weight: var(--markdown-h2-font-weight);
line-height: var(--markdown-h2-line-height);
color: var(--theme-action-primary-bg);
margin-top: var(--markdown-h2-margin-top);
margin-bottom: var(--space-md);
padding-top: var(--space-md);
border-top: var(--border-thin) solid var(--markdown-h2-border-color);
}
[data-rs-md-heading][data-rs-md-level="3"] {
font-size: var(--markdown-h3-font-size);
font-weight: var(--markdown-h3-font-weight);
color: var(--theme-action-primary-bg);
margin-top: var(--markdown-h3-margin-top);
margin-bottom: var(--markdown-h3-margin-bottom);
}
[data-rs-md-heading][data-rs-md-level="4"] {
font-size: var(--markdown-h4-font-size);
font-weight: var(--markdown-h4-font-weight);
color: var(--theme-surface-fg-muted);
text-transform: uppercase;
letter-spacing: var(--link-group-label-letter-spacing);
margin-top: var(--markdown-h4-margin-top);
margin-bottom: var(--markdown-h4-margin-bottom);
}
[data-rs-md-heading][data-rs-md-level="5"],
[data-rs-md-heading][data-rs-md-level="6"] {
font-size: var(--markdown-font-size);
font-weight: var(--font-weight-semibold);
color: var(--markdown-heading-fg);
margin-top: var(--space-lg);
margin-bottom: var(--space-xs);
}
[data-rs-menu] {
background: var(--menu-bg);
padding: var(--menu-padding);
display: flex;
flex-direction: column;
gap: var(--menu-gap);
}
[data-rs-menu-item] {
display: flex;
align-items: center;
width: 100%;
height: var(--menu-item-height);
padding: var(--menu-item-padding);
border-radius: var(--menu-item-radius);
color: var(--menu-item-fg);
font-size: var(--menu-item-font-size);
cursor: pointer;
background: transparent;
border: none;
text-align: left;
will-change: background;
transition:
background var(--menu-item-transition-duration) var(--menu-item-transition-ease),
color var(--menu-item-transition-duration) var(--menu-item-transition-ease);
}
[data-rs-menu-item][data-rs-state~="hover"] {
background: var(--menu-item-hover-bg);
}
[data-rs-menu-item][data-rs-state~="active"] {
background: var(--menu-item-hover-bg);
}
[data-rs-menu-item][data-rs-state~="selected"] {
background: var(--menu-item-active-bg);
color: var(--menu-item-active-fg);
}
[data-rs-menu-item]:focus-visible { outline: none; }
[data-rs-menu-item][data-rs-state~='focused']:focus-visible { outline: var(--focus-ring-width) solid var(--theme-action-focus-ring); outline-offset: var(--focus-ring-offset); }
[data-rs-menu-item][data-rs-state~="focused"] {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-menu-item]:active {
transform: scale(0.98);
}
[data-rs-menu-item][data-rs-disabled="true"] {
opacity: var(--opacity-disabled);
pointer-events: none;
cursor: not-allowed;
}
[data-rs-menu-group] {
display: flex;
flex-direction: column;
gap: var(--menu-gap);
}
[data-rs-menu-label] {
font-size: var(--font-size-sm);
font-weight: var(--font-weight-semibold);
color: var(--menu-item-fg);
opacity: 0.7;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: var(--space-xs) var(--space-sm);
}
[data-rs-menu-separator] {
height: var(--border-thin);
background: var(--theme-surface-border);
margin: var(--menu-separator-margin);
}
[data-rs-menubar] {
display: flex;
gap: var(--menubar-gap);
padding: var(--menubar-padding);
background: var(--menubar-bg);
border: var(--menubar-border-width) solid var(--menubar-border-color);
position: relative;
}
[data-rs-menubar-menu] {
position: relative;
}
[data-rs-menubar-trigger] {
display: flex;
align-items: center;
padding: var(--menubar-trigger-padding);
border-radius: var(--menubar-trigger-radius);
color: var(--menubar-trigger-fg);
cursor: pointer;
background: transparent;
border: none;
}
[data-rs-menubar-trigger]:hover:not([data-rs-state~="disabled"]):not([aria-expanded="true"]) {
background: var(--menubar-trigger-hover-bg);
}
[data-rs-menubar-menu][data-rs-state~="open"] [data-rs-menubar-trigger] {
background: var(--menubar-trigger-expanded-bg);
}
[data-rs-menubar-trigger][data-rs-state~="active"] {
background: var(--menubar-trigger-expanded-bg);
color: var(--menubar-trigger-expanded-fg);
}
[data-rs-menubar-content] {
background: var(--menubar-content-bg);
padding-block: var(--menubar-content-padding-y);
border-radius: var(--menubar-content-radius);
box-shadow: var(--menubar-content-shadow);
min-width: var(--menubar-content-min-width);
z-index: var(--layer-overlay);
}
[data-rs-menubar-portal] [data-rs-menubar-content] {
display: flex;
flex-direction: column;
}
[data-rs-menubar-subitem],
[data-rs-menubar-item] {
display: flex;
align-items: center;
width: 100%;
height: var(--menubar-subitem-height);
padding: var(--menubar-subitem-padding);
border-radius: var(--menubar-subitem-radius);
color: var(--menubar-subitem-fg);
cursor: pointer;
background: transparent;
border: none;
text-align: left;
transition: background var(--menubar-transition-duration) var(--menubar-transition-ease);
}
[data-rs-menubar-subitem]:hover:not([data-rs-state~="active"]):not(:focus-visible),
[data-rs-menubar-item]:hover:not([data-rs-state~="active"]):not(:focus-visible) {
background: var(--menubar-subitem-bg-hover);
}
[data-rs-menubar-subitem]:focus-visible,
[data-rs-menubar-item]:focus-visible {
outline: 1px solid var(--theme-action-focus-ring);
outline-offset: -2px;
background: var(--menubar-subitem-bg-hover);
}
[data-rs-menubar-trigger]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-menubar-separator] {
height: var(--menubar-separator-height);
background: var(--menubar-separator-bg);
margin: var(--menubar-separator-margin);
}
[data-rs-menubar-menu][data-rs-state~="open"] [data-rs-menubar-content] {
display: flex;
flex-direction: column;
position: absolute;
top: 100%;
left: 0;
animation: menubar-open var(--menubar-transition-duration) var(--menubar-transition-ease);
}
@keyframes menubar-open {
from { opacity: 0; transform: translateY(-4px); }
to { opacity: 1; transform: translateY(0); }
}
[data-rs-menubar-menu][data-rs-state~="closed"] [data-rs-menubar-content],
[data-rs-menubar-content][data-rs-state~="hidden"] {
visibility: hidden;
opacity: 0;
pointer-events: none;
position: absolute;
width: 0;
height: 0;
overflow: hidden;
}
[data-rs-menubar-chevron] {
width: var(--space-sm);
height: var(--space-sm);
margin-left: var(--space-2xs);
flex-shrink: 0;
transition: transform var(--menubar-transition-duration) var(--menubar-transition-ease);
}
[data-rs-menubar-menu][data-rs-state~="open"] [data-rs-menubar-chevron] {
transform: rotate(180deg);
}
[data-rs-modal] {
display: contents;
}
[data-rs-modal-portal] {
display: contents;
}
[data-rs-modal-overlay] {
position: fixed;
inset: 0;
z-index: var(--modal-overlay-z-index);
background: var(--modal-overlay-bg);
opacity: 0;
visibility: hidden;
transition:
opacity var(--modal-transition-duration) var(--modal-transition-ease),
visibility var(--modal-transition-duration) var(--modal-transition-ease);
}
[data-rs-modal-overlay][data-rs-state~="open"],
[data-rs-modal][data-rs-state~="open"] [data-rs-modal-overlay] {
opacity: 1;
visibility: visible;
}
[data-rs-modal-content] {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(0.95);
z-index: calc(var(--modal-overlay-z-index) + 1);
width: var(--modal-content-width);
max-width: var(--modal-content-max-width);
background: var(--modal-content-bg);
color: var(--modal-content-fg);
padding: var(--modal-content-padding);
border-radius: var(--modal-content-radius);
box-shadow: var(--modal-content-shadow);
opacity: 0;
visibility: hidden;
transition:
opacity var(--modal-transition-duration) var(--modal-transition-ease),
transform var(--modal-transition-duration) var(--modal-transition-ease),
visibility var(--modal-transition-duration) var(--modal-transition-ease);
}
[data-rs-modal-content][data-rs-state~="open"],
[data-rs-modal][data-rs-state~="open"] [data-rs-modal-content] {
opacity: 1;
visibility: visible;
transform: translate(-50%, -50%) scale(1);
}
[data-rs-modal-title] {
color: var(--modal-title-fg);
font-size: var(--modal-title-font-size);
font-weight: var(--modal-title-font-weight);
margin-bottom: var(--modal-header-gap);
}
[data-rs-modal-description] {
color: var(--modal-description-fg);
font-size: var(--modal-description-font-size);
}
[data-rs-modal-footer] {
display: flex;
gap: var(--modal-footer-gap);
justify-content: flex-end;
padding-top: var(--modal-header-gap);
}
[data-rs-nav-group] {
display: flex;
flex-direction: column;
gap: var(--nav-item-gap);
}
[data-rs-nav-group][data-rs-direction="horizontal"] {
flex-direction: row;
align-items: center;
}
[data-rs-nav-item] {
display: inline-flex;
align-items: center;
gap: var(--nav-item-gap);
height: var(--nav-item-height);
padding: var(--nav-item-padding-y) var(--nav-item-padding-x);
font-size: var(--nav-item-font-size);
font-weight: var(--nav-item-font-weight);
color: var(--nav-item-fg);
text-decoration: none;
cursor: pointer;
user-select: none;
transition: color var(--motion-duration-fast) var(--motion-ease-standard),
background var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-nav-item][data-rs-state~="hover"]:not([data-rs-state~="disabled"]) {
color: var(--nav-item-hover-fg);
background: var(--nav-item-hover-bg);
}
[data-rs-nav-group]:not([data-rs-direction="horizontal"]) [data-rs-nav-item][data-rs-selected="true"] {
color: var(--nav-item-active-fg);
font-weight: var(--font-weight-semibold);
border-left: var(--border-medium) solid var(--theme-action-primary-bg);
padding-left: calc(var(--nav-item-padding-x) - var(--border-medium));
}
[data-rs-nav-group][data-rs-direction="horizontal"] [data-rs-nav-item][data-rs-selected="true"] {
color: var(--nav-item-active-fg);
font-weight: var(--font-weight-semibold);
border-bottom: var(--border-medium) solid var(--theme-action-primary-bg);
padding-bottom: calc(var(--nav-item-padding-y) - var(--border-medium));
}
[data-rs-nav-item][data-rs-state~="focused"] {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-nav-item][data-rs-state~="disabled"] {
opacity: var(--opacity-disabled);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-nav-group] [data-rs-nav-item]:focus-visible:not([data-rs-state~='focused']) { outline: none; }
[data-rs-nav-item-icon] {
display: flex;
align-items: center;
justify-content: center;
font-size: var(--nav-item-icon-size);
}
[data-rs-nav-item-label] {
line-height: var(--nav-item-line-height);
}
[data-rs-navigation-menu] {
position: relative;
display: flex;
align-items: center;
}
[data-rs-navigation-menu-list] {
display: flex;
align-items: center;
gap: var(--navigation-menu-list-gap);
padding: var(--navigation-menu-padding);
background: var(--navigation-menu-bg);
border: var(--navigation-menu-border-width) solid var(--navigation-menu-border-color);
border-radius: var(--radius-sm);
list-style: none;
margin: 0;
}
[data-rs-navigation-menu-item] {
position: relative;
display: flex;
align-items: center;
}
[data-rs-navigation-menu-trigger] {
display: inline-flex;
align-items: center;
gap: var(--space-xs);
height: var(--navigation-menu-item-height);
padding-inline: var(--navigation-menu-item-padding-x);
padding-block: var(--navigation-menu-item-padding-y);
color: var(--navigation-menu-trigger-fg);
background: transparent;
border: none;
border-radius: 0;
cursor: pointer;
font-size: var(--font-size-sm);
font-weight: var(--font-weight-medium);
outline: none;
transition: color var(--navigation-menu-trigger-transition-duration) var(--motion-ease-standard),
border-color var(--navigation-menu-trigger-transition-duration) var(--motion-ease-standard);
border-bottom: var(--navigation-menu-content-border-width) solid transparent;
}
[data-rs-navigation-menu-trigger][data-rs-state~="hover"] {
color: var(--navigation-menu-trigger-hover-fg);
}
[data-rs-navigation-menu-trigger][data-rs-state~="open"] {
color: var(--navigation-menu-trigger-active-fg);
font-weight: var(--font-weight-semibold);
border-bottom: var(--navigation-menu-content-border-width) solid var(--navigation-menu-trigger-active-fg);
}
[data-rs-navigation-menu-trigger]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-navigation-menu-trigger]:focus-visible,
[data-rs-navigation-menu-trigger][data-rs-state~="focus"] {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-navigation-menu-link]:focus-visible,
[data-rs-navigation-menu-link][data-rs-state~="focus"] {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-navigation-menu-content] {
position: absolute;
top: calc(100% + var(--space-sm));
left: 0;
z-index: var(--navigation-menu-z-index);
min-width: var(--navigation-menu-content-min-width);
background: var(--navigation-menu-content-bg);
border: var(--navigation-menu-content-border-width) solid var(--navigation-menu-content-border-color);
border-radius: var(--navigation-menu-content-radius);
box-shadow: var(--navigation-menu-content-shadow);
padding: var(--navigation-menu-content-padding);
flex-direction: column;
gap: var(--space-xs);
transition: opacity var(--motion-duration-fast) var(--motion-ease-standard),
transform var(--motion-duration-fast) var(--motion-ease-standard);
transform-origin: top center;
}
[data-rs-navigation-menu-item][data-rs-state~="open"] [data-rs-navigation-menu-content] {
display: flex;
opacity: 1;
transform: translateY(0) scale(1);
pointer-events: auto;
}
[data-rs-navigation-menu-item]:not([data-rs-state~="open"]) [data-rs-navigation-menu-content] {
opacity: 0;
transform: translateY(-4px) scale(0.98);
pointer-events: none;
visibility: hidden;
}
[data-rs-navigation-menu-subitem] {
display: flex;
}
[data-rs-navigation-menu-link] {
display: block;
padding: var(--space-xs) var(--space-sm);
color: var(--navigation-menu-link-fg);
text-decoration: none;
border-radius: var(--radius-sm);
font-size: var(--font-size-sm);
white-space: nowrap;
}
[data-rs-navigation-menu-link][data-rs-state~="hover"]:not([data-rs-state~="active"]) {
background: var(--navigation-menu-trigger-bg-hover);
color: var(--navigation-menu-link-fg-hover);
}
[data-rs-page-header] {
display: flex;
flex-direction: column;
gap: var(--page-header-gap);
padding: var(--page-header-padding);
background: var(--page-header-bg);
border-bottom: var(--page-header-border-width) solid var(--page-header-border-color);
}
[data-rs-page-header-breadcrumbs] {
display: flex;
gap: var(--page-header-breadcrumbs-gap);
color: var(--page-header-breadcrumbs-fg);
}
[data-rs-page-header-content] {
display: flex;
flex-direction: column;
gap: var(--page-header-content-gap, var(--space-xs));
}
[data-rs-page-header-title] {
font-size: var(--page-header-title-font-size);
font-weight: var(--page-header-title-font-weight);
color: var(--page-header-title-fg);
}
[data-rs-page-header-description] {
font-size: var(--page-header-description-font-size);
line-height: var(--page-header-description-line-height);
color: var(--page-header-description-fg);
}
[data-rs-page-header-actions] {
display: flex;
gap: var(--page-header-actions-gap);
}
[data-rs-page-header-tabs] {
margin-top: var(--page-header-tabs-margin-top);
}
[data-rs-pagination] {
display: flex;
align-items: center;
gap: var(--pagination-gap);
}
[data-rs-pagination-content] {
display: flex;
align-items: center;
gap: var(--pagination-gap);
list-style: none;
margin: 0;
padding: 0;
}
[data-rs-pagination-item] {
display: inline-flex;
align-items: center;
justify-content: center;
}
[data-rs-pagination-link],
[data-rs-pagination-previous],
[data-rs-pagination-next] {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: var(--pagination-item-size);
height: var(--pagination-item-size);
padding-inline: var(--pagination-item-padding);
border-radius: var(--pagination-item-radius);
background: var(--pagination-item-bg);
color: var(--pagination-item-fg);
font-size: var(--pagination-item-font-size);
font-weight: var(--pagination-item-font-weight);
text-decoration: none;
cursor: pointer;
border: 1px solid var(--theme-surface-border);
transition:
background var(--pagination-item-transition-duration) var(--pagination-item-transition-ease),
color var(--pagination-item-transition-duration) var(--pagination-item-transition-ease),
border-color var(--pagination-item-transition-duration) var(--pagination-item-transition-ease);
}
[data-rs-pagination-link]:hover:not([data-rs-state~="active"]):not([data-rs-state~="disabled"]),
[data-rs-pagination-previous]:hover:not([data-rs-state~="disabled"]),
[data-rs-pagination-next]:hover:not([data-rs-state~="disabled"]) {
background: var(--pagination-item-bg-hover);
color: var(--pagination-item-fg);
}
[data-rs-pagination-link]:focus-visible,
[data-rs-pagination-previous]:focus-visible,
[data-rs-pagination-next]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-pagination-link][data-rs-state~="active"] {
background: var(--pagination-item-bg-active);
color: var(--pagination-item-fg-active);
font-weight: var(--pagination-item-font-weight-active);
border-color: var(--pagination-item-bg-active);
}
[data-rs-pagination-link][data-rs-state~="disabled"],
[data-rs-pagination-previous][data-rs-state~="disabled"],
[data-rs-pagination-next][data-rs-state~="disabled"] {
opacity: var(--pagination-item-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-pagination-ellipsis] {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: var(--pagination-item-size);
height: var(--pagination-item-size);
color: var(--pagination-ellipsis-fg);
cursor: default;
user-select: none;
opacity: 0.5;
pointer-events: none;
font-weight: var(--font-weight-normal);
}
[data-rs-popover] {
position: relative;
display: inline-block;
overflow: visible;
}
[data-rs-popover-content] {
position: absolute;
z-index: var(--popover-z-index);
width: var(--popover-width);
background: var(--popover-bg);
color: var(--popover-fg);
border: var(--popover-border-width) solid var(--popover-border-color);
border-radius: var(--popover-radius);
box-shadow: var(--popover-shadow);
padding: var(--popover-padding);
opacity: 0;
visibility: hidden;
transform: translateY(4px);
transition:
opacity var(--popover-transition-duration) var(--popover-transition-ease),
visibility var(--popover-transition-duration) var(--popover-transition-ease),
transform var(--popover-transition-duration) var(--popover-transition-ease);
}
[data-rs-popover-content][data-rs-side="bottom"],
[data-rs-popover-content]:not([data-rs-side]) {
top: calc(100% + var(--space-xs));
left: 0;
}
[data-rs-popover-content][data-rs-side="top"] {
bottom: calc(100% + var(--space-xs));
left: 0;
}
[data-rs-popover-content][data-rs-side="right"] {
left: calc(100% + var(--space-xs));
top: 0;
}
[data-rs-popover-content][data-rs-side="left"] {
right: calc(100% + var(--space-xs));
top: 0;
}
[data-rs-popover][data-rs-state~="open"] [data-rs-popover-content] {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
[data-rs-progress] {
position: relative;
width: 100%;
height: var(--progress-height);
overflow: hidden;
border-radius: var(--progress-radius);
background: var(--progress-bg);
}
[data-rs-progress-indicator] {
height: 100%;
width: 100%;
transition: transform var(--progress-transition-duration) var(--progress-transition-ease);
background: var(--progress-fill-bg);
}
[data-rs-progress][data-rs-state~="indeterminate"] [data-rs-progress-indicator] {
animation: progress-indeterminate 1.8s ease-in-out infinite;
width: 40%;
}
@keyframes progress-indeterminate {
0% { transform: translateX(-150%); }
50% { transform: translateX(200%); }
100% { transform: translateX(-150%); }
}
[data-rs-progress][data-rs-state~="loading"] [data-rs-progress-indicator] {
animation: progress-loading 1s var(--motion-ease-standard) infinite;
width: 30%;
}
@keyframes progress-loading {
0% { transform: translateX(-100%); opacity: 0.6; }
50% { opacity: 1; }
100% { transform: translateX(400%); opacity: 0.6; }
}
[data-rs-pulse] {
position: relative;
display: inline-flex;
border-radius: var(--pulse-radius);
}
[data-rs-pulse][data-rs-size="sm"] {
width: var(--pulse-size-small);
height: var(--pulse-size-small);
}
[data-rs-pulse][data-rs-size="md"] {
width: var(--pulse-size);
height: var(--pulse-size);
}
[data-rs-pulse][data-rs-size="lg"] {
width: var(--pulse-size-large);
height: var(--pulse-size-large);
}
[data-rs-pulse][data-rs-variant="subtle"] {
background: var(--pulse-bg-subtle);
--pulse-scale: var(--pulse-scale-subtle);
}
[data-rs-pulse][data-rs-variant="default"] {
background: var(--pulse-bg-default);
--pulse-scale: var(--pulse-scale-default);
}
[data-rs-pulse][data-rs-variant="emphasized"] {
background: var(--pulse-bg-emphasized);
box-shadow: var(--pulse-shadow-emphasized) var(--pulse-shadow-color-emphasized);
--pulse-scale: var(--pulse-scale-emphasized);
}
[data-rs-pulse]::before,
[data-rs-pulse]::after {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
background: inherit;
animation: pulse-ripple var(--pulse-duration) var(--pulse-ease) infinite;
pointer-events: none;
}
[data-rs-pulse]::after {
animation-delay: var(--pulse-delay);
}
[data-rs-pulse][data-rs-speed="slow"] { --pulse-duration: var(--pulse-duration-slow); }
[data-rs-pulse][data-rs-speed="normal"] { --pulse-duration: var(--pulse-duration-normal); }
[data-rs-pulse][data-rs-speed="fast"] { --pulse-duration: var(--pulse-duration-fast); }
[data-rs-pulse][data-rs-state~="active"]::before,
[data-rs-pulse][data-rs-state~="active"]::after {
animation: pulse-ripple var(--pulse-duration) var(--pulse-ease) infinite;
}
@keyframes pulse-ripple {
0% { transform: scale(1); opacity: 1; }
100% { transform: scale(var(--pulse-scale)); opacity: 0; }
}
[data-rs-radio-group] {
display: flex;
flex-direction: column;
gap: var(--radio-group-gap);
}
[data-rs-radio] {
display: flex;
align-items: center;
gap: var(--radio-group-item-gap);
cursor: pointer;
position: relative;
width: 100%;
user-select: none;
}
[data-rs-radio-input] {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
clip-path: inset(50%);
white-space: nowrap;
border: 0;
pointer-events: none;
appearance: none;
-webkit-appearance: none;
}
[data-rs-radio-indicator] {
display: inline-flex;
align-items: center;
justify-content: center;
width: var(--radio-size);
height: var(--radio-size);
border: var(--radio-border-width) solid var(--radio-border-color);
border-radius: var(--radius-full);
background: var(--radio-bg);
transition:
background var(--radio-transition-duration) var(--motion-ease-standard),
border-color var(--radio-transition-duration) var(--motion-ease-standard),
box-shadow var(--radio-transition-duration) var(--motion-ease-standard),
opacity var(--radio-transition-duration) var(--motion-ease-standard);
flex-shrink: 0;
}
[data-rs-radio-indicator]::after {
content: '';
width: calc(var(--radio-dot-size) * 1.15);
height: calc(var(--radio-dot-size) * 1.15);
border-radius: var(--radius-full);
background: var(--radio-dot-color);
opacity: 0;
transition: opacity var(--radio-transition-duration) var(--motion-ease-standard);
}
[data-rs-radio][data-rs-state~="selected"] [data-rs-radio-indicator] {
background: var(--radio-checked-bg);
border-color: var(--radio-checked-border-color);
}
[data-rs-radio][data-rs-state~="selected"] [data-rs-radio-indicator]::after {
opacity: 1;
background: var(--radio-checked-dot-color);
}
[data-rs-radio][data-rs-state~="disabled"],
[data-rs-radio-group][data-rs-disabled] [data-rs-radio] {
opacity: 0.5;
cursor: not-allowed;
pointer-events: none;
}
[data-rs-radio][data-rs-state~="disabled"] [data-rs-radio-indicator],
[data-rs-radio-group][data-rs-disabled] [data-rs-radio] [data-rs-radio-indicator] {
background: var(--radio-bg-disabled);
border-color: var(--radio-border-color-disabled);
}
[data-rs-radio][data-rs-state~="selected"][data-rs-state~="disabled"] [data-rs-radio-indicator]::after {
opacity: 1;
background: var(--radio-dot-color-disabled);
}
[data-rs-radio][data-rs-state~="disabled"] {
color: var(--radio-disabled-fg);
}
[data-rs-radio]:hover:not([data-rs-state~="disabled"]) [data-rs-radio-indicator] {
border-color: var(--radio-hover-border-color);
}
[data-rs-radio]:hover:not([data-rs-state~="disabled"]) {
cursor: pointer;
color: var(--radio-hover-border-color);
}
[data-rs-radio][data-rs-state~="active"]:not([data-rs-state~="disabled"]) [data-rs-radio-indicator] {
transform: scale(0.94);
}
[data-rs-radio][data-rs-state~="focus"] [data-rs-radio-indicator] {
box-shadow: var(--radio-focus-ring-shadow);
outline: none;
}
[data-rs-radio]:focus-visible [data-rs-radio-indicator] {
box-shadow: var(--radio-focus-ring-shadow);
outline: none;
}
[data-rs-radio][data-rs-state~="disabled"],
[data-rs-radio-group][data-rs-disabled] [data-rs-radio] {
filter: grayscale(0.3);
}
[data-rs-radio-group] {
display: flex;
flex-direction: column;
gap: var(--radio-group-gap);
}
[data-rs-radio-group][data-rs-disabled] [data-rs-radio] {
opacity: var(--radio-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
color: var(--radio-disabled-fg);
}
[data-rs-radio-group][data-rs-disabled] [data-rs-radio] [data-rs-radio-indicator] {
background: var(--radio-disabled-bg);
border-color: var(--radio-disabled-border-color);
}
[data-rs-radio-group][data-rs-disabled] [data-rs-radio][data-rs-state~="selected"] [data-rs-radio-indicator]::after {
opacity: 1;
background: var(--radio-dot-color-disabled);
}
[data-rs-radio-group] [data-rs-radio][data-rs-state~="focus"] [data-rs-radio-indicator] {
box-shadow: var(--radio-focus-ring-shadow);
outline: none;
}
[data-rs-radio-group] [data-rs-radio][data-rs-state~="disabled"] {
opacity: var(--radio-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
color: var(--radio-disabled-fg);
}
[data-rs-resizable] {
display: flex;
flex: 1 1 0;
width: 100%;
height: 100%;
min-height: 0;
min-width: 0;
overflow: hidden;
}
[data-rs-resizable][data-rs-orientation="horizontal"] { flex-direction: row; }
[data-rs-resizable][data-rs-orientation="vertical"] { flex-direction: column; }
[data-rs-resizable-panel] {
overflow: auto;
min-width: 0;
min-height: 0;
flex-grow: 0;
flex-shrink: 0;
flex-basis: var(--resizable-panel-basis);
align-self: stretch;
}
[data-rs-resizable-handle] {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
background: var(--resizable-handle-bg);
position: relative;
z-index: var(--layer-sticky);
user-select: none;
transition: background var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-resizable][data-rs-orientation="horizontal"] [data-rs-resizable-handle] {
width: var(--resizable-handle-size);
cursor: col-resize;
}
[data-rs-resizable][data-rs-orientation="vertical"] [data-rs-resizable-handle] {
height: var(--resizable-handle-size);
cursor: row-resize;
}
[data-rs-resizable-handle]:hover:not([data-rs-state~="disabled"]),
[data-rs-resizable-handle][data-rs-state~="active"] {
background: var(--resizable-handle-hover-bg);
}
[data-rs-resizable-handle][data-rs-state~="inactive"] {
background: var(--resizable-handle-bg);
}
[data-rs-resizable-handle]:focus-visible {
outline: none;
background: var(--resizable-handle-hover-bg);
box-shadow: 0 0 0 var(--border-medium) var(--theme-action-focus-ring);
}
[data-rs-resizable-handle][data-rs-state~="disabled"] {
background: var(--resizable-handle-disabled-bg);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-resizable-handle-bar] {
background: var(--theme-surface-fg-muted);
border-radius: var(--radius-full);
pointer-events: none;
}
[data-rs-resizable][data-rs-orientation="horizontal"] [data-rs-resizable-handle-bar] {
width: var(--border-medium);
height: var(--space-lg);
}
[data-rs-resizable][data-rs-orientation="vertical"] [data-rs-resizable-handle-bar] {
width: var(--space-lg);
height: var(--border-medium);
}
[data-rs-scroll-area] {
position: relative;
background: var(--scroll-area-bg);
border: var(--scroll-area-border);
border-radius: var(--scroll-area-radius);
padding: var(--scroll-area-padding);
overflow: hidden;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
[data-rs-scroll-area][data-rs-orientation="horizontal"] {
height: auto;
flex-direction: row;
}
[data-rs-scroll-viewport] {
width: 100%;
height: 100%;
flex: 1;
min-height: 0;
overflow: auto;
scrollbar-width: none;
-ms-overflow-style: none;
}
[data-rs-scroll-area][data-rs-orientation="horizontal"] [data-rs-scroll-viewport] {
height: auto;
flex: 1 1 auto;
min-height: unset;
min-width: 0;
}
[data-rs-scroll-viewport]::-webkit-scrollbar { display: none; }
[data-rs-scroll-area][data-rs-orientation="vertical"] [data-rs-scroll-viewport] { overflow-x: hidden; overflow-y: auto; }
[data-rs-scroll-area][data-rs-orientation="horizontal"] [data-rs-scroll-viewport] { overflow-x: auto; overflow-y: hidden; }
[data-rs-scroll-area][data-rs-orientation="both"] [data-rs-scroll-viewport] { overflow: auto; }
[data-rs-scrollbar] {
position: absolute;
z-index: var(--layer-sticky);
transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-scrollbar][data-rs-orientation="vertical"] {
top: var(--space-2xs);
right: var(--space-2xs);
bottom: var(--space-2xs);
width: var(--scrollbar-size);
}
[data-rs-scrollbar][data-rs-orientation="horizontal"] {
left: var(--space-2xs);
right: var(--space-2xs);
bottom: var(--space-2xs);
height: var(--scrollbar-size);
}
[data-rs-scroll-area][data-rs-auto-hide] [data-rs-scrollbar] { opacity: 0; }
[data-rs-scroll-area][data-rs-auto-hide]:hover [data-rs-scrollbar] { opacity: 1; }
[data-rs-scroll-area][data-rs-auto-hide] [data-rs-scrollbar][data-rs-state~="active"] { opacity: 1; }
[data-rs-scroll-track] {
position: relative;
width: 100%;
height: 100%;
background: var(--scrollbar-track-bg);
border-radius: var(--scrollbar-radius);
overflow: hidden;
}
[data-rs-scroll-thumb] {
position: absolute;
background: var(--scrollbar-thumb-bg);
border-radius: var(--scrollbar-radius);
will-change: transform;
transition: var(--scrollbar-transition);
cursor: grab;
}
[data-rs-scroll-thumb][data-rs-orientation="vertical"] {
left: 0; right: 0;
min-height: var(--scrollbar-thumb-min-size);
height: var(--scroll-thumb-size);
transform: translateY(var(--scroll-thumb-offset));
}
[data-rs-scroll-thumb][data-rs-orientation="horizontal"] {
top: 0; bottom: 0;
min-width: var(--scrollbar-thumb-min-size);
width: var(--scroll-thumb-size);
transform: translateX(var(--scroll-thumb-offset));
}
[data-rs-scroll-thumb][data-rs-state~="hidden"] { opacity: 0; pointer-events: none; }
[data-rs-scroll-thumb]:hover:not([data-rs-state~="active"]):not([data-rs-state~="hidden"]) { background: var(--scrollbar-thumb-hover-bg); }
[data-rs-scroll-thumb][data-rs-state~="active"] {
background: var(--scrollbar-thumb-active-bg);
cursor: grabbing;
}
[data-rs-section-header] {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: var(--space-sm);
width: 100%;
max-width: var(--section-header-max-width);
margin-bottom: var(--space-lg);
}
[data-rs-section-title] {
color: var(--section-title-fg);
font-size: var(--section-title-font-size);
font-weight: var(--section-title-font-weight);
margin: 0;
}
[data-rs-section-subtitle] {
color: var(--section-description-fg);
font-size: var(--section-description-font-size);
margin: var(--section-description-margin);
max-width: var(--section-header-max-width);
}
[data-rs-section-badge] {
display: inline-flex;
align-items: center;
font-size: var(--font-size-xs);
font-weight: var(--font-weight-semibold);
color: var(--section-badge-fg);
text-transform: uppercase;
letter-spacing: var(--link-group-label-letter-spacing);
}
[data-rs-section-actions] {
display: flex;
align-items: center;
justify-content: center;
gap: var(--space-md);
flex-wrap: wrap;
margin-top: var(--space-lg);
}
[data-rs-select-trigger] {
display: inline-flex;
align-items: center;
justify-content: space-between;
gap: var(--select-gap);
width: 100%;
height: var(--select-height);
padding: 0 var(--select-padding-x);
background: var(--select-bg);
color: var(--select-fg);
border: var(--select-border-width) solid var(--select-border-color);
border-radius: var(--select-radius);
cursor: pointer;
transition: border-color var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-select-trigger]:hover:not([data-rs-state~="disabled"]) {
border-color: var(--select-border-color-hover);
background: var(--select-hover-bg);
}
[data-rs-select-trigger]:focus-visible {
outline: var(--select-focus-ring-width) solid var(--select-focus-ring-color);
outline-offset: var(--select-focus-ring-offset);
}
[data-rs-select-trigger][data-rs-state~="focus"] {
outline: var(--select-focus-ring-width) solid var(--select-focus-ring-color);
outline-offset: var(--select-focus-ring-offset);
}
[data-rs-select-item][data-rs-state~="focus"] {
background: var(--select-item-hover-bg);
outline: none;
}
[data-rs-select][data-rs-state~="disabled"] [data-rs-select-trigger],
[data-rs-select-trigger][data-rs-state~="disabled"] {
opacity: var(--select-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-select] {
position: relative;
}
[data-rs-select-content] {
position: absolute;
top: 100%;
left: 0;
min-width: 100%;
z-index: 200;
background: var(--select-content-bg);
border: var(--select-content-border-width) solid var(--select-content-border-color);
border-radius: var(--select-content-radius);
box-shadow: var(--select-content-shadow);
padding-block: var(--select-content-padding-y);
}
[data-rs-select][data-rs-state~="closed"] [data-rs-select-content],
[data-rs-select][data-rs-state=""] [data-rs-select-content],
[data-rs-select]:not([data-rs-state]) [data-rs-select-content] {
display: none;
}
[data-rs-select][data-rs-state~="open"] [data-rs-select-content] {
display: block;
}
[data-rs-select-item] {
display: flex;
align-items: center;
height: var(--select-item-height);
padding: var(--select-item-padding);
cursor: pointer;
transition: background var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-select-item]:hover:not([data-rs-state~="disabled"]):not([data-rs-state~="selected"]) {
background: var(--select-item-hover-bg);
}
[data-rs-select-item][data-rs-state~="selected"] {
background: var(--select-item-selected-bg);
color: var(--select-item-selected-fg);
}
[data-rs-select-separator] {
height: var(--select-separator-height);
background: var(--select-separator-color);
margin-block: var(--select-separator-margin-y);
}
[data-rs-select-chevron] {
flex-shrink: 0;
margin-left: auto;
transition: transform var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-select][data-rs-state~="open"] [data-rs-select-chevron] {
transform: rotate(180deg);
}
[data-rs-separator] {
background: var(--separator-color);
flex-shrink: 0;
}
[data-rs-separator][data-rs-orientation="horizontal"] {
height: var(--separator-thickness);
width: var(--separator-length-horizontal);
margin-block: var(--separator-margin-y);
}
[data-rs-separator][data-rs-orientation="vertical"] {
width: var(--separator-thickness);
height: var(--separator-length-vertical);
margin-inline: var(--separator-margin-x);
}
[data-rs-separator][data-rs-state~="muted"] {
background: var(--separator-color-muted);
}
[data-rs-sheet] {
display: contents;
}
[data-rs-sheet-portal] {
display: contents;
}
[data-rs-sheet-trigger] {
cursor: pointer;
}
[data-rs-sheet-overlay] {
position: fixed;
inset: 0;
z-index: var(--sheet-overlay-z-index);
background: var(--sheet-overlay-bg);
opacity: 0;
visibility: hidden;
transition:
opacity var(--sheet-transition-duration) var(--sheet-transition-ease),
visibility var(--sheet-transition-duration) var(--sheet-transition-ease);
}
[data-rs-sheet-overlay][data-rs-state~="open"],
[data-rs-sheet][data-rs-state~="open"] [data-rs-sheet-overlay] {
opacity: 1;
visibility: visible;
}
[data-rs-sheet-content] {
position: fixed;
z-index: calc(var(--sheet-overlay-z-index) + 1);
background: var(--sheet-bg);
color: var(--sheet-fg);
padding: var(--sheet-padding);
box-shadow: var(--sheet-shadow);
opacity: 0;
visibility: hidden;
transition:
opacity var(--sheet-transition-duration) var(--sheet-transition-ease),
transform var(--sheet-transition-duration) var(--sheet-transition-ease),
visibility var(--sheet-transition-duration) var(--sheet-transition-ease);
}
[data-rs-sheet-content][data-rs-side="right"],
[data-rs-sheet-content]:not([data-rs-side]),
[data-rs-sheet][data-rs-side="right"] [data-rs-sheet-content],
[data-rs-sheet]:not([data-rs-side]) [data-rs-sheet-content] {
top: 0; right: 0; bottom: 0;
width: var(--sheet-width);
transform: var(--sheet-transform-closed-right);
}
[data-rs-sheet-content][data-rs-side="right"][data-rs-state~="open"],
[data-rs-sheet-content]:not([data-rs-side])[data-rs-state~="open"],
[data-rs-sheet][data-rs-side="right"][data-rs-state~="open"] [data-rs-sheet-content],
[data-rs-sheet]:not([data-rs-side])[data-rs-state~="open"] [data-rs-sheet-content] {
opacity: 1; visibility: visible;
transform: var(--sheet-transform-open);
}
[data-rs-sheet-content][data-rs-side="left"],
[data-rs-sheet][data-rs-side="left"] [data-rs-sheet-content] {
top: 0; left: 0; bottom: 0;
width: var(--sheet-width);
transform: var(--sheet-transform-closed-left);
}
[data-rs-sheet-content][data-rs-side="left"][data-rs-state~="open"],
[data-rs-sheet][data-rs-side="left"][data-rs-state~="open"] [data-rs-sheet-content] {
opacity: 1; visibility: visible;
transform: var(--sheet-transform-open);
}
[data-rs-sheet-content][data-rs-side="top"],
[data-rs-sheet][data-rs-side="top"] [data-rs-sheet-content] {
top: 0; left: 0; right: 0;
height: var(--sheet-height);
transform: var(--sheet-transform-closed-top);
}
[data-rs-sheet-content][data-rs-side="top"][data-rs-state~="open"],
[data-rs-sheet][data-rs-side="top"][data-rs-state~="open"] [data-rs-sheet-content] {
opacity: 1; visibility: visible;
transform: var(--sheet-transform-open);
}
[data-rs-sheet-content][data-rs-side="bottom"],
[data-rs-sheet][data-rs-side="bottom"] [data-rs-sheet-content] {
bottom: 0; left: 0; right: 0;
height: var(--sheet-height);
transform: var(--sheet-transform-closed-bottom);
}
[data-rs-sheet-content][data-rs-side="bottom"][data-rs-state~="open"],
[data-rs-sheet][data-rs-side="bottom"][data-rs-state~="open"] [data-rs-sheet-content] {
opacity: 1; visibility: visible;
transform: var(--sheet-transform-open);
}
[data-rs-sheet-title] {
color: var(--sheet-title-fg);
font-size: var(--sheet-title-font-size);
font-weight: var(--sheet-title-font-weight);
margin-bottom: var(--sheet-header-gap);
}
[data-rs-sheet-description] {
color: var(--sheet-description-fg);
font-size: var(--sheet-description-font-size);
margin-bottom: var(--sheet-footer-gap);
}
[data-rs-sidebar] {
display: flex;
flex-direction: column;
width: var(--sidebar-width);
min-height: 300px;
background: var(--sidebar-bg);
border-right: var(--sidebar-border-width) solid var(--sidebar-border-color);
transition: width var(--motion-duration-normal) var(--motion-ease-standard);
}
[data-rs-sidebar-header] {
padding: var(--sidebar-header-padding);
border-bottom: var(--sidebar-border-width) solid var(--sidebar-border-color);
}
[data-rs-sidebar-content] {
flex: 1;
overflow-y: auto;
overflow-x: visible;
padding: var(--sidebar-content-padding);
}
[data-rs-sidebar-footer] {
padding: var(--sidebar-footer-padding);
border-top: var(--sidebar-border-width) solid var(--sidebar-border-color);
}
[data-rs-sidebar-menu] {
display: flex;
flex-direction: column;
gap: var(--sidebar-menu-gap);
}
[data-rs-sidebar-menu-item] {
display: flex;
align-items: center;
gap: var(--sidebar-menu-item-gap);
height: var(--sidebar-menu-item-height);
padding-inline: var(--sidebar-menu-item-padding-x);
padding-block: var(--sidebar-menu-item-padding-y);
border-radius: var(--sidebar-menu-item-radius);
background: var(--sidebar-menu-item-bg);
color: var(--sidebar-menu-item-fg);
font-size: var(--sidebar-menu-item-font-size);
cursor: pointer;
transition: background var(--sidebar-menu-item-transition-duration) var(--sidebar-menu-item-transition-ease);
text-decoration: none;
}
[data-rs-sidebar-menu-item][data-rs-state~="active"] {
background: var(--sidebar-menu-item-bg-active);
color: var(--sidebar-menu-item-fg-active);
font-weight: var(--sidebar-menu-item-font-weight-active);
border-left: var(--border-medium) solid var(--theme-action-primary-bg);
padding-left: calc(var(--sidebar-menu-item-padding-x) - var(--border-medium));
}
[data-rs-sidebar-menu-item][data-rs-state~="disabled"] {
opacity: var(--opacity-disabled);
pointer-events: none;
cursor: not-allowed;
}
[data-rs-sidebar-menu-item]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-sidebar-group-label] {
padding-inline: var(--sidebar-group-label-padding-x);
padding-block: var(--sidebar-group-label-padding-y);
font-size: var(--sidebar-group-label-font-size);
font-weight: var(--sidebar-group-label-font-weight);
color: var(--sidebar-group-label-fg);
}
[data-rs-sidebar-separator] {
height: var(--sidebar-separator-height);
background: var(--sidebar-separator-color);
margin-block: var(--sidebar-separator-margin-y);
}
[data-rs-sidebar-inset] {
padding-left: var(--sidebar-inset-padding-left);
}
[data-rs-sidebar-group] {
width: 100%;
}
[data-rs-sidebar-group-toggle] {
min-height: var(--sidebar-menu-item-height);
width: 100%;
display: flex;
align-items: center;
gap: var(--sidebar-menu-item-gap);
padding: var(--sidebar-menu-item-padding-y) var(--sidebar-menu-item-padding-x);
background: transparent;
border: none;
color: var(--sidebar-menu-item-fg);
font-size: var(--sidebar-menu-item-font-size);
text-align: left;
cursor: pointer;
border-radius: var(--sidebar-menu-item-radius);
transition: background var(--sidebar-menu-item-transition-duration) var(--sidebar-menu-item-transition-ease);
}
[data-rs-sidebar-group-toggle][data-rs-state~="hover"] {
background: var(--sidebar-menu-item-bg-hover);
}
[data-rs-sidebar-group-content] {
overflow: hidden;
padding-left: var(--sidebar-inset-padding-left);
}
[data-rs-sidebar-group][data-rs-state~="collapsed"] [data-rs-sidebar-group-content] {
display: none;
}
[data-rs-sidebar-group][data-rs-state~="expanded"] [data-rs-sidebar-group-content] {
display: block;
}
[data-rs-sidebar-group-chevron] {
margin-left: auto;
transition: transform 160ms ease;
}
[data-rs-sidebar-group][data-rs-state~="collapsed"] [data-rs-sidebar-group-toggle] [data-rs-sidebar-group-chevron] {
transform: rotate(-90deg);
}
[data-rs-sidebar][data-rs-state~="collapsed"] {
width: var(--sidebar-width-collapsed);
overflow: visible;
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-label],
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-search],
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-group-label],
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-badge] {
display: var(--sidebar-label-collapsed-display);
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-menu-item] {
justify-content: var(--sidebar-item-collapsed-justify);
padding-inline: var(--sidebar-item-collapsed-padding-x);
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-group-toggle] {
justify-content: var(--sidebar-item-collapsed-justify);
padding-inline: var(--sidebar-item-collapsed-padding-x);
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-group-chevron] {
display: var(--sidebar-label-collapsed-display);
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-icon] {
display: flex;
justify-content: center;
width: 100%;
font-size: var(--font-size-xl);
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-header] {
display: flex;
justify-content: center;
padding: var(--space-md);
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-group-content] {
visibility: hidden;
height: 0;
overflow: hidden;
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-content] {
overflow: visible;
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-sidebar-menu] {
overflow: visible;
}
[data-rs-sidebar][data-rs-state~="expanded"] {
visibility: visible;
}
[data-rs-sidebar]:not([data-rs-state~="collapsed"]) [data-rs-sidebar-icon] {
display: inline-flex;
margin-right: var(--space-xs);
}
[data-rs-sidebar]:not([data-rs-state~="collapsed"]) [data-rs-tooltip-content] {
visibility: hidden;
width: 0;
height: 0;
overflow: hidden;
pointer-events: none;
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-tooltip-content] {
visibility: hidden;
}
[data-rs-sidebar][data-rs-state~="collapsed"] [data-rs-tooltip-content][data-rs-state~="open"] {
visibility: visible;
width: auto;
height: auto;
overflow: visible;
pointer-events: auto;
}
[data-rs-sidebar-menu-item] [data-rs-badge] {
margin-left: auto;
flex-shrink: 0;
}
[data-rs-sidebar-menu-item] [data-rs-badge][data-rs-variant="default"] { background: var(--badge-bg-default); color: var(--badge-fg-default); }
[data-rs-sidebar-menu-item] [data-rs-badge][data-rs-variant="primary"] { background: var(--badge-bg-primary); color: var(--badge-fg-primary); }
[data-rs-sidebar-menu-item] [data-rs-badge][data-rs-variant="success"] { background: var(--badge-bg-success); color: var(--badge-fg-success); animation: badge-pulse var(--motion-duration-slow) var(--motion-ease-standard) infinite; }
[data-rs-sidebar-menu-item] [data-rs-badge][data-rs-variant="warning"] { background: var(--badge-bg-warning); color: var(--badge-fg-warning); }
[data-rs-sidebar-menu-item] [data-rs-badge][data-rs-variant="destructive"] { background: var(--badge-bg-destructive); color: var(--badge-fg-destructive); animation: badge-pulse var(--motion-duration-slow) var(--motion-ease-standard) infinite; }
@keyframes badge-pulse {
0%, 100% { opacity: 1; }
50% { opacity: var(--opacity-disabled); }
}
[data-rs-sidebar-container] {
position: relative;
width: 100%;
height: 100vh;
}
[data-rs-sidebar-pin-toggle] {
transition: transform var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-sidebar][data-rs-pinned="true"] [data-rs-sidebar-pin-toggle] {
transform: rotate(-45deg);
}
[data-rs-sidebar-toggle] {
padding: var(--space-sm);
background: var(--theme-surface-bg);
border: var(--border-thin) solid var(--theme-surface-border);
border-radius: var(--radius-sm);
cursor: pointer;
font-size: var(--font-size-xl);
}
[data-rs-sidebar-overlay] {
position: fixed;
inset: 0;
background: var(--color-overlay-50);
z-index: var(--layer-dropdown);
display: none;
}
[data-rs-sidebar-container][data-rs-mode="tablet"][data-rs-state~="open"] [data-rs-sidebar-overlay],
[data-rs-sidebar-container][data-rs-mode="mobile"][data-rs-state~="open"] [data-rs-sidebar-overlay] {
display: block;
}
[data-rs-sidebar-wrapper] {
transition: all var(--motion-duration-normal) var(--motion-ease-standard);
}
[data-rs-sidebar-container][data-rs-mode="desktop"] [data-rs-sidebar-wrapper] {
position: relative;
width: var(--sidebar-width);
height: 100vh;
}
[data-rs-sidebar-container][data-rs-mode="tablet"] [data-rs-sidebar-wrapper],
[data-rs-sidebar-container][data-rs-mode="mobile"] [data-rs-sidebar-wrapper] {
position: fixed;
top: 0;
left: calc(-1 * var(--sidebar-width));
width: var(--sidebar-width);
height: 100vh;
z-index: var(--layer-overlay);
}
[data-rs-sidebar-container][data-rs-mode="tablet"][data-rs-state~="open"] [data-rs-sidebar-wrapper],
[data-rs-sidebar-container][data-rs-mode="mobile"][data-rs-state~="open"] [data-rs-sidebar-wrapper] {
left: 0;
}
[data-rs-sidebar-container][data-rs-mode="mobile"]:not([data-rs-state~="open"]) [data-rs-sidebar-wrapper],
[data-rs-sidebar-container][data-rs-mode="tablet"]:not([data-rs-state~="open"]) [data-rs-sidebar-wrapper] {
display: none;
}
[data-rs-skeleton] {
position: relative;
background: var(--skeleton-bg);
border-radius: var(--skeleton-radius);
overflow: hidden;
}
[data-rs-skeleton]::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
var(--skeleton-shimmer-color-start) 0%,
var(--skeleton-shimmer-color-end) 50%,
var(--skeleton-shimmer-color-start) 100%
);
animation: skeleton-shimmer var(--skeleton-shimmer-duration) var(--skeleton-shimmer-ease) infinite;
}
[data-rs-skeleton][data-rs-variant="text"] {
height: var(--skeleton-text-height);
border-radius: var(--skeleton-text-radius);
}
[data-rs-skeleton][data-rs-variant="circle"] {
width: var(--skeleton-circle-size);
height: var(--skeleton-circle-size);
border-radius: var(--skeleton-circle-radius);
}
[data-rs-skeleton][data-rs-variant="rectangle"] {
height: var(--skeleton-rectangle-height);
border-radius: var(--skeleton-rectangle-radius);
}
[data-rs-skeleton][data-rs-state~="loading"]::after {
animation: skeleton-shimmer var(--skeleton-shimmer-duration) var(--skeleton-shimmer-ease) infinite;
}
@keyframes skeleton-shimmer {
0% { transform: translateX(-100%); }
100% { transform: translateX(100%); }
}
[data-rs-slider] {
position: relative;
width: 100%;
height: var(--slider-height);
padding: var(--slider-padding);
display: flex;
align-items: center;
cursor: pointer;
user-select: none;
touch-action: none;
}
[data-rs-slider-track] {
cursor: pointer;
position: relative;
width: 100%;
height: var(--slider-track-height);
background: var(--slider-track-bg);
border-radius: var(--slider-track-radius);
}
[data-rs-slider-range] {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: var(--slider-fill, 50%);
background: var(--slider-range-bg);
border-radius: var(--slider-track-radius);
transition: width var(--slider-transition-duration) var(--slider-transition-ease);
}
[data-rs-slider-thumb] {
position: absolute;
top: 50%;
left: var(--slider-fill, 50%);
transform: translate(-50%, -50%);
width: var(--slider-thumb-size);
height: var(--slider-thumb-size);
background: var(--slider-thumb-bg);
border: var(--slider-thumb-border-width) solid var(--slider-thumb-border-color);
border-radius: var(--slider-thumb-radius);
cursor: grab;
z-index: 2;
transition:
box-shadow var(--slider-transition-duration) var(--slider-transition-ease),
transform var(--slider-transition-duration) var(--slider-transition-ease);
}
[data-rs-slider-thumb]:active {
cursor: grabbing;
}
[data-rs-slider-thumb]:focus-visible {
outline: none;
box-shadow: 0 0 0 var(--slider-thumb-focus-ring-width) var(--slider-thumb-focus-ring-color);
}
[data-rs-slider][data-rs-state~="active"] [data-rs-slider-thumb] {
cursor: grabbing;
box-shadow: 0 0 0 var(--slider-thumb-focus-ring-width) var(--slider-thumb-focus-ring-color);
}
[data-rs-slider][data-rs-state~="disabled"] {
opacity: var(--slider-disabled-opacity);
pointer-events: none;
cursor: not-allowed;
}
[data-rs-slider-marks] {
position: absolute;
bottom: calc(50% - var(--slider-track-height) / 2 - var(--slider-mark-gap) - var(--slider-mark-height));
left: 0;
width: 100%;
height: var(--slider-mark-height);
pointer-events: none;
}
[data-rs-slider-mark] {
position: absolute;
top: 0;
transform: translateX(-50%);
width: var(--slider-mark-width);
height: var(--slider-mark-height);
background: var(--slider-mark-color);
border-radius: var(--radius-full);
}
[data-rs-slider-thumb]:hover:not([data-rs-state~="disabled"]) {
transform: translate(-50%, -50%) scale(var(--slider-thumb-hover-scale));
box-shadow: 0 0 0 6px color-mix(in srgb, var(--slider-thumb-bg) 20%, transparent);
}
[data-rs-slider]:hover:not([data-rs-state~="disabled"]) [data-rs-slider-track] {
background: color-mix(in srgb, var(--slider-track-bg) 80%, var(--theme-surface-fg) 20%);
}
[data-rs-slider]:hover:not([data-rs-state~="disabled"]) [data-rs-slider-range] {
filter: brightness(1.15);
}
[data-rs-spinner] {
display: inline-block;
animation: spinner-rotate var(--spinner-rotation-duration) var(--spinner-rotation-ease) infinite;
}
[data-rs-spinner][data-rs-size="sm"] {
width: var(--spinner-size-sm);
height: var(--spinner-size-sm);
}
[data-rs-spinner][data-rs-size="md"] {
width: var(--spinner-size-md);
height: var(--spinner-size-md);
}
[data-rs-spinner][data-rs-size="lg"] {
width: var(--spinner-size-lg);
height: var(--spinner-size-lg);
}
[data-rs-spinner][data-rs-state~="idle"] {
opacity: var(--spinner-opacity-paused);
animation-play-state: paused;
}
[data-rs-spinner][data-rs-state~="loading"] {
animation-play-state: running;
}
[data-rs-spinner] path {
stroke: var(--spinner-color);
stroke-width: var(--spinner-stroke-width);
stroke-linecap: round;
fill: none;
}
@keyframes spinner-rotate {
100% { transform: rotate(360deg); }
}
[data-rs-stack] {
display: flex;
flex-direction: column;
gap: var(--stack-default-gap);
}
[data-rs-stack][data-rs-direction="horizontal"] {
flex-direction: row;
align-items: center;
}
[data-rs-stack][data-rs-direction="vertical"] {
flex-direction: column;
}
[data-rs-stack][data-rs-gap="2xs"] { gap: var(--space-2xs); }
[data-rs-stack][data-rs-gap="xs"] { gap: var(--space-xs); }
[data-rs-stack][data-rs-gap="sm"] { gap: var(--space-sm); }
[data-rs-stack][data-rs-gap="md"] { gap: var(--space-md); }
[data-rs-stack][data-rs-gap="lg"] { gap: var(--space-lg); }
[data-rs-stack][data-rs-gap="xl"] { gap: var(--space-xl); }
[data-rs-stack][data-rs-gap="2xl"] { gap: var(--space-2xl); }
[data-rs-stack][data-rs-gap="0"] { gap: 0; }
[data-rs-stack] [data-rs-region="items"] {
display: contents;
}
[data-rs-stat] {
display: block;
}
[data-rs-stat-wrapper] {
display: flex;
flex-direction: column;
gap: var(--stat-gap);
}
[data-rs-stat-wrapper][data-rs-align="start"] { align-items: flex-start; }
[data-rs-stat-wrapper][data-rs-align="center"] { align-items: center; }
[data-rs-stat-wrapper][data-rs-align="end"] { align-items: flex-end; }
[data-rs-stat-header] {
display: flex;
align-items: center;
gap: var(--space-xs);
}
[data-rs-stat-body] {
display: flex;
align-items: baseline;
gap: var(--space-sm);
}
[data-rs-stat-label] {
font-size: var(--stat-label-font-size);
font-weight: var(--stat-label-font-weight);
color: var(--stat-label-fg);
}
[data-rs-stat-value] {
font-size: var(--stat-value-font-size);
font-weight: var(--stat-value-font-weight);
color: var(--stat-value-fg);
line-height: var(--line-height-tight);
font-variant-numeric: tabular-nums;
}
[data-rs-stat-wrapper][data-rs-size="sm"] [data-rs-stat-value] { font-size: var(--stat-size-sm-value); }
[data-rs-stat-wrapper][data-rs-size="md"] [data-rs-stat-value] { font-size: var(--stat-size-md-value); }
[data-rs-stat-wrapper][data-rs-size="lg"] [data-rs-stat-value] { font-size: var(--stat-size-lg-value); }
[data-rs-stat-delta] {
font-size: var(--stat-delta-font-size);
font-weight: var(--stat-delta-font-weight);
font-variant-numeric: tabular-nums;
}
[data-rs-stat-wrapper][data-rs-trend="increase"] [data-rs-stat-delta] { color: var(--stat-trend-increase-color); }
[data-rs-stat-wrapper][data-rs-trend="decrease"] [data-rs-stat-delta] { color: var(--stat-trend-decrease-color); }
[data-rs-stat-wrapper][data-rs-trend="neutral"] [data-rs-stat-delta] { color: var(--stat-trend-neutral-color); }
[data-rs-stat-icon] {
display: inline-flex;
align-items: center;
justify-content: center;
width: var(--stat-icon-size);
height: var(--stat-icon-size);
flex-shrink: 0;
}
[data-rs-stat-wrapper][data-rs-state~="loading"] [data-rs-stat-value],
[data-rs-stat-wrapper][data-rs-state~="loading"] [data-rs-stat-label] {
background: var(--stat-skeleton-bg);
color: transparent;
border-radius: var(--radius-sm);
animation: stat-pulse var(--motion-duration-deliberate) var(--motion-ease-standard) infinite;
}
[data-rs-stat-wrapper][data-rs-state~="loading"] [data-rs-stat-delta],
[data-rs-stat-wrapper][data-rs-state~="loading"] [data-rs-stat-icon] {
opacity: var(--opacity-disabled);
}
@keyframes stat-pulse {
0%, 100% { opacity: 1; }
50% { opacity: var(--opacity-disabled); }
}
[data-rs-status-dot] {
display: inline-block;
width: var(--status-dot-size);
height: var(--status-dot-size);
border-radius: var(--status-dot-radius);
}
[data-rs-status-dot][data-rs-variant="online"] {
background: var(--status-dot-bg-online);
}
[data-rs-status-dot][data-rs-variant="offline"] {
background: var(--status-dot-bg-offline);
}
[data-rs-status-dot][data-rs-variant="away"] {
background: var(--status-dot-bg-away);
}
[data-rs-status-dot][data-rs-variant="busy"] {
background: var(--status-dot-bg-busy);
}
[data-rs-status-dot][data-rs-variant="do-not-disturb"] {
background: var(--status-dot-bg-do-not-disturb);
opacity: 0.6;
}
[data-rs-status-dot][data-rs-variant="connecting"],
[data-rs-status-dot][data-rs-state~="connecting"] {
background: var(--status-dot-bg-online);
animation: status-dot-pulse var(--motion-duration-slow) var(--motion-ease-standard) infinite;
}
[data-rs-status-dot][data-rs-variant="syncing"],
[data-rs-status-dot][data-rs-state~="syncing"] {
background: var(--status-dot-bg-away);
animation: status-dot-pulse var(--motion-duration-slow) var(--motion-ease-standard) infinite;
}
@keyframes status-dot-pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
}
[data-rs-switch] {
display: inline-flex;
align-items: center;
position: relative;
width: var(--switch-width);
height: var(--switch-height);
background: var(--switch-track-bg);
border-radius: var(--switch-radius);
cursor: pointer;
transition: background var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-switch-input] {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
opacity: 0;
cursor: pointer;
margin: 0;
}
[data-rs-switch-thumb] {
display: block;
width: var(--switch-thumb-size);
height: var(--switch-thumb-size);
background: var(--switch-thumb-bg);
border-radius: var(--switch-thumb-radius);
transition: transform var(--motion-duration-fast) var(--motion-ease-standard);
transform: translateX(var(--switch-thumb-translate-unchecked));
}
[data-rs-switch][data-rs-state~="selected"] {
background: var(--switch-track-bg-checked);
}
[data-rs-switch][data-rs-state~="selected"] [data-rs-switch-thumb] {
background: var(--switch-thumb-bg-checked);
transform: translateX(var(--switch-thumb-translate-checked));
}
[data-rs-switch][data-rs-state~="disabled"] {
opacity: var(--switch-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-switch][data-rs-state~="focus"] {
outline: none;
box-shadow: var(--focus-ring-shadow);
}
[data-rs-switch-input]:focus-visible ~ [data-rs-switch-thumb] {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-table-wrapper] {
width: 100%;
overflow-x: auto;
}
[data-rs-table] {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
}
[data-rs-table-header] {
background: var(--table-header-bg);
border-bottom: var(--table-border-width) solid var(--table-border-color);
}
[data-rs-table-row] {
height: var(--table-row-height);
border-bottom: var(--table-border-width) solid var(--table-border-color);
transition:
background var(--table-row-transition-duration) var(--table-row-transition-ease),
color var(--table-row-transition-duration) var(--table-row-transition-ease);
}
[data-rs-table-row][data-rs-state~="hover"] {
background: var(--table-row-bg-hover);
}
[data-rs-table-row][data-rs-state~="selected"] {
background: var(--table-row-bg-selected);
}
[data-rs-table-head] {
height: var(--table-header-height);
padding-inline: var(--table-cell-padding-x);
padding-block: var(--table-cell-padding-y);
text-align: left;
font-size: var(--table-header-font-size);
font-weight: var(--table-header-font-weight);
color: var(--table-header-fg);
cursor: pointer;
user-select: none;
}
[data-rs-table-head][data-rs-sort="ascending"]::after {
content: " ↑";
}
[data-rs-table-head][data-rs-sort="descending"]::after {
content: " ↓";
}
[data-rs-table-cell] {
padding-inline: var(--table-cell-padding-x);
padding-block: var(--table-cell-padding-y);
font-size: var(--table-cell-font-size);
font-weight: var(--font-weight-normal);
color: var(--table-cell-fg);
}
[data-rs-table-caption] {
padding-block: var(--table-caption-padding-y);
font-size: var(--table-caption-font-size);
color: var(--table-caption-fg);
text-align: left;
}
[data-rs-table][data-rs-striped] [data-rs-table-row][data-rs-state~="odd"] {
background: var(--table-row-bg-striped);
}
[data-rs-table-row][data-rs-action="navigate"] {
cursor: pointer;
}
[data-rs-table-cell][data-rs-copyable] {
cursor: copy;
position: relative;
transition: background var(--table-row-transition-duration) var(--table-row-transition-ease);
}
[data-rs-table-cell][data-rs-copyable][data-rs-state~="hover"] {
background: var(--table-row-bg-hover);
}
[data-rs-table-cell][data-rs-state~="copied"]::after {
content: attr(data-rs-copy-label);
position: absolute;
top: 50%;
right: var(--space-sm);
transform: translateY(-50%);
background: var(--theme-action-accent-bg);
color: var(--theme-action-accent-fg);
font-size: var(--font-size-xs);
padding: var(--space-2xs) var(--space-xs);
border-radius: var(--radius-xs);
pointer-events: none;
}
[data-rs-table-cell][data-rs-truncate] {
max-width: var(--layout-width-xs);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
transition:
max-width var(--table-row-transition-duration) var(--motion-ease-standard),
white-space var(--table-row-transition-duration) var(--motion-ease-standard);
}
[data-rs-table-cell][data-rs-truncate][data-rs-state~="hover"] {
max-width: none;
overflow: visible;
text-overflow: unset;
white-space: normal;
word-break: break-all;
}
[data-rs-table][data-rs-state~="loading"] {
opacity: var(--opacity-disabled);
pointer-events: none;
}
[data-rs-table][data-rs-state~="error"] {
outline: var(--table-border-width) solid var(--theme-state-error-bg);
}
[data-rs-table][data-rs-state~="empty"] [data-rs-table-body] {
opacity: var(--opacity-disabled);
}
[data-rs-toc] {
display: flex;
flex-direction: column;
gap: var(--toc-gap);
width: 100%;
max-height: calc(100vh - var(--space-2xl));
overflow-y: auto;
overscroll-behavior: contain;
scrollbar-width: thin;
scrollbar-color: transparent transparent;
transition: scrollbar-color var(--motion-duration-normal) var(--motion-ease-standard);
}
[data-rs-toc][data-rs-state~="hover"] {
scrollbar-color: var(--theme-surface-border-muted) transparent;
}
[data-rs-toc]::-webkit-scrollbar { width: var(--space-xs); }
[data-rs-toc]::-webkit-scrollbar-track { background: transparent; }
[data-rs-toc]::-webkit-scrollbar-thumb {
background: transparent;
border-radius: var(--radius-full);
transition: background var(--motion-duration-normal) var(--motion-ease-standard);
}
[data-rs-toc][data-rs-state~="hover"]::-webkit-scrollbar-thumb {
background: var(--theme-surface-border-muted);
}
[data-rs-toc-title] {
font-size: var(--toc-title-font-size);
font-weight: var(--toc-title-font-weight);
color: var(--toc-title-fg);
text-transform: uppercase;
letter-spacing: var(--toc-title-letter-spacing);
margin-bottom: var(--space-xs);
padding: 0 var(--toc-link-padding-x);
}
[data-rs-toc-list] {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: var(--space-xs);
}
[data-rs-toc-item] {
list-style: none;
position: relative;
}
[data-rs-toc-item]::marker { content: none; display: none; }
[data-rs-toc-item]::before {
content: "";
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: var(--border-medium);
background: transparent;
border-radius: var(--radius-full);
transform-origin: top;
transform: scaleY(0);
transition: transform var(--motion-duration-fast) linear;
z-index: 2;
}
[data-rs-toc-item][data-rs-state~="active"]::before {
background: var(--theme-action-primary-bg);
transform: scaleY(var(--toc-progress-scale));
}
[data-rs-toc-link] {
display: block;
font-size: var(--toc-link-font-size);
line-height: var(--line-height-normal);
color: var(--toc-link-fg);
text-decoration: none;
padding: var(--toc-link-padding-y) var(--toc-link-padding-x);
border-radius: var(--toc-link-radius);
border-left: var(--toc-link-border-width) solid transparent;
transition: all var(--motion-duration-fast) var(--motion-ease-standard);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
[data-rs-toc-link][data-rs-state~="hover"]:not([data-rs-state~="active"]),
[data-rs-toc-item] [data-rs-toc-link][data-rs-state~="hover"]:not([data-rs-state~="active"]),
[data-rs-toc-item][data-rs-state~="ancestor"] [data-rs-toc-link][data-rs-state~="hover"] {
color: var(--theme-action-primary-bg) !important;
background: var(--toc-link-bg-hover);
opacity: 1;
}
[data-rs-toc-item][data-rs-state~="active"] [data-rs-toc-link] {
color: var(--theme-action-primary-bg);
border-left-color: var(--toc-link-border-active);
font-weight: var(--toc-link-font-weight-active);
}
[data-rs-toc-item][data-rs-state~="ancestor"] [data-rs-toc-link] {
color: var(--theme-surface-fg);
background: transparent;
border-left-color: transparent;
font-weight: var(--font-weight-normal);
opacity: var(--opacity-hover);
}
[data-rs-toc-item][data-rs-level="1"] [data-rs-toc-link] { padding-left: var(--toc-link-padding-x); }
[data-rs-toc-item][data-rs-level="2"] [data-rs-toc-link] { padding-left: var(--toc-indent-l2); }
[data-rs-toc-item][data-rs-level="3"] [data-rs-toc-link] { padding-left: var(--toc-indent-l3); }
[data-rs-toc-item][data-rs-level="4"] [data-rs-toc-link] { padding-left: var(--toc-indent-l4); }
[data-rs-toc-item][data-rs-level="5"] [data-rs-toc-link] { padding-left: var(--toc-indent-l5); }
[data-rs-toc][data-rs-mode="simple"] [data-rs-toc-item] { display: block; }
[data-rs-toc][data-rs-mode="expand"] [data-rs-toc-item][data-rs-child="true"] {
max-height: 0;
overflow: hidden;
opacity: 0;
transition:
max-height var(--toc-child-transition-duration) var(--toc-child-transition-ease),
opacity var(--motion-duration-fast) var(--motion-ease-standard),
margin var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-toc][data-rs-mode="expand"] [data-rs-toc-item][data-rs-child="true"][data-rs-state~="visible"] {
max-height: var(--toc-child-max-height);
opacity: 1;
}
[data-rs-toc][data-rs-mode="nested"] [data-rs-toc-item] {
display: flex;
flex-direction: column;
}
[data-rs-toc][data-rs-mode="nested"] [data-rs-toc-item][data-rs-has-children="true"] {
display: flex;
flex-direction: column;
}
[data-rs-toc][data-rs-mode="nested"] [data-rs-toc-item][data-rs-has-children="true"] > .toc-item-row {
display: flex;
flex-direction: row;
align-items: center;
gap: var(--space-2xs);
}
[data-rs-toc-expand-btn] {
flex-shrink: 0;
width: var(--toc-expand-btn-size);
height: var(--toc-expand-btn-size);
display: inline-flex;
align-items: center;
justify-content: center;
background: transparent;
border: none;
cursor: pointer;
color: var(--theme-surface-fg-muted);
opacity: 0.5;
font-size: var(--font-size-xs);
padding: 0;
border-radius: var(--toc-expand-btn-radius);
transition:
transform var(--motion-duration-fast) var(--motion-ease-standard),
opacity var(--motion-duration-fast) var(--motion-ease-standard),
color var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-toc-expand-btn][data-rs-state~="expanded"] {
transform: rotate(90deg);
color: var(--theme-action-primary-bg);
opacity: 1;
}
[data-rs-toc-item][data-rs-state~="active"] [data-rs-toc-expand-btn],
[data-rs-toc-item][data-rs-state~="ancestor"] [data-rs-toc-expand-btn] {
opacity: 1;
color: var(--theme-action-primary-bg);
}
[data-rs-toc][data-rs-mode="nested"] [data-rs-toc-item][data-rs-has-children="true"] [data-rs-toc-link] {
flex: 1;
}
[data-rs-toc-expand-icon] {
display: block;
width: var(--space-sm);
height: var(--space-sm);
border-right: var(--border-thin) solid currentColor;
border-bottom: var(--border-thin) solid currentColor;
transform: rotate(-45deg);
transition: transform var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-toc-subtree] {
list-style: none;
padding: 0;
margin: 0;
padding-left: var(--toc-subtree-indent);
overflow: hidden;
display: flex;
flex-direction: column;
gap: var(--toc-subtree-gap);
transform-origin: top;
transition:
transform var(--toc-subtree-transition-duration) var(--toc-subtree-transition-ease),
opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-toc-subtree][data-rs-state~="closed"] {
transform: scaleY(0);
opacity: 0;
pointer-events: none;
height: 0;
overflow: hidden;
}
[data-rs-toc-subtree][data-rs-state~="open"] {
transform: scaleY(1);
opacity: 1;
pointer-events: auto;
}
[data-rs-toc-sticky] {
position: sticky;
top: var(--toc-sticky-top);
max-height: calc(100vh - var(--space-3xl));
overflow-y: auto;
padding: var(--toc-sticky-padding);
border: var(--border-thin) solid var(--toc-sticky-border-color);
border-radius: var(--toc-sticky-border-radius);
background: var(--toc-sticky-bg);
scrollbar-width: thin;
scrollbar-color: var(--theme-surface-border-muted) transparent;
}
[data-rs-toc-sticky]::-webkit-scrollbar { width: var(--space-xs); }
[data-rs-toc-sticky]::-webkit-scrollbar-track { background: transparent; }
[data-rs-toc-sticky]::-webkit-scrollbar-thumb {
background: var(--theme-surface-border-muted);
border-radius: var(--radius-full);
}
[data-rs-tabs] {
display: flex;
flex-direction: column;
gap: var(--tabs-gap);
}
[data-rs-tabs-list] {
display: flex;
background: var(--tabs-list-bg);
padding: var(--tabs-list-padding);
border-radius: var(--tabs-list-radius);
gap: var(--tabs-list-gap);
}
[data-rs-tabs-trigger] {
padding-inline: var(--tabs-trigger-padding-x);
padding-block: var(--tabs-trigger-padding-y);
border-radius: var(--tabs-trigger-radius);
color: var(--tabs-trigger-fg);
font-size: var(--tabs-trigger-font-size);
font-weight: var(--tabs-trigger-font-weight);
cursor: pointer;
background: transparent;
border: none;
transition:
background var(--tabs-trigger-transition-duration),
color var(--tabs-trigger-transition-duration),
opacity var(--tabs-trigger-transition-duration),
transform var(--tabs-trigger-transition-duration);
display: inline-flex;
align-items: center;
justify-content: center;
}
[data-rs-tabs-trigger][data-rs-state~="active"] {
color: var(--tabs-trigger-active-fg);
background: var(--tabs-trigger-active-bg);
}
[data-rs-tabs-trigger]:hover:not([data-rs-state~="disabled"]):not([data-rs-state~="active"]) {
color: var(--tabs-trigger-hover-fg);
background: var(--tabs-trigger-hover-bg);
}
[data-rs-tabs-trigger]:focus-visible {
outline: var(--tabs-trigger-focus-ring-width) solid var(--tabs-trigger-focus-ring-color);
outline-offset: var(--tabs-trigger-focus-ring-offset);
}
[data-rs-tabs-trigger][data-rs-state~="disabled"] {
opacity: var(--tabs-trigger-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-tabs-content][hidden] {
display: none;
}
[data-rs-tabs-content]:not([hidden]) {
padding: var(--tabs-content-padding);
}
[data-rs-textarea] {
width: 100%;
min-height: var(--textarea-min-height);
max-height: var(--textarea-max-height);
padding: var(--input-padding-y) var(--input-padding-x);
background: var(--input-bg);
color: var(--input-fg);
border: var(--input-border-width) solid var(--input-border-color);
border-radius: var(--input-radius);
font-family: var(--input-font-family);
font-size: var(--input-font-size);
font-weight: var(--input-font-weight);
line-height: var(--input-line-height);
resize: var(--textarea-resize);
transition: border-color var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-textarea]::placeholder {
color: var(--input-placeholder);
}
[data-rs-textarea][data-rs-variant="error"] {
border-color: var(--input-error-border);
}
[data-rs-textarea][data-rs-variant="success"] {
border-color: var(--input-success-border);
}
[data-rs-textarea][data-rs-variant="warning"] {
border-color: var(--input-warning-border);
}
[data-rs-textarea][data-rs-state~="focus"] {
outline: var(--input-focus-ring-width) solid var(--input-focus-ring-color);
outline-offset: var(--input-focus-ring-offset);
box-shadow: var(--input-focus-ring-shadow);
}
[data-rs-textarea][data-rs-state~="disabled"] {
opacity: var(--input-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-toast-viewport] {
position: fixed;
z-index: var(--toast-z-index);
display: flex;
flex-direction: column;
gap: var(--toast-viewport-gap);
max-width: var(--toast-viewport-max-width);
padding: var(--toast-viewport-padding);
}
[data-rs-toast-viewport][data-rs-position="top-right"] {
top: 0;
right: 0;
}
[data-rs-toast-viewport][data-rs-position="top-left"] {
top: 0;
left: 0;
}
[data-rs-toast-viewport][data-rs-position="bottom-right"] {
bottom: 0;
right: 0;
}
[data-rs-toast-viewport][data-rs-position="bottom-left"] {
bottom: 0;
left: 0;
}
[data-rs-toast] {
display: flex;
align-items: center;
gap: var(--toast-gap);
padding: var(--toast-padding);
border-radius: var(--toast-radius);
background: var(--toast-bg);
border: var(--toast-border-width) solid var(--toast-border-color);
box-shadow: var(--toast-shadow);
animation: toast-slide-in var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-toast][data-rs-state~="closed"] {
display: none;
animation: toast-slide-out var(--motion-duration-fast) var(--motion-ease-standard) forwards;
pointer-events: none;
}
[data-rs-toast][data-rs-variant="success"] {
background: var(--toast-success-bg);
border-color: var(--toast-success-border);
}
[data-rs-toast][data-rs-variant="error"] {
background: var(--toast-error-bg);
border-color: var(--toast-error-border);
}
[data-rs-toast][data-rs-variant="warning"] {
background: var(--toast-warning-bg);
border-color: var(--toast-warning-border);
}
@keyframes toast-slide-in {
from {
transform: translateX(100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes toast-slide-out {
from {
transform: translateX(0);
opacity: 1;
}
to {
transform: translateX(100%);
opacity: 0;
visibility: hidden;
}
}
[data-rs-toast][data-rs-state~="open"] {
display: flex;
animation: toast-slide-in var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-toast][data-rs-state~="closed"] {
display: none;
animation: toast-slide-out var(--motion-duration-fast) var(--motion-ease-standard) forwards;
pointer-events: none;
}
[data-rs-toggle] {
display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
cursor: pointer;
}
[data-rs-toggle] input {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}
[data-rs-toggle-content] {
display: inline-flex;
align-items: center;
justify-content: center;
padding: var(--toggle-padding);
color: var(--toggle-fg);
border: var(--toggle-border-width) solid transparent;
border-radius: var(--toggle-radius);
transition:
background var(--motion-duration-fast) var(--motion-ease-standard),
color var(--motion-duration-fast) var(--motion-ease-standard),
transform 80ms var(--motion-ease-standard),
opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-toggle][data-rs-state~="off"] [data-rs-toggle-content] {
background: var(--toggle-off-bg);
}
[data-rs-toggle][data-rs-state~="hover"]:not([data-rs-state~="on"]) [data-rs-toggle-content] {
background: var(--toggle-hover-bg);
}
[data-rs-toggle][data-rs-state~="active"] [data-rs-toggle-content] {
transform: scale(0.96);
background: var(--toggle-active-bg);
}
[data-rs-toggle][data-rs-state~="on"] [data-rs-toggle-content] {
background: var(--toggle-on-bg);
color: var(--toggle-on-fg);
}
[data-rs-toggle][data-rs-state~="hover"][data-rs-state~="on"] [data-rs-toggle-content] {
opacity: var(--opacity-hover);
}
[data-rs-toggle][data-rs-state~="focus"] [data-rs-toggle-content] {
outline: none;
box-shadow: 0 0 0 var(--toggle-focus-ring-width) var(--toggle-on-bg);
}
[data-rs-toggle][data-rs-disabled],
[data-rs-toggle][data-rs-state~="disabled"] {
opacity: var(--toggle-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-toggle-group] {
display: inline-flex;
flex-direction: var(--toggle-group-direction);
flex-wrap: var(--toggle-group-wrap);
background: var(--toggle-group-bg);
border-radius: var(--toggle-group-radius);
border: 1px solid var(--toggle-group-border);
overflow: hidden;
}
[data-rs-toggle-group] [data-rs-toggle] {
padding-inline: var(--toggle-group-item-padding-x);
padding-block: var(--toggle-group-item-padding-y);
border: none;
border-right: 1px solid var(--toggle-group-item-divider);
border-radius: 0;
background: transparent;
cursor: pointer;
transition:
background var(--motion-duration-fast) var(--motion-ease-standard),
color var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-toggle-group] [data-rs-toggle]:last-child {
border-right: none;
}
[data-rs-toggle-group] [data-rs-toggle]:hover:not([data-rs-state~="disabled"]):not([data-rs-state~="on"]) {
background: var(--toggle-group-item-hover-bg);
outline: 1px solid var(--toggle-group-border);
outline-offset: -1px;
}
[data-rs-toggle-group] [data-rs-toggle]:active:not([data-rs-state~="disabled"]) {
transform: scale(0.97);
}
[data-rs-toggle-group] [data-rs-toggle]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: -2px;
z-index: 1;
}
[data-rs-toggle-group] [data-rs-state~="on"] {
background: var(--toggle-on-bg);
color: var(--toggle-on-fg);
}
[data-rs-toggle-group] [data-rs-state~="off"] {
background: transparent;
}
[data-rs-toggle-group][data-rs-state~="disabled"],
[data-rs-toggle-group] [data-rs-state~="disabled"] {
opacity: var(--toggle-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-toolbar] {
display: flex;
align-items: center;
gap: var(--toolbar-gap);
padding: var(--toolbar-padding);
background: var(--toolbar-bg);
border: var(--border-thin) solid var(--toolbar-border-color);
border-radius: var(--radius-md);
}
[data-rs-toolbar][data-rs-variant="vertical"] {
flex-direction: column;
align-items: stretch;
}
[data-rs-toolbar-separator] {
flex-shrink: 0;
background: var(--toolbar-border-color);
}
[data-rs-toolbar][data-rs-variant="horizontal"] [data-rs-toolbar-separator],
[data-rs-toolbar]:not([data-rs-variant]) [data-rs-toolbar-separator] {
width: var(--border-thin);
height: var(--space-lg);
align-self: stretch;
}
[data-rs-toolbar][data-rs-variant="vertical"] [data-rs-toolbar-separator] {
width: 100%;
height: var(--border-thin);
}
[data-rs-toolbar-item] {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: var(--toolbar-item-size);
height: var(--toolbar-item-size);
padding-inline: var(--toolbar-item-padding-x);
padding-block: var(--toolbar-item-padding-y);
background: transparent;
color: var(--toolbar-item-fg);
border: none;
border-radius: var(--toolbar-item-radius);
cursor: pointer;
transition:
background var(--toolbar-item-transition) var(--motion-ease-standard),
color var(--toolbar-item-transition) var(--motion-ease-standard);
}
[data-rs-toolbar-item]:hover:not([disabled]):not([aria-pressed="true"]):not([data-rs-state~="disabled"]) {
background: var(--toolbar-item-bg-hover);
color: var(--toolbar-item-fg-hover);
}
[data-rs-toolbar-item]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-toolbar-item][aria-pressed="true"] {
background: var(--toolbar-item-bg-pressed);
color: var(--toolbar-item-fg-pressed);
}
[data-rs-toolbar-item][disabled] {
opacity: var(--toolbar-item-disabled-opacity);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-tooltip] {
position: relative;
display: inline-flex;
}
[data-rs-tooltip-trigger] {
cursor: default;
}
[data-rs-tooltip-content] {
position: absolute;
z-index: var(--tooltip-z-index);
background: var(--tooltip-bg);
color: var(--tooltip-fg);
padding: var(--tooltip-padding);
border-radius: var(--tooltip-radius);
font-size: var(--tooltip-font-size);
font-weight: var(--tooltip-font-weight);
box-shadow: var(--tooltip-shadow);
max-width: var(--tooltip-max-width);
white-space: nowrap;
pointer-events: none;
opacity: 0;
visibility: hidden;
transition:
opacity var(--tooltip-transition-duration) var(--tooltip-transition-ease),
visibility var(--tooltip-transition-duration) var(--tooltip-transition-ease),
transform var(--tooltip-transition-duration) var(--tooltip-transition-ease);
}
[data-rs-tooltip-content][data-rs-side="top"],
[data-rs-tooltip-content]:not([data-rs-side]) {
bottom: calc(100% + var(--tooltip-offset));
left: 50%;
transform: translateX(-50%) translateY(4px);
}
[data-rs-tooltip-content][data-rs-side="bottom"] {
top: calc(100% + var(--tooltip-offset));
left: 50%;
transform: translateX(-50%) translateY(-4px);
}
[data-rs-tooltip-content][data-rs-side="left"] {
right: calc(100% + var(--tooltip-offset));
top: 50%;
transform: translateY(-50%) translateX(4px);
}
[data-rs-tooltip-content][data-rs-side="right"] {
left: calc(100% + var(--tooltip-offset));
top: 50%;
transform: translateY(-50%) translateX(-4px);
}
[data-rs-tooltip-content][data-rs-state~="open"] {
opacity: 1;
visibility: visible;
}
[data-rs-tooltip-content][data-rs-side="top"][data-rs-state~="open"],
[data-rs-tooltip-content]:not([data-rs-side])[data-rs-state~="open"] {
transform: translateX(-50%) translateY(0);
}
[data-rs-tooltip-content][data-rs-side="bottom"][data-rs-state~="open"] {
transform: translateX(-50%) translateY(0);
}
[data-rs-tooltip-content][data-rs-side="left"][data-rs-state~="open"] {
transform: translateY(-50%) translateX(0);
}
[data-rs-tooltip-content][data-rs-side="right"][data-rs-state~="open"] {
transform: translateY(-50%) translateX(0);
}
[data-rs-tooltip-arrow] {
position: absolute;
width: var(--tooltip-arrow-size);
height: var(--tooltip-arrow-size);
background: var(--tooltip-bg);
transform: rotate(45deg);
pointer-events: none;
}
[data-rs-tooltip-content][data-rs-side="top"] [data-rs-tooltip-arrow],
[data-rs-tooltip-content]:not([data-rs-side]) [data-rs-tooltip-arrow] {
bottom: calc(var(--tooltip-arrow-size) / -2);
left: 50%;
margin-left: calc(var(--tooltip-arrow-size) / -2);
}
[data-rs-tooltip-content][data-rs-side="bottom"] [data-rs-tooltip-arrow] {
top: calc(var(--tooltip-arrow-size) / -2);
left: 50%;
margin-left: calc(var(--tooltip-arrow-size) / -2);
}
[data-rs-tooltip-content][data-rs-side="left"] [data-rs-tooltip-arrow] {
right: calc(var(--tooltip-arrow-size) / -2);
top: 50%;
margin-top: calc(var(--tooltip-arrow-size) / -2);
}
[data-rs-tooltip-content][data-rs-side="right"] [data-rs-tooltip-arrow] {
left: calc(var(--tooltip-arrow-size) / -2);
top: 50%;
margin-top: calc(var(--tooltip-arrow-size) / -2);
}
[data-rs-tree] {
display: flex;
flex-direction: column;
gap: var(--tree-gap);
min-width: var(--layout-width-xs);
}
[data-rs-tree-item] {
position: relative;
display: flex;
align-items: center;
gap: var(--space-xs);
min-height: var(--tree-item-height);
padding: var(--tree-item-padding-y) var(--tree-item-padding-x);
border-radius: var(--tree-item-radius);
color: var(--tree-item-fg);
font-size: var(--tree-item-font-size);
font-weight: var(--tree-item-font-weight-leaf);
cursor: pointer;
user-select: none;
transition:
background var(--tree-transition-duration) var(--tree-transition-ease),
color var(--tree-transition-duration) var(--tree-transition-ease);
}
[data-rs-tree-item][data-rs-depth="0"] {
padding-left: var(--tree-item-padding-x);
font-weight: var(--tree-item-font-weight-parent);
color: var(--tree-item-fg);
}
[data-rs-tree-item][data-rs-depth="1"] {
padding-left: var(--tree-indent-depth-1);
font-weight: var(--tree-item-font-weight-leaf);
color: var(--tree-item-fg-muted);
}
[data-rs-tree-item][data-rs-depth="2"] {
padding-left: var(--tree-indent-depth-2);
color: var(--tree-item-fg-muted);
}
[data-rs-tree-item][data-rs-depth="3"] {
padding-left: calc(var(--tree-indent-depth-2) + var(--tree-indent));
color: var(--tree-item-fg-muted);
}
[data-rs-tree-item]:hover:not([data-rs-state~="disabled"]) {
background: var(--tree-item-hover-bg);
color: var(--tree-item-fg);
}
[data-rs-tree-item]:focus-visible {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: -2px;
}
[data-rs-tree-item][data-rs-state~="selected"],
[data-rs-tree-item][data-rs-state~="active"] {
background: var(--tree-item-active-bg);
color: var(--tree-item-fg);
font-weight: var(--tree-item-font-weight-parent);
}
[data-rs-tree-item][data-rs-state~="active"]::before {
content: "";
position: absolute;
left: 0;
top: var(--space-xs);
bottom: var(--space-xs);
width: var(--border-medium);
background: var(--tree-item-active-indicator);
border-radius: var(--radius-full);
}
[data-rs-tree-item][data-rs-state~="disabled"] {
opacity: var(--opacity-disabled);
cursor: not-allowed;
pointer-events: none;
}
[data-rs-tree-toggle] {
display: inline-flex;
align-items: center;
justify-content: center;
width: var(--space-xl);
height: var(--space-xl);
flex-shrink: 0;
background: transparent;
border: none;
color: var(--tree-item-fg-muted);
cursor: pointer;
opacity: var(--opacity-disabled);
transition:
transform var(--tree-transition-duration) var(--tree-transition-ease),
opacity var(--tree-transition-duration) var(--tree-transition-ease);
padding: 0;
}
[data-rs-tree-item]:hover:not([data-rs-state~="disabled"]) [data-rs-tree-toggle] {
opacity: 1;
}
[data-rs-tree-item][data-rs-state~="expanded"] [data-rs-tree-toggle] {
transform: rotate(var(--tree-icon-rotation));
opacity: var(--opacity-hover);
}
[data-rs-tree-item][data-rs-state~="collapsed"] [data-rs-tree-toggle] {
transform: rotate(0deg);
}
[data-rs-tree-indent] {
display: inline-flex;
width: var(--space-xl);
height: var(--space-xl);
flex-shrink: 0;
}
[data-rs-tree-icon] {
width: var(--tree-icon-size);
height: var(--tree-icon-size);
flex-shrink: 0;
opacity: var(--opacity-disabled);
transition: opacity var(--tree-transition-duration) var(--tree-transition-ease);
}
[data-rs-tree-item]:hover:not([data-rs-state~="disabled"]) [data-rs-tree-icon],
[data-rs-tree-item][data-rs-state~="active"] [data-rs-tree-icon] {
opacity: 1;
}
[data-rs-tree-label] {
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
[data-rs-tree-group] {
display: flex;
flex-direction: column;
gap: var(--tree-gap);
position: relative;
}
[data-rs-tree-group]::before {
content: "";
position: absolute;
left: var(--tree-indent-depth-1);
top: 0;
bottom: 0;
width: var(--border-thin);
background: var(--tree-guide-color);
pointer-events: none;
}
[data-rs-tree-item][data-rs-state~="collapsed"] + [data-rs-tree-group],
[data-rs-tree-item]:not([data-rs-state~="expanded"]):not([data-rs-state~="collapsed"]) + [data-rs-tree-group] {
display: none;
}
[data-rs-tree-item][data-rs-state~="expanded"] + [data-rs-tree-group] {
display: flex;
}
[data-rs-virtual-list] {
width: 100%;
overflow: hidden;
}
[data-rs-virtual-list-viewport] {
width: 100%;
overflow-y: auto;
position: relative;
background: var(--virtual-list-bg);
border: var(--virtual-list-border-width) solid var(--virtual-list-border-color);
}
[data-rs-virtual-list-content] {
position: relative;
width: 100%;
}
[data-rs-virtual-list-item] {
display: flex;
align-items: center;
padding-inline: var(--virtual-list-item-padding-x);
gap: var(--virtual-list-item-gap);
font-size: var(--virtual-list-item-font-size);
color: var(--virtual-list-item-fg);
border-bottom: var(--virtual-list-border-width) solid var(--virtual-list-border-color);
box-sizing: border-box;
}
[data-rs-virtual-list-item]:hover:not([data-rs-state~="disabled"]):not([data-rs-state~="selected"]) {
background: var(--virtual-list-item-hover-bg);
}
[data-rs-virtual-list-item][data-rs-state~="selected"] {
background: var(--virtual-list-item-selected-bg);
}
[data-rs-drag-container] {
display: flex;
flex-direction: column;
gap: var(--composite-gap);
transition: background var(--composite-transition-duration) var(--composite-transition-ease);
}
[data-rs-drag-container][data-rs-state='open'] {
background: var(--composite-dropzone-bg);
border: var(--composite-dropzone-border-width) var(--composite-dropzone-border-style) var(--composite-dropzone-border-color);
border-radius: var(--composite-radius);
}
[data-rs-drag-handle] {
display: inline-flex;
align-items: center;
justify-content: center;
cursor: grab;
color: var(--theme-surface-fg-muted);
border-radius: var(--radius-sm);
transition: color var(--composite-transition-duration) var(--composite-transition-ease);
}
[data-rs-drag-handle][data-rs-state~="hover"] {
color: var(--theme-surface-fg);
background: var(--theme-surface-muted);
}
[data-rs-drag-handle][data-rs-state='open'] {
cursor: grabbing;
color: var(--theme-action-primary-bg);
}
[data-rs-event-row] {
display: flex;
align-items: baseline;
gap: var(--event-row-gap);
padding: var(--event-row-padding-y) 0;
border-bottom: var(--border-thin) solid var(--event-row-border-color);
font-size: var(--event-row-font-size);
}
[data-rs-event-row-label] {
font-weight: var(--event-row-primary-weight);
flex-shrink: 0;
width: var(--event-row-primary-width);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
[data-rs-event-row-msg] {
color: var(--event-row-secondary-fg);
font-size: var(--event-row-secondary-font-size);
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
min-width: 0;
}
[data-rs-event-row-time] {
color: var(--event-row-meta-fg);
font-family: var(--event-row-meta-font-family);
font-size: var(--event-row-meta-font-size);
flex-shrink: 0;
width: var(--event-row-meta-width);
text-align: right;
}
[data-rs-event-row][data-rs-kind='info'] [data-rs-event-row-label] { color: var(--color-info); }
[data-rs-event-row][data-rs-kind='warn'] [data-rs-event-row-label] { color: var(--color-warning); }
[data-rs-event-row][data-rs-kind='error'] [data-rs-event-row-label] { color: var(--color-destructive); }
[data-rs-event-row][data-rs-kind='success'] [data-rs-event-row-label] { color: var(--color-success); }
[data-rs-pin-button] {
display: inline-flex;
align-items: center;
gap: var(--pin-button-gap);
padding: var(--pin-button-padding);
font-size: var(--pin-button-font-size);
border-radius: var(--pin-button-radius);
background: var(--pin-button-bg);
color: var(--pin-button-fg);
border: none;
cursor: pointer;
}
[data-rs-pin-button][data-rs-state~="hover"] {
background: var(--pin-button-bg-hover);
}
[data-rs-pin-button][data-pin-state='pinned-left'],
[data-rs-pin-button][data-pin-state='pinned-right'] {
color: var(--pin-button-fg-pinned);
}
[data-rs-progress-mini] {
display: block;
width: 100%;
height: var(--progress-mini-height);
border-radius: var(--progress-mini-radius);
background: var(--progress-mini-bg);
overflow: hidden;
}
[data-rs-progress-mini-fill] {
height: 100%;
border-radius: var(--progress-mini-radius);
background: var(--progress-mini-fill-bg);
transition: var(--progress-mini-transition);
}
[data-rs-worker-card] {
display: flex;
flex-direction: column;
gap: var(--worker-card-gap);
padding: var(--worker-card-padding);
background: var(--worker-card-bg);
border: var(--worker-card-border-width) solid var(--worker-card-border-color);
border-radius: var(--worker-card-radius);
}
[data-rs-worker-card][data-rs-variant='noc'] {
background: var(--worker-card-noc-bg);
}
[data-rs-worker-card][data-rs-variant='compact'] {
padding: var(--worker-card-compact-padding);
}
[data-rs-worker-card-host] {
color: var(--worker-card-host-fg);
font-size: var(--worker-card-host-font-size);
}
[data-rs-worker-card-id] {
font-size: var(--worker-card-id-font-size);
font-family: var(--worker-card-id-font-family);
}
[data-rs-worker-card-stats] {
color: var(--worker-card-stats-fg);
font-size: var(--worker-card-host-font-size);
}
[data-rs-card] {
display: flex;
flex-direction: column;
height: 100%;
}
[data-rs-card][data-rs-variant="interactive"] {
cursor: pointer;
}
[data-rs-card] [data-rs-region="header"] {
display: flex;
flex-direction: column;
}
[data-rs-card] [data-rs-region="content"] {
display: flex;
flex-direction: column;
flex: 1;
}
[data-rs-card] [data-rs-region="footer"] {
display: flex;
margin-top: auto;
}
[data-rs-hero] {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: var(--hero-block-padding-y) var(--hero-block-padding-x);
gap: var(--hero-block-gap);
text-align: center;
min-height: var(--hero-block-min-height);
background: radial-gradient(circle at 50% 0%,
var(--color-primary-alpha-08),
transparent 55%);
}
[data-rs-hero] [data-rs-region="media"] {
display: flex;
align-items: center;
justify-content: center;
gap: var(--hero-block-media-gap);
}
[data-rs-hero] [data-rs-region="content"] {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--hero-block-gap);
max-width: var(--hero-block-max-width);
}
[data-rs-hero] [data-rs-region="actions"] {
display: flex;
align-items: center;
justify-content: center;
gap: var(--hero-block-actions-gap);
flex-wrap: wrap;
}
[data-rs-hero] [data-rs-region="header"] {
display: flex;
flex-direction: column;
align-items: center;
}
[data-rs-hero] [data-rs-region="footer"] {
display: flex;
align-items: center;
justify-content: center;
gap: var(--space-sm);
color: var(--theme-surface-fg);
font-size: var(--font-size-sm);
}
[data-rs-hero][data-rs-variant="split"] {
flex-direction: row;
text-align: left;
}
[data-rs-hero][data-rs-variant="split"] [data-rs-region="media"] {
flex: 1;
}
[data-rs-hero][data-rs-variant="split"] [data-rs-region="content"] {
flex: 1;
align-items: flex-start;
}
[data-rs-hero][data-rs-variant="media-top"] [data-rs-region="media"] {
order: -1;
}
[data-rs-page-header] {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--page-header-block-gap);
padding: var(--page-header-block-padding);
border-bottom: var(--page-header-block-border-width) solid var(--page-header-block-border-color);
}
[data-rs-page-header] [data-rs-region="breadcrumb"] {
margin-bottom: var(--page-header-block-breadcrumb-gap);
}
[data-rs-page-header] [data-rs-region="actions"] {
display: flex;
align-items: center;
gap: var(--page-header-block-actions-gap);
margin-left: auto;
}
[data-rs-page-header] [data-rs-region="title"] {
display: flex;
flex-direction: column;
}
[data-rs-page-header] [data-rs-region="subtitle"] {
display: flex;
flex-direction: column;
}
[data-rs-sidebar-layout] {
display: flex;
width: 100%;
min-height: 100%;
gap: var(--sidebar-layout-gap);
}
[data-rs-sidebar-layout] [data-rs-region="nav"] {
width: var(--sidebar-layout-nav-width);
flex-shrink: 0;
background: var(--sidebar-layout-nav-bg);
border-right: var(--sidebar-layout-nav-border);
padding: var(--sidebar-layout-nav-padding);
overflow-y: auto;
}
[data-rs-sidebar-layout][data-rs-side="right"] [data-rs-region="nav"] {
border-right: none;
border-left: var(--sidebar-layout-nav-border);
order: 1;
}
[data-rs-sidebar-layout] [data-rs-region="main"] {
flex: 1;
min-width: 0;
padding: var(--sidebar-layout-main-padding);
overflow-y: auto;
}
[data-rs-section] {
display: flex;
flex-direction: column;
padding: var(--section-block-padding);
gap: var(--section-block-gap);
}
[data-rs-section] [data-rs-region="header"] {
margin: var(--section-block-header-margin);
}
[data-rs-section] [data-rs-region="footer"] {
padding: var(--section-block-footer-padding);
border-top: var(--section-block-footer-border);
}
[data-rs-data-table] {
display: flex;
flex-direction: column;
gap: var(--data-table-block-gap);
width: 100%;
}
[data-rs-data-table] [data-rs-region="toolbar"] {
display: flex;
align-items: center;
gap: var(--data-table-block-toolbar-gap);
padding: var(--data-table-block-toolbar-padding);
}
[data-rs-data-table] [data-rs-region="header"] {
width: 100%;
}
[data-rs-data-table] [data-rs-region="table-wrap"] {
width: 100%;
min-height: 0;
flex: 1;
}
[data-rs-density-btn] {
cursor: pointer;
opacity: 0.5;
transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}
[data-rs-density-btn][data-active="true"] {
opacity: 1;
font-weight: var(--font-weight-semibold);
}
[data-rs-table-cell]:first-child,
[data-rs-table-head]:first-child {
width: var(--space-2xl);
padding-inline: var(--space-sm);
vertical-align: middle;
}
[data-rs-data-table] [data-rs-region="body"] {
width: 100%;
}
[data-rs-data-table] [data-rs-region="empty"] {
display: flex;
align-items: center;
justify-content: center;
padding: var(--data-table-block-empty-padding);
}
[data-rs-data-table] [data-rs-region="pagination"] {
display: flex;
align-items: center;
justify-content: flex-end;
padding: var(--data-table-block-pagination-padding);
}
[data-rs-stat-group] {
padding: var(--stat-group-block-padding);
}
[data-rs-stat-group] [data-rs-region="stats"] {
gap: var(--stat-group-block-gap);
}
[data-rs-form-field] {
display: flex;
flex-direction: column;
gap: var(--form-field-block-gap);
}
[data-rs-form-field] [data-rs-region="label"] {
gap: var(--form-field-block-label-gap);
}
[data-rs-form-field] [data-rs-region="hint"] {
color: var(--form-field-block-hint-fg);
font-size: var(--form-field-block-hint-font-size);
}
[data-rs-form-field] [data-rs-region="error"] {
color: var(--form-field-block-error-fg);
font-size: var(--form-field-block-error-font-size);
}
[data-rs-flex] {
display: flex;
}
[data-rs-flex][data-rs-direction="row"] { flex-direction: row; }
[data-rs-flex][data-rs-direction="column"] { flex-direction: column; }
[data-rs-flex][data-rs-direction="row-reverse"] { flex-direction: row-reverse; }
[data-rs-flex][data-rs-direction="column-reverse"] { flex-direction: column-reverse; }
[data-rs-flex][data-rs-justify="start"] { justify-content: flex-start; }
[data-rs-flex][data-rs-justify="end"] { justify-content: flex-end; }
[data-rs-flex][data-rs-justify="center"] { justify-content: center; }
[data-rs-flex][data-rs-justify="between"] { justify-content: space-between; }
[data-rs-flex][data-rs-justify="around"] { justify-content: space-around; }
[data-rs-flex][data-rs-justify="evenly"] { justify-content: space-evenly; }
[data-rs-flex][data-rs-align="stretch"] { align-items: stretch; }
[data-rs-flex][data-rs-align="start"] { align-items: flex-start; }
[data-rs-flex][data-rs-align="center"] { align-items: center; }
[data-rs-flex][data-rs-align="end"] { align-items: flex-end; }
[data-rs-flex][data-rs-align="baseline"] { align-items: baseline; }
[data-rs-flex][data-rs-gap="none"] { gap: 0; }
[data-rs-flex][data-rs-gap="xs"] { gap: var(--space-xs); }
[data-rs-flex][data-rs-gap="sm"] { gap: var(--space-sm); }
[data-rs-flex][data-rs-gap="md"] { gap: var(--space-md); }
[data-rs-flex][data-rs-gap="lg"] { gap: var(--space-lg); }
[data-rs-flex][data-rs-gap="xl"] { gap: var(--space-xl); }
[data-rs-flex][data-rs-wrap="true"] { flex-wrap: wrap; }
[data-rs-flex][data-rs-wrap="false"] { flex-wrap: nowrap; }
[data-rs-stack] {
display: flex;
}
[data-rs-stack][data-rs-direction="vertical"] { flex-direction: column; }
[data-rs-stack][data-rs-direction="horizontal"] { flex-direction: row; }
[data-rs-stack][data-rs-align="stretch"] { align-items: stretch; }
[data-rs-stack][data-rs-align="start"] { align-items: flex-start; }
[data-rs-stack][data-rs-align="center"] { align-items: center; }
[data-rs-stack][data-rs-align="end"] { align-items: flex-end; }
[data-rs-stack][data-rs-gap="none"] { gap: 0; }
[data-rs-stack][data-rs-gap="xs"] { gap: var(--space-xs); }
[data-rs-stack][data-rs-gap="sm"] { gap: var(--space-sm); }
[data-rs-stack][data-rs-gap="md"] { gap: var(--space-md); }
[data-rs-stack][data-rs-gap="lg"] { gap: var(--space-lg); }
[data-rs-stack][data-rs-gap="xl"] { gap: var(--space-xl); }
[data-rs-grid] {
display: grid;
}
[data-rs-grid][data-rs-cols="1"] { grid-template-columns: repeat(1, 1fr); }
[data-rs-grid][data-rs-cols="2"] { grid-template-columns: repeat(2, 1fr); }
[data-rs-grid][data-rs-cols="3"] { grid-template-columns: repeat(3, 1fr); }
[data-rs-grid][data-rs-cols="4"] { grid-template-columns: repeat(4, 1fr); }
[data-rs-grid][data-rs-cols="6"] { grid-template-columns: repeat(6, 1fr); }
[data-rs-grid][data-rs-cols="12"] { grid-template-columns: repeat(12, 1fr); }
[data-rs-grid][data-rs-cols="auto"] { grid-template-columns: repeat(auto-fit, minmax(var(--grid-min-col-width), 1fr)); }
[data-rs-grid][data-rs-gap="none"] { gap: 0; }
[data-rs-grid][data-rs-gap="xs"] { gap: var(--space-xs); }
[data-rs-grid][data-rs-gap="sm"] { gap: var(--space-sm); }
[data-rs-grid][data-rs-gap="md"] { gap: var(--space-md); }
[data-rs-grid][data-rs-gap="lg"] { gap: var(--space-lg); }
[data-rs-grid][data-rs-gap="xl"] { gap: var(--space-xl); }
[data-rs-center] {
display: flex;
}
[data-rs-center][data-rs-mode="horizontal"] {
justify-content: center;
}
[data-rs-center][data-rs-mode="vertical"] {
flex: 1;
align-items: center;
min-height: 100%;
}
[data-rs-center][data-rs-mode="both"] {
flex: 1;
align-items: center;
justify-content: center;
min-height: 100%;
}
[data-rs-container] {
width: 100%;
margin-left: auto;
margin-right: auto;
padding-left: var(--container-padding-x);
padding-right: var(--container-padding-x);
}
[data-rs-container][data-rs-size="sm"] { max-width: var(--container-size-sm); }
[data-rs-container][data-rs-size="md"] { max-width: var(--container-size-md); }
[data-rs-container][data-rs-size="lg"] { max-width: var(--container-size-lg); }
[data-rs-container][data-rs-size="xl"] { max-width: var(--container-size-xl); }
[data-rs-container][data-rs-size="full"] { max-width: 100%; }
[data-rs-container][data-rs-size="content"] {
max-width: var(--container-size-content);
}
[data-rs-spacer] {
flex: 1;
}
[data-rs-layout="marketing"] {
display: flex;
flex-direction: column;
min-height: var(--layout-min-height);
background: var(--layout-bg);
}
[data-rs-layout="marketing"] [data-rs-region="header"] {
height: var(--layout-header-height);
flex-shrink: 0;
display: flex;
align-items: center;
padding: var(--header-padding);
background: var(--header-bg);
border-bottom: var(--header-border);
}
[data-rs-layout="marketing"] [data-rs-region="hero"] {
display: flex;
align-items: center;
justify-content: center;
}
[data-rs-layout="marketing"] [data-rs-region="content"] {
flex: 1;
display: flex;
flex-direction: column;
height: 100%;
max-width: var(--layout-max-width);
margin: 0 auto;
width: 100%;
padding: var(--layout-padding);
gap: var(--layout-gap);
}
[data-rs-layout="marketing"] [data-rs-region="footer"] {
padding: var(--footer-padding);
border-top: var(--footer-border);
background: var(--footer-bg);
}
[data-rs-layout="dashboard"] {
display: flex;
flex-direction: column;
min-height: var(--layout-min-height);
background: var(--layout-bg);
}
[data-rs-layout="dashboard"] [data-rs-region="header"] {
height: var(--layout-header-height);
flex-shrink: 0;
display: flex;
align-items: center;
padding: var(--header-padding);
background: var(--header-bg);
border-bottom: var(--header-border);
position: sticky;
top: 0;
z-index: var(--layer-sticky);
}
[data-rs-layout="dashboard"] [data-rs-region="sidebar"] {
width: var(--layout-sidebar-width);
flex-shrink: 0;
background: var(--layout-bg);
border-right: var(--layout-border-width) solid var(--layout-border-color);
overflow-y: auto;
position: fixed;
top: var(--layout-header-height);
bottom: 0;
left: 0;
}
[data-rs-layout="dashboard"] [data-rs-region="content"] {
flex: 1;
display: flex;
flex-direction: column;
height: 100%;
margin-left: var(--layout-sidebar-width);
padding: var(--layout-region-padding);
overflow-y: auto;
}
[data-rs-layout="fullscreen"] {
display: flex;
flex-direction: column;
min-height: var(--layout-min-height);
background: var(--layout-bg);
}
[data-rs-layout="fullscreen"] [data-rs-region="header"] {
height: var(--layout-header-height);
flex-shrink: 0;
display: flex;
align-items: center;
padding: var(--header-padding);
background: var(--header-bg);
border-bottom: var(--header-border);
}
[data-rs-layout="fullscreen"] [data-rs-region="content"] {
flex: 1;
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
}
[data-rs-layout="page"] {
display: grid;
min-height: var(--layout-min-height);
gap: var(--page-layout-gap);
}
[data-rs-layout="page"][data-rs-variant="single"] {
grid-template-columns: 1fr;
}
[data-rs-layout="page"][data-rs-variant="with-sidebar"] {
grid-template-columns: var(--page-layout-sidebar-width) 1fr;
}
[data-rs-layout="page"][data-rs-variant="with-aside"] {
grid-template-columns: 1fr var(--page-layout-aside-width);
}
[data-rs-layout="page"][data-rs-variant="sidebar-and-aside"] {
grid-template-columns: var(--page-layout-sidebar-width) 1fr var(--page-layout-aside-width);
}
[data-rs-layout="page"] [data-rs-region="sidebar"] {
background: var(--page-layout-sidebar-bg);
border-right: var(--page-layout-sidebar-border);
padding: var(--page-layout-sidebar-padding);
overflow-y: auto;
}
[data-rs-layout="page"] [data-rs-region="content"] {
padding: var(--page-layout-content-padding);
min-width: 0;
overflow-y: auto;
}
[data-rs-layout="page"] [data-rs-region="aside"] {
background: var(--page-layout-aside-bg);
border-left: var(--page-layout-aside-border);
padding: var(--page-layout-aside-padding);
overflow-y: auto;
}
[data-rs-layout="split-view"] {
display: flex;
min-height: var(--layout-min-height);
background: var(--layout-bg);
}
[data-rs-layout="split-view"][data-rs-ratio="50-50"] [data-rs-region="left"],
[data-rs-layout="split-view"][data-rs-ratio="50-50"] [data-rs-region="right"] {
flex: 1;
}
[data-rs-layout="split-view"][data-rs-ratio="40-60"] [data-rs-region="left"] { flex: 4; }
[data-rs-layout="split-view"][data-rs-ratio="40-60"] [data-rs-region="right"] { flex: 6; }
[data-rs-layout="split-view"][data-rs-ratio="60-40"] [data-rs-region="left"] { flex: 6; }
[data-rs-layout="split-view"][data-rs-ratio="60-40"] [data-rs-region="right"] { flex: 4; }
[data-rs-layout="split-view"] [data-rs-region="left"] {
border-right: var(--layout-border-width) solid var(--layout-border-color);
overflow-y: auto;
padding: var(--layout-region-padding);
}
[data-rs-layout="split-view"] [data-rs-region="right"] {
overflow-y: auto;
padding: var(--layout-region-padding);
}
[data-rs-layout="three-pane"] {
display: grid;
grid-template-columns: var(--layout-sidebar-width) 1fr var(--layout-width-toc);
min-height: var(--layout-min-height);
background: var(--layout-bg);
}
[data-rs-layout="three-pane"] [data-rs-region="left"] {
border-right: var(--layout-border-width) solid var(--layout-border-color);
padding: var(--layout-region-padding);
overflow-y: auto;
}
[data-rs-layout="three-pane"] [data-rs-region="center"] {
padding: var(--layout-region-padding);
overflow-y: auto;
min-width: 0;
}
[data-rs-layout="three-pane"] [data-rs-region="right"] {
border-left: var(--layout-border-width) solid var(--layout-border-color);
padding: var(--layout-region-padding);
overflow-y: auto;
}
[data-rs-layout="wizard"] {
display: flex;
flex-direction: column;
min-height: var(--layout-min-height);
background: var(--layout-bg);
}
[data-rs-layout="wizard"] [data-rs-region="header"] {
padding: var(--header-padding);
background: var(--header-bg);
border-bottom: var(--header-border);
flex-shrink: 0;
}
[data-rs-layout="wizard"] [data-rs-region="stepper"] {
padding: var(--layout-padding);
border-bottom: var(--layout-border-width) solid var(--layout-border-color);
flex-shrink: 0;
}
[data-rs-layout="wizard"] [data-rs-region="content"] {
flex: 1;
display: flex;
flex-direction: column;
height: 100%;
padding: var(--layout-region-padding);
overflow-y: auto;
}
[data-rs-layout="wizard"] [data-rs-region="footer"] {
padding: var(--layout-padding);
border-top: var(--layout-border-width) solid var(--layout-border-color);
display: flex;
justify-content: flex-end;
gap: var(--layout-gap);
flex-shrink: 0;
}
html,
body {
margin: 0;
padding: 0;
min-height: 100vh;
background-color: var(--root-bg);
color: var(--root-fg);
}
html {
font-family: var(--font-family-sans);
font-weight: var(--font-weight-medium);
line-height: var(--line-height-normal);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
font-size: var(--font-size-md);
}
*,
*::before,
*::after {
box-sizing: border-box;
}
h1, h2, h3, h4, h5, h6 {
margin: 0;
font-weight: var(--font-weight-bold);
}
p {
margin: 0;
}
hr {
border: none;
border-top: 1px solid var(--root-border);
margin: var(--space-lg) 0;
}
:focus-visible {
outline: 2px solid var(--theme-action-focus-ring);
outline-offset: 2px;
}