| @tailwind base; |
| @tailwind components; |
| @tailwind utilities; |
|
|
| |
| :root { |
| |
| --c-bg: #f5f6f8; |
| --c-sf: #ecedf1; |
| --c-card: #ffffff; |
| --c-top: #f8fbff; |
| --c-top-bd: rgba(148,163,184,0.18); |
| --c-top-el: rgba(255,255,255,0.76); |
| --c-top-el-h: #ffffff; |
| --c-side: #f1f5fb; |
| --c-side-bd: rgba(148,163,184,0.22); |
| --c-side-el: rgba(255,255,255,0.72); |
| --c-side-el-h: rgba(255,255,255,0.92); |
| --c-side-act: #ffffff; |
| --c-side-act-bd: rgba(96,165,250,0.22); |
| --c-side-tx: #334155; |
| --c-side-tx2: rgba(51,65,85,0.78); |
| --c-side-tx3: rgba(51,65,85,0.52); |
| --c-bd: rgba(0,0,0,0.09); |
| --c-bd-hi: rgba(0,0,0,0.22); |
| --c-tx: #121212; |
| --c-tx2: #3d3d3d; |
| --c-tx3: rgba(0,0,0,0.38); |
| --c-txph: rgba(0,0,0,0.32); |
| --c-hi: rgba(0,0,0,0.08); |
| --c-ho: rgba(0,0,0,0.04); |
| --c-ub: #dbeafe; |
| --c-ub-bd: #bfdbfe; |
| --c-utx: #1d4ed8; |
| --c-code: rgba(0,0,0,0.06); |
| --c-scrl: rgba(0,0,0,0.15); |
| --c-scrl-hv: rgba(0,0,0,0.28); |
| --c-prose: #2d2d2d; |
| --c-prose-h: #0f0f0f; |
| --c-prose-a: #2563eb; |
| --c-prose-ah: #1d4ed8; |
| --c-prose-cd: #1a3a72; |
| } |
|
|
| .dark { |
| --c-bg: #0b0b0b; |
| --c-sf: #0a0a0a; |
| --c-card: #141414; |
| --c-top: #10161f; |
| --c-top-bd: rgba(148,163,184,0.14); |
| --c-top-el: rgba(255,255,255,0.06); |
| --c-top-el-h: rgba(255,255,255,0.10); |
| --c-side: #131922; |
| --c-side-bd: rgba(148,163,184,0.16); |
| --c-side-el: rgba(255,255,255,0.05); |
| --c-side-el-h: rgba(255,255,255,0.08); |
| --c-side-act: rgba(59,130,246,0.16); |
| --c-side-act-bd: rgba(96,165,250,0.24); |
| --c-side-tx: #e5ecf6; |
| --c-side-tx2: rgba(226,232,240,0.78); |
| --c-side-tx3: rgba(226,232,240,0.48); |
| --c-bd: rgba(255,255,255,0.07); |
| --c-bd-hi: rgba(255,255,255,0.18); |
| --c-tx: #e2e2e2; |
| --c-tx2: rgba(255,255,255,0.75); |
| --c-tx3: rgba(255,255,255,0.28); |
| --c-txph: rgba(255,255,255,0.22); |
| --c-hi: rgba(255,255,255,0.07); |
| --c-ho: rgba(255,255,255,0.04); |
| --c-ub: rgba(79,142,247,0.13); |
| --c-ub-bd: rgba(79,142,247,0.22); |
| --c-utx: rgba(255,255,255,0.90); |
| --c-code: #0e0e0e; |
| --c-scrl: rgba(255,255,255,0.12); |
| --c-scrl-hv: rgba(255,255,255,0.22); |
| --c-prose: #d8d8d8; |
| --c-prose-h: #ffffff; |
| --c-prose-a: #7dd3fc; |
| --c-prose-ah: #bae6fd; |
| --c-prose-cd: #e2e8f0; |
| } |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| html, body, #app { |
| height: 100%; |
| margin: 0; |
| padding: 0; |
| } |
|
|
| body { |
| background: var(--c-bg); |
| color: var(--c-tx); |
| } |
|
|
| |
| ::-webkit-scrollbar { |
| width: 5px; |
| height: 5px; |
| } |
| ::-webkit-scrollbar-track { |
| background: transparent; |
| } |
| ::-webkit-scrollbar-thumb { |
| background: var(--c-scrl); |
| border-radius: 10px; |
| } |
| ::-webkit-scrollbar-thumb:hover { |
| background: var(--c-scrl-hv); |
| } |
|
|
| |
| .user-bubble { |
| background: var(--c-ub); |
| border: 1px solid var(--c-ub-bd); |
| border-radius: 18px; |
| } |
|
|
| |
| .prose-dark { |
| color: var(--c-prose); |
| line-height: 1.75; |
| word-break: break-word; |
| } |
| .prose-dark h1, |
| .prose-dark h2, |
| .prose-dark h3, |
| .prose-dark h4 { |
| color: var(--c-prose-h); |
| font-weight: 600; |
| margin: 1em 0 0.5em; |
| line-height: 1.3; |
| } |
| .prose-dark h1 { font-size: 1.5em; } |
| .prose-dark h2 { font-size: 1.25em; } |
| .prose-dark h3 { font-size: 1.1em; } |
| .prose-dark p { |
| margin: 0.6em 0; |
| } |
| .prose-dark p:first-child { margin-top: 0; } |
| .prose-dark p:last-child { margin-bottom: 0; } |
| .prose-dark a { |
| color: var(--c-prose-a); |
| text-decoration: underline; |
| } |
| .prose-dark a:hover { |
| color: var(--c-prose-ah); |
| } |
| .prose-dark ul, |
| .prose-dark ol { |
| padding-left: 1.5em; |
| margin: 0.5em 0; |
| } |
| .prose-dark li { |
| margin: 0.2em 0; |
| } |
| .prose-dark blockquote { |
| border-left: 3px solid var(--c-bd); |
| padding-left: 1em; |
| color: var(--c-tx3); |
| margin: 0.75em 0; |
| font-style: italic; |
| } |
| .prose-dark hr { |
| border: none; |
| border-top: 1px solid var(--c-bd); |
| margin: 1em 0; |
| } |
| .prose-dark table { |
| border-collapse: collapse; |
| width: 100%; |
| margin: 0.75em 0; |
| font-size: 0.9em; |
| } |
| .prose-dark th, |
| .prose-dark td { |
| border: 1px solid var(--c-bd); |
| padding: 0.4em 0.75em; |
| text-align: left; |
| } |
| .prose-dark th { |
| background: var(--c-hi); |
| font-weight: 600; |
| } |
| .prose-dark code:not(pre code) { |
| background: var(--c-code); |
| border: 1px solid var(--c-bd); |
| border-radius: 3px; |
| padding: 0.1em 0.35em; |
| font-size: 0.875em; |
| font-family: 'JetBrains Mono', 'Fira Code', monospace; |
| color: var(--c-prose-cd); |
| } |
| .prose-dark pre { |
| background: var(--c-code); |
| border: 1px solid var(--c-bd); |
| border-radius: 6px; |
| padding: 1em; |
| overflow-x: auto; |
| margin: 0.75em 0; |
| position: relative; |
| } |
| .prose-dark pre code { |
| background: none; |
| border: none; |
| padding: 0; |
| font-size: 0.85em; |
| font-family: 'JetBrains Mono', 'Fira Code', monospace; |
| color: var(--c-prose-cd); |
| } |
|
|
| |
| .code-block-wrapper { |
| position: relative; |
| } |
| .copy-btn { |
| position: absolute; |
| top: 0.5em; |
| right: 0.5em; |
| background: var(--c-hi); |
| border: 1px solid var(--c-bd); |
| border-radius: 6px; |
| color: var(--c-tx3); |
| font-size: 0.7em; |
| padding: 2px 8px; |
| cursor: pointer; |
| opacity: 0; |
| transition: opacity 0.15s ease; |
| } |
| .code-block-wrapper:hover .copy-btn { |
| opacity: 1; |
| } |
| .copy-btn:hover { |
| background: var(--c-ho); |
| color: var(--c-tx); |
| } |
|
|
| |
| @keyframes fadeInUp { |
| from { |
| opacity: 0; |
| transform: translateY(8px); |
| } |
| to { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| } |
| .message-enter { |
| animation: fadeInUp 0.2s ease forwards; |
| } |
|
|
| |
| @keyframes typingDot { |
| 0%, 60%, 100% { opacity: 0.2; transform: translateY(0); } |
| 30% { opacity: 1; transform: translateY(-4px); } |
| } |
| .typing-dot { |
| display: inline-block; |
| width: 6px; |
| height: 6px; |
| border-radius: 50%; |
| background: var(--c-tx3); |
| animation: typingDot 1.2s infinite; |
| } |
| .typing-dot:nth-child(2) { animation-delay: 0.2s; } |
| .typing-dot:nth-child(3) { animation-delay: 0.4s; } |
|
|
| |
| .sidebar-transition { |
| transition: transform 0.25s ease, opacity 0.25s ease; |
| } |
|
|
| |
| textarea { |
| resize: none; |
| overflow-y: auto; |
| } |
|
|
| |
| .dropdown-enter { |
| animation: dropdownFade 0.15s ease forwards; |
| } |
| @keyframes dropdownFade { |
| from { opacity: 0; transform: translateY(-4px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
|
|
| |
| .modal-backdrop { |
| animation: modalFadeIn 0.15s ease forwards; |
| } |
| @keyframes modalFadeIn { |
| from { opacity: 0; } |
| to { opacity: 1; } |
| } |
| .modal-panel { |
| animation: modalSlideIn 0.2s ease forwards; |
| } |
| @keyframes modalSlideIn { |
| from { opacity: 0; transform: scale(0.96) translateY(-8px); } |
| to { opacity: 1; transform: scale(1) translateY(0); } |
| } |
|
|
| |
| .hljs { |
| background: transparent !important; |
| } |
|
|