| @import "tailwindcss"; |
| @import "tw-animate-css"; |
|
|
| @custom-variant dark (&:is(.dark *)); |
|
|
| @theme inline { |
| --color-background: var(--background); |
| --color-foreground: var(--foreground); |
| --font-sans: var(--font-geist-sans); |
| --font-mono: var(--font-geist-mono); |
| --color-ring: var(--ring); |
| --color-input: var(--input); |
| --color-border: var(--border); |
| --color-destructive: var(--destructive); |
| --color-accent-foreground: var(--accent-foreground); |
| --color-accent: var(--accent); |
| --color-muted-foreground: var(--muted-foreground); |
| --color-muted: var(--muted); |
| --color-secondary-foreground: var(--secondary-foreground); |
| --color-secondary: var(--secondary); |
| --color-primary-foreground: var(--primary-foreground); |
| --color-primary: var(--primary); |
| --color-popover-foreground: var(--popover-foreground); |
| --color-popover: var(--popover); |
| --color-card-foreground: var(--card-foreground); |
| --color-card: var(--card); |
| --radius-sm: calc(var(--radius) - 4px); |
| --radius-md: calc(var(--radius) - 2px); |
| --radius-lg: var(--radius); |
| --radius-xl: calc(var(--radius) + 4px); |
| --color-amber-50: #FFFBEB; |
| --color-amber-100: #FEF3C7; |
| --color-amber-200: #FDE68A; |
| --color-amber-300: #FCD34D; |
| --color-amber-400: #FBBF24; |
| --color-amber-500: #F59E0B; |
| --color-amber-600: #D97706; |
| --color-amber-700: #B45309; |
| --color-amber-800: #92400E; |
| --color-amber-900: #78350F; |
| --color-teal-400: #2DD4BF; |
| --color-teal-500: #14B8A6; |
| --color-teal-600: #0D9488; |
| } |
|
|
| :root { |
| --radius: 0.625rem; |
| --background: #09090B; |
| --foreground: #FAFAFA; |
| --card: #111113; |
| --card-foreground: #FAFAFA; |
| --popover: #111113; |
| --popover-foreground: #FAFAFA; |
| --primary: #F59E0B; |
| --primary-foreground: #09090B; |
| --secondary: #1C1C1F; |
| --secondary-foreground: #FAFAFA; |
| --muted: #1C1C1F; |
| --muted-foreground: #A1A1AA; |
| --accent: #1C1C1F; |
| --accent-foreground: #FAFAFA; |
| --destructive: #EF4444; |
| --border: rgba(255, 255, 255, 0.08); |
| --input: rgba(255, 255, 255, 0.1); |
| --ring: #F59E0B; |
| } |
|
|
| @layer base { |
| * { |
| @apply border-border outline-ring/50; |
| } |
| body { |
| @apply bg-background text-foreground; |
| font-feature-settings: "rlig" 1, "calt" 1; |
| } |
| } |
|
|
| |
| ::-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); |
| } |
|
|
| |
| .glass-card { |
| background: rgba(255, 255, 255, 0.03); |
| backdrop-filter: blur(12px); |
| border: 1px solid rgba(255, 255, 255, 0.06); |
| border-radius: 16px; |
| box-shadow: inset 0 1px 0 rgba(255,255,255,0.04); |
| } |
|
|
| .glass-card-hover { |
| background: rgba(255, 255, 255, 0.03); |
| backdrop-filter: blur(12px); |
| border: 1px solid rgba(255, 255, 255, 0.06); |
| border-radius: 16px; |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
| } |
| .glass-card-hover:hover { |
| background: rgba(255, 255, 255, 0.06); |
| border-color: rgba(245, 158, 11, 0.2); |
| transform: translateY(-2px); |
| box-shadow: 0 8px 32px rgba(245, 158, 11, 0.08); |
| } |
|
|
| |
| .amber-glow { |
| box-shadow: 0 0 40px rgba(245, 158, 11, 0.15), 0 0 80px rgba(245, 158, 11, 0.05); |
| } |
|
|
| |
| .grid-bg { |
| background-image: |
| linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px), |
| linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px); |
| background-size: 64px 64px; |
| } |
|
|
| |
| .noise-overlay::before { |
| content: ""; |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| opacity: 0.03; |
| z-index: 0; |
| pointer-events: none; |
| background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); |
| } |
|
|
| |
| .drop-zone { |
| border: 2px dashed rgba(245, 158, 11, 0.3); |
| border-radius: 16px; |
| transition: all 0.3s ease; |
| } |
| .drop-zone.drag-over { |
| border-color: #F59E0B; |
| background: rgba(245, 158, 11, 0.05); |
| box-shadow: 0 0 32px rgba(245, 158, 11, 0.1); |
| } |
|
|
| |
| @keyframes slideUp { |
| from { opacity: 0; transform: translateY(8px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| .chat-bubble { |
| animation: slideUp 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
| } |
|
|
| |
| .pricing-highlight { |
| border: 1px solid rgba(245, 158, 11, 0.4); |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.08) 0%, rgba(20, 184, 166, 0.04) 100%); |
| position: relative; |
| } |
| .pricing-highlight::before { |
| content: ""; |
| position: absolute; |
| inset: -1px; |
| border-radius: 16px; |
| padding: 1px; |
| background: linear-gradient(135deg, #F59E0B, #14B8A6); |
| -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); |
| -webkit-mask-composite: xor; |
| mask-composite: exclude; |
| pointer-events: none; |
| } |
|
|
| |
| @keyframes fadeIn { |
| from { opacity: 0; } |
| to { opacity: 1; } |
| } |
| .fade-in { |
| animation: fadeIn 0.5s ease; |
| } |
|
|
| |
| .status-done { background: rgba(34, 197, 94, 0.12); color: #22C55E; } |
| .status-review { background: rgba(234, 179, 8, 0.12); color: #EAB308; } |
| .status-duplicate { background: rgba(239, 68, 68, 0.12); color: #EF4444; } |
|
|
| |
| .tab-active { |
| color: #F59E0B; |
| border-bottom: 2px solid #F59E0B; |
| } |
|
|
| |
| *:focus-visible { |
| outline: 2px solid #F59E0B; |
| outline-offset: 2px; |
| border-radius: 4px; |
| } |
|
|
| |
| .gradient-text { |
| background: linear-gradient(135deg, #F59E0B 0%, #FBBF24 40%, #14B8A6 100%); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| background-clip: text; |
| } |
|
|
| |
| .progress-bar { |
| background: linear-gradient(90deg, #F59E0B, #14B8A6); |
| border-radius: 4px; |
| transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1); |
| } |
|
|
| |
| @keyframes shimmer { |
| 0% { background-position: -200% 0; } |
| 100% { background-position: 200% 0; } |
| } |
| .skeleton-shimmer { |
| background: linear-gradient(90deg, rgba(255,255,255,0.03) 25%, rgba(255,255,255,0.08) 50%, rgba(255,255,255,0.03) 75%); |
| background-size: 200% 100%; |
| animation: shimmer 1.5s infinite; |
| border-radius: 8px; |
| } |
|
|
| |
| .hero-orb { |
| position: absolute; |
| width: 600px; |
| height: 600px; |
| border-radius: 50%; |
| background: radial-gradient(circle, rgba(245,158,11,0.12) 0%, rgba(20,184,166,0.06) 40%, transparent 70%); |
| filter: blur(60px); |
| top: -100px; |
| right: -150px; |
| pointer-events: none; |
| animation: orbFloat 8s ease-in-out infinite; |
| } |
| .hero-orb-2 { |
| position: absolute; |
| width: 400px; |
| height: 400px; |
| border-radius: 50%; |
| background: radial-gradient(circle, rgba(20,184,166,0.1) 0%, rgba(245,158,11,0.05) 40%, transparent 70%); |
| filter: blur(50px); |
| bottom: -80px; |
| left: -100px; |
| pointer-events: none; |
| animation: orbFloat 10s ease-in-out infinite reverse; |
| } |
| @keyframes orbFloat { |
| 0%, 100% { transform: translate(0, 0) scale(1); } |
| 33% { transform: translate(30px, -20px) scale(1.05); } |
| 66% { transform: translate(-20px, 15px) scale(0.95); } |
| } |
|
|
| |
| @keyframes countUp { |
| from { opacity: 0; transform: translateY(10px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| .stat-item { |
| animation: countUp 0.6s ease-out both; |
| } |
| .stat-item:nth-child(2) { animation-delay: 0.1s; } |
| .stat-item:nth-child(3) { animation-delay: 0.2s; } |
|
|
| |
| .feature-amber .feature-icon { background: rgba(245,158,11,0.1); color: #F59E0B; } |
| .feature-teal .feature-icon { background: rgba(20,184,166,0.1); color: #14B8A6; } |
| .feature-red .feature-icon { background: rgba(239,68,68,0.1); color: #EF4444; } |
| .feature-green .feature-icon { background: rgba(34,197,94,0.1); color: #22C55E; } |
| .feature-sky .feature-icon { background: rgba(56,189,248,0.1); color: #38BDF8; } |
| .feature-rose .feature-icon { background: rgba(244,114,182,0.1); color: #F472B6; } |
|
|
| |
| .stat-card { |
| background: rgba(255,255,255,0.03); |
| border: 1px solid rgba(255,255,255,0.06); |
| border-radius: 12px; |
| padding: 16px 20px; |
| transition: all 0.3s ease; |
| } |
| .stat-card:hover { |
| background: rgba(255,255,255,0.05); |
| border-color: rgba(255,255,255,0.1); |
| transform: translateY(-1px); |
| } |
|
|
| |
| .invoice-row { |
| cursor: pointer; |
| transition: background 0.15s ease; |
| } |
| .invoice-row:hover { |
| background: rgba(255,255,255,0.03) !important; |
| } |
|
|
| |
| @keyframes sectionReveal { |
| from { opacity: 0; transform: translateY(24px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| .section-reveal { |
| animation: sectionReveal 0.7s ease-out both; |
| } |
|
|
| |
| .footer-link { |
| color: #A1A1AA; |
| transition: color 0.2s ease; |
| cursor: pointer; |
| } |
| .footer-link:hover { |
| color: #F59E0B; |
| } |
|
|
| |
| @keyframes typingDot { |
| 0%, 60%, 100% { opacity: 0.3; } |
| 30% { opacity: 1; } |
| } |
| .typing-dot { |
| animation: typingDot 1.4s ease-in-out infinite; |
| } |
| .typing-dot:nth-child(2) { animation-delay: 0.2s; } |
| .typing-dot:nth-child(3) { animation-delay: 0.4s; } |
|
|
| |
| |
| |
|
|
| |
| .btn-primary { |
| background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%); |
| color: #09090B; |
| font-weight: 600; |
| padding: 10px 24px; |
| border-radius: 10px; |
| transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); |
| position: relative; |
| overflow: hidden; |
| } |
| .btn-primary:hover { |
| transform: translateY(-1px); |
| box-shadow: 0 4px 20px rgba(245, 158, 11, 0.35); |
| } |
| .btn-primary:active { |
| transform: translateY(0); |
| } |
| .btn-primary:disabled { |
| opacity: 0.5; |
| cursor: not-allowed; |
| transform: none; |
| box-shadow: none; |
| } |
|
|
| |
| .btn-ghost { |
| background: transparent; |
| color: #FAFAFA; |
| font-weight: 500; |
| padding: 10px 24px; |
| border-radius: 10px; |
| border: 1px solid rgba(255, 255, 255, 0.1); |
| transition: all 0.25s ease; |
| } |
| .btn-ghost:hover { |
| background: rgba(255, 255, 255, 0.05); |
| border-color: rgba(255, 255, 255, 0.2); |
| } |
|
|
| |
| |
| |
|
|
| |
| .input-field { |
| background: rgba(255, 255, 255, 0.04); |
| border: 1px solid rgba(255, 255, 255, 0.08); |
| border-radius: 10px; |
| padding: 12px 16px; |
| color: #FAFAFA; |
| font-size: 14px; |
| transition: all 0.2s ease; |
| width: 100%; |
| } |
| .input-field:focus { |
| outline: none; |
| border-color: #F59E0B; |
| box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.1); |
| background: rgba(255, 255, 255, 0.06); |
| } |
| .input-field::placeholder { |
| color: #52525B; |
| } |
|
|
| |
| .input-group { |
| position: relative; |
| } |
| .input-label { |
| display: block; |
| font-size: 13px; |
| font-weight: 500; |
| color: #A1A1AA; |
| margin-bottom: 6px; |
| } |
|
|
| |
| |
| |
|
|
| |
| .card-accent-amber { border-top: 2px solid rgba(245, 158, 11, 0.6); } |
| .card-accent-teal { border-top: 2px solid rgba(20, 184, 166, 0.6); } |
| .card-accent-red { border-top: 2px solid rgba(239, 68, 68, 0.6); } |
| .card-accent-green { border-top: 2px solid rgba(34, 197, 94, 0.6); } |
|
|
| |
| .hover-lift { |
| transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease; |
| } |
| .hover-lift:hover { |
| transform: translateY(-4px); |
| box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3); |
| } |
|
|
| |
| |
| |
|
|
| |
| .badge-amber { |
| background: rgba(245, 158, 11, 0.12); |
| color: #F59E0B; |
| padding: 2px 10px; |
| border-radius: 100px; |
| font-size: 12px; |
| font-weight: 600; |
| letter-spacing: 0.02em; |
| } |
| .badge-teal { |
| background: rgba(20, 184, 166, 0.12); |
| color: #14B8A6; |
| padding: 2px 10px; |
| border-radius: 100px; |
| font-size: 12px; |
| font-weight: 600; |
| letter-spacing: 0.02em; |
| } |
| .badge-muted { |
| background: rgba(255, 255, 255, 0.06); |
| color: #A1A1AA; |
| padding: 2px 10px; |
| border-radius: 100px; |
| font-size: 12px; |
| font-weight: 500; |
| } |
|
|
| |
| |
| |
|
|
| |
| .dash-tab { |
| padding: 10px 16px; |
| font-size: 14px; |
| font-weight: 500; |
| color: #71717A; |
| border-bottom: 2px solid transparent; |
| transition: all 0.2s ease; |
| cursor: pointer; |
| white-space: nowrap; |
| } |
| .dash-tab:hover { |
| color: #FAFAFA; |
| background: rgba(255, 255, 255, 0.03); |
| } |
| .dash-tab.active { |
| color: #F59E0B; |
| border-bottom-color: #F59E0B; |
| } |
|
|
| |
| |
| |
|
|
| |
| .tooltip-wrapper { |
| position: relative; |
| } |
| .tooltip-wrapper .tooltip-text { |
| visibility: hidden; |
| opacity: 0; |
| position: absolute; |
| bottom: calc(100% + 8px); |
| left: 50%; |
| transform: translateX(-50%) translateY(4px); |
| background: #27272A; |
| color: #FAFAFA; |
| padding: 6px 12px; |
| border-radius: 8px; |
| font-size: 12px; |
| white-space: nowrap; |
| z-index: 50; |
| border: 1px solid rgba(255, 255, 255, 0.08); |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); |
| transition: all 0.2s ease; |
| pointer-events: none; |
| } |
| .tooltip-wrapper:hover .tooltip-text { |
| visibility: visible; |
| opacity: 1; |
| transform: translateX(-50%) translateY(0); |
| } |
|
|
| |
| |
| |
|
|
| |
| @keyframes pulseGlow { |
| 0%, 100% { box-shadow: 0 0 20px rgba(245, 158, 11, 0.2); } |
| 50% { box-shadow: 0 0 40px rgba(245, 158, 11, 0.4); } |
| } |
| .pulse-glow { |
| animation: pulseGlow 3s ease-in-out infinite; |
| } |
|
|
| |
| @keyframes slideInRight { |
| from { opacity: 0; transform: translateX(20px); } |
| to { opacity: 1; transform: translateX(0); } |
| } |
| .slide-in-right { |
| animation: slideInRight 0.4s cubic-bezier(0.4, 0, 0.2, 1); |
| } |
|
|
| |
| @keyframes scaleIn { |
| from { opacity: 0; transform: scale(0.95); } |
| to { opacity: 1; transform: scale(1); } |
| } |
| .scale-in { |
| animation: scaleIn 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
| } |
|
|
| |
| .stagger-children > *:nth-child(1) { animation-delay: 0ms; } |
| .stagger-children > *:nth-child(2) { animation-delay: 80ms; } |
| .stagger-children > *:nth-child(3) { animation-delay: 160ms; } |
| .stagger-children > *:nth-child(4) { animation-delay: 240ms; } |
| .stagger-children > *:nth-child(5) { animation-delay: 320ms; } |
| .stagger-children > *:nth-child(6) { animation-delay: 400ms; } |
| .stagger-children > * { |
| opacity: 0; |
| animation: fadeIn 0.5s ease forwards; |
| } |
|
|
| |
| |
| |
|
|
| |
| .data-table { |
| width: 100%; |
| border-collapse: separate; |
| border-spacing: 0; |
| } |
| .data-table thead th { |
| padding: 12px 16px; |
| text-align: left; |
| font-size: 12px; |
| font-weight: 600; |
| text-transform: uppercase; |
| letter-spacing: 0.05em; |
| color: #71717A; |
| border-bottom: 1px solid rgba(255, 255, 255, 0.06); |
| position: sticky; |
| top: 0; |
| background: #111113; |
| z-index: 1; |
| } |
| .data-table tbody td { |
| padding: 12px 16px; |
| font-size: 14px; |
| border-bottom: 1px solid rgba(255, 255, 255, 0.04); |
| color: #D4D4D8; |
| } |
| .data-table tbody tr:last-child td { |
| border-bottom: none; |
| } |
|
|
| |
| |
| |
|
|
| .code-block { |
| background: #0C0C0E; |
| border: 1px solid rgba(255, 255, 255, 0.06); |
| border-radius: 10px; |
| padding: 16px 20px; |
| font-family: 'Geist Mono', monospace; |
| font-size: 13px; |
| line-height: 1.6; |
| color: #A1A1AA; |
| overflow-x: auto; |
| } |
| .code-block .code-keyword { color: #F59E0B; } |
| .code-block .code-string { color: #14B8A6; } |
| .code-block .code-comment { color: #52525B; } |
|
|
| |
| |
| |
|
|
| .scroll-top-btn { |
| position: fixed; |
| bottom: 24px; |
| right: 24px; |
| width: 44px; |
| height: 44px; |
| border-radius: 12px; |
| background: rgba(245, 158, 11, 0.15); |
| border: 1px solid rgba(245, 158, 11, 0.3); |
| color: #F59E0B; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| cursor: pointer; |
| opacity: 0; |
| transform: translateY(8px); |
| transition: all 0.3s ease; |
| z-index: 40; |
| } |
| .scroll-top-btn.visible { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| .scroll-top-btn:hover { |
| background: rgba(245, 158, 11, 0.25); |
| transform: translateY(-2px); |
| } |
|
|
| |
| |
| |
|
|
| .empty-state { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| padding: 48px 24px; |
| color: #52525B; |
| } |
| .empty-state svg { |
| width: 48px; |
| height: 48px; |
| margin-bottom: 16px; |
| opacity: 0.4; |
| } |
|
|
| |
| |
| |
|
|
| .nav-blur { |
| backdrop-filter: blur(16px) saturate(180%); |
| background: rgba(9, 9, 11, 0.8); |
| border-bottom: 1px solid rgba(255, 255, 255, 0.06); |
| } |
|
|
| |
| |
| |
|
|
| .detail-panel { |
| animation: slideInRight 0.3s ease; |
| border-left: 1px solid rgba(255, 255, 255, 0.06); |
| } |
|
|
| |
| |
| |
|
|
| .notification-badge { |
| position: absolute; |
| top: -2px; |
| right: -2px; |
| width: 8px; |
| height: 8px; |
| background: #EF4444; |
| border-radius: 50%; |
| border: 2px solid #09090B; |
| } |
|
|
| |
| |
| |
|
|
| @keyframes dashRotate { |
| to { stroke-dashoffset: -20; } |
| } |
| .drop-zone-animated { |
| border: 2px dashed rgba(245, 158, 11, 0.3); |
| border-radius: 16px; |
| transition: all 0.3s ease; |
| background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg stroke='%23F59E0B' stroke-opacity='0.04' stroke-width='1'%3E%3Cpath d='M0 20h40M20 0v40'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); |
| } |
| .drop-zone-animated:hover { |
| border-color: rgba(245, 158, 11, 0.5); |
| background: rgba(245, 158, 11, 0.03); |
| } |
|
|
| |
| |
| |
|
|
| .notification-dropdown { |
| position: absolute; |
| top: calc(100% + 8px); |
| right: 0; |
| width: 320px; |
| background: #18181B; |
| border: 1px solid rgba(255,255,255,0.08); |
| border-radius: 12px; |
| box-shadow: 0 16px 48px rgba(0,0,0,0.5); |
| z-index: 100; |
| overflow: hidden; |
| } |
| .notification-item { |
| padding: 12px 16px; |
| border-bottom: 1px solid rgba(255,255,255,0.04); |
| transition: background 0.15s ease; |
| } |
| .notification-item:hover { |
| background: rgba(255,255,255,0.03); |
| } |
| .notification-item:last-child { |
| border-bottom: none; |
| } |
|
|
| |
| |
| |
|
|
| .modal-overlay { |
| position: fixed; |
| inset: 0; |
| background: rgba(0,0,0,0.6); |
| backdrop-filter: blur(4px); |
| z-index: 100; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| animation: fadeIn 0.2s ease; |
| } |
| .modal-content { |
| background: #18181B; |
| border: 1px solid rgba(255,255,255,0.08); |
| border-radius: 16px; |
| padding: 24px; |
| max-width: 480px; |
| width: 90%; |
| animation: scaleIn 0.2s ease; |
| } |
|
|
| |
| |
| |
|
|
| .chat-message-user { |
| background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%); |
| color: #09090B; |
| border-radius: 20px 20px 6px 20px; |
| padding: 12px 16px; |
| max-width: 80%; |
| } |
| .chat-message-assistant { |
| background: rgba(255,255,255,0.06); |
| color: #FAFAFA; |
| border-radius: 20px 20px 20px 6px; |
| padding: 12px 16px; |
| max-width: 80%; |
| border: 1px solid rgba(255,255,255,0.06); |
| } |
| .chat-timestamp { |
| font-size: 11px; |
| color: rgba(255,255,255,0.3); |
| margin-top: 4px; |
| } |
|
|
| |
| |
| |
|
|
| .btn-primary::after { |
| content: ''; |
| position: absolute; |
| inset: 0; |
| border-radius: inherit; |
| opacity: 0; |
| transition: opacity 0.3s ease; |
| background: radial-gradient(circle at center, rgba(255,255,255,0.2) 0%, transparent 70%); |
| } |
| .btn-primary:active::after { |
| opacity: 1; |
| transition: opacity 0s; |
| } |
|
|
| |
| |
| |
|
|
| .kbd { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| padding: 2px 6px; |
| font-size: 11px; |
| font-family: 'Geist Mono', monospace; |
| color: #A1A1AA; |
| background: rgba(255,255,255,0.06); |
| border: 1px solid rgba(255,255,255,0.1); |
| border-radius: 6px; |
| box-shadow: 0 1px 0 rgba(255,255,255,0.05); |
| line-height: 1.4; |
| } |
|
|
| |
| |
| |
|
|
| .invoice-checkbox { |
| appearance: none; |
| width: 16px; |
| height: 16px; |
| border: 1.5px solid rgba(255,255,255,0.2); |
| border-radius: 4px; |
| background: transparent; |
| cursor: pointer; |
| transition: all 0.15s ease; |
| position: relative; |
| } |
| .invoice-checkbox:checked { |
| background: #F59E0B; |
| border-color: #F59E0B; |
| } |
| .invoice-checkbox:checked::after { |
| content: ''; |
| position: absolute; |
| left: 4px; |
| top: 1px; |
| width: 5px; |
| height: 9px; |
| border: solid #09090B; |
| border-width: 0 2px 2px 0; |
| transform: rotate(45deg); |
| } |
| .invoice-checkbox:hover { |
| border-color: rgba(245,158,11,0.5); |
| } |
|
|
| |
| |
| |
|
|
| .dash-footer { |
| border-top: 1px solid rgba(255,255,255,0.06); |
| background: rgba(255,255,255,0.01); |
| margin-top: auto; |
| } |
|
|
| |
| |
| |
|
|
| .focus-glow:focus-visible { |
| box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15); |
| border-color: rgba(245, 158, 11, 0.4); |
| } |
|
|
| |
| |
| |
|
|
| @keyframes numberPop { |
| 0% { transform: scale(0.8); opacity: 0; } |
| 60% { transform: scale(1.05); } |
| 100% { transform: scale(1); opacity: 1; } |
| } |
| .number-pop { |
| animation: numberPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both; |
| } |
|
|
| |
| |
| |
|
|
| .select-field { |
| background: rgba(255, 255, 255, 0.04); |
| border: 1px solid rgba(255, 255, 255, 0.08); |
| border-radius: 10px; |
| padding: 10px 16px; |
| color: #FAFAFA; |
| font-size: 14px; |
| transition: all 0.2s ease; |
| width: 100%; |
| appearance: none; |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23A1A1AA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); |
| background-repeat: no-repeat; |
| background-position: right 12px center; |
| padding-right: 36px; |
| } |
| .select-field:focus { |
| outline: none; |
| border-color: #F59E0B; |
| box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.1); |
| } |
|
|
| |
| |
| |
|
|
| .chat-suggestion:hover { |
| box-shadow: 0 0 12px rgba(245, 158, 11, 0.1); |
| border-color: rgba(245, 158, 11, 0.2); |
| } |
|
|
| |
| |
| |
|
|
| .pb-safe { |
| padding-bottom: max(16px, env(safe-area-inset-bottom)); |
| } |
|
|
| |
| |
| |
|
|
| |
| @keyframes viewEnter { |
| from { |
| opacity: 0; |
| transform: translateY(12px) scale(0.99); |
| } |
| to { |
| opacity: 1; |
| transform: translateY(0) scale(1); |
| } |
| } |
| .view-enter { |
| animation: viewEnter 0.35s cubic-bezier(0.16, 1, 0.3, 1) both; |
| } |
|
|
| |
| @keyframes cardEnter { |
| from { |
| opacity: 0; |
| transform: translateY(16px); |
| } |
| to { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| } |
| .card-enter { |
| opacity: 0; |
| animation: cardEnter 0.5s cubic-bezier(0.16, 1, 0.3, 1) both; |
| } |
| .card-enter:nth-child(1) { animation-delay: 0ms; } |
| .card-enter:nth-child(2) { animation-delay: 60ms; } |
| .card-enter:nth-child(3) { animation-delay: 120ms; } |
| .card-enter:nth-child(4) { animation-delay: 180ms; } |
| .card-enter:nth-child(5) { animation-delay: 240ms; } |
| .card-enter:nth-child(6) { animation-delay: 300ms; } |
|
|
| |
| @keyframes countSlideUp { |
| from { opacity: 0; transform: translateY(20px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| .stat-animate { |
| opacity: 0; |
| animation: countSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) both; |
| } |
| .stat-animate:nth-child(1) { animation-delay: 0.1s; } |
| .stat-animate:nth-child(2) { animation-delay: 0.2s; } |
| .stat-animate:nth-child(3) { animation-delay: 0.3s; } |
|
|
| |
| .feature-card-gradient { |
| position: relative; |
| background: rgba(255,255,255,0.03); |
| backdrop-filter: blur(12px); |
| border: 1px solid rgba(255,255,255,0.06); |
| border-radius: 16px; |
| overflow: hidden; |
| transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); |
| } |
| .feature-card-gradient::before { |
| content: ''; |
| position: absolute; |
| inset: 0; |
| border-radius: 16px; |
| padding: 1px; |
| background: linear-gradient(135deg, transparent 40%, rgba(245,158,11,0.3) 100%); |
| -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); |
| -webkit-mask-composite: xor; |
| mask-composite: exclude; |
| opacity: 0; |
| transition: opacity 0.4s ease; |
| pointer-events: none; |
| } |
| .feature-card-gradient:hover::before { |
| opacity: 1; |
| } |
| .feature-card-gradient:hover { |
| transform: translateY(-6px); |
| box-shadow: 0 20px 60px rgba(0,0,0,0.3), 0 0 40px rgba(245,158,11,0.05); |
| } |
|
|
| |
| .pricing-ribbon { |
| position: absolute; |
| top: -1px; |
| right: 24px; |
| background: linear-gradient(135deg, #F59E0B, #D97706); |
| color: #09090B; |
| font-size: 11px; |
| font-weight: 700; |
| padding: 4px 12px 6px; |
| border-radius: 0 0 8px 8px; |
| letter-spacing: 0.04em; |
| text-transform: uppercase; |
| } |
|
|
| |
| .testimonial-card { |
| position: relative; |
| background: rgba(255,255,255,0.03); |
| backdrop-filter: blur(12px); |
| border: 1px solid rgba(255,255,255,0.06); |
| border-radius: 16px; |
| padding: 24px; |
| transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); |
| } |
| .testimonial-card:hover { |
| transform: translateY(-4px) scale(1.01); |
| border-color: rgba(245,158,11,0.15); |
| box-shadow: 0 16px 48px rgba(0,0,0,0.2); |
| } |
| .testimonial-card::after { |
| content: ''; |
| position: absolute; |
| bottom: 0; |
| left: 24px; |
| right: 24px; |
| height: 2px; |
| background: linear-gradient(90deg, transparent, rgba(245,158,11,0.3), transparent); |
| opacity: 0; |
| transition: opacity 0.4s ease; |
| } |
| .testimonial-card:hover::after { |
| opacity: 1; |
| } |
|
|
| |
| .hero-grid-enhanced { |
| background-image: |
| radial-gradient(circle at 1px 1px, rgba(245,158,11,0.08) 1px, transparent 0); |
| background-size: 40px 40px; |
| } |
|
|
| |
| .section-glow-divider { |
| height: 1px; |
| background: linear-gradient(90deg, transparent, rgba(245,158,11,0.2) 50%, transparent); |
| border: none; |
| } |
|
|
| |
| .tab-content-area { |
| background: linear-gradient(180deg, rgba(255,255,255,0.01) 0%, transparent 100%); |
| border-radius: 12px; |
| padding: 24px; |
| } |
|
|
| |
| @keyframes timelineGrow { |
| from { transform: scaleY(0); } |
| to { transform: scaleY(1); } |
| } |
| .timeline-line-animated { |
| transform-origin: top; |
| animation: timelineGrow 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; |
| animation-delay: 0.3s; |
| } |
|
|
| |
| .input-field-glow:focus { |
| outline: none; |
| border-color: rgba(245, 158, 11, 0.5); |
| box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.08), 0 0 20px rgba(245, 158, 11, 0.06); |
| background: rgba(255, 255, 255, 0.06); |
| } |
|
|
| |
| .footer-link-underline { |
| position: relative; |
| color: #A1A1AA; |
| transition: color 0.2s ease; |
| cursor: pointer; |
| } |
| .footer-link-underline::after { |
| content: ''; |
| position: absolute; |
| bottom: -2px; |
| left: 0; |
| width: 0; |
| height: 1px; |
| background: #F59E0B; |
| transition: width 0.3s ease; |
| } |
| .footer-link-underline:hover { |
| color: #F59E0B; |
| } |
| .footer-link-underline:hover::after { |
| width: 100%; |
| } |
|
|
| |
|
|
| |
| .btn-shine { |
| position: relative; |
| overflow: hidden; |
| } |
| .btn-shine::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: -100%; |
| width: 100%; |
| height: 100%; |
| background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); |
| transition: left 0.5s ease; |
| } |
| .btn-shine:hover::before { |
| left: 100%; |
| } |
|
|
| |
| @keyframes float { |
| 0%, 100% { transform: translateY(0px); } |
| 50% { transform: translateY(-8px); } |
| } |
| .float-animation { |
| animation: float 3s ease-in-out infinite; |
| } |
| .float-animation-delayed { |
| animation: float 3s ease-in-out 1.5s infinite; |
| } |
|
|
| |
| @keyframes logoGlow { |
| 0%, 100% { box-shadow: 0 0 12px rgba(245, 158, 11, 0.2); } |
| 50% { box-shadow: 0 0 24px rgba(245, 158, 11, 0.4); } |
| } |
| .logo-glow { |
| animation: logoGlow 3s ease-in-out infinite; |
| } |
|
|
| |
| .stat-card-glass { |
| background: rgba(255, 255, 255, 0.03); |
| backdrop-filter: blur(12px); |
| border: 1px solid rgba(255, 255, 255, 0.06); |
| border-radius: 12px; |
| padding: 16px 20px; |
| transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); |
| position: relative; |
| overflow: hidden; |
| } |
| .stat-card-glass::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| height: 2px; |
| border-radius: 12px 12px 0 0; |
| } |
| .stat-card-glass.card-accent-amber::before { |
| background: linear-gradient(90deg, transparent, rgba(245, 158, 11, 0.6), transparent); |
| } |
| .stat-card-glass.card-accent-teal::before { |
| background: linear-gradient(90deg, transparent, rgba(20, 184, 166, 0.6), transparent); |
| } |
| .stat-card-glass.card-accent-red::before { |
| background: linear-gradient(90deg, transparent, rgba(239, 68, 68, 0.6), transparent); |
| } |
| .stat-card-glass.card-accent-green::before { |
| background: linear-gradient(90deg, transparent, rgba(34, 197, 94, 0.6), transparent); |
| } |
| .stat-card-glass:hover { |
| transform: translateY(-3px); |
| box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2); |
| border-color: rgba(255, 255, 255, 0.1); |
| } |
|
|
| |
| .invoice-row-enhanced { |
| cursor: pointer; |
| transition: all 0.2s ease; |
| position: relative; |
| } |
| .invoice-row-enhanced:hover { |
| background: rgba(255, 255, 255, 0.03) !important; |
| } |
| .invoice-row-enhanced:hover td:first-child { |
| box-shadow: inset 3px 0 0 -1px rgba(245, 158, 11, 0.5); |
| } |
|
|
| |
| .recharts-tooltip-custom { |
| background: rgba(17, 17, 19, 0.95) !important; |
| border: 1px solid rgba(255, 255, 255, 0.08) !important; |
| border-radius: 10px !important; |
| padding: 10px 14px !important; |
| box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3) !important; |
| backdrop-filter: blur(8px) !important; |
| } |
| .recharts-tooltip-custom .recharts-tooltip-label { |
| color: #A1A1AA !important; |
| font-size: 11px !important; |
| font-weight: 500 !important; |
| text-transform: uppercase !important; |
| letter-spacing: 0.05em !important; |
| } |
| .recharts-tooltip-custom .recharts-tooltip-value { |
| color: #FAFAFA !important; |
| font-size: 13px !important; |
| font-weight: 600 !important; |
| } |
|
|
| |
| @keyframes slideDown { |
| from { opacity: 0; transform: translateY(-8px); max-height: 0; } |
| to { opacity: 1; transform: translateY(0); max-height: 400px; } |
| } |
| .mobile-nav-slide { |
| animation: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1) both; |
| overflow: hidden; |
| } |
|
|
| |
| .step-connector { |
| position: relative; |
| } |
| .step-connector::after { |
| content: ''; |
| position: absolute; |
| top: 28px; |
| left: calc(50% + 32px); |
| width: calc(100% - 64px); |
| height: 2px; |
| background: linear-gradient(90deg, rgba(245, 158, 11, 0.3), rgba(20, 184, 166, 0.3)); |
| } |
| .step-connector:last-child::after { |
| display: none; |
| } |
|
|
| |
| @keyframes successPop { |
| 0% { transform: scale(0.8); opacity: 0; } |
| 50% { transform: scale(1.05); } |
| 100% { transform: scale(1); opacity: 1; } |
| } |
| .success-pop { |
| animation: successPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both; |
| } |
|
|
| |
| details.glass-card summary { |
| transition: background 0.2s ease; |
| } |
| details.glass-card summary:hover { |
| background: rgba(255, 255, 255, 0.02); |
| } |
| details.glass-card[open] summary { |
| border-bottom: 1px solid rgba(255, 255, 255, 0.04); |
| } |
|
|
| |
| |
| |
|
|
| |
| .light { |
| --background: #FAFAFA; |
| --foreground: #18181B; |
| --card: #FFFFFF; |
| --card-foreground: #18181B; |
| --popover: #FFFFFF; |
| --popover-foreground: #18181B; |
| --primary: #D97706; |
| --primary-foreground: #FFFFFF; |
| --secondary: #F4F4F5; |
| --secondary-foreground: #18181B; |
| --muted: #F4F4F5; |
| --muted-foreground: #71717A; |
| --accent: #F4F4F5; |
| --accent-foreground: #18181B; |
| --destructive: #EF4444; |
| --border: rgba(0, 0, 0, 0.08); |
| --input: rgba(0, 0, 0, 0.08); |
| --ring: #D97706; |
| color-scheme: light; |
| } |
|
|
| .light body { |
| background: #FAFAFA; |
| color: #18181B; |
| } |
|
|
| |
| .light .glass-card, |
| .light .glass-card-hover { |
| background: rgba(255, 255, 255, 0.8); |
| border-color: rgba(0, 0, 0, 0.06); |
| backdrop-filter: blur(12px); |
| } |
|
|
| .light .glass-card-hover:hover { |
| background: rgba(255, 255, 255, 0.95); |
| border-color: rgba(217, 119, 6, 0.2); |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06); |
| } |
|
|
| |
| .light .nav-blur { |
| background: rgba(250, 250, 250, 0.85); |
| border-bottom-color: rgba(0, 0, 0, 0.06); |
| } |
|
|
| |
| .light .input-field, |
| .light .input-field-glow { |
| background: #FFFFFF; |
| border-color: rgba(0, 0, 0, 0.1); |
| color: #18181B; |
| } |
| .light .input-field:focus, |
| .light .input-field-glow:focus { |
| border-color: #D97706; |
| box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.1), 0 0 20px rgba(217, 119, 6, 0.04); |
| background: #FFFFFF; |
| } |
| .light .input-field::placeholder, |
| .light .input-field-glow::placeholder { |
| color: #A1A1AA; |
| } |
|
|
| |
| .light .btn-ghost { |
| color: #18181B; |
| border-color: rgba(0, 0, 0, 0.1); |
| } |
| .light .btn-ghost:hover { |
| background: rgba(0, 0, 0, 0.04); |
| border-color: rgba(0, 0, 0, 0.15); |
| } |
| .light .btn-primary { |
| background: linear-gradient(135deg, #D97706 0%, #B45309 100%); |
| color: #FFFFFF; |
| } |
|
|
| |
| .light .data-table thead th { |
| color: #71717A; |
| border-bottom-color: rgba(0, 0, 0, 0.06); |
| background: #FAFAFA; |
| } |
| .light .data-table tbody td { |
| color: #52525B; |
| border-bottom-color: rgba(0, 0, 0, 0.04); |
| } |
|
|
| |
| .light .stat-card { |
| background: #FFFFFF; |
| border-color: rgba(0, 0, 0, 0.06); |
| } |
| .light .stat-card:hover { |
| background: #FAFAFA; |
| border-color: rgba(0, 0, 0, 0.1); |
| } |
|
|
| |
| .light .drop-zone, |
| .light .drop-zone-animated { |
| border-color: rgba(217, 119, 6, 0.3); |
| background: rgba(217, 119, 6, 0.02); |
| } |
| .light .drop-zone:hover, |
| .light .drop-zone.drag-over { |
| border-color: #D97706; |
| background: rgba(217, 119, 6, 0.04); |
| } |
|
|
| |
| .light .invoice-row:hover { |
| background: rgba(0, 0, 0, 0.02) !important; |
| } |
|
|
| |
| .light .code-block { |
| background: #F4F4F5; |
| border-color: rgba(0, 0, 0, 0.06); |
| color: #52525B; |
| } |
|
|
| |
| .light .modal-overlay { |
| background: rgba(0, 0, 0, 0.4); |
| } |
| .light .modal-content { |
| background: #FFFFFF; |
| border-color: rgba(0, 0, 0, 0.08); |
| } |
|
|
| |
| .light .notification-dropdown { |
| background: #FFFFFF; |
| border-color: rgba(0, 0, 0, 0.08); |
| box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12); |
| } |
| .light .notification-item:hover { |
| background: rgba(0, 0, 0, 0.02); |
| } |
|
|
| |
| .light .tooltip-wrapper .tooltip-text { |
| background: #27272A; |
| color: #FAFAFA; |
| } |
|
|
| |
| .light .kbd { |
| color: #71717A; |
| background: #F4F4F5; |
| border-color: rgba(0, 0, 0, 0.1); |
| box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05); |
| } |
|
|
| |
| .light .dash-footer { |
| border-top-color: rgba(0, 0, 0, 0.06); |
| background: rgba(0, 0, 0, 0.01); |
| } |
|
|
| |
| .light .scroll-top-btn { |
| background: rgba(217, 119, 6, 0.1); |
| border-color: rgba(217, 119, 6, 0.3); |
| color: #D97706; |
| } |
| .light .scroll-top-btn:hover { |
| background: rgba(217, 119, 6, 0.2); |
| } |
|
|
| |
| .light .skeleton-shimmer { |
| background: linear-gradient(90deg, rgba(0,0,0,0.03) 25%, rgba(0,0,0,0.07) 50%, rgba(0,0,0,0.03) 75%); |
| background-size: 200% 100%; |
| animation: shimmer 1.5s infinite; |
| border-radius: 8px; |
| } |
|
|
| |
| .light .grid-bg { |
| background-image: |
| linear-gradient(rgba(0,0,0,0.03) 1px, transparent 1px), |
| linear-gradient(90deg, rgba(0,0,0,0.03) 1px, transparent 1px); |
| } |
|
|
| |
| .light .hero-orb { |
| background: radial-gradient(circle, rgba(217,119,6,0.08) 0%, rgba(13,148,136,0.04) 40%, transparent 70%); |
| } |
| .light .hero-orb-2 { |
| background: radial-gradient(circle, rgba(13,148,136,0.06) 0%, rgba(217,119,6,0.03) 40%, transparent 70%); |
| } |
|
|
| |
| .light .hero-grid-enhanced { |
| background-image: |
| radial-gradient(circle at 1px 1px, rgba(217,119,6,0.06) 1px, transparent 0); |
| } |
|
|
| |
| .light .section-glow-divider { |
| background: linear-gradient(90deg, transparent, rgba(217,119,6,0.15) 50%, transparent); |
| } |
|
|
| |
| .light .feature-card-gradient { |
| background: rgba(255,255,255,0.8); |
| border-color: rgba(0,0,0,0.06); |
| } |
| .light .feature-card-gradient::before { |
| background: linear-gradient(135deg, transparent 40%, rgba(217,119,6,0.2) 100%); |
| } |
| .light .feature-card-gradient:hover { |
| box-shadow: 0 20px 60px rgba(0,0,0,0.08), 0 0 40px rgba(217,119,6,0.03); |
| } |
|
|
| |
| .light .testimonial-card { |
| background: rgba(255,255,255,0.8); |
| border-color: rgba(0,0,0,0.06); |
| } |
| .light .testimonial-card:hover { |
| border-color: rgba(217,119,6,0.15); |
| box-shadow: 0 16px 48px rgba(0,0,0,0.08); |
| } |
| .light .testimonial-card::after { |
| background: linear-gradient(90deg, transparent, rgba(217,119,6,0.2), transparent); |
| } |
|
|
| |
| .light .pricing-highlight { |
| border-color: rgba(217,119,6,0.3); |
| background: linear-gradient(135deg, rgba(217,119,6,0.05) 0%, rgba(13,148,136,0.02) 100%); |
| } |
|
|
| |
| .light .tab-content-area { |
| background: linear-gradient(180deg, rgba(0,0,0,0.01) 0%, transparent 100%); |
| } |
|
|
| |
| .light .noise-overlay::before { |
| opacity: 0.015; |
| } |
|
|
| |
| .light .select-field { |
| background: #FFFFFF; |
| border-color: rgba(0, 0, 0, 0.1); |
| color: #18181B; |
| } |
| .light .select-field:focus { |
| border-color: #D97706; |
| box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.1); |
| } |
|
|
| |
| .light .badge-amber { |
| background: rgba(217, 119, 6, 0.1); |
| color: #B45309; |
| } |
| .light .badge-teal { |
| background: rgba(13, 184, 166, 0.1); |
| color: #0D9488; |
| } |
|
|
| |
| .light .status-done { background: rgba(34, 197, 94, 0.1); color: #16A34A; } |
| .light .status-review { background: rgba(234, 179, 8, 0.1); color: #CA8A04; } |
| .light .status-duplicate { background: rgba(239, 68, 68, 0.1); color: #DC2626; } |
|
|
| |
| .light .chat-message-user { |
| background: linear-gradient(135deg, #D97706 0%, #B45309 100%); |
| color: #FFFFFF; |
| } |
| .light .chat-message-assistant { |
| background: rgba(0, 0, 0, 0.04); |
| color: #18181B; |
| border-color: rgba(0, 0, 0, 0.06); |
| } |
| .light .chat-timestamp { |
| color: rgba(0, 0, 0, 0.3); |
| } |
|
|
| |
| .light .invoice-checkbox { |
| border-color: rgba(0, 0, 0, 0.2); |
| } |
| .light .invoice-checkbox:checked { |
| background: #D97706; |
| border-color: #D97706; |
| } |
| .light .invoice-checkbox:hover { |
| border-color: rgba(217, 119, 6, 0.5); |
| } |
|
|
| |
| .light .amber-glow { |
| box-shadow: 0 0 40px rgba(217, 119, 6, 0.1), 0 0 80px rgba(217, 119, 6, 0.03); |
| } |
|
|
| |
| .light *:focus-visible { |
| outline-color: #D97706; |
| } |
|
|
| |
| .light .gradient-text { |
| background: linear-gradient(135deg, #D97706 0%, #B45309 40%, #0D9488 100%); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| background-clip: text; |
| } |
|
|
| |
| .light ::-webkit-scrollbar-thumb { |
| background: rgba(0, 0, 0, 0.12); |
| } |
| .light ::-webkit-scrollbar-thumb:hover { |
| background: rgba(0, 0, 0, 0.2); |
| } |
|
|
| |
| .sort-header { |
| cursor: pointer; |
| user-select: none; |
| transition: color 0.15s ease; |
| } |
| .sort-header:hover { |
| color: var(--foreground) !important; |
| } |
| .sort-indicator { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| width: 16px; |
| height: 16px; |
| font-size: 10px; |
| color: #F59E0B; |
| margin-left: 4px; |
| animation: sortPop 0.2s ease; |
| } |
| @keyframes sortPop { |
| 0% { transform: scale(0.5); opacity: 0; } |
| 100% { transform: scale(1); opacity: 1; } |
| } |
| .sort-header-inactive { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| width: 16px; |
| height: 16px; |
| margin-left: 4px; |
| opacity: 0; |
| transition: opacity 0.15s ease; |
| } |
| .sort-header:hover .sort-header-inactive { |
| opacity: 0.3; |
| } |
|
|
| |
| .command-palette-backdrop { |
| position: fixed; |
| inset: 0; |
| z-index: 60; |
| background: rgba(0, 0, 0, 0.6); |
| backdrop-filter: blur(8px); |
| display: flex; |
| align-items: flex-start; |
| justify-content: center; |
| padding-top: 15vh; |
| animation: commandFadeIn 0.15s ease; |
| } |
| @keyframes commandFadeIn { |
| from { opacity: 0; } |
| to { opacity: 1; } |
| } |
| .command-palette { |
| width: 100%; |
| max-width: 560px; |
| margin: 0 1rem; |
| background: rgba(24, 24, 27, 0.95); |
| backdrop-filter: blur(20px); |
| border: 1px solid rgba(255, 255, 255, 0.08); |
| border-radius: 16px; |
| box-shadow: 0 25px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.03); |
| overflow: hidden; |
| animation: commandSlideIn 0.2s ease; |
| } |
| @keyframes commandSlideIn { |
| from { opacity: 0; transform: translateY(-10px) scale(0.98); } |
| to { opacity: 1; transform: translateY(0) scale(1); } |
| } |
| .command-palette-input { |
| display: flex; |
| align-items: center; |
| gap: 12px; |
| padding: 16px; |
| border-bottom: 1px solid rgba(255, 255, 255, 0.06); |
| } |
| .command-palette-input input { |
| flex: 1; |
| background: transparent; |
| border: none; |
| outline: none; |
| color: var(--foreground); |
| font-size: 14px; |
| } |
| .command-palette-input input::placeholder { |
| color: var(--muted-foreground); |
| } |
| .command-palette-results { |
| max-height: 288px; |
| overflow-y: auto; |
| padding: 8px; |
| } |
| .command-palette-item { |
| display: flex; |
| align-items: center; |
| gap: 12px; |
| width: 100%; |
| text-align: left; |
| padding: 10px 12px; |
| border-radius: 10px; |
| font-size: 14px; |
| color: var(--muted-foreground); |
| background: transparent; |
| border: none; |
| cursor: pointer; |
| transition: all 0.12s ease; |
| } |
| .command-palette-item:hover { |
| color: var(--foreground); |
| background: rgba(255, 255, 255, 0.04); |
| } |
| .command-palette-item:active { |
| background: rgba(255, 255, 255, 0.06); |
| } |
| .command-palette-section-title { |
| padding: 8px 12px 4px; |
| font-size: 11px; |
| font-weight: 600; |
| text-transform: uppercase; |
| letter-spacing: 0.05em; |
| color: var(--muted-foreground); |
| } |
| .command-palette-result-sub { |
| font-size: 12px; |
| color: var(--muted-foreground); |
| margin-top: 2px; |
| } |
|
|
| |
| .duplicate-alert { |
| position: relative; |
| overflow: hidden; |
| border-color: rgba(245, 158, 11, 0.2) !important; |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.03), rgba(245, 158, 11, 0.01)) !important; |
| } |
| .duplicate-alert::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| height: 2px; |
| background: linear-gradient(90deg, transparent, #F59E0B, transparent); |
| } |
|
|
| |
| .welcome-panel { |
| position: relative; |
| overflow: hidden; |
| } |
| .welcome-panel::before { |
| content: ''; |
| position: absolute; |
| top: -40px; |
| right: -40px; |
| width: 120px; |
| height: 120px; |
| background: radial-gradient(circle, rgba(245, 158, 11, 0.08), transparent 70%); |
| border-radius: 50%; |
| pointer-events: none; |
| } |
| .welcome-panel::after { |
| content: ''; |
| position: absolute; |
| bottom: -30px; |
| left: -30px; |
| width: 100px; |
| height: 100px; |
| background: radial-gradient(circle, rgba(20, 184, 166, 0.06), transparent 70%); |
| border-radius: 50%; |
| pointer-events: none; |
| } |
| .welcome-stat-btn { |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| padding: 12px; |
| border-radius: 10px; |
| background: rgba(255, 255, 255, 0.03); |
| border: 1px solid rgba(255, 255, 255, 0.04); |
| text-align: left; |
| cursor: pointer; |
| transition: all 0.2s ease; |
| color: inherit; |
| width: 100%; |
| font-family: inherit; |
| } |
| .welcome-stat-btn:hover { |
| background: rgba(255, 255, 255, 0.06); |
| border-color: rgba(255, 255, 255, 0.08); |
| transform: translateY(-1px); |
| } |
| .welcome-stat-btn:active { |
| transform: translateY(0); |
| } |
| .welcome-stat-icon { |
| color: var(--muted-foreground); |
| transition: color 0.2s ease; |
| } |
| .welcome-stat-btn:hover .welcome-stat-icon { |
| color: #F59E0B; |
| } |
|
|
| |
| .toggle-switch { |
| position: relative; |
| width: 44px; |
| height: 24px; |
| border-radius: 12px; |
| background: #3f3f46; |
| border: none; |
| cursor: pointer; |
| transition: background 0.2s ease; |
| padding: 0; |
| flex-shrink: 0; |
| } |
| .toggle-switch.active { |
| background: #F59E0B; |
| } |
| .toggle-switch-knob { |
| position: absolute; |
| top: 2px; |
| left: 2px; |
| width: 20px; |
| height: 20px; |
| border-radius: 50%; |
| background: white; |
| transition: transform 0.2s ease; |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); |
| } |
| .toggle-switch.active .toggle-switch-knob { |
| transform: translateX(20px); |
| } |
|
|
| |
| .card-depth { |
| transition: transform 0.25s ease, box-shadow 0.25s ease; |
| } |
| .card-depth:hover { |
| transform: translateY(-2px); |
| box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.05); |
| } |
|
|
| |
| .badge-pill { |
| display: inline-flex; |
| align-items: center; |
| gap: 4px; |
| padding: 2px 10px; |
| border-radius: 9999px; |
| font-size: 11px; |
| font-weight: 500; |
| letter-spacing: 0.01em; |
| transition: all 0.15s ease; |
| } |
| .badge-pill-dot { |
| width: 6px; |
| height: 6px; |
| border-radius: 50%; |
| flex-shrink: 0; |
| } |
| .badge-teal-enhanced { |
| background: rgba(20, 184, 166, 0.1); |
| color: #14B8A6; |
| border: 1px solid rgba(20, 184, 166, 0.15); |
| } |
| .badge-amber-enhanced { |
| background: rgba(245, 158, 11, 0.1); |
| color: #F59E0B; |
| border: 1px solid rgba(245, 158, 11, 0.15); |
| } |
| .badge-red-enhanced { |
| background: rgba(239, 68, 68, 0.1); |
| color: #EF4444; |
| border: 1px solid rgba(239, 68, 68, 0.15); |
| } |
| .badge-green-enhanced { |
| background: rgba(34, 197, 94, 0.1); |
| color: #22C55E; |
| border: 1px solid rgba(34, 197, 94, 0.15); |
| } |
|
|
| |
| .pulse-dot { |
| position: relative; |
| width: 8px; |
| height: 8px; |
| border-radius: 50%; |
| background: #F59E0B; |
| } |
| .pulse-dot::after { |
| content: ''; |
| position: absolute; |
| inset: -3px; |
| border-radius: 50%; |
| border: 2px solid #F59E0B; |
| animation: pulseDot 2s ease infinite; |
| } |
| @keyframes pulseDot { |
| 0% { transform: scale(0.8); opacity: 0.8; } |
| 50% { transform: scale(1.4); opacity: 0; } |
| 100% { transform: scale(0.8); opacity: 0; } |
| } |
|
|
| |
| .gradient-text-teal { |
| background: linear-gradient(135deg, #14B8A6, #5EEAD4); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| background-clip: text; |
| } |
|
|
| |
| .scrollbar-thin::-webkit-scrollbar { |
| width: 6px; |
| height: 6px; |
| } |
| .scrollbar-thin::-webkit-scrollbar-track { |
| background: transparent; |
| } |
| .scrollbar-thin::-webkit-scrollbar-thumb { |
| background: rgba(255, 255, 255, 0.08); |
| border-radius: 3px; |
| } |
| .scrollbar-thin::-webkit-scrollbar-thumb:hover { |
| background: rgba(255, 255, 255, 0.15); |
| } |
|
|
| |
| .glass-card-glow { |
| position: relative; |
| transition: all 0.3s ease; |
| } |
| .glass-card-glow::after { |
| content: ''; |
| position: absolute; |
| inset: -1px; |
| border-radius: inherit; |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(20, 184, 166, 0.1), transparent, transparent); |
| opacity: 0; |
| z-index: -1; |
| transition: opacity 0.3s ease; |
| filter: blur(8px); |
| } |
| .glass-card-glow:hover::after { |
| opacity: 1; |
| } |
|
|
| |
| :root.light .command-palette { |
| background: rgba(255, 255, 255, 0.95); |
| border-color: rgba(0, 0, 0, 0.08); |
| box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.03); |
| } |
| :root.light .command-palette-input { |
| border-bottom-color: rgba(0, 0, 0, 0.06); |
| } |
| :root.light .command-palette-item:hover { |
| background: rgba(0, 0, 0, 0.04); |
| } |
| :root.light .duplicate-alert { |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.05), rgba(245, 158, 11, 0.02)) !important; |
| } |
| :root.light .welcome-panel::before { |
| background: radial-gradient(circle, rgba(245, 158, 11, 0.1), transparent 70%); |
| } |
| :root.light .welcome-panel::after { |
| background: radial-gradient(circle, rgba(20, 184, 166, 0.08), transparent 70%); |
| } |
| :root.light .welcome-stat-btn { |
| background: rgba(0, 0, 0, 0.02); |
| border-color: rgba(0, 0, 0, 0.06); |
| } |
| :root.light .welcome-stat-btn:hover { |
| background: rgba(0, 0, 0, 0.04); |
| border-color: rgba(0, 0, 0, 0.1); |
| } |
| :root.light .card-depth:hover { |
| box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.04); |
| } |
| :root.light .toggle-switch { |
| background: #d4d4d8; |
| } |
| :root.light .scrollbar-thin::-webkit-scrollbar-thumb { |
| background: rgba(0, 0, 0, 0.1); |
| } |
| :root.light .scrollbar-thin::-webkit-scrollbar-thumb:hover { |
| background: rgba(0, 0, 0, 0.2); |
| } |
| :root.light .sort-header-inactive { |
| opacity: 0; |
| } |
| :root.light .sort-header:hover .sort-header-inactive { |
| opacity: 0.2; |
| } |
| :root.light .glass-card-glow::after { |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.2), rgba(20, 184, 166, 0.15), transparent, transparent); |
| } |