Blame view

frontend/static/css/style.css 15.5 KB
a7920e17   tangwang   项目名称和部署路径修改
1
  /* saas-search - Modern Clean UI */
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
2
3
4
5
6
7
8
9
  
  * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
  }
  
  body {
a7a8c6cb   tangwang   测试过滤、聚合、排序
10
11
12
13
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", Arial, sans-serif;
      background: #f5f5f5;
      color: #333;
      line-height: 1.6;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
14
15
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
16
17
  .page-container {
      max-width: 1400px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
18
      margin: 0 auto;
a7a8c6cb   tangwang   测试过滤、聚合、排序
19
20
      background: white;
      min-height: 100vh;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
21
22
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
23
24
25
26
27
28
29
30
  /* Header */
  .top-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 15px 30px;
      background: white;
      border-bottom: 1px solid #e0e0e0;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
31
32
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
33
34
35
36
37
38
39
40
41
42
  .header-left {
      display: flex;
      align-items: center;
      gap: 30px;
  }
  
  .logo {
      font-size: 24px;
      font-weight: bold;
      color: #e74c3c;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
43
44
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
45
46
47
48
  .product-count {
      color: #e74c3c;
      font-size: 14px;
      font-weight: 500;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
49
50
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
51
52
53
  .fold-btn {
      padding: 6px 20px;
      border: 1px solid #ddd;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
54
      background: white;
a7a8c6cb   tangwang   测试过滤、聚合、排序
55
56
57
58
      border-radius: 4px;
      cursor: pointer;
      font-size: 14px;
      transition: all 0.2s;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
59
60
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
61
62
63
64
65
66
  .fold-btn:hover {
      background: #f5f5f5;
  }
  
  /* Search Bar */
  .search-bar {
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
67
68
      display: flex;
      gap: 10px;
a7a8c6cb   tangwang   测试过滤、聚合、排序
69
70
71
      padding: 20px 30px;
      background: white;
      border-bottom: 1px solid #e0e0e0;
4d824a77   tangwang   所有租户共用一套统一配置.tena...
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
      align-items: center;
  }
  
  .tenant-input-wrapper {
      display: flex;
      align-items: center;
      gap: 8px;
  }
  
  .tenant-input-wrapper label {
      font-size: 14px;
      color: #666;
      white-space: nowrap;
  }
  
c4263d93   tangwang   支持 sku_filter_dim...
87
88
  #tenantInput,
  #skuFilterDimension {
4d824a77   tangwang   所有租户共用一套统一配置.tena...
89
90
91
92
93
94
95
96
      width: 120px;
      padding: 10px 15px;
      font-size: 14px;
      border: 1px solid #ddd;
      border-radius: 4px;
      outline: none;
  }
  
c4263d93   tangwang   支持 sku_filter_dim...
97
98
  #tenantInput:focus,
  #skuFilterDimension:focus {
4d824a77   tangwang   所有租户共用一套统一配置.tena...
99
      border-color: #e74c3c;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
100
101
102
103
  }
  
  #searchInput {
      flex: 1;
a7a8c6cb   tangwang   测试过滤、聚合、排序
104
105
106
107
108
      padding: 10px 15px;
      font-size: 14px;
      border: 1px solid #ddd;
      border-radius: 4px;
      outline: none;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
109
110
111
  }
  
  #searchInput:focus {
a7a8c6cb   tangwang   测试过滤、聚合、排序
112
      border-color: #e74c3c;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
113
114
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
115
116
117
  .search-btn {
      padding: 10px 30px;
      background: #e74c3c;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
118
119
      color: white;
      border: none;
a7a8c6cb   tangwang   测试过滤、聚合、排序
120
121
122
      border-radius: 4px;
      font-size: 14px;
      font-weight: 500;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
123
      cursor: pointer;
a7a8c6cb   tangwang   测试过滤、聚合、排序
124
      transition: background 0.2s;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
125
126
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
127
128
  .search-btn:hover {
      background: #c0392b;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
129
130
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
131
132
133
134
135
  /* Filter Section */
  .filter-section {
      padding: 15px 30px;
      background: white;
      border-bottom: 1px solid #e0e0e0;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
136
137
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
138
139
140
141
142
  .filter-section.hidden {
      display: none;
  }
  
  .filter-row {
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
143
144
      display: flex;
      align-items: center;
a7a8c6cb   tangwang   测试过滤、聚合、排序
145
146
      margin-bottom: 12px;
      gap: 15px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
147
148
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
149
150
151
152
153
  .filter-row:last-child {
      margin-bottom: 0;
  }
  
  .filter-label {
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
154
      font-size: 14px;
a7a8c6cb   tangwang   测试过滤、聚合、排序
155
156
157
      color: #666;
      font-weight: 500;
      min-width: 90px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
158
159
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
160
161
162
163
164
  .filter-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      flex: 1;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
165
166
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
167
168
169
  .filter-tag {
      padding: 6px 15px;
      background: #f8f8f8;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
170
      border: 1px solid #ddd;
a7a8c6cb   tangwang   测试过滤、聚合、排序
171
172
      border-radius: 4px;
      font-size: 13px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
173
174
      cursor: pointer;
      transition: all 0.2s;
a7a8c6cb   tangwang   测试过滤、聚合、排序
175
176
177
178
179
      white-space: nowrap;
  }
  
  .filter-tag:hover {
      background: #e8e8e8;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
180
181
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
182
183
  .filter-tag.active {
      background: #e74c3c;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
184
      color: white;
a7a8c6cb   tangwang   测试过滤、聚合、排序
185
      border-color: #e74c3c;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
186
187
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
  .filter-dropdowns {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      align-items: center;
  }
  
  .filter-dropdowns select {
      padding: 6px 12px;
      border: 1px solid #ddd;
      border-radius: 4px;
      font-size: 13px;
      background: white;
      cursor: pointer;
      outline: none;
  }
  
  .clear-filters-btn {
      padding: 6px 15px;
      background: #e74c3c;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
208
      color: white;
a7a8c6cb   tangwang   测试过滤、聚合、排序
209
210
211
212
213
      border: none;
      border-radius: 4px;
      font-size: 13px;
      cursor: pointer;
      transition: background 0.2s;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
214
215
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
216
217
  .clear-filters-btn:hover {
      background: #c0392b;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
218
219
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
220
221
222
223
224
225
226
227
228
  /* Sort Section */
  .sort-section {
      display: flex;
      align-items: center;
      padding: 15px 30px;
      background: white;
      border-bottom: 1px solid #e0e0e0;
      gap: 10px;
      flex-wrap: wrap;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
229
230
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
231
232
  .sort-btn {
      padding: 8px 16px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
233
      background: white;
a7a8c6cb   tangwang   测试过滤、聚合、排序
234
235
236
237
238
239
240
241
242
      border: 1px solid #ddd;
      border-radius: 4px;
      font-size: 13px;
      cursor: pointer;
      transition: all 0.2s;
      display: flex;
      align-items: center;
      gap: 8px;
      white-space: nowrap;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
243
244
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
245
246
  .sort-btn:hover {
      background: #f8f8f8;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
247
248
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
249
250
251
252
  .sort-btn.active {
      background: #e74c3c;
      color: white;
      border-color: #e74c3c;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
253
254
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
255
256
257
258
259
260
  .sort-arrows {
      display: inline-flex;
      flex-direction: column;
      gap: 0;
      font-size: 10px;
      line-height: 1;
edd38328   tangwang   测试过滤、聚合、排序
261
      margin-left: 4px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
262
263
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
264
265
  .arrow-up, .arrow-down {
      cursor: pointer;
edd38328   tangwang   测试过滤、聚合、排序
266
267
268
269
      padding: 2px 4px;
      transition: all 0.2s;
      opacity: 0.4;
      border-radius: 2px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
270
271
  }
  
edd38328   tangwang   测试过滤、聚合、排序
272
273
274
  .arrow-up:hover, .arrow-down:hover {
      opacity: 0.7;
      background: rgba(231, 76, 60, 0.1);
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
275
276
  }
  
edd38328   tangwang   测试过滤、聚合、排序
277
278
  .arrow-up.active, .arrow-down.active {
      opacity: 1;
a7a8c6cb   tangwang   测试过滤、聚合、排序
279
      color: #e74c3c;
edd38328   tangwang   测试过滤、聚合、排序
280
281
      font-weight: bold;
      background: rgba(231, 76, 60, 0.15);
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
282
283
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
284
285
  .sort-right {
      margin-left: auto;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
286
287
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
288
289
290
291
292
293
294
  .sort-right select {
      padding: 8px 12px;
      border: 1px solid #ddd;
      border-radius: 4px;
      font-size: 13px;
      background: white;
      cursor: pointer;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
295
296
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
297
298
299
300
301
  /* Loading */
  .loading {
      text-align: center;
      padding: 60px 20px;
      background: white;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
302
303
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
304
305
306
307
308
309
310
311
  .spinner {
      width: 40px;
      height: 40px;
      margin: 0 auto 20px;
      border: 3px solid #f3f3f3;
      border-top: 3px solid #e74c3c;
      border-radius: 50%;
      animation: spin 1s linear infinite;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
312
313
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
314
315
  @keyframes spin {
      to { transform: rotate(360deg); }
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
316
317
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
318
319
320
  .loading p {
      color: #666;
      font-size: 14px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
321
322
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
323
324
  /* Product Grid */
  .product-grid {
985752f5   tangwang   1. 前端调试功能
325
326
327
      display: flex;
      flex-direction: column;
      gap: 16px;
a7a8c6cb   tangwang   测试过滤、聚合、排序
328
329
330
      padding: 30px;
      background: #f8f8f8;
      min-height: 400px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
331
332
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
333
334
335
  .product-card {
      background: white;
      border: 1px solid #e0e0e0;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
336
      border-radius: 8px;
a7a8c6cb   tangwang   测试过滤、聚合、排序
337
338
      padding: 15px;
      transition: all 0.3s;
985752f5   tangwang   1. 前端调试功能
339
340
341
342
343
344
345
346
      cursor: default;
      display: flex;
      flex-direction: row;
      align-items: flex-start;
      gap: 16px;
  }
  
  .product-main {
a7a8c6cb   tangwang   测试过滤、聚合、排序
347
348
      display: flex;
      flex-direction: column;
985752f5   tangwang   1. 前端调试功能
349
350
351
352
      width: 260px;
      flex-shrink: 0;
  }
  
9b956985   tangwang   调试工具展示优化
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
  /* Per-result multilingual debug (title/brief/vendor) under image, price, title */
  .product-main-multilingual {
      margin-top: 8px;
      font-family: Menlo, Consolas, "Courier New", monospace;
      font-size: 11px;
      color: #555;
      width: 100%;
  }
  
  .product-main-multilingual .debug-details {
      margin-top: 6px;
  }
  
  .product-main-multilingual .debug-json-pre {
      max-height: 180px;
      font-size: 10px;
      padding: 8px;
  }
  
985752f5   tangwang   1. 前端调试功能
372
373
374
375
376
377
378
  .product-debug {
      flex: 1;
      font-family: Menlo, Consolas, "Courier New", monospace;
      font-size: 12px;
      color: #555;
      border-left: 1px dashed #eee;
      padding-left: 12px;
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
379
      max-height: 540px;
985752f5   tangwang   1. 前端调试功能
380
381
382
383
384
      overflow: auto;
  }
  
  .product-debug-title {
      font-weight: 600;
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
385
      margin-bottom: 8px;
985752f5   tangwang   1. 前端调试功能
386
387
388
      color: #333;
  }
  
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
389
390
391
392
393
394
  .product-debug-subtitle {
      margin: 10px 0 6px;
      font-weight: 600;
      color: #666;
  }
  
985752f5   tangwang   1. 前端调试功能
395
396
397
398
  .product-debug-line {
      margin-bottom: 2px;
  }
  
deccd68a   tangwang   Added the SKU pre...
399
400
401
402
  .product-debug-actions {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
a7cc9078   tangwang   sku排序
403
      gap: 10px 14px;
deccd68a   tangwang   Added the SKU pre...
404
405
406
      margin-top: 8px;
  }
  
41856690   tangwang   embedding logs
407
  .product-debug-inline-result-btn {
deccd68a   tangwang   Added the SKU pre...
408
409
410
      font-family: inherit;
      font-size: 12px;
      padding: 4px 10px;
a7cc9078   tangwang   sku排序
411
      border: 1px solid #ccc;
deccd68a   tangwang   Added the SKU pre...
412
      border-radius: 4px;
a7cc9078   tangwang   sku排序
413
414
      background: #fafafa;
      color: #333;
deccd68a   tangwang   Added the SKU pre...
415
416
417
      cursor: pointer;
  }
  
41856690   tangwang   embedding logs
418
  .product-debug-inline-result-btn:hover {
a7cc9078   tangwang   sku排序
419
420
      background: #f0f0f0;
      border-color: #bbb;
deccd68a   tangwang   Added the SKU pre...
421
422
  }
  
41856690   tangwang   embedding logs
423
  .product-debug--result-expanded {
a7cc9078   tangwang   sku排序
424
      max-height: min(70vh, 720px);
deccd68a   tangwang   Added the SKU pre...
425
426
  }
  
41856690   tangwang   embedding logs
427
  .product-result-doc-panel {
a7cc9078   tangwang   sku排序
428
429
430
      margin-top: 10px;
      padding-top: 8px;
      border-top: 1px dashed #e8e8e8;
deccd68a   tangwang   Added the SKU pre...
431
432
  }
  
41856690   tangwang   embedding logs
433
  .product-result-doc-pre {
a7cc9078   tangwang   sku排序
434
435
436
437
438
439
440
441
442
443
      margin: 6px 0 0;
      padding: 10px;
      background: #f5f5f5;
      border-radius: 4px;
      overflow: auto;
      max-height: 50vh;
      font-size: 11px;
      line-height: 1.35;
      white-space: pre-wrap;
      word-break: break-word;
deccd68a   tangwang   Added the SKU pre...
444
445
  }
  
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
  .debug-panel {
      display: flex;
      flex-direction: column;
      gap: 14px;
      padding: 12px;
      font-family: Menlo, Consolas, "Courier New", monospace;
      font-size: 12px;
  }
  
  .debug-section-block {
      background: #fff;
      border: 1px solid #e8e8e8;
      border-radius: 10px;
      padding: 14px;
  }
  
  .debug-section-title {
      font-size: 13px;
      font-weight: 700;
      color: #222;
      margin-bottom: 10px;
  }
  
  .debug-stage-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
      gap: 12px;
  }
  
  .debug-stage-card {
      border: 1px solid #ececec;
      border-radius: 8px;
      padding: 12px;
      background: linear-gradient(180deg, #fff 0%, #fafafa 100%);
  }
  
  .debug-stage-title {
      font-size: 13px;
      font-weight: 700;
      color: #333;
  }
  
  .debug-stage-subtitle {
      margin: 4px 0 8px;
      color: #888;
      font-size: 11px;
  }
  
9b956985   tangwang   调试工具展示优化
494
  /* Stage cards + query context: one key:value per line, no per-field boxes */
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
495
  .debug-metrics {
9b956985   tangwang   调试工具展示优化
496
497
498
499
500
501
      display: flex;
      flex-direction: column;
      gap: 1px 0;
      margin-top: 6px;
      font-size: 11px;
      line-height: 1.4;
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
502
503
  }
  
9b956985   tangwang   调试工具展示优化
504
505
506
  .debug-metric-line {
      display: block;
      word-break: break-word;
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
507
508
  }
  
9b956985   tangwang   调试工具展示优化
509
510
511
  .debug-metric-k {
      color: #666;
      font-weight: 500;
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
512
513
  }
  
9b956985   tangwang   调试工具展示优化
514
515
516
517
518
519
520
  .debug-metric-sep {
      color: #aaa;
      margin: 0 3px 0 1px;
  }
  
  .debug-metric-v {
      color: #111;
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
521
      font-weight: 600;
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
  }
  
  .debug-score-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 6px;
  }
  
  .debug-score-pill {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 6px 10px;
      border-radius: 999px;
      border: 1px solid #e3e3e3;
      background: #f7f7f7;
  }
  
  .debug-score-pill-label {
      color: #666;
  }
  
  .debug-score-pill-value {
      color: #111;
      font-weight: 700;
  }
  
  .tone-es {
      background: #f8f1ff;
      border-color: #e6d5ff;
  }
  
  .tone-coarse {
      background: #eef8ff;
      border-color: #cae8ff;
  }
  
  .tone-fine {
      background: #f3fbef;
      border-color: #d8f1c8;
  }
  
  .tone-rerank {
      background: #fff4e8;
      border-color: #ffd9b0;
  }
  
  .tone-final {
      background: #fff1f0;
      border-color: #ffc9c4;
  }
  
  .tone-neutral {
      background: #f5f5f5;
  }
  
  .debug-details {
      margin-top: 10px;
  }
  
  .debug-details summary {
      cursor: pointer;
      color: #555;
      font-weight: 600;
  }
  
  .debug-json-pre {
      margin-top: 8px;
      padding: 10px;
      background: #f5f5f5;
      border-radius: 6px;
      overflow: auto;
      max-height: 240px;
      white-space: pre-wrap;
      word-break: break-word;
  }
  
  .debug-timing-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
  }
  
  .debug-timing-row {
      display: grid;
      grid-template-columns: 220px 1fr 90px;
      gap: 10px;
      align-items: center;
  }
  
  .debug-timing-label {
      color: #444;
  }
  
  .debug-timing-bar-wrap {
      height: 10px;
      background: #f0f0f0;
      border-radius: 999px;
      overflow: hidden;
  }
  
  .debug-timing-bar {
      height: 100%;
      background: linear-gradient(90deg, #f39c12 0%, #e74c3c 100%);
      border-radius: 999px;
  }
  
  .debug-timing-value {
      text-align: right;
      color: #666;
      font-weight: 600;
  }
  
a7cc9078   tangwang   sku排序
636
637
638
  .product-debug-link {
      display: inline-block;
      margin-top: 0;
deccd68a   tangwang   Added the SKU pre...
639
      font-size: 12px;
a7cc9078   tangwang   sku排序
640
641
642
643
644
645
      color: #e67e22;
      text-decoration: none;
  }
  
  .product-debug-link:hover {
      text-decoration: underline;
deccd68a   tangwang   Added the SKU pre...
646
647
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
648
649
650
  .product-card:hover {
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      transform: translateY(-2px);
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
651
652
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
653
  .product-image-wrapper {
985752f5   tangwang   1. 前端调试功能
654
      width: 220px;
a7a8c6cb   tangwang   测试过滤、聚合、排序
655
656
657
658
659
660
661
662
      height: 180px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #fafafa;
      border-radius: 6px;
      margin-bottom: 12px;
      overflow: hidden;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
663
664
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
665
666
667
668
669
670
671
672
673
674
675
  .product-image {
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
  }
  
  .product-badge {
      position: absolute;
      top: 10px;
      right: 10px;
      background: #f39c12;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
676
      color: white;
a7a8c6cb   tangwang   测试过滤、聚合、排序
677
678
679
680
      padding: 3px 8px;
      border-radius: 3px;
      font-size: 11px;
      font-weight: bold;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
681
682
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
683
684
685
686
687
688
689
690
691
  .product-price {
      font-size: 18px;
      font-weight: bold;
      color: #e74c3c;
      margin-bottom: 8px;
  }
  
  .product-moq {
      font-size: 12px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
692
      color: #666;
a7a8c6cb   tangwang   测试过滤、聚合、排序
693
      margin-bottom: 4px;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
694
695
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
696
697
698
  .product-quantity {
      font-size: 12px;
      color: #666;
115047ee   tangwang   为一个租户灌入测试数据;实例的启动...
699
700
      margin-bottom: 10px;
  }
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
701
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
  .product-title {
      font-size: 13px;
      color: #333;
      line-height: 1.4;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis;
      min-height: 36px;
      margin-bottom: 8px;
  }
  
  .product-meta {
      font-size: 11px;
      color: #999;
      margin-top: auto;
      padding-top: 8px;
      border-top: 1px solid #f0f0f0;
  }
  
edd38328   tangwang   测试过滤、聚合、排序
723
724
725
726
727
728
729
  .product-time {
      font-size: 10px;
      color: #aaa;
      margin-top: 4px;
      font-style: italic;
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
730
731
732
733
734
735
736
737
738
739
740
741
  .product-label {
      display: inline-block;
      background: #e74c3c;
      color: white;
      padding: 2px 8px;
      border-radius: 3px;
      font-size: 11px;
      margin-top: 6px;
  }
  
  /* Pagination */
  .pagination {
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
742
      display: flex;
a7a8c6cb   tangwang   测试过滤、聚合、排序
743
744
745
746
747
      justify-content: center;
      align-items: center;
      gap: 10px;
      padding: 30px;
      background: white;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
748
749
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
750
751
752
  .page-btn {
      padding: 8px 16px;
      border: 1px solid #ddd;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
753
      background: white;
a7a8c6cb   tangwang   测试过滤、聚合、排序
754
755
756
757
      border-radius: 4px;
      cursor: pointer;
      font-size: 14px;
      transition: all 0.2s;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
758
759
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
760
761
762
  .page-btn:hover:not(:disabled) {
      background: #f8f8f8;
      border-color: #e74c3c;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
763
764
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
765
766
767
  .page-btn:disabled {
      opacity: 0.5;
      cursor: not-allowed;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
768
769
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
770
771
  .page-btn.active {
      background: #e74c3c;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
772
      color: white;
a7a8c6cb   tangwang   测试过滤、聚合、排序
773
      border-color: #e74c3c;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
774
775
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
776
  .page-info {
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
777
      font-size: 14px;
a7a8c6cb   tangwang   测试过滤、聚合、排序
778
779
      color: #666;
      padding: 0 15px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
780
781
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
782
783
784
785
786
787
  /* Debug Info */
  .debug-info {
      margin: 20px 30px;
      border: 1px solid #ddd;
      border-radius: 4px;
      background: #f9f9f9;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
788
789
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
790
791
  .debug-info summary {
      padding: 12px 15px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
792
      cursor: pointer;
a7a8c6cb   tangwang   测试过滤、聚合、排序
793
794
795
      font-weight: 500;
      font-size: 14px;
      color: #666;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
796
797
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
798
799
  .debug-info summary:hover {
      background: #f0f0f0;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
800
801
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
802
803
804
805
  .query-info-content {
      padding: 15px;
      border-top: 1px solid #ddd;
      font-size: 13px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
806
807
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
808
809
810
811
  .info-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 12px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
812
813
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
814
815
816
817
818
  .info-item {
      padding: 12px;
      background: white;
      border: 1px solid #e0e0e0;
      border-radius: 4px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
819
820
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
821
822
823
824
825
  .info-item strong {
      display: block;
      color: #e74c3c;
      margin-bottom: 6px;
      font-size: 12px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
826
827
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
828
829
830
  .info-item span {
      color: #333;
      font-size: 13px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
831
832
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
833
834
835
836
837
838
839
  /* Footer */
  footer {
      text-align: center;
      padding: 20px;
      background: #333;
      color: white;
      font-size: 13px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
840
841
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
842
843
  footer span {
      color: #e74c3c;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
844
845
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
846
847
848
849
850
851
  /* No Results */
  .no-results {
      text-align: center;
      padding: 80px 20px;
      background: white;
      color: #666;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
852
853
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
854
855
856
857
  .no-results h3 {
      font-size: 24px;
      margin-bottom: 10px;
      color: #999;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
858
859
  }
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
  /* Error Message */
  .error-message {
      background: #ffe6e6;
      color: #c0392b;
      padding: 20px;
      margin: 30px;
      border-radius: 8px;
      border-left: 4px solid #e74c3c;
  }
  
  .error-message strong {
      display: block;
      margin-bottom: 8px;
      font-size: 16px;
  }
  
  /* Responsive Design */
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
877
  @media (max-width: 768px) {
a7a8c6cb   tangwang   测试过滤、聚合、排序
878
879
880
881
882
883
884
885
886
887
888
889
890
      .top-header {
          padding: 12px 15px;
      }
      
      .search-bar {
          padding: 15px;
      }
      
      .filter-section {
          padding: 12px 15px;
      }
      
      .filter-row {
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
891
          flex-direction: column;
a7a8c6cb   tangwang   测试过滤、聚合、排序
892
893
          align-items: flex-start;
          gap: 8px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
894
      }
a7a8c6cb   tangwang   测试过滤、聚合、排序
895
896
897
898
899
900
901
902
903
904
      
      .filter-label {
          min-width: auto;
      }
      
      .sort-section {
          padding: 12px 15px;
      }
      
      .product-grid {
a7a8c6cb   tangwang   测试过滤、聚合、排序
905
906
          padding: 15px;
      }
16d28bf8   tangwang   漏斗信息呈现,便于调整参数
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
  
      .product-card {
          flex-direction: column;
      }
  
      .product-main {
          width: 100%;
      }
  
      .product-image-wrapper {
          width: 100%;
          max-width: 320px;
      }
  
      .product-debug {
          width: 100%;
          border-left: none;
          border-top: 1px dashed #eee;
          padding-left: 0;
          padding-top: 12px;
      }
  
      .debug-stage-grid {
          grid-template-columns: 1fr;
      }
  
      .debug-timing-row {
          grid-template-columns: 1fr;
      }
  
      .debug-timing-value {
          text-align: left;
      }
a7a8c6cb   tangwang   测试过滤、聚合、排序
940
941
942
943
      
      .pagination {
          padding: 20px 15px;
          flex-wrap: wrap;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
944
      }
a7a8c6cb   tangwang   测试过滤、聚合、排序
945
  }
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
946
  
a7a8c6cb   tangwang   测试过滤、聚合、排序
947
  @media (max-width: 480px) {
a7a8c6cb   tangwang   测试过滤、聚合、排序
948
949
950
951
952
953
954
955
956
957
      .header-left {
          gap: 15px;
      }
      
      .logo {
          font-size: 18px;
      }
      
      .product-count {
          font-size: 12px;
c86c8237   tangwang   支持聚合。过滤项补充了逻辑,但是有问题
958
959
      }
  }