@import "tailwindcss"; /* * ZeroClaw Electric Blue Theme * Dark-mode with electric blue accents, glassmorphism, and animations. */ @theme { --color-bg-primary: #050510; --color-bg-secondary: #0a0a1a; --color-bg-card: #0d0d20; --color-bg-card-hover: #141430; --color-bg-input: #0a0a18; --color-border-default: #1a1a3e; --color-border-subtle: #12122a; --color-accent-blue: #0080ff; --color-accent-blue-hover: #0066cc; --color-accent-cyan: #00d4ff; --color-accent-green: #00e68a; --color-accent-green-hover: #00cc7a; --color-text-primary: #e8edf5; --color-text-secondary: #8892a8; --color-text-muted: #556080; --color-status-success: #00e68a; --color-status-warning: #ffaa00; --color-status-error: #ff4466; --color-status-info: #0080ff; --color-glow-blue: #0080ff40; --color-glow-cyan: #00d4ff30; } /* Base styles */ html { color-scheme: dark; } body { background-color: var(--color-bg-primary); color: var(--color-text-primary); font-family: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } #root { min-height: 100vh; } /* Scrollbar styling */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #1a1a3e; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #0080ff60; } /* Card utility */ .card { background: linear-gradient(135deg, rgba(13, 13, 32, 0.8), rgba(10, 10, 26, 0.6)); border: 1px solid rgba(0, 128, 255, 0.1); border-radius: 1rem; backdrop-filter: blur(12px); transition: all 0.3s ease; } .card:hover { border-color: rgba(0, 128, 255, 0.25); box-shadow: 0 0 20px rgba(0, 128, 255, 0.08); } /* Focus ring utility */ *:focus-visible { outline: 2px solid var(--color-accent-blue); outline-offset: 2px; } /* ========== ANIMATIONS ========== */ @keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInScale { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes slideInLeft { from { opacity: 0; transform: translateX(-16px); } to { opacity: 1; transform: translateX(0); } } @keyframes slideInRight { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } } @keyframes slideInUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 8px rgba(0, 128, 255, 0.3); } 50% { box-shadow: 0 0 20px rgba(0, 128, 255, 0.6); } } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-4px); } } @keyframes borderGlow { 0%, 100% { border-color: rgba(0, 128, 255, 0.15); } 50% { border-color: rgba(0, 128, 255, 0.35); } } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Animation utility classes */ .animate-fade-in { animation: fadeIn 0.4s ease-out both; } .animate-fade-in-scale { animation: fadeInScale 0.3s ease-out both; } .animate-slide-in-left { animation: slideInLeft 0.4s ease-out both; } .animate-slide-in-right { animation: slideInRight 0.4s ease-out both; } .animate-slide-in-up { animation: slideInUp 0.4s ease-out both; } .animate-pulse-glow { animation: pulse-glow 2s ease-in-out infinite; } .animate-border-glow { animation: borderGlow 3s ease-in-out infinite; } .animate-float { animation: float 3s ease-in-out infinite; } /* Stagger delays for grid children */ .stagger-children > *:nth-child(1) { animation-delay: 0ms; } .stagger-children > *:nth-child(2) { animation-delay: 60ms; } .stagger-children > *:nth-child(3) { animation-delay: 120ms; } .stagger-children > *:nth-child(4) { animation-delay: 180ms; } .stagger-children > *:nth-child(5) { animation-delay: 240ms; } .stagger-children > *:nth-child(6) { animation-delay: 300ms; } .stagger-children > *:nth-child(7) { animation-delay: 360ms; } .stagger-children > *:nth-child(8) { animation-delay: 420ms; } .stagger-children > *:nth-child(9) { animation-delay: 480ms; } .stagger-children > *:nth-child(10) { animation-delay: 540ms; } /* Glass card */ .glass-card { background: linear-gradient(135deg, rgba(13, 13, 32, 0.7), rgba(5, 5, 16, 0.5)); border: 1px solid rgba(0, 128, 255, 0.12); border-radius: 1rem; backdrop-filter: blur(16px); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .glass-card:hover { border-color: rgba(0, 128, 255, 0.3); box-shadow: 0 4px 30px rgba(0, 128, 255, 0.1), 0 0 0 1px rgba(0, 128, 255, 0.05); transform: translateY(-1px); } /* Electric button */ .btn-electric { background: linear-gradient(135deg, #0080ff, #0066cc); color: white; border: none; border-radius: 0.75rem; font-weight: 500; transition: all 0.3s ease; position: relative; overflow: hidden; } .btn-electric:hover:not(:disabled) { background: linear-gradient(135deg, #0090ff, #0070dd); box-shadow: 0 0 20px rgba(0, 128, 255, 0.4); transform: translateY(-1px); } .btn-electric:active:not(:disabled) { transform: translateY(0); } .btn-electric:disabled { opacity: 0.4; cursor: not-allowed; } /* Gradient text */ .text-gradient-blue { background: linear-gradient(135deg, #0080ff, #00d4ff); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Glow dot */ .glow-dot { box-shadow: 0 0 6px currentColor; } /* Electric input */ .input-electric { background: rgba(10, 10, 26, 0.8); border: 1px solid rgba(0, 128, 255, 0.15); border-radius: 0.75rem; color: var(--color-text-primary); transition: all 0.3s ease; } .input-electric:focus { outline: none; border-color: rgba(0, 128, 255, 0.5); box-shadow: 0 0 0 3px rgba(0, 128, 255, 0.15), 0 0 20px rgba(0, 128, 255, 0.1); } .input-electric::placeholder { color: var(--color-text-muted); } /* Progress bar animation */ .progress-bar-animated { position: relative; overflow: hidden; } .progress-bar-animated::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent); background-size: 200% 100%; animation: shimmer 2s infinite; } /* Table styling */ .table-electric { width: 100%; } .table-electric thead tr { border-bottom: 1px solid rgba(0, 128, 255, 0.1); } .table-electric thead th { color: var(--color-text-muted); font-weight: 500; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.75rem 1rem; } .table-electric tbody tr { border-bottom: 1px solid rgba(26, 26, 62, 0.5); transition: all 0.2s ease; } .table-electric tbody tr:hover { background: rgba(0, 128, 255, 0.04); } /* Modal backdrop */ .modal-backdrop { background: rgba(5, 5, 16, 0.8); backdrop-filter: blur(8px); } /* Sidebar glow line */ .sidebar-glow-line { position: absolute; right: 0; top: 0; bottom: 0; width: 1px; background: linear-gradient(180deg, transparent, rgba(0, 128, 255, 0.3), transparent); }