@import "tailwindcss"; @theme { --color-primary: #6d5acd; --color-primary-foreground: #ffffff; --color-secondary: #2a2a3e; --color-secondary-foreground: #e0e0e0; --color-background: #0f0f1a; --color-foreground: #e8e8f0; --color-muted: #1a1a2e; --color-muted-foreground: #8888aa; --color-border: #2a2a40; --color-card: #161625; --color-accent: #7c6fe0; } /* ===== BASE ===== */ html, body { background: var(--color-background); color: var(--color-foreground); font-family: 'Inter', system-ui, -apple-system, sans-serif; overflow: hidden; height: 100vh; } ::selection { background: rgba(109, 90, 205, 0.3); color: var(--color-foreground); } ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(136,136,170,0.2); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: rgba(136,136,170,0.4); } /* ===== GLASSMORPHISM ===== */ .jae-glass { background: rgba(22, 22, 37, 0.75); backdrop-filter: blur(20px) saturate(1.3); -webkit-backdrop-filter: blur(20px) saturate(1.3); border: 1px solid rgba(255, 255, 255, 0.06); } .jae-glass-sm { background: rgba(30, 30, 50, 0.5); backdrop-filter: blur(12px) saturate(1.2); -webkit-backdrop-filter: blur(12px) saturate(1.2); border: 1px solid rgba(255, 255, 255, 0.04); } .jae-glass-strong { background: rgba(15, 15, 26, 0.9); backdrop-filter: blur(30px) saturate(1.5); -webkit-backdrop-filter: blur(30px) saturate(1.5); border: 1px solid rgba(255, 255, 255, 0.08); } /* ===== ANIMATIONS ===== */ @keyframes jae-fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } @keyframes jae-scale-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes jae-slide-in { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } } @keyframes jae-slide-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } } @keyframes jae-wave { 0% { height: 3px; } 100% { height: 16px; } } @keyframes jae-float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-6px); } } @keyframes jae-pulse-angry { 0%, 100% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(1.1); filter: brightness(1.3) hue-rotate(-10deg); } } @keyframes jae-shake { 0%, 100% { transform: translateX(0); } 10%, 30%, 50%, 70%, 90% { transform: translateX(-3px); } 20%, 40%, 60%, 80% { transform: translateX(3px); } } @keyframes jae-glow-pulse { 0%, 100% { box-shadow: 0 0 5px rgba(109, 90, 205, 0.2); } 50% { box-shadow: 0 0 20px rgba(109, 90, 205, 0.4); } } @keyframes jae-shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } @keyframes jae-crack-pulse { 0%, 100% { opacity: var(--crack-opacity, 1); } 50% { opacity: calc(var(--crack-opacity, 1) * 0.7); } } .jae-fade-in { animation: jae-fade-in 0.3s ease-out; } .jae-scale-in { animation: jae-scale-in 0.2s ease-out; } .jae-slide-in { animation: jae-slide-in 0.3s ease-out; } .jae-slide-up { animation: jae-slide-up 0.25s ease-out; } .jae-float { animation: jae-float 3s ease-in-out infinite; } .jae-shake { animation: jae-shake 0.5s ease-in-out; } /* ===== HOVER & CLICK TRANSITIONS ===== */ button, [role="button"] { transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } button:active, [role="button"]:active { transform: scale(0.97); } /* ===== BROKEN GLASS OVERLAY ===== */ .jae-cracked-overlay { position: fixed; inset: 0; pointer-events: none; z-index: 200; background: radial-gradient(ellipse at 30% 40%, rgba(220,38,38,0.08) 0%, transparent 50%), radial-gradient(ellipse at 70% 60%, rgba(220,38,38,0.05) 0%, transparent 50%); transition: opacity 1s ease; } .jae-cracked-overlay::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(135deg, transparent 40%, rgba(255,255,255,0.03) 40.5%, transparent 41%), linear-gradient(225deg, transparent 35%, rgba(255,255,255,0.02) 35.5%, transparent 36%), linear-gradient(45deg, transparent 55%, rgba(255,255,255,0.025) 55.5%, transparent 56%), linear-gradient(315deg, transparent 25%, rgba(255,255,255,0.015) 25.5%, transparent 26%), linear-gradient(160deg, transparent 45%, rgba(255,255,255,0.02) 45.5%, transparent 46%), linear-gradient(200deg, transparent 60%, rgba(255,255,255,0.018) 60.5%, transparent 61%), linear-gradient(80deg, transparent 30%, rgba(255,255,255,0.022) 30.5%, transparent 31%); animation: jae-crack-pulse 2s ease-in-out infinite; } /* ===== CHAT MESSAGE ANIMATIONS ===== */ .message-enter { animation: jae-slide-up 0.3s ease-out; } /* Hide tool outputs when toggled off */ /* ===== SHIMMER LOADING ===== */ .jae-shimmer { background: linear-gradient(90deg, transparent 0%, rgba(109,90,205,0.08) 50%, transparent 100%); background-size: 200% 100%; animation: jae-shimmer 2s infinite; } /* ===== SIDEBAR ===== */ .jae-sidebar { scrollbar-width: none; } .jae-sidebar:hover { scrollbar-width: thin; } .jae-sidebar::-webkit-scrollbar { width: 0; } .jae-sidebar:hover::-webkit-scrollbar { width: 4px; } /* ===== INPUT GLOW ===== */ .jae-input-glow:focus-within { box-shadow: 0 0 0 1px rgba(109, 90, 205, 0.3), 0 0 20px rgba(109, 90, 205, 0.1); border-color: rgba(109, 90, 205, 0.4); transition: all 0.3s ease; } /* ===== DARK MODE OVERRIDES ===== */ .dark input, .dark textarea, .dark select { color: var(--color-foreground); background: rgba(30, 30, 50, 0.5); } /* Fix keyboard shortcuts text */ .dark .kbd-text, .dark [class*="keyboard"] { color: var(--color-foreground) !important; } .dark kbd { background: rgba(42, 42, 62, 0.8); color: var(--color-foreground); border: 1px solid rgba(255,255,255,0.1); } /* ===== PROVIDER TABS ===== */ .provider-tab { transition: all 0.2s ease; border-bottom: 2px solid transparent; } .provider-tab:hover { background: rgba(109, 90, 205, 0.1); } .provider-tab.active { border-bottom-color: var(--color-primary); color: var(--color-foreground); } /* ===== RESIZE HANDLE ===== */ .jae-resize-handle { width: 4px; cursor: col-resize; background: transparent; transition: background 0.2s; flex-shrink: 0; } .jae-resize-handle:hover, .jae-resize-handle:active { background: rgba(109, 90, 205, 0.4); } /* ===== TOOL RESULTS IN CHAT ===== */ .inline-browser-result { display: none; } /* ===== AGENT INTERFACE OVERRIDES ===== */ [class*="AgentInterface"] { background: transparent !important; } /* ===== VIEW TOGGLE CONTROLS ===== */ /* Hide tool call blocks when tools toggled off */ /* Hide thinking/reasoning blocks */ /* Hide system messages */ /* Hide timestamps on messages */ /* Hide browser tool output in chat when browser panel is open */ /* Smooth transition for tool-message visibility */ tool-message { transition: opacity 0.2s ease, max-height 0.3s ease; } /* ===== SIDEBAR HOVER SCROLLBAR ===== */ .jae-sidebar { scrollbar-width: none; -ms-overflow-style: none; } .jae-sidebar::-webkit-scrollbar { width: 4px; background: transparent; } .jae-sidebar::-webkit-scrollbar-thumb { background: transparent; border-radius: 4px; transition: background 0.3s ease; } .jae-sidebar:hover { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.15) transparent; } .jae-sidebar:hover::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); } .jae-sidebar:hover::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.25); } /* ===== GLASSMORPHISM ===== */ .jae-glass { background: rgba(255,255,255,0.03) !important; backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2); border: 1px solid rgba(255,255,255,0.08) !important; box-shadow: 0 8px 32px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.05); } .jae-glass-subtle { background: rgba(255,255,255,0.02) !important; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.05) !important; } .jae-glass-strong { background: rgba(255,255,255,0.06) !important; backdrop-filter: blur(24px) saturate(1.4); -webkit-backdrop-filter: blur(24px) saturate(1.4); border: 1px solid rgba(255,255,255,0.12) !important; box-shadow: 0 12px 40px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.08); } /* ===== SMOOTH TRANSITIONS ===== */ * { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } button, a, input, [role="button"] { transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } button:active, [role="button"]:active { transform: scale(0.97); } /* ===== SCALE-IN ANIMATION ===== */ @keyframes jae-scale-in { from { opacity: 0; transform: scale(0.95) translateY(8px); } to { opacity: 1; transform: scale(1) translateY(0); } } .jae-scale-in { animation: jae-scale-in 0.2s cubic-bezier(0.34, 1.56, 0.64, 1); } /* ===== SHAKE ANIMATION (anger) ===== */ @keyframes jae-shake { 0% { transform: translateX(0); } 25% { transform: translateX(-4px) rotate(-0.5deg); } 50% { transform: translateX(4px) rotate(0.5deg); } 75% { transform: translateX(-2px) rotate(-0.3deg); } 100% { transform: translateX(0); } } /* ===== CRACK OVERLAY ===== */ .jae-crack-overlay { position: fixed; inset: 0; z-index: 9999; background: radial-gradient(ellipse at 30% 40%, transparent 30%, rgba(0,0,0,0.02) 31%, transparent 32%), radial-gradient(ellipse at 70% 60%, transparent 25%, rgba(0,0,0,0.02) 26%, transparent 27%); background-size: 100% 100%; pointer-events: none; /* SVG crack lines */ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='600'%3E%3Cpath d='M400 0 L395 80 L370 150 L380 200 L350 280 L340 350 L360 400 L345 500 L350 600' stroke='rgba(255,255,255,0.15)' stroke-width='2' fill='none'/%3E%3Cpath d='M395 80 L430 120 L460 110' stroke='rgba(255,255,255,0.1)' stroke-width='1.5' fill='none'/%3E%3Cpath d='M370 150 L330 180 L300 170' stroke='rgba(255,255,255,0.1)' stroke-width='1.5' fill='none'/%3E%3Cpath d='M380 200 L420 230 L450 220 L480 250' stroke='rgba(255,255,255,0.08)' stroke-width='1' fill='none'/%3E%3Cpath d='M350 280 L310 310 L280 300' stroke='rgba(255,255,255,0.08)' stroke-width='1' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; } /* ===== ANGRY PULSE ===== */ @keyframes jae-angry-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.3); filter: brightness(1.5); } } .jae-angry-pulse { animation: jae-angry-pulse 0.5s ease-in-out infinite; } /* ===== TYPING WAVEFORM ===== */ @keyframes jae-wave { 0%, 60%, 100% { transform: scaleY(0.3); } 30% { transform: scaleY(1); } } .jae-typing-wave { display: inline-flex; align-items: center; gap: 2px; height: 16px; } .jae-typing-wave span { display: inline-block; width: 3px; height: 16px; border-radius: 2px; background: currentColor; opacity: 0.6; animation: jae-wave 1.2s ease-in-out infinite; } .jae-typing-wave span:nth-child(1) { animation-delay: 0s; } .jae-typing-wave span:nth-child(2) { animation-delay: 0.1s; } .jae-typing-wave span:nth-child(3) { animation-delay: 0.2s; } .jae-typing-wave span:nth-child(4) { animation-delay: 0.3s; } .jae-typing-wave span:nth-child(5) { animation-delay: 0.4s; } /* ===== TICKER PULSE ===== */ @keyframes jae-ticker-pulse { 0%, 100% { opacity: 0.4; } 50% { opacity: 1; } } .jae-ticker-pulse { animation: jae-ticker-pulse 1.5s ease-in-out infinite; } /* ===== MOOD EMOJI FLOAT ===== */ .jae-mood-emoji { transition: transform 0.3s ease; } .jae-mood-emoji:hover { transform: scale(1.3) rotate(5deg); } /* ===== TOOLTIP PEEK ===== */ .jae-peek-tooltip { position: absolute; z-index: 100; max-width: 300px; padding: 8px 12px; border-radius: 10px; background: rgba(15,15,20,0.95); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,0.1); box-shadow: 0 8px 24px rgba(0,0,0,0.5); font-size: 11px; line-height: 1.4; color: rgba(255,255,255,0.8); pointer-events: none; animation: jae-scale-in 0.15s ease; } /* ===== HOVER GLOW EFFECT ===== */ .jae-hover-glow { position: relative; overflow: hidden; } .jae-hover-glow::after { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255,255,255,0.06) 0%, transparent 60%); opacity: 0; transition: opacity 0.3s ease; pointer-events: none; } .jae-hover-glow:hover::after { opacity: 1; } /* ===== FADE IN MESSAGES ===== */ @keyframes jae-msg-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } .jae-msg-enter { animation: jae-msg-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); } /* ===== VIEW TOGGLE SELECTORS (targeting actual DOM elements) ===== */ /* Hide tool messages */ .hide-tools tool-message { display: none !important; } /* Hide thinking blocks */ .hide-thinking thinking-block { display: none !important; } /* Hide system messages - target role attribute and system-related elements */ .hide-system [data-role="system"], .hide-system .system-message, .hide-system aborted-message { display: none !important; } /* Hide timestamps */ .hide-timestamps time, .hide-timestamps [data-timestamp], .hide-timestamps .message-timestamp, .hide-timestamps .text-muted-foreground:has(time) { display: none !important; } /* Hide browser tool output in chat when side panel is open */ .browser-panel-active tool-message[data-tool-name="browser"], .browser-panel-active tool-message[data-tool-name="web_fetch"], .browser-panel-active tool-message[data-tool-name="navigate"] { display: none !important; } /* ===== SIDEBAR SCROLLBAR (show on hover) ===== */ .jae-sidebar { scrollbar-width: none; -ms-overflow-style: none; } .jae-sidebar::-webkit-scrollbar { width: 0; background: transparent; } .jae-sidebar:hover { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.15) transparent; } .jae-sidebar:hover::-webkit-scrollbar { width: 5px; } .jae-sidebar:hover::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 4px; } .jae-sidebar:hover::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.25); } /* ===== KEYBOARD SHORTCUTS DARK MODE FIX ===== */ keyboard-shortcuts *, keyboard-shortcuts span, keyboard-shortcuts div, keyboard-shortcuts h2, keyboard-shortcuts h3 { color: inherit !important; } keyboard-shortcuts { color: hsl(0 0% 95%) !important; } keyboard-shortcuts kbd { color: hsl(0 0% 90%) !important; background: rgba(255,255,255,0.08) !important; border-color: rgba(255,255,255,0.12) !important; } /* ===== COMMAND PALETTE DARK MODE FIX ===== */ command-palette *, command-palette span, command-palette div, command-palette input { color: inherit !important; } command-palette { color: hsl(0 0% 95%) !important; } command-palette input { color: hsl(0 0% 95%) !important; background: rgba(255,255,255,0.06) !important; } command-palette input::placeholder { color: hsl(0 0% 50%) !important; } /* ===== MEMORY MANAGER DARK MODE FIX ===== */ memory-manager * { color: inherit !important; } memory-manager { color: hsl(0 0% 95%) !important; } /* ===== MARKETPLACE DARK MODE FIX ===== */ jae-marketplace * { color: inherit !important; } jae-marketplace { color: hsl(0 0% 95%) !important; } jae-marketplace input { color: hsl(0 0% 95%) !important; background: rgba(255,255,255,0.06) !important; } /* ===== ENHANCED GLASSMORPHISM & SMOOTH ANIMATIONS ===== */ /* Glass card for overlays */ .glass-card { background: rgba(20, 20, 30, 0.85); backdrop-filter: blur(24px) saturate(180%); -webkit-backdrop-filter: blur(24px) saturate(180%); border: 1px solid rgba(255,255,255,0.08); box-shadow: 0 8px 32px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.05); } /* Glass panel variant */ .glass-panel { background: rgba(0,0,0,0.5); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } /* Smooth button interactions */ button { transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } button:active { transform: scale(0.97); } /* Interactive card hover lift */ .hover-lift { transition: transform 0.25s ease, box-shadow 0.25s ease; } .hover-lift:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.3); } /* Smooth panel transitions */ #sidebar-wrap, #right-panel { transition: width 0.15s ease-out; } /* Chat messages smooth entry */ .message-row { animation: jae-msg-in 0.3s cubic-bezier(0.16, 1, 0.3, 1); } /* Typing indicator waveform */ .jae-waveform { display: flex; align-items: center; gap: 3px; height: 20px; padding: 0 8px; } .jae-waveform-bar { width: 3px; background: hsl(var(--primary)); border-radius: 2px; animation: jae-waveform-bounce 0.8s ease-in-out infinite; } .jae-waveform-bar:nth-child(1) { animation-delay: 0s; height: 40%; } .jae-waveform-bar:nth-child(2) { animation-delay: 0.1s; height: 60%; } .jae-waveform-bar:nth-child(3) { animation-delay: 0.2s; height: 80%; } .jae-waveform-bar:nth-child(4) { animation-delay: 0.3s; height: 100%; } .jae-waveform-bar:nth-child(5) { animation-delay: 0.4s; height: 70%; } .jae-waveform-bar:nth-child(6) { animation-delay: 0.5s; height: 50%; } @keyframes jae-waveform-bounce { 0%, 100% { transform: scaleY(0.3); opacity: 0.4; } 50% { transform: scaleY(1); opacity: 1; } } /* Context peek tooltip */ .jae-context-tooltip { position: absolute; z-index: 300; max-width: 300px; padding: 8px 12px; background: rgba(20, 20, 30, 0.95); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,0.1); border-radius: 10px; box-shadow: 0 8px 32px rgba(0,0,0,0.5); font-size: 11px; color: hsl(0 0% 85%); line-height: 1.5; pointer-events: none; animation: jae-tooltip-in 0.2s ease; } @keyframes jae-tooltip-in { from { opacity: 0; transform: translateY(4px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } } /* Resize handles */ .jae-resize-handle { width: 4px; cursor: col-resize; background: transparent; transition: background 0.2s; flex-shrink: 0; } .jae-resize-handle:hover { background: hsl(var(--primary) / 0.3); } .jae-resize-handle:active { background: hsl(var(--primary) / 0.5); } /* Scrollbar styling (global) */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); } /* Animate-in utility */ .animate-fade-in { animation: jae-fade-in 0.3s ease; } .animate-scale-in { animation: jae-scale-in 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .animate-slide-up { animation: jae-slide-up 0.3s cubic-bezier(0.16, 1, 0.3, 1); } /* Smooth focus rings */ input:focus, textarea:focus, select:focus { outline: none; box-shadow: 0 0 0 2px hsl(var(--primary) / 0.3); transition: box-shadow 0.2s ease; } /* Crypto ticker glow */ .jae-ticker-glow { text-shadow: 0 0 6px currentColor; } /* Marketplace skill cards */ .jae-skill-card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); border-radius: 12px; padding: 12px; transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); } .jae-skill-card:hover { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.12); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(0,0,0,0.2); } /* Persona selector active glow */ .jae-persona-active { box-shadow: 0 0 0 2px hsl(var(--primary) / 0.4), 0 4px 12px rgba(0,0,0,0.2); } /* Slash command autocomplete */ .jae-slash-popup { background: rgba(20, 20, 30, 0.95); backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,0.1); border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,0.5); overflow: hidden; } .jae-slash-item { padding: 8px 12px; cursor: pointer; transition: background 0.15s; } .jae-slash-item:hover, .jae-slash-item.active { background: rgba(255,255,255,0.06); } /* Smooth header bar */ .jae-glass { background: rgba(10, 10, 18, 0.8) !important; backdrop-filter: blur(16px) saturate(150%) !important; -webkit-backdrop-filter: blur(16px) saturate(150%) !important; } .jae-glass-sm { background: rgba(10, 10, 18, 0.6) !important; backdrop-filter: blur(8px) !important; -webkit-backdrop-filter: blur(8px) !important; }