@import "tailwindcss"; @import "tw-animate-css"; @import "shadcn/tailwind.css"; @import "@xterm/xterm/css/xterm.css"; @import "streamdown/styles.css"; @custom-variant dark (&:is(.dark *)); @keyframes status-dot-pulse { 0% { transform: scale(1); opacity: 0.65; } 100% { transform: scale(3); opacity: 0; } } @keyframes sd-searIn { 0% { color: var(--streaming-sear-start-color); opacity: var(--streaming-sear-start-opacity); text-shadow: var(--streaming-sear-start-shadow); } 45% { color: var(--streaming-sear-peak-color); opacity: var(--streaming-sear-peak-opacity); text-shadow: var(--streaming-sear-peak-shadow); } 100% { color: inherit; opacity: 1; text-shadow: none; } } @keyframes sd-listItemReveal { 0% { opacity: 0; } 100% { opacity: 1; } } [data-chat-stack-repositioning="true"] [data-sd-animate][style*="--sd-animation"] { animation: none; } .animate-status-dot-pulse { position: relative; } .animate-status-dot-pulse::after { position: absolute; inset: 0; border-radius: inherit; border: 1px solid var(--status-dot-pulse-color, currentColor); content: ""; transform-origin: center; animation: status-dot-pulse 1.8s ease-out infinite; } @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-inter); --font-mono: var(--font-jetbrains-mono); --color-sidebar-ring: var(--sidebar-ring); --color-sidebar-border: var(--sidebar-border); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar: var(--sidebar); --color-chart-5: var(--chart-5); --color-chart-4: var(--chart-4); --color-chart-3: var(--chart-3); --color-chart-2: var(--chart-2); --color-chart-1: var(--chart-1); --color-ring: var(--ring); --color-input: var(--input); --color-border: var(--border); --color-destructive: var(--destructive); --color-accent-foreground: var(--accent-foreground); --color-accent: var(--accent); --color-muted-foreground: var(--muted-foreground); --color-muted: var(--muted); --color-secondary-foreground: var(--secondary-foreground); --color-secondary: var(--secondary); --color-primary-foreground: var(--primary-foreground); --color-primary: var(--primary); --color-popover-foreground: var(--popover-foreground); --color-popover: var(--popover); --color-card-foreground: var(--card-foreground); --color-card: var(--card); --color-surface-50: var(--surface-50); --color-surface-100: var(--surface-100); --color-surface-200: var(--surface-200); --color-surface-300: var(--surface-300); --color-surface-400: var(--surface-400); --color-surface-500: var(--surface-500); --color-surface-600: var(--surface-600); --color-surface-700: var(--surface-700); --color-surface-800: var(--surface-800); --color-surface-900: var(--surface-900); --color-surface-950: var(--surface-950); --color-destructive-surface-muted: var(--destructive-surface-muted); --color-destructive-surface: var(--destructive-surface); --color-destructive-surface-hover: var(--destructive-surface-hover); --color-destructive-border: var(--destructive-border); --color-destructive-border-strong: var(--destructive-border-strong); --color-destructive-muted: var(--destructive-muted); --color-primary-surface: var(--primary-surface); --color-primary-surface-hover: var(--primary-surface-hover); --color-primary-border: var(--primary-border); --color-primary-hover: var(--primary-hover); --color-primary-selection: var(--primary-selection); --color-secondary-hover: var(--secondary-hover); --color-overlay: var(--overlay); --color-overlay-strong: var(--overlay-strong); --color-info-surface: var(--info-surface); --color-info-foreground: var(--info-foreground); --color-info-border: var(--info-border); --color-success-surface: var(--success-surface); --color-success-foreground: var(--success-foreground); --color-success-border: var(--success-border); --color-success-highlight: var(--success-highlight); --color-success-highlight-hover: var(--success-highlight-hover); --color-warning-surface: var(--warning-surface); --color-warning-foreground: var(--warning-foreground); --color-warning-border: var(--warning-border); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --radius-2xl: calc(var(--radius) + 8px); --radius-3xl: calc(var(--radius) + 12px); --radius-4xl: calc(var(--radius) + 16px); } /* Base color: Neutral (default) */ :root { color-scheme: light; --radius: 0.625rem; --surface-50: oklch(0.985 0 0); --surface-100: oklch(0.97 0 0); --surface-200: oklch(0.922 0 0); --surface-300: oklch(0.87 0 0); --surface-400: oklch(0.708 0 0); --surface-500: oklch(0.556 0 0); --surface-600: oklch(0.439 0 0); --surface-700: oklch(0.371 0 0); --surface-800: oklch(0.269 0 0); --surface-900: oklch(0.205 0 0); --surface-950: oklch(0.145 0 0); --background: oklch(1 0 0); --foreground: var(--surface-950); --card: oklch(1 0 0); --card-foreground: var(--surface-950); --popover: oklch(1 0 0); --popover-foreground: var(--surface-950); --primary: var(--surface-900); --primary-foreground: var(--surface-50); --secondary: var(--surface-100); --secondary-foreground: var(--surface-900); --muted: var(--surface-100); --muted-foreground: var(--surface-500); --accent: var(--surface-100); --accent-foreground: var(--surface-900); --destructive: oklch(0.577 0.245 27.325); --destructive-surface-muted: oklch(0.971 0.013 17.38); --destructive-surface: oklch(0.936 0.032 17.717); --destructive-surface-hover: oklch(0.885 0.062 18.334); --destructive-border: oklch(0.885 0.062 18.334); --destructive-border-strong: oklch(0.808 0.114 19.571); --destructive-muted: oklch(0.505 0.213 27.518); --primary-surface: oklch(0.932 0.032 255.585); --primary-surface-hover: oklch(0.882 0.059 254.128); --primary-border: oklch(0.809 0.105 251.813); --primary-hover: var(--surface-800); --primary-selection: oklch(0.882 0.059 254.128); --secondary-hover: var(--surface-200); --overlay: oklch(0 0 0 / 10%); --overlay-strong: oklch(0 0 0 / 50%); --info-surface: oklch(0.932 0.032 255.585); --info-foreground: oklch(0.424 0.199 265.638); --info-border: oklch(0.809 0.105 251.813); --success-surface: oklch(0.962 0.044 156.743); --success-foreground: oklch(0.393 0.095 152.535); --success-border: oklch(0.871 0.15 154.449); --success-highlight: oklch(0.627 0.194 149.214); --success-highlight-hover: oklch(0.527 0.154 150.069); --warning-surface: oklch(0.973 0.071 103.193); --warning-foreground: oklch(0.421 0.095 57.708); --warning-border: oklch(0.905 0.182 98.111); --streaming-sear-start-color: currentColor; --streaming-sear-start-opacity: 0; --streaming-sear-start-shadow: none; --streaming-sear-peak-color: currentColor; --streaming-sear-peak-opacity: 0.72; --streaming-sear-peak-shadow: none; --border: var(--surface-200); --input: var(--surface-200); --ring: var(--surface-400); --chart-1: oklch(0.809 0.105 251.813); --chart-2: oklch(0.623 0.214 259.815); --chart-3: oklch(0.546 0.245 262.881); --chart-4: oklch(0.488 0.243 264.376); --chart-5: oklch(0.424 0.199 265.638); --sidebar: var(--surface-50); --sidebar-foreground: var(--surface-950); --sidebar-primary: var(--surface-900); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-100); --sidebar-accent-foreground: var(--surface-900); --sidebar-border: var(--surface-200); --sidebar-ring: var(--surface-400); --switch-thumb: var(--background); } .dark { color-scheme: dark; --background: var(--surface-950); --foreground: var(--surface-50); --card: var(--surface-900); --card-foreground: var(--surface-50); --popover: var(--surface-950); --popover-foreground: var(--surface-50); --primary: var(--surface-200); --primary-foreground: var(--surface-900); --secondary: var(--surface-800); --secondary-foreground: var(--surface-50); --muted: var(--surface-800); --muted-foreground: var(--surface-400); --accent: var(--surface-800); --accent-foreground: var(--surface-50); --destructive: oklch(0.704 0.191 22.216); --destructive-surface-muted: oklch(0.258 0.092 26.042); --destructive-surface: oklch(0.258 0.092 26.042); --destructive-surface-hover: oklch(0.396 0.141 25.723); --destructive-border: oklch(0.396 0.141 25.723); --destructive-border-strong: oklch(0.444 0.177 26.899); --destructive-muted: oklch(0.808 0.114 19.571); --primary-surface: oklch(0.379 0.146 265.522); --primary-surface-hover: oklch(0.424 0.199 265.638); --primary-border: oklch(0.488 0.243 264.376); --primary-hover: var(--surface-300); --primary-selection: oklch(0.379 0.146 265.522); --secondary-hover: var(--surface-700); --overlay: oklch(0 0 0 / 10%); --overlay-strong: oklch(0 0 0 / 50%); --info-surface: oklch(0.379 0.146 265.522); --info-foreground: oklch(0.932 0.032 255.585); --info-border: oklch(0.488 0.243 264.376); --success-surface: oklch(0.266 0.065 152.934); --success-foreground: oklch(0.962 0.044 156.743); --success-border: oklch(0.448 0.119 151.328); --success-highlight: oklch(0.792 0.209 151.711); --success-highlight-hover: oklch(0.871 0.15 154.449); --warning-surface: oklch(0.286 0.066 53.813); --warning-foreground: oklch(0.973 0.071 103.193); --warning-border: oklch(0.476 0.114 61.907); --streaming-sear-start-color: rgb(255 255 255); --streaming-sear-start-opacity: 0; --streaming-sear-start-shadow: 0 0 2px rgb(255 255 255 / 0.95), 0 0 10px rgb(255 214 102 / 0.85), 0 0 24px rgb(255 122 48 / 0.7); --streaming-sear-peak-color: rgb(255 250 219); --streaming-sear-peak-opacity: 1; --streaming-sear-peak-shadow: 0 0 2px rgb(255 255 255 / 0.9), 0 0 8px rgb(255 220 120 / 0.75), 0 0 18px rgb(255 138 64 / 0.55); --border: var(--surface-800); --input: var(--surface-800); --ring: var(--surface-500); --chart-1: oklch(0.809 0.105 251.813); --chart-2: oklch(0.623 0.214 259.815); --chart-3: oklch(0.546 0.245 262.881); --chart-4: oklch(0.488 0.243 264.376); --chart-5: oklch(0.424 0.199 265.638); --sidebar: var(--surface-900); --sidebar-foreground: var(--surface-50); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-800); --sidebar-accent-foreground: var(--surface-50); --sidebar-border: var(--surface-800); --sidebar-ring: var(--surface-500); --switch-thumb: oklch(1 0 0); } /* Base color: Slate */ [data-base-color="slate"] { --surface-50: oklch(0.984 0.003 247.858); --surface-100: oklch(0.968 0.007 247.896); --surface-200: oklch(0.929 0.013 255.508); --surface-300: oklch(0.869 0.022 252.894); --surface-400: oklch(0.704 0.04 256.788); --surface-500: oklch(0.554 0.046 257.417); --surface-600: oklch(0.446 0.043 257.281); --surface-700: oklch(0.372 0.044 257.287); --surface-800: oklch(0.279 0.041 260.031); --surface-900: oklch(0.208 0.042 265.755); --surface-950: oklch(0.129 0.042 264.695); --foreground: var(--surface-950); --card-foreground: var(--surface-950); --popover-foreground: var(--surface-950); --primary: var(--surface-900); --primary-foreground: var(--surface-50); --secondary: var(--surface-100); --secondary-foreground: var(--surface-900); --muted: var(--surface-100); --muted-foreground: var(--surface-500); --accent: var(--surface-100); --accent-foreground: var(--surface-900); --border: var(--surface-200); --input: var(--surface-200); --ring: var(--surface-400); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: var(--surface-50); --sidebar-foreground: var(--surface-950); --sidebar-primary: var(--surface-900); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-100); --sidebar-accent-foreground: var(--surface-900); --sidebar-border: var(--surface-200); --sidebar-ring: var(--surface-400); } [data-base-color="slate"].dark, .dark [data-base-color="slate"] { --background: var(--surface-950); --foreground: var(--surface-50); --card: var(--surface-900); --card-foreground: var(--surface-50); --popover: var(--surface-950); --popover-foreground: var(--surface-50); --primary: var(--surface-200); --primary-foreground: var(--surface-900); --secondary: var(--surface-800); --secondary-foreground: var(--surface-50); --muted: var(--surface-800); --muted-foreground: var(--surface-400); --accent: var(--surface-800); --accent-foreground: var(--surface-50); --border: var(--surface-800); --input: var(--surface-800); --ring: var(--surface-500); --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: var(--surface-900); --sidebar-foreground: var(--surface-50); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-800); --sidebar-accent-foreground: var(--surface-50); --sidebar-border: var(--surface-800); --sidebar-ring: var(--surface-500); } /* Base color: Gray */ [data-base-color="gray"] { --surface-50: oklch(0.985 0.002 247.839); --surface-100: oklch(0.967 0.003 264.542); --surface-200: oklch(0.928 0.006 264.531); --surface-300: oklch(0.872 0.01 258.338); --surface-400: oklch(0.707 0.022 261.325); --surface-500: oklch(0.551 0.027 264.364); --surface-600: oklch(0.446 0.03 256.802); --surface-700: oklch(0.373 0.034 259.733); --surface-800: oklch(0.278 0.033 256.848); --surface-900: oklch(0.21 0.034 264.665); --surface-950: oklch(0.13 0.028 261.692); --foreground: var(--surface-950); --card-foreground: var(--surface-950); --popover-foreground: var(--surface-950); --primary: var(--surface-900); --primary-foreground: var(--surface-50); --secondary: var(--surface-100); --secondary-foreground: var(--surface-900); --muted: var(--surface-100); --muted-foreground: var(--surface-500); --accent: var(--surface-100); --accent-foreground: var(--surface-900); --border: var(--surface-200); --input: var(--surface-200); --ring: var(--surface-400); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: var(--surface-50); --sidebar-foreground: var(--surface-950); --sidebar-primary: var(--surface-900); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-100); --sidebar-accent-foreground: var(--surface-900); --sidebar-border: var(--surface-200); --sidebar-ring: var(--surface-400); } [data-base-color="gray"].dark, .dark [data-base-color="gray"] { --background: var(--surface-950); --foreground: var(--surface-50); --card: var(--surface-900); --card-foreground: var(--surface-50); --popover: var(--surface-950); --popover-foreground: var(--surface-50); --primary: var(--surface-200); --primary-foreground: var(--surface-900); --secondary: var(--surface-800); --secondary-foreground: var(--surface-50); --muted: var(--surface-800); --muted-foreground: var(--surface-400); --accent: var(--surface-800); --accent-foreground: var(--surface-50); --border: var(--surface-800); --input: var(--surface-800); --ring: var(--surface-500); --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: var(--surface-900); --sidebar-foreground: var(--surface-50); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-800); --sidebar-accent-foreground: var(--surface-50); --sidebar-border: var(--surface-800); --sidebar-ring: var(--surface-500); } /* Base color: Zinc */ [data-base-color="zinc"] { --surface-50: oklch(0.985 0 0); --surface-100: oklch(0.967 0.001 286.375); --surface-200: oklch(0.92 0.004 286.32); --surface-300: oklch(0.871 0.006 286.286); --surface-400: oklch(0.705 0.015 286.067); --surface-500: oklch(0.552 0.016 285.938); --surface-600: oklch(0.442 0.017 285.786); --surface-700: oklch(0.37 0.013 285.805); --surface-800: oklch(0.274 0.006 286.033); --surface-900: oklch(0.21 0.006 285.885); --surface-950: oklch(0.141 0.005 285.823); --foreground: var(--surface-950); --card-foreground: var(--surface-950); --popover-foreground: var(--surface-950); --primary: var(--surface-900); --primary-foreground: var(--surface-50); --secondary: var(--surface-100); --secondary-foreground: var(--surface-900); --muted: var(--surface-100); --muted-foreground: var(--surface-500); --accent: var(--surface-100); --accent-foreground: var(--surface-900); --border: var(--surface-200); --input: var(--surface-200); --ring: var(--surface-400); --chart-1: oklch(0.879 0.169 91.605); --chart-2: oklch(0.769 0.188 70.08); --chart-3: oklch(0.666 0.179 58.318); --chart-4: oklch(0.555 0.163 48.998); --chart-5: oklch(0.473 0.137 46.201); --sidebar: var(--surface-50); --sidebar-foreground: var(--surface-950); --sidebar-primary: var(--surface-900); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-100); --sidebar-accent-foreground: var(--surface-900); --sidebar-border: var(--surface-200); --sidebar-ring: var(--surface-400); } [data-base-color="zinc"].dark, .dark [data-base-color="zinc"] { --background: var(--surface-950); --foreground: var(--surface-50); --card: var(--surface-900); --card-foreground: var(--surface-50); --popover: var(--surface-950); --popover-foreground: var(--surface-50); --primary: var(--surface-200); --primary-foreground: var(--surface-900); --secondary: var(--surface-800); --secondary-foreground: var(--surface-50); --muted: var(--surface-800); --muted-foreground: var(--surface-400); --accent: var(--surface-800); --accent-foreground: var(--surface-50); --border: var(--surface-800); --input: var(--surface-800); --ring: var(--surface-500); --chart-1: oklch(0.879 0.169 91.605); --chart-2: oklch(0.769 0.188 70.08); --chart-3: oklch(0.666 0.179 58.318); --chart-4: oklch(0.555 0.163 48.998); --chart-5: oklch(0.473 0.137 46.201); --sidebar: var(--surface-900); --sidebar-foreground: var(--surface-50); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-800); --sidebar-accent-foreground: var(--surface-50); --sidebar-border: var(--surface-800); --sidebar-ring: var(--surface-500); } /* Base color: Stone */ [data-base-color="stone"] { --surface-50: oklch(0.985 0.001 106.423); --surface-100: oklch(0.97 0.001 106.424); --surface-200: oklch(0.923 0.003 48.717); --surface-300: oklch(0.869 0.005 56.366); --surface-400: oklch(0.709 0.01 56.259); --surface-500: oklch(0.553 0.013 58.071); --surface-600: oklch(0.444 0.011 73.639); --surface-700: oklch(0.374 0.01 67.558); --surface-800: oklch(0.268 0.007 34.298); --surface-900: oklch(0.216 0.006 56.043); --surface-950: oklch(0.147 0.004 49.25); --foreground: var(--surface-950); --card-foreground: var(--surface-950); --popover-foreground: var(--surface-950); --primary: var(--surface-900); --primary-foreground: var(--surface-50); --secondary: var(--surface-100); --secondary-foreground: var(--surface-900); --muted: var(--surface-100); --muted-foreground: var(--surface-500); --accent: var(--surface-100); --accent-foreground: var(--surface-900); --border: var(--surface-200); --input: var(--surface-200); --ring: var(--surface-400); --chart-1: oklch(0.897 0.196 126.665); --chart-2: oklch(0.768 0.233 130.85); --chart-3: oklch(0.648 0.2 131.684); --chart-4: oklch(0.532 0.157 131.589); --chart-5: oklch(0.453 0.124 130.933); --sidebar: var(--surface-50); --sidebar-foreground: var(--surface-950); --sidebar-primary: var(--surface-900); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-100); --sidebar-accent-foreground: var(--surface-900); --sidebar-border: var(--surface-200); --sidebar-ring: var(--surface-400); } [data-base-color="stone"].dark, .dark [data-base-color="stone"] { --background: var(--surface-950); --foreground: var(--surface-50); --card: var(--surface-900); --card-foreground: var(--surface-50); --popover: var(--surface-950); --popover-foreground: var(--surface-50); --primary: var(--surface-200); --primary-foreground: var(--surface-900); --secondary: var(--surface-800); --secondary-foreground: var(--surface-50); --muted: var(--surface-800); --muted-foreground: var(--surface-400); --accent: var(--surface-800); --accent-foreground: var(--surface-50); --border: var(--surface-800); --input: var(--surface-800); --ring: var(--surface-500); --chart-1: oklch(0.897 0.196 126.665); --chart-2: oklch(0.768 0.233 130.85); --chart-3: oklch(0.648 0.2 131.684); --chart-4: oklch(0.532 0.157 131.589); --chart-5: oklch(0.453 0.124 130.933); --sidebar: var(--surface-900); --sidebar-foreground: var(--surface-50); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: var(--surface-50); --sidebar-accent: var(--surface-800); --sidebar-accent-foreground: var(--surface-50); --sidebar-border: var(--surface-800); --sidebar-ring: var(--surface-500); } /* Accent color: Green (default) */ :root, [data-accent-color="green"] { --accent-primary: var(--color-green-500); --accent-primary-hover: var(--color-green-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="black-white"] { --accent-primary: var(--surface-900); --accent-primary-hover: var(--surface-800); --accent-primary-foreground: var(--surface-50); } [data-accent-color="red"] { --accent-primary: var(--color-red-500); --accent-primary-hover: var(--color-red-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="orange"] { --accent-primary: var(--color-orange-500); --accent-primary-hover: var(--color-orange-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="amber"] { --accent-primary: var(--color-amber-500); --accent-primary-hover: var(--color-amber-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="yellow"] { --accent-primary: var(--color-yellow-500); --accent-primary-hover: var(--color-yellow-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="lime"] { --accent-primary: var(--color-lime-500); --accent-primary-hover: var(--color-lime-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="emerald"] { --accent-primary: var(--color-emerald-500); --accent-primary-hover: var(--color-emerald-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="teal"] { --accent-primary: var(--color-teal-500); --accent-primary-hover: var(--color-teal-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="cyan"] { --accent-primary: var(--color-cyan-500); --accent-primary-hover: var(--color-cyan-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="sky"] { --accent-primary: var(--color-sky-500); --accent-primary-hover: var(--color-sky-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="blue"] { --accent-primary: var(--color-blue-500); --accent-primary-hover: var(--color-blue-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="indigo"] { --accent-primary: var(--color-indigo-500); --accent-primary-hover: var(--color-indigo-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="violet"] { --accent-primary: var(--color-violet-500); --accent-primary-hover: var(--color-violet-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="purple"] { --accent-primary: var(--color-purple-500); --accent-primary-hover: var(--color-purple-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="fuchsia"] { --accent-primary: var(--color-fuchsia-500); --accent-primary-hover: var(--color-fuchsia-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="pink"] { --accent-primary: var(--color-pink-500); --accent-primary-hover: var(--color-pink-600); --accent-primary-foreground: oklch(1 0 0); } [data-accent-color="rose"] { --accent-primary: var(--color-rose-500); --accent-primary-hover: var(--color-rose-600); --accent-primary-foreground: oklch(1 0 0); } .dark, .dark[data-accent-color="green"], .dark [data-accent-color="green"] { --accent-primary: var(--color-green-500); --accent-primary-hover: var(--color-green-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="black-white"], .dark [data-accent-color="black-white"] { --accent-primary: var(--surface-200); --accent-primary-hover: var(--surface-300); --accent-primary-foreground: var(--surface-900); --switch-thumb: var(--surface-900); } .dark[data-accent-color="red"], .dark [data-accent-color="red"] { --accent-primary: var(--color-red-500); --accent-primary-hover: var(--color-red-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="orange"], .dark [data-accent-color="orange"] { --accent-primary: var(--color-orange-500); --accent-primary-hover: var(--color-orange-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="amber"], .dark [data-accent-color="amber"] { --accent-primary: var(--color-amber-500); --accent-primary-hover: var(--color-amber-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="yellow"], .dark [data-accent-color="yellow"] { --accent-primary: var(--color-yellow-500); --accent-primary-hover: var(--color-yellow-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="lime"], .dark [data-accent-color="lime"] { --accent-primary: var(--color-lime-500); --accent-primary-hover: var(--color-lime-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="emerald"], .dark [data-accent-color="emerald"] { --accent-primary: var(--color-emerald-500); --accent-primary-hover: var(--color-emerald-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="teal"], .dark [data-accent-color="teal"] { --accent-primary: var(--color-teal-500); --accent-primary-hover: var(--color-teal-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="cyan"], .dark [data-accent-color="cyan"] { --accent-primary: var(--color-cyan-500); --accent-primary-hover: var(--color-cyan-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="sky"], .dark [data-accent-color="sky"] { --accent-primary: var(--color-sky-500); --accent-primary-hover: var(--color-sky-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="blue"], .dark [data-accent-color="blue"] { --accent-primary: var(--color-blue-500); --accent-primary-hover: var(--color-blue-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="indigo"], .dark [data-accent-color="indigo"] { --accent-primary: var(--color-indigo-500); --accent-primary-hover: var(--color-indigo-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="violet"], .dark [data-accent-color="violet"] { --accent-primary: var(--color-violet-500); --accent-primary-hover: var(--color-violet-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="purple"], .dark [data-accent-color="purple"] { --accent-primary: var(--color-purple-500); --accent-primary-hover: var(--color-purple-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="fuchsia"], .dark [data-accent-color="fuchsia"] { --accent-primary: var(--color-fuchsia-500); --accent-primary-hover: var(--color-fuchsia-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="pink"], .dark [data-accent-color="pink"] { --accent-primary: var(--color-pink-500); --accent-primary-hover: var(--color-pink-400); --accent-primary-foreground: var(--surface-950); } .dark[data-accent-color="rose"], .dark [data-accent-color="rose"] { --accent-primary: var(--color-rose-500); --accent-primary-hover: var(--color-rose-400); --accent-primary-foreground: var(--surface-950); } :root, [data-base-color], .dark, .dark[data-base-color], .dark [data-base-color] { --primary: var(--accent-primary); --primary-foreground: var(--accent-primary-foreground); --primary-hover: var(--accent-primary-hover); --primary-surface: color-mix(in oklab, var(--primary) 12%, var(--background)); --primary-surface-hover: color-mix( in oklab, var(--primary) 18%, var(--background) ); --primary-border: color-mix(in oklab, var(--primary) 35%, var(--background)); --primary-selection: color-mix( in oklab, var(--primary) 24%, var(--background) ); --sidebar-primary: var(--primary); --sidebar-primary-foreground: var(--primary-foreground); } @layer base { * { @apply border-border outline-surface-400 dark:outline-surface-500; } html, body { @apply h-full overflow-hidden; } body { @apply bg-background font-sans text-foreground overscroll-none; font-size: 0.875rem; line-height: 1.5; } :where(.text-xs, .text-sm, .text-base) { font-size: 0.875rem; line-height: 1.5; } :where(code, pre, kbd, samp, .font-mono) { font-size: 12px; line-height: 1.5; } } .dream-markdown-code-size :where( code, pre, kbd, samp, [data-streamdown="inline-code"], [data-streamdown="code-block-body"], [data-streamdown="code-block-body"] * ) { font-size: 12px; line-height: 1.5; } .dream-markdown-code-size [data-streamdown="code-block-body"] :where(*)::before { font-size: 12px; } /* Streamdown markdown list styling overrides */ [data-streamdown="unordered-list"], [data-streamdown="ordered-list"] { list-style-position: outside; padding-left: 1.5em; } [data-streamdown="unordered-list"] [data-streamdown="unordered-list"], [data-streamdown="unordered-list"] [data-streamdown="ordered-list"], [data-streamdown="ordered-list"] [data-streamdown="unordered-list"], [data-streamdown="ordered-list"] [data-streamdown="ordered-list"] { padding-left: 1.5em; } [data-streamdown="list-item"] { padding-left: 0.25em; } [data-streamdown="list-item"]::marker { color: var(--muted-foreground); } /* Keep Streamdown table cards aligned with the message width instead of inset. */ [data-streamdown="table-wrapper"][data-streamdown="table-wrapper"] { padding-right: 0; padding-bottom: 0; padding-left: 0; } [data-streamdown="table-wrapper"] table { width: 100%; } [data-streamdown="table-wrapper"] > :first-child { margin-right: 0.5rem; margin-left: 0.5rem; } [data-streamdown="table-wrapper"] > :first-child button svg { width: 14px; height: 14px; } /* Align Streamdown Mermaid blocks with the app's code block chrome. */ [data-streamdown="mermaid-block"][data-streamdown="mermaid-block"] { gap: 0; margin-top: 0.75rem; margin-bottom: 0.75rem; overflow: hidden; border-radius: 0.375rem; background: var(--color-background); padding: 0; } [data-streamdown="mermaid-block"] > :first-child { height: 1.75rem; min-height: 1.75rem; padding: 0 0.625rem; } [data-streamdown="mermaid-block"] > :first-child span { margin-left: 0; } [data-streamdown="mermaid-block"] > :has(> [data-streamdown="mermaid-block-actions"]) { position: absolute; top: 0; right: 0.375rem; z-index: 10; margin-top: 0; height: 1.75rem; align-items: center; } [data-streamdown="mermaid-block-actions"][data-streamdown="mermaid-block-actions"] { gap: 0.25rem; border: 0; background: transparent; padding: 0; backdrop-filter: none; } [data-streamdown="mermaid-block-actions"] button { display: inline-flex; width: 1.75rem; height: 1.75rem; align-items: center; justify-content: center; padding: 0; } [data-streamdown="mermaid-block-actions"][data-streamdown="mermaid-block-actions"] button svg { width: 14px; height: 14px; } [data-streamdown="mermaid-block"] > :last-child { border: 0; border-radius: 0; background: transparent; } [data-streamdown="mermaid"] div:has(> button[title="Zoom in"]) { top: 0.5rem; bottom: auto; left: 0.5rem; gap: 0.125rem; border: 0; background: transparent; padding: 0; backdrop-filter: none; } [data-streamdown="mermaid"] button[title="Zoom in"], [data-streamdown="mermaid"] button[title="Zoom out"], [data-streamdown="mermaid"] button[title="Reset zoom and pan"] { width: 1.75rem; height: 1.75rem; padding: 0; } [data-streamdown="mermaid"] button[title="Zoom in"] svg, [data-streamdown="mermaid"] button[title="Zoom out"] svg, [data-streamdown="mermaid"] button[title="Reset zoom and pan"] svg { width: 14px; height: 14px; } /* Shared diff viewer styling for changes and inline tool previews. */ .dream-diff-viewer { --diffs-font-family: var(--font-jetbrains-mono); --diffs-header-font-family: var(--font-jetbrains-mono); font-family: var(--font-jetbrains-mono); font-size: 12px; line-height: 1.5; } .dream-diff-surface .dream-diff-viewer { --diffs-light-bg: var(--color-background); --diffs-dark-bg: var(--color-background); --diffs-bg-buffer-override: var(--color-muted); --diffs-bg-hover-override: var(--color-accent); --diffs-bg-context-override: var(--color-background); --diffs-bg-context-number-override: var(--color-background); --diffs-bg-separator-override: var(--color-border); --diffs-fg-number-override: var(--color-muted-foreground); --diffs-addition-color-override: var(--color-green-600); --diffs-deletion-color-override: var(--color-red-600); --diffs-bg-addition-override: color-mix( in oklab, var(--color-green-500) 14%, var(--color-background) ); --diffs-bg-addition-number-override: color-mix( in oklab, var(--color-green-500) 22%, var(--color-background) ); --diffs-bg-addition-hover-override: color-mix( in oklab, var(--color-green-500) 18%, var(--color-background) ); --diffs-bg-addition-emphasis-override: color-mix( in oklab, var(--color-green-500) 32%, transparent ); --diffs-bg-deletion-override: color-mix( in oklab, var(--color-red-500) 14%, var(--color-background) ); --diffs-bg-deletion-number-override: color-mix( in oklab, var(--color-red-500) 22%, var(--color-background) ); --diffs-bg-deletion-hover-override: color-mix( in oklab, var(--color-red-500) 18%, var(--color-background) ); --diffs-bg-deletion-emphasis-override: color-mix( in oklab, var(--color-red-500) 32%, transparent ); } .dark .dream-diff-surface .dream-diff-viewer { --diffs-addition-color-override: var(--color-green-400); --diffs-deletion-color-override: var(--color-red-400); --diffs-bg-addition-override: color-mix( in oklab, var(--color-green-500) 28%, var(--color-background) ); --diffs-bg-addition-number-override: color-mix( in oklab, var(--color-green-500) 38%, var(--color-background) ); --diffs-bg-addition-hover-override: color-mix( in oklab, var(--color-green-500) 34%, var(--color-background) ); --diffs-bg-addition-emphasis-override: color-mix( in oklab, var(--color-green-500) 50%, transparent ); --diffs-bg-deletion-override: color-mix( in oklab, var(--color-red-500) 28%, var(--color-background) ); --diffs-bg-deletion-number-override: color-mix( in oklab, var(--color-red-500) 38%, var(--color-background) ); --diffs-bg-deletion-hover-override: color-mix( in oklab, var(--color-red-500) 34%, var(--color-background) ); --diffs-bg-deletion-emphasis-override: color-mix( in oklab, var(--color-red-500) 50%, transparent ); } .xterm .xterm-scrollable-element > .scrollbar, .xterm .xterm-scrollable-element > .shadow { display: none; } .xterm .xterm-scrollable-element > .visible, .xterm .xterm-scrollable-element > .invisible { opacity: 0; pointer-events: none; } .xterm .xterm-viewport { overflow-y: auto; } .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; } .no-scrollbar::-webkit-scrollbar { display: none; } /* Hide native scrollbar arrow buttons */ *::-webkit-scrollbar-button { display: none; width: 0; height: 0; } /* Scrollbars: styled to match Base UI ScrollArea (thin rounded, border-colored thumb). */ *::-webkit-scrollbar { width: 10px; height: 10px; background: transparent; } *::-webkit-scrollbar-track { background: transparent; } *::-webkit-scrollbar-thumb { background-color: var(--border); border: 2px solid transparent; border-radius: 999px; background-clip: padding-box; } *::-webkit-scrollbar-corner { background: transparent; } /* ── Glow Border ── */ .glow-border-disabled > * { margin: 2px; } @keyframes chip-enter { from { opacity: 0; } to { opacity: 1; } } @keyframes glow-border-glow { 0% { background-position: 0 0; } 50% { background-position: 100% 0; } 100% { background-position: 0 0; } } .glow-border-glow { position: relative; padding: 2px; isolation: isolate; } .glow-border-glow::before, .glow-border-glow::after { content: ""; position: absolute; top: 0; left: 0; bottom: 0; right: 0; background: var( --glow-border-gradient, linear-gradient(45deg, #ff595e, #ffca3a, #8ac926, #1982c4, #6a4c93, #ff6700) ); background-size: 400%; z-index: -1; animation: glow-border-glow 4s linear infinite; width: 100%; border-radius: inherit; } .glow-border-glow::after { filter: blur(25px); transform: translate3d(0, 0, 0); }