* { margin: 0; padding: 0; box-sizing: border-box; } :root { --bg-primary: #0a0a0a; --bg-secondary: #141414; --bg-tertiary: #1e1e1e; --text-primary: #ffffff; --text-secondary: #a0a0a0; --accent: #3b82f6; --accent-hover: #2563eb; --success: #10b981; --error: #ef4444; --border: #2a2a2a; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background-color: var(--bg-primary); color: var(--text-primary); line-height: 1.6; min-height: 100vh; } .container { max-width: 1200px; margin: 0 auto; padding: 2rem; } header { margin-bottom: 3rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--border); } h1 { font-size: 2rem; font-weight: 600; margin-bottom: 0.5rem; letter-spacing: -0.025em; } .stats { color: var(--text-secondary); font-size: 0.875rem; } h2 { font-size: 1.25rem; font-weight: 500; margin-bottom: 1.5rem; display: flex; align-items: center; gap: 0.5rem; } section { background-color: var(--bg-secondary); border: 1px solid var(--border); border-radius: 8px; padding: 2rem; margin-bottom: 2rem; } .upload-area { border: 2px dashed var(--border); border-radius: 8px; padding: 3rem 2rem; text-align: center; cursor: pointer; transition: all 0.3s ease; background-color: var(--bg-tertiary); } .upload-area:hover { border-color: var(--accent); background-color: rgba(59, 130, 246, 0.05); } .upload-area.dragover { border-color: var(--accent); background-color: rgba(59, 130, 246, 0.1); } .upload-area svg { margin-bottom: 1rem; opacity: 0.5; } .upload-area p { color: var(--text-secondary); font-size: 0.875rem; } .search-container { display: flex; gap: 1rem; } #search-input { flex: 1; background-color: var(--bg-tertiary); border: 1px solid var(--border); border-radius: 6px; padding: 0.75rem 1rem; color: var(--text-primary); font-size: 0.95rem; outline: none; transition: all 0.3s ease; } #search-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } #search-input::placeholder { color: var(--text-secondary); } button { background-color: var(--accent); color: var(--text-primary); border: none; border-radius: 6px; padding: 0.75rem 1.5rem; font-size: 0.95rem; font-weight: 500; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; gap: 0.5rem; white-space: nowrap; } button:hover { background-color: var(--accent-hover); } button:active { transform: scale(0.98); } button:disabled { background-color: var(--border); cursor: not-allowed; opacity: 0.5; } .status-message { margin-top: 1rem; padding: 0.75rem 1rem; border-radius: 6px; font-size: 0.875rem; display: none; } .status-message.show { display: block; } .status-message.success { background-color: rgba(16, 185, 129, 0.1); border: 1px solid rgba(16, 185, 129, 0.3); color: var(--success); } .status-message.error { background-color: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.3); color: var(--error); } .status-message.info { background-color: rgba(59, 130, 246, 0.1); border: 1px solid rgba(59, 130, 246, 0.3); color: var(--accent); } #results-container { display: grid; gap: 1.5rem; } .result-item { background-color: var(--bg-tertiary); border: 1px solid var(--border); border-radius: 8px; overflow: hidden; transition: all 0.3s ease; } .result-item:hover { border-color: var(--accent); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .result-image { width: 100%; height: auto; display: block; background-color: var(--bg-primary); } .result-info { padding: 1rem; } .result-filename { font-weight: 500; margin-bottom: 0.5rem; word-break: break-all; } .result-meta { display: flex; justify-content: space-between; font-size: 0.875rem; color: var(--text-secondary); margin-bottom: 0.5rem; } .imgur-link { display: inline-block; font-size: 0.875rem; color: var(--accent); text-decoration: none; padding: 0.25rem 0; border-bottom: 1px solid transparent; transition: border-color 0.2s; } .imgur-link:hover { border-bottom-color: var(--accent); } .spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top-color: var(--text-primary); animation: spin 0.8s linear infinite; margin-right: 0.5rem; } @keyframes spin { to { transform: rotate(360deg); } } @media (max-width: 768px) { .container { padding: 1rem; } h1 { font-size: 1.5rem; } section { padding: 1.5rem; } .search-container { flex-direction: column; } button { width: 100%; justify-content: center; } }