| @tailwind base; |
| @tailwind components; |
| @tailwind utilities; |
|
|
| @layer base { |
| :root { |
| color-scheme: dark; |
| --background: 0 0% 13%; |
| --foreground: 0 0% 94%; |
| --card: 0 0% 17%; |
| --panel: 0 0% 10%; |
| --muted: 0 0% 22%; |
| --muted-foreground: 0 0% 68%; |
| --border: 0 0% 25%; |
| --input: 0 0% 28%; |
| --accent: 0 0% 8%; |
| --accent-foreground: 0 0% 100%; |
| --secondary: 0 0% 24%; |
| --secondary-foreground: 0 0% 94%; |
| --success: 155 62% 45%; |
| --warning: 38 92% 54%; |
| --danger: 0 75% 60%; |
| --ring: 212 90% 60%; |
| } |
|
|
| [data-theme='light'] { |
| color-scheme: light; |
| --background: 0 0% 100%; |
| --foreground: 0 0% 13%; |
| --card: 0 0% 100%; |
| --panel: 0 0% 97%; |
| --muted: 0 0% 94%; |
| --muted-foreground: 0 0% 42%; |
| --border: 0 0% 88%; |
| --input: 0 0% 82%; |
| --accent: 0 0% 8%; |
| --accent-foreground: 0 0% 100%; |
| --secondary: 0 0% 94%; |
| --secondary-foreground: 0 0% 13%; |
| --success: 155 58% 38%; |
| --warning: 38 90% 44%; |
| --danger: 0 72% 50%; |
| --ring: 212 92% 50%; |
| } |
|
|
| * { |
| @apply border-border; |
| letter-spacing: 0 !important; |
| } |
|
|
| html, |
| body, |
| #root { |
| height: 100%; |
| } |
|
|
| html { |
| @apply antialiased; |
| } |
|
|
| body { |
| @apply overflow-hidden bg-background font-sans text-foreground; |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; |
| transition: |
| background-color 180ms ease, |
| color 180ms ease; |
| } |
|
|
| h1, |
| h2, |
| h3, |
| h4, |
| h5, |
| h6 { |
| font-family: inherit; |
| } |
|
|
| code, |
| pre, |
| kbd { |
| font-family: 'JetBrains Mono', ui-monospace, monospace; |
| } |
|
|
| button, |
| input, |
| textarea, |
| select { |
| font: inherit; |
| } |
|
|
| button { |
| border-radius: 0.5rem !important; |
| } |
|
|
| ::selection { |
| background: hsl(var(--accent) / 0.18); |
| } |
|
|
| @media (prefers-reduced-motion: reduce) { |
| *, |
| *::before, |
| *::after { |
| animation-duration: 0.01ms !important; |
| animation-iteration-count: 1 !important; |
| scroll-behavior: auto !important; |
| transition-duration: 0.01ms !important; |
| } |
| } |
| } |
|
|
| @layer components { |
| .app-background { |
| background: hsl(var(--background)); |
| } |
|
|
| [data-theme='light'] .app-background { |
| background: hsl(var(--background)); |
| } |
|
|
| .app-background-glow { |
| display: none; |
| } |
|
|
| .app-background-grid { |
| display: none; |
| } |
|
|
| [data-theme='light'] .app-background-grid { |
| opacity: 0.18; |
| } |
|
|
| .brand-gradient { |
| background: hsl(var(--accent)); |
| } |
|
|
| .text-gradient { |
| color: hsl(var(--foreground)); |
| } |
|
|
| .surface-card, |
| .editorial-card, |
| .editorial-surface { |
| @apply rounded-lg border border-border bg-card; |
| } |
|
|
| .surface-soft, |
| .editorial-card-soft { |
| @apply rounded-lg border border-border bg-panel; |
| } |
|
|
| .label-pill, |
| .editorial-pill { |
| @apply inline-flex items-center rounded-lg border border-border bg-background px-3 py-1 text-[11px] font-medium text-muted-foreground; |
| } |
|
|
| .field { |
| @apply border border-input bg-card transition; |
| } |
|
|
| .field:focus-within { |
| border-color: hsl(var(--accent) / 0.42); |
| box-shadow: 0 0 0 2px hsl(var(--accent) / 0.14); |
| } |
|
|
| .rich-scroll { |
| scrollbar-width: thin; |
| scrollbar-color: hsl(var(--border)) transparent; |
| } |
|
|
| .rich-scroll::-webkit-scrollbar { |
| width: 10px; |
| height: 10px; |
| } |
|
|
| .rich-scroll::-webkit-scrollbar-track { |
| background: transparent; |
| } |
|
|
| .rich-scroll::-webkit-scrollbar-thumb { |
| border: 2px solid transparent; |
| border-radius: 999px; |
| background: hsl(var(--border)); |
| background-clip: padding-box; |
| } |
|
|
| .markdown-body { |
| @apply space-y-4 break-words text-sm leading-7 text-foreground; |
| } |
|
|
| .markdown-body > :first-child { |
| @apply mt-0; |
| } |
|
|
| .markdown-body > :last-child { |
| @apply mb-0; |
| } |
|
|
| .markdown-body h1, |
| .markdown-body h2, |
| .markdown-body h3 { |
| @apply font-display font-semibold tracking-tight text-foreground; |
| } |
|
|
| .markdown-body h1 { |
| @apply text-2xl; |
| } |
|
|
| .markdown-body h2 { |
| @apply text-xl; |
| } |
|
|
| .markdown-body h3 { |
| @apply text-lg; |
| } |
|
|
| .markdown-body p, |
| .markdown-body ul, |
| .markdown-body ol, |
| .markdown-body blockquote, |
| .markdown-body pre, |
| .markdown-body table { |
| @apply my-4; |
| } |
|
|
| .markdown-body a { |
| @apply font-medium text-accent underline decoration-accent/35 underline-offset-4 transition hover:decoration-accent; |
| } |
|
|
| .markdown-body strong { |
| @apply font-semibold text-foreground; |
| } |
|
|
| .markdown-body code:not(pre code) { |
| @apply rounded-md bg-secondary px-1.5 py-1 text-[0.85em] text-foreground; |
| } |
|
|
| .markdown-body ul, |
| .markdown-body ol { |
| @apply pl-6; |
| } |
|
|
| .markdown-body ul { |
| @apply list-disc; |
| } |
|
|
| .markdown-body ol { |
| @apply list-decimal; |
| } |
|
|
| .markdown-body blockquote { |
| @apply rounded-lg border-l-4 border-border bg-secondary px-4 py-3 text-muted-foreground; |
| } |
|
|
| .markdown-body hr { |
| @apply border-border; |
| } |
|
|
| .markdown-body img { |
| @apply rounded-lg border border-border; |
| } |
|
|
| .markdown-body table { |
| @apply w-full overflow-hidden rounded-lg border border-border text-left text-sm; |
| } |
|
|
| .markdown-body thead { |
| @apply bg-background; |
| } |
|
|
| .markdown-body th, |
| .markdown-body td { |
| @apply border-b border-border px-4 py-3; |
| } |
|
|
| .markdown-body pre { |
| @apply overflow-x-auto rounded-lg border border-border bg-background p-4 text-sm; |
| } |
|
|
| .markdown-body pre code { |
| @apply bg-transparent p-0 text-foreground; |
| } |
|
|
| .code-shell { |
| margin: 1rem 0; |
| overflow: hidden; |
| border-radius: 8px; |
| border: 1px solid hsl(var(--border) / 0.8); |
| background: hsl(var(--background) / 0.92); |
| } |
|
|
| .code-toolbar { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| gap: 0.75rem; |
| border-bottom: 1px solid hsl(var(--border) / 0.8); |
| padding: 0.75rem 1rem; |
| background: hsl(var(--panel) / 0.88); |
| } |
|
|
| .code-badge { |
| border-radius: 8px; |
| border: 1px solid hsl(var(--border) / 0.8); |
| background: hsl(var(--background) / 0.75); |
| padding: 0.25rem 0.625rem; |
| font-size: 0.6875rem; |
| font-weight: 600; |
| color: hsl(var(--muted-foreground)); |
| } |
|
|
| .code-copy-button { |
| border-radius: 8px; |
| border: 1px solid hsl(var(--border) / 0.8); |
| background: hsl(var(--background) / 0.78); |
| padding: 0.4rem 0.85rem; |
| font-size: 0.75rem; |
| font-weight: 600; |
| color: hsl(var(--foreground)); |
| transition: background-color 180ms ease, border-color 180ms ease; |
| } |
|
|
| .code-copy-button:hover { |
| border-color: hsl(var(--accent) / 0.28); |
| background: hsl(var(--panel) / 0.95); |
| } |
|
|
| .typing-cursor { |
| display: inline-block; |
| width: 0.65rem; |
| height: 1rem; |
| margin-left: 0.25rem; |
| border-radius: 999px; |
| background: hsl(var(--accent)); |
| animation: blink 1s step-end infinite; |
| vertical-align: middle; |
| } |
|
|
| .auth-panel { |
| background: |
| linear-gradient(135deg, hsl(var(--card)) 0%, hsl(var(--panel)) 100%); |
| } |
|
|
| .auth-sweep { |
| pointer-events: none; |
| position: absolute; |
| inset: -40% -20% auto; |
| height: 8rem; |
| background: linear-gradient( |
| 90deg, |
| transparent, |
| hsl(var(--accent) / 0.16), |
| transparent |
| ); |
| transform: rotate(-8deg) translateX(-40%); |
| animation: auth-sweep 5s ease-in-out infinite; |
| } |
|
|
| @keyframes auth-sweep { |
| 0%, |
| 100% { |
| transform: rotate(-8deg) translateX(-45%); |
| opacity: 0.2; |
| } |
|
|
| 50% { |
| transform: rotate(-8deg) translateX(45%); |
| opacity: 0.55; |
| } |
| } |
| } |
|
|