@import "tailwindcss"; @layer theme, base, components, utilities, overrides; @custom-variant dark (&:is(.dark *)); @utility container { max-width: 100%; margin-left: auto; margin-right: auto; padding-left: 1rem; padding-right: 1rem; @media (min-width: 640px) { max-width: 640px; padding-left: 1.5rem; padding-right: 1.5rem; } @media (min-width: 768px) { max-width: 768px; } @media (min-width: 1024px) { max-width: 1024px; } @media (min-width: 1440px) { max-width: 1440px; } } :root { --background: oklch(0.9911 0 0); --foreground: oklch(0.2046 0 0); --card: oklch(0.9911 0 0); --card-foreground: oklch(0.2046 0 0); --popover: oklch(0.9911 0 0); --popover-foreground: oklch(0.4386 0 0); --primary: oklch(0.2998 0.0584 263.16); --primary-foreground: oklch(0.98 0 0); --secondary: oklch(0.3807 0.1708 261.58); --secondary-foreground: oklch(0.95 0 0); --muted: oklch(0.9461 0 0); --muted-foreground: oklch(0.551 0.014 264.4); --accent: oklch(0.34 0.12 262); --accent-foreground: oklch(0.98 0 0); --destructive: oklch(0.5523 0.1927 32.7272); --destructive-foreground: oklch(0.9934 0.0032 17.2118); --border: oklch(0.9037 0 0); --input: oklch(0.9731 0 0); --ring: oklch(0.3807 0.1708 261.58); --chart-1: oklch(0.8348 0.1302 160.908); --chart-2: oklch(0.6231 0.188 259.8145); --chart-3: oklch(0.6056 0.2189 292.7172); --chart-4: oklch(0.7686 0.1647 70.0804); --chart-5: oklch(0.6959 0.1491 162.4796); --sidebar: oklch(0.9911 0 0); --sidebar-foreground: oklch(0.5452 0 0); --sidebar-primary: oklch(0.8348 0.1302 160.908); --sidebar-primary-foreground: oklch(0.2626 0.0147 166.4589); --sidebar-accent: oklch(0.9461 0 0); --sidebar-accent-foreground: oklch(0.2435 0 0); --sidebar-border: oklch(0.9037 0 0); --sidebar-ring: oklch(0.8348 0.1302 160.908); --font-sans: Inter, ui-sans-serif, sans-serif, system-ui; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: JetBrains Mono, ui-monospace, monospace; --radius: 0.5rem; --shadow-x: 0px; --shadow-y: 1px; --shadow-blur: 3px; --shadow-spread: 0px; --shadow-opacity: 0.17; --shadow-color: #000000; --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 2px 4px -1px hsl(0 0% 0% / 0.17); --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 4px 6px -1px hsl(0 0% 0% / 0.17); --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 8px 10px -1px hsl(0 0% 0% / 0.17); --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.43); --tracking-normal: 0.025em; --spacing: 0.25rem; } .dark { --background: oklch(0.1822 0 0); --foreground: oklch(0.9288 0.0126 255.5078); --card: oklch(0.2046 0 0); --card-foreground: oklch(0.9288 0.0126 255.5078); --popover: oklch(0.2603 0 0); --popover-foreground: oklch(0.7348 0 0); --primary: oklch(0.48 0.16 261.58); --primary-foreground: oklch(0.98 0 0); --secondary: oklch(0.26 0.05 263.16); --secondary-foreground: oklch(0.95 0 0); --muted: oklch(0.2393 0 0); --muted-foreground: oklch(0.7122 0 0); --accent: oklch(0.42 0.14 261.58); --accent-foreground: oklch(0.12 0 0); --destructive: oklch(0.3123 0.0852 29.7877); --destructive-foreground: oklch(0.9368 0.0045 34.3092); --border: oklch(0.2809 0 0); --input: oklch(0.2603 0 0); --ring: oklch(0.48 0.16 261.58); --chart-1: oklch(0.8003 0.1821 151.711); --chart-2: oklch(0.7137 0.1434 254.624); --chart-3: oklch(0.709 0.1592 293.5412); --chart-4: oklch(0.8369 0.1644 84.4286); --chart-5: oklch(0.7845 0.1325 181.912); --sidebar: oklch(0.1822 0 0); --sidebar-foreground: oklch(0.6301 0 0); --sidebar-primary: oklch(0.4365 0.1044 156.7556); --sidebar-primary-foreground: oklch(0.9213 0.0135 167.1556); --sidebar-accent: oklch(0.3132 0 0); --sidebar-accent-foreground: oklch(0.9851 0 0); --sidebar-border: oklch(0.2809 0 0); --sidebar-ring: oklch(0.8003 0.1821 151.711); --font-sans: Inter, ui-sans-serif, sans-serif, system-ui; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: JetBrains Mono, ui-monospace, monospace; --radius: 0.5rem; --shadow-x: 0px; --shadow-y: 1px; --shadow-blur: 3px; --shadow-spread: 0px; --shadow-opacity: 0.17; --shadow-color: #000000; --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 2px 4px -1px hsl(0 0% 0% / 0.17); --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 4px 6px -1px hsl(0 0% 0% / 0.17); --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 8px 10px -1px hsl(0 0% 0% / 0.17); --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.43); } body { --primary-50: color-mix(in oklab, var(--primary) 12%, white); --primary-100: color-mix(in oklab, var(--primary) 20%, white); --primary-200: color-mix(in oklab, var(--primary) 32%, white); --primary-300: color-mix(in oklab, var(--primary) 44%, white); --primary-400: color-mix(in oklab, var(--primary) 60%, white); --primary-500: var(--primary); --primary-600: color-mix(in oklab, var(--primary) 84%, black); --primary-700: color-mix(in oklab, var(--primary) 70%, black); --primary-800: color-mix(in oklab, var(--primary) 56%, black); --primary-900: color-mix(in oklab, var(--primary) 44%, black); --primary-950: color-mix(in oklab, var(--primary) 30%, black); } @theme inline { --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-destructive-foreground: var(--destructive-foreground); --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-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); --font-sans: var(--font-sans); --font-mono: var(--font-mono); --font-serif: var(--font-serif); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --shadow-2xs: var(--shadow-2xs); --shadow-xs: var(--shadow-xs); --shadow-sm: var(--shadow-sm); --shadow: var(--shadow); --shadow-md: var(--shadow-md); --shadow-lg: var(--shadow-lg); --shadow-xl: var(--shadow-xl); --shadow-2xl: var(--shadow-2xl); --tracking-tighter: calc(var(--tracking-normal) - 0.05em); --tracking-tight: calc(var(--tracking-normal) - 0.025em); --tracking-normal: var(--tracking-normal); --tracking-wide: calc(var(--tracking-normal) + 0.025em); --tracking-wider: calc(var(--tracking-normal) + 0.05em); --tracking-widest: calc(var(--tracking-normal) + 0.1em); --color-abyss-950: #070b16; --color-abyss-900: #101827; --color-abyss-800: #131f30; --color-abyss-700: #182335; --breakpoint-whatsapp: 760px; --breakpoint-layout: 980px; --breakpoint-compact: 520px; } @layer base { * { @apply border-gray-200 outline-ring/50; } .dark * { @apply border-gray-700; } body { @apply bg-background text-foreground; letter-spacing: var(--tracking-normal); } button { border: 1px solid color-mix(in oklab, var(--primary) 30%, transparent); background: color-mix(in oklab, var(--primary) 12%, transparent); color: var(--foreground); padding: 10px 12px; border-radius: 10px; cursor: pointer; transition: border-color 120ms ease; } button:disabled { opacity: 0.5; cursor: not-allowed; } input, textarea, select { width: 100%; border: 1px solid var(--border); background: var(--input); color: var(--foreground); padding: 10px 12px; border-radius: 10px; outline: none; } textarea { resize: vertical; } select { appearance: none; } input:focus, textarea:focus, select:focus { border-color: var(--ring); box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 18%, transparent); } /* fallback global de foco por teclado — cobre qualquer elemento focável que não defina seu próprio focus-visible:ring explícito (ex.: itens de lista com role="button") */ a:focus-visible, button:focus-visible, summary:focus-visible, [tabindex]:not([tabindex="-1"]):focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; border-radius: var(--radius-sm); } } @layer components { .prose-content { font-size: 0.875rem; line-height: 1.65; color: inherit; } .prose-content p { margin: 0 0 0.6em; } .prose-content p:last-child { margin-bottom: 0; } .prose-content ul, .prose-content ol { margin: 0.4em 0 0.6em; padding-left: 1.4em; } .prose-content li { margin: 0.2em 0; } .prose-content h1, .prose-content h2, .prose-content h3, .prose-content h4, .prose-content h5, .prose-content h6 { font-weight: 650; line-height: 1.3; margin: 0.8em 0 0.3em; } .prose-content h1 { font-size: 1.15em; } .prose-content h2 { font-size: 1.05em; } .prose-content h3 { font-size: 0.95em; } .prose-content h4, .prose-content h5, .prose-content h6 { font-size: 0.875em; } .prose-content strong { font-weight: 650; } .prose-content em { font-style: italic; } .prose-content a { color: var(--ring); text-decoration: underline; text-underline-offset: 2px; } .prose-content blockquote { margin: 0.5em 0; padding-left: 0.75em; border-left: 3px solid var(--border); color: var(--muted-foreground); font-style: italic; } .prose-content hr { border: none; border-top: 1px solid var(--border); margin: 0.8em 0; } .prose-content code:not(pre code) { background: rgba(91, 140, 255, 0.1); border: 1px solid rgba(91, 140, 255, 0.2); border-radius: 4px; padding: 0.1em 0.35em; font-family: "JetBrains Mono", "Fira Mono", monospace; font-size: 0.82em; } .dark .prose-content code:not(pre code) { background: rgba(91, 140, 255, 0.15); border-color: rgba(91, 140, 255, 0.25); } .code-block-wrapper { margin: 0.5em 0; border-radius: 10px; overflow: hidden; border: 1px solid var(--border); font-size: 0.8em; } .code-block-header { display: flex; align-items: center; justify-content: space-between; padding: 4px 10px; background: rgba(15, 23, 42, 0.06); border-bottom: 1px solid var(--border); } .dark .code-block-header { background: rgba(255, 255, 255, 0.05); } .code-lang { font-family: "JetBrains Mono", monospace; font-size: 0.78em; color: var(--muted-foreground); text-transform: lowercase; } .code-copy-btn { display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--border); background: transparent; color: var(--muted-foreground); padding: 2px 8px; border-radius: 5px; cursor: pointer; font-size: 0.75em; font-family: ui-sans-serif, system-ui, sans-serif; transition: color 120ms, border-color 120ms; transform: none; } .code-copy-btn:hover { color: var(--foreground); border-color: var(--ring); transform: none; } .code-copy-btn.copied { color: #22c55e; border-color: #22c55e44; } .code-copy-btn svg { width: 11px; height: 11px; } .code-block-wrapper pre { margin: 0; padding: 12px 14px; overflow-x: auto; background: rgba(15, 23, 42, 0.04); } .dark .code-block-wrapper pre { background: rgba(0, 0, 0, 0.3); } .code-block-wrapper pre code { font-family: "JetBrains Mono", "Fira Mono", monospace; font-size: 1em; line-height: 1.6; border: none; background: none; padding: 0; border-radius: 0; } } @layer utilities { /* scrollbar fina usada em listas/painéis com overflow (sidebar, whatsapp, chat) */ .scroll-thin { scrollbar-width: thin; scrollbar-color: rgba(0, 0, 0, 0.15) transparent; } .scroll-thin::-webkit-scrollbar { width: 3px; } .scroll-thin::-webkit-scrollbar-track { background: transparent; } .scroll-thin::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.15); border-radius: 999px; } .scroll-thin::-webkit-scrollbar-thumb:hover { background: rgba(0, 0, 0, 0.25); } .dark .scroll-thin { scrollbar-color: rgba(255, 255, 255, 0.12) transparent; } .dark .scroll-thin::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.12); } .dark .scroll-thin::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.22); } }