@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@300;400;500;600&display=swap'); * { font-family: 'Inter', sans-serif; -webkit-user-select: none; user-select: none; } select, input, textarea, button { -webkit-user-select: auto; user-select: auto; } code, pre { font-family: 'JetBrains Mono', monospace; -webkit-user-select: text; user-select: text; } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: rgba(30, 30, 30, 0.3); border-radius: 4px; } ::-webkit-scrollbar-thumb { background: linear-gradient(to bottom, #06b6d4, #3b82f6, #8b5cf6); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(to bottom, #0891b2, #2563eb, #7c3aed); } body { font-feature-settings: "ss01", "ss02", "cv01", "cv02"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow: hidden; } /* Title Bar Styles */ .title-bar { -webkit-app-region: drag; height: 40px; } .non-draggable { -webkit-app-region: no-drag; } .draggable-region { -webkit-app-region: drag; } /* Sidebar Navigation */ .nav-item { display: flex; align-items: center; gap: 12px; padding: 10px 16px; color: #9ca3af; border-radius: 8px; transition: all 0.2s ease; text-decoration: none; } .nav-item:hover { background: rgba(6, 182, 212, 0.1); color: #06b6d4; } .nav-item.active { background: linear-gradient(90deg, rgba(6, 182, 212, 0.2), rgba(59, 130, 246, 0.2)); color: #22d3ee; border-left: 3px solid #06b6d4; } /* Stat Cards */ .stat-card { background: linear-gradient(145deg, rgba(30, 41, 59, 0.7), rgba(15, 23, 42, 0.9)); border: 1px solid rgba(6, 182, 212, 0.1); border-radius: 12px; padding: 20px; transition: transform 0.3s ease, box-shadow 0.3s ease; } .stat-card:hover { transform: translateY(-3px); box-shadow: 0 10px 25px rgba(6, 182, 212, 0.15); border-color: rgba(6, 182, 212, 0.3); } /* Feature Cards */ .feature-card { background: rgba(30, 41, 59, 0.5); border: 1px solid rgba(71, 85, 105, 0.3); border-radius: 12px; padding: 20px; transition: all 0.3s ease; } .feature-card:hover { border-color: rgba(6, 182, 212, 0.5); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(6, 182, 212, 0.1); } /* Context Menu Styles (for desktop) */ .context-menu { position: absolute; background: rgba(15, 23, 42, 0.95); backdrop-filter: blur(10px); border: 1px solid rgba(6, 182, 212, 0.2); border-radius: 8px; padding: 8px 0; min-width: 180px; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); z-index: 1000; } .context-menu-item { padding: 8px 16px; color: #cbd5e1; font-size: 14px; transition: background 0.2s ease; } .context-menu-item:hover { background: rgba(6, 182, 212, 0.2); color: #22d3ee; } /* System Tray Notification */ .tray-notification { position: fixed; bottom: 20px; right: 20px; background: rgba(15, 23, 42, 0.95); backdrop-filter: blur(10px); border: 1px solid rgba(6, 182, 212, 0.3); border-radius: 12px; padding: 16px; max-width: 300px; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); transform: translateY(100px); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease; z-index: 9999; } .tray-notification.show { transform: translateY(0); opacity: 1; } /* Desktop-specific animations */ @keyframes desktop-fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .desktop-fade-in { animation: desktop-fade-in 0.3s ease-out; } /* Electron specific styles */ .window-controls { display: flex; gap: 4px; } .window-control-btn { width: 32px; height: 32px; border-radius: 6px; display: flex; align-items: center; justify-content: center; transition: background 0.2s ease; } .window-control-btn:hover { background: rgba(255, 255, 255, 0.1); } .window-control-btn.close:hover { background: #ef4444; } /* Responsive adjustments for desktop */ @media (max-width: 1024px) { .title-bar .text-xs { display: none; } } /* Code editor specific for desktop */ .code-editor { font-family: 'JetBrains Mono', monospace; background: #0f172a; border-radius: 8px; border: 1px solid #334155; padding: 16px; overflow-x: auto; } /* Selectable text areas */ .selectable { -webkit-user-select: text; user-select: text; } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } } .float-animation { animation: float 5s ease-in-out infinite; } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 15px rgba(6, 182, 212, 0.3); } 50% { box-shadow: 0 0 25px rgba(6, 182, 212, 0.6); } } .pulse-glow { animation: pulse-glow 2s ease-in-out infinite; } @keyframes slideIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .slide-in { animation: slideIn 0.5s ease-out forwards; } .gradient-border { position: relative; background: linear-gradient(45deg, #0f172a, #1e293b); border-radius: 1rem; padding: 1px; } .gradient-border::before { content: ''; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; background: linear-gradient(45deg, #06b6d4, #3b82f6, #8b5cf6); border-radius: 1rem; z-index: -1; opacity: 0.5; } .hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; } .hover-lift:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(6, 182, 212, 0.2); } .text-gradient { background: linear-gradient(90deg, #06b6d4, #3b82f6, #8b5cf6); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .code-keyword { color: #c678dd; } .code-string { color: #98c379; } .code-comment { color: #5c6370; } .code-function { color: #61afef; } .code-operator { color: #56b6c2; } .tab-active { position: relative; color: #22d3ee; border-color: #22d3ee; } .tab-active::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, #06b6d4, #3b82f6); border-radius: 3px; } .status-badge { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; } .status-active { background-color: rgba(34, 197, 94, 0.2); color: rgb(34, 197, 94); border: 1px solid rgba(34, 197, 94, 0.3); } .status-paused { background-color: rgba(234, 179, 8, 0.2); color: rgb(234, 179, 8); border: 1px solid rgba(234, 179, 8, 0.3); } .status-disabled { background-color: rgba(239, 68, 68, 0.2); color: rgb(239, 68, 68); border: 1px solid rgba(239, 68, 68, 0.3); } .fade-in { opacity: 0; animation: fadeIn 0.8s ease-out forwards; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .delay-100 { animation-delay: 0.1s; } .delay-200 { animation-delay: 0.2s; } .delay-300 { animation-delay: 0.3s; } .typing-animation { overflow: hidden; border-right: 2px solid #06b6d4; white-space: nowrap; margin: 0 auto; animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite; } @keyframes typing { from { width: 0 } to { width: 100% } } @keyframes blink-caret { from, to { border-color: transparent } 50% { border-color: #06b6d4 } } .grid-background { background-image: linear-gradient(rgba(6, 182, 212, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(6, 182, 212, 0.1) 1px, transparent 1px); background-size: 50px 50px; } .particle { position: absolute; border-radius: 50%; background: radial-gradient(circle, rgba(6, 182, 212, 0.2), transparent); z-index: -1; }