/* 搜索页面专用样式 */ .search-container { max-width: 1200px; margin: 0 auto; padding: 20px; } /* 头部 */ .search-header { background: white; padding: 20px 30px; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .header-left { display: flex; align-items: center; gap: 20px; } .back-link { color: #667eea; text-decoration: none; display: flex; align-items: center; gap: 5px; font-size: 14px; } .back-link:hover { text-decoration: underline; } .search-header h1 { color: #333; font-size: 24px; display: flex; align-items: center; gap: 10px; } /* 搜索框 */ .search-box { background: white; padding: 30px; border-radius: 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); margin-bottom: 20px; } .search-input-group { display: flex; gap: 15px; margin-bottom: 15px; } .search-input-large { flex: 1; padding: 15px 20px; border: 2px solid #e9ecef; border-radius: 8px; font-size: 18px; } .search-input-large:focus { outline: none; border-color: #667eea; } .count-input { width: 80px; padding: 15px; border: 2px solid #e9ecef; border-radius: 8px; font-size: 16px; text-align: center; } .btn-large { padding: 15px 30px; font-size: 16px; } .engine-select { padding: 15px; border: 2px solid #e9ecef; border-radius: 8px; font-size: 16px; background: white; cursor: pointer; min-width: 120px; } .engine-select:focus { outline: none; border-color: #667eea; } .search-options { display: flex; gap: 20px; } .checkbox-label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; color: #666; } .checkbox-label input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; } /* 搜索进度 */ .search-progress { background: white; padding: 20px; border-radius: 12px; margin-bottom: 20px; } .progress-bar { height: 8px; background: #e9ecef; border-radius: 4px; overflow: hidden; margin-bottom: 10px; } .progress-fill { height: 100%; background: linear-gradient(90deg, #667eea, #764ba2); width: 0%; transition: width 0.3s; } .progress-text { text-align: center; color: #666; font-size: 14px; } .progress-info { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; } /* 结果区域 */ .results-section { background: white; border-radius: 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .results-header { padding: 20px; background: #f8f9fa; border-bottom: 1px solid #e9ecef; display: flex; justify-content: space-between; align-items: center; } .results-header h2 { color: #667eea; font-size: 18px; display: flex; align-items: center; gap: 8px; } .results-actions { display: flex; gap: 15px; align-items: center; } .results-count { color: #666; font-size: 14px; } .results-body { padding: 20px; } /* 搜索结果列表 */ .search-results { display: flex; flex-direction: column; gap: 15px; } .result-item { display: flex; align-items: flex-start; gap: 15px; padding: 20px; border: 1px solid #e9ecef; border-radius: 8px; transition: all 0.2s; } .result-item:hover { border-color: #667eea; background: #f8f9fa; } .result-item.saved { border-color: #10b981; background: #f0fdf4; } .result-item.exists { border-color: #f59e0b; background: #fffbeb; } .result-item.fetched { border-color: #3b82f6; } .result-number { width: 40px; height: 40px; background: #667eea; color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 16px; } .result-item.saved .result-number { background: #10b981; } .result-main { flex: 1; } .result-title { font-size: 16px; color: #333; cursor: pointer; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; } .result-title:hover { color: #667eea; } .result-page-title { font-size: 13px; color: #666; margin-bottom: 5px; padding: 4px 8px; background: #f0f4ff; border-radius: 4px; } .result-page-title i { color: #667eea; } .result-title .saved-icon { color: #10b981; } .result-url { font-size: 13px; color: #666; margin-bottom: 8px; } .result-url a { color: #3b82f6; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; } .result-url a:hover { text-decoration: underline; } .result-content-preview { font-size: 13px; color: #999; max-height: 60px; overflow: hidden; text-overflow: ellipsis; } .result-actions { display: flex; gap: 10px; } /* 保存进度 */ .save-progress { position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); background: white; padding: 20px 40px; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); z-index: 100; min-width: 300px; } .progress-info { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 14px; color: #333; } .progress-info i { animation: spin 1s linear infinite; } /* 响应式 */ @media (max-width: 768px) { .search-input-group { flex-direction: column; } .search-options { flex-direction: column; gap: 10px; } .results-header { flex-direction: column; gap: 15px; } .results-actions { flex-wrap: wrap; } .result-item { flex-direction: column; } .result-actions { width: 100%; justify-content: space-between; } } /* 失败URL区域 */ .failed-urls-section { background: white; border-radius: 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); margin-top: 20px; } .failed-urls-section .panel-header { background: #fef3c7; } .failed-urls-section .panel-header h2 { color: #92400e; } .failed-count { color: #92400e; font-weight: bold; } .failed-urls-list { display: flex; flex-direction: column; gap: 10px; } .failed-url-item { display: flex; justify-content: space-between; align-items: flex-start; padding: 15px; border: 1px solid #fcd34d; border-radius: 8px; background: #fffbeb; } .failed-url-item.loading { opacity: 0.5; } .failed-url-info { flex: 1; } .failed-url-title { font-weight: 500; color: #333; margin-bottom: 5px; } .failed-url-detail { font-size: 13px; margin-bottom: 5px; } .failed-url-detail a { color: #3b82f6; text-decoration: none; } .failed-url-detail a:hover { text-decoration: underline; } .failed-error { color: #dc2626; margin-left: 10px; font-size: 12px; } .failed-url-meta { font-size: 12px; color: #666; display: flex; gap: 15px; } .failed-url-actions { display: flex; gap: 8px; }