@walkeros/explorer 0.0.7 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4923 @@
1
+ @charset "UTF-8";
2
+
3
+ /* src/styles/index.scss */
4
+ .elb-explorer {
5
+ --color-text: #111827;
6
+ --color-text-label: #4b5563;
7
+ --color-text-button: #6b7280;
8
+ --color-text-button-hover: #374151;
9
+ --color-text-button-active: #1f2937;
10
+ --color-text-muted: #6b7280;
11
+ --color-text-toggle: #6b7280;
12
+ --color-text-input: #111827;
13
+ --color-text-placeholder: #9ca3af;
14
+ --bg-box: #ffffff;
15
+ --bg-header: #f5f5f5;
16
+ --bg-footer: #f5f5f5;
17
+ --bg-button-hover: #e8e8e8;
18
+ --bg-button-active: #ffffff;
19
+ --bg-button-group: #f3f4f6;
20
+ --bg-input: #ffffff;
21
+ --bg-input-hover: #f9f9f9;
22
+ --bg-code-inline: #f9f9f9;
23
+ --bg-dropdown: #ffffff;
24
+ --bg-dropdown-option-hover: #f0f0f0;
25
+ --bg-dropdown-option-highlighted: #e3f2fd;
26
+ --border-box: #e0e0e0;
27
+ --border-header: #e0e0e0;
28
+ --border-footer: #e0e0e0;
29
+ --border-button-group: #d1d5db;
30
+ --border-input: #d1d5db;
31
+ --border-input-focus: #01b5e2;
32
+ --shadow-button-active: 0 1px 2px rgba(0, 0, 0, 0.1);
33
+ --shadow-dropdown: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
34
+ --color-button-primary: #01b5e2;
35
+ --color-button-primary-hover: #015372;
36
+ --color-button-primary-text: #ffffff;
37
+ --color-button-danger: #ef4444;
38
+ --color-button-danger-hover: #dc2626;
39
+ --color-button-danger-text: #ffffff;
40
+ --color-status-enabled: #22c55e;
41
+ --color-status-disabled: #9ca3af;
42
+ --color-status-warning: #f59e0b;
43
+ --color-highlight-primary: #01b5e2;
44
+ --radius-box: 4px;
45
+ --radius-button: 3px;
46
+ --radius-button-group: 4px;
47
+ --radius-highlight-button: 6px;
48
+ --spacing-header: 6px 10px;
49
+ --spacing-footer: 6px 10px;
50
+ --spacing-button: 4px 8px;
51
+ --spacing-button-group: 1px;
52
+ --spacing-grid-gap: 12px;
53
+ --spacing-snippet: 20px;
54
+ --grid-min-box-width: 350px;
55
+ --grid-row-min-height: 250px;
56
+ --grid-row-max-height: 450px;
57
+ --grid-box-max-height-mobile: 500px;
58
+ --height-snippet-min: 20px;
59
+ --monaco-font-size: 13px;
60
+ --monaco-line-height: 1.5;
61
+ --monaco-font-size-snippet: 16px;
62
+ --font-family-base:
63
+ system-ui,
64
+ -apple-system,
65
+ BlinkMacSystemFont,
66
+ "Segoe UI",
67
+ "Roboto",
68
+ "Helvetica Neue",
69
+ sans-serif;
70
+ --font-mono:
71
+ "SF Mono",
72
+ "Monaco",
73
+ "Inconsolata",
74
+ "Roboto Mono",
75
+ "Source Code Pro",
76
+ monospace;
77
+ --font-size-base: 14px;
78
+ --font-size-label: 13px;
79
+ --font-size-toggle: 12px;
80
+ --font-size-highlight-button: 0.75rem;
81
+ --font-size-xl: 16px;
82
+ --line-height-base: 1.5;
83
+ --font-weight-normal: 400;
84
+ --font-weight-semibold: 600;
85
+ --highlight-globals: #4fc3f7cc;
86
+ --highlight-context: #ffbd44cc;
87
+ --highlight-entity: #00ca4ecc;
88
+ --highlight-property: #ff605ccc;
89
+ --highlight-action: #9900ffcc;
90
+ --highlight-background: #1f2937;
91
+ --highlight-text: #9ca3af;
92
+ --highlight-hover: rgba(255, 255, 255, 0.05);
93
+ --highlight-separator: rgba(255, 255, 255, 0.05);
94
+ }
95
+ [data-theme=light] .elb-explorer {
96
+ --color-text: #000;
97
+ --color-text-label: #424242;
98
+ --color-text-button: #616161;
99
+ --color-text-button-hover: #424242;
100
+ --color-text-button-active: #1f2937;
101
+ --color-text-muted: #666;
102
+ --color-text-toggle: #666;
103
+ --color-text-input: #000;
104
+ --color-text-placeholder: #9ca3af;
105
+ --bg-box: #ffffff;
106
+ --bg-header: #f5f5f5;
107
+ --bg-footer: #f5f5f5;
108
+ --bg-button-hover: #e8e8e8;
109
+ --bg-button-active: #ffffff;
110
+ --bg-button-group: #f3f4f6;
111
+ --bg-input: #ffffff;
112
+ --bg-input-hover: #f9f9f9;
113
+ --bg-code-inline: #f9f9f9;
114
+ --bg-dropdown: #ffffff;
115
+ --bg-dropdown-option-hover: #f0f0f0;
116
+ --bg-dropdown-option-highlighted: #e3f2fd;
117
+ --border-box: #e0e0e0;
118
+ --border-header: #e0e0e0;
119
+ --border-footer: #e0e0e0;
120
+ --border-button-group: #d1d5db;
121
+ --border-input: #d1d5db;
122
+ --border-input-focus: #01b5e2;
123
+ --shadow-button-active: 0 1px 2px rgba(0, 0, 0, 0.1);
124
+ --shadow-dropdown: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
125
+ --color-button-primary: #01b5e2;
126
+ --color-button-primary-hover: #015372;
127
+ --color-button-primary-text: #ffffff;
128
+ --color-button-danger: #ef4444;
129
+ --color-button-danger-hover: #dc2626;
130
+ --color-button-danger-text: #ffffff;
131
+ --color-status-enabled: #22c55e;
132
+ --color-status-disabled: #9ca3af;
133
+ --color-status-warning: #f59e0b;
134
+ --radius-box: 4px;
135
+ --radius-button: 3px;
136
+ --radius-button-group: 4px;
137
+ --radius-highlight-button: 6px;
138
+ --spacing-header: 6px 10px;
139
+ --spacing-footer: 6px 10px;
140
+ --spacing-button: 4px 8px;
141
+ --spacing-button-group: 1px;
142
+ --spacing-grid-gap: 12px;
143
+ --spacing-snippet: 20px;
144
+ --grid-min-box-width: 350px;
145
+ --grid-row-min-height: 250px;
146
+ --grid-row-max-height: 450px;
147
+ --grid-box-max-height-mobile: 500px;
148
+ --height-snippet-min: 20px;
149
+ --monaco-font-size: 13px;
150
+ --monaco-line-height: 1.5;
151
+ --monaco-font-size-snippet: 16px;
152
+ --font-family-base:
153
+ system-ui,
154
+ -apple-system,
155
+ BlinkMacSystemFont,
156
+ "Segoe UI",
157
+ "Roboto",
158
+ "Helvetica Neue",
159
+ sans-serif;
160
+ --font-mono:
161
+ "SF Mono",
162
+ "Monaco",
163
+ "Inconsolata",
164
+ "Roboto Mono",
165
+ "Source Code Pro",
166
+ monospace;
167
+ --font-size-base: 14px;
168
+ --font-size-label: 13px;
169
+ --font-size-toggle: 12px;
170
+ --font-size-highlight-button: 0.75rem;
171
+ --font-size-xl: 16px;
172
+ --line-height-base: 1.5;
173
+ --font-weight-normal: 400;
174
+ --font-weight-semibold: 600;
175
+ --highlight-globals: #4fc3f7cc;
176
+ --highlight-context: #ffbd44cc;
177
+ --highlight-entity: #00ca4ecc;
178
+ --highlight-property: #ff605ccc;
179
+ --highlight-action: #9900ffcc;
180
+ --highlight-background: #1f2937;
181
+ --highlight-text: #9ca3af;
182
+ --highlight-hover: rgba(255, 255, 255, 0.05);
183
+ --highlight-separator: rgba(255, 255, 255, 0.05);
184
+ }
185
+ [data-theme=dark] .elb-explorer {
186
+ --color-text: #f3f4f6;
187
+ --color-text-label: #d1d5db;
188
+ --color-text-button: #d1d5db;
189
+ --color-text-button-hover: #ffffff;
190
+ --color-text-button-active: #ffffff;
191
+ --color-text-muted: #9ca3af;
192
+ --color-text-toggle: #9ca3af;
193
+ --color-text-input: #f3f4f6;
194
+ --color-text-placeholder: #6b7280;
195
+ --bg-box: #292d3e;
196
+ --bg-header: #1f2937;
197
+ --bg-footer: #1f2937;
198
+ --bg-button-hover: #374151;
199
+ --bg-button-active: #111827;
200
+ --bg-button-group: #374151;
201
+ --bg-input: #1f2937;
202
+ --bg-input-hover: #374151;
203
+ --bg-code-inline: rgba(255, 255, 255, 0.05);
204
+ --bg-dropdown: #1f2937;
205
+ --bg-dropdown-option-hover: #374151;
206
+ --bg-dropdown-option-highlighted: #1e3a5f;
207
+ --border-box: #4b5563;
208
+ --border-header: #4b5563;
209
+ --border-footer: #4b5563;
210
+ --border-button-group: #4b5563;
211
+ --border-input: #4b5563;
212
+ --border-input-focus: #01b5e2;
213
+ --shadow-button-active: 0 1px 2px rgba(0, 0, 0, 0.3);
214
+ --shadow-dropdown: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
215
+ --color-button-primary: #01b5e2;
216
+ --color-button-primary-hover: #015372;
217
+ --color-button-danger: #ef4444;
218
+ --color-button-danger-hover: #dc2626;
219
+ }
220
+ .elb-explorer {
221
+ font-family:
222
+ -apple-system,
223
+ BlinkMacSystemFont,
224
+ "Segoe UI",
225
+ Roboto,
226
+ Oxygen,
227
+ Ubuntu,
228
+ Cantarell,
229
+ "Helvetica Neue",
230
+ sans-serif;
231
+ font-size: 14px;
232
+ line-height: 1.5;
233
+ color: var(--color-text);
234
+ margin-bottom: var(--spacing-grid-gap);
235
+ }
236
+ .elb-explorer * {
237
+ box-sizing: border-box;
238
+ }
239
+ .elb-explorer button {
240
+ font-family: inherit;
241
+ }
242
+ .elb-explorer-grid-wrapper {
243
+ position: relative;
244
+ width: 100%;
245
+ container-type: inline-size;
246
+ container-name: grid-container;
247
+ }
248
+ .elb-explorer-grid {
249
+ display: grid;
250
+ gap: var(--spacing-grid-gap);
251
+ width: 100%;
252
+ grid-auto-flow: row;
253
+ grid-template-columns: 1fr;
254
+ grid-auto-rows: auto;
255
+ overflow: visible;
256
+ }
257
+ @container grid-container (min-width: 800px) {
258
+ .elb-explorer-grid {
259
+ grid-auto-flow: column;
260
+ grid-auto-columns: minmax(var(--grid-min-box-width), 1fr);
261
+ grid-auto-rows: minmax(var(--grid-row-min-height), var(--grid-row-max-height, auto));
262
+ overflow-x: auto;
263
+ overflow-y: hidden;
264
+ scroll-behavior: smooth;
265
+ -webkit-overflow-scrolling: touch;
266
+ }
267
+ .elb-explorer-grid > * {
268
+ min-width: var(--grid-min-box-width);
269
+ }
270
+ @media (max-width: 799px) {
271
+ .elb-explorer-grid {
272
+ scrollbar-width: none;
273
+ }
274
+ .elb-explorer-grid::-webkit-scrollbar {
275
+ display: none;
276
+ }
277
+ }
278
+ }
279
+ @container grid-container (min-width: 800px) {
280
+ .elb-explorer-grid.elb-explorer-grid--row-auto {
281
+ grid-auto-rows: auto;
282
+ max-height: none;
283
+ }
284
+ }
285
+ @container grid-container (min-width: 800px) {
286
+ .elb-explorer-grid.elb-explorer-grid--row-synced {
287
+ grid-auto-rows: auto;
288
+ }
289
+ }
290
+ .elb-explorer-grid-scroll-button {
291
+ position: absolute;
292
+ top: 50%;
293
+ transform: translateY(-50%);
294
+ z-index: 10;
295
+ width: 40px;
296
+ height: 40px;
297
+ padding: 0;
298
+ border: none;
299
+ border-radius: 50%;
300
+ background: var(--bg-box);
301
+ color: var(--color-text);
302
+ font-size: 24px;
303
+ line-height: 0;
304
+ cursor: pointer;
305
+ display: flex;
306
+ align-items: center;
307
+ justify-content: center;
308
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
309
+ transition: all 0.2s ease;
310
+ user-select: none;
311
+ }
312
+ @container grid-container (max-width: 799px) {
313
+ .elb-explorer-grid-scroll-button {
314
+ display: none;
315
+ }
316
+ }
317
+ .elb-explorer-grid-scroll-button:hover {
318
+ background: var(--bg-button-hover);
319
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
320
+ transform: translateY(-50%) scale(1.1);
321
+ }
322
+ .elb-explorer-grid-scroll-button:active {
323
+ transform: translateY(-50%) scale(0.95);
324
+ }
325
+ .elb-explorer-grid-scroll-button--left {
326
+ left: 8px;
327
+ }
328
+ .elb-explorer-grid-scroll-button--right {
329
+ right: 8px;
330
+ }
331
+ .elb-explorer ::-webkit-scrollbar {
332
+ width: 8px;
333
+ height: 8px;
334
+ }
335
+ .elb-explorer ::-webkit-scrollbar-track {
336
+ background: transparent;
337
+ }
338
+ .elb-explorer ::-webkit-scrollbar-thumb {
339
+ background: rgba(0, 0, 0, 0.2);
340
+ border-radius: 4px;
341
+ }
342
+ .elb-explorer ::-webkit-scrollbar-thumb:hover {
343
+ background: rgba(0, 0, 0, 0.2);
344
+ }
345
+ [data-theme=dark] .elb-explorer ::-webkit-scrollbar-thumb {
346
+ background: rgba(255, 255, 255, 0.2);
347
+ }
348
+ [data-theme=dark] .elb-explorer ::-webkit-scrollbar-thumb:hover {
349
+ background: rgba(255, 255, 255, 0.2);
350
+ }
351
+ .elb-explorer {
352
+ width: 100%;
353
+ max-width: 100%;
354
+ background: transparent;
355
+ padding: 0;
356
+ font-family: var(--font-family-base);
357
+ font-size: var(--font-size-base);
358
+ line-height: var(--line-height-base);
359
+ color: var(--color-text);
360
+ }
361
+ .elb-explorer-btn {
362
+ padding: var(--spacing-button);
363
+ background: transparent;
364
+ border: none;
365
+ border-radius: var(--radius-button);
366
+ cursor: pointer;
367
+ display: flex;
368
+ align-items: center;
369
+ justify-content: center;
370
+ color: var(--color-text-button);
371
+ transition: all 0.15s;
372
+ }
373
+ .elb-explorer-btn:hover {
374
+ background: var(--bg-button-hover);
375
+ color: var(--color-text-button-hover);
376
+ }
377
+ .elb-explorer-btn.active {
378
+ background: var(--bg-button-active);
379
+ color: var(--color-text-button-active);
380
+ box-shadow: var(--shadow-button-active);
381
+ font-weight: var(--font-weight-semibold);
382
+ }
383
+ .elb-explorer-button-group {
384
+ display: flex;
385
+ background: var(--bg-button-group);
386
+ border-radius: var(--radius-button-group);
387
+ padding: var(--spacing-button-group);
388
+ border: 1px solid var(--border-button-group);
389
+ }
390
+ .elb-code {
391
+ flex: 1;
392
+ min-height: 0;
393
+ width: 100%;
394
+ display: flex;
395
+ flex-direction: column;
396
+ position: relative;
397
+ overflow: hidden;
398
+ }
399
+ .elb-code > div {
400
+ flex: 1;
401
+ min-height: 0;
402
+ width: 100%;
403
+ height: 100%;
404
+ }
405
+ .elb-code.elb-code--auto-height {
406
+ flex: 0 0 auto;
407
+ }
408
+ .elb-code.elb-code--auto-height > div {
409
+ flex: 0 0 auto;
410
+ height: auto;
411
+ }
412
+ .elb-code .monaco-editor {
413
+ background: transparent !important;
414
+ }
415
+ .elb-code .monaco-editor .margin {
416
+ background: transparent !important;
417
+ }
418
+ .elb-code .monaco-editor .monaco-editor-background {
419
+ background: transparent !important;
420
+ }
421
+ .elb-code-inline {
422
+ font-family: var(--font-mono);
423
+ font-size: 0.9em;
424
+ padding: 0.125rem 0.375rem;
425
+ border-radius: var(--radius-button);
426
+ background-color: var(--bg-code-inline);
427
+ border: 1px solid var(--border-input);
428
+ color: var(--color-text);
429
+ white-space: nowrap;
430
+ }
431
+ .elb-toggle-container {
432
+ display: flex;
433
+ align-items: center;
434
+ gap: 12px;
435
+ }
436
+ .elb-toggle {
437
+ position: relative;
438
+ width: 48px;
439
+ height: 24px;
440
+ background: var(--color-primary, #3b82f6);
441
+ border: none;
442
+ border-radius: 12px;
443
+ cursor: pointer;
444
+ transition: background-color 0.2s ease;
445
+ padding: 0;
446
+ outline: none;
447
+ }
448
+ .elb-toggle:focus-visible {
449
+ box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.2);
450
+ }
451
+ .elb-toggle-checked {
452
+ background: var(--border-input);
453
+ }
454
+ .elb-toggle-disabled {
455
+ opacity: 0.5;
456
+ cursor: not-allowed;
457
+ }
458
+ .elb-toggle-slider {
459
+ position: absolute;
460
+ top: 2px;
461
+ left: 2px;
462
+ width: 20px;
463
+ height: 20px;
464
+ background: white;
465
+ border-radius: 50%;
466
+ transition: transform 0.2s ease;
467
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
468
+ }
469
+ .elb-toggle-checked .elb-toggle-slider {
470
+ transform: translateX(24px);
471
+ }
472
+ .elb-toggle-label {
473
+ font-family: var(--font-family-base);
474
+ font-size: var(--font-size-base);
475
+ color: var(--color-text);
476
+ user-select: none;
477
+ cursor: pointer;
478
+ }
479
+ .elb-icon-button {
480
+ padding: 8px 16px;
481
+ border: none;
482
+ border-radius: var(--radius-button);
483
+ cursor: pointer;
484
+ display: flex;
485
+ align-items: center;
486
+ justify-content: center;
487
+ gap: 6px;
488
+ font-family: var(--font-family-base);
489
+ font-size: var(--font-size-base);
490
+ font-weight: var(--font-weight-semibold);
491
+ transition: all 0.15s;
492
+ }
493
+ .elb-icon-button:disabled {
494
+ opacity: 0.4;
495
+ cursor: not-allowed;
496
+ }
497
+ .elb-icon-button-default {
498
+ background: transparent;
499
+ color: var(--color-text-button);
500
+ border: 1px solid var(--border-input);
501
+ }
502
+ .elb-icon-button-default:hover:not(:disabled) {
503
+ background: var(--bg-button-hover);
504
+ color: var(--color-text-button-hover);
505
+ }
506
+ .elb-icon-button-primary {
507
+ background: var(--color-button-primary);
508
+ color: var(--color-button-primary-text);
509
+ border: 1px solid var(--color-button-primary);
510
+ }
511
+ .elb-icon-button-primary:hover:not(:disabled) {
512
+ background: var(--color-button-primary-hover);
513
+ border-color: var(--color-button-primary-hover);
514
+ }
515
+ .elb-icon-button-danger {
516
+ background: transparent;
517
+ color: var(--color-text-muted);
518
+ border: 1px solid transparent;
519
+ }
520
+ .elb-icon-button-danger:hover:not(:disabled) {
521
+ background: transparent;
522
+ color: var(--color-button-danger);
523
+ border-color: transparent;
524
+ }
525
+ .elb-field-header-with-action {
526
+ display: flex;
527
+ justify-content: space-between;
528
+ align-items: flex-start;
529
+ gap: 12px;
530
+ margin-bottom: 8px;
531
+ }
532
+ .elb-field-header-with-action > div:first-child {
533
+ flex: 1;
534
+ }
535
+ .elb-field-header-with-action .elb-rjsf-label {
536
+ display: block;
537
+ }
538
+ .elb-field-header-with-action .elb-rjsf-description {
539
+ line-height: 1.3;
540
+ }
541
+ .elb-mapping-grid {
542
+ display: grid;
543
+ align-items: center;
544
+ width: 100%;
545
+ }
546
+ .elb-mapping-grid-row {
547
+ grid-template-columns: auto;
548
+ }
549
+ .elb-mapping-grid-cols-2 {
550
+ grid-template-columns: repeat(2, 1fr);
551
+ }
552
+ .elb-mapping-grid-gap-8 {
553
+ gap: 8px;
554
+ }
555
+ .elb-mapping-grid-gap-12 {
556
+ gap: 12px;
557
+ }
558
+ .elb-mapping-grid-gap-16 {
559
+ gap: 16px;
560
+ }
561
+ .elb-mapping-grid-gap-20 {
562
+ gap: 20px;
563
+ }
564
+ @media (max-width: 799px) {
565
+ .elb-mapping-grid-responsive {
566
+ grid-template-columns: 1fr !important;
567
+ }
568
+ }
569
+ .elb-panel-hints {
570
+ margin-top: 4px;
571
+ padding: 0;
572
+ background: transparent;
573
+ }
574
+ .elb-panel-hints-title {
575
+ font-size: 12px;
576
+ font-weight: var(--font-weight-semibold);
577
+ color: var(--color-text-muted);
578
+ margin-bottom: 8px;
579
+ text-transform: uppercase;
580
+ letter-spacing: 0.5px;
581
+ }
582
+ .elb-panel-hints-list {
583
+ list-style: none;
584
+ padding: 0;
585
+ margin: 0;
586
+ display: flex;
587
+ flex-direction: column;
588
+ gap: 4px;
589
+ }
590
+ .elb-panel-hints-item {
591
+ display: flex;
592
+ align-items: baseline;
593
+ gap: 8px;
594
+ font-size: 13px;
595
+ line-height: 1.6;
596
+ padding: 4px 0;
597
+ }
598
+ .elb-panel-hints-code {
599
+ font-family:
600
+ "Menlo",
601
+ "Monaco",
602
+ "Courier New",
603
+ monospace;
604
+ font-size: 12px;
605
+ color: var(--color-text);
606
+ font-weight: var(--font-weight-semibold);
607
+ flex-shrink: 0;
608
+ }
609
+ .elb-panel-hints-desc {
610
+ color: var(--color-text-muted);
611
+ font-size: 12px;
612
+ }
613
+ .elb-checkbox-collapsible {
614
+ padding: 0;
615
+ border: none;
616
+ background: transparent;
617
+ }
618
+ .elb-checkbox-collapsible-header {
619
+ display: flex;
620
+ align-items: flex-start;
621
+ gap: 12px;
622
+ cursor: pointer;
623
+ user-select: none;
624
+ }
625
+ .elb-checkbox-collapsible-checkbox {
626
+ flex-shrink: 0;
627
+ margin-top: 2px;
628
+ cursor: pointer;
629
+ }
630
+ .elb-checkbox-collapsible-label {
631
+ flex: 1;
632
+ display: flex;
633
+ flex-direction: column;
634
+ cursor: pointer;
635
+ }
636
+ .elb-checkbox-collapsible-title {
637
+ font-size: var(--font-size-base);
638
+ color: var(--color-text-label);
639
+ font-weight: var(--font-weight-semibold);
640
+ line-height: 1.4;
641
+ }
642
+ .elb-checkbox-collapsible-description {
643
+ font-size: calc(var(--font-size-base) - 1px);
644
+ color: var(--color-text-muted);
645
+ line-height: 1.4;
646
+ margin-top: 2px;
647
+ }
648
+ .elb-mapping-confirm-button {
649
+ display: flex;
650
+ align-items: center;
651
+ justify-content: center;
652
+ min-width: 28px;
653
+ height: 28px;
654
+ padding: 0;
655
+ background: none;
656
+ border: none;
657
+ border-radius: 4px;
658
+ cursor: pointer;
659
+ color: var(--color-text-muted);
660
+ transition: all 0.15s ease;
661
+ font-size: 12px;
662
+ font-family: var(--font-family-base);
663
+ font-weight: 500;
664
+ white-space: nowrap;
665
+ }
666
+ @media (max-width: 799px) {
667
+ .elb-mapping-confirm-button {
668
+ min-width: 44px;
669
+ min-height: 44px;
670
+ }
671
+ }
672
+ .elb-mapping-confirm-button:hover {
673
+ background: rgba(239, 68, 68, 0.1);
674
+ color: var(--color-button-danger);
675
+ }
676
+ .elb-mapping-confirm-button svg {
677
+ display: block;
678
+ }
679
+ .elb-mapping-confirm-button.is-confirming {
680
+ padding: 0 10px;
681
+ background: var(--color-button-danger);
682
+ color: var(--color-button-danger-text);
683
+ border: 1px solid var(--color-button-danger-hover);
684
+ }
685
+ .elb-mapping-confirm-button.is-confirming:hover {
686
+ background: var(--color-button-danger-hover);
687
+ color: var(--color-button-danger-text);
688
+ }
689
+ .elb-mapping-delete-button {
690
+ }
691
+ .elb-mapping-edit-button {
692
+ display: flex;
693
+ align-items: center;
694
+ justify-content: center;
695
+ min-width: 28px;
696
+ height: 28px;
697
+ padding: 0;
698
+ background: none;
699
+ border: none;
700
+ border-radius: 4px;
701
+ cursor: pointer;
702
+ color: var(--color-text-muted);
703
+ transition: all 0.15s ease;
704
+ }
705
+ @media (max-width: 799px) {
706
+ .elb-mapping-edit-button {
707
+ min-width: 44px;
708
+ min-height: 44px;
709
+ }
710
+ }
711
+ .elb-mapping-edit-button:hover {
712
+ background: var(--bg-button-hover);
713
+ color: var(--color-text);
714
+ }
715
+ .elb-mapping-edit-button svg {
716
+ display: block;
717
+ }
718
+ .elb-consent-add-button,
719
+ .elb-consent-add-row-button {
720
+ width: 100%;
721
+ justify-content: center;
722
+ }
723
+ .elb-consent-add-row-button {
724
+ margin-top: 8px;
725
+ }
726
+ .elb-consent-rows {
727
+ display: flex;
728
+ flex-direction: column;
729
+ gap: 8px;
730
+ }
731
+ .elb-consent-row {
732
+ display: grid;
733
+ grid-template-columns: 200px auto 1fr auto;
734
+ column-gap: 12px;
735
+ align-items: center;
736
+ }
737
+ .elb-consent-row .elb-icon-button {
738
+ width: 34px;
739
+ height: 34px;
740
+ padding: 0;
741
+ flex-shrink: 0;
742
+ }
743
+ .elb-consent-row > :last-child {
744
+ grid-column: 4;
745
+ }
746
+ .elb-consent-checkbox-wrapper {
747
+ grid-column: 2;
748
+ display: flex;
749
+ align-items: center;
750
+ gap: 8px;
751
+ }
752
+ .elb-consent-input {
753
+ width: 100%;
754
+ padding: 8px 12px;
755
+ font-family: var(--font-family-base);
756
+ font-size: var(--font-size-base);
757
+ color: var(--color-text-input);
758
+ background: var(--bg-input);
759
+ border: 1px solid var(--border-input);
760
+ border-radius: var(--radius-button);
761
+ outline: none;
762
+ transition: all 0.15s;
763
+ box-sizing: border-box;
764
+ }
765
+ .elb-consent-input:hover {
766
+ background: var(--bg-input-hover);
767
+ }
768
+ .elb-consent-input:focus {
769
+ background: var(--bg-input);
770
+ border-color: var(--color-button-primary);
771
+ }
772
+ .elb-consent-label {
773
+ font-size: var(--font-size-base);
774
+ color: var(--color-text-label);
775
+ user-select: none;
776
+ }
777
+ .elb-data-widget-wrapper {
778
+ width: 100%;
779
+ }
780
+ .elb-data-widget-form {
781
+ display: flex;
782
+ flex-direction: column;
783
+ gap: 12px;
784
+ }
785
+ .elb-data-add-button {
786
+ width: 100%;
787
+ justify-content: center;
788
+ }
789
+ .elb-settings-widget-wrapper {
790
+ width: 100%;
791
+ }
792
+ .elb-settings-widget-form {
793
+ display: flex;
794
+ flex-direction: column;
795
+ gap: 12px;
796
+ }
797
+ .elb-settings-widget-content {
798
+ display: flex;
799
+ flex-direction: column;
800
+ gap: 12px;
801
+ }
802
+ .elb-settings-widget-add {
803
+ display: flex;
804
+ flex-direction: column;
805
+ gap: 12px;
806
+ align-items: center;
807
+ }
808
+ .elb-settings-widget-hint {
809
+ font-size: calc(var(--font-size-base) - 1px);
810
+ color: var(--color-text-muted);
811
+ text-align: center;
812
+ margin: 0;
813
+ }
814
+ .elb-settings-widget-hint.text-muted {
815
+ font-size: calc(var(--font-size-base) - 2px);
816
+ font-style: italic;
817
+ }
818
+ .elb-settings-widget-fallback {
819
+ display: flex;
820
+ flex-direction: column;
821
+ gap: 12px;
822
+ padding: 12px;
823
+ background-color: var(--bg-input);
824
+ border: 1px solid var(--border-input);
825
+ border-radius: var(--radius-button);
826
+ }
827
+ .elb-settings-widget-json {
828
+ margin: 0;
829
+ padding: 12px;
830
+ background-color: var(--bg-input);
831
+ border: 1px solid var(--border-input);
832
+ border-radius: var(--radius-button);
833
+ font-family: var(--font-mono);
834
+ font-size: calc(var(--font-size-base) - 1px);
835
+ color: var(--color-text);
836
+ overflow-x: auto;
837
+ white-space: pre;
838
+ }
839
+ .elb-settings-widget-actions {
840
+ display: flex;
841
+ justify-content: flex-start;
842
+ gap: 8px;
843
+ padding-top: 8px;
844
+ }
845
+ .elb-value-widget-type-select {
846
+ flex-shrink: 0;
847
+ align-self: flex-start;
848
+ padding: 8px 12px;
849
+ padding-right: 32px;
850
+ min-width: 120px;
851
+ font-family: var(--font-family-base);
852
+ font-size: var(--font-size-base);
853
+ color: var(--color-text-input);
854
+ background: var(--bg-input);
855
+ border: 1px solid var(--border-input);
856
+ border-radius: var(--radius-button);
857
+ outline: none;
858
+ transition: all 0.15s;
859
+ cursor: pointer;
860
+ appearance: none;
861
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5L6 8L9 5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
862
+ background-repeat: no-repeat;
863
+ background-position: right 8px center;
864
+ }
865
+ .elb-value-widget-type-select:hover {
866
+ background-color: var(--bg-input-hover);
867
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5L6 8L9 5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
868
+ background-repeat: no-repeat;
869
+ background-position: right 8px center;
870
+ }
871
+ .elb-value-widget-type-select:focus {
872
+ border-color: var(--border-input-focus);
873
+ }
874
+ .elb-config-tile,
875
+ .elb-rule-tile {
876
+ position: relative;
877
+ display: flex;
878
+ flex-direction: column;
879
+ padding: 12px;
880
+ background: var(--bg-header);
881
+ border: 1px solid var(--border-box);
882
+ border-radius: 8px;
883
+ cursor: pointer;
884
+ transition: all 0.2s ease;
885
+ text-align: left;
886
+ min-height: 100px;
887
+ }
888
+ .elb-config-tile:hover,
889
+ .elb-rule-tile:hover {
890
+ border-color: var(--color-text);
891
+ transform: translateY(-1px);
892
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
893
+ }
894
+ .elb-config-tile.is-enabled,
895
+ .is-enabled.elb-rule-tile {
896
+ background: var(--bg-box);
897
+ border-color: var(--color-text);
898
+ }
899
+ .elb-config-tile-header {
900
+ display: flex;
901
+ flex-direction: column;
902
+ gap: 6px;
903
+ margin-bottom: 8px;
904
+ }
905
+ .elb-config-tile-label {
906
+ font-size: 13px;
907
+ font-weight: 600;
908
+ color: var(--color-text);
909
+ }
910
+ .elb-config-tile-status {
911
+ display: flex;
912
+ align-items: center;
913
+ gap: 8px;
914
+ min-height: 20px;
915
+ }
916
+ .elb-config-tile-indicator {
917
+ width: 8px;
918
+ height: 8px;
919
+ border-radius: 50%;
920
+ flex-shrink: 0;
921
+ }
922
+ .elb-config-tile-indicator.is-enabled {
923
+ background: var(--color-status-enabled);
924
+ }
925
+ .elb-config-tile-indicator.is-disabled {
926
+ background: var(--color-status-disabled);
927
+ }
928
+ .elb-config-tile-status-text {
929
+ font-size: 12px;
930
+ font-weight: 500;
931
+ color: var(--color-text);
932
+ font-family: var(--font-mono);
933
+ white-space: nowrap;
934
+ overflow: hidden;
935
+ position: relative;
936
+ max-width: 100%;
937
+ }
938
+ .elb-config-tile-status-text.is-long {
939
+ mask-image:
940
+ linear-gradient(
941
+ to right,
942
+ black 0%,
943
+ black 70%,
944
+ transparent 100%);
945
+ -webkit-mask-image:
946
+ linear-gradient(
947
+ to right,
948
+ black 0%,
949
+ black 70%,
950
+ transparent 100%);
951
+ }
952
+ .elb-config-tile-description {
953
+ font-size: 12px;
954
+ color: var(--color-text-muted);
955
+ line-height: 1.4;
956
+ flex: 1;
957
+ }
958
+ .elb-consent-state-tile {
959
+ display: flex;
960
+ align-items: center;
961
+ gap: 8px;
962
+ padding: 12px 16px;
963
+ background: var(--bg-header);
964
+ border: 1px solid var(--border-box);
965
+ border-radius: 6px;
966
+ cursor: pointer;
967
+ transition: all 0.15s ease;
968
+ font-size: 14px;
969
+ color: var(--color-text-muted);
970
+ font-weight: 400;
971
+ }
972
+ .elb-consent-state-tile:hover {
973
+ border-color: var(--color-text);
974
+ transform: translateY(-1px);
975
+ }
976
+ .elb-consent-state-tile.is-checked {
977
+ background: var(--bg-box);
978
+ border-color: var(--color-text);
979
+ color: var(--color-text);
980
+ font-weight: 500;
981
+ }
982
+ .elb-consent-state-tile-checkbox {
983
+ width: 16px;
984
+ height: 16px;
985
+ border: 2px solid var(--border-input);
986
+ border-radius: 3px;
987
+ display: flex;
988
+ align-items: center;
989
+ justify-content: center;
990
+ flex-shrink: 0;
991
+ transition: all 0.15s ease;
992
+ color: var(--bg-box);
993
+ }
994
+ .is-checked .elb-consent-state-tile-checkbox {
995
+ background: var(--color-status-enabled);
996
+ border-color: var(--color-status-enabled);
997
+ }
998
+ .elb-consent-state-tile-label {
999
+ flex: 1;
1000
+ text-align: left;
1001
+ user-select: none;
1002
+ }
1003
+ .elb-pane-header {
1004
+ display: flex;
1005
+ align-items: flex-start;
1006
+ gap: 16px;
1007
+ flex-shrink: 0;
1008
+ }
1009
+ .elb-pane-header-content {
1010
+ flex: 1;
1011
+ display: flex;
1012
+ align-items: center;
1013
+ gap: 8px;
1014
+ min-width: 0;
1015
+ }
1016
+ .elb-pane-header-back {
1017
+ display: flex;
1018
+ align-items: center;
1019
+ justify-content: center;
1020
+ width: 28px;
1021
+ height: 28px;
1022
+ padding: 0;
1023
+ margin: 0;
1024
+ border: none;
1025
+ background: transparent;
1026
+ border-radius: 6px;
1027
+ cursor: pointer;
1028
+ color: var(--color-text);
1029
+ transition: all 0.15s ease;
1030
+ flex-shrink: 0;
1031
+ }
1032
+ @media (max-width: 799px) {
1033
+ .elb-pane-header-back {
1034
+ width: 44px;
1035
+ height: 44px;
1036
+ }
1037
+ }
1038
+ .elb-pane-header-back:hover:not(.is-disabled) {
1039
+ background: var(--bg-box);
1040
+ }
1041
+ .elb-pane-header-back:active:not(.is-disabled) {
1042
+ background: var(--bg-button-active);
1043
+ transform: scale(0.96);
1044
+ }
1045
+ .elb-pane-header-back.is-disabled {
1046
+ opacity: 0.3;
1047
+ cursor: default;
1048
+ }
1049
+ .elb-pane-header-back svg {
1050
+ display: block;
1051
+ }
1052
+ .elb-pane-header-title {
1053
+ font-size: 16px;
1054
+ font-weight: 600;
1055
+ color: var(--color-text);
1056
+ margin: 0;
1057
+ line-height: 1.5;
1058
+ display: flex;
1059
+ align-items: baseline;
1060
+ gap: 8px;
1061
+ flex: 1;
1062
+ min-width: 0;
1063
+ }
1064
+ .elb-pane-header-description {
1065
+ font-size: 12px;
1066
+ font-weight: 400;
1067
+ opacity: 0.7;
1068
+ color: var(--color-text-muted);
1069
+ white-space: nowrap;
1070
+ overflow: hidden;
1071
+ text-overflow: ellipsis;
1072
+ flex: 1;
1073
+ min-width: 0;
1074
+ }
1075
+ @media (max-width: 799px) {
1076
+ .elb-pane-header-description {
1077
+ flex: 1;
1078
+ max-width: none;
1079
+ mask-image:
1080
+ linear-gradient(
1081
+ to right,
1082
+ black 0%,
1083
+ black calc(100% - 40px),
1084
+ transparent 100%);
1085
+ -webkit-mask-image:
1086
+ linear-gradient(
1087
+ to right,
1088
+ black 0%,
1089
+ black calc(100% - 40px),
1090
+ transparent 100%);
1091
+ }
1092
+ }
1093
+ .elb-pane-header-action {
1094
+ flex-shrink: 0;
1095
+ padding: 6px 12px;
1096
+ font-size: 13px;
1097
+ font-weight: 500;
1098
+ color: var(--color-text-button);
1099
+ background: var(--bg-box);
1100
+ border: 1px solid var(--border-input);
1101
+ border-radius: 4px;
1102
+ cursor: pointer;
1103
+ transition: all 0.15s ease;
1104
+ }
1105
+ .elb-pane-header-action:hover {
1106
+ background: var(--bg-button-hover);
1107
+ border-color: var(--color-text);
1108
+ color: var(--color-text-button-hover);
1109
+ }
1110
+ .elb-pane-header-action:active {
1111
+ background: var(--bg-button-active);
1112
+ box-shadow: var(--shadow-button-active);
1113
+ }
1114
+ .elb-preview-footer {
1115
+ display: grid;
1116
+ grid-template-columns: repeat(4, 1fr);
1117
+ flex: 1;
1118
+ align-self: stretch;
1119
+ background: var(--bg-footer);
1120
+ }
1121
+ .elb-preview-btn {
1122
+ padding: 6px 8px;
1123
+ font-size: var(--font-size-toggle);
1124
+ font-weight: 600;
1125
+ color: var(--color-text-button);
1126
+ border: 0;
1127
+ background: transparent;
1128
+ transition: color 0.2s ease, background 0.2s ease;
1129
+ position: relative;
1130
+ cursor: pointer;
1131
+ text-align: center;
1132
+ margin: 0;
1133
+ height: 100%;
1134
+ display: flex;
1135
+ align-items: center;
1136
+ justify-content: center;
1137
+ }
1138
+ .elb-preview-btn:hover {
1139
+ color: var(--color-text-button-hover);
1140
+ background: var(--bg-button-hover);
1141
+ }
1142
+ .elb-preview-btn:active {
1143
+ background: var(--bg-button-active);
1144
+ }
1145
+ .elb-preview-btn:not(:last-child)::after {
1146
+ content: "";
1147
+ position: absolute;
1148
+ right: 0;
1149
+ top: 20%;
1150
+ height: 60%;
1151
+ width: 1px;
1152
+ background: var(--border-footer);
1153
+ opacity: 0.3;
1154
+ }
1155
+ .elb-preview-btn.highlight-globals {
1156
+ color: var(--highlight-globals);
1157
+ }
1158
+ .elb-preview-btn.highlight-context {
1159
+ color: var(--highlight-context);
1160
+ }
1161
+ .elb-preview-btn.highlight-entity {
1162
+ color: var(--highlight-entity);
1163
+ }
1164
+ .elb-preview-btn.highlight-property {
1165
+ color: var(--highlight-property);
1166
+ }
1167
+ .elb-preview-btn.highlight-action {
1168
+ color: var(--highlight-action);
1169
+ }
1170
+ .elb-mapping-input {
1171
+ width: 100%;
1172
+ font-family: var(--font-mono);
1173
+ font-size: 14px;
1174
+ padding: 10px 12px;
1175
+ background: var(--bg-input);
1176
+ border: 1px solid var(--border-input);
1177
+ border-radius: 4px;
1178
+ color: var(--color-text-input);
1179
+ outline: none;
1180
+ transition: border-color 0.15s ease, background-color 0.15s ease;
1181
+ }
1182
+ @media (max-width: 799px) {
1183
+ .elb-mapping-input {
1184
+ min-height: 44px;
1185
+ font-size: 16px;
1186
+ padding: 12px;
1187
+ }
1188
+ }
1189
+ .elb-mapping-input:hover:not(:disabled) {
1190
+ background: var(--bg-input-hover);
1191
+ }
1192
+ .elb-mapping-input:focus {
1193
+ border-color: var(--border-input-focus);
1194
+ background: var(--bg-input);
1195
+ }
1196
+ .elb-mapping-input::placeholder {
1197
+ color: var(--color-text-placeholder);
1198
+ opacity: 0.6;
1199
+ }
1200
+ .elb-mapping-input.is-disabled,
1201
+ .elb-mapping-input:disabled {
1202
+ background: var(--bg-header);
1203
+ color: var(--color-text-muted);
1204
+ cursor: not-allowed;
1205
+ border-color: var(--border-box);
1206
+ }
1207
+ .elb-mapping-input.is-convertible {
1208
+ cursor: pointer;
1209
+ background: rgba(59, 130, 246, 0.05);
1210
+ border-color: var(--color-primary);
1211
+ }
1212
+ .elb-mapping-input.is-convertible:hover {
1213
+ background: rgba(59, 130, 246, 0.1);
1214
+ }
1215
+ .elb-mapping-input.is-existing {
1216
+ border-color: var(--color-status-warning);
1217
+ background: rgba(245, 158, 11, 0.1);
1218
+ }
1219
+ .elb-mapping-input.is-error {
1220
+ border-color: var(--color-button-danger);
1221
+ background: rgba(239, 68, 68, 0.05);
1222
+ }
1223
+ .elb-mapping-input[type=number]::-webkit-inner-spin-button,
1224
+ .elb-mapping-input[type=number]::-webkit-outer-spin-button {
1225
+ -webkit-appearance: none;
1226
+ margin: 0;
1227
+ }
1228
+ .elb-mapping-input[type=number] {
1229
+ -moz-appearance: textfield;
1230
+ }
1231
+ .elb-mapping-input-with-button {
1232
+ display: flex;
1233
+ gap: 8px;
1234
+ align-items: stretch;
1235
+ }
1236
+ .elb-mapping-input-with-button .elb-mapping-input {
1237
+ flex: 1;
1238
+ min-width: 0;
1239
+ }
1240
+ .elb-mapping-input-button {
1241
+ flex-shrink: 0;
1242
+ min-width: 80px;
1243
+ padding: 0 16px;
1244
+ font-family: var(--font-family-base);
1245
+ font-size: var(--font-size-base);
1246
+ font-weight: var(--font-weight-semibold);
1247
+ color: var(--color-text-button);
1248
+ background: var(--bg-header);
1249
+ border: 1px solid var(--border-input);
1250
+ border-radius: var(--radius-button);
1251
+ cursor: pointer;
1252
+ transition:
1253
+ background-color 0.15s ease,
1254
+ border-color 0.15s ease,
1255
+ color 0.15s ease;
1256
+ white-space: nowrap;
1257
+ }
1258
+ @media (max-width: 799px) {
1259
+ .elb-mapping-input-button {
1260
+ min-height: 44px;
1261
+ padding: 0 16px;
1262
+ }
1263
+ }
1264
+ .elb-mapping-input-button:hover:not(:disabled) {
1265
+ background: var(--bg-button-hover);
1266
+ border-color: var(--color-text);
1267
+ color: var(--color-text-button-hover);
1268
+ }
1269
+ .elb-mapping-input-button:active:not(:disabled) {
1270
+ background: var(--bg-button-active);
1271
+ box-shadow: var(--shadow-button-active);
1272
+ }
1273
+ .elb-mapping-input-button:disabled {
1274
+ opacity: 0.5;
1275
+ cursor: not-allowed;
1276
+ }
1277
+ .elb-mapping-input-button:focus-visible {
1278
+ outline: 2px solid var(--border-input-focus);
1279
+ outline-offset: 2px;
1280
+ }
1281
+ .elb-mapping-enum-select {
1282
+ position: relative;
1283
+ width: 100%;
1284
+ }
1285
+ .elb-mapping-enum-select-input {
1286
+ width: 100%;
1287
+ font-family: var(--font-mono);
1288
+ font-size: 14px;
1289
+ padding: 10px 12px;
1290
+ background: var(--bg-input);
1291
+ border: 1px solid var(--border-input);
1292
+ border-radius: 4px;
1293
+ color: var(--color-text-input);
1294
+ outline: none;
1295
+ transition: border-color 0.15s ease, background-color 0.15s ease;
1296
+ }
1297
+ @media (max-width: 799px) {
1298
+ .elb-mapping-enum-select-input {
1299
+ min-height: 44px;
1300
+ font-size: 16px;
1301
+ padding: 12px;
1302
+ }
1303
+ }
1304
+ .elb-mapping-enum-select-input:hover:not(:disabled) {
1305
+ background: var(--bg-input-hover);
1306
+ }
1307
+ .elb-mapping-enum-select-input:focus,
1308
+ .elb-mapping-enum-select-input.is-open {
1309
+ border-color: var(--border-input-focus);
1310
+ background: var(--bg-input);
1311
+ }
1312
+ .elb-mapping-enum-select-input::placeholder {
1313
+ color: var(--color-text-placeholder);
1314
+ opacity: 0.6;
1315
+ }
1316
+ .elb-mapping-enum-select-input:disabled {
1317
+ background: var(--bg-header);
1318
+ color: var(--color-text-muted);
1319
+ cursor: not-allowed;
1320
+ border-color: var(--border-box);
1321
+ }
1322
+ .elb-mapping-enum-select-dropdown {
1323
+ position: absolute;
1324
+ top: calc(100% + 4px);
1325
+ left: 0;
1326
+ right: 0;
1327
+ background: var(--bg-dropdown);
1328
+ border: 1px solid var(--border-input);
1329
+ border-radius: 4px;
1330
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
1331
+ z-index: 1000;
1332
+ max-height: fit-content;
1333
+ overflow-y: visible;
1334
+ }
1335
+ .elb-mapping-enum-select-dropdown.scrollable {
1336
+ max-height: 200px;
1337
+ overflow-y: auto;
1338
+ }
1339
+ @media (max-width: 799px) {
1340
+ .elb-mapping-enum-select-dropdown.scrollable {
1341
+ max-height: 160px;
1342
+ }
1343
+ }
1344
+ .elb-mapping-enum-select-option {
1345
+ padding: 10px 12px;
1346
+ font-family: var(--font-mono);
1347
+ font-size: 14px;
1348
+ line-height: 1.4;
1349
+ color: var(--color-text);
1350
+ cursor: pointer;
1351
+ transition: background-color 0.15s ease;
1352
+ border-bottom: 1px solid var(--border-box);
1353
+ }
1354
+ .elb-mapping-enum-select-option:last-child {
1355
+ border-bottom: none;
1356
+ }
1357
+ .elb-mapping-enum-select-option:hover,
1358
+ .elb-mapping-enum-select-option.is-highlighted {
1359
+ background: var(--bg-input-hover);
1360
+ }
1361
+ .elb-mapping-enum-select-option.is-selected {
1362
+ background: rgba(59, 130, 246, 0.1);
1363
+ color: var(--color-primary);
1364
+ font-weight: var(--font-weight-semibold);
1365
+ }
1366
+ .elb-mapping-enum-select-option:active {
1367
+ background: var(--bg-header);
1368
+ }
1369
+ @media (max-width: 799px) {
1370
+ .elb-mapping-enum-select-option {
1371
+ padding: 12px;
1372
+ font-size: 16px;
1373
+ min-height: 44px;
1374
+ }
1375
+ }
1376
+ .elb-mapping-enum-select-empty {
1377
+ padding: 16px 12px;
1378
+ text-align: center;
1379
+ font-size: 13px;
1380
+ color: var(--color-text-muted);
1381
+ font-style: italic;
1382
+ }
1383
+ @media (max-width: 799px) {
1384
+ .elb-mapping-enum-select-empty {
1385
+ padding: 18px 12px;
1386
+ font-size: 14px;
1387
+ }
1388
+ }
1389
+ .elb-auto-select {
1390
+ position: relative;
1391
+ width: 100%;
1392
+ }
1393
+ .elb-auto-select-input-wrapper {
1394
+ position: relative;
1395
+ width: 100%;
1396
+ }
1397
+ .elb-auto-select-input {
1398
+ width: 100%;
1399
+ max-width: 100%;
1400
+ padding: 8px 12px;
1401
+ padding-right: 36px;
1402
+ font-family: var(--font-family-base);
1403
+ font-size: var(--font-size-base);
1404
+ color: var(--color-text-input);
1405
+ background: var(--bg-input);
1406
+ border: 1px solid var(--border-input);
1407
+ border-radius: var(--radius-button);
1408
+ outline: none;
1409
+ transition: all 0.15s;
1410
+ box-sizing: border-box;
1411
+ }
1412
+ .elb-auto-select-input:hover {
1413
+ background: var(--bg-input-hover);
1414
+ }
1415
+ .elb-auto-select-input:focus {
1416
+ border-color: var(--border-input-focus);
1417
+ }
1418
+ .elb-auto-select-input::placeholder {
1419
+ color: var(--color-text-placeholder);
1420
+ }
1421
+ .elb-auto-select-clear {
1422
+ position: absolute;
1423
+ right: 8px;
1424
+ top: 50%;
1425
+ transform: translateY(-50%);
1426
+ width: 20px;
1427
+ height: 20px;
1428
+ padding: 0;
1429
+ border: none;
1430
+ background: transparent;
1431
+ color: var(--color-text-muted);
1432
+ font-size: 24px;
1433
+ line-height: 1;
1434
+ cursor: pointer;
1435
+ display: flex;
1436
+ align-items: center;
1437
+ justify-content: center;
1438
+ border-radius: 4px;
1439
+ transition: all 0.15s;
1440
+ }
1441
+ .elb-auto-select-clear:hover {
1442
+ color: var(--color-text);
1443
+ background: var(--bg-input-hover);
1444
+ }
1445
+ .elb-auto-select-dropdown {
1446
+ position: absolute;
1447
+ top: calc(100% + 4px);
1448
+ left: 0;
1449
+ right: 0;
1450
+ max-height: fit-content;
1451
+ overflow-y: visible;
1452
+ background: var(--bg-dropdown);
1453
+ border: 1px solid var(--border-input);
1454
+ border-radius: var(--radius-button);
1455
+ box-shadow: var(--shadow-dropdown);
1456
+ z-index: 1000;
1457
+ }
1458
+ .elb-auto-select-dropdown-fixed {
1459
+ position: fixed;
1460
+ right: auto;
1461
+ }
1462
+ .elb-auto-select-dropdown.scrollable {
1463
+ max-height: 200px;
1464
+ overflow-y: auto;
1465
+ }
1466
+ .elb-auto-select-option {
1467
+ padding: 8px 12px;
1468
+ font-family: var(--font-family-base);
1469
+ font-size: var(--font-size-base);
1470
+ line-height: var(--line-height-base);
1471
+ color: var(--color-text);
1472
+ cursor: pointer;
1473
+ transition: background 0.15s;
1474
+ }
1475
+ .elb-auto-select-option:hover {
1476
+ background: var(--bg-dropdown-option-hover);
1477
+ }
1478
+ .elb-auto-select-option.highlighted {
1479
+ background: var(--bg-dropdown-option-highlighted);
1480
+ }
1481
+ .elb-auto-select-option.elb-auto-select-no-results {
1482
+ color: var(--color-text-muted);
1483
+ cursor: default;
1484
+ }
1485
+ .elb-auto-select-option.elb-auto-select-no-results:hover {
1486
+ background: transparent;
1487
+ }
1488
+ .elb-auto-select-create-label {
1489
+ color: var(--color-text-muted);
1490
+ font-style: italic;
1491
+ font-size: 0.9em;
1492
+ }
1493
+ .elb-code-box {
1494
+ display: flex;
1495
+ flex-direction: column;
1496
+ }
1497
+ .elb-code-snippet {
1498
+ min-height: var(--height-snippet-min);
1499
+ }
1500
+ .elb-code-snippet .elb-explorer-content {
1501
+ padding: var(--spacing-snippet);
1502
+ }
1503
+ .elb-preview-content {
1504
+ flex: 1;
1505
+ min-height: 0;
1506
+ position: relative;
1507
+ }
1508
+ .elb-preview-iframe {
1509
+ position: absolute;
1510
+ top: 0;
1511
+ left: 0;
1512
+ width: 100%;
1513
+ height: 100%;
1514
+ border: none;
1515
+ display: block;
1516
+ }
1517
+ .token.attr-name {
1518
+ color: white !important;
1519
+ }
1520
+ .token.attr-name[data-elb],
1521
+ .token.attr-name[data-elbaction],
1522
+ .token.attr-name[data-elbglobals],
1523
+ .token.attr-name[data-elbcontext],
1524
+ .token.attr-name[data-elbproperty] {
1525
+ color: var(--highlight-property) !important;
1526
+ }
1527
+ @container grid-container (max-width: 799px) {
1528
+ .elb-preview-content {
1529
+ min-height: 300px;
1530
+ }
1531
+ }
1532
+ .elb-mapping-map-add-button,
1533
+ .elb-mapping-map-add-row-button {
1534
+ width: 100%;
1535
+ justify-content: center;
1536
+ }
1537
+ .elb-mapping-map-add-row-button {
1538
+ margin-top: 8px;
1539
+ }
1540
+ .elb-mapping-map-content {
1541
+ display: flex;
1542
+ flex-direction: column;
1543
+ gap: 12px;
1544
+ }
1545
+ .elb-mapping-map-entries {
1546
+ display: flex;
1547
+ flex-direction: column;
1548
+ gap: 12px;
1549
+ }
1550
+ .elb-mapping-map-entry {
1551
+ display: grid;
1552
+ grid-template-columns: minmax(120px, 200px) minmax(100px, 120px) 1fr auto;
1553
+ gap: 12px;
1554
+ align-items: start;
1555
+ }
1556
+ @media (max-width: 799px) {
1557
+ .elb-mapping-map-entry {
1558
+ grid-template-columns: 1fr;
1559
+ gap: 8px;
1560
+ }
1561
+ }
1562
+ .elb-mapping-map-entry-advanced {
1563
+ grid-template-columns: minmax(120px, 200px) minmax(100px, 120px) 1fr auto;
1564
+ grid-template-rows: auto auto;
1565
+ }
1566
+ @media (max-width: 799px) {
1567
+ .elb-mapping-map-entry-advanced {
1568
+ grid-template-columns: 1fr;
1569
+ }
1570
+ }
1571
+ .elb-mapping-map-entry-advanced .elb-mapping-map-delete-wrapper {
1572
+ grid-row: 1;
1573
+ grid-column: 4;
1574
+ }
1575
+ @media (max-width: 799px) {
1576
+ .elb-mapping-map-entry-advanced .elb-mapping-map-delete-wrapper {
1577
+ grid-row: auto;
1578
+ grid-column: auto;
1579
+ }
1580
+ }
1581
+ .elb-mapping-map-key {
1582
+ padding: 8px 12px;
1583
+ font-family: var(--font-family-base);
1584
+ font-size: var(--font-size-base);
1585
+ color: var(--color-text-input);
1586
+ background: var(--bg-input);
1587
+ border: 1px solid var(--border-input);
1588
+ border-radius: var(--radius-button);
1589
+ outline: none;
1590
+ transition: all 0.15s;
1591
+ }
1592
+ @media (max-width: 799px) {
1593
+ .elb-mapping-map-key {
1594
+ min-height: 44px;
1595
+ font-size: 16px;
1596
+ padding: 12px;
1597
+ }
1598
+ }
1599
+ .elb-mapping-map-key:hover {
1600
+ background: var(--bg-input-hover);
1601
+ }
1602
+ .elb-mapping-map-key:focus {
1603
+ border-color: var(--border-input-focus);
1604
+ }
1605
+ .elb-mapping-map-key-empty {
1606
+ border-color: var(--color-status-warning);
1607
+ }
1608
+ .elb-mapping-map-key-duplicate {
1609
+ border-color: var(--color-status-warning);
1610
+ }
1611
+ .elb-mapping-map-type-select {
1612
+ padding: 8px 12px;
1613
+ padding-right: 32px;
1614
+ font-family: var(--font-family-base);
1615
+ font-size: var(--font-size-base);
1616
+ color: var(--color-text-input);
1617
+ background: var(--bg-input);
1618
+ border: 1px solid var(--border-input);
1619
+ border-radius: var(--radius-button);
1620
+ outline: none;
1621
+ transition: all 0.15s;
1622
+ cursor: pointer;
1623
+ appearance: none;
1624
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
1625
+ background-repeat: no-repeat;
1626
+ background-position: right 8px center;
1627
+ }
1628
+ @media (max-width: 799px) {
1629
+ .elb-mapping-map-type-select {
1630
+ min-height: 44px;
1631
+ font-size: 16px;
1632
+ padding: 12px;
1633
+ padding-right: 40px;
1634
+ }
1635
+ }
1636
+ .elb-mapping-map-type-select:hover {
1637
+ background-color: var(--bg-input-hover);
1638
+ }
1639
+ .elb-mapping-map-type-select:focus {
1640
+ border-color: var(--border-input-focus);
1641
+ }
1642
+ .elb-mapping-map-value-simple {
1643
+ padding: 8px 12px;
1644
+ font-family: var(--font-family-base);
1645
+ font-size: var(--font-size-base);
1646
+ color: var(--color-text-input);
1647
+ background: var(--bg-input);
1648
+ border: 1px solid var(--border-input);
1649
+ border-radius: var(--radius-button);
1650
+ outline: none;
1651
+ transition: all 0.15s;
1652
+ }
1653
+ @media (max-width: 799px) {
1654
+ .elb-mapping-map-value-simple {
1655
+ min-height: 44px;
1656
+ font-size: 16px;
1657
+ padding: 12px;
1658
+ }
1659
+ }
1660
+ .elb-mapping-map-value-simple:hover {
1661
+ background: var(--bg-input-hover);
1662
+ }
1663
+ .elb-mapping-map-value-simple:focus {
1664
+ border-color: var(--border-input-focus);
1665
+ }
1666
+ .elb-mapping-map-value-advanced {
1667
+ grid-column: 1/-1;
1668
+ grid-row: 2;
1669
+ margin-top: 8px;
1670
+ padding: 12px;
1671
+ background: var(--bg-box);
1672
+ border: 1px solid var(--border-input);
1673
+ border-radius: var(--radius-button);
1674
+ }
1675
+ @media (max-width: 799px) {
1676
+ .elb-mapping-map-value-advanced {
1677
+ grid-column: auto;
1678
+ grid-row: auto;
1679
+ margin-top: 0;
1680
+ }
1681
+ }
1682
+ .elb-mapping-map-delete-wrapper {
1683
+ display: flex;
1684
+ align-items: flex-start;
1685
+ }
1686
+ .elb-mapping-set-add-button,
1687
+ .elb-mapping-set-add-row-button {
1688
+ width: 100%;
1689
+ justify-content: center;
1690
+ }
1691
+ .elb-mapping-set-add-row-button {
1692
+ margin-top: 8px;
1693
+ }
1694
+ .elb-mapping-set-content {
1695
+ display: flex;
1696
+ flex-direction: column;
1697
+ gap: 12px;
1698
+ }
1699
+ .elb-mapping-set-entries {
1700
+ display: flex;
1701
+ flex-direction: column;
1702
+ gap: 12px;
1703
+ }
1704
+ .elb-mapping-set-entry {
1705
+ display: grid;
1706
+ grid-template-columns: auto minmax(100px, 120px) 1fr auto;
1707
+ gap: 12px;
1708
+ align-items: start;
1709
+ transition: opacity 0.2s, transform 0.2s;
1710
+ }
1711
+ @media (max-width: 799px) {
1712
+ .elb-mapping-set-entry {
1713
+ grid-template-columns: 1fr;
1714
+ gap: 8px;
1715
+ }
1716
+ }
1717
+ .elb-mapping-set-entry-dragging {
1718
+ opacity: 0.4;
1719
+ }
1720
+ .elb-mapping-set-entry-drag-over {
1721
+ border-top: 2px solid var(--color-button-primary);
1722
+ padding-top: 4px;
1723
+ }
1724
+ .elb-mapping-set-entry-advanced {
1725
+ grid-template-rows: auto auto;
1726
+ }
1727
+ @media (max-width: 799px) {
1728
+ .elb-mapping-set-entry-advanced {
1729
+ grid-template-columns: 1fr;
1730
+ }
1731
+ }
1732
+ .elb-mapping-set-entry-advanced .elb-mapping-set-delete-wrapper {
1733
+ grid-row: 1;
1734
+ grid-column: 4;
1735
+ }
1736
+ @media (max-width: 799px) {
1737
+ .elb-mapping-set-entry-advanced .elb-mapping-set-delete-wrapper {
1738
+ grid-row: auto;
1739
+ grid-column: auto;
1740
+ }
1741
+ }
1742
+ .elb-mapping-set-entry-advanced .elb-mapping-set-drag-handle {
1743
+ grid-row: 1;
1744
+ grid-column: 1;
1745
+ }
1746
+ @media (max-width: 799px) {
1747
+ .elb-mapping-set-entry-advanced .elb-mapping-set-drag-handle {
1748
+ grid-row: auto;
1749
+ grid-column: auto;
1750
+ }
1751
+ }
1752
+ .elb-mapping-set-drag-handle {
1753
+ display: flex;
1754
+ align-items: center;
1755
+ justify-content: center;
1756
+ width: 24px;
1757
+ height: 38px;
1758
+ color: var(--color-text-muted);
1759
+ cursor: grab;
1760
+ user-select: none;
1761
+ transition: color 0.15s;
1762
+ }
1763
+ @media (max-width: 799px) {
1764
+ .elb-mapping-set-drag-handle {
1765
+ width: 44px;
1766
+ height: 44px;
1767
+ }
1768
+ }
1769
+ .elb-mapping-set-drag-handle:hover {
1770
+ color: var(--color-text-primary);
1771
+ }
1772
+ .elb-mapping-set-drag-handle:active {
1773
+ cursor: grabbing;
1774
+ }
1775
+ .elb-mapping-set-type-select {
1776
+ padding: 8px 12px;
1777
+ padding-right: 32px;
1778
+ font-family: var(--font-family-base);
1779
+ font-size: var(--font-size-base);
1780
+ color: var(--color-text-input);
1781
+ background: var(--bg-input);
1782
+ border: 1px solid var(--border-input);
1783
+ border-radius: var(--radius-button);
1784
+ outline: none;
1785
+ transition: all 0.15s;
1786
+ cursor: pointer;
1787
+ appearance: none;
1788
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
1789
+ background-repeat: no-repeat;
1790
+ background-position: right 8px center;
1791
+ }
1792
+ @media (max-width: 799px) {
1793
+ .elb-mapping-set-type-select {
1794
+ min-height: 44px;
1795
+ font-size: 16px;
1796
+ padding: 12px;
1797
+ padding-right: 40px;
1798
+ }
1799
+ }
1800
+ .elb-mapping-set-type-select:hover {
1801
+ background-color: var(--bg-input-hover);
1802
+ }
1803
+ .elb-mapping-set-type-select:focus {
1804
+ border-color: var(--border-input-focus);
1805
+ }
1806
+ .elb-mapping-set-value-simple {
1807
+ padding: 8px 12px;
1808
+ font-family: var(--font-family-base);
1809
+ font-size: var(--font-size-base);
1810
+ color: var(--color-text-input);
1811
+ background: var(--bg-input);
1812
+ border: 1px solid var(--border-input);
1813
+ border-radius: var(--radius-button);
1814
+ outline: none;
1815
+ transition: all 0.15s;
1816
+ }
1817
+ @media (max-width: 799px) {
1818
+ .elb-mapping-set-value-simple {
1819
+ min-height: 44px;
1820
+ font-size: 16px;
1821
+ padding: 12px;
1822
+ }
1823
+ }
1824
+ .elb-mapping-set-value-simple:hover {
1825
+ background: var(--bg-input-hover);
1826
+ }
1827
+ .elb-mapping-set-value-simple:focus {
1828
+ border-color: var(--border-input-focus);
1829
+ }
1830
+ .elb-mapping-set-value-advanced {
1831
+ grid-column: 2/-1;
1832
+ grid-row: 2;
1833
+ margin-top: 8px;
1834
+ padding: 12px;
1835
+ background: var(--bg-box);
1836
+ border: 1px solid var(--border-input);
1837
+ border-radius: var(--radius-button);
1838
+ }
1839
+ @media (max-width: 799px) {
1840
+ .elb-mapping-set-value-advanced {
1841
+ grid-column: auto;
1842
+ grid-row: auto;
1843
+ margin-top: 0;
1844
+ }
1845
+ }
1846
+ .elb-mapping-set-delete-wrapper {
1847
+ display: flex;
1848
+ align-items: flex-start;
1849
+ }
1850
+ .elb-checkbox-collapsible-content {
1851
+ margin-top: 16px;
1852
+ margin-left: 24px;
1853
+ width: calc(100% - 24px);
1854
+ max-width: calc(100% - 24px);
1855
+ overflow: hidden;
1856
+ }
1857
+ .elb-mapping-loop-add-button {
1858
+ width: 100%;
1859
+ justify-content: center;
1860
+ }
1861
+ .elb-mapping-loop-remove-button {
1862
+ width: 100%;
1863
+ justify-content: center;
1864
+ margin-top: 16px;
1865
+ }
1866
+ .elb-mapping-loop-content {
1867
+ display: flex;
1868
+ flex-direction: column;
1869
+ gap: 20px;
1870
+ }
1871
+ .elb-mapping-loop-label {
1872
+ display: block;
1873
+ font-size: var(--font-size-base);
1874
+ color: var(--color-text-label);
1875
+ font-weight: var(--font-weight-semibold);
1876
+ margin-bottom: 8px;
1877
+ }
1878
+ .elb-mapping-loop-hint {
1879
+ font-size: calc(var(--font-size-base) - 1px);
1880
+ color: var(--color-text-muted);
1881
+ margin-top: 4px;
1882
+ line-height: 1.4;
1883
+ }
1884
+ .elb-mapping-loop-source {
1885
+ display: flex;
1886
+ flex-direction: column;
1887
+ }
1888
+ .elb-mapping-loop-source-input {
1889
+ padding: 8px 12px;
1890
+ font-family: var(--font-family-base);
1891
+ font-size: var(--font-size-base);
1892
+ color: var(--color-text-input);
1893
+ background: var(--bg-input);
1894
+ border: 1px solid var(--border-input);
1895
+ border-radius: var(--radius-button);
1896
+ outline: none;
1897
+ transition: all 0.15s;
1898
+ }
1899
+ .elb-mapping-loop-source-input:hover {
1900
+ background: var(--bg-input-hover);
1901
+ }
1902
+ .elb-mapping-loop-source-input:focus {
1903
+ border-color: var(--border-input-focus);
1904
+ }
1905
+ .elb-mapping-loop-source-input::placeholder {
1906
+ color: var(--color-text-muted);
1907
+ opacity: 0.6;
1908
+ }
1909
+ .elb-mapping-loop-transform {
1910
+ display: flex;
1911
+ flex-direction: column;
1912
+ }
1913
+ .elb-mapping-loop-transform-header {
1914
+ margin-bottom: 12px;
1915
+ }
1916
+ .elb-mapping-loop-transform-form {
1917
+ padding: 16px;
1918
+ background: var(--bg-box);
1919
+ border: 1px dashed var(--border-input);
1920
+ border-radius: var(--radius-button);
1921
+ }
1922
+ .elb-loop-item-mapping-section {
1923
+ margin-top: 24px;
1924
+ }
1925
+ @media (max-width: 799px) {
1926
+ .elb-loop-item-mapping-section .elb-mapping-value-type-section-title {
1927
+ font-size: 11px;
1928
+ }
1929
+ }
1930
+ .elb-mapping-breadcrumb {
1931
+ display: flex;
1932
+ align-items: center;
1933
+ font-size: 11px;
1934
+ text-transform: lowercase;
1935
+ letter-spacing: 0.02em;
1936
+ flex: 1;
1937
+ min-width: 0;
1938
+ }
1939
+ .elb-mapping-breadcrumb-list {
1940
+ display: flex;
1941
+ align-items: center;
1942
+ list-style: none;
1943
+ margin: 0;
1944
+ padding: 0;
1945
+ gap: 8px;
1946
+ flex-wrap: nowrap;
1947
+ overflow: hidden;
1948
+ }
1949
+ @media (max-width: 799px) {
1950
+ .elb-mapping-breadcrumb-list {
1951
+ gap: 4px;
1952
+ overflow-x: auto;
1953
+ overflow-y: hidden;
1954
+ -webkit-overflow-scrolling: touch;
1955
+ scrollbar-width: none;
1956
+ }
1957
+ .elb-mapping-breadcrumb-list::-webkit-scrollbar {
1958
+ display: none;
1959
+ }
1960
+ }
1961
+ .elb-mapping-breadcrumb-item {
1962
+ display: flex;
1963
+ align-items: center;
1964
+ gap: 8px;
1965
+ flex-shrink: 1;
1966
+ min-width: 0;
1967
+ }
1968
+ @media (max-width: 799px) {
1969
+ .elb-mapping-breadcrumb-item {
1970
+ gap: 4px;
1971
+ flex-shrink: 0;
1972
+ }
1973
+ }
1974
+ .elb-mapping-breadcrumb-link {
1975
+ background: none;
1976
+ border: none;
1977
+ padding: 0;
1978
+ color: var(--color-text);
1979
+ cursor: pointer;
1980
+ font-size: 11px;
1981
+ font-weight: normal;
1982
+ font-family: var(--font-family-base);
1983
+ text-decoration: none;
1984
+ white-space: nowrap;
1985
+ overflow: hidden;
1986
+ text-overflow: ellipsis;
1987
+ }
1988
+ @media (max-width: 799px) {
1989
+ .elb-mapping-breadcrumb-link {
1990
+ max-width: none;
1991
+ overflow: visible;
1992
+ text-overflow: clip;
1993
+ }
1994
+ }
1995
+ .elb-mapping-breadcrumb-link:hover {
1996
+ text-decoration: underline;
1997
+ }
1998
+ .elb-mapping-breadcrumb-link.is-root {
1999
+ font-weight: normal;
2000
+ }
2001
+ .elb-mapping-breadcrumb-current {
2002
+ padding: 0;
2003
+ color: var(--color-text);
2004
+ font-weight: var(--font-weight-semibold);
2005
+ }
2006
+ .elb-mapping-breadcrumb-separator {
2007
+ color: var(--color-text-muted);
2008
+ font-size: 11px;
2009
+ user-select: none;
2010
+ }
2011
+ .elb-mapping-tab {
2012
+ display: flex;
2013
+ align-items: center;
2014
+ background: var(--bg-box);
2015
+ border: 1px solid var(--border-box);
2016
+ border-bottom: none;
2017
+ border-radius: var(--radius-button) var(--radius-button) 0 0;
2018
+ margin-right: 2px;
2019
+ overflow: hidden;
2020
+ min-width: 120px;
2021
+ max-width: 200px;
2022
+ flex-shrink: 0;
2023
+ }
2024
+ @media (max-width: 799px) {
2025
+ .elb-mapping-tab {
2026
+ min-width: 80px;
2027
+ max-width: 120px;
2028
+ }
2029
+ }
2030
+ .elb-mapping-tab.is-active {
2031
+ background: var(--bg-button-active);
2032
+ border-bottom: 2px solid var(--color-button-primary);
2033
+ z-index: 1;
2034
+ }
2035
+ .elb-mapping-tab.is-active .elb-mapping-tab-button {
2036
+ color: var(--color-text-button-active);
2037
+ }
2038
+ .elb-mapping-tab-button {
2039
+ flex: 1;
2040
+ display: flex;
2041
+ align-items: center;
2042
+ gap: 6px;
2043
+ padding: 6px 10px;
2044
+ background: none;
2045
+ border: none;
2046
+ cursor: pointer;
2047
+ font-size: var(--font-size-label);
2048
+ font-family: var(--font-family-base);
2049
+ color: var(--color-text-button);
2050
+ text-align: left;
2051
+ transition: color 0.15s ease;
2052
+ }
2053
+ .elb-mapping-tab-button:hover {
2054
+ color: var(--color-text-button-hover);
2055
+ }
2056
+ .elb-mapping-tab-label {
2057
+ flex: 1;
2058
+ overflow: hidden;
2059
+ text-overflow: ellipsis;
2060
+ white-space: nowrap;
2061
+ }
2062
+ .elb-mapping-tab-type {
2063
+ font-size: 10px;
2064
+ padding: 2px 4px;
2065
+ background: var(--bg-button-group);
2066
+ border-radius: 3px;
2067
+ color: var(--color-text-muted);
2068
+ text-transform: uppercase;
2069
+ }
2070
+ .elb-mapping-tab-close {
2071
+ padding: 4px 8px;
2072
+ background: none;
2073
+ border: none;
2074
+ cursor: pointer;
2075
+ font-size: 18px;
2076
+ line-height: 1;
2077
+ color: var(--color-text-muted);
2078
+ transition: color 0.15s ease;
2079
+ }
2080
+ .elb-mapping-tab-close:hover {
2081
+ color: var(--color-button-danger);
2082
+ }
2083
+ .elb-mapping-tab-bar {
2084
+ display: flex;
2085
+ border-bottom: 1px solid var(--border-box);
2086
+ background: var(--bg-header);
2087
+ overflow: hidden;
2088
+ }
2089
+ .elb-mapping-tab-bar-scroll {
2090
+ display: flex;
2091
+ overflow-x: auto;
2092
+ overflow-y: hidden;
2093
+ scroll-behavior: smooth;
2094
+ scrollbar-width: thin;
2095
+ padding-bottom: 2px;
2096
+ }
2097
+ @media (max-width: 799px) {
2098
+ .elb-mapping-tab-bar-scroll {
2099
+ scrollbar-width: none;
2100
+ }
2101
+ .elb-mapping-tab-bar-scroll::-webkit-scrollbar {
2102
+ display: none;
2103
+ }
2104
+ }
2105
+ .elb-mapping-tab-bar-scroll::-webkit-scrollbar {
2106
+ height: 6px;
2107
+ }
2108
+ .elb-mapping-tab-bar-scroll::-webkit-scrollbar-track {
2109
+ background: var(--bg-header);
2110
+ }
2111
+ .elb-mapping-tab-bar-scroll::-webkit-scrollbar-thumb {
2112
+ background: var(--border-box);
2113
+ border-radius: 3px;
2114
+ }
2115
+ .elb-mapping-tab-bar-scroll::-webkit-scrollbar-thumb:hover {
2116
+ background: var(--border-box);
2117
+ }
2118
+ .elb-mapping-navigation-header {
2119
+ display: flex;
2120
+ align-items: center;
2121
+ justify-content: space-between;
2122
+ padding: 8px 12px;
2123
+ background: var(--bg-header);
2124
+ border-bottom: 1px solid var(--border-box);
2125
+ gap: 12px;
2126
+ }
2127
+ @media (max-width: 799px) {
2128
+ .elb-mapping-navigation-header {
2129
+ padding: 6px 8px;
2130
+ gap: 8px;
2131
+ flex-wrap: wrap;
2132
+ }
2133
+ }
2134
+ .elb-mapping-navigation-left {
2135
+ display: flex;
2136
+ align-items: center;
2137
+ gap: 12px;
2138
+ flex: 1;
2139
+ min-width: 0;
2140
+ }
2141
+ .elb-mapping-navigation-right {
2142
+ display: flex;
2143
+ align-items: center;
2144
+ gap: 8px;
2145
+ }
2146
+ .elb-mapping-pane-type {
2147
+ font-size: 10px;
2148
+ color: var(--color-text-muted);
2149
+ font-weight: 400;
2150
+ padding-left: 6px;
2151
+ opacity: 0.5;
2152
+ text-transform: lowercase;
2153
+ }
2154
+ .elb-mapping-tree-toggle-button {
2155
+ display: flex;
2156
+ align-items: center;
2157
+ justify-content: center;
2158
+ width: 32px;
2159
+ height: 28px;
2160
+ padding: 0;
2161
+ background: none;
2162
+ border: none;
2163
+ border-radius: 4px;
2164
+ cursor: pointer;
2165
+ font-size: 18px;
2166
+ line-height: 1;
2167
+ color: var(--color-text);
2168
+ }
2169
+ .elb-mapping-tree-toggle-button:hover {
2170
+ background: var(--bg-button-hover);
2171
+ }
2172
+ .elb-mapping-code-toggle-button {
2173
+ position: relative;
2174
+ display: inline-grid;
2175
+ height: 28px;
2176
+ padding: 0 10px;
2177
+ background: none;
2178
+ border: 1px solid var(--border-color);
2179
+ border-radius: 4px;
2180
+ cursor: pointer;
2181
+ font-size: 12px;
2182
+ font-family: var(--font-family-base);
2183
+ font-weight: 500;
2184
+ color: var(--color-text-button);
2185
+ transition: all 0.15s ease;
2186
+ }
2187
+ .elb-mapping-code-toggle-button::before {
2188
+ content: "Visual";
2189
+ grid-area: 1/1;
2190
+ visibility: hidden;
2191
+ }
2192
+ .elb-mapping-code-toggle-button span {
2193
+ grid-area: 1/1;
2194
+ display: flex;
2195
+ align-items: center;
2196
+ justify-content: center;
2197
+ }
2198
+ .elb-mapping-code-toggle-button:hover {
2199
+ background: var(--bg-button-hover);
2200
+ color: var(--color-text-button-hover);
2201
+ border-color: var(--color-text);
2202
+ }
2203
+ .elb-mapping-action-button {
2204
+ display: flex;
2205
+ align-items: center;
2206
+ justify-content: center;
2207
+ padding: 4px 12px;
2208
+ background: none;
2209
+ border: 1px solid var(--border-box);
2210
+ border-radius: 4px;
2211
+ cursor: pointer;
2212
+ font-size: 12px;
2213
+ font-family: var(--font-family-base);
2214
+ font-weight: 500;
2215
+ color: var(--color-text);
2216
+ transition: all 0.15s ease;
2217
+ }
2218
+ .elb-mapping-action-button:hover {
2219
+ background: var(--bg-button-hover);
2220
+ border-color: var(--border-input);
2221
+ }
2222
+ .elb-validation-warning-badge {
2223
+ display: flex;
2224
+ align-items: center;
2225
+ gap: 6px;
2226
+ padding: 4px 10px;
2227
+ background: rgba(245, 158, 11, 0.1);
2228
+ border: 1px solid var(--color-status-warning);
2229
+ border-radius: 12px;
2230
+ cursor: pointer;
2231
+ transition: all 0.15s ease;
2232
+ margin-left: 8px;
2233
+ }
2234
+ .elb-validation-warning-badge:hover {
2235
+ background: rgba(245, 158, 11, 0.2);
2236
+ border-color: var(--color-button-danger);
2237
+ transform: scale(1.05);
2238
+ }
2239
+ .elb-validation-warning-icon {
2240
+ font-size: 14px;
2241
+ line-height: 1;
2242
+ color: var(--color-status-warning);
2243
+ }
2244
+ .elb-validation-warning-count {
2245
+ font-size: 12px;
2246
+ font-weight: 600;
2247
+ color: var(--color-status-warning);
2248
+ line-height: 1;
2249
+ }
2250
+ .elb-mapping-name-input {
2251
+ width: 100%;
2252
+ font-family: var(--font-mono);
2253
+ font-size: 14px;
2254
+ padding: 10px 12px;
2255
+ background: var(--bg-input);
2256
+ border: 1px solid var(--border-input);
2257
+ border-radius: 4px;
2258
+ color: var(--color-text-input);
2259
+ outline: none;
2260
+ transition: border-color 0.15s ease;
2261
+ }
2262
+ .elb-mapping-name-input:hover {
2263
+ background: var(--bg-input-hover);
2264
+ }
2265
+ .elb-mapping-name-input:focus {
2266
+ border-color: var(--border-input-focus);
2267
+ }
2268
+ .elb-mapping-name-input::placeholder {
2269
+ color: var(--color-text-placeholder);
2270
+ opacity: 0.6;
2271
+ }
2272
+ .elb-mapping-name-examples {
2273
+ margin-top: 24px;
2274
+ padding: 16px;
2275
+ background: var(--bg-header);
2276
+ border: 1px solid var(--border-box);
2277
+ border-radius: 4px;
2278
+ }
2279
+ .elb-mapping-name-examples-title {
2280
+ font-size: 13px;
2281
+ font-weight: 600;
2282
+ color: var(--color-text);
2283
+ margin-bottom: 8px;
2284
+ }
2285
+ .elb-mapping-name-examples-list {
2286
+ margin: 0;
2287
+ padding: 0 0 0 20px;
2288
+ list-style: disc;
2289
+ }
2290
+ .elb-mapping-name-examples-list li {
2291
+ font-size: 12px;
2292
+ color: var(--color-text-muted);
2293
+ margin-bottom: 6px;
2294
+ line-height: 1.4;
2295
+ }
2296
+ .elb-mapping-name-examples-list li:last-child {
2297
+ margin-bottom: 0;
2298
+ }
2299
+ .elb-mapping-name-examples-list li code {
2300
+ font-family: var(--font-mono);
2301
+ font-size: 13px;
2302
+ color: var(--color-text);
2303
+ background: var(--bg-box);
2304
+ padding: 2px 6px;
2305
+ border-radius: 3px;
2306
+ border: 1px solid var(--border-box);
2307
+ }
2308
+ .elb-mapping-batch-input {
2309
+ width: 100%;
2310
+ max-width: 300px;
2311
+ font-family: var(--font-mono);
2312
+ font-size: 14px;
2313
+ padding: 10px 12px;
2314
+ background: var(--bg-input);
2315
+ border: 1px solid var(--border-input);
2316
+ border-radius: 4px;
2317
+ color: var(--color-text-input);
2318
+ outline: none;
2319
+ transition: border-color 0.15s ease;
2320
+ }
2321
+ .elb-mapping-batch-input:hover {
2322
+ background: var(--bg-input-hover);
2323
+ }
2324
+ .elb-mapping-batch-input:focus {
2325
+ border-color: var(--border-input-focus);
2326
+ }
2327
+ .elb-mapping-batch-input::placeholder {
2328
+ color: var(--color-text-placeholder);
2329
+ opacity: 0.6;
2330
+ }
2331
+ .elb-mapping-batch-input::-webkit-inner-spin-button,
2332
+ .elb-mapping-batch-input::-webkit-outer-spin-button {
2333
+ -webkit-appearance: none;
2334
+ margin: 0;
2335
+ }
2336
+ .elb-mapping-batch-input[type=number] {
2337
+ -moz-appearance: textfield;
2338
+ }
2339
+ .elb-mapping-batch-examples {
2340
+ margin-top: 24px;
2341
+ padding: 16px;
2342
+ background: var(--bg-header);
2343
+ border: 1px solid var(--border-box);
2344
+ border-radius: 4px;
2345
+ }
2346
+ .elb-mapping-batch-examples-title {
2347
+ font-size: 13px;
2348
+ font-weight: 600;
2349
+ color: var(--color-text);
2350
+ margin-bottom: 8px;
2351
+ }
2352
+ .elb-mapping-batch-examples-list {
2353
+ margin: 0;
2354
+ padding: 0 0 0 20px;
2355
+ list-style: disc;
2356
+ }
2357
+ .elb-mapping-batch-examples-list li {
2358
+ font-size: 12px;
2359
+ color: var(--color-text-muted);
2360
+ margin-bottom: 6px;
2361
+ line-height: 1.4;
2362
+ }
2363
+ .elb-mapping-batch-examples-list li:last-child {
2364
+ margin-bottom: 0;
2365
+ }
2366
+ .elb-mapping-batch-examples-list li code {
2367
+ font-family: var(--font-mono);
2368
+ font-size: 13px;
2369
+ color: var(--color-text);
2370
+ background: var(--bg-box);
2371
+ padding: 2px 6px;
2372
+ border-radius: 3px;
2373
+ border: 1px solid var(--border-box);
2374
+ }
2375
+ .elb-mapping-batch-examples-note {
2376
+ margin-top: 12px;
2377
+ padding-top: 12px;
2378
+ border-top: 1px solid var(--border-box);
2379
+ font-size: 12px;
2380
+ color: var(--color-text-muted);
2381
+ line-height: 1.4;
2382
+ }
2383
+ .elb-mapping-batch-examples-note strong {
2384
+ color: var(--color-text);
2385
+ font-weight: 600;
2386
+ }
2387
+ .elb-mapping-consent-grid {
2388
+ display: grid;
2389
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
2390
+ gap: 12px;
2391
+ margin-bottom: 24px;
2392
+ }
2393
+ @media (max-width: 799px) {
2394
+ .elb-mapping-consent-grid {
2395
+ grid-template-columns: 1fr;
2396
+ gap: 8px;
2397
+ }
2398
+ }
2399
+ .elb-mapping-consent-input-tile {
2400
+ display: flex;
2401
+ align-items: center;
2402
+ padding: 12px 16px;
2403
+ background: var(--bg-box);
2404
+ border: 1px solid var(--border-input);
2405
+ border-radius: 6px;
2406
+ transition: all 0.15s ease;
2407
+ }
2408
+ .elb-mapping-consent-input-tile:hover {
2409
+ background: var(--bg-input-hover);
2410
+ }
2411
+ .elb-mapping-consent-input-tile:focus-within {
2412
+ border-color: var(--border-input-focus);
2413
+ background: var(--bg-box);
2414
+ }
2415
+ .elb-mapping-consent-input {
2416
+ flex: 1;
2417
+ border: none;
2418
+ background: transparent;
2419
+ font-size: 14px;
2420
+ color: var(--color-text);
2421
+ font-family: var(--font-mono);
2422
+ outline: none;
2423
+ }
2424
+ .elb-mapping-consent-input::placeholder {
2425
+ color: var(--color-text-placeholder);
2426
+ }
2427
+ .elb-mapping-consent-help {
2428
+ margin-bottom: 0;
2429
+ }
2430
+ .elb-mapping-consent-help-title {
2431
+ font-size: 14px;
2432
+ font-weight: 600;
2433
+ color: var(--color-text);
2434
+ margin: 0 0 12px 0;
2435
+ }
2436
+ .elb-mapping-consent-help-list {
2437
+ margin: 0;
2438
+ padding-left: 20px;
2439
+ }
2440
+ .elb-mapping-consent-help-list li {
2441
+ font-size: 13px;
2442
+ color: var(--color-text-muted);
2443
+ line-height: 1.6;
2444
+ margin-bottom: 6px;
2445
+ }
2446
+ .elb-mapping-consent-help-list li:last-child {
2447
+ margin-bottom: 0;
2448
+ }
2449
+ .elb-mapping-settings-form {
2450
+ margin-bottom: 16px;
2451
+ }
2452
+ .elb-mapping-settings-clear-button {
2453
+ margin-top: 16px;
2454
+ padding: 8px 16px;
2455
+ background: var(--bg-button-secondary);
2456
+ border: 1px solid var(--border-input);
2457
+ border-radius: 4px;
2458
+ color: var(--color-text);
2459
+ font-size: 14px;
2460
+ font-family: var(--font-sans);
2461
+ cursor: pointer;
2462
+ transition: all 0.15s ease;
2463
+ }
2464
+ .elb-mapping-settings-clear-button:hover {
2465
+ background: var(--bg-input-hover);
2466
+ }
2467
+ .elb-mapping-settings-clear-button:active {
2468
+ transform: translateY(1px);
2469
+ }
2470
+ @media (max-width: 799px) {
2471
+ .elb-mapping-settings-clear-button {
2472
+ width: 100%;
2473
+ }
2474
+ }
2475
+ .elb-mapping-settings-empty {
2476
+ padding: 24px;
2477
+ text-align: center;
2478
+ color: var(--color-text-muted);
2479
+ background: var(--bg-input);
2480
+ border-radius: 6px;
2481
+ }
2482
+ .elb-mapping-settings-empty p {
2483
+ margin: 0 0 8px 0;
2484
+ font-size: 14px;
2485
+ line-height: 1.5;
2486
+ }
2487
+ .elb-mapping-settings-empty p:last-child {
2488
+ margin-bottom: 0;
2489
+ }
2490
+ .elb-mapping-function-pane,
2491
+ .elb-mapping-condition-pane {
2492
+ display: flex;
2493
+ flex-direction: column;
2494
+ height: 100%;
2495
+ }
2496
+ .elb-mapping-function-editor,
2497
+ .elb-mapping-condition-editor {
2498
+ flex: 1;
2499
+ min-height: 200px;
2500
+ margin-bottom: 24px;
2501
+ overflow: hidden;
2502
+ display: flex;
2503
+ flex-direction: column;
2504
+ }
2505
+ .elb-mapping-function-help,
2506
+ .elb-mapping-condition-help {
2507
+ flex-shrink: 0;
2508
+ border-top: 1px solid var(--border-box);
2509
+ padding-top: 20px;
2510
+ }
2511
+ .elb-mapping-function-help-section,
2512
+ .elb-mapping-condition-help-section {
2513
+ margin-bottom: 20px;
2514
+ }
2515
+ .elb-mapping-function-help-section:last-child,
2516
+ .elb-mapping-condition-help-section:last-child {
2517
+ margin-bottom: 0;
2518
+ }
2519
+ .elb-mapping-function-help-title,
2520
+ .elb-mapping-condition-help-title {
2521
+ font-size: 14px;
2522
+ font-weight: 600;
2523
+ color: var(--color-text);
2524
+ margin: 0 0 8px 0;
2525
+ }
2526
+ .elb-mapping-function-help-list,
2527
+ .elb-mapping-condition-help-list {
2528
+ margin: 0;
2529
+ padding-left: 20px;
2530
+ list-style: none;
2531
+ }
2532
+ .elb-mapping-function-help-list li,
2533
+ .elb-mapping-condition-help-list li {
2534
+ font-size: 13px;
2535
+ color: var(--color-text-muted);
2536
+ line-height: 1.6;
2537
+ margin-bottom: 4px;
2538
+ position: relative;
2539
+ }
2540
+ .elb-mapping-function-help-list li:before,
2541
+ .elb-mapping-condition-help-list li:before {
2542
+ content: "\2022";
2543
+ position: absolute;
2544
+ left: -12px;
2545
+ color: var(--color-text-muted);
2546
+ }
2547
+ .elb-mapping-function-help-list li:last-child,
2548
+ .elb-mapping-condition-help-list li:last-child {
2549
+ margin-bottom: 0;
2550
+ }
2551
+ .elb-mapping-function-help-list li code,
2552
+ .elb-mapping-condition-help-list li code {
2553
+ font-family: var(--font-mono);
2554
+ font-size: 12px;
2555
+ background: var(--bg-header);
2556
+ padding: 2px 6px;
2557
+ border-radius: 3px;
2558
+ color: var(--color-text);
2559
+ }
2560
+ .elb-mapping-function-examples,
2561
+ .elb-mapping-condition-examples {
2562
+ display: flex;
2563
+ flex-direction: column;
2564
+ gap: 12px;
2565
+ }
2566
+ .elb-mapping-function-example,
2567
+ .elb-mapping-condition-example {
2568
+ display: flex;
2569
+ flex-direction: column;
2570
+ gap: 4px;
2571
+ }
2572
+ .elb-mapping-function-example-label,
2573
+ .elb-mapping-condition-example-label {
2574
+ font-size: 12px;
2575
+ color: var(--color-text-muted);
2576
+ }
2577
+ .elb-mapping-function-example-code,
2578
+ .elb-mapping-condition-example-code {
2579
+ font-family: var(--font-mono);
2580
+ font-size: 12px;
2581
+ color: var(--color-text);
2582
+ background: var(--bg-header);
2583
+ padding: 8px 12px;
2584
+ border-radius: 4px;
2585
+ display: block;
2586
+ border: 1px solid var(--border-box);
2587
+ }
2588
+ .elb-policy-input-section {
2589
+ margin-bottom: 24px;
2590
+ }
2591
+ .elb-policy-list {
2592
+ display: flex;
2593
+ flex-direction: column;
2594
+ gap: 1px;
2595
+ background: var(--border-color);
2596
+ border-radius: 8px;
2597
+ overflow: hidden;
2598
+ margin-bottom: 24px;
2599
+ }
2600
+ .elb-policy-row {
2601
+ display: grid;
2602
+ grid-template-columns: 200px 1fr auto;
2603
+ gap: 16px;
2604
+ align-items: center;
2605
+ padding: 12px 16px;
2606
+ background: var(--bg-box);
2607
+ transition: background-color 0.15s ease;
2608
+ }
2609
+ @media (max-width: 799px) {
2610
+ .elb-policy-row {
2611
+ grid-template-columns: 1fr;
2612
+ grid-template-areas: "path" "badges";
2613
+ gap: 12px;
2614
+ padding: 16px 12px;
2615
+ position: relative;
2616
+ align-items: flex-start;
2617
+ }
2618
+ }
2619
+ .elb-policy-row:hover {
2620
+ background: var(--bg-input-hover);
2621
+ }
2622
+ .elb-policy-row:first-child {
2623
+ border-top-left-radius: 7px;
2624
+ border-top-right-radius: 7px;
2625
+ }
2626
+ .elb-policy-row:last-child {
2627
+ border-bottom-left-radius: 7px;
2628
+ border-bottom-right-radius: 7px;
2629
+ }
2630
+ .elb-policy-row-path {
2631
+ font-family: var(--font-mono);
2632
+ font-size: 13px;
2633
+ color: var(--color-text);
2634
+ text-align: left;
2635
+ padding: 2px 0;
2636
+ transition: color 0.15s ease;
2637
+ word-break: break-word;
2638
+ }
2639
+ .elb-policy-row-path-rename {
2640
+ flex: 1;
2641
+ min-width: 0;
2642
+ }
2643
+ .elb-policy-row-path-rename .elb-mapping-input-with-button {
2644
+ gap: 0;
2645
+ }
2646
+ .elb-policy-row-path-rename .elb-mapping-input {
2647
+ font-family: var(--font-mono);
2648
+ font-size: 13px;
2649
+ padding: 2px 0;
2650
+ margin: 0;
2651
+ background: transparent;
2652
+ border: none;
2653
+ height: auto;
2654
+ line-height: inherit;
2655
+ transition: all 0.15s ease;
2656
+ }
2657
+ .elb-policy-row-path-rename .elb-mapping-input:hover {
2658
+ background: var(--bg-input-hover);
2659
+ }
2660
+ .elb-policy-row-path-rename .elb-mapping-input:focus {
2661
+ background: var(--bg-input);
2662
+ border: 1px solid var(--border-input);
2663
+ padding: 6px 8px;
2664
+ }
2665
+ .elb-policy-row-path-rename .elb-mapping-input-button {
2666
+ font-family: var(--font-mono);
2667
+ font-size: 13px;
2668
+ font-weight: var(--font-weight-medium);
2669
+ min-width: auto;
2670
+ padding: 2px 8px;
2671
+ background: transparent;
2672
+ border: 1px solid transparent;
2673
+ color: var(--color-text-muted);
2674
+ }
2675
+ .elb-policy-row-path-rename .elb-mapping-input-button:hover:not(:disabled) {
2676
+ background: var(--bg-button-hover);
2677
+ border-color: transparent;
2678
+ color: var(--color-text);
2679
+ }
2680
+ .elb-policy-row-path-rename .elb-mapping-input-button:active:not(:disabled) {
2681
+ background: var(--bg-button-active);
2682
+ }
2683
+ .elb-policy-row-path-with-edit {
2684
+ display: flex;
2685
+ align-items: center;
2686
+ justify-content: space-between;
2687
+ width: 100%;
2688
+ }
2689
+ @media (max-width: 799px) {
2690
+ .elb-policy-row-path-with-edit {
2691
+ grid-area: path;
2692
+ padding-right: 80px;
2693
+ }
2694
+ }
2695
+ .elb-policy-row:hover .elb-policy-row-path {
2696
+ color: var(--color-primary);
2697
+ }
2698
+ .elb-policy-row-badges {
2699
+ display: flex;
2700
+ flex-wrap: wrap;
2701
+ gap: 6px;
2702
+ align-items: center;
2703
+ }
2704
+ @media (max-width: 799px) {
2705
+ .elb-policy-row-badges {
2706
+ grid-area: badges;
2707
+ }
2708
+ }
2709
+ .elb-policy-row-actions {
2710
+ display: flex;
2711
+ gap: 8px;
2712
+ align-items: center;
2713
+ }
2714
+ @media (max-width: 799px) {
2715
+ .elb-policy-row-actions {
2716
+ position: absolute;
2717
+ top: 16px;
2718
+ right: 12px;
2719
+ }
2720
+ }
2721
+ .elb-policy-badge {
2722
+ display: inline-flex;
2723
+ align-items: center;
2724
+ gap: 4px;
2725
+ padding: 4px 8px;
2726
+ font-family: var(--font-mono);
2727
+ font-size: 11px;
2728
+ font-weight: var(--font-weight-medium);
2729
+ background: var(--bg-header);
2730
+ border: 1px solid var(--border-box);
2731
+ border-radius: 4px;
2732
+ color: var(--color-text);
2733
+ cursor: pointer;
2734
+ transition: background-color 0.15s ease, border-color 0.15s ease;
2735
+ max-width: 200px;
2736
+ }
2737
+ .elb-policy-badge:hover {
2738
+ background: var(--bg-box);
2739
+ border-color: var(--color-primary);
2740
+ }
2741
+ .elb-policy-badge-label {
2742
+ flex-shrink: 0;
2743
+ opacity: 0.7;
2744
+ }
2745
+ .elb-policy-badge-value {
2746
+ white-space: nowrap;
2747
+ overflow: hidden;
2748
+ position: relative;
2749
+ }
2750
+ .elb-policy-badge-value.is-long {
2751
+ mask-image:
2752
+ linear-gradient(
2753
+ to right,
2754
+ black 0%,
2755
+ black 70%,
2756
+ transparent 100%);
2757
+ -webkit-mask-image:
2758
+ linear-gradient(
2759
+ to right,
2760
+ black 0%,
2761
+ black 70%,
2762
+ transparent 100%);
2763
+ }
2764
+ .elb-policy-empty {
2765
+ padding: 32px 16px;
2766
+ text-align: center;
2767
+ color: var(--color-text-muted);
2768
+ }
2769
+ .elb-policy-empty p {
2770
+ margin: 0 0 16px 0;
2771
+ font-size: 13px;
2772
+ }
2773
+ .elb-policy-empty ul {
2774
+ margin: 0;
2775
+ padding: 0;
2776
+ list-style: none;
2777
+ font-size: 12px;
2778
+ line-height: 1.8;
2779
+ }
2780
+ .elb-policy-empty ul li:before {
2781
+ content: "\2022";
2782
+ margin-right: 8px;
2783
+ color: var(--color-primary);
2784
+ }
2785
+ .elb-set-input-section {
2786
+ margin-bottom: 24px;
2787
+ }
2788
+ .elb-set-add-button {
2789
+ width: 100%;
2790
+ padding: 10px 16px;
2791
+ font-family: var(--font-sans);
2792
+ font-size: 13px;
2793
+ font-weight: var(--font-weight-medium);
2794
+ background: var(--bg-header);
2795
+ border: 1px solid var(--border-box);
2796
+ border-radius: 8px;
2797
+ color: var(--color-text);
2798
+ cursor: pointer;
2799
+ transition:
2800
+ background-color 0.15s ease,
2801
+ border-color 0.15s ease,
2802
+ transform 0.2s ease;
2803
+ }
2804
+ .elb-set-add-button:hover {
2805
+ background: var(--bg-box);
2806
+ border-color: var(--color-primary);
2807
+ transform: translateY(-1px);
2808
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
2809
+ }
2810
+ .elb-set-list {
2811
+ display: flex;
2812
+ flex-direction: column;
2813
+ gap: 1px;
2814
+ background: var(--border-color);
2815
+ border-radius: 8px;
2816
+ overflow: hidden;
2817
+ margin-bottom: 24px;
2818
+ }
2819
+ .elb-set-row {
2820
+ display: grid;
2821
+ grid-template-columns: auto 1fr auto;
2822
+ gap: 16px;
2823
+ align-items: center;
2824
+ padding: 12px 16px;
2825
+ background: var(--bg-box);
2826
+ transition: background-color 0.15s ease;
2827
+ }
2828
+ .elb-set-row:hover {
2829
+ background: var(--bg-input-hover);
2830
+ }
2831
+ .elb-set-row:first-child {
2832
+ border-top-left-radius: 7px;
2833
+ border-top-right-radius: 7px;
2834
+ }
2835
+ .elb-set-row:last-child {
2836
+ border-bottom-left-radius: 7px;
2837
+ border-bottom-right-radius: 7px;
2838
+ }
2839
+ .elb-set-row-dragging {
2840
+ opacity: 0.4;
2841
+ }
2842
+ .elb-set-row-drag-over {
2843
+ border-top: 2px solid var(--color-button-primary);
2844
+ padding-top: 4px;
2845
+ }
2846
+ .elb-set-row-value {
2847
+ display: flex;
2848
+ align-items: center;
2849
+ min-height: 28px;
2850
+ cursor: pointer;
2851
+ flex: 1;
2852
+ min-width: 0;
2853
+ }
2854
+ .elb-set-row-badges {
2855
+ display: flex;
2856
+ flex-wrap: wrap;
2857
+ gap: 6px;
2858
+ align-items: center;
2859
+ }
2860
+ .elb-set-row-actions {
2861
+ display: flex;
2862
+ gap: 8px;
2863
+ align-items: center;
2864
+ }
2865
+ .elb-set-drag-handle {
2866
+ display: flex;
2867
+ align-items: center;
2868
+ justify-content: center;
2869
+ width: 24px;
2870
+ height: 28px;
2871
+ color: var(--color-text-muted);
2872
+ cursor: grab;
2873
+ user-select: none;
2874
+ transition: color 0.15s;
2875
+ }
2876
+ .elb-set-drag-handle:hover {
2877
+ color: var(--color-text);
2878
+ }
2879
+ .elb-set-drag-handle:active {
2880
+ cursor: grabbing;
2881
+ }
2882
+ .elb-set-empty {
2883
+ padding: 32px 16px;
2884
+ text-align: center;
2885
+ color: var(--color-text-muted);
2886
+ }
2887
+ .elb-set-empty p {
2888
+ margin: 0 0 8px 0;
2889
+ font-size: 13px;
2890
+ }
2891
+ .elb-set-empty-hint {
2892
+ font-size: 12px;
2893
+ opacity: 0.8;
2894
+ }
2895
+ .elb-mapping-value-type-quick-section,
2896
+ .elb-mapping-value-type-advanced-section {
2897
+ margin-bottom: 32px;
2898
+ }
2899
+ .elb-mapping-value-type-quick-section:last-child,
2900
+ .elb-mapping-value-type-advanced-section:last-child {
2901
+ margin-bottom: 0;
2902
+ }
2903
+ .elb-mapping-value-type-section-title {
2904
+ font-size: 13px;
2905
+ font-weight: 600;
2906
+ color: var(--color-text);
2907
+ margin-bottom: 12px;
2908
+ }
2909
+ .elb-mapping-value-type-input {
2910
+ width: 100%;
2911
+ font-family: var(--font-mono);
2912
+ font-size: 13px;
2913
+ padding: 10px 12px;
2914
+ background: var(--bg-box);
2915
+ border: 1px solid var(--border-color);
2916
+ border-radius: 4px;
2917
+ color: var(--color-text);
2918
+ outline: none;
2919
+ transition: all 0.15s ease;
2920
+ margin-bottom: 8px;
2921
+ }
2922
+ .elb-mapping-value-type-input:focus {
2923
+ border-color: var(--color-primary);
2924
+ }
2925
+ .elb-mapping-value-type-input.is-disabled {
2926
+ background: var(--bg-header);
2927
+ color: var(--color-text-muted);
2928
+ cursor: not-allowed;
2929
+ }
2930
+ .elb-mapping-value-type-input.is-convertible {
2931
+ cursor: pointer;
2932
+ background: rgba(59, 130, 246, 0.05);
2933
+ border-color: var(--color-primary);
2934
+ }
2935
+ .elb-mapping-value-type-input.is-convertible:hover {
2936
+ background: rgba(59, 130, 246, 0.1);
2937
+ }
2938
+ .elb-mapping-value-type-input::placeholder {
2939
+ color: var(--color-text-muted);
2940
+ opacity: 0.6;
2941
+ }
2942
+ .elb-mapping-value-type-hint {
2943
+ font-size: 12px;
2944
+ color: var(--color-text-muted);
2945
+ line-height: 1.4;
2946
+ }
2947
+ .elb-mapping-value-type-hint .is-info {
2948
+ color: var(--color-primary);
2949
+ font-weight: 500;
2950
+ }
2951
+ .elb-mapping-value-type-tiles-grid {
2952
+ display: grid;
2953
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
2954
+ gap: 16px;
2955
+ }
2956
+ @media (max-width: 799px) {
2957
+ .elb-mapping-value-type-tiles-grid {
2958
+ grid-template-columns: repeat(2, 1fr);
2959
+ gap: 12px;
2960
+ }
2961
+ }
2962
+ .elb-mapping-enum-examples {
2963
+ margin-top: 24px;
2964
+ padding: 16px;
2965
+ background: var(--bg-header);
2966
+ border: 1px solid var(--border-box);
2967
+ border-radius: 4px;
2968
+ }
2969
+ .elb-mapping-enum-examples-title {
2970
+ font-size: 13px;
2971
+ font-weight: var(--font-weight-semibold);
2972
+ color: var(--color-text);
2973
+ margin-bottom: 8px;
2974
+ }
2975
+ .elb-mapping-enum-examples-list {
2976
+ margin: 0;
2977
+ padding: 0 0 0 20px;
2978
+ list-style: disc;
2979
+ }
2980
+ .elb-mapping-enum-examples-list li {
2981
+ font-size: 12px;
2982
+ color: var(--color-text-muted);
2983
+ margin-bottom: 6px;
2984
+ line-height: 1.4;
2985
+ }
2986
+ .elb-mapping-enum-examples-list li:last-child {
2987
+ margin-bottom: 0;
2988
+ }
2989
+ .elb-mapping-enum-examples-list li code {
2990
+ font-family: var(--font-mono);
2991
+ font-size: 13px;
2992
+ color: var(--color-text);
2993
+ background: var(--bg-box);
2994
+ padding: 2px 6px;
2995
+ border-radius: 3px;
2996
+ border: 1px solid var(--border-box);
2997
+ }
2998
+ .elb-mapping-enum-examples-more {
2999
+ font-style: italic;
3000
+ color: var(--color-text-muted);
3001
+ opacity: 0.7;
3002
+ }
3003
+ .elb-mapping-boolean-toggle-wrapper {
3004
+ display: flex;
3005
+ align-items: center;
3006
+ padding: 12px 0;
3007
+ }
3008
+ .elb-rjsf-form-wrapper {
3009
+ width: 100%;
3010
+ font-family: var(--font-family-base);
3011
+ font-size: var(--font-size-base);
3012
+ line-height: 1.2;
3013
+ }
3014
+ .elb-rjsf-form-wrapper form {
3015
+ width: 100%;
3016
+ }
3017
+ .elb-rjsf-field {
3018
+ display: flex;
3019
+ flex-direction: column;
3020
+ gap: 0;
3021
+ width: 100%;
3022
+ margin-bottom: 8px;
3023
+ }
3024
+ .elb-rjsf-field-hidden {
3025
+ display: none;
3026
+ }
3027
+ .elb-rjsf-label {
3028
+ font-size: var(--font-size-label);
3029
+ font-weight: var(--font-weight-semibold);
3030
+ color: var(--color-text-label);
3031
+ user-select: none;
3032
+ line-height: 1.2;
3033
+ margin-bottom: 4px;
3034
+ display: block;
3035
+ }
3036
+ .elb-rjsf-label-with-widget {
3037
+ display: flex;
3038
+ justify-content: space-between;
3039
+ align-items: flex-start;
3040
+ gap: 12px;
3041
+ margin-bottom: 8px;
3042
+ }
3043
+ .elb-rjsf-label-group {
3044
+ flex: 1;
3045
+ display: flex;
3046
+ flex-direction: column;
3047
+ gap: 0;
3048
+ }
3049
+ .elb-rjsf-required {
3050
+ color: var(--color-button-danger);
3051
+ }
3052
+ .elb-rjsf-widget {
3053
+ display: flex;
3054
+ flex-direction: column;
3055
+ gap: 0;
3056
+ }
3057
+ .elb-rjsf-input {
3058
+ width: 100%;
3059
+ padding: 8px 12px;
3060
+ font-family: var(--font-family-base);
3061
+ font-size: var(--font-size-base);
3062
+ color: var(--color-text-input);
3063
+ background: var(--bg-input);
3064
+ border: 1px solid var(--border-input);
3065
+ border-radius: var(--radius-button);
3066
+ outline: none;
3067
+ transition: all 0.15s;
3068
+ box-sizing: border-box;
3069
+ }
3070
+ .elb-rjsf-input:hover {
3071
+ background: var(--bg-input-hover);
3072
+ }
3073
+ .elb-rjsf-input:focus {
3074
+ border-color: var(--border-input-focus);
3075
+ }
3076
+ .elb-rjsf-input::placeholder {
3077
+ color: var(--color-text-placeholder);
3078
+ }
3079
+ .elb-rjsf-input-error {
3080
+ border-color: var(--color-button-danger);
3081
+ }
3082
+ .elb-rjsf-input:disabled,
3083
+ .elb-rjsf-input:read-only {
3084
+ opacity: 0.6;
3085
+ cursor: not-allowed;
3086
+ background: var(--bg-input);
3087
+ }
3088
+ .elb-rjsf-checkbox {
3089
+ width: 34px;
3090
+ height: 34px;
3091
+ cursor: pointer;
3092
+ margin: 0;
3093
+ flex-shrink: 0;
3094
+ appearance: none;
3095
+ background: var(--bg-input);
3096
+ border: 1px solid var(--border-input);
3097
+ border-radius: var(--radius-button);
3098
+ outline: none;
3099
+ transition: all 0.15s;
3100
+ position: relative;
3101
+ box-sizing: border-box;
3102
+ }
3103
+ .elb-rjsf-checkbox:hover {
3104
+ background: var(--bg-input-hover);
3105
+ }
3106
+ .elb-rjsf-checkbox:checked {
3107
+ background: var(--bg-input);
3108
+ border-color: var(--border-input);
3109
+ }
3110
+ .elb-rjsf-checkbox:checked::after {
3111
+ content: "\2713";
3112
+ position: absolute;
3113
+ top: 50%;
3114
+ left: 50%;
3115
+ transform: translate(-50%, -50%);
3116
+ color: var(--color-button-primary);
3117
+ font-size: 18px;
3118
+ font-weight: bold;
3119
+ }
3120
+ .elb-rjsf-checkbox:disabled {
3121
+ cursor: not-allowed;
3122
+ opacity: 0.6;
3123
+ }
3124
+ .elb-rjsf-error {
3125
+ font-size: calc(var(--font-size-base) - 1px);
3126
+ color: var(--color-button-danger);
3127
+ margin-top: 2px;
3128
+ }
3129
+ .elb-rjsf-description {
3130
+ font-size: calc(var(--font-size-base) - 1px);
3131
+ color: var(--color-text-muted);
3132
+ line-height: 1.4;
3133
+ margin-bottom: 8px;
3134
+ }
3135
+ .elb-rjsf-help {
3136
+ font-size: calc(var(--font-size-base) - 1px);
3137
+ color: var(--color-text-muted);
3138
+ font-style: italic;
3139
+ line-height: 1.3;
3140
+ }
3141
+ .elb-rjsf-object {
3142
+ border: none;
3143
+ padding: 0;
3144
+ margin: 0;
3145
+ width: 100%;
3146
+ }
3147
+ .elb-rjsf-object-title {
3148
+ font-size: var(--font-size-base);
3149
+ font-weight: var(--font-weight-semibold);
3150
+ color: var(--color-text-label);
3151
+ margin-bottom: 12px;
3152
+ padding: 0;
3153
+ }
3154
+ .elb-rjsf-object-description {
3155
+ font-size: calc(var(--font-size-base) - 1px);
3156
+ color: var(--color-text-muted);
3157
+ margin-bottom: 12px;
3158
+ }
3159
+ .elb-rjsf-object-property {
3160
+ width: 100%;
3161
+ align-self: start;
3162
+ }
3163
+ .elb-explorer-btn {
3164
+ padding: var(--spacing-button);
3165
+ background: transparent;
3166
+ border: none;
3167
+ border-radius: var(--radius-button);
3168
+ cursor: pointer;
3169
+ display: flex;
3170
+ align-items: center;
3171
+ justify-content: center;
3172
+ color: var(--color-text-button);
3173
+ transition: all 0.15s;
3174
+ }
3175
+ .elb-explorer-btn:hover {
3176
+ background: var(--bg-button-hover);
3177
+ color: var(--color-text-button-hover);
3178
+ }
3179
+ .elb-explorer-btn.active {
3180
+ background: var(--bg-button-active);
3181
+ color: var(--color-text-button-active);
3182
+ box-shadow: var(--shadow-button-active);
3183
+ font-weight: var(--font-weight-semibold);
3184
+ }
3185
+ .elb-explorer-button-group {
3186
+ display: flex;
3187
+ background: var(--bg-button-group);
3188
+ border-radius: var(--radius-button-group);
3189
+ padding: var(--spacing-button-group);
3190
+ border: 1px solid var(--border-button-group);
3191
+ }
3192
+ .elb-explorer-controls {
3193
+ padding: 8px 0 12px 0;
3194
+ display: flex;
3195
+ justify-content: flex-end;
3196
+ }
3197
+ .elb-explorer-toggle {
3198
+ display: flex;
3199
+ align-items: center;
3200
+ gap: 6px;
3201
+ font-size: var(--font-size-toggle);
3202
+ color: var(--color-text-toggle);
3203
+ cursor: pointer;
3204
+ user-select: none;
3205
+ }
3206
+ .elb-explorer-toggle input[type=checkbox] {
3207
+ margin: 0;
3208
+ cursor: pointer;
3209
+ }
3210
+ .elb-collapsible {
3211
+ padding: 12px;
3212
+ border: 1px solid var(--border-input);
3213
+ border-radius: var(--radius-button);
3214
+ background: var(--bg-input);
3215
+ }
3216
+ .elb-collapsible-header {
3217
+ display: flex;
3218
+ align-items: center;
3219
+ gap: 12px;
3220
+ width: 100%;
3221
+ padding: 0;
3222
+ background: transparent;
3223
+ border: none;
3224
+ cursor: pointer;
3225
+ font-family: var(--font-family-base);
3226
+ transition: all 0.15s;
3227
+ user-select: none;
3228
+ }
3229
+ .elb-collapsible-header svg {
3230
+ flex-shrink: 0;
3231
+ color: var(--color-text-label);
3232
+ }
3233
+ .elb-collapsible-label {
3234
+ cursor: pointer;
3235
+ display: flex;
3236
+ flex-direction: column;
3237
+ text-align: left;
3238
+ }
3239
+ .elb-collapsible-label .elb-rjsf-label {
3240
+ font-size: var(--font-size-base);
3241
+ color: var(--color-text-label);
3242
+ font-weight: var(--font-weight-semibold);
3243
+ line-height: 1.4;
3244
+ }
3245
+ .elb-collapsible-description {
3246
+ font-size: calc(var(--font-size-base) - 1px);
3247
+ color: var(--color-text-muted);
3248
+ line-height: 1.4;
3249
+ }
3250
+ .elb-collapsible-content {
3251
+ margin-top: 12px;
3252
+ }
3253
+ .elb-mapping-type-button {
3254
+ display: flex;
3255
+ flex-direction: column;
3256
+ align-items: flex-start;
3257
+ padding: 12px;
3258
+ background: var(--bg-box);
3259
+ border: 2px solid var(--border-box);
3260
+ border-radius: var(--radius-button);
3261
+ cursor: pointer;
3262
+ transition: all 0.15s ease;
3263
+ text-align: left;
3264
+ font-family: var(--font-family-base);
3265
+ }
3266
+ .elb-mapping-type-button:hover {
3267
+ border-color: var(--border-input-focus);
3268
+ background: var(--bg-button-hover);
3269
+ }
3270
+ .elb-mapping-type-button.is-active {
3271
+ border-color: var(--color-button-primary);
3272
+ background: var(--bg-dropdown-option-highlighted);
3273
+ }
3274
+ .elb-mapping-type-button-content {
3275
+ display: flex;
3276
+ flex-direction: column;
3277
+ gap: 4px;
3278
+ width: 100%;
3279
+ }
3280
+ .elb-mapping-type-label {
3281
+ font-size: var(--font-size-base);
3282
+ font-weight: var(--font-weight-semibold);
3283
+ color: var(--color-text);
3284
+ }
3285
+ .elb-mapping-type-description {
3286
+ font-size: var(--font-size-toggle);
3287
+ color: var(--color-text-muted);
3288
+ line-height: 1.3;
3289
+ }
3290
+ .elb-mapping-type-selector {
3291
+ margin-bottom: 16px;
3292
+ }
3293
+ .elb-mapping-type-selector-legend {
3294
+ font-size: var(--font-size-label);
3295
+ font-weight: var(--font-weight-semibold);
3296
+ color: var(--color-text-label);
3297
+ margin-bottom: 12px;
3298
+ }
3299
+ .elb-mapping-type-selector--grid .elb-mapping-type-selector-grid {
3300
+ display: grid;
3301
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
3302
+ gap: 12px;
3303
+ }
3304
+ .elb-mapping-type-selector--radio .elb-mapping-type-selector-radio-list {
3305
+ display: flex;
3306
+ flex-direction: column;
3307
+ gap: 8px;
3308
+ }
3309
+ .elb-mapping-type-selector--responsive .elb-mapping-type-selector-radio-list {
3310
+ display: flex;
3311
+ flex-direction: column;
3312
+ gap: 8px;
3313
+ }
3314
+ .elb-mapping-type-selector--responsive .elb-mapping-type-selector-grid {
3315
+ display: none;
3316
+ }
3317
+ @media (min-width: 800px) {
3318
+ .elb-mapping-type-selector--responsive .elb-mapping-type-selector-radio-list {
3319
+ display: none;
3320
+ }
3321
+ .elb-mapping-type-selector--responsive .elb-mapping-type-selector-grid {
3322
+ display: grid;
3323
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
3324
+ gap: 12px;
3325
+ }
3326
+ }
3327
+ .elb-mapping-type-radio-label {
3328
+ display: flex;
3329
+ align-items: center;
3330
+ gap: 10px;
3331
+ padding: 10px 12px;
3332
+ background: var(--bg-box);
3333
+ border: 2px solid var(--border-box);
3334
+ border-radius: var(--radius-button);
3335
+ cursor: pointer;
3336
+ transition: all 0.15s ease;
3337
+ }
3338
+ .elb-mapping-type-radio-label:hover {
3339
+ border-color: var(--border-input-focus);
3340
+ background: var(--bg-button-hover);
3341
+ }
3342
+ .elb-mapping-type-radio-label.is-selected {
3343
+ border-color: var(--color-button-primary);
3344
+ background: var(--bg-dropdown-option-highlighted);
3345
+ }
3346
+ .elb-mapping-type-radio-label .elb-mapping-type-label {
3347
+ font-size: var(--font-size-base);
3348
+ font-weight: var(--font-weight-semibold);
3349
+ color: var(--color-text);
3350
+ }
3351
+ .elb-mapping-type-radio-label .elb-mapping-type-description {
3352
+ font-size: var(--font-size-toggle);
3353
+ color: var(--color-text-muted);
3354
+ }
3355
+ .elb-mapping-type-radio-input {
3356
+ width: 16px;
3357
+ height: 16px;
3358
+ cursor: pointer;
3359
+ accent-color: var(--color-button-primary);
3360
+ }
3361
+ .elb-mapping-type-radio-content {
3362
+ display: flex;
3363
+ flex-direction: column;
3364
+ gap: 2px;
3365
+ flex: 1;
3366
+ }
3367
+ .elb-property-panel {
3368
+ display: grid;
3369
+ grid-template-columns: 1fr;
3370
+ gap: 20px;
3371
+ align-content: start;
3372
+ height: 100%;
3373
+ overflow-y: auto;
3374
+ padding: var(--spacing-grid-gap);
3375
+ padding-bottom: 50vh;
3376
+ }
3377
+ @media (min-width: 900px) {
3378
+ .elb-property-panel {
3379
+ grid-template-columns: 1fr 1fr;
3380
+ }
3381
+ .elb-property-panel > :first-child {
3382
+ grid-column: 1;
3383
+ }
3384
+ .elb-property-panel > :nth-child(2) {
3385
+ grid-column: 2;
3386
+ grid-row: 1;
3387
+ }
3388
+ }
3389
+ .elb-mapping-property-path {
3390
+ margin-bottom: 32px;
3391
+ }
3392
+ .elb-mapping-property-path-label {
3393
+ display: block;
3394
+ font-size: 13px;
3395
+ font-weight: var(--font-weight-semibold);
3396
+ color: var(--color-text);
3397
+ margin-bottom: 8px;
3398
+ }
3399
+ .elb-mapping-property-path-input {
3400
+ width: 100%;
3401
+ padding: 8px 12px;
3402
+ border: 1px solid var(--border-box);
3403
+ border-radius: 4px;
3404
+ font-size: 13px;
3405
+ font-family: var(--font-family-base);
3406
+ color: var(--color-text);
3407
+ background: var(--bg-box);
3408
+ outline: none;
3409
+ }
3410
+ .elb-mapping-property-path-input:focus {
3411
+ border-color: var(--border-input-focus);
3412
+ }
3413
+ .elb-mapping-property-path-hint {
3414
+ margin-top: 4px;
3415
+ font-size: 11px;
3416
+ color: var(--color-text-muted);
3417
+ }
3418
+ .elb-mapping-type-grid-title {
3419
+ font-size: 13px;
3420
+ font-weight: var(--font-weight-semibold);
3421
+ color: var(--color-text);
3422
+ margin: 0 0 16px 0;
3423
+ }
3424
+ .elb-mapping-type-grid-container {
3425
+ display: grid;
3426
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
3427
+ gap: 12px;
3428
+ }
3429
+ .elb-mapping-type-tile {
3430
+ position: relative;
3431
+ display: flex;
3432
+ flex-direction: column;
3433
+ align-items: center;
3434
+ justify-content: center;
3435
+ padding: 20px 12px;
3436
+ background: var(--bg-box);
3437
+ border: 1px dashed #ccc;
3438
+ border-radius: 6px;
3439
+ cursor: pointer;
3440
+ transition: all 0.15s ease;
3441
+ min-height: 100px;
3442
+ }
3443
+ .elb-mapping-type-tile:hover {
3444
+ background: var(--bg-button-hover);
3445
+ border-color: #999;
3446
+ }
3447
+ .elb-mapping-type-tile.is-configured.is-transformation {
3448
+ border: 2px solid #666;
3449
+ border-style: solid;
3450
+ background: var(--bg-box);
3451
+ }
3452
+ .elb-mapping-type-tile.is-configured.is-advanced {
3453
+ border: 2px double #666;
3454
+ background: var(--bg-box);
3455
+ }
3456
+ .elb-mapping-type-tile.is-configured:hover {
3457
+ background: var(--bg-button-hover);
3458
+ }
3459
+ .elb-mapping-type-tile-check {
3460
+ position: absolute;
3461
+ top: 8px;
3462
+ right: 8px;
3463
+ font-size: 14px;
3464
+ color: #666;
3465
+ }
3466
+ .elb-mapping-type-tile-label {
3467
+ font-size: 13px;
3468
+ font-weight: normal;
3469
+ color: #999;
3470
+ margin-bottom: 4px;
3471
+ text-align: center;
3472
+ }
3473
+ .elb-mapping-type-tile.is-configured .elb-mapping-type-tile-label {
3474
+ font-weight: var(--font-weight-semibold);
3475
+ color: var(--color-text);
3476
+ }
3477
+ .elb-mapping-type-tile-description {
3478
+ font-size: 11px;
3479
+ color: #ccc;
3480
+ text-align: center;
3481
+ line-height: 1.4;
3482
+ }
3483
+ .elb-mapping-type-tile.is-configured .elb-mapping-type-tile-description {
3484
+ color: var(--color-text-muted);
3485
+ }
3486
+ .elb-property-suggestions {
3487
+ display: flex;
3488
+ flex-direction: column;
3489
+ gap: 24px;
3490
+ }
3491
+ .elb-property-suggestions-section {
3492
+ display: flex;
3493
+ flex-direction: column;
3494
+ gap: 12px;
3495
+ }
3496
+ .elb-property-suggestions-grid {
3497
+ display: grid;
3498
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
3499
+ gap: 16px;
3500
+ }
3501
+ .elb-property-suggestions-divider {
3502
+ display: flex;
3503
+ align-items: center;
3504
+ gap: 12px;
3505
+ margin: 8px 0;
3506
+ color: var(--color-text-muted);
3507
+ font-size: 12px;
3508
+ font-weight: var(--font-weight-medium);
3509
+ text-transform: uppercase;
3510
+ letter-spacing: 0.5px;
3511
+ }
3512
+ .elb-property-suggestions-divider::before,
3513
+ .elb-property-suggestions-divider::after {
3514
+ content: "";
3515
+ flex: 1;
3516
+ height: 1px;
3517
+ background: var(--border-box);
3518
+ }
3519
+ .elb-property-suggestions-divider span {
3520
+ flex-shrink: 0;
3521
+ }
3522
+ .elb-property-table__container {
3523
+ margin: 1.5rem 0 0;
3524
+ overflow: visible;
3525
+ border-radius: var(--radius-box);
3526
+ border: 1px solid var(--border-box);
3527
+ width: 100%;
3528
+ box-sizing: border-box;
3529
+ }
3530
+ .elb-property-table__container table {
3531
+ margin: 0;
3532
+ }
3533
+ .elb-property-table {
3534
+ width: 100%;
3535
+ table-layout: auto;
3536
+ border-collapse: collapse;
3537
+ font-size: calc(var(--font-size-base) - 1px);
3538
+ background: var(--bg-box);
3539
+ display: table;
3540
+ }
3541
+ .elb-property-table thead {
3542
+ background: var(--bg-header);
3543
+ }
3544
+ .elb-property-table th {
3545
+ padding: 12px 16px;
3546
+ text-align: left;
3547
+ font-weight: var(--font-weight-semibold);
3548
+ color: var(--color-text-label);
3549
+ border-bottom: 2px solid var(--border-box);
3550
+ font-size: calc(var(--font-size-base) - 2px);
3551
+ text-transform: uppercase;
3552
+ letter-spacing: 0.5px;
3553
+ white-space: nowrap;
3554
+ }
3555
+ .elb-property-table td {
3556
+ padding: 12px 16px;
3557
+ border-bottom: 1px solid var(--border-box);
3558
+ vertical-align: top;
3559
+ }
3560
+ .elb-property-table tbody tr:last-child td {
3561
+ border-bottom: none;
3562
+ padding-bottom: 12px;
3563
+ }
3564
+ .elb-property-table__property-name {
3565
+ font-weight: var(--font-weight-semibold);
3566
+ color: var(--color-button-primary);
3567
+ font-family: var(--font-mono);
3568
+ font-size: calc(var(--font-size-base) - 2px);
3569
+ }
3570
+ .elb-property-table__property-type {
3571
+ color: var(--color-text);
3572
+ font-family: var(--font-mono);
3573
+ font-size: calc(var(--font-size-base) - 3px);
3574
+ white-space: nowrap;
3575
+ }
3576
+ .elb-property-table__property-type--truncated {
3577
+ position: relative;
3578
+ display: inline-block;
3579
+ max-width: 100%;
3580
+ }
3581
+ .elb-property-table__property-type--truncated::after {
3582
+ content: "";
3583
+ position: absolute;
3584
+ right: 0;
3585
+ top: 0;
3586
+ bottom: 0;
3587
+ width: 30px;
3588
+ background:
3589
+ linear-gradient(
3590
+ to right,
3591
+ transparent,
3592
+ var(--bg-box));
3593
+ pointer-events: none;
3594
+ }
3595
+ .elb-property-table__type-button {
3596
+ background: none;
3597
+ border: none;
3598
+ padding: 0;
3599
+ margin: 0;
3600
+ cursor: pointer;
3601
+ text-align: left;
3602
+ display: block;
3603
+ width: 100%;
3604
+ transition: opacity 0.2s ease;
3605
+ }
3606
+ .elb-property-table__type-button:hover {
3607
+ opacity: 0.7;
3608
+ }
3609
+ .elb-property-table__type-button:hover .elb-property-table__property-type--truncated::after {
3610
+ background:
3611
+ linear-gradient(
3612
+ to right,
3613
+ transparent,
3614
+ var(--bg-input-hover));
3615
+ }
3616
+ .elb-property-table__required-icon {
3617
+ color: var(--color-button-danger);
3618
+ font-weight: bold;
3619
+ margin-left: 4px;
3620
+ font-size: 1.1em;
3621
+ }
3622
+ .elb-property-table__action-cell {
3623
+ text-align: center;
3624
+ width: 60px;
3625
+ }
3626
+ .elb-property-table__property-cell {
3627
+ width: 20%;
3628
+ white-space: nowrap;
3629
+ }
3630
+ .elb-property-table__type-cell {
3631
+ width: 25%;
3632
+ }
3633
+ .elb-property-table__description {
3634
+ line-height: 1.4;
3635
+ color: var(--color-text);
3636
+ }
3637
+ .elb-property-table__more-button {
3638
+ background: none;
3639
+ border: none;
3640
+ padding: 6px;
3641
+ border-radius: var(--radius-button);
3642
+ cursor: pointer;
3643
+ color: var(--color-button-primary);
3644
+ display: inline-flex;
3645
+ align-items: center;
3646
+ justify-content: center;
3647
+ transition: background-color 0.2s ease;
3648
+ }
3649
+ .elb-property-table__more-button:hover {
3650
+ background: var(--bg-button-hover);
3651
+ }
3652
+ .elb-property-table__required-notice {
3653
+ margin-top: 0;
3654
+ font-size: calc(var(--font-size-base) - 2px);
3655
+ color: var(--color-text-muted);
3656
+ font-style: italic;
3657
+ }
3658
+ .elb-property-table__modal-backdrop {
3659
+ position: fixed;
3660
+ top: 0;
3661
+ left: 0;
3662
+ right: 0;
3663
+ bottom: 0;
3664
+ background: rgba(0, 0, 0, 0.5);
3665
+ display: flex;
3666
+ align-items: center;
3667
+ justify-content: center;
3668
+ z-index: 1000;
3669
+ padding: 20px;
3670
+ }
3671
+ .elb-property-table__modal-content {
3672
+ background: var(--bg-box);
3673
+ border-radius: var(--radius-box);
3674
+ box-shadow: var(--shadow-dropdown);
3675
+ max-width: 600px;
3676
+ width: 100%;
3677
+ max-height: 80vh;
3678
+ overflow-y: auto;
3679
+ border: 1px solid var(--border-box);
3680
+ }
3681
+ .elb-property-table__modal-header {
3682
+ display: flex;
3683
+ align-items: center;
3684
+ justify-content: space-between;
3685
+ padding: 20px 24px 16px;
3686
+ border-bottom: 1px solid var(--border-box);
3687
+ }
3688
+ .elb-property-table__modal-title {
3689
+ margin: 0;
3690
+ font-size: 1.25rem;
3691
+ font-weight: var(--font-weight-semibold);
3692
+ display: flex;
3693
+ align-items: center;
3694
+ }
3695
+ .elb-property-table__modal-property-name {
3696
+ font-family: var(--font-mono);
3697
+ color: var(--color-button-primary);
3698
+ font-weight: var(--font-weight-semibold);
3699
+ font-size: 1rem;
3700
+ }
3701
+ .elb-property-table__close-button {
3702
+ background: none;
3703
+ border: none;
3704
+ padding: 8px;
3705
+ border-radius: var(--radius-button);
3706
+ cursor: pointer;
3707
+ color: var(--color-text-muted);
3708
+ display: inline-flex;
3709
+ align-items: center;
3710
+ justify-content: center;
3711
+ transition: color 0.2s ease, background-color 0.2s ease;
3712
+ }
3713
+ .elb-property-table__close-button:hover {
3714
+ color: var(--color-text);
3715
+ background: var(--bg-button-hover);
3716
+ }
3717
+ .elb-property-table__modal-body {
3718
+ padding: 20px 24px 24px;
3719
+ }
3720
+ .elb-property-table__modal-row {
3721
+ margin-bottom: 16px;
3722
+ }
3723
+ .elb-property-table__modal-row:last-child {
3724
+ margin-bottom: 0;
3725
+ }
3726
+ .elb-property-table__modal-label {
3727
+ display: block;
3728
+ font-weight: var(--font-weight-semibold);
3729
+ color: var(--color-text-label);
3730
+ margin-bottom: 6px;
3731
+ font-size: calc(var(--font-size-base) - 1px);
3732
+ }
3733
+ .elb-property-table__modal-type {
3734
+ font-family: var(--font-mono);
3735
+ color: var(--color-text);
3736
+ font-size: calc(var(--font-size-base) - 1px);
3737
+ }
3738
+ .elb-property-table__modal-type--wrap {
3739
+ display: block;
3740
+ white-space: pre-wrap;
3741
+ word-break: break-word;
3742
+ line-height: 1.6;
3743
+ }
3744
+ .elb-property-table__modal-description {
3745
+ margin: 0;
3746
+ line-height: 1.5;
3747
+ color: var(--color-text);
3748
+ }
3749
+ .elb-property-table__modal-default {
3750
+ font-family: var(--font-mono);
3751
+ color: var(--color-text);
3752
+ font-size: calc(var(--font-size-base) - 1px);
3753
+ }
3754
+ .elb-property-table__modal-example {
3755
+ font-family: var(--font-mono);
3756
+ color: var(--color-text);
3757
+ font-size: calc(var(--font-size-base) - 1px);
3758
+ display: block;
3759
+ white-space: pre-wrap;
3760
+ word-break: break-word;
3761
+ }
3762
+ @media (max-width: 768px) {
3763
+ .elb-property-table__container {
3764
+ margin: 1rem 0 0;
3765
+ }
3766
+ .elb-property-table {
3767
+ font-size: calc(var(--font-size-base) - 2px);
3768
+ display: block;
3769
+ }
3770
+ .elb-property-table thead {
3771
+ display: none;
3772
+ }
3773
+ .elb-property-table tbody {
3774
+ display: block;
3775
+ }
3776
+ .elb-property-table tr {
3777
+ display: block;
3778
+ margin-bottom: 1rem;
3779
+ border: 1px solid var(--border-box);
3780
+ border-radius: var(--radius-box);
3781
+ background: var(--bg-box);
3782
+ position: relative;
3783
+ }
3784
+ .elb-property-table td {
3785
+ display: block;
3786
+ padding: 8px 12px;
3787
+ border-bottom: 1px solid var(--border-box);
3788
+ text-align: left;
3789
+ }
3790
+ .elb-property-table tbody tr:last-child td {
3791
+ border-bottom: 1px solid var(--border-box);
3792
+ }
3793
+ .elb-property-table td:last-child {
3794
+ border-bottom: none;
3795
+ }
3796
+ .elb-property-table td::before {
3797
+ content: attr(data-label);
3798
+ display: block;
3799
+ font-weight: var(--font-weight-semibold);
3800
+ color: var(--color-text-label);
3801
+ font-size: calc(var(--font-size-base) - 3px);
3802
+ text-transform: uppercase;
3803
+ margin-bottom: 4px;
3804
+ }
3805
+ .elb-property-table__property-name,
3806
+ .elb-property-table__property-type {
3807
+ font-size: calc(var(--font-size-base) - 2px);
3808
+ }
3809
+ .elb-property-table__property-cell {
3810
+ width: 100%;
3811
+ padding: 12px 44px 8px 12px;
3812
+ border-bottom: none;
3813
+ }
3814
+ .elb-property-table__property-cell::before {
3815
+ display: none;
3816
+ }
3817
+ .elb-property-table__type-cell,
3818
+ .elb-property-table__description {
3819
+ width: 100%;
3820
+ }
3821
+ .elb-property-table__description {
3822
+ font-size: calc(var(--font-size-base) - 2px);
3823
+ }
3824
+ .elb-property-table__action-cell {
3825
+ position: absolute;
3826
+ top: 4px;
3827
+ right: 4px;
3828
+ width: auto;
3829
+ padding: 0;
3830
+ border: none;
3831
+ background: transparent;
3832
+ }
3833
+ .elb-property-table__action-cell::before {
3834
+ content: none !important;
3835
+ display: none !important;
3836
+ }
3837
+ .elb-property-table__more-button {
3838
+ padding: 4px;
3839
+ width: auto;
3840
+ min-width: 28px;
3841
+ height: 28px;
3842
+ border-radius: 4px;
3843
+ }
3844
+ .elb-property-table__more-button svg {
3845
+ width: 20px;
3846
+ height: 20px;
3847
+ }
3848
+ .elb-property-table__modal-content {
3849
+ margin: 10px;
3850
+ max-height: 90vh;
3851
+ }
3852
+ .elb-property-table__modal-header {
3853
+ padding: 16px 20px 12px;
3854
+ }
3855
+ .elb-property-table__modal-body {
3856
+ padding: 16px 20px 20px;
3857
+ }
3858
+ }
3859
+ .elb-validation-errors-list {
3860
+ display: flex;
3861
+ flex-direction: column;
3862
+ gap: 12px;
3863
+ margin-top: 12px;
3864
+ }
3865
+ .elb-validation-error-item {
3866
+ display: flex;
3867
+ align-items: flex-start;
3868
+ gap: 12px;
3869
+ padding: 12px 16px;
3870
+ background: var(--color-background-secondary);
3871
+ border: 1px solid var(--color-border);
3872
+ border-left: 3px solid var(--color-status-warning);
3873
+ border-radius: var(--radius-box);
3874
+ cursor: pointer;
3875
+ transition: all 0.15s ease;
3876
+ }
3877
+ .elb-validation-error-item:hover {
3878
+ background: var(--color-background-hover);
3879
+ border-left-color: var(--color-status-warning);
3880
+ transform: translateX(2px);
3881
+ }
3882
+ .elb-validation-error-icon {
3883
+ flex-shrink: 0;
3884
+ width: 24px;
3885
+ height: 24px;
3886
+ display: flex;
3887
+ align-items: center;
3888
+ justify-content: center;
3889
+ font-size: 18px;
3890
+ color: var(--color-status-warning);
3891
+ background: rgba(245, 158, 11, 0.1);
3892
+ border-radius: 50%;
3893
+ }
3894
+ .elb-validation-error-content {
3895
+ flex: 1;
3896
+ display: flex;
3897
+ flex-direction: column;
3898
+ gap: 6px;
3899
+ min-width: 0;
3900
+ }
3901
+ .elb-validation-error-path {
3902
+ font-size: calc(var(--font-size-base) + 1px);
3903
+ font-weight: 600;
3904
+ color: var(--color-text);
3905
+ font-family: var(--font-mono);
3906
+ }
3907
+ .elb-validation-error-message {
3908
+ font-size: var(--font-size-base);
3909
+ color: var(--color-status-warning);
3910
+ line-height: 1.4;
3911
+ }
3912
+ .elb-validation-error-value {
3913
+ font-size: calc(var(--font-size-base) - 1px);
3914
+ color: var(--color-text-muted);
3915
+ }
3916
+ .elb-validation-error-value code {
3917
+ background: rgba(0, 0, 0, 0.1);
3918
+ padding: 2px 6px;
3919
+ border-radius: 3px;
3920
+ font-family: var(--font-mono);
3921
+ font-size: calc(var(--font-size-base) - 1px);
3922
+ }
3923
+ .elb-validation-error-action {
3924
+ flex-shrink: 0;
3925
+ font-size: 20px;
3926
+ color: var(--color-text-muted);
3927
+ opacity: 0.5;
3928
+ transition: opacity 0.15s ease;
3929
+ }
3930
+ .elb-validation-error-item:hover .elb-validation-error-action {
3931
+ opacity: 1;
3932
+ }
3933
+ .elb-explorer-box {
3934
+ display: flex;
3935
+ flex-direction: column;
3936
+ background: var(--bg-box);
3937
+ border: 1px solid var(--border-box);
3938
+ border-radius: var(--radius-box);
3939
+ overflow: hidden;
3940
+ box-sizing: border-box;
3941
+ min-height: 200px;
3942
+ height: 400px;
3943
+ }
3944
+ .elb-explorer-box.elb-box--auto-height {
3945
+ height: auto;
3946
+ min-height: 1px;
3947
+ }
3948
+ .elb-explorer-grid > .elb-explorer-box {
3949
+ height: 100%;
3950
+ max-height: none;
3951
+ }
3952
+ .elb-explorer-grid > .elb-explorer-box.elb-box--auto-height {
3953
+ height: auto;
3954
+ }
3955
+ @container grid-container (max-width: 799px) {
3956
+ .elb-explorer-grid > .elb-explorer-box {
3957
+ height: auto;
3958
+ max-height: var(--grid-box-max-height-mobile);
3959
+ }
3960
+ }
3961
+ .elb-mapping-function-editor > .elb-explorer-box {
3962
+ flex: 1;
3963
+ min-height: 0;
3964
+ max-height: none;
3965
+ }
3966
+ .elb-explorer-header {
3967
+ display: flex;
3968
+ align-items: center;
3969
+ justify-content: space-between;
3970
+ padding: var(--spacing-header);
3971
+ background: var(--bg-header);
3972
+ border-bottom: 1px solid var(--border-header);
3973
+ flex-shrink: 0;
3974
+ height: 36px;
3975
+ box-sizing: border-box;
3976
+ }
3977
+ .elb-explorer-label {
3978
+ font-size: var(--font-size-label);
3979
+ font-weight: var(--font-weight-semibold);
3980
+ color: var(--color-text-label);
3981
+ user-select: none;
3982
+ }
3983
+ .elb-explorer-footer {
3984
+ display: flex;
3985
+ align-items: center;
3986
+ justify-content: space-between;
3987
+ padding: var(--spacing-footer);
3988
+ background: var(--bg-footer);
3989
+ border-top: 1px solid var(--border-footer);
3990
+ flex-shrink: 0;
3991
+ height: 40px;
3992
+ box-sizing: border-box;
3993
+ }
3994
+ .elb-explorer-footer:has(.elb-preview-footer) {
3995
+ padding: 0;
3996
+ }
3997
+ .elb-explorer-content {
3998
+ flex: 1;
3999
+ min-height: 0;
4000
+ position: relative;
4001
+ background: var(--bg-box);
4002
+ overflow: hidden;
4003
+ display: flex;
4004
+ flex-direction: column;
4005
+ }
4006
+ .elb-box--auto-height .elb-explorer-content {
4007
+ flex: 0 0 auto;
4008
+ }
4009
+ .elb-explorer-button-group {
4010
+ display: flex;
4011
+ background: var(--bg-button-group);
4012
+ border-radius: var(--radius-button-group);
4013
+ padding: var(--spacing-button-group);
4014
+ border: 1px solid var(--border-button-group);
4015
+ }
4016
+ .elb-mapping-tile-section {
4017
+ margin-bottom: 24px;
4018
+ }
4019
+ .elb-mapping-tile-title {
4020
+ font-size: 11px;
4021
+ font-weight: var(--font-weight-semibold);
4022
+ text-transform: uppercase;
4023
+ letter-spacing: 0.05em;
4024
+ color: var(--color-text-muted);
4025
+ margin: 0 0 8px 0;
4026
+ }
4027
+ .elb-mapping-tile-grid,
4028
+ .elb-mapping-entity-pane-action-list,
4029
+ .elb-mapping-overview-grid {
4030
+ display: grid;
4031
+ grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
4032
+ gap: 8px;
4033
+ }
4034
+ @media (max-width: 799px) {
4035
+ .elb-mapping-tile-grid,
4036
+ .elb-mapping-entity-pane-action-list,
4037
+ .elb-mapping-overview-grid {
4038
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
4039
+ gap: 6px;
4040
+ }
4041
+ }
4042
+ .elb-mapping-overview-input-section {
4043
+ margin-bottom: 24px;
4044
+ }
4045
+ .elb-mapping-overview-input {
4046
+ width: 100%;
4047
+ font-family: var(--font-mono);
4048
+ font-size: 13px;
4049
+ padding: 10px 12px;
4050
+ background: var(--bg-box);
4051
+ border: 1px solid var(--border-color);
4052
+ border-radius: 4px;
4053
+ color: var(--color-text);
4054
+ outline: none;
4055
+ transition: border-color 0.15s ease;
4056
+ }
4057
+ .elb-mapping-overview-input:focus {
4058
+ border-color: var(--color-primary);
4059
+ }
4060
+ .elb-mapping-overview-input.is-existing {
4061
+ border-color: var(--color-status-warning);
4062
+ background: rgba(245, 158, 11, 0.1);
4063
+ }
4064
+ .elb-mapping-overview-input::placeholder {
4065
+ color: var(--color-text-muted);
4066
+ opacity: 0.6;
4067
+ }
4068
+ .elb-mapping-overview-policy-section {
4069
+ margin-bottom: 24px;
4070
+ }
4071
+ .elb-mapping-overview-policy-button {
4072
+ display: flex;
4073
+ align-items: center;
4074
+ justify-content: space-between;
4075
+ width: 100%;
4076
+ padding: 12px 16px;
4077
+ background: var(--bg-header);
4078
+ border: 1px solid var(--border-box);
4079
+ border-radius: 8px;
4080
+ cursor: pointer;
4081
+ transition:
4082
+ background-color 0.15s ease,
4083
+ border-color 0.15s ease,
4084
+ transform 0.2s ease;
4085
+ }
4086
+ .elb-mapping-overview-policy-button:hover {
4087
+ background: var(--bg-box);
4088
+ border-color: var(--color-primary);
4089
+ transform: translateY(-1px);
4090
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
4091
+ }
4092
+ .elb-mapping-overview-policy-label {
4093
+ font-family: var(--font-sans);
4094
+ font-size: 13px;
4095
+ font-weight: var(--font-weight-semibold);
4096
+ color: var(--color-text);
4097
+ }
4098
+ .elb-mapping-overview-policy-count {
4099
+ font-family: var(--font-mono);
4100
+ font-size: 12px;
4101
+ color: var(--color-text-muted);
4102
+ }
4103
+ .elb-mapping-overview-tile {
4104
+ display: flex;
4105
+ flex-direction: column;
4106
+ align-items: center;
4107
+ justify-content: center;
4108
+ padding: 20px 12px;
4109
+ background: var(--bg-header);
4110
+ border: 1px solid var(--border-box);
4111
+ border-radius: 8px;
4112
+ cursor: pointer;
4113
+ text-align: center;
4114
+ transition:
4115
+ background-color 0.15s ease,
4116
+ border-color 0.15s ease,
4117
+ transform 0.2s ease;
4118
+ gap: 4px;
4119
+ }
4120
+ .elb-mapping-overview-tile:hover {
4121
+ background: var(--bg-box);
4122
+ border-color: var(--color-text);
4123
+ transform: translateY(-1px);
4124
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
4125
+ }
4126
+ .elb-mapping-overview-tile-entity {
4127
+ font-family: var(--font-mono);
4128
+ font-size: 13px;
4129
+ font-weight: var(--font-weight-semibold);
4130
+ color: var(--color-text);
4131
+ word-break: break-word;
4132
+ }
4133
+ .elb-mapping-overview-tile-action {
4134
+ font-family: var(--font-mono);
4135
+ font-size: 12px;
4136
+ color: var(--color-text-muted);
4137
+ word-break: break-word;
4138
+ }
4139
+ .elb-mapping-overview-empty {
4140
+ padding: 32px 16px;
4141
+ text-align: center;
4142
+ color: var(--color-text-muted);
4143
+ }
4144
+ .elb-mapping-overview-empty p {
4145
+ margin: 0;
4146
+ font-size: 13px;
4147
+ }
4148
+ .elb-mapping-entity-pane-body {
4149
+ display: flex;
4150
+ flex-direction: column;
4151
+ gap: 24px;
4152
+ }
4153
+ .elb-mapping-entity-pane-input {
4154
+ width: 100%;
4155
+ font-family: var(--font-mono);
4156
+ font-size: 13px;
4157
+ padding: 10px 12px;
4158
+ background: var(--bg-box);
4159
+ border: 1px solid var(--border-color);
4160
+ border-radius: 4px;
4161
+ color: var(--color-text);
4162
+ outline: none;
4163
+ transition: border-color 0.15s ease;
4164
+ }
4165
+ .elb-mapping-entity-pane-input:focus {
4166
+ border-color: var(--color-primary);
4167
+ }
4168
+ .elb-mapping-entity-pane-input.is-error {
4169
+ border-color: var(--color-button-danger);
4170
+ background: rgba(239, 68, 68, 0.05);
4171
+ }
4172
+ .elb-mapping-entity-pane-input::placeholder {
4173
+ color: var(--color-text-muted);
4174
+ opacity: 0.6;
4175
+ }
4176
+ .elb-mapping-entity-pane-hint {
4177
+ display: block;
4178
+ margin-top: 6px;
4179
+ font-size: 11px;
4180
+ color: var(--color-text-muted);
4181
+ }
4182
+ .elb-mapping-entity-pane-action-tile {
4183
+ display: flex;
4184
+ flex-direction: column;
4185
+ align-items: center;
4186
+ justify-content: center;
4187
+ padding: 20px 12px;
4188
+ background: var(--bg-header);
4189
+ border: 1px solid var(--border-box);
4190
+ border-radius: 8px;
4191
+ cursor: pointer;
4192
+ text-align: center;
4193
+ transition:
4194
+ background-color 0.15s ease,
4195
+ border-color 0.15s ease,
4196
+ transform 0.2s ease;
4197
+ gap: 4px;
4198
+ }
4199
+ .elb-mapping-entity-pane-action-tile:hover {
4200
+ background: var(--bg-box);
4201
+ border-color: var(--color-text);
4202
+ transform: translateY(-1px);
4203
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
4204
+ }
4205
+ .elb-mapping-entity-pane-action-tile-action {
4206
+ font-family: var(--font-mono);
4207
+ font-size: 13px;
4208
+ font-weight: var(--font-weight-semibold);
4209
+ color: var(--color-text);
4210
+ word-break: break-word;
4211
+ }
4212
+ .elb-mapping-entity-pane-action-tile-preview {
4213
+ font-family: var(--font-mono);
4214
+ font-size: 12px;
4215
+ color: var(--color-text-muted);
4216
+ word-break: break-word;
4217
+ max-width: 100%;
4218
+ overflow: hidden;
4219
+ white-space: nowrap;
4220
+ }
4221
+ .elb-mapping-entity-pane-action-tile-preview.is-long {
4222
+ mask-image:
4223
+ linear-gradient(
4224
+ to right,
4225
+ black 0%,
4226
+ black 70%,
4227
+ transparent 100%);
4228
+ -webkit-mask-image:
4229
+ linear-gradient(
4230
+ to right,
4231
+ black 0%,
4232
+ black 70%,
4233
+ transparent 100%);
4234
+ }
4235
+ .elb-mapping-entity-pane-empty {
4236
+ padding: 32px 16px;
4237
+ text-align: center;
4238
+ color: var(--color-text-muted);
4239
+ }
4240
+ .elb-mapping-entity-pane-empty p {
4241
+ margin: 0;
4242
+ font-size: 13px;
4243
+ }
4244
+ .elb-mapping-pane {
4245
+ display: flex;
4246
+ flex-direction: column;
4247
+ height: 100%;
4248
+ background: var(--bg-box);
4249
+ }
4250
+ .elb-mapping-pane-header--sticky {
4251
+ position: sticky;
4252
+ top: 0;
4253
+ z-index: 10;
4254
+ flex-shrink: 0;
4255
+ padding: 8px 16px 8px 16px;
4256
+ background: var(--bg-header);
4257
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
4258
+ }
4259
+ .elb-mapping-pane-header {
4260
+ flex-shrink: 0;
4261
+ display: flex;
4262
+ align-items: center;
4263
+ justify-content: space-between;
4264
+ padding: 12px 16px;
4265
+ background: var(--bg-header);
4266
+ border-bottom: 1px solid var(--border-box);
4267
+ }
4268
+ .elb-mapping-pane-title {
4269
+ font-size: var(--font-size-base);
4270
+ font-weight: var(--font-weight-semibold);
4271
+ color: var(--color-text);
4272
+ margin: 0;
4273
+ }
4274
+ .elb-mapping-pane-content {
4275
+ flex: 1 1 auto;
4276
+ min-height: 0;
4277
+ overflow-y: auto;
4278
+ overflow-x: hidden;
4279
+ padding: 16px;
4280
+ padding-bottom: 20vh;
4281
+ }
4282
+ @media (max-width: 799px) {
4283
+ .elb-mapping-pane-content {
4284
+ padding: 12px;
4285
+ padding-bottom: 10vh;
4286
+ }
4287
+ }
4288
+ .elb-mapping-pane-field {
4289
+ margin-bottom: 20px;
4290
+ }
4291
+ .elb-mapping-pane-field:last-child {
4292
+ margin-bottom: 0;
4293
+ }
4294
+ @media (max-width: 799px) {
4295
+ .elb-mapping-pane-field {
4296
+ margin-bottom: 16px;
4297
+ }
4298
+ }
4299
+ .elb-mapping-pane-label {
4300
+ display: block;
4301
+ font-size: var(--font-size-label);
4302
+ font-weight: var(--font-weight-semibold);
4303
+ color: var(--color-text-label);
4304
+ margin-bottom: 6px;
4305
+ }
4306
+ @media (max-width: 799px) {
4307
+ .elb-mapping-pane-label {
4308
+ font-size: 12px;
4309
+ }
4310
+ }
4311
+ .elb-mapping-pane-required {
4312
+ color: var(--color-button-danger);
4313
+ margin-left: 2px;
4314
+ }
4315
+ .elb-mapping-pane-description {
4316
+ font-size: var(--font-size-toggle);
4317
+ color: var(--color-text-muted);
4318
+ margin-bottom: 8px;
4319
+ line-height: 1.4;
4320
+ }
4321
+ .elb-mapping-pane-hint {
4322
+ font-size: var(--font-size-toggle);
4323
+ color: var(--color-text-muted);
4324
+ margin-top: 6px;
4325
+ font-style: italic;
4326
+ }
4327
+ .elb-mapping-pane-hint--warning {
4328
+ color: var(--color-status-warning);
4329
+ }
4330
+ .elb-mapping-tree-sidebar {
4331
+ display: flex;
4332
+ flex-direction: column;
4333
+ width: 200px;
4334
+ height: 100%;
4335
+ background: var(--bg-box);
4336
+ border-right: 1px solid var(--border-box);
4337
+ overflow: hidden;
4338
+ position: relative;
4339
+ }
4340
+ @media (max-width: 799px) {
4341
+ .elb-mapping-tree-sidebar {
4342
+ width: 80vw;
4343
+ max-width: 320px;
4344
+ }
4345
+ }
4346
+ .elb-mapping-tree-content {
4347
+ flex: 1;
4348
+ overflow-y: auto;
4349
+ position: relative;
4350
+ scrollbar-width: thin;
4351
+ scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
4352
+ }
4353
+ .elb-mapping-tree-content::-webkit-scrollbar {
4354
+ width: 8px;
4355
+ }
4356
+ .elb-mapping-tree-content::-webkit-scrollbar-track {
4357
+ background: transparent;
4358
+ }
4359
+ .elb-mapping-tree-content::-webkit-scrollbar-thumb {
4360
+ background: rgba(0, 0, 0, 0.2);
4361
+ border-radius: 4px;
4362
+ }
4363
+ .elb-mapping-tree-content::-webkit-scrollbar-thumb:hover {
4364
+ background: rgba(0, 0, 0, 0.2);
4365
+ }
4366
+ [data-theme=dark] .elb-mapping-tree-content {
4367
+ scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
4368
+ }
4369
+ [data-theme=dark] .elb-mapping-tree-content::-webkit-scrollbar-thumb {
4370
+ background: rgba(255, 255, 255, 0.2);
4371
+ }
4372
+ [data-theme=dark] .elb-mapping-tree-content::-webkit-scrollbar-thumb:hover {
4373
+ background: rgba(255, 255, 255, 0.2);
4374
+ }
4375
+ .elb-mapping-tree-node {
4376
+ user-select: none;
4377
+ position: relative;
4378
+ }
4379
+ .elb-mapping-tree-node-content {
4380
+ display: flex;
4381
+ align-items: center;
4382
+ min-height: 28px;
4383
+ padding-top: 1px;
4384
+ padding-bottom: 1px;
4385
+ padding-right: 8px;
4386
+ cursor: pointer;
4387
+ background: transparent;
4388
+ gap: 4px;
4389
+ transition: background-color 0.15s ease;
4390
+ }
4391
+ .elb-mapping-tree-node-content:hover {
4392
+ background: var(--bg-button-hover);
4393
+ }
4394
+ .elb-mapping-tree-node-content.is-selected {
4395
+ background: var(--bg-button-hover);
4396
+ }
4397
+ .elb-mapping-tree-node-content.is-selected:hover {
4398
+ background: var(--bg-button-hover);
4399
+ }
4400
+ .elb-mapping-tree-node--level-0 > .elb-mapping-tree-node-content {
4401
+ padding-left: 4px;
4402
+ position: sticky;
4403
+ top: 0;
4404
+ z-index: 5;
4405
+ background: var(--bg-box);
4406
+ }
4407
+ .elb-mapping-tree-node--level-1 > .elb-mapping-tree-node-content {
4408
+ padding-left: 16px;
4409
+ position: sticky;
4410
+ top: 28px;
4411
+ z-index: 4;
4412
+ background: var(--bg-box);
4413
+ }
4414
+ .elb-mapping-tree-node--level-2 > .elb-mapping-tree-node-content {
4415
+ padding-left: 28px;
4416
+ position: sticky;
4417
+ top: 56px;
4418
+ z-index: 3;
4419
+ background: var(--bg-box);
4420
+ }
4421
+ .elb-mapping-tree-node--level-3 > .elb-mapping-tree-node-content {
4422
+ padding-left: 40px;
4423
+ position: sticky;
4424
+ top: 84px;
4425
+ z-index: 2;
4426
+ background: var(--bg-box);
4427
+ }
4428
+ .elb-mapping-tree-node--level-4 > .elb-mapping-tree-node-content {
4429
+ padding-left: 52px;
4430
+ position: sticky;
4431
+ top: 112px;
4432
+ z-index: 1;
4433
+ background: var(--bg-box);
4434
+ }
4435
+ .elb-mapping-tree-toggle {
4436
+ display: inline-flex;
4437
+ align-items: center;
4438
+ justify-content: center;
4439
+ width: 20px;
4440
+ flex-shrink: 0;
4441
+ background: none;
4442
+ border: none;
4443
+ cursor: pointer;
4444
+ padding: 0;
4445
+ font-size: 14px;
4446
+ line-height: 1;
4447
+ color: var(--color-text-muted);
4448
+ transition: color 0.15s ease, transform 0.15s ease;
4449
+ transform: rotate(0deg);
4450
+ }
4451
+ .elb-mapping-tree-toggle.is-expanded {
4452
+ transform: rotate(90deg);
4453
+ }
4454
+ .elb-mapping-tree-toggle:hover {
4455
+ color: var(--color-text);
4456
+ }
4457
+ .elb-mapping-tree-spacer {
4458
+ width: 20px;
4459
+ flex-shrink: 0;
4460
+ display: inline-block;
4461
+ }
4462
+ .elb-mapping-tree-entity-button {
4463
+ display: flex;
4464
+ align-items: center;
4465
+ gap: 6px;
4466
+ flex: 1;
4467
+ background: none;
4468
+ border: none;
4469
+ padding: 0;
4470
+ cursor: pointer;
4471
+ text-align: left;
4472
+ min-height: 26px;
4473
+ }
4474
+ .elb-mapping-tree-label {
4475
+ background: none;
4476
+ border: none;
4477
+ cursor: pointer;
4478
+ padding: 0;
4479
+ font-size: 13px;
4480
+ font-family: var(--font-family-base);
4481
+ color: var(--color-text);
4482
+ text-align: left;
4483
+ flex: 1;
4484
+ }
4485
+ .elb-mapping-tree-label--entity,
4486
+ .elb-mapping-tree-label--rule,
4487
+ .elb-mapping-tree-label--property {
4488
+ color: var(--color-text);
4489
+ font-size: 13px;
4490
+ font-weight: normal;
4491
+ }
4492
+ .elb-mapping-tree-label--nested {
4493
+ font-size: 12px;
4494
+ }
4495
+ .is-selected .elb-mapping-tree-label,
4496
+ .is-ancestor .elb-mapping-tree-label {
4497
+ font-weight: var(--font-weight-semibold);
4498
+ }
4499
+ .elb-mapping-tree-delete-button {
4500
+ display: inline-flex;
4501
+ align-items: center;
4502
+ justify-content: center;
4503
+ width: 20px;
4504
+ height: 20px;
4505
+ padding: 0;
4506
+ background: none;
4507
+ border: none;
4508
+ border-radius: 4px;
4509
+ cursor: pointer;
4510
+ flex-shrink: 0;
4511
+ font-size: 16px;
4512
+ line-height: 1;
4513
+ color: transparent;
4514
+ transition: all 0.15s ease;
4515
+ }
4516
+ .elb-mapping-tree-node-content:hover .elb-mapping-tree-delete-button {
4517
+ color: var(--color-text-muted);
4518
+ }
4519
+ .elb-mapping-tree-delete-button:hover {
4520
+ background: rgba(231, 76, 60, 0.1);
4521
+ color: #e74c3c !important;
4522
+ }
4523
+ .elb-mapping-tree-add-button {
4524
+ display: none;
4525
+ align-items: center;
4526
+ justify-content: center;
4527
+ margin-left: auto;
4528
+ width: 20px;
4529
+ height: 20px;
4530
+ padding: 0;
4531
+ background: none;
4532
+ border: none;
4533
+ border-radius: 3px;
4534
+ cursor: pointer;
4535
+ font-size: 16px;
4536
+ line-height: 1;
4537
+ color: var(--color-text);
4538
+ opacity: 0.6;
4539
+ transition: opacity 0.15s ease, background-color 0.15s ease;
4540
+ }
4541
+ .elb-mapping-tree-node-content.is-entity:hover .elb-mapping-tree-add-button {
4542
+ display: flex;
4543
+ }
4544
+ .elb-mapping-tree-add-button:hover {
4545
+ opacity: 1;
4546
+ background: var(--bg-button-hover);
4547
+ }
4548
+ .elb-mapping-tree-add-button:active {
4549
+ background: var(--bg-dropdown-option-highlighted);
4550
+ }
4551
+ .elb-mapping-tree-add-action {
4552
+ display: flex;
4553
+ align-items: center;
4554
+ gap: 4px;
4555
+ padding: 2px 8px 2px 4px;
4556
+ min-height: 28px;
4557
+ }
4558
+ .elb-mapping-tree-add-input {
4559
+ flex: 1;
4560
+ font-family: var(--font-mono);
4561
+ font-size: 13px;
4562
+ padding: 4px 8px;
4563
+ background: var(--bg-box);
4564
+ border: 1px solid var(--border-color);
4565
+ border-radius: 4px;
4566
+ color: var(--color-text);
4567
+ outline: none;
4568
+ transition: border-color 0.15s ease;
4569
+ }
4570
+ .elb-mapping-tree-add-input:focus {
4571
+ border-color: var(--color-primary);
4572
+ }
4573
+ .elb-mapping-tree-add-input.is-error {
4574
+ border-color: #e74c3c;
4575
+ background: rgba(231, 76, 60, 0.1);
4576
+ }
4577
+ .elb-mapping-tree-add-input::placeholder {
4578
+ color: #999;
4579
+ opacity: 0.6;
4580
+ }
4581
+ .elb-mapping-tree-add-entity-section {
4582
+ position: sticky;
4583
+ bottom: 0;
4584
+ z-index: 6;
4585
+ padding: 30px 24px 8px 24px;
4586
+ background:
4587
+ linear-gradient(
4588
+ to bottom,
4589
+ transparent 0%,
4590
+ var(--bg-box) 20px,
4591
+ var(--bg-box) 100%);
4592
+ pointer-events: none;
4593
+ }
4594
+ .elb-mapping-tree-add-entity-button {
4595
+ display: flex;
4596
+ align-items: center;
4597
+ justify-content: center;
4598
+ gap: 6px;
4599
+ width: 100%;
4600
+ padding: 10px 16px;
4601
+ background: var(--bg-box);
4602
+ border: 1px solid var(--border-input);
4603
+ border-radius: 6px;
4604
+ cursor: pointer;
4605
+ font-family: var(--font-family-base);
4606
+ font-size: 14px;
4607
+ font-weight: var(--font-weight-medium);
4608
+ color: var(--color-text);
4609
+ transition: all 0.15s ease;
4610
+ box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.05);
4611
+ pointer-events: auto;
4612
+ }
4613
+ .elb-mapping-tree-add-entity-button:hover {
4614
+ background: var(--bg-button-hover);
4615
+ border-color: var(--color-text);
4616
+ }
4617
+ .elb-mapping-tree-add-entity-button:active {
4618
+ background: var(--bg-button-active);
4619
+ transform: scale(0.98);
4620
+ }
4621
+ .elb-mapping-tree-add-entity {
4622
+ display: flex;
4623
+ align-items: center;
4624
+ gap: 4px;
4625
+ width: 100%;
4626
+ pointer-events: auto;
4627
+ }
4628
+ .elb-mapping-tree-add-entity-input {
4629
+ flex: 1;
4630
+ font-family: var(--font-mono);
4631
+ font-size: 13px;
4632
+ padding: 4px 8px;
4633
+ background: var(--bg-box);
4634
+ border: 1px solid var(--border-color);
4635
+ border-radius: 4px;
4636
+ color: var(--color-text);
4637
+ outline: none;
4638
+ transition: border-color 0.15s ease;
4639
+ }
4640
+ .elb-mapping-tree-add-entity-input:focus {
4641
+ border-color: var(--color-primary);
4642
+ }
4643
+ .elb-mapping-tree-add-entity-input.is-error {
4644
+ border-color: #e74c3c;
4645
+ background: rgba(231, 76, 60, 0.1);
4646
+ }
4647
+ .elb-mapping-tree-add-entity-input::placeholder {
4648
+ color: #999;
4649
+ opacity: 0.6;
4650
+ }
4651
+ .elb-mapping-tree-bottom-padding {
4652
+ height: 200px;
4653
+ flex-shrink: 0;
4654
+ }
4655
+ .elb-mapping-tree-children {
4656
+ margin-left: 0;
4657
+ }
4658
+ .elb-mapping-tree-type-badge {
4659
+ margin-left: 4px;
4660
+ font-size: 9px;
4661
+ padding: 0 2px;
4662
+ background: transparent;
4663
+ color: #999;
4664
+ text-transform: lowercase;
4665
+ font-weight: normal;
4666
+ }
4667
+ .elb-mapping-tree-close-button {
4668
+ display: none;
4669
+ }
4670
+ @media (max-width: 799px) {
4671
+ .elb-mapping-tree-close-button {
4672
+ display: flex;
4673
+ align-items: center;
4674
+ justify-content: center;
4675
+ position: absolute;
4676
+ top: 5px;
4677
+ right: 5px;
4678
+ width: 44px;
4679
+ height: 44px;
4680
+ padding: 0;
4681
+ background: none;
4682
+ border: none;
4683
+ cursor: pointer;
4684
+ color: var(--color-text-muted);
4685
+ transition: all 0.2s ease;
4686
+ z-index: 10;
4687
+ }
4688
+ .elb-mapping-tree-close-button:hover {
4689
+ color: var(--color-text);
4690
+ transform: scale(1.1);
4691
+ }
4692
+ .elb-mapping-tree-close-button:active {
4693
+ transform: scale(0.9);
4694
+ }
4695
+ .elb-mapping-tree-close-button svg {
4696
+ display: block;
4697
+ }
4698
+ }
4699
+ .elb-mapping-editor-tabs {
4700
+ display: flex;
4701
+ height: 100%;
4702
+ width: 100%;
4703
+ background: var(--bg-box);
4704
+ position: relative;
4705
+ overflow: hidden;
4706
+ }
4707
+ .elb-mapping-editor-sidebar {
4708
+ flex-shrink: 0;
4709
+ border-right: 1px solid var(--border-box);
4710
+ }
4711
+ @media (max-width: 799px) {
4712
+ .elb-mapping-editor-sidebar {
4713
+ position: absolute;
4714
+ top: 0;
4715
+ left: 0;
4716
+ bottom: 0;
4717
+ z-index: 101;
4718
+ width: 80vw;
4719
+ max-width: 320px;
4720
+ box-shadow: 2px 0 24px rgba(0, 0, 0, 0.25);
4721
+ animation: slideInFromLeft 0.25s ease-out;
4722
+ }
4723
+ }
4724
+ @media (max-width: 799px) {
4725
+ .elb-mapping-editor-mobile-backdrop {
4726
+ position: absolute;
4727
+ top: 0;
4728
+ left: 0;
4729
+ right: 0;
4730
+ bottom: 0;
4731
+ background: rgba(0, 0, 0, 0.3);
4732
+ backdrop-filter: blur(2px);
4733
+ z-index: 100;
4734
+ animation: fadeIn 0.2s ease;
4735
+ }
4736
+ }
4737
+ @keyframes fadeIn {
4738
+ from {
4739
+ opacity: 0;
4740
+ }
4741
+ to {
4742
+ opacity: 1;
4743
+ }
4744
+ }
4745
+ .elb-mapping-editor-main {
4746
+ flex: 1;
4747
+ display: flex;
4748
+ flex-direction: column;
4749
+ min-width: 0;
4750
+ overflow: hidden;
4751
+ }
4752
+ .elb-mapping-editor-content {
4753
+ flex: 1;
4754
+ min-height: 0;
4755
+ background: var(--bg-box);
4756
+ }
4757
+ .elb-mapping-editor-empty {
4758
+ display: flex;
4759
+ align-items: center;
4760
+ justify-content: center;
4761
+ height: 100%;
4762
+ padding: 40px 20px;
4763
+ }
4764
+ .elb-mapping-editor-empty-content {
4765
+ text-align: center;
4766
+ max-width: 500px;
4767
+ }
4768
+ .elb-mapping-editor-empty-content h3 {
4769
+ font-size: 18px;
4770
+ font-weight: var(--font-weight-semibold);
4771
+ color: var(--color-text);
4772
+ margin: 0 0 12px 0;
4773
+ }
4774
+ .elb-mapping-editor-empty-content p {
4775
+ font-size: var(--font-size-base);
4776
+ color: var(--color-text-muted);
4777
+ margin: 0 0 20px 0;
4778
+ line-height: 1.5;
4779
+ }
4780
+ .elb-mapping-editor-empty-hint {
4781
+ padding: 12px 16px;
4782
+ background: var(--bg-header);
4783
+ border: 1px solid var(--border-box);
4784
+ border-radius: var(--radius-button);
4785
+ font-size: var(--font-size-label);
4786
+ color: var(--color-text);
4787
+ text-align: left;
4788
+ }
4789
+ .elb-mapping-editor-empty-hint strong {
4790
+ color: var(--color-button-primary);
4791
+ font-weight: var(--font-weight-semibold);
4792
+ }
4793
+ .elb-mapping-editor-overlay {
4794
+ position: absolute;
4795
+ top: 0;
4796
+ left: 0;
4797
+ right: 0;
4798
+ bottom: 0;
4799
+ background: rgba(0, 0, 0, 0.3);
4800
+ z-index: 100;
4801
+ }
4802
+ @media (max-width: 799px) {
4803
+ .elb-mapping-editor-overlay {
4804
+ backdrop-filter: blur(2px);
4805
+ }
4806
+ }
4807
+ .elb-mapping-editor-overlay-content {
4808
+ position: absolute;
4809
+ top: 0;
4810
+ left: 0;
4811
+ bottom: 0;
4812
+ z-index: 101;
4813
+ box-shadow: 2px 0 12px rgba(0, 0, 0, 0.15);
4814
+ animation: slideInFromLeft 0.25s ease-out;
4815
+ }
4816
+ @media (max-width: 799px) {
4817
+ .elb-mapping-editor-overlay-content {
4818
+ height: 100%;
4819
+ box-shadow: 2px 0 24px rgba(0, 0, 0, 0.25);
4820
+ }
4821
+ }
4822
+ @keyframes slideInFromLeft {
4823
+ from {
4824
+ transform: translateX(-100%);
4825
+ }
4826
+ to {
4827
+ transform: translateX(0);
4828
+ }
4829
+ }
4830
+ @keyframes slideOutToLeft {
4831
+ from {
4832
+ transform: translateX(0);
4833
+ }
4834
+ to {
4835
+ transform: translateX(-100%);
4836
+ }
4837
+ }
4838
+ @media (max-width: 799px) {
4839
+ .elb-mapping-editor-overlay {
4840
+ display: block;
4841
+ }
4842
+ .elb-mapping-editor-main {
4843
+ width: 100%;
4844
+ flex: 1;
4845
+ }
4846
+ }
4847
+ .elb-mapping-rule-section + .elb-mapping-rule-section {
4848
+ margin-top: 32px;
4849
+ }
4850
+ .elb-mapping-rule-section-title {
4851
+ font-size: var(--font-size-base);
4852
+ font-weight: var(--font-weight-semibold);
4853
+ color: var(--color-text);
4854
+ margin: 0 0 6px 0;
4855
+ }
4856
+ .elb-mapping-rule-section-description {
4857
+ font-size: var(--font-size-toggle);
4858
+ color: var(--color-text-muted);
4859
+ margin: 0 0 16px 0;
4860
+ line-height: 1.4;
4861
+ }
4862
+ .elb-mapping-rule-section-grid {
4863
+ display: grid;
4864
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
4865
+ gap: 16px;
4866
+ }
4867
+ .elb-mapping-map-overview {
4868
+ display: flex;
4869
+ flex-direction: column;
4870
+ height: 100%;
4871
+ background: var(--bg-box);
4872
+ }
4873
+ .elb-mapping-key-tabs {
4874
+ display: flex;
4875
+ align-items: center;
4876
+ gap: 4px;
4877
+ padding: 12px 16px;
4878
+ background: var(--bg-header);
4879
+ border-bottom: 1px solid var(--border-box);
4880
+ overflow-x: auto;
4881
+ }
4882
+ .elb-mapping-key-tab {
4883
+ display: flex;
4884
+ align-items: center;
4885
+ gap: 8px;
4886
+ padding: 6px 12px;
4887
+ background: transparent;
4888
+ border: 1px solid transparent;
4889
+ border-radius: 6px;
4890
+ font-size: 13px;
4891
+ font-family: var(--font-mono);
4892
+ color: var(--color-text);
4893
+ cursor: pointer;
4894
+ transition: all 0.15s ease;
4895
+ white-space: nowrap;
4896
+ }
4897
+ .elb-mapping-key-tab:hover {
4898
+ background: var(--bg-box);
4899
+ border-color: var(--border-box);
4900
+ }
4901
+ .elb-mapping-key-tab.is-active {
4902
+ background: var(--bg-box);
4903
+ border-color: var(--color-primary);
4904
+ color: var(--color-text);
4905
+ }
4906
+ .elb-mapping-key-tab-close {
4907
+ padding: 0;
4908
+ background: none;
4909
+ border: none;
4910
+ cursor: pointer;
4911
+ font-size: 16px;
4912
+ line-height: 1;
4913
+ color: var(--color-text-muted);
4914
+ transition: color 0.15s ease;
4915
+ }
4916
+ .elb-mapping-key-tab-close:hover {
4917
+ color: var(--color-button-danger);
4918
+ }
4919
+ .elb-mapping-key-content {
4920
+ flex: 1;
4921
+ overflow-y: auto;
4922
+ padding: 20px;
4923
+ }