handler-playable-sdk 0.3.63 → 0.3.65

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.
@@ -4,6 +4,34 @@
4
4
  /* Import Inter Font - Main Site Typography */
5
5
  @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
6
6
 
7
+ /* ========== 01-primitives.css ========== */
8
+ /* 01 Primitives */
9
+ /* Low-level color definitions - DO NOT USE DIRECTLY IN COMPONENTS */
10
+
11
+ :root {
12
+ /* RAW PALETTE */
13
+ --raw-white: #FFFFFF;
14
+ --raw-black: #1E1E1E;
15
+ --raw-beige-light: #F6F3EF;
16
+ --raw-beige-dark: #EFEAE5;
17
+ --raw-terracotta: #E38A5A;
18
+ --raw-terracotta-rgb: 227, 138, 90;
19
+ --raw-clay: #C9A28C;
20
+ --raw-clay-rgb: 201, 162, 140;
21
+
22
+ /* STATUS PRIMITIVES */
23
+ --raw-danger: #D97558;
24
+ --raw-danger-rgb: 217, 117, 88;
25
+ --raw-success: #5F8F6B;
26
+ --raw-success-rgb: 95, 143, 107;
27
+ --raw-warning: #FFD36B;
28
+ --raw-info: #9FC4FF;
29
+
30
+ /* THEME PRIMITIVES */
31
+ --raw-dark-bg: #1A1A1A;
32
+ --raw-dark-text: #E8E8E8;
33
+ }
34
+
7
35
  /* ========== 01-variables.css ========== */
8
36
  /* 01 Variables */
9
37
  /* Auto-generated from preview.css */
@@ -12,28 +40,30 @@
12
40
  /* preview.css - Scene editor preview UI */
13
41
 
