@import "tailwindcss"; @import "tw-animate-css"; @import "shadcn-svelte/tailwind.css"; @import "@fontsource-variable/inter"; @import "../lib/panel/panel.css"; @plugin "@tailwindcss/forms"; @plugin "@tailwindcss/typography"; @custom-variant dark (&:is(.dark *)); :root { --background: oklch(0.99 0.004 340); --foreground: oklch(0.24 0.03 340); --card: oklch(0.985 0.006 340); --card-foreground: oklch(0.24 0.03 340); --popover: oklch(0.985 0.006 340); --popover-foreground: oklch(0.24 0.03 340); --primary: oklch(0.47 0.13 340); --primary-foreground: oklch(0.99 0.005 340); --secondary: oklch(0.96 0.012 340); --secondary-foreground: oklch(0.24 0.03 340); --muted: oklch(0.96 0.012 340); --muted-foreground: oklch(0.5 0.04 340); --accent: oklch(0.96 0.012 340); --accent-foreground: oklch(0.24 0.03 340); --destructive: oklch(0.58 0.22 25); --destructive-foreground: oklch(0.99 0 0); --border: oklch(0.9 0.02 340); --input: oklch(0.9 0.02 340); --ring: oklch(0.55 0.2 342); --icon: oklch(0.55 0.03 340); --signal: oklch(0.48 0.21 342); --note: oklch(0.52 0.13 78); --warn: oklch(0.55 0.13 75); --link: var(--primary); --status-new: oklch(0.55 0.22 342); --status-done: oklch(0.55 0.14 155); --status-skip: oklch(0.5 0.04 340); --status-reply: oklch(0.55 0.14 235); --status-snooze: oklch(0.66 0.13 75); --status-meeting: oklch(0.5 0.2 300); --status-work: oklch(0.55 0.13 195); --radius: 0.45rem; --sidebar: oklch(0.975 0.01 340); --sidebar-foreground: oklch(0.24 0.03 340); --sidebar-primary: oklch(0.47 0.13 340); --sidebar-primary-foreground: oklch(0.99 0.005 340); --sidebar-accent: oklch(0.94 0.016 340); --sidebar-accent-foreground: oklch(0.24 0.03 340); --sidebar-border: oklch(0.9 0.02 340); --sidebar-ring: oklch(0.55 0.2 342); } .dark { --background: #22111e; --foreground: #f5f5f5; --card: #341d2f; --card-foreground: #f5f5f5; --popover: #341d2f; --popover-foreground: #f5f5f5; --primary: #7c3871; --primary-foreground: #f5f5f5; --secondary: #341d2f; --secondary-foreground: #f5f5f5; --muted: #40283a; --muted-foreground: #a989a3; --accent: #40283a; --accent-foreground: #f5f5f5; --destructive: oklch(0.62 0.2 25); --destructive-foreground: #f5f5f5; --border: oklch(0.92 0.04 340 / 10%); --input: oklch(0.92 0.04 340 / 14%); --ring: #ff82f3; --icon: #877384; --signal: #ff82f3; --note: oklch(0.84 0.14 88); --warn: oklch(0.8 0.13 75); --link: #ff82f3; --status-new: #ff82f3; --status-done: oklch(0.74 0.14 155); --status-skip: #a989a3; --status-reply: oklch(0.72 0.13 235); --status-snooze: oklch(0.8 0.13 75); --status-meeting: oklch(0.72 0.16 300); --status-work: oklch(0.75 0.12 195); --sidebar: #2c1b29; --sidebar-foreground: #f5f5f5; --sidebar-primary: #ff82f3; --sidebar-primary-foreground: #22111e; --sidebar-accent: #341d2f; --sidebar-accent-foreground: #f5f5f5; --sidebar-border: oklch(0.92 0.04 340 / 10%); --sidebar-ring: #ff82f3; } @theme inline { --font-sans: "Inter Variable", sans-serif; --font-heading: "Inter Variable", sans-serif; --text-xs: 0.75rem; --text-sm: 0.8125rem; --text-base: 0.875rem; --text-lg: 1rem; --text-xl: 1.25rem; --text-2xl: 1.5rem; --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-icon: var(--icon); --color-signal: var(--signal); --color-note: var(--note); --color-status-new: var(--status-new); --color-status-done: var(--status-done); --color-status-skip: var(--status-skip); --color-status-reply: var(--status-reply); --color-status-snooze: var(--status-snooze); --color-status-meeting: var(--status-meeting); --color-status-work: var(--status-work); --color-ring: var(--ring); --color-input: var(--input); --color-border: var(--border); --color-destructive-foreground: var(--destructive-foreground); --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-foreground: var(--foreground); --color-background: var(--background); --radius-sm: calc(var(--radius) * 0.6); --radius-md: calc(var(--radius) * 0.8); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) * 1.4); --radius-2xl: calc(var(--radius) * 1.8); } @layer base { * { @apply border-border outline-ring/50; } body { font-feature-settings: "cv11", "ss01"; @apply bg-background text-foreground; } html, body { height: 100%; overflow: hidden; overscroll-behavior-y: none; } html { @apply font-sans; } ::selection { background: color-mix(in oklab, var(--primary) 28%, transparent); } } @utility hue-chip { color: oklch(0.45 0.13 var(--hue)); background: oklch(0.6 0.09 var(--hue) / 0.12); border-color: oklch(0.6 0.09 var(--hue) / 0.4); .dark & { color: oklch(0.82 0.08 var(--hue)); } } @layer base { * { scrollbar-color: color-mix(in oklab, var(--foreground) 22%, transparent) transparent; scrollbar-width: thin; } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-thumb { background: color-mix(in oklab, var(--foreground) 22%, transparent); border-radius: 999px; } :focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; } input, textarea { caret-color: var(--primary); } a { text-underline-offset: 3px; } code, pre, kbd { font-family: var(--font-mono); font-size: 0.8125rem; } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; } } } @utility hairline { border-color: color-mix(in oklab, var(--border) 100%, transparent); } /* chat markdown: typography plugin on the theme tokens, compact rhythm */ .prose { --tw-prose-body: var(--foreground); --tw-prose-headings: var(--foreground); --tw-prose-lead: var(--muted-foreground); --tw-prose-links: var(--link); --tw-prose-bold: var(--foreground); --tw-prose-counters: var(--muted-foreground); --tw-prose-bullets: var(--muted-foreground); --tw-prose-hr: var(--border); --tw-prose-quotes: var(--foreground); --tw-prose-quote-borders: var(--border); --tw-prose-captions: var(--muted-foreground); --tw-prose-code: var(--foreground); --tw-prose-pre-code: var(--foreground); --tw-prose-pre-bg: var(--muted); --tw-prose-th-borders: var(--border); --tw-prose-td-borders: var(--border); font-size: 0.875rem; line-height: 1.5; } .prose :where(p, ul, ol, pre, blockquote, table):not( :where([class~="not-prose"] *) ) { margin-block: 0.4em; } .prose :where(h1, h2, h3, h4):not(:where([class~="not-prose"] *)) { margin-block: 0.8em 0.4em; font-size: 1em; font-weight: 600; } .prose :where(li):not(:where([class~="not-prose"] *)) { margin-block: 0.15em; } .prose :where(code):not(:where([class~="not-prose"] *))::before, .prose :where(code):not(:where([class~="not-prose"] *))::after { content: none; } .prose :where(code):not(:where(pre *)):not(:where([class~="not-prose"] *)) { padding: 0.1em 0.3em; font-weight: 500; background: color-mix(in oklch, var(--muted) 70%, transparent); border-radius: 0.25rem; } .prose :where(pre):not(:where([class~="not-prose"] *)) { padding: 0.6em 0.8em; font-size: 0.8125rem; border-radius: 0.375rem; } .prose > :first-child { margin-top: 0; } .prose > :last-child { margin-bottom: 0; }