datajunction-ui 0.0.44 → 0.0.46

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.
@@ -489,6 +489,7 @@
489
489
  display: flex;
490
490
  align-items: center;
491
491
  gap: 8px;
492
+ min-width: 0; /* Allow children to shrink */
492
493
  }
493
494
 
494
495
  .preset-button {
@@ -502,6 +503,8 @@
502
503
  color: var(--planner-text);
503
504
  font-size: 11px;
504
505
  font-weight: 500;
506
+ min-width: 0; /* Allow button to shrink for truncation */
507
+ flex: 1;
505
508
  font-family: var(--font-display);
506
509
  cursor: pointer;
507
510
  transition: all 0.15s ease;
@@ -555,6 +558,7 @@
555
558
  cursor: pointer;
556
559
  transition: all 0.15s ease;
557
560
  white-space: nowrap;
561
+ flex-shrink: 0;
558
562
  }
559
563
 
560
564
  .clear-all-btn:hover {
@@ -604,17 +608,41 @@
604
608
  gap: 2px;
605
609
  width: 100%;
606
610
  padding: 8px 12px;
611
+ padding-right: 32px;
607
612
  background: transparent;
608
613
  border: none;
609
614
  text-align: left;
610
615
  cursor: pointer;
611
616
  transition: background 0.1s ease;
617
+ position: relative;
612
618
  }
613
619
 
614
620
  .cube-option:hover {
615
621
  background: var(--planner-surface);
616
622
  }
617
623
 
624
+ .cube-option.selected {
625
+ background: rgba(88, 0, 118, 0.08);
626
+ }
627
+
628
+ .cube-option.selected:hover {
629
+ background: rgba(88, 0, 118, 0.12);
630
+ }
631
+
632
+ .cube-option.selected .cube-name {
633
+ color: var(--accent-cube);
634
+ }
635
+
636
+ .cube-selected-icon {
637
+ position: absolute;
638
+ right: 12px;
639
+ top: 50%;
640
+ transform: translateY(-50%);
641
+ color: var(--accent-cube);
642
+ font-size: 12px;
643
+ font-weight: 600;
644
+ }
645
+
618
646
  .cube-name {
619
647
  font-size: 12px;
620
648
  font-weight: 500;
@@ -1140,13 +1168,6 @@
1140
1168
  border-bottom: 1px solid var(--planner-border);
1141
1169
  }
1142
1170
 
1143
- .details-title-row {
1144
- display: flex;
1145
- justify-content: space-between;
1146
- align-items: center;
1147
- margin-bottom: 10px;
1148
- }
1149
-
1150
1171
  .details-type-badge {
1151
1172
  font-size: 9px;
1152
1173
  font-weight: 700;
@@ -1197,7 +1218,7 @@
1197
1218
  }
1198
1219
 
1199
1220
  .details-title {
1200
- margin: 0 0 4px;
1221
+ margin: 0;
1201
1222
  font-size: 16px;
1202
1223
  font-weight: 700;
1203
1224
  color: var(--planner-text);
@@ -1212,6 +1233,44 @@
1212
1233
  word-break: break-all;
1213
1234
  }
1214
1235
 
1236
+ /* Info row below title - shows metrics count, materialization status, dialect, freshness */
1237
+ .details-info-row {
1238
+ margin: 4px 0 0;
1239
+ font-size: 11px;
1240
+ color: var(--planner-text-dim);
1241
+ font-family: var(--font-display);
1242
+ }
1243
+
1244
+ .info-materialized {
1245
+ color: #7c3aed;
1246
+ font-weight: 500;
1247
+ }
1248
+
1249
+ .info-base-tables {
1250
+ color: #d97706;
1251
+ font-weight: 500;
1252
+ }
1253
+
1254
+ /* SQL pane info row */
1255
+ .sql-pane-info {
1256
+ font-size: 11px;
1257
+ color: var(--planner-text-dim);
1258
+ flex: 1;
1259
+ }
1260
+
1261
+ .sql-pane-info .info-materialized {
1262
+ color: #7c3aed;
1263
+ font-weight: 500;
1264
+ }
1265
+
1266
+ /* SQL info inline (next to Optimized/Raw toggle) */
1267
+ .sql-info-inline {
1268
+ font-size: 11px;
1269
+ color: var(--planner-text-dim);
1270
+ margin-left: auto;
1271
+ margin-right: 1em;
1272
+ }
1273
+
1215
1274
  /* Details Sections */
