/* Base styles */ body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; } /* Tab styles */ .tab-btn.active { border-bottom-color: #6366f1 !important; color: #6366f1 !important; } /* File tree styles */ .tree-item { display: flex; align-items: center; padding: 6px 0; cursor: pointer; border-radius: 4px; margin: 2px 0; } .tree-item:hover { background-color: #f3f4f6; } .tree-item .feather { width: 16px; height: 16px; margin-right: 8px; } .tree-folder { font-weight: 600; } .tree-children { margin-top: 4px; } /* Checkbox styles */ input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; accent-color: #6366f1; } /* Code styles */ textarea { font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; font-size: 13px; line-height: 1.5; resize: vertical; } /* Progress bar animation */ .transition-all { transition: all 0.3s ease; } /* Button hover states */ button:disabled { opacity: 0.5; cursor: not-allowed; } button:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } /* Animations */ @keyframes slideIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes scaleIn { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .animate-spin { animation: spin 1s linear infinite; } /* Notification styles */ .fixed.bottom-4.right-4 { animation: slideIn 0.3s ease-out; } /* Modal styles */ #bookmarklet-modal { animation: fadeIn 0.3s ease-out; } #bookmarklet-modal > div { animation: scaleIn 0.3s ease-out; } /* File list styles */ #corrected-files-list .flex { transition: all 0.3s ease; } #corrected-files-list .flex:hover { background-color: #f9fafb; transform: translateX(4px); } /* Responsive adjustments */ @media (max-width: 1024px) { .grid { grid-template-columns: 1fr; } } @media (max-width: 768px) { .tab-btn { font-size: 14px; padding: 12px 16px; } .flex.gap-2 { flex-direction: column; } .flex.gap-2 button { width: 100%; } } /* Custom scrollbar */ .overflow-y-auto::-webkit-scrollbar { width: 8px; } .overflow-y-auto::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; } .overflow-y-auto::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 4px; } .overflow-y-auto::-webkit-scrollbar-thumb:hover { background: #a8a8a8; } /* Drag and drop styles */ #drop-zone.drag-over { border-color: #6366f1; background-color: #f0f9ff; } /* Loading states */ .loading { position: relative; overflow: hidden; } .loading::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); animation: loading 1.5s infinite; } @keyframes loading { to { left: 100%; } } /* Success/error states */ .success-state { border-color: #10b981 !important; background-color: #f0fdf4 !important; } .error-state { border-color: #ef4444 !important; background-color: #fef2f2 !important; } /* File type indicators */ .file-type-js { color: #f7df1e; } .file-type-py { color: #3776ab; } .file-type-html { color: #e34c26; } .file-type-css { color: #1572b6; } .file-type-json { color: #000; } .file-type-md { color: #083fa1; }