@import "tailwindcss"; @import "tw-animate-css"; @import "shadcn-svelte/tailwind.css"; @custom-variant dark (&:where(.dark, .dark *)); :root { --font-sans: ui-sans-serif, system-ui, sans-serif; --background: oklch(1 0 0); --foreground: oklch(0.145 0 0); --card: oklch(1 0 0); --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); --primary: oklch(0.205 0 0); --primary-hover: oklch(0.145 0 0); --primary-foreground: oklch(0.985 0 0); --secondary: oklch(0.97 0 0); --secondary-foreground: oklch(0.205 0 0); --muted: oklch(0.97 0 0); --muted-foreground: oklch(0.45 0 0); --accent: oklch(0.97 0 0); --accent-foreground: oklch(0.205 0 0); --destructive: oklch(0.5 0.2 27.325); --destructive-foreground: oklch(0.985 0 0); --destructive-subtle: hsl(0 85% 95%); --destructive-subtle-foreground: hsl(0 72% 35%); --border: oklch(0.922 0 0); --input: oklch(0.65 0 0); --ring: oklch(0.45 0 0); --success: oklch(0.94 0.06 155); --success-foreground: oklch(0.3 0.1 155); --warning: oklch(0.94 0.08 85); --warning-foreground: oklch(0.32 0.09 60); --info: oklch(0.94 0.05 250); --info-foreground: oklch(0.3 0.1 250); --radius: 0.625rem; --chart-1: oklch(0.87 0 0); --chart-2: oklch(0.556 0 0); --chart-3: oklch(0.439 0 0); --chart-4: oklch(0.371 0 0); --chart-5: oklch(0.269 0 0); --sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: oklch(0.205 0 0); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.97 0 0); --sidebar-accent-foreground: oklch(0.205 0 0); --sidebar-border: oklch(0.922 0 0); --sidebar-ring: oklch(0.708 0 0); } .dark { --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0); --card: oklch(0.205 0 0); --card-foreground: oklch(0.985 0 0); --popover: oklch(0.205 0 0); --popover-foreground: oklch(0.985 0 0); --secondary: oklch(0.269 0 0); --secondary-foreground: oklch(0.985 0 0); --muted: oklch(0.269 0 0); --muted-foreground: oklch(0.75 0 0); --accent: oklch(0.269 0 0); --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.704 0.191 22.216); --destructive-foreground: oklch(0.985 0 0); --destructive-subtle: hsl(0 45% 25%); --destructive-subtle-foreground: hsl(0 90% 85%); --border: oklch(1 0 0 / 10%); --input: oklch(1 0 0 / 35%); --primary: oklch(0.922 0 0); --primary-hover: oklch(0.985 0 0); --primary-foreground: oklch(0.205 0 0); --ring: oklch(0.75 0 0); --success: oklch(0.3 0.07 155); --success-foreground: oklch(0.9 0.08 155); --warning: oklch(0.32 0.07 70); --warning-foreground: oklch(0.91 0.1 85); --info: oklch(0.3 0.08 250); --info-foreground: oklch(0.9 0.06 250); --chart-1: oklch(0.87 0 0); --chart-2: oklch(0.556 0 0); --chart-3: oklch(0.439 0 0); --chart-4: oklch(0.371 0 0); --chart-5: oklch(0.269 0 0); --sidebar: oklch(0.205 0 0); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.269 0 0); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(1 0 0 / 10%); --sidebar-ring: oklch(0.556 0 0); } :root[data-accent="emerald"], .dark[data-accent="emerald"] { --primary: hsl(160 84% 39%); --primary-hover: hsl(160 84% 44%); --primary-foreground: oklch(0.145 0 0); } :root[data-accent="blue"], .dark[data-accent="blue"] { --primary: hsl(221 83% 53%); --primary-hover: hsl(221 83% 45%); --primary-foreground: oklch(0.985 0 0); } :root[data-accent="violet"], .dark[data-accent="violet"] { --primary: hsl(262 83% 58%); --primary-hover: hsl(262 83% 50%); --primary-foreground: oklch(0.985 0 0); } :root[data-accent="rose"], .dark[data-accent="rose"] { --primary: hsl(347 77% 45%); --primary-hover: hsl(347 77% 40%); --primary-foreground: oklch(0.985 0 0); } :root[data-accent="amber"], .dark[data-accent="amber"] { --primary: hsl(38 92% 50%); --primary-hover: hsl(38 92% 55%); --primary-foreground: oklch(0.145 0 0); } :root[data-accent="blue"] { --ring: hsl(221 83% 40%); } :root[data-accent="emerald"] { --ring: hsl(160 84% 25%); } :root[data-accent="violet"] { --ring: hsl(262 83% 45%); } :root[data-accent="rose"] { --ring: hsl(347 77% 40%); } :root[data-accent="amber"] { --ring: hsl(38 92% 30%); } .dark[data-accent="blue"] { --ring: hsl(221 83% 70%); } .dark[data-accent="emerald"] { --ring: hsl(160 70% 65%); } .dark[data-accent="violet"] { --ring: hsl(262 83% 72%); } .dark[data-accent="rose"] { --ring: hsl(347 77% 70%); } .dark[data-accent="amber"] { --ring: hsl(38 92% 65%); } @theme inline { --font-sans: ui-sans-serif, system-ui, sans-serif; --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-hover: var(--primary-hover); --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-destructive-foreground: var(--destructive-foreground); --color-destructive-subtle: var(--destructive-subtle); --color-destructive-subtle-foreground: var(--destructive-subtle-foreground); --color-success: var(--success); --color-success-foreground: var(--success-foreground); --color-warning: var(--warning); --color-warning-foreground: var(--warning-foreground); --color-info: var(--info); --color-info-foreground: var(--info-foreground); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --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); --radius-2xl: calc(var(--radius) * 1.8); --radius-3xl: calc(var(--radius) * 2.2); --radius-4xl: calc(var(--radius) * 2.6); } @layer base { * { @apply border-border outline-ring/50; } html { @apply scroll-smooth font-sans; } body { @apply min-h-screen font-sans antialiased bg-background text-foreground; background-image: radial-gradient( circle at top left, color-mix(in oklab, var(--primary) 12%, transparent), transparent 24% ), radial-gradient( circle at top right, color-mix(in oklab, var(--primary) 6%, transparent), transparent 18% ), linear-gradient(180deg, var(--background) 0%, var(--background) 100%); background-attachment: fixed; } a { @apply text-foreground; } } @layer components { .page-shell { @apply mx-auto w-full max-w-[1600px] px-4 py-6 sm:px-6 lg:px-8; } .page-shell-workbench { @apply mx-auto w-full max-w-[1800px] px-4 py-6 sm:px-6 lg:px-8; } .page-stack { @apply space-y-6; } .page-header { @apply flex flex-wrap items-start justify-between gap-4; } .page-heading { @apply min-w-0 space-y-1; } .page-title { @apply text-2xl font-semibold tracking-tight sm:text-3xl; } .page-description { @apply text-sm leading-6 text-muted-foreground; } .section-title { @apply text-base font-semibold tracking-tight; } .section-description { @apply text-sm leading-6 text-muted-foreground; } .page-meta { @apply text-sm text-muted-foreground; } .section-header { @apply flex flex-wrap items-start justify-between gap-3; } .section-heading { @apply min-w-0 space-y-1; } .metric-label { @apply text-xs font-medium text-muted-foreground; } .metric-value { @apply mt-2 text-3xl font-semibold tracking-tight; } .empty-state { @apply rounded-lg border border-dashed bg-muted/20 px-4 py-8 text-sm text-muted-foreground; } .surface-subtle { @apply bg-muted/30 dark:bg-muted/20; } .metric-card { @apply rounded-lg border bg-muted/20 px-4 py-3; } .inset-card { @apply rounded-lg border bg-background px-4 py-3; } .list-row { @apply block rounded-lg border bg-background px-4 py-3 transition-colors hover:bg-accent/60; } .list-row-compact { @apply rounded-lg border bg-background px-3 py-3 text-sm; } .stat-link { @apply rounded-lg border bg-background p-3 transition-colors hover:bg-accent/60; } .code-surface { @apply rounded-lg border bg-background p-4 font-mono text-xs leading-6 whitespace-pre-wrap break-words; } .terminal-surface { @apply min-w-0 max-w-full overflow-hidden rounded-lg border bg-background; } .terminal-surface .wterm { --term-font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, monospace; --term-font-size: 12px; --term-line-height: 1.45; --term-bg: #ffffff; --term-fg: #24292f; --term-cursor: #0969da; --term-color-0: #24292f; --term-color-1: #cf222e; --term-color-2: #116329; --term-color-3: #4d2d00; --term-color-4: #0969da; --term-color-5: #8250df; --term-color-6: #1b7c83; --term-color-7: #d0d7de; --term-color-8: #6e7781; --term-color-9: #a40e26; --term-color-10: #1a7f37; --term-color-11: #9a6700; --term-color-12: #0550ae; --term-color-13: #6639ba; --term-color-14: #3192aa; --term-color-15: #57606a; box-sizing: border-box; width: 100%; height: 100%; max-width: 100%; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; box-shadow: none; -webkit-overflow-scrolling: touch; } .terminal-surface .term-grid { min-height: 100%; contain: layout style; will-change: auto; } .dark .terminal-surface .wterm, .terminal-surface .wterm.theme-composia-dark { --term-bg: #0d1117; --term-fg: #c9d1d9; --term-cursor: #58a6ff; --term-color-0: #484f58; --term-color-1: #ff7b72; --term-color-2: #7ee787; --term-color-3: #d29922; --term-color-4: #58a6ff; --term-color-5: #bc8cff; --term-color-6: #39c5cf; --term-color-7: #b1bac4; --term-color-8: #6e7681; --term-color-9: #ffa198; --term-color-10: #56d364; --term-color-11: #e3b341; --term-color-12: #79c0ff; --term-color-13: #d2a8ff; --term-color-14: #56d4dd; --term-color-15: #f0f6fc; } @media (max-width: 640px) { .terminal-surface .wterm { --term-font-size: 11px; --term-line-height: 1.4; padding: 0.5rem; } } .muted-action { @apply text-xs text-muted-foreground transition-colors hover:text-foreground; } .toolbar-surface { @apply rounded-lg border bg-background p-2; } .scrollbar-none { -ms-overflow-style: none; scrollbar-width: none; } .scrollbar-none::-webkit-scrollbar { display: none; } .summary-grid { @apply grid gap-3 md:grid-cols-2 xl:grid-cols-4; } .summary-strip { @apply grid gap-3 sm:grid-cols-2 xl:grid-cols-5; } .summary-item { @apply rounded-lg border bg-background px-4 py-3; } .nav-pill { @apply inline-flex h-8 shrink-0 items-center justify-center rounded-md border px-3 text-xs font-medium transition-colors sm:h-9 sm:text-sm; } .nav-pill-active { @apply bg-secondary text-secondary-foreground; } .nav-pill-inactive { @apply text-muted-foreground hover:bg-accent/80 hover:text-accent-foreground; } .kv-grid { @apply grid gap-3 text-sm text-muted-foreground; } .kv-grid dt { @apply text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground; } .kv-grid dd { @apply mt-1 text-sm text-foreground; } }