1216
1275
  .details-section {
1217
1276
  padding: 14px 16px;
@@ -1231,7 +1290,7 @@
1231
1290
  display: flex;
1232
1291
  align-items: center;
1233
1292
  gap: 6px;
1234
- margin: 0 0 10px;
1293
+ margin: 0;
1235
1294
  font-size: 10px;
1236
1295
  font-weight: 600;
1237
1296
  text-transform: uppercase;
@@ -3103,6 +3162,99 @@ a.action-btn {
3103
3162
  font-size: 8px;
3104
3163
  }
3105
3164
 
3165
+ /* Combobox-style input: chips + search combined */
3166
+ .combobox-input {
3167
+ display: flex;
3168
+ flex-direction: column;
3169
+ gap: 4px;
3170
+ padding: 6px 10px;
3171
+ background: var(--planner-bg);
3172
+ border: 1px solid var(--planner-border);
3173
+ border-radius: var(--radius-md);
3174
+ margin: 8px 12px;
3175
+ min-height: 32px;
3176
+ cursor: text;
3177
+ transition: border-color 0.15s;
3178
+ }
3179
+
3180
+ .combobox-input:focus-within {
3181
+ border-color: var(--accent-primary);
3182
+ }
3183
+
3184
+ .combobox-chips {
3185
+ display: flex;
3186
+ flex-wrap: wrap;
3187
+ gap: 4px;
3188
+ align-items: center;
3189
+ }
3190
+
3191
+ .combobox-chips.collapsed {
3192
+ max-height: 56px; /* ~2 rows */
3193
+ overflow-y: auto;
3194
+ transition: max-height 0.2s ease;
3195
+ }
3196
+
3197
+ .combobox-chips.expanded {
3198
+ max-height: 200px;
3199
+ overflow-y: auto;
3200
+ transition: max-height 0.2s ease;
3201
+ }
3202
+
3203
+ .combobox-input-row {
3204
+ display: flex;
3205
+ align-items: center;
3206
+ gap: 4px;
3207
+ }
3208
+
3209
+ .combobox-search {
3210
+ flex: 1;
3211
+ min-width: 60px;
3212
+ border: none;
3213
+ background: transparent;
3214
+ outline: none;
3215
+ font-size: 12px;
3216
+ color: var(--planner-text);
3217
+ padding: 2px 0;
3218
+ }
3219
+
3220
+ .combobox-search::placeholder {
3221
+ color: var(--planner-text-dim);
3222
+ }
3223
+
3224
+ .combobox-action {
3225
+ flex-shrink: 0;
3226
+ padding: 2px 8px;
3227
+ background: transparent;
3228
+ border: none;
3229
+ color: var(--planner-text-muted);
3230
+ font-size: 11px;
3231
+ cursor: pointer;
3232
+ transition: color 0.15s;
3233
+ }
3234
+
3235
+ .combobox-action:hover {
3236
+ color: var(--accent-primary);
3237
+ }
3238
+
3239
+ .chips-toggle-inline {
3240
+ flex-shrink: 0;
3241
+ padding: 2px 6px;
3242
+ background: var(--planner-bg-hover, #f1f5f9);
3243
+ border: 1px solid var(--planner-border);
3244
+ border-radius: var(--radius-sm);
3245
+ color: var(--planner-text-muted);
3246
+ font-size: 9px;
3247
+ font-weight: 500;
3248
+ cursor: pointer;
3249
+ transition: all 0.15s ease;
3250
+ align-self: center;
3251
+ }
3252
+
3253
+ .chips-toggle-inline:hover {
3254
+ background: var(--planner-border);
3255
+ color: var(--planner-text);
3256
+ }
3257
+
3106
3258
  .selected-chip {
3107
3259
  display: inline-flex;
3108
3260
  align-items: center;
@@ -3113,12 +3265,6 @@ a.action-btn {
3113
3265
  font-weight: 500;
3114
3266
  font-family: var(--font-display);
3115
3267
  transition: all 0.12s ease;
3116
- max-width: 140px;
3117
- }
3118
-
3119
- .selected-chip .chip-label {
3120
- overflow: hidden;
3121
- text-overflow: ellipsis;
3122
3268
  white-space: nowrap;
3123
3269
  }
3124
3270
 
@@ -3177,3 +3323,607 @@ a.action-btn {
3177
3323
  .dimension-chip .chip-remove:hover {
3178
3324
  background: rgba(217, 119, 6, 0.15);
3179
3325
  }
3326
+
3327
+ /* =================================
3328
+ Filters Section
3329
+ ================================= */
3330
+
3331
+ .filters-section {
3332
+ flex: 0 0 auto !important;
3333
+ min-height: auto !important;
3334
+ overflow: visible !important;
3335
+ }
3336
+
3337
+ .filter-chips-container {
3338
+ display: flex;
3339
+ flex-wrap: wrap;
3340
+ gap: 6px;
3341
+ padding: 8px 12px;
3342
+ }
3343
+
3344
+ .filter-chip {
3345
+ display: inline-flex;
3346
+ align-items: center;
3347
+ gap: 4px;
3348
+ padding: 4px 6px 4px 10px;
3349
+ background: rgba(59, 130, 246, 0.1);
3350
+ border: 1px solid rgba(59, 130, 246, 0.3);
3351
+ border-radius: var(--radius-sm);
3352
+ font-size: 11px;
3353
+ font-family: var(--font-display);
3354
+ color: var(--accent-primary);
3355
+ max-width: 100%;
3356
+ }
3357
+
3358
+ .filter-chip-text {
3359
+ overflow: hidden;
3360
+ text-overflow: ellipsis;
3361
+ white-space: nowrap;
3362
+ }
3363
+
3364
+ .filter-chip-remove {
3365
+ display: flex;
3366
+ align-items: center;
3367
+ justify-content: center;
3368
+ width: 14px;
3369
+ height: 14px;
3370
+ padding: 0;
3371
+ background: transparent;
3372
+ border: none;
3373
+ border-radius: 2px;
3374
+ color: var(--accent-primary);
3375
+ font-size: 14px;
3376
+ line-height: 1;
3377
+ cursor: pointer;
3378
+ opacity: 0.6;
3379
+ transition: all 0.12s ease;
3380
+ }
3381
+
3382
+ .filter-chip-remove:hover {
3383
+ opacity: 1;
3384
+ background: rgba(59, 130, 246, 0.15);
3385
+ }
3386
+
3387
+ .filter-input-container {
3388
+ display: flex;
3389
+ gap: 8px;
3390
+ padding: 8px 12px;
3391
+ }
3392
+
3393
+ .filter-input {
3394
+ flex: 1;
3395
+ padding: 8px 12px;
3396
+ background: var(--planner-bg);
3397
+ border: 1px solid var(--planner-border);
3398
+ border-radius: var(--radius-md);
3399
+ font-size: 12px;
3400
+ font-family: var(--font-display);
3401
+ color: var(--planner-text);
3402
+ outline: none;
3403
+ transition: border-color 0.15s;
3404
+ }
3405
+
3406
+ .filter-input:focus {
3407
+ border-color: var(--accent-primary);
3408
+ }
3409
+
3410
+ .filter-input::placeholder {
3411
+ color: var(--planner-text-dim);
3412
+ font-family: var(--font-body);
3413
+ }
3414
+
3415
+ .filter-add-btn {
3416
+ padding: 8px 16px;
3417
+ background: var(--accent-primary);
3418
+ border: none;
3419
+ border-radius: var(--radius-md);
3420
+ color: white;
3421
+ font-size: 12px;
3422
+ font-weight: 500;
3423
+ cursor: pointer;
3424
+ transition: background 0.15s ease;
3425
+ }
3426
+
3427
+ .filter-add-btn:hover:not(:disabled) {
3428
+ background: #2563eb;
3429
+ }
3430
+
3431
+ .filter-add-btn:disabled {
3432
+ opacity: 0.5;
3433
+ cursor: not-allowed;
3434
+ }
3435
+
3436
+ /* =================================
3437
+ Run Query Section
3438
+ ================================= */
3439
+
3440
+ .run-query-section {
3441
+ padding: 16px 12px;
3442
+ border-top: 1px solid var(--planner-border);
3443
+ background: var(--planner-bg);
3444
+ flex-shrink: 0;
3445
+ }
3446
+
3447
+ .run-query-btn {
3448
+ display: flex;
3449
+ align-items: center;
3450
+ justify-content: center;
3451
+ gap: 8px;
3452
+ width: 100%;
3453
+ padding: 12px 20px;
3454
+ background: linear-gradient(135deg, #059669 0%, #047857 100%);
3455
+ border: none;
3456
+ border-radius: var(--radius-md);
3457
+ color: white;
3458
+ font-size: 14px;
3459
+ font-weight: 600;
3460
+ cursor: pointer;
3461
+ transition: all 0.15s ease;
3462
+ box-shadow: 0 2px 8px rgba(5, 150, 105, 0.3);
3463
+ }
3464
+
3465
+ .run-query-btn:hover:not(:disabled) {
3466
+ background: linear-gradient(135deg, #047857 0%, #065f46 100%);
3467
+ box-shadow: 0 4px 12px rgba(5, 150, 105, 0.4);
3468
+ transform: translateY(-1px);
3469
+ }
3470
+
3471
+ .run-query-btn:disabled {
3472
+ background: #9ca3af;
3473
+ box-shadow: none;
3474
+ cursor: not-allowed;
3475
+ transform: none;
3476
+ }
3477
+
3478
+ .run-query-btn .run-icon {
3479
+ font-size: 12px;
3480
+ }
3481
+
3482
+ .run-query-btn .spinner.small {
3483
+ width: 14px;
3484
+ height: 14px;
3485
+ border-width: 2px;
3486
+ }
3487
+
3488
+ .run-hint {
3489
+ display: block;
3490
+ margin-top: 8px;
3491
+ font-size: 11px;
3492
+ color: var(--planner-text-dim);
3493
+ text-align: center;
3494
+ }
3495
+
3496
+ /* =================================
3497
+ Results View
3498
+ ================================= */
3499
+
3500
+ .results-view {
3501
+ flex: 1;
3502
+ display: flex;
3503
+ flex-direction: column;
3504
+ background: var(--planner-bg);
3505
+ overflow: hidden;
3506
+ }
3507
+
3508
+ .results-header {
3509
+ display: flex;
3510
+ align-items: center;
3511
+ justify-content: space-between;
3512
+ padding: 12px 20px;
3513
+ background: var(--planner-surface);
3514
+ border-bottom: 1px solid var(--planner-border);
3515
+ flex-shrink: 0;
3516
+ }
3517
+
3518
+ .back-to-plan-btn {
3519
+ display: flex;
3520
+ align-items: center;
3521
+ gap: 8px;
3522
+ padding: 8px 16px;
3523
+ background: transparent;
3524
+ border: 1px solid var(--planner-border);
3525
+ border-radius: var(--radius-md);
3526
+ color: var(--planner-text);
3527
+ font-size: 13px;
3528
+ font-weight: 500;
3529
+ cursor: pointer;
3530
+ transition: all 0.15s ease;
3531
+ }
3532
+
3533
+ .back-to-plan-btn:hover {
3534
+ background: var(--planner-surface-hover);
3535
+ border-color: var(--accent-primary);
3536
+ color: var(--accent-primary);
3537
+ }
3538
+
3539
+ .back-arrow {
3540
+ font-size: 16px;
3541
+ }
3542
+
3543
+ .results-summary {
3544
+ display: flex;
3545
+ align-items: center;
3546
+ gap: 16px;
3547
+ }
3548
+
3549
+ .results-count {
3550
+ font-size: 13px;
3551
+ font-weight: 600;
3552
+ color: var(--planner-text);
3553
+ }
3554
+
3555
+ .results-time {
3556
+ font-size: 12px;
3557
+ color: var(--planner-text-muted);
3558
+ font-family: var(--font-display);
3559
+ }
3560
+
3561
+ .results-loading-text {
3562
+ font-size: 13px;
3563
+ color: var(--accent-primary);
3564
+ font-weight: 500;
3565
+ }
3566
+
3567
+ .results-error-text {
3568
+ font-size: 13px;
3569
+ color: var(--accent-error);
3570
+ font-weight: 500;
3571
+ }
3572
+
3573
+ /* Two-pane layout: SQL (top 1/3) + Results (bottom 2/3) */
3574
+ .results-panes {
3575
+ flex: 1;
3576
+ display: flex;
3577
+ flex-direction: column;
3578
+ overflow: hidden;
3579
+ }
3580
+
3581
+ /* SQL Pane - top 1/3 */
3582
+ .sql-pane {
3583
+ flex: 0 0 33.333%;
3584
+ display: flex;
3585
+ flex-direction: column;
3586
+ border-bottom: 2px solid var(--planner-border);
3587
+ background: var(--planner-surface);
3588
+ min-height: 150px;
3589
+ max-height: 33.333%;
3590
+ }
3591
+
3592
+ .sql-pane-header {
3593
+ display: flex;
3594
+ align-items: center;
3595
+ gap: 12px;
3596
+ padding: 10px 16px;
3597
+ background: var(--planner-bg);
3598
+ border-bottom: 1px solid var(--planner-border);
3599
+ flex-shrink: 0;
3600
+ }
3601
+
3602
+ .sql-pane-title {
3603
+ font-size: 12px;
3604
+ font-weight: 600;
3605
+ color: var(--planner-text);
3606
+ }
3607
+
3608
+ .sql-pane-meta {
3609
+ display: flex;
3610
+ align-items: center;
3611
+ gap: 8px;
3612
+ flex: 1;
3613
+ }
3614
+
3615
+ .sql-dialect-badge {
3616
+ padding: 2px 8px;
3617
+ background: var(--accent-primary);
3618
+ color: white;
3619
+ font-size: 10px;
3620
+ font-weight: 600;
3621
+ border-radius: var(--radius-sm);
3622
+ text-transform: uppercase;
3623
+ margin-left: 8px;
3624
+ vertical-align: middle;
3625
+ }
3626
+
3627
+ .sql-cube-badge {
3628
+ padding: 2px 8px;
3629
+ background: rgba(88, 0, 118, 0.1);
3630
+ color: var(--accent-cube);
3631
+ font-size: 10px;
3632
+ font-weight: 500;
3633
+ border-radius: var(--radius-sm);
3634
+ border: 1px solid rgba(88, 0, 118, 0.3);
3635
+ text-decoration: none;
3636
+ cursor: pointer;
3637
+ }
3638
+
3639
+ .sql-cube-badge:hover {
3640
+ background: rgba(88, 0, 118, 0.2);
3641
+ text-decoration: underline;
3642
+ }
3643
+
3644
+ .sql-freshness {
3645
+ padding: 2px 8px;
3646
+ background: rgba(245, 158, 11, 0.1);
3647
+ color: #d97706;
3648
+ font-size: 10px;
3649
+ font-weight: 500;
3650
+ border-radius: var(--radius-sm);
3651
+ border: 1px solid rgba(245, 158, 11, 0.3);
3652
+ cursor: help;
3653
+ }
3654
+
3655
+ .sql-pane-content {
3656
+ flex: 1;
3657
+ overflow: auto;
3658
+ }
3659
+
3660
+ .sql-pane-content pre {
3661
+ margin: 0 !important;
3662
+ height: 100% !important;
3663
+ }
3664
+
3665
+ .sql-pane-empty {
3666
+ display: flex;
3667
+ align-items: center;
3668
+ justify-content: center;
3669
+ height: 100%;
3670
+ color: var(--planner-text-dim);
3671
+ font-size: 13px;
3672
+ }
3673
+
3674
+ /* Results Pane - bottom 2/3 */
3675
+ .results-pane {
3676
+ flex: 1;
3677
+ display: flex;
3678
+ flex-direction: column;
3679
+ overflow: hidden;
3680
+ min-height: 0;
3681
+ }
3682
+
3683
+ .results-loading {
3684
+ flex: 1;
3685
+ display: flex;
3686
+ flex-direction: column;
3687
+ align-items: center;
3688
+ justify-content: center;
3689
+ gap: 16px;
3690
+ padding: 40px 20px;
3691
+ color: var(--planner-text-muted);
3692
+ }
3693
+
3694
+ .results-loading .loading-spinner.large {
3695
+ width: 48px;
3696
+ height: 48px;
3697
+ border-width: 4px;
3698
+ }
3699
+
3700
+ .loading-hint {
3701
+ font-size: 12px;
3702
+ color: var(--planner-text-dim);
3703
+ }
3704
+
3705
+ .results-error {
3706
+ flex: 1;
3707
+ display: flex;
3708
+ flex-direction: column;
3709
+ align-items: center;
3710
+ justify-content: center;
3711
+ gap: 16px;
3712
+ padding: 40px 20px;
3713
+ text-align: center;
3714
+ }
3715
+
3716
+ .results-error .error-icon {
3717
+ font-size: 48px;
3718
+ color: var(--accent-error);
3719
+ }
3720
+
3721
+ .results-error h3 {
3722
+ margin: 0;
3723
+ font-size: 18px;
3724
+ color: var(--planner-text);
3725
+ }
3726
+
3727
+ .results-error .error-message {
3728
+ margin: 0;
3729
+ font-size: 14px;
3730
+ color: var(--accent-error);
3731
+ max-width: 400px;
3732
+ word-break: break-word;
3733
+ }
3734
+
3735
+ .copy-btn {
3736
+ padding: 4px 12px;
3737
+ background: var(--accent-primary);
3738
+ border: none;
3739
+ border-radius: var(--radius-sm);
3740
+ color: white;
3741
+ font-size: 11px;
3742
+ font-weight: 500;
3743
+ cursor: pointer;
3744
+ transition: all 0.15s ease;
3745
+ }
3746
+
3747
+ .copy-btn:hover:not(:disabled) {
3748
+ background: #2563eb;
3749
+ }
3750
+
3751
+ .copy-btn:disabled {
3752
+ opacity: 0.5;
3753
+ cursor: not-allowed;
3754
+ }
3755
+
3756
+ .copy-btn.copied {
3757
+ background: var(--accent-success);
3758
+ }
3759
+
3760
+ /* Results Table Section */
3761
+ .results-table-section {
3762
+ flex: 1;
3763
+ display: flex;
3764
+ flex-direction: column;
3765
+ background: var(--planner-surface);
3766
+ overflow: hidden;
3767
+ min-height: 0;
3768
+ }
3769
+
3770
+ .table-header {
3771
+ display: flex;
3772
+ align-items: center;
3773
+ gap: 16px;
3774
+ padding: 12px 16px;
3775
+ background: var(--planner-bg);
3776
+ border-bottom: 1px solid var(--planner-border);
3777
+ flex-shrink: 0;
3778
+ }
3779
+
3780
+ .table-title {
3781
+ font-size: 12px;
3782
+ font-weight: 600;
3783
+ color: var(--planner-text);
3784
+ }
3785
+
3786
+ .table-count {
3787
+ font-size: 11px;
3788
+ color: var(--planner-text-muted);
3789
+ }
3790
+
3791
+ .table-filters {
3792
+ display: flex;
3793
+ gap: 6px;
3794
+ flex-wrap: wrap;
3795
+ margin-left: auto;
3796
+ }
3797
+
3798
+ .filter-chip.small {
3799
+ padding: 2px 8px;
3800
+ font-size: 10px;
3801
+ }
3802
+
3803
+ .results-table-wrapper {
3804
+ flex: 1;
3805
+ overflow: auto;
3806
+ min-height: 0;
3807
+ }
3808
+
3809
+ .table-empty {
3810
+ padding: 40px 20px;
3811
+ text-align: center;
3812
+ color: var(--planner-text-muted);
3813
+ }
3814
+
3815
+ .table-empty p {
3816
+ margin: 0;
3817
+ font-size: 14px;
3818
+ }
3819
+
3820
+ .results-table {
3821
+ width: 100%;
3822
+ border-collapse: collapse;
3823
+ font-size: 12px;
3824
+ }
3825
+
3826
+ .results-table th {
3827
+ position: sticky;
3828
+ top: 0;
3829
+ padding: 10px 12px;
3830
+ background: var(--planner-bg);
3831
+ color: var(--planner-text);
3832
+ font-weight: 600;
3833
+ text-align: left;
3834
+ border-bottom: 2px solid var(--planner-border);
3835
+ white-space: nowrap;
3836
+ cursor: pointer;
3837
+ user-select: none;
3838
+ }
3839
+
3840
+ .results-table th:hover {
3841
+ background: var(--planner-bg-hover, #f1f5f9);
3842
+ }
3843
+
3844
+ .results-table th.sorted {
3845
+ background: rgba(59, 130, 246, 0.08);
3846
+ }
3847
+
3848
+ .results-table th .col-header-content {
3849
+ display: flex;
3850
+ align-items: center;
3851
+ gap: 6px;
3852
+ }
3853
+
3854
+ .results-table th .sort-arrows {
3855
+ display: inline-flex;
3856
+ flex-direction: column;
3857
+ font-size: 8px;
3858
+ line-height: 1;
3859
+ color: var(--planner-text-dim);
3860
+ opacity: 0.4;
3861
+ }
3862
+
3863
+ .results-table th:hover .sort-arrows {
3864
+ opacity: 0.7;
3865
+ }
3866
+
3867
+ .results-table th .sort-arrow {
3868
+ line-height: 0.8;
3869
+ }
3870
+
3871
+ .results-table th .sort-arrow.active {
3872
+ color: var(--planner-primary);
3873
+ opacity: 1;
3874
+ }
3875
+
3876
+ .results-table th .col-type {
3877
+ display: block;
3878
+ font-size: 10px;
3879
+ font-weight: 400;
3880
+ color: var(--planner-text-dim);
3881
+ font-family: var(--font-display);
3882
+ }
3883
+
3884
+ .results-table td {
3885
+ padding: 10px 12px;
3886
+ border-bottom: 1px solid var(--planner-border);
3887
+ color: var(--planner-text);
3888
+ max-width: 300px;
3889
+ overflow: hidden;
3890
+ text-overflow: ellipsis;
3891
+ white-space: nowrap;
3892
+ }
3893
+
3894
+ .results-table tr:hover td {
3895
+ background: rgba(59, 130, 246, 0.03);
3896
+ }
3897
+
3898
+ .null-value {
3899
+ color: var(--planner-text-dim);
3900
+ font-style: italic;
3901
+ font-size: 11px;
3902
+ }
3903
+
3904
+ /* Filters Info in Results */
3905
+ .results-filters-info {
3906
+ margin-top: 16px;
3907
+ padding: 12px 16px;
3908
+ background: var(--planner-surface);
3909
+ border: 1px solid var(--planner-border);
3910
+ border-radius: var(--radius-md);
3911
+ }
3912
+
3913
+ .filters-label {
3914
+ display: block;
3915
+ font-size: 11px;
3916
+ font-weight: 600;
3917
+ color: var(--planner-text-muted);
3918
+ margin-bottom: 8px;
3919
+ }
3920
+
3921
+ .filters-list {
3922
+ display: flex;
3923
+ flex-wrap: wrap;
3924
+ gap: 6px;
3925
+ }
3926
+
3927
+ .filters-list .filter-chip {
3928
+ padding: 4px 10px;
3929
+ }