14
42
  :root {
15
- /* HANDLER Base Colors - LOCKED */
16
- --ui-bg: #F6F3EF;
17
- --ui-bg-2: #EFEAE5;
18
- --ui-surface: #FFFFFF;
43
+ /* 1. SEMANTIC THEME TOKENS - LIGHT (DEFAULT) */
44
+ --ui-bg: var(--raw-beige-light);
45
+ --ui-bg-2: var(--raw-beige-dark);
46
+ --ui-surface: var(--raw-white);
19
47
  --ui-surface-2: #F9F7F5;
48
+ /* To be refactored to primitive later */
20
49
  --ui-border: #D4CFC8;
21
- --ui-text: #1E1E1E;
22
- --ui-text-white: #FFFFFF;
50
+ /* To be refactored to primitive later */
51
+ --ui-text: var(--raw-black);
52
+ --ui-text-white: var(--raw-white);
23
53
  --ui-muted: #8E8A84;
24
54
 
25
- /* HANDLER Accent Colors - LOCKED */
26
- --ui-accent: #E38A5A;
27
- --ui-accent-2: #C9A28C;
28
- --ui-accent-3: #E38A5A;
55
+ /* 2. ACCENT & ACTION TOKENS */
56
+ --ui-accent: var(--raw-terracotta);
57
+ --ui-accent-2: var(--raw-clay);
58
+ --ui-accent-3: var(--raw-terracotta);
29
59
  /* No purple - using primary accent */
30
- --ui-danger: #D97558;
60
+ --ui-danger: var(--raw-danger);
31
61
  /* Muted danger color */
32
- --ui-success: #5F8F6B;
62
+ --ui-success: var(--raw-success);
33
63
  /* Status green */
34
64
 
35
- /* Terracotta Button System - Main Site Style */
36
- --ui-terracotta: #E38A5A;
65
+ /* 3. TERRACOTTA SYSTEM (LEGACY) */
66
+ --ui-terracotta: var(--raw-terracotta);
37
67
  --ui-terracotta-hover: #D77A4A;
38
68
  --ui-terracotta-active: #C66A3A;
39
69
 
@@ -63,25 +93,28 @@
63
93
  --ui-overlay-light-6: rgba(255, 255, 255, 0.15);
64
94
  --ui-overlay-light-7: rgba(255, 255, 255, 0.2);
65
95
 
96
+ /* 4. OVERLAYS & TRANSPARENCIES (PROCEDURAL) */
97
+ /* These map to raw primitives to allow for global hue updates */
98
+
66
99
  /* Dark Overlays (Black with opacity) */
67
100
  --ui-overlay-dark-1: rgba(0, 0, 0, 0.2);
68
101
  --ui-overlay-dark-2: rgba(0, 0, 0, 0.3);
69
102
  --ui-overlay-dark-3: rgba(0, 0, 0, 0.5);
70
103
 
71
104
  /* Accent Overlays (Terracotta with opacity) */
72
- --ui-accent-overlay-1: rgba(227, 138, 90, 0.08);
73
- --ui-accent-overlay-2: rgba(227, 138, 90, 0.12);
74
- --ui-accent-overlay-3: rgba(227, 138, 90, 0.35);
75
- --ui-accent-overlay-4: rgba(227, 138, 90, 0.45);
76
- --ui-accent-overlay-5: rgba(227, 138, 90, 0.5);
77
- --ui-accent-overlay-6: rgba(227, 138, 90, 0.55);
105
+ --ui-accent-overlay-1: rgba(var(--raw-terracotta-rgb), 0.08);
106
+ --ui-accent-overlay-2: rgba(var(--raw-terracotta-rgb), 0.12);
107
+ --ui-accent-overlay-3: rgba(var(--raw-terracotta-rgb), 0.35);
108
+ --ui-accent-overlay-4: rgba(var(--raw-terracotta-rgb), 0.45);
109
+ --ui-accent-overlay-5: rgba(var(--raw-terracotta-rgb), 0.5);
110
+ --ui-accent-overlay-6: rgba(var(--raw-terracotta-rgb), 0.55);
78
111
 
79
112
  /* Danger Overlays */
80
- --ui-danger-overlay-1: rgba(217, 117, 88, 0.1);
81
- --ui-danger-overlay-2: rgba(217, 117, 88, 0.3);
113
+ --ui-danger-overlay-1: rgba(var(--raw-danger-rgb), 0.1);
114
+ --ui-danger-overlay-2: rgba(var(--raw-danger-rgb), 0.3);
82
115
 
83
116
  /* Accent-2 Overlays */
84
- --ui-accent-2-overlay-1: rgba(201, 162, 140, 0.1);
117
+ --ui-accent-2-overlay-1: rgba(var(--raw-clay-rgb), 0.1);
85
118
 
86
119
  /* Border Overlays */
87
120
  --ui-border-overlay-1: rgba(212, 207, 200, 0.8);
@@ -106,12 +139,12 @@
106
139
  /* AI Prompt Colors */
107
140
  --ui-ai-magenta: #FF00FF;
108
141
 
109
- /* Status Colors (for override states, validation, etc.) */
110
- --ui-status-warning: #FFD36B;
142
+ /* 5. STATUS COLORS (SEMANTIC) */
143
+ --ui-status-warning: var(--raw-warning);
111
144
  --ui-status-warning-border: rgba(255, 211, 107, 0.4);
112
145
  --ui-status-success: #9FE7C5;
113
146
  --ui-status-success-border: rgba(159, 231, 197, 0.4);
114
- --ui-status-info: #9FC4FF;
147
+ --ui-status-info: var(--raw-info);
115
148
  --ui-status-info-border: rgba(159, 196, 255, 0.35);
116
149
 
117
150
  /* Background Texture */
@@ -145,6 +178,46 @@
145
178
  --ui-hover-darken: 0.92;
146
179
  --ui-hover-lift: -2px;
147
180
  --ui-hover-shadow-increase: 0.04;
181
+
182
+ /* Theme Defaults */
183
+ --ui-shadow-color: rgba(30, 30, 30, 0.08);
184
+ --ui-shadow: 0 2px 8px var(--ui-shadow-color);
185
+ }
186
+
187
+ /* DARK THEME OVERRIDES */
188
+ .theme-dark {
189
+ --ui-bg: #121212;
190
+ --ui-bg-2: #1e1e1e;
191
+ --ui-surface: #1e1e1e;
192
+ --ui-surface-2: #252525;
193
+ --ui-border: #333333;
194
+ --ui-text: #e8e8e8;
195
+ --ui-text-white: #ffffff;
196
+ --ui-muted: #999999;
197
+
198
+ /* Panel Overrides */
199
+ --ui-dark-panel: #0a0a0a;
200
+ --ui-ai-dark-bg: rgba(0, 0, 0, 0.8);
201
+
202
+ /* Overlay Overrides for Dark Mode */
203
+ --ui-overlay-light-1: rgba(255, 255, 255, 0.05);
204
+ --ui-overlay-light-2: rgba(255, 255, 255, 0.08);
205
+ --ui-overlay-light-3: rgba(255, 255, 255, 0.12);
206
+ --ui-overlay-light-4: rgba(255, 255, 255, 0.15);
207
+ --ui-overlay-light-5: rgba(255, 255, 255, 0.18);
208
+ --ui-overlay-light-6: rgba(255, 255, 255, 0.22);
209
+ --ui-overlay-light-7: rgba(255, 255, 255, 0.25);
210
+
211
+ --ui-overlay-dark-1: rgba(0, 0, 0, 0.4);
212
+ --ui-overlay-dark-2: rgba(0, 0, 0, 0.6);
213
+ --ui-overlay-dark-3: rgba(0, 0, 0, 0.8);
214
+
215
+ /* Status Border Overrides */
216
+ --ui-status-warning-border: rgba(255, 211, 107, 0.2);
217
+ --ui-status-success-border: rgba(159, 231, 197, 0.2);
218
+ --ui-status-info-border: rgba(159, 196, 255, 0.15);
219
+
220
+ --ui-shadow-color: rgba(0, 0, 0, 0.5);
148
221
  }
