2026-01-22 12:21:19 +02:00
|
|
|
|
@layer base {
|
|
|
|
|
|
:root {
|
|
|
|
|
|
color-scheme: light;
|
|
|
|
|
|
--oc-safe-area-top: 0px;
|
|
|
|
|
|
--oc-safe-area-right: 0px;
|
|
|
|
|
|
--oc-safe-area-bottom: 0px;
|
|
|
|
|
|
--oc-safe-area-bottom-visual: 0px;
|
|
|
|
|
|
--oc-safe-area-left: 0px;
|
|
|
|
|
|
--oc-header-height: 56px;
|
2026-04-26 00:58:40 +07:00
|
|
|
|
--oc-visual-viewport-offset-top: 0px;
|
|
|
|
|
|
--oc-visual-viewport-height: 100dvh;
|
2026-04-23 19:25:32 +07:00
|
|
|
|
--oc-wco-left-inset: 0px;
|
|
|
|
|
|
--oc-wco-right-inset: 0px;
|
|
|
|
|
|
--oc-wco-titlebar-height: 0px;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
--ui-regular-font-weight: 400;
|
|
|
|
|
|
--oc-scrollbar-thumb: oklch(0.32 0.03 50 / 0.4);
|
|
|
|
|
|
--oc-scrollbar-thumb-hover: oklch(0.32 0.03 50 / 0.6);
|
|
|
|
|
|
--padding-scale: 1;
|
2026-08-10 14:32:42 +03:00
|
|
|
|
/* Shared glass surfaces. Semantic surface tokens provide each tint. */
|
|
|
|
|
|
--oc-glass-blur: 22px;
|
|
|
|
|
|
--oc-glass-opacity: 52%;
|
|
|
|
|
|
--oc-glass-popover-opacity: 50%;
|
|
|
|
|
|
--oc-glass-tooltip-opacity: 62%;
|
|
|
|
|
|
--oc-glass-saturation: 1.24;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
|
|
|
|
|
|
/* Semantic typography defaults (must match SEMANTIC_TYPOGRAPHY) */
|
|
|
|
|
|
--text-markdown: 0.9375rem;
|
2026-02-16 14:15:19 +02:00
|
|
|
|
--text-code: 0.8125rem;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
--text-ui-header: 0.9375rem;
|
|
|
|
|
|
--text-ui-label: 0.8750rem;
|
|
|
|
|
|
--text-meta: 0.875rem;
|
|
|
|
|
|
--text-micro: 0.875rem;
|
2026-07-18 00:11:05 +03:00
|
|
|
|
--text-settings-page-title: 1.125rem;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
|
|
|
|
|
|
/* Default Light Theme */
|
|
|
|
|
|
--background: oklch(0.97 0.02 85); /* Warm sand background */
|
|
|
|
|
|
--foreground: oklch(0.25 0.02 40); /* Dark warm text */
|
|
|
|
|
|
--card: oklch(0.99 0.01 90); /* Bright sand card */
|
|
|
|
|
|
--card-foreground: oklch(0.25 0.02 40); /* Dark warm text */
|
|
|
|
|
|
--popover: oklch(0.99 0.01 90); /* Bright sand popover */
|
|
|
|
|
|
--popover-foreground: oklch(0.25 0.02 40); /* Dark warm text */
|
|
|
|
|
|
--primary: oklch(0.65 0.2 55); /* Primary accent - orange */
|
|
|
|
|
|
--primary-foreground: oklch(0.99 0.01 90); /* Light text on primary */
|
|
|
|
|
|
--secondary: oklch(0.92 0.02 80); /* Light sand */
|
|
|
|
|
|
--secondary-foreground: oklch(0.25 0.02 40); /* Dark warm text */
|
|
|
|
|
|
--muted: oklch(0.9 0.015 75); /* Muted sand */
|
|
|
|
|
|
--muted-foreground: oklch(0.45 0.02 50); /* Medium warm text */
|
|
|
|
|
|
--accent: oklch(0.92 0.02 80); /* Light sand accent */
|
|
|
|
|
|
--accent-foreground: oklch(0.25 0.02 40); /* Dark warm text */
|
|
|
|
|
|
--destructive: oklch(0.55 0.25 25); /* Warm red */
|
|
|
|
|
|
--destructive-foreground: oklch(0.99 0.01 90); /* Light text */
|
|
|
|
|
|
--border: oklch(0.85 0.02 70); /* Warm border */
|
|
|
|
|
|
--input: oklch(0.88 0.02 75); /* Input background */
|
|
|
|
|
|
--ring: oklch(0.65 0.2 55); /* Focus ring color */
|
2026-07-18 00:11:05 +03:00
|
|
|
|
--radius: 0.5625rem;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
--chart-1: oklch(0.58 0.15 230); /* Blue */
|
|
|
|
|
|
--chart-2: oklch(0.58 0.15 145); /* Oasis green */
|
|
|
|
|
|
--chart-3: oklch(0.65 0.2 55); /* Orange */
|
|
|
|
|
|
--chart-4: oklch(0.55 0.18 30); /* Rose */
|
|
|
|
|
|
--chart-5: oklch(0.6 0.16 85); /* Golden sand */
|
|
|
|
|
|
--sidebar: oklch(0.95 0.02 80); /* Slightly darker sand */
|
|
|
|
|
|
--sidebar-foreground: oklch(0.25 0.02 40); /* Dark warm text */
|
|
|
|
|
|
--sidebar-primary: oklch(0.65 0.2 55); /* Primary accent */
|
|
|
|
|
|
--sidebar-primary-foreground: oklch(0.99 0.01 90); /* Light text */
|
|
|
|
|
|
--sidebar-accent: oklch(0.9 0.02 75); /* Light sand accent */
|
|
|
|
|
|
--sidebar-accent-foreground: oklch(0.25 0.02 40); /* Dark warm text */
|
|
|
|
|
|
--sidebar-border: oklch(0.85 0.02 70); /* Warm border */
|
|
|
|
|
|
--sidebar-ring: oklch(0.65 0.2 55); /* Focus ring */
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark {
|
2026-08-10 14:32:42 +03:00
|
|
|
|
--oc-glass-blur: 26px;
|
|
|
|
|
|
--oc-glass-opacity: 50%;
|
|
|
|
|
|
--oc-glass-popover-opacity: 52%;
|
|
|
|
|
|
--oc-glass-tooltip-opacity: 64%;
|
|
|
|
|
|
--oc-glass-saturation: 1.16;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
/* Default Dark Theme - using OKLCH color space */
|
|
|
|
|
|
--background: oklch(0.16 0.01 30); /* #151313 */
|
|
|
|
|
|
--foreground: oklch(0.85 0.02 90); /* #cdccc3 */
|
|
|
|
|
|
--card: oklch(0.19 0.01 40); /* #1C1B1A */
|
|
|
|
|
|
--card-foreground: oklch(0.85 0.02 90); /* #cdccc3 */
|
|
|
|
|
|
--popover: oklch(0.24 0.01 40); /* #282726 */
|
|
|
|
|
|
--popover-foreground: oklch(0.85 0.02 90); /* #cdccc3 */
|
|
|
|
|
|
--primary: oklch(0.77 0.17 85); /* #edb449 - golden sand */
|
|
|
|
|
|
--primary-foreground: oklch(0.16 0.01 30); /* #151313 */
|
|
|
|
|
|
--secondary: oklch(0.29 0.01 40); /* #343331 */
|
|
|
|
|
|
--secondary-foreground: oklch(0.85 0.02 90); /* #cdccc3 */
|
|
|
|
|
|
--muted: oklch(0.33 0.01 40); /* #403E3C */
|
|
|
|
|
|
--muted-foreground: oklch(0.75 0.02 80); /* #b6b4ab */
|
|
|
|
|
|
--accent: oklch(0.29 0.01 40); /* #343331 */
|
|
|
|
|
|
--accent-foreground: oklch(0.85 0.02 90); /* #cdccc3 */
|
|
|
|
|
|
--destructive: oklch(0.65 0.15 30); /* #d98678 */
|
|
|
|
|
|
--destructive-foreground: oklch(0.9 0.02 80); /* #e1dcd0 */
|
|
|
|
|
|
--border: oklch(0.31 0.01 35); /* #393836 */
|
|
|
|
|
|
--input: oklch(0.33 0.01 40); /* #403E3C */
|
|
|
|
|
|
--ring: oklch(0.77 0.17 85); /* #edb449 */
|
|
|
|
|
|
--chart-1: oklch(0.68 0.12 230); /* #5aa9d9 - blue */
|
|
|
|
|
|
--chart-2: oklch(0.68 0.12 145); /* #81af6c - green */
|
|
|
|
|
|
--chart-3: oklch(0.7 0.13 95); /* #c2974d - yellow */
|
|
|
|
|
|
--chart-4: oklch(0.65 0.14 45); /* #d8886d - coral */
|
|
|
|
|
|
--chart-5: oklch(0.68 0.12 55); /* #d29470 - orange */
|
|
|
|
|
|
--sidebar: oklch(0.16 0.01 30); /* #151313 */
|
|
|
|
|
|
--sidebar-foreground: oklch(0.85 0.02 90); /* #cdccc3 */
|
|
|
|
|
|
--sidebar-primary: oklch(0.77 0.17 85); /* #edb449 */
|
|
|
|
|
|
--sidebar-primary-foreground: oklch(0.16 0.01 30); /* #151313 */
|
|
|
|
|
|
--sidebar-accent: oklch(0.24 0.01 40); /* #282726 */
|
|
|
|
|
|
--sidebar-accent-foreground: oklch(0.85 0.02 90); /* #cdccc3 */
|
|
|
|
|
|
--sidebar-border: oklch(0.31 0.01 35); /* #393836 */
|
|
|
|
|
|
--sidebar-ring: oklch(0.77 0.17 85); /* #edb449 */
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
* {
|
2026-07-30 16:36:20 +03:00
|
|
|
|
border-color: var(--border); /* Theme border token (interactive.border) — opaque and theme-aware */
|
2026-01-22 12:21:19 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body {
|
|
|
|
|
|
background-color: hsl(var(--background));
|
|
|
|
|
|
color: hsl(var(--foreground));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
* {
|
|
|
|
|
|
@apply border-border outline-none;
|
|
|
|
|
|
}
|
|
|
|
|
|
body {
|
|
|
|
|
|
@apply bg-background text-foreground;
|
|
|
|
|
|
font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
|
|
|
|
|
|
font-weight: var(--ui-regular-font-weight, 400);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-27 16:14:09 +07:00
|
|
|
|
/* Prevent rubber-band scrolling of the page itself.
|
2026-02-05 01:59:49 +02:00
|
|
|
|
App scroll should live inside dedicated scroll containers. */
|
2026-04-27 16:14:09 +07:00
|
|
|
|
:root,
|
|
|
|
|
|
:root body,
|
|
|
|
|
|
:root #root {
|
2026-02-05 01:59:49 +02:00
|
|
|
|
height: 100%;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
overscroll-behavior: none;
|
|
|
|
|
|
overscroll-behavior-y: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-07 21:46:38 +03:00
|
|
|
|
:root.desktop-runtime body,
|
|
|
|
|
|
:root.desktop-runtime #root {
|
2026-04-01 11:54:21 +03:00
|
|
|
|
background: var(--background) !important;
|
|
|
|
|
|
background-color: var(--background) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-01-22 12:21:19 +02:00
|
|
|
|
.font-sans {
|
|
|
|
|
|
font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.font-mono,
|
|
|
|
|
|
code,
|
|
|
|
|
|
pre {
|
|
|
|
|
|
font-family: var(--font-mono, ui-monospace, SFMono-Regular, 'Liberation Mono', Menlo, monospace) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-06 20:18:20 +03:00
|
|
|
|
/* Restore default list styling inside markdown content - override Tailwind preflight */
|
|
|
|
|
|
.markdown-content ul,
|
|
|
|
|
|
.markdown-content ol {
|
|
|
|
|
|
padding-left: 2em !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.markdown-content ul {
|
|
|
|
|
|
list-style-type: none !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.markdown-content ul > li {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.markdown-content ul > li::before {
|
|
|
|
|
|
content: "–";
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: -1.25em;
|
|
|
|
|
|
color: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.markdown-content ol {
|
|
|
|
|
|
list-style-type: decimal !important;
|
|
|
|
|
|
list-style-position: outside !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.markdown-content li {
|
|
|
|
|
|
display: list-item !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-07-18 00:11:05 +03:00
|
|
|
|
/* Remove focus rings globally (except inputs/textareas/dropdowns/selects/explicit accent rings) */
|
|
|
|
|
|
*:focus:not(input):not(textarea):not([data-slot="dropdown-menu-content"]):not([data-slot="dropdown-menu-sub-content"]):not([data-slot="select-content"]):not(.focus-ring-accent):not([data-focus-ring="accent"]) {
|
2026-01-22 12:21:19 +02:00
|
|
|
|
outline: none !important;
|
|
|
|
|
|
box-shadow: none !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-07-18 00:11:05 +03:00
|
|
|
|
*:focus-visible:not(input):not(textarea):not([data-slot="dropdown-menu-content"]):not([data-slot="dropdown-menu-sub-content"]):not([data-slot="select-content"]):not(.focus-ring-accent):not([data-focus-ring="accent"]) {
|
2026-01-22 12:21:19 +02:00
|
|
|
|
outline: none !important;
|
|
|
|
|
|
box-shadow: none !important;
|
|
|
|
|
|
}
|
2026-07-18 00:11:05 +03:00
|
|
|
|
|
|
|
|
|
|
.focus-ring-accent:focus-visible,
|
|
|
|
|
|
[data-focus-ring="accent"]:focus-visible {
|
|
|
|
|
|
outline: 2px solid var(--primary-base) !important;
|
|
|
|
|
|
outline-offset: 2px !important;
|
|
|
|
|
|
box-shadow: none !important;
|
|
|
|
|
|
}
|
2026-01-22 12:21:19 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-08-10 14:32:42 +03:00
|
|
|
|
@layer components {
|
|
|
|
|
|
/* Shared translucent surfaces. Each variant only chooses its semantic tint;
|
|
|
|
|
|
blur, accessibility fallbacks, and floating-surface elevation stay common.
|
|
|
|
|
|
Utilities remain able to opt an individual consumer out. */
|
|
|
|
|
|
.oc-glass-popover,
|
|
|
|
|
|
.oc-glass-tooltip,
|
|
|
|
|
|
.oc-glass-panel {
|
|
|
|
|
|
background-color: color-mix(in srgb, var(--oc-glass-color) var(--oc-glass-opacity), transparent);
|
|
|
|
|
|
-webkit-backdrop-filter: blur(var(--oc-glass-blur)) saturate(var(--oc-glass-saturation));
|
|
|
|
|
|
backdrop-filter: blur(var(--oc-glass-blur)) saturate(var(--oc-glass-saturation));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.oc-glass-popover {
|
|
|
|
|
|
--oc-glass-color: var(--surface-elevated);
|
|
|
|
|
|
--oc-glass-opacity: var(--oc-glass-popover-opacity);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.oc-glass-tooltip {
|
|
|
|
|
|
--oc-glass-color: var(--surface-elevated);
|
|
|
|
|
|
--oc-glass-opacity: var(--oc-glass-tooltip-opacity);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.oc-glass-panel {
|
|
|
|
|
|
--oc-glass-color: var(--surface-muted);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.oc-glass-floating {
|
|
|
|
|
|
box-shadow:
|
|
|
|
|
|
inset 0 1px 0 0 rgb(255 255 255 / 0.8),
|
|
|
|
|
|
inset 0 0 0 1px rgb(0 0 0 / 0.04),
|
|
|
|
|
|
0 0 0 1px rgb(0 0 0 / 0.1),
|
|
|
|
|
|
0 1px 2px -0.5px rgb(0 0 0 / 0.08),
|
|
|
|
|
|
0 4px 8px -2px rgb(0 0 0 / 0.08),
|
|
|
|
|
|
0 12px 20px -4px rgb(0 0 0 / 0.08);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark .oc-glass-floating {
|
|
|
|
|
|
box-shadow:
|
|
|
|
|
|
inset 0 1px 0 0 rgb(255 255 255 / 0.12),
|
|
|
|
|
|
inset 0 0 0 1px rgb(255 255 255 / 0.08),
|
|
|
|
|
|
0 0 0 1px rgb(0 0 0 / 0.36),
|
|
|
|
|
|
0 1px 1px -0.5px rgb(0 0 0 / 0.22),
|
|
|
|
|
|
0 3px 3px -1.5px rgb(0 0 0 / 0.2),
|
|
|
|
|
|
0 6px 6px -3px rgb(0 0 0 / 0.16);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.oc-glass-backdrop {
|
|
|
|
|
|
-webkit-backdrop-filter: blur(4px);
|
|
|
|
|
|
backdrop-filter: blur(4px);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
|
|
|
|
|
|
.oc-glass-popover,
|
|
|
|
|
|
.oc-glass-tooltip,
|
|
|
|
|
|
.oc-glass-panel {
|
|
|
|
|
|
background-color: var(--oc-glass-color);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (prefers-reduced-transparency: reduce) {
|
|
|
|
|
|
.oc-glass-popover,
|
|
|
|
|
|
.oc-glass-tooltip,
|
|
|
|
|
|
.oc-glass-panel,
|
|
|
|
|
|
.oc-glass-backdrop {
|
|
|
|
|
|
-webkit-backdrop-filter: none;
|
|
|
|
|
|
backdrop-filter: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.oc-glass-popover,
|
|
|
|
|
|
.oc-glass-tooltip,
|
|
|
|
|
|
.oc-glass-panel {
|
|
|
|
|
|
background-color: var(--oc-glass-color);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-01-22 12:21:19 +02:00
|
|
|
|
@theme inline {
|
2026-04-19 15:52:54 +03:00
|
|
|
|
--radius-none: 0;
|
2026-07-18 00:11:05 +03:00
|
|
|
|
--radius-sm: 0.25rem; /* 4px */
|
|
|
|
|
|
--radius-md: 0.4375rem; /* 7px */
|
|
|
|
|
|
--radius-lg: 0.5625rem; /* 9px */
|
|
|
|
|
|
--radius-xl: 0.75rem; /* 12px */
|
2026-04-19 15:52:54 +03:00
|
|
|
|
--radius-full: 9999px;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
|
2026-07-18 00:11:05 +03:00
|
|
|
|
/* Semantic spacing aliases (4/8px grid) */
|
|
|
|
|
|
--space-1: var(--spacing-1); /* 4px */
|
|
|
|
|
|
--space-2: var(--spacing-2); /* 8px */
|
|
|
|
|
|
--space-3: var(--spacing-3); /* 12px */
|
|
|
|
|
|
--space-4: var(--spacing-4); /* 16px */
|
|
|
|
|
|
--space-6: var(--spacing-6); /* 24px */
|
|
|
|
|
|
--space-8: var(--spacing-8); /* 32px */
|
|
|
|
|
|
|
|
|
|
|
|
/* Elevation / stacking */
|
|
|
|
|
|
--z-base: 0;
|
|
|
|
|
|
--z-raised: 10;
|
|
|
|
|
|
--z-overlay: 40;
|
|
|
|
|
|
--z-modal: 50;
|
|
|
|
|
|
--transition-fast: 150ms ease-in-out;
|
|
|
|
|
|
|
2026-01-22 12:21:19 +02:00
|
|
|
|
/* Override Tailwind spacing scale with custom properties that respect --padding-scale */
|
|
|
|
|
|
--spacing-0: 0;
|
|
|
|
|
|
--spacing-0\.5: calc(0.125rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-1: calc(0.25rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-1\.5: calc(0.375rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-2: calc(0.5rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-2\.5: calc(0.625rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-3: calc(0.75rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-3\.5: calc(0.875rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-4: calc(1rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-5: calc(1.25rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-6: calc(1.5rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-7: calc(1.75rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-8: calc(2rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-9: calc(2.25rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-10: calc(2.5rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-11: calc(2.75rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-12: calc(3rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-14: calc(3.5rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-16: calc(4rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-20: calc(5rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-24: calc(6rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-28: calc(7rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-32: calc(8rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-36: calc(9rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-40: calc(10rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-44: calc(11rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-48: calc(12rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-52: calc(13rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-56: calc(14rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-60: calc(15rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-64: calc(16rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-72: calc(18rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-80: calc(20rem * var(--padding-scale, 1));
|
|
|
|
|
|
--spacing-96: calc(24rem * var(--padding-scale, 1));
|
|
|
|
|
|
|
|
|
|
|
|
--color-background: var(--background);
|
|
|
|
|
|
--color-foreground: var(--foreground);
|
|
|
|
|
|
--color-card: var(--card);
|
|
|
|
|
|
--color-card-foreground: var(--card-foreground);
|
|
|
|
|
|
--color-popover: var(--popover);
|
|
|
|
|
|
--color-popover-foreground: var(--popover-foreground);
|
|
|
|
|
|
--color-primary: var(--primary);
|
|
|
|
|
|
--color-primary-foreground: var(--primary-foreground);
|
|
|
|
|
|
--color-secondary: var(--secondary);
|
|
|
|
|
|
--color-secondary-foreground: var(--secondary-foreground);
|
|
|
|
|
|
--color-muted: var(--muted);
|
|
|
|
|
|
--color-muted-foreground: var(--muted-foreground);
|
|
|
|
|
|
--color-accent: var(--accent);
|
|
|
|
|
|
--color-accent-foreground: var(--accent-foreground);
|
|
|
|
|
|
--color-destructive: var(--destructive);
|
|
|
|
|
|
--color-border: var(--border);
|
|
|
|
|
|
--color-input: var(--input);
|
|
|
|
|
|
--color-ring: var(--ring);
|
|
|
|
|
|
--color-chart-1: var(--chart-1);
|
|
|
|
|
|
--color-chart-2: var(--chart-2);
|
|
|
|
|
|
--color-chart-3: var(--chart-3);
|
|
|
|
|
|
--color-chart-4: var(--chart-4);
|
|
|
|
|
|
--color-chart-5: var(--chart-5);
|
|
|
|
|
|
--color-sidebar: var(--sidebar);
|
|
|
|
|
|
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
|
|
|
|
--color-status-success: var(--status-success);
|
|
|
|
|
|
--color-status-warning: var(--status-warning);
|
|
|
|
|
|
--color-status-error: var(--status-error);
|
|
|
|
|
|
--color-status-info: var(--status-info);
|
|
|
|
|
|
--color-sidebar-primary: var(--sidebar-primary);
|
|
|
|
|
|
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
|
|
|
|
--color-sidebar-accent: var(--sidebar-accent);
|
|
|
|
|
|
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
|
|
|
|
--color-sidebar-border: var(--sidebar-border);
|
|
|
|
|
|
--color-sidebar-ring: var(--sidebar-ring);
|
|
|
|
|
|
|
2026-08-10 08:23:06 +03:00
|
|
|
|
/* Surface layer tokens (Theme.colors.surface.*) */
|
|
|
|
|
|
--color-surface-background: var(--surface-background);
|
|
|
|
|
|
--color-surface-foreground: var(--surface-foreground);
|
|
|
|
|
|
--color-surface-muted: var(--surface-muted);
|
|
|
|
|
|
--color-surface-muted-foreground: var(--surface-muted-foreground);
|
|
|
|
|
|
--color-surface-elevated: var(--surface-elevated);
|
|
|
|
|
|
--color-surface-elevated-foreground: var(--surface-elevated-foreground);
|
|
|
|
|
|
--color-surface-overlay: var(--surface-overlay);
|
|
|
|
|
|
--color-surface-subtle: var(--surface-subtle);
|
|
|
|
|
|
|
2026-02-01 18:29:34 +02:00
|
|
|
|
/* Interactive state tokens (Theme.colors.interactive.*) */
|
|
|
|
|
|
--color-interactive-hover: var(--interactive-hover);
|
|
|
|
|
|
--color-interactive-active: var(--interactive-active);
|
|
|
|
|
|
--color-interactive-selection: var(--interactive-selection);
|
|
|
|
|
|
--color-interactive-selection-foreground: var(--interactive-selection-foreground);
|
|
|
|
|
|
--color-interactive-border-hover: var(--interactive-border-hover);
|
|
|
|
|
|
--color-interactive-border-focus: var(--interactive-border-focus);
|
|
|
|
|
|
--color-interactive-focus-ring: var(--interactive-focus-ring);
|
|
|
|
|
|
|
|
|
|
|
|
/* Short aliases (optional) */
|
|
|
|
|
|
--color-border-hover: var(--interactive-border-hover);
|
|
|
|
|
|
--color-border-focus: var(--interactive-border-focus);
|
|
|
|
|
|
|
2026-01-22 12:21:19 +02:00
|
|
|
|
/* Markdown typography variables */
|
|
|
|
|
|
--markdown-body-font-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-body-line-height: var(--markdown-body-line-height);
|
|
|
|
|
|
--markdown-h1-font-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-h1-line-height: var(--markdown-h1-line-height);
|
|
|
|
|
|
--markdown-h2-font-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-h2-line-height: var(--markdown-h2-line-height);
|
|
|
|
|
|
--markdown-h3-font-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-h3-line-height: var(--markdown-h3-line-height);
|
|
|
|
|
|
--markdown-h4-font-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-h4-line-height: var(--markdown-h4-line-height);
|
|
|
|
|
|
--markdown-h5-font-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-h5-line-height: var(--markdown-h5-line-height);
|
|
|
|
|
|
--markdown-h6-font-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-h6-line-height: var(--markdown-h6-line-height);
|
|
|
|
|
|
--markdown-list-font-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-list-line-height: var(--markdown-list-line-height);
|
|
|
|
|
|
--markdown-code-block-font-size: var(--text-code);
|
|
|
|
|
|
--markdown-code-block-line-height: var(--markdown-code-block-line-height);
|
|
|
|
|
|
|
|
|
|
|
|
/* Markdown color variables */
|
|
|
|
|
|
--markdown-heading1: var(--markdown-heading1);
|
|
|
|
|
|
--markdown-heading2: var(--markdown-heading2);
|
|
|
|
|
|
--markdown-heading3: var(--markdown-heading3);
|
|
|
|
|
|
--markdown-heading4: var(--markdown-heading4);
|
|
|
|
|
|
--markdown-link: var(--markdown-link);
|
|
|
|
|
|
--markdown-link-hover: var(--markdown-link-hover);
|
|
|
|
|
|
--markdown-list-marker: var(--markdown-list-marker);
|
|
|
|
|
|
--markdown-inline-code: var(--markdown-inline-code);
|
|
|
|
|
|
--markdown-inline-code-bg: var(--markdown-inline-code-bg);
|
|
|
|
|
|
--markdown-blockquote: var(--markdown-blockquote);
|
|
|
|
|
|
--markdown-blockquote-border: var(--markdown-blockquote-border);
|
|
|
|
|
|
|
|
|
|
|
|
/* Markdown spacing defaults */
|
2026-06-18 01:00:05 +03:00
|
|
|
|
--markdown-paragraph-spacing: 0.75rem;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
--markdown-heading-primary-top: 0.75rem;
|
|
|
|
|
|
--markdown-heading-primary-bottom: 0.35rem;
|
|
|
|
|
|
--markdown-heading-secondary-top: 0.6rem;
|
|
|
|
|
|
--markdown-heading-secondary-bottom: 0.3rem;
|
|
|
|
|
|
--markdown-blockquote-spacing: 0.6rem;
|
|
|
|
|
|
--markdown-blockquote-padding: 0.75rem;
|
|
|
|
|
|
--markdown-divider-spacing: 0.85rem;
|
|
|
|
|
|
--markdown-table-spacing: 0.9rem;
|
|
|
|
|
|
--markdown-heading1-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-heading2-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-heading3-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-heading4-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-heading5-size: var(--text-markdown);
|
|
|
|
|
|
--markdown-heading6-size: var(--text-markdown);
|
2026-07-02 00:45:59 +03:00
|
|
|
|
--font-sans: "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
--font-heading: var(--font-sans);
|
2026-07-02 00:45:59 +03:00
|
|
|
|
--font-mono: ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace;
|
2026-01-22 12:21:19 +02:00
|
|
|
|
--font-family-sans: var(--font-sans);
|
|
|
|
|
|
--font-family-mono: var(--font-mono);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Agent color system using theme variables */
|
|
|
|
|
|
@layer components {
|
|
|
|
|
|
/* Agent color variants - each maps to theme colors */
|
|
|
|
|
|
.agent-primary {
|
|
|
|
|
|
--agent-color: var(--primary);
|
|
|
|
|
|
--agent-color-bg: var(--primary);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-info {
|
|
|
|
|
|
--agent-color: var(--status-info);
|
|
|
|
|
|
--agent-color-bg: var(--status-info);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-keyword {
|
|
|
|
|
|
--agent-color: var(--syntax-keyword);
|
|
|
|
|
|
--agent-color-bg: var(--syntax-keyword);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-success {
|
|
|
|
|
|
--agent-color: var(--status-success);
|
|
|
|
|
|
--agent-color-bg: var(--status-success);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-function {
|
|
|
|
|
|
--agent-color: var(--syntax-function);
|
|
|
|
|
|
--agent-color-bg: var(--syntax-function);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-number {
|
|
|
|
|
|
--agent-color: var(--syntax-number);
|
|
|
|
|
|
--agent-color-bg: var(--syntax-number);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-type {
|
|
|
|
|
|
--agent-color: var(--syntax-type);
|
|
|
|
|
|
--agent-color-bg: var(--syntax-type);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-warning {
|
|
|
|
|
|
--agent-color: var(--status-warning);
|
|
|
|
|
|
--agent-color-bg: var(--status-warning);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-variable {
|
|
|
|
|
|
--agent-color: var(--syntax-variable);
|
|
|
|
|
|
--agent-color-bg: var(--syntax-variable);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Apply colors with opacity for badges */
|
|
|
|
|
|
.agent-badge {
|
|
|
|
|
|
background: rgb(from var(--agent-color-bg) r g b / 0.1);
|
|
|
|
|
|
border: 1px solid rgb(from var(--agent-color) r g b / 0.2);
|
|
|
|
|
|
color: var(--agent-color);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-badge:hover {
|
|
|
|
|
|
background: rgb(from var(--agent-color-bg) r g b / 0.15);
|
|
|
|
|
|
border-color: rgb(from var(--agent-color) r g b / 0.3);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Agent dot indicator */
|
|
|
|
|
|
.agent-dot {
|
|
|
|
|
|
background: var(--agent-color);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Agent list item */
|
|
|
|
|
|
.agent-list-item:hover {
|
|
|
|
|
|
background: rgb(from var(--agent-color-bg) r g b / 0.05);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.agent-list-item.active {
|
|
|
|
|
|
background: rgb(from var(--agent-color-bg) r g b / 0.1);
|
|
|
|
|
|
border-color: rgb(from var(--agent-color) r g b / 0.2);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|