149
222
 
150
223
  .preview-shell {
@@ -2622,7 +2695,7 @@
2622
2695
 
2623
2696
  .console-msg.type-error {
2624
2697
  color: var(--ui-danger);
2625
- background: rgba(217, 117, 88, 0.1);
2698
+ background: var(--ui-danger-overlay-1);
2626
2699
  }
2627
2700
 
2628
2701
  .console-msg.type-warn {
@@ -3135,7 +3208,7 @@
3135
3208
  outline: none;
3136
3209
  background: var(--ui-surface);
3137
3210
  border-color: var(--ui-accent);
3138
- box-shadow: 0 0 0 2px rgba(227, 138, 90, 0.15);
3211
+ box-shadow: 0 0 0 2px var(--ui-accent-overlay-1);
3139
3212
  }
3140
3213
 
3141
3214
  .debug-field input[type="range"] {
@@ -3286,7 +3359,7 @@
3286
3359
 
3287
3360
  /* Library Panel */
3288
3361
  .library-panel {
3289
- border-color: rgba(61, 214, 198, 0.35);
3362
+ border-color: var(--ui-status-info-border);
3290
3363
  }
3291
3364
 
3292
3365
  .library-grid {
@@ -3398,7 +3471,8 @@
3398
3471
 
3399
3472
  /* Panel accent color */
3400
3473
  .panel-accent-purple {
3401
- border-left: 3px solid #a855f7;
3474
+ border-left: 3px solid var(--ui-accent-2);
3475
+ /* Dusty clay tinted border */
3402
3476
  }
3403
3477
 
3404
3478
  /* ========================================
@@ -3504,7 +3578,8 @@
3504
3578
 
3505
3579
  .ai-tabs {
3506
3580
  display: flex;
3507
- background: var(--ui-overlay-dark-1);
3581
+ background: var(--ui-overlay-dark-3);
3582
+ /* Darker backdrop */
3508
3583
  border-radius: 8px;
3509
3584
  padding: 4px;
3510
3585
  margin-bottom: 16px;
@@ -3515,7 +3590,7 @@
3515
3590
  flex: 1;
3516
3591
  background: transparent;
3517
3592
  border: none;
3518
- color: #a0a0a0;
3593
+ color: var(--ui-muted);
3519
3594
  padding: 8px;
3520
3595
  border-radius: 6px;
3521
3596
  font-size: 13px;
@@ -3532,9 +3607,10 @@
3532
3607
  }
3533
3608
 
3534
3609
  .ai-tab-btn.active {
3535
- background: #6d5dfc;
3536
- color: white;
3537
- box-shadow: 0 4px 12px rgba(109, 93, 252, 0.3);
3610
+ background: var(--ui-accent);
3611
+ /* Use Terracotta instead of Indigo */
3612
+ color: var(--ui-text-white);
3613
+ box-shadow: 0 4px 12px var(--ui-accent-overlay-3);
3538
3614
  }
3539
3615
 
3540
3616
  .ai-tab-content {
@@ -3556,7 +3632,7 @@
3556
3632
  width: 24px;
3557
3633
  height: 24px;
3558
3634
  border-radius: 4px;
3559
- border: 1px solid rgba(255, 255, 255, 0.1);
3635
+ border: 1px solid var(--ui-overlay-light-7);
3560
3636
  cursor: help;
3561
3637
  }
3562
3638
 
@@ -3570,11 +3646,11 @@
3570
3646
 
3571
3647
  .ai-batch-item,
3572
3648
  .ai-obj-item {
3573
- background: rgba(255, 255, 255, 0.03);
3649
+ background: var(--ui-overlay-light-1);
3574
3650
  border-radius: 8px;
3575
3651
  padding: 10px;
3576
3652
  margin-bottom: 8px;
3577
- border: 1px solid rgba(255, 255, 255, 0.05);
3653
+ border: 1px solid var(--ui-overlay-light-2);
3578
3654
  }
3579
3655
 
3580
3656
  .ai-item-row {
@@ -3587,7 +3663,7 @@
3587
3663
  .ai-obj-title {
3588
3664
  flex: 1;
3589
3665
  font-weight: 500;
3590
- color: #eee;
3666
+ color: var(--ui-text-white);
3591
3667
  font-size: 13px;
3592
3668
  white-space: nowrap;
3593
3669
  overflow: hidden;
@@ -3598,7 +3674,7 @@
3598
3674
  .ai-obj-status {
3599
3675
  font-size: 11px;
3600
3676
  color: var(--ui-muted);
3601
- background: rgba(0, 0, 0, 0.3);
3677
+ background: var(--ui-overlay-dark-2);
3602
3678
  padding: 2px 6px;
3603
3679
  border-radius: 4px;
3604
3680
  }
@@ -3613,7 +3689,7 @@
3613
3689
  .ai-tabs {
3614
3690
  display: flex;
3615
3691
  gap: 2px;
3616
- background: rgba(0, 0, 0, 0.3);
3692
+ background: var(--ui-overlay-dark-2);
3617
3693
  padding: 4px;
3618
3694
  border-radius: 12px;
3619
3695
  margin-bottom: 20px;
@@ -3637,14 +3713,14 @@
3637
3713
  }
3638
3714
 
3639
3715
  .ai-tab-btn:hover {
3640
- background: rgba(255, 255, 255, 0.05);
3716
+ background: var(--ui-overlay-light-2);
3641
3717
  color: var(--ui-text);
3642
3718
  }
3643
3719
 
3644
3720
  .ai-tab-btn.active {
3645
- background: #6d5dfc;
3721
+ background: var(--ui-accent);
3646
3722
  color: var(--ui-text);
3647
- box-shadow: 0 4px 12px rgba(109, 93, 252, 0.3);
3723
+ box-shadow: 0 4px 12px var(--ui-accent-overlay-3);
3648
3724
  }
3649
3725
 
3650
3726
  .ai-tab-content {
@@ -3659,18 +3735,18 @@
3659
3735
  }
3660
3736
 
3661
3737
  .panel-section {
3662
- background: rgba(255, 255, 255, 0.03);
3738
+ background: var(--ui-overlay-light-1);
3663
3739
  border-radius: 12px;
3664
3740
  padding: 16px;
3665
3741
  margin-bottom: 16px;
3666
- border: 1px solid rgba(255, 255, 255, 0.05);
3742
+ border: 1px solid var(--ui-overlay-light-2);
3667
3743
  }
3668
3744
 
3669
3745
  .panel-section-title {
3670
3746
  font-size: 11px;
3671
3747
  font-weight: 800;
3672
3748
  text-transform: uppercase;
3673
- color: #6d5dfc;
3749
+ color: var(--ui-accent);
3674
3750
  letter-spacing: 0.05em;
3675
3751
  margin-bottom: 16px;
3676
3752
  display: flex;
@@ -3682,15 +3758,15 @@
3682
3758
  display: block;
3683
3759
  font-size: 12px;
3684
3760
  font-weight: 600;
3685
- color: #aaa;
3761
+ color: var(--ui-muted);
3686
3762
  margin-bottom: 8px;
3687
3763
  }
3688
3764
 
3689
3765
  .inspector-input,
3690
3766
  .inspector-textarea {
3691
3767
  width: 100%;
3692
- background: rgba(0, 0, 0, 0.4);
3693
- border: 1px solid rgba(255, 255, 255, 0.1);
3768
+ background: var(--ui-overlay-dark-3);
3769
+ border: 1px solid var(--ui-overlay-light-7);
3694
3770
  border-radius: 8px;
3695
3771
  padding: 10px 12px;
3696
3772
  color: var(--ui-dark-text);
@@ -3703,8 +3779,8 @@
3703
3779
  .inspector-input:focus,
3704
3780
  .inspector-textarea:focus {
3705
3781
  outline: none;
3706
- border-color: #6d5dfc;
3707
- background: rgba(255, 255, 255, 0.1);
3782
+ border-color: var(--ui-accent);
3783
+ background: var(--ui-overlay-light-4);
3708
3784
  }
3709
3785
 
3710
3786
  .inspector-textarea {
@@ -3716,17 +3792,17 @@
3716
3792
  width: 32px;
3717
3793
  height: 32px;
3718
3794
  border-radius: 6px;
3719
- border: 2px solid rgba(255, 255, 255, 0.1);
3795
+ border: 2px solid var(--ui-overlay-light-7);
3720
3796
  cursor: pointer;
3721
3797
  transition: transform var(--ui-duration-fast);
3722
3798
  }
3723
3799
 
3724
3800
  .ai-batch-item,
3725
3801
  .ai-obj-item {
3726
- background: rgba(0, 0, 0, 0.2);
3802
+ background: var(--ui-overlay-dark-1);
3727
3803
  border-radius: 8px;
3728
3804
  padding: 10px 12px;
3729
- border: 1px solid rgba(255, 255, 255, 0.05);
3805
+ border: 1px solid var(--ui-overlay-light-2);
3730
3806
  margin-bottom: 8px;
3731
3807
  }
3732
3808
 
@@ -3740,7 +3816,7 @@
3740
3816
  font-size: 10px;
3741
3817
  padding: 2px 8px;
3742
3818
  border-radius: 4px;
3743
- background: rgba(255, 255, 255, 0.05);
3819
+ background: var(--ui-overlay-light-2);
3744
3820
  color: var(--ui-muted);
3745
3821
  font-weight: 700;
3746
3822
  text-transform: uppercase;
@@ -3763,18 +3839,18 @@
3763
3839
  gap: 4px;
3764
3840
  padding: 12px;
3765
3841
  border-radius: 10px;
3766
- background: rgba(30, 35, 45, 0.4);
3842
+ background: var(--ui-overlay-dark-3);
3767
3843
  border: 1px solid var(--ui-border);
3768
3844
  }
3769
3845
 
3770
3846
  .persistence-status-bar.has-changes {
3771
- background: rgba(255, 159, 67, 0.1);
3772
- border-color: rgba(255, 159, 67, 0.3);
3847
+ background: var(--ui-status-warning-border);
3848
+ border-color: var(--ui-status-warning);
3773
3849
  }
3774
3850
 
3775
3851
  .persistence-status-bar.no-changes {
3776
- background: rgba(61, 214, 198, 0.05);
3777
- border-color: rgba(61, 214, 198, 0.2);
3852
+ background: var(--ui-accent-overlay-1);
3853
+ border-color: var(--ui-accent-overlay-2);
3778
3854
  }
3779
3855
 
3780
3856
  .status-box {
@@ -3790,7 +3866,7 @@
3790
3866
  font-weight: 800;
3791
3867
  letter-spacing: 0.05em;
3792
3868
  background: var(--ui-accent-2);
3793
- color: #000;
3869
+ color: var(--ui-black);
3794
3870
  }
3795
3871
 
3796
3872
  .status-badge.success {
@@ -3816,21 +3892,21 @@
3816
3892
  .persistence-btn.primary-action {
3817
3893
  flex: 1;
3818
3894
  padding: 12px;
3819
- background: linear-gradient(135deg, var(--ui-accent), #2eb0a3);
3820
- color: #000;
3895
+ background: linear-gradient(135deg, var(--ui-accent), var(--ui-accent-overlay-3));
3896
+ color: var(--ui-black);
3821
3897
  border: none;
3822
3898
  border-radius: 10px;
3823
3899
  font-weight: 800;
3824
3900
  font-size: 11px;
3825
3901
  letter-spacing: 0.03em;
3826
3902
  cursor: pointer;
3827
- box-shadow: 0 4px 15px rgba(61, 214, 198, 0.25);
3903
+ box-shadow: 0 4px 15px var(--ui-accent-overlay-1);
3828
3904
  transition: all var(--ui-duration-fast) var(--ui-ease);
3829
3905
  }
3830
3906
 
3831
3907
  .persistence-btn.primary-action:hover:not(:disabled) {
3832
3908
  transform: translateY(-2px);
3833
- box-shadow: 0 6px 20px rgba(61, 214, 198, 0.35);
3909
+ box-shadow: 0 6px 20px var(--ui-accent-overlay-3);
3834
3910
  }
3835
3911
 
3836
3912
  .persistence-btn.primary-action:active:not(:disabled) {
@@ -3850,7 +3926,7 @@
3850
3926
  .version-management-section {
3851
3927
  margin-top: 16px;
3852
3928
  padding: 12px;
3853
- background: rgba(30, 35, 45, 0.5);
3929
+ background: var(--ui-overlay-dark-3);
3854
3930
  border: 1px solid var(--ui-border);
3855
3931
  border-radius: 10px;
3856
3932
  }
@@ -3905,7 +3981,7 @@
3905
3981
  .version-dropdown:focus {
3906
3982
  outline: none;
3907
3983
  border-color: var(--ui-accent);
3908
- box-shadow: 0 0 0 2px rgba(61, 214, 198, 0.2);
3984
+ box-shadow: 0 0 0 2px var(--ui-accent-overlay-1);
3909
3985
  }
3910
3986
 
3911
3987
  .persistence-btn {
@@ -3921,7 +3997,7 @@
3921
3997
  }
3922
3998
 
3923
3999
  .persistence-btn:hover:not(:disabled) {
3924
- background: rgba(61, 214, 198, 0.1);
4000
+ background: var(--ui-accent-overlay-1);
3925
4001
  border-color: var(--ui-accent);
3926
4002
  }
3927
4003
 
@@ -3934,14 +4010,14 @@
3934
4010
  .dev-only-section {
3935
4011
  margin-top: 16px;
3936
4012
  padding: 12px;
3937
- background: rgba(255, 165, 0, 0.08);
3938
- border: 1px solid rgba(255, 165, 0, 0.3);
4013
+ background: var(--ui-status-warning-border);
4014
+ border: 1px solid var(--ui-status-warning-border);
3939
4015
  border-radius: 8px;
3940
4016
  }
3941
4017
 
3942
4018
  .dev-warning {
3943
4019
  font-size: 11px;
3944
- color: #ff8c00;
4020
+ color: var(--ui-status-warning);
3945
4021
  font-weight: 700;
3946
4022
  margin-bottom: 8px;
3947
4023
  text-transform: uppercase;
@@ -3949,16 +4025,16 @@
3949
4025
  }
3950
4026
 
3951
4027
  .persistence-btn.danger-action {
3952
- background: #dc3545;
3953
- border-color: #dc3545;
4028
+ background: var(--ui-danger);
4029
+ border-color: var(--ui-danger);
3954
4030
  color: white;
3955
4031
  width: 100%;
3956
4032
  }
3957
4033
 
3958
4034
  .persistence-btn.danger-action:hover:not(:disabled) {
3959
- background: #c82333;
3960
- border-color: #c82333;
3961
- box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3);
4035
+ background: var(--ui-danger);
4036
+ border-color: var(--ui-danger);
4037
+ box-shadow: 0 4px 12px var(--ui-danger-overlay-2);
3962
4038
  }
3963
4039
 
3964
4040
  .dev-hint {
@@ -4020,7 +4096,7 @@
4020
4096
  .debug-select:focus {
4021
4097
  outline: none;
4022
4098
  border-color: var(--ui-accent-3);
4023
- box-shadow: 0 0 0 2px rgba(227, 138, 90, 0.2);
4099
+ box-shadow: 0 0 0 2px var(--ui-accent-overlay-2);
4024
4100
  }
4025
4101
 
4026
4102
  .debug-select option {
@@ -4111,7 +4187,7 @@
4111
4187
  outline: none;
4112
4188
  background: var(--ui-surface);
4113
4189
  border-color: var(--ui-accent);
4114
- box-shadow: 0 0 0 2px rgba(227, 138, 90, 0.15);
4190
+ box-shadow: 0 0 0 2px var(--ui-accent-overlay-2);
4115
4191
  }
4116
4192
 
4117
4193
  .inspector-checkbox {
@@ -4162,8 +4238,8 @@
4162
4238
  }
4163
4239
 
4164
4240
  .inspector-btn:hover {
4165
- border-color: rgba(227, 138, 90, 0.55);
4166
- background: rgba(227, 138, 90, 0.08);
4241
+ border-color: var(--ui-accent-overlay-6);
4242
+ background: var(--ui-accent-overlay-1);
4167
4243
  }
4168
4244
 
4169
4245
  .inspector-btn.primary {
@@ -4180,7 +4256,7 @@
4180
4256
  .inspector-btn:disabled {
4181
4257
  opacity: 0.55;
4182
4258
  cursor: not-allowed;
4183
- background: rgba(212, 207, 200, 0.55);
4259
+ background: var(--ui-overlay-light-4);
4184
4260
  }
4185
4261
 
4186
4262
  .inspector-btn-sm {
@@ -4295,8 +4371,8 @@
4295
4371
  }
4296
4372
 
4297
4373
  .inspector-btn-icon {
4298
- background: rgba(255, 255, 255, 0.05);
4299
- border: 1px solid rgba(255, 255, 255, 0.1);
4374
+ background: var(--ui-overlay-light-2);
4375
+ border: 1px solid var(--ui-overlay-light-5);
4300
4376
  color: var(--ui-text);
4301
4377
  width: 28px;
4302
4378
  height: 28px;
@@ -4311,7 +4387,7 @@
4311
4387
  }
4312
4388
 
4313
4389
  .inspector-btn-icon:hover {
4314
- background: rgba(227, 138, 90, 0.1);
4390
+ background: var(--ui-accent-overlay-1);
4315
4391
  border-color: var(--ui-accent);
4316
4392
  transform: translateY(-1px);
4317
4393
  }
@@ -4710,7 +4786,7 @@
4710
4786
  left: 0;
4711
4787
  width: 100%;
4712
4788
  height: 100%;
4713
- background-color: rgba(0, 0, 0, 0.8);
4789
+ background-color: var(--ui-overlay-dark-4);
4714
4790
  z-index: 10000;
4715
4791
  display: flex;
4716
4792
  align-items: center;
@@ -4718,8 +4794,8 @@
4718
4794
  }
4719
4795
 
4720
4796
  .json-modal-content {
4721
- background-color: #1e1e1e;
4722
- border: 1px solid #555;
4797
+ background-color: var(--ui-dark-panel);
4798
+ border: 1px solid var(--ui-border);
4723
4799
  border-radius: 8px;
4724
4800
  width: 80%;
4725
4801
  max-width: 800px;
@@ -4733,7 +4809,7 @@
4733
4809
  align-items: center;
4734
4810
  justify-content: space-between;
4735
4811
  padding: 16px 20px;
4736
- border-bottom: 1px solid #444;
4812
+ border-bottom: 1px solid var(--ui-overlay-light-2);
4737
4813
  }
4738
4814
 
4739
4815
  .json-modal-header h3 {
@@ -4759,8 +4835,6 @@
4759
4835
  word-wrap: break-word;
4760
4836
  }
4761
4837
 
4762
-
4763
-
4764
4838
  /* ========== 12-responsive.css ========== */
4765
4839
  /* 12 Responsive */
4766
4840
  /* Auto-generated from preview.css */
@@ -4859,7 +4933,7 @@
4859
4933
  .nudge-step-input:focus {
4860
4934
  outline: none;
4861
4935
  border-color: var(--ui-terracotta);
4862
- box-shadow: 0 0 0 2px rgba(227, 138, 90, 0.2);
4936
+ box-shadow: 0 0 0 2px var(--ui-accent-overlay-2);
4863
4937
  }
4864
4938
 
4865
4939
  /* Nudge arrow grid */