pressship 0.1.13 → 0.1.15

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.
@@ -75,6 +75,16 @@
75
75
  vertical-align: middle;
76
76
  }
77
77
 
78
+ .dashicons.ps-icon-rocket::before {
79
+ content: "";
80
+ display: block;
81
+ width: 18px;
82
+ height: 18px;
83
+ background: currentColor;
84
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 16.5c-1.5 1.3-2 5-2 5s3.7-.5 5-2c.7-.8.7-2.1-.1-2.9-.8-.8-2.1-.8-2.9-.1Z'/%3E%3Cpath d='m12 15-3-3c.6-1.8 1.5-3.5 2.7-5 2.2-2.8 5.3-4.4 9.3-4-.4 4-2 7.1-4.8 9.3-1.5 1.2-3.2 2.1-5 2.7Z'/%3E%3Cpath d='M9 12H4l2.5-3.5c.8-1.1 2-1.7 3.4-1.7h1.8'/%3E%3Cpath d='M12 15v5l3.5-2.5c1.1-.8 1.7-2 1.7-3.4v-1.8'/%3E%3Ccircle cx='16.5' cy='7.5' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
85
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 16.5c-1.5 1.3-2 5-2 5s3.7-.5 5-2c.7-.8.7-2.1-.1-2.9-.8-.8-2.1-.8-2.9-.1Z'/%3E%3Cpath d='m12 15-3-3c.6-1.8 1.5-3.5 2.7-5 2.2-2.8 5.3-4.4 9.3-4-.4 4-2 7.1-4.8 9.3-1.5 1.2-3.2 2.1-5 2.7Z'/%3E%3Cpath d='M9 12H4l2.5-3.5c.8-1.1 2-1.7 3.4-1.7h1.8'/%3E%3Cpath d='M12 15v5l3.5-2.5c1.1-.8 1.7-2 1.7-3.4v-1.8'/%3E%3Ccircle cx='16.5' cy='7.5' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
86
+ }
87
+
78
88
  .ps-harness-icon {
79
89
  display: block;
80
90
  width: 18px;
@@ -109,6 +119,58 @@ body {
109
119
  -moz-osx-font-smoothing: grayscale;
110
120
  }
111
121
 
122
+ body.is-initial-route-loading {
123
+ overflow: hidden;
124
+ }
125
+
126
+ .ps-initial-route-loader {
127
+ position: fixed;
128
+ inset: 0;
129
+ z-index: 100200;
130
+ display: grid;
131
+ place-items: center;
132
+ padding: 32px;
133
+ background: var(--wp-body-bg);
134
+ color: var(--wp-text);
135
+ }
136
+
137
+ .ps-initial-route-loader-card {
138
+ display: grid;
139
+ justify-items: center;
140
+ gap: 12px;
141
+ width: min(340px, calc(100vw - 48px));
142
+ padding: 28px;
143
+ border: 1px solid var(--wp-border);
144
+ border-radius: var(--wp-radius-l);
145
+ background: var(--wp-surface);
146
+ box-shadow: var(--wp-shadow-md);
147
+ text-align: center;
148
+ }
149
+
150
+ .ps-initial-route-loader-card img {
151
+ width: 36px;
152
+ height: 36px;
153
+ object-fit: contain;
154
+ }
155
+
156
+ .ps-initial-route-loader-card .dashicons {
157
+ width: 24px;
158
+ height: 24px;
159
+ color: var(--wp-admin-theme-color);
160
+ animation: ps-spin 1s linear infinite;
161
+ }
162
+
163
+ .ps-initial-route-loader-card strong {
164
+ color: var(--wp-heading);
165
+ font-size: 15px;
166
+ line-height: 1.25;
167
+ }
168
+
169
+ .ps-initial-route-loader-card p {
170
+ margin: -4px 0 0;
171
+ color: var(--wp-text-soft);
172
+ }
173
+
112
174
  button,
113
175
  input,
114
176
  select,
@@ -562,7 +624,7 @@ kbd {
562
624
  align-items: center;
563
625
  flex-wrap: wrap;
564
626
  gap: 8px 12px;
565
- padding: 0 0 4px;
627
+ padding: 8px 0 4px;
566
628
  }
567
629
 
568
630
  .wrap h1,
@@ -2668,12 +2730,21 @@ body[data-active-view="studio"] #notice-stack {
2668
2730
  .studio-root {
2669
2731
  position: relative;
2670
2732
  display: grid;
2671
- grid-template-rows: 35px minmax(0, 1fr);
2733
+ grid-template-rows: 35px minmax(0, 1fr) 22px;
2672
2734
  background: #1e1e1e;
2673
2735
  color: #cccccc;
2674
2736
  }
2675
2737
 
2738
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) {
2739
+ color-scheme: dark;
2740
+ }
2741
+
2742
+ .studio-root[data-theme="light"]:not(.studio-empty-root) {
2743
+ color-scheme: light;
2744
+ }
2745
+
2676
2746
  .studio-empty-root {
2747
+ color-scheme: light;
2677
2748
  grid-template-rows: 1fr;
2678
2749
  overflow: auto;
2679
2750
  background: var(--wp-body-bg);
@@ -2912,6 +2983,7 @@ body[data-active-view="studio"] #notice-stack {
2912
2983
  .studio-title {
2913
2984
  align-items: baseline;
2914
2985
  display: flex;
2986
+ flex: 1 1 auto;
2915
2987
  gap: 10px;
2916
2988
  min-width: 0;
2917
2989
  }
@@ -2937,8 +3009,36 @@ body[data-active-view="studio"] #notice-stack {
2937
3009
  .studio-title-actions {
2938
3010
  align-items: center;
2939
3011
  display: flex;
3012
+ flex: 0 1 auto;
2940
3013
  gap: 6px;
2941
3014
  margin-left: auto;
3015
+ min-width: 0;
3016
+ }
3017
+
3018
+ .studio-toolbar-group {
3019
+ align-items: center;
3020
+ display: inline-flex;
3021
+ gap: 1px;
3022
+ min-width: 0;
3023
+ height: 28px;
3024
+ padding: 1px;
3025
+ border: 1px solid transparent;
3026
+ border-radius: 6px;
3027
+ background: transparent;
3028
+ }
3029
+
3030
+ .studio-toolbar-layout,
3031
+ .studio-toolbar-actions {
3032
+ border-color: #30343a;
3033
+ background: #1f2023;
3034
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
3035
+ }
3036
+
3037
+ .studio-toolbar-run {
3038
+ gap: 4px;
3039
+ padding: 0;
3040
+ border-color: transparent;
3041
+ background: transparent;
2942
3042
  }
2943
3043
 
2944
3044
  .studio-action-button,
@@ -2957,6 +3057,58 @@ body[data-active-view="studio"] #notice-stack {
2957
3057
  text-decoration: none;
2958
3058
  }
2959
3059
 
3060
+ .studio-title-actions .studio-action-button,
3061
+ .studio-title-actions .studio-icon-button {
3062
+ width: 28px;
3063
+ min-width: 28px;
3064
+ height: 24px;
3065
+ justify-content: center;
3066
+ gap: 0;
3067
+ border-color: transparent;
3068
+ border-radius: 3px;
3069
+ background: transparent;
3070
+ padding: 0;
3071
+ }
3072
+
3073
+ .studio-title-actions .studio-action-button span:not(.dashicons),
3074
+ .studio-title-actions .studio-icon-button span:not(.dashicons),
3075
+ .studio-title-actions .studio-theme-switch-label {
3076
+ display: none;
3077
+ }
3078
+
3079
+ .studio-title-actions .studio-package-size-button {
3080
+ width: auto;
3081
+ min-width: 56px;
3082
+ gap: 5px;
3083
+ padding: 0 8px;
3084
+ color: #d7dce2;
3085
+ }
3086
+
3087
+ .studio-title-actions .studio-package-size-button span:not(.dashicons) {
3088
+ display: inline;
3089
+ }
3090
+
3091
+ .studio-package-size-button {
3092
+ font-variant-numeric: tabular-nums;
3093
+ }
3094
+
3095
+ .studio-package-size-button.is-loading .dashicons {
3096
+ animation: ps-spin 1s linear infinite;
3097
+ }
3098
+
3099
+ .studio-package-size-button.is-over-limit {
3100
+ background: rgba(241, 76, 76, 0.18);
3101
+ color: #ff8a80;
3102
+ }
3103
+
3104
+ .studio-package-size-button.is-stale:not(.is-over-limit) {
3105
+ color: #f0b849;
3106
+ }
3107
+
3108
+ .studio-package-size-button.has-error {
3109
+ color: #ff8a80;
3110
+ }
3111
+
2960
3112
  .studio-action-button:hover,
2961
3113
  .studio-icon-button:hover,
2962
3114
  .studio-icon-button[aria-pressed="true"] {
@@ -2964,6 +3116,18 @@ body[data-active-view="studio"] #notice-stack {
2964
3116
  color: #ffffff;
2965
3117
  }
2966
3118
 
3119
+ .studio-toolbar-actions .studio-action-button:hover,
3120
+ .studio-toolbar-actions .studio-action-button:focus-visible,
3121
+ .studio-toolbar-actions .studio-icon-button:hover,
3122
+ .studio-toolbar-actions .studio-icon-button:focus-visible,
3123
+ .studio-toolbar-layout .studio-layout-button:hover,
3124
+ .studio-toolbar-layout .studio-layout-button:focus-visible,
3125
+ .studio-toolbar-layout .studio-layout-button.is-active {
3126
+ background: #2b3036;
3127
+ color: #ffffff;
3128
+ outline: none;
3129
+ }
3130
+
2967
3131
  .studio-action-button.is-primary {
2968
3132
  border-color: #3858e9;
2969
3133
  background: #3858e9;
@@ -2976,13 +3140,66 @@ body[data-active-view="studio"] #notice-stack {
2976
3140
 
2977
3141
  .studio-action-button:disabled,
2978
3142
  .studio-action-button[aria-disabled="true"] {
2979
- border-color: #303030;
2980
- background: #222222;
2981
- color: #6f7378;
3143
+ border-color: transparent;
3144
+ background: transparent;
3145
+ color: #777d86;
2982
3146
  cursor: default;
3147
+ opacity: 0.62;
2983
3148
  pointer-events: none;
2984
3149
  }
2985
3150
 
3151
+ .studio-theme-switch {
3152
+ align-items: center;
3153
+ display: inline-flex;
3154
+ gap: 5px;
3155
+ height: 24px;
3156
+ border: 1px solid transparent;
3157
+ border-radius: 3px;
3158
+ background: transparent;
3159
+ color: #cccccc;
3160
+ cursor: pointer;
3161
+ font-size: 12px;
3162
+ padding: 0 5px;
3163
+ }
3164
+
3165
+ .studio-theme-switch:hover,
3166
+ .studio-theme-switch:focus-visible {
3167
+ background: #2d2d2d;
3168
+ color: #ffffff;
3169
+ outline: none;
3170
+ }
3171
+
3172
+ .studio-theme-switch > .dashicons {
3173
+ font-size: 13px;
3174
+ width: 13px;
3175
+ height: 13px;
3176
+ }
3177
+
3178
+ .studio-theme-switch-track {
3179
+ position: relative;
3180
+ width: 25px;
3181
+ height: 14px;
3182
+ border: 1px solid #4b4b4b;
3183
+ border-radius: 999px;
3184
+ background: #181818;
3185
+ }
3186
+
3187
+ .studio-theme-switch-track span {
3188
+ position: absolute;
3189
+ top: 2px;
3190
+ left: 2px;
3191
+ width: 8px;
3192
+ height: 8px;
3193
+ border-radius: 999px;
3194
+ background: #cccccc;
3195
+ transition: transform 0.16s ease, background 0.16s ease;
3196
+ }
3197
+
3198
+ .studio-theme-switch[aria-checked="true"] .studio-theme-switch-track span {
3199
+ background: #ffffff;
3200
+ transform: translateX(11px);
3201
+ }
3202
+
2986
3203
  .studio-main {
2987
3204
  display: grid;
2988
3205
  grid-template-columns:
@@ -3280,7 +3497,7 @@ body.is-studio-resizing-v iframe {
3280
3497
  .studio-tree-row {
3281
3498
  align-items: center;
3282
3499
  display: grid;
3283
- grid-template-columns: 18px 20px minmax(0, 1fr) auto;
3500
+ grid-template-columns: minmax(0, 1fr) auto auto;
3284
3501
  gap: 6px;
3285
3502
  width: 100%;
3286
3503
  min-height: 28px;
@@ -3293,7 +3510,25 @@ body.is-studio-resizing-v iframe {
3293
3510
  }
3294
3511
 
3295
3512
  .studio-tree-file-row {
3296
- grid-template-columns: 18px 20px minmax(0, 1fr) auto;
3513
+ grid-template-columns: minmax(0, 1fr) auto auto;
3514
+ }
3515
+
3516
+ .studio-tree-main {
3517
+ align-items: center;
3518
+ display: grid;
3519
+ grid-template-columns: 18px 20px minmax(0, 1fr);
3520
+ gap: 6px;
3521
+ min-width: 0;
3522
+ border: 0;
3523
+ padding: 0;
3524
+ background: transparent;
3525
+ color: inherit;
3526
+ cursor: pointer;
3527
+ text-align: left;
3528
+ }
3529
+
3530
+ .studio-tree-main:disabled {
3531
+ cursor: default;
3297
3532
  }
3298
3533
 
3299
3534
  .studio-tree-arrow,
@@ -3318,7 +3553,8 @@ body.is-studio-resizing-v iframe {
3318
3553
  }
3319
3554
 
3320
3555
  .studio-tree-row:hover,
3321
- .studio-tree-row:focus-visible {
3556
+ .studio-tree-row:focus-visible,
3557
+ .studio-tree-row:focus-within {
3322
3558
  background: #f0f6fc;
3323
3559
  color: #0a4b78;
3324
3560
  }
@@ -3342,6 +3578,24 @@ body.is-studio-resizing-v iframe {
3342
3578
  font-weight: 600;
3343
3579
  }
3344
3580
 
3581
+ .studio-tree-file-row.is-ignored .studio-tree-main,
3582
+ .studio-tree-folder-row.has-ignored .studio-tree-main {
3583
+ opacity: 0.64;
3584
+ }
3585
+
3586
+ .studio-tree-folder.is-ignored > .studio-tree-folder-row {
3587
+ color: #646970;
3588
+ }
3589
+
3590
+ .studio-tree-folder.is-ignored > .studio-tree-folder-row .studio-tree-arrow,
3591
+ .studio-tree-folder.is-ignored > .studio-tree-folder-row .studio-tree-icon {
3592
+ color: #8c8f94;
3593
+ }
3594
+
3595
+ .studio-tree-folder-row.is-loading .studio-tree-arrow {
3596
+ animation: ps-spin 0.85s linear infinite;
3597
+ }
3598
+
3345
3599
  .studio-tree-folder.has-ai-changes > .studio-tree-folder-row .studio-tree-label,
3346
3600
  .studio-tree-file-row.has-ai-changes .studio-tree-label {
3347
3601
  color: #0a4b78;
@@ -3354,6 +3608,47 @@ body.is-studio-resizing-v iframe {
3354
3608
  justify-self: end;
3355
3609
  }
3356
3610
 
3611
+ .studio-tree-action {
3612
+ align-items: center;
3613
+ display: inline-flex;
3614
+ justify-content: center;
3615
+ width: 20px;
3616
+ height: 20px;
3617
+ border: 0;
3618
+ border-radius: 3px;
3619
+ background: transparent;
3620
+ color: var(--wp-text-muted);
3621
+ cursor: pointer;
3622
+ opacity: 0;
3623
+ padding: 0;
3624
+ }
3625
+
3626
+ .studio-tree-row:hover .studio-tree-action,
3627
+ .studio-tree-row:focus-within .studio-tree-action,
3628
+ .studio-tree-action.is-busy {
3629
+ opacity: 1;
3630
+ }
3631
+
3632
+ .studio-tree-action:hover,
3633
+ .studio-tree-action:focus-visible {
3634
+ background: rgba(var(--wp-admin-theme-color--rgb), 0.1);
3635
+ color: var(--wp-admin-theme-color);
3636
+ outline: none;
3637
+ }
3638
+
3639
+ .studio-tree-action.is-busy .dashicons {
3640
+ animation: ps-spin 0.85s linear infinite;
3641
+ }
3642
+
3643
+ .studio-tree-action.is-readonly {
3644
+ cursor: default;
3645
+ }
3646
+
3647
+ .studio-tree-action.is-readonly:hover {
3648
+ background: transparent;
3649
+ color: var(--wp-text-muted);
3650
+ }
3651
+
3357
3652
  .studio-tree-ai-badge {
3358
3653
  justify-self: end;
3359
3654
  min-width: 18px;
@@ -3368,6 +3663,26 @@ body.is-studio-resizing-v iframe {
3368
3663
  padding: 0 4px;
3369
3664
  }
3370
3665
 
3666
+ .studio-tree-ignored-badge,
3667
+ .studio-tree-deferred-badge {
3668
+ justify-self: end;
3669
+ min-width: 18px;
3670
+ height: 18px;
3671
+ border-radius: 3px;
3672
+ background: #f0f0f1;
3673
+ color: #646970;
3674
+ font-size: 9px;
3675
+ font-weight: 700;
3676
+ line-height: 18px;
3677
+ text-align: center;
3678
+ padding: 0 5px;
3679
+ }
3680
+
3681
+ .studio-tree-deferred-badge {
3682
+ background: #fff8e5;
3683
+ color: #8a5a00;
3684
+ }
3685
+
3371
3686
  .studio-tree-check-badge {
3372
3687
  justify-self: end;
3373
3688
  min-width: 18px;
@@ -3481,29 +3796,29 @@ body.is-studio-resizing-v iframe {
3481
3796
  align-items: center;
3482
3797
  display: inline-flex;
3483
3798
  gap: 6px;
3484
- height: 32px;
3485
- border: 1px solid #3858e9;
3486
- border-radius: 3px;
3487
- background: #3858e9;
3799
+ height: 28px;
3800
+ border: 1px solid #0e639c;
3801
+ border-radius: 6px;
3802
+ background: #0e639c;
3488
3803
  color: #ffffff;
3489
3804
  cursor: pointer;
3490
3805
  font-size: 12px;
3491
3806
  font-weight: 600;
3492
- padding: 0 12px;
3807
+ padding: 0 11px;
3493
3808
  }
3494
3809
 
3495
3810
  .studio-play-tab-button:hover,
3496
3811
  .studio-play-tab-button:focus-visible {
3497
- border-color: #2145e6;
3498
- background: #2145e6;
3812
+ border-color: #1177bb;
3813
+ background: #1177bb;
3499
3814
  color: #ffffff;
3500
3815
  outline: none;
3501
3816
  }
3502
3817
 
3503
3818
  .studio-play-tab-button:disabled {
3504
- border-color: #3c3c3c;
3505
- background: #252526;
3506
- color: #8c8f94;
3819
+ border-color: #30343a;
3820
+ background: #202225;
3821
+ color: #858b94;
3507
3822
  cursor: default;
3508
3823
  }
3509
3824
 
@@ -3515,15 +3830,25 @@ body.is-studio-resizing-v iframe {
3515
3830
  align-items: center;
3516
3831
  display: inline-flex;
3517
3832
  gap: 6px;
3518
- min-width: 122px;
3833
+ height: 28px;
3834
+ min-width: 0;
3835
+ padding: 0 8px;
3836
+ border: 1px solid #30343a;
3837
+ border-radius: 6px;
3838
+ background: #1f2023;
3519
3839
  color: #9da1a6;
3520
- font-size: 12px;
3840
+ font-size: 11px;
3521
3841
  white-space: nowrap;
3842
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
3843
+ }
3844
+
3845
+ .studio-preview-state em {
3846
+ font-style: normal;
3522
3847
  }
3523
3848
 
3524
3849
  .studio-preview-state > span {
3525
- width: 7px;
3526
- height: 7px;
3850
+ width: 6px;
3851
+ height: 6px;
3527
3852
  border-radius: 999px;
3528
3853
  background: #646970;
3529
3854
  }
@@ -4211,6 +4536,10 @@ body.is-studio-resizing-v iframe {
4211
4536
  color: #d4d4d4;
4212
4537
  }
4213
4538
 
4539
+ .terminal-command {
4540
+ color: #facc15;
4541
+ }
4542
+
4214
4543
  .terminal-success {
4215
4544
  color: #86efac;
4216
4545
  }
@@ -4364,27 +4693,42 @@ body.is-studio-resizing-v iframe {
4364
4693
  width: 34px;
4365
4694
  height: 34px;
4366
4695
  border-radius: var(--wp-radius-l);
4367
- background: transparent;
4368
- box-shadow: none;
4696
+ border: 1px solid rgba(255, 255, 255, 0.16);
4697
+ background: var(--studio-provider-icon-surface, #f2f2f7);
4698
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.24);
4369
4699
  }
4370
4700
 
4371
4701
  .studio-ai-avatar.is-harness .studio-ai-avatar-icon {
4372
4702
  width: 32px;
4373
4703
  height: 32px;
4374
4704
  border-radius: var(--wp-radius-l);
4705
+ object-fit: contain;
4706
+ }
4707
+
4708
+ .studio-ai-avatar.is-harness .studio-ai-avatar-icon.is-provider-icon {
4709
+ width: 20px;
4710
+ height: 20px;
4711
+ border-radius: 0;
4712
+ filter: var(--studio-provider-icon-filter, none);
4713
+ opacity: 0.92;
4714
+ }
4715
+
4716
+ .studio-ai-avatar-lg {
4717
+ width: 56px;
4718
+ height: 56px;
4375
4719
  }
4376
4720
 
4377
- .studio-ai-avatar-lg {
4378
- width: 56px;
4379
- height: 56px;
4380
- }
4381
-
4382
4721
  .studio-ai-avatar-lg.is-harness .studio-ai-avatar-icon {
4383
4722
  width: 56px;
4384
4723
  height: 56px;
4385
4724
  border-radius: 12px;
4386
4725
  }
4387
4726
 
4727
+ .studio-ai-avatar-lg.is-harness .studio-ai-avatar-icon.is-provider-icon {
4728
+ width: 34px;
4729
+ height: 34px;
4730
+ }
4731
+
4388
4732
  .studio-ai-avatar-lg .dashicons {
4389
4733
  font-size: 28px;
4390
4734
  height: 28px;
@@ -4447,7 +4791,7 @@ body.is-studio-resizing-v iframe {
4447
4791
  overflow: auto;
4448
4792
  padding: 14px 12px;
4449
4793
  background: #f6f7f7;
4450
- scroll-behavior: smooth;
4794
+ scroll-behavior: auto;
4451
4795
  }
4452
4796
 
4453
4797
  .studio-ai-empty,
@@ -5142,1313 +5486,2932 @@ body.is-studio-resizing-v iframe {
5142
5486
  }
5143
5487
 
5144
5488
  /* ===================================================================
5145
- * Responsive
5489
+ * Studio workbench — VS Code-style shell
5146
5490
  * =================================================================== */
5147
5491
 
5148
- @media screen and (max-width: 1200px) {
5149
- #dashboard-widgets {
5150
- grid-template-columns: 1fr;
5151
- }
5492
+ .studio-root {
5493
+ --studio-vscode-bg: #1e1e1e;
5494
+ --studio-vscode-side-bg: #252526;
5495
+ --studio-vscode-title-bg: #181818;
5496
+ --studio-vscode-activity-bg: #181818;
5497
+ --studio-vscode-tab-bg: #2d2d2d;
5498
+ --studio-vscode-border: #2b2b2b;
5499
+ --studio-vscode-border-strong: #3c3c3c;
5500
+ --studio-vscode-text: #cccccc;
5501
+ --studio-vscode-muted: #9da1a6;
5502
+ --studio-vscode-active: #ffffff;
5503
+ --studio-vscode-focus: #0078d4;
5504
+ --studio-vscode-status: #007acc;
5505
+ --studio-vscode-hover: #2a2d2e;
5506
+ --studio-vscode-segment-active: #37373d;
5507
+ --studio-provider-icon-surface: #f2f2f7;
5508
+ --studio-provider-icon-filter: none;
5509
+ }
5510
+
5511
+ .studio-root[data-theme="light"] {
5512
+ --studio-vscode-bg: #ffffff;
5513
+ --studio-vscode-side-bg: #f6f8fa;
5514
+ --studio-vscode-title-bg: #f6f8fa;
5515
+ --studio-vscode-activity-bg: #f6f8fa;
5516
+ --studio-vscode-tab-bg: #eaeef2;
5517
+ --studio-vscode-border: #d0d7de;
5518
+ --studio-vscode-border-strong: #afb8c1;
5519
+ --studio-vscode-text: #24292f;
5520
+ --studio-vscode-muted: #57606a;
5521
+ --studio-vscode-active: #111827;
5522
+ --studio-vscode-focus: #0969da;
5523
+ --studio-vscode-status: #0969da;
5524
+ --studio-vscode-hover: #eaeef2;
5525
+ --studio-vscode-segment-active: #ffffff;
5526
+ --studio-provider-icon-surface: #ffffff;
5152
5527
  }
5153
5528
 
5154
- @media screen and (max-width: 960px) {
5155
- .ab-command {
5156
- min-width: auto;
5157
- }
5158
- .ab-command-label,
5159
- .ab-kbd {
5160
- display: none;
5161
- }
5529
+ .studio-titlebar {
5530
+ border-bottom-color: var(--studio-vscode-border);
5531
+ background: var(--studio-vscode-title-bg);
5532
+ }
5162
5533
 
5163
- .ps-welcome-panel .welcome-panel-header {
5164
- padding: 30px 28px 42px;
5165
- }
5534
+ .studio-layout-button {
5535
+ align-items: center;
5536
+ display: inline-flex;
5537
+ justify-content: center;
5538
+ width: 28px;
5539
+ height: 26px;
5540
+ border: 1px solid transparent;
5541
+ border-radius: 3px;
5542
+ background: transparent;
5543
+ color: var(--studio-vscode-muted);
5544
+ cursor: pointer;
5545
+ }
5166
5546
 
5167
- .ps-welcome-panel h2 {
5168
- font-size: 34px;
5169
- }
5547
+ .studio-layout-button .dashicons {
5548
+ font-size: 15px;
5549
+ width: 15px;
5550
+ height: 15px;
5551
+ }
5170
5552
 
5171
- .ps-welcome-panel .welcome-panel-header p {
5172
- font-size: 16px;
5173
- }
5553
+ .studio-layout-button:hover,
5554
+ .studio-layout-button:focus-visible,
5555
+ .studio-layout-button.is-active {
5556
+ background: #2a2d2e;
5557
+ color: var(--studio-vscode-active);
5558
+ outline: none;
5559
+ }
5174
5560
 
5175
- .ps-welcome-panel .welcome-panel-column-container {
5176
- grid-template-columns: 1fr;
5177
- gap: 20px;
5178
- }
5561
+ .studio-main {
5562
+ grid-template-columns:
5563
+ 48px
5564
+ var(--studio-files-width, 260px)
5565
+ 6px
5566
+ minmax(0, 1fr)
5567
+ 6px
5568
+ var(--studio-ai-width, 330px);
5569
+ background: var(--studio-vscode-bg);
5570
+ }
5179
5571
 
5180
- .studio-main {
5181
- grid-template-columns:
5182
- var(--studio-files-width, 260px)
5183
- 6px
5184
- minmax(0, 1fr)
5185
- 6px
5186
- var(--studio-ai-width, 330px);
5187
- }
5572
+ .studio-root.is-files-collapsed.has-secondary-sidebar .studio-main {
5573
+ grid-template-columns: 48px minmax(0, 1fr) 6px var(--studio-ai-width, 330px);
5574
+ }
5188
5575
 
5189
- .studio-preview-empty {
5190
- gap: 18px;
5191
- padding: 24px;
5192
- }
5576
+ .studio-root.has-files.is-secondary-sidebar-collapsed .studio-main {
5577
+ grid-template-columns: 48px var(--studio-files-width, 260px) 6px minmax(0, 1fr);
5578
+ }
5193
5579
 
5194
- .studio-preview-shell {
5195
- width: min(300px, 44vw);
5196
- min-width: 220px;
5197
- }
5580
+ .studio-root.is-files-collapsed.is-secondary-sidebar-collapsed .studio-main {
5581
+ grid-template-columns: 48px minmax(0, 1fr);
5582
+ }
5198
5583
 
5199
- .studio-preview-empty-copy {
5200
- max-width: 280px;
5201
- }
5584
+ .studio-root .studio-resizer-h {
5585
+ border-color: var(--studio-vscode-border);
5586
+ background: var(--studio-vscode-bg);
5202
5587
  }
5203
5588
 
5204
- @media screen and (max-width: 782px) {
5205
- :root {
5206
- --wp-admin--admin-bar--height: 46px;
5207
- --wp-sidebar-width: 190px;
5208
- }
5589
+ .studio-root .studio-resizer-v {
5590
+ border-color: var(--studio-vscode-border);
5591
+ background: var(--studio-vscode-bg);
5592
+ }
5209
5593
 
5210
- body {
5211
- min-width: 0;
5212
- }
5594
+ .studio-activitybar {
5595
+ display: flex;
5596
+ flex-direction: column;
5597
+ align-items: stretch;
5598
+ min-width: 0;
5599
+ min-height: 0;
5600
+ border-right: 1px solid var(--studio-vscode-border);
5601
+ background: var(--studio-vscode-activity-bg);
5602
+ }
5213
5603
 
5214
- .ab-brand-name {
5215
- font-size: 15px;
5216
- }
5604
+ .studio-activitybar-primary,
5605
+ .studio-activitybar-secondary {
5606
+ display: grid;
5607
+ gap: 2px;
5608
+ padding: 6px 0;
5609
+ }
5217
5610
 
5218
- #adminmenuback,
5219
- #adminmenuwrap,
5220
- #adminmenu {
5221
- position: relative;
5222
- width: 100%;
5223
- height: auto;
5224
- }
5611
+ .studio-activitybar-secondary {
5612
+ margin-top: auto;
5613
+ }
5225
5614
 
5226
- #adminmenuback {
5227
- display: none;
5228
- }
5615
+ .studio-activity-button {
5616
+ position: relative;
5617
+ display: grid;
5618
+ place-items: center;
5619
+ width: 48px;
5620
+ height: 48px;
5621
+ border: 0;
5622
+ background: transparent;
5623
+ color: #858585;
5624
+ cursor: pointer;
5625
+ }
5229
5626
 
5230
- #adminmenuwrap {
5231
- position: relative;
5232
- top: 0;
5233
- }
5627
+ .studio-activity-button::before {
5628
+ content: "";
5629
+ position: absolute;
5630
+ left: 0;
5631
+ top: 8px;
5632
+ bottom: 8px;
5633
+ width: 2px;
5634
+ background: transparent;
5635
+ }
5234
5636
 
5235
- #wpcontent {
5236
- margin-left: 0;
5237
- padding-left: 12px;
5238
- padding-right: 12px;
5239
- }
5637
+ .studio-activity-button .dashicons {
5638
+ font-size: 22px;
5639
+ width: 22px;
5640
+ height: 22px;
5641
+ }
5240
5642
 
5241
- body[data-active-view="studio"] #wpcontent {
5242
- padding-left: 0;
5243
- padding-right: 0;
5244
- }
5643
+ .studio-activity-button:hover,
5644
+ .studio-activity-button:focus-visible {
5645
+ color: var(--studio-vscode-active);
5646
+ outline: none;
5647
+ }
5245
5648
 
5246
- .ps-settings-row {
5247
- grid-template-columns: 1fr;
5248
- }
5649
+ .studio-activity-button.is-active {
5650
+ color: var(--studio-vscode-active);
5651
+ }
5249
5652
 
5250
- .inline-form {
5251
- display: flex;
5252
- margin-top: 8px;
5253
- width: 100%;
5254
- }
5653
+ .studio-activity-button.is-active::before {
5654
+ background: var(--studio-vscode-active);
5655
+ }
5255
5656
 
5256
- .inline-form input[type="text"] {
5257
- width: 100%;
5258
- }
5657
+ .studio-pane-header,
5658
+ .studio-secondary-header {
5659
+ align-items: center;
5660
+ display: flex;
5661
+ justify-content: space-between;
5662
+ gap: 8px;
5663
+ min-height: 35px;
5664
+ border-bottom: 1px solid var(--studio-vscode-border);
5665
+ background: var(--studio-vscode-side-bg);
5666
+ color: var(--studio-vscode-text);
5667
+ padding: 0 8px 0 12px;
5668
+ }
5259
5669
 
5260
- .ps-welcome-panel .welcome-panel-header {
5261
- padding: 24px 20px 32px;
5262
- }
5670
+ .studio-pane-header strong,
5671
+ .studio-secondary-header strong {
5672
+ overflow: hidden;
5673
+ color: var(--studio-vscode-active);
5674
+ font-size: 11px;
5675
+ font-weight: 500;
5676
+ letter-spacing: 0.04em;
5677
+ text-overflow: ellipsis;
5678
+ text-transform: uppercase;
5679
+ white-space: nowrap;
5680
+ }
5263
5681
 
5264
- .ps-welcome-panel h2 {
5265
- font-size: 28px;
5266
- }
5682
+ .studio-pane-action {
5683
+ display: inline-grid;
5684
+ place-items: center;
5685
+ width: 24px;
5686
+ height: 24px;
5687
+ border: 0;
5688
+ border-radius: 3px;
5689
+ background: transparent;
5690
+ color: var(--studio-vscode-muted);
5691
+ cursor: pointer;
5692
+ }
5267
5693
 
5268
- .ps-welcome-panel .welcome-panel-header p {
5269
- font-size: 14px;
5270
- }
5694
+ .studio-pane-action .dashicons {
5695
+ font-size: 14px;
5696
+ width: 14px;
5697
+ height: 14px;
5698
+ }
5271
5699
 
5272
- .ps-welcome-panel .welcome-panel-column-container {
5273
- padding: 18px;
5274
- }
5700
+ .studio-pane-action:hover,
5701
+ .studio-pane-action:focus-visible {
5702
+ background: #37373d;
5703
+ color: var(--studio-vscode-active);
5704
+ outline: none;
5705
+ }
5275
5706
 
5276
- .ps-welcome-panel .welcome-panel-column {
5277
- grid-template-columns: 44px minmax(0, 1fr);
5278
- gap: 14px;
5279
- }
5707
+ .studio-files {
5708
+ grid-template-rows: 35px minmax(0, 1fr);
5709
+ border-right: 1px solid var(--studio-vscode-border);
5710
+ background: var(--studio-vscode-side-bg);
5711
+ color: var(--studio-vscode-text);
5712
+ }
5280
5713
 
5281
- .ps-welcome-icon,
5282
- .ps-skeleton-welcome-icon {
5283
- width: 44px;
5284
- height: 44px;
5285
- }
5714
+ .studio-file-list {
5715
+ padding: 4px 0 8px;
5716
+ }
5286
5717
 
5287
- .ps-welcome-icon .dashicons {
5288
- font-size: 20px;
5289
- width: 20px;
5290
- height: 20px;
5291
- }
5718
+ .studio-muted {
5719
+ color: var(--studio-vscode-muted);
5720
+ padding: 8px 12px;
5721
+ }
5292
5722
 
5293
- .ps-dashboard-widgets-wrap {
5294
- margin: 0;
5295
- }
5723
+ .studio-tree {
5724
+ gap: 0;
5725
+ }
5296
5726
 
5297
- #dashboard-widgets .meta-box-sortables {
5298
- margin: 0 0 16px;
5299
- }
5727
+ .studio-tree-row {
5728
+ min-height: 22px;
5729
+ padding: 2px 8px 2px calc(8px + (var(--depth, 0) * 16px));
5730
+ color: var(--studio-vscode-text);
5731
+ font-size: 12px;
5732
+ }
5300
5733
 
5301
- #dashboard-widgets .postbox-header {
5302
- align-items: center;
5303
- }
5734
+ .studio-tree-arrow,
5735
+ .studio-tree-indent,
5736
+ .studio-tree-icon {
5737
+ color: #c5c5c5;
5738
+ }
5304
5739
 
5305
- .ps-postbox-actions {
5306
- padding: 8px 10px 8px 0;
5307
- }
5740
+ .studio-tree-row:hover,
5741
+ .studio-tree-row:focus-visible,
5742
+ .studio-tree-row:focus-within {
5743
+ background: #2a2d2e;
5744
+ color: var(--studio-vscode-active);
5745
+ outline: none;
5746
+ }
5747
+
5748
+ .studio-tree-folder.has-current > .studio-tree-folder-row {
5749
+ color: var(--studio-vscode-active);
5750
+ }
5751
+
5752
+ .studio-tree-folder.is-ignored > .studio-tree-folder-row {
5753
+ color: var(--studio-vscode-muted);
5754
+ }
5755
+
5756
+ .studio-tree-folder.is-ignored > .studio-tree-folder-row .studio-tree-arrow,
5757
+ .studio-tree-folder.is-ignored > .studio-tree-folder-row .studio-tree-icon {
5758
+ color: #858b94;
5759
+ }
5760
+
5761
+ .studio-tree-folder-row.is-loading .studio-tree-arrow {
5762
+ animation: ps-spin 0.85s linear infinite;
5763
+ }
5764
+
5765
+ .studio-tree-file-row.is-current {
5766
+ background: #37373d;
5767
+ box-shadow: none;
5768
+ color: var(--studio-vscode-active);
5769
+ font-weight: 500;
5770
+ }
5771
+
5772
+ .studio-tree-file-row.has-check-errors {
5773
+ box-shadow: inset 2px 0 0 #f14c4c;
5774
+ }
5775
+
5776
+ .studio-tree-folder.has-ai-changes > .studio-tree-folder-row .studio-tree-label,
5777
+ .studio-tree-file-row.has-ai-changes .studio-tree-label {
5778
+ color: #9cdcfe;
5779
+ }
5780
+
5781
+ .studio-tree-action {
5782
+ color: var(--studio-vscode-muted);
5783
+ }
5784
+
5785
+ .studio-tree-action:hover,
5786
+ .studio-tree-action:focus-visible {
5787
+ background: #3c3c3c;
5788
+ color: var(--studio-vscode-active);
5789
+ }
5790
+
5791
+ .studio-tree-action.is-readonly:hover {
5792
+ background: transparent;
5793
+ color: var(--studio-vscode-muted);
5794
+ }
5795
+
5796
+ .studio-tree-ignored-badge {
5797
+ background: #2d2d2d;
5798
+ color: #9da1a6;
5799
+ }
5800
+
5801
+ .studio-workbench {
5802
+ background: var(--studio-vscode-bg);
5803
+ }
5804
+
5805
+ .studio-tabs {
5806
+ height: 35px;
5807
+ border-bottom-color: var(--studio-vscode-border);
5808
+ background: var(--studio-vscode-bg);
5809
+ padding: 0;
5810
+ }
5811
+
5812
+ .studio-tablist {
5813
+ align-self: stretch;
5814
+ display: flex;
5815
+ flex: 1 1 auto;
5816
+ height: 35px;
5817
+ min-width: 0;
5818
+ border: 0;
5819
+ border-radius: 0;
5820
+ background: transparent;
5821
+ overflow: hidden;
5822
+ }
5823
+
5824
+ .studio-pinned-tabs,
5825
+ .studio-file-tabs {
5826
+ align-self: stretch;
5827
+ display: inline-flex;
5828
+ min-width: 0;
5829
+ }
5830
+
5831
+ .studio-pinned-tabs {
5832
+ flex: 0 0 auto;
5833
+ }
5834
+
5835
+ .studio-file-tabs {
5836
+ flex: 1 1 auto;
5837
+ overflow-x: auto;
5838
+ overflow-y: hidden;
5839
+ scrollbar-width: thin;
5840
+ }
5841
+
5842
+ .studio-file-tabs-empty {
5843
+ align-items: center;
5844
+ display: inline-flex;
5845
+ height: 35px;
5846
+ min-width: 0;
5847
+ padding: 0 12px;
5848
+ border-right: 1px solid var(--studio-vscode-border);
5849
+ color: #858585;
5850
+ font-size: 12px;
5851
+ white-space: nowrap;
5852
+ }
5853
+
5854
+ .studio-tab-button {
5855
+ height: 35px;
5856
+ min-width: 118px;
5857
+ max-width: min(280px, 32vw);
5858
+ border-right: 1px solid var(--studio-vscode-border);
5859
+ background: var(--studio-vscode-tab-bg);
5860
+ color: var(--studio-vscode-muted);
5861
+ font-size: 12px;
5862
+ }
5863
+
5864
+ .studio-tab-pinned {
5865
+ justify-content: center;
5866
+ grid-template-columns: 18px;
5867
+ min-width: 42px;
5868
+ max-width: 42px;
5869
+ padding: 0;
5870
+ }
5871
+
5872
+ .studio-tab-pinned > span:nth-child(2),
5873
+ .studio-tab-pinned small {
5874
+ position: absolute;
5875
+ width: 1px;
5876
+ height: 1px;
5877
+ overflow: hidden;
5878
+ clip: rect(0 0 0 0);
5879
+ clip-path: inset(50%);
5880
+ white-space: nowrap;
5881
+ }
5882
+
5883
+ .studio-file-tab-wrap {
5884
+ position: relative;
5885
+ align-self: stretch;
5886
+ display: inline-flex;
5887
+ flex: 0 0 auto;
5888
+ min-width: 0;
5889
+ }
5890
+
5891
+ .studio-file-tab-wrap .studio-tab-button {
5892
+ padding-right: 28px;
5893
+ }
5894
+
5895
+ .studio-tab-close {
5896
+ position: absolute;
5897
+ right: 4px;
5898
+ top: 50%;
5899
+ display: grid;
5900
+ place-items: center;
5901
+ width: 20px;
5902
+ height: 20px;
5903
+ border: 0;
5904
+ border-radius: 3px;
5905
+ background: transparent;
5906
+ color: #858585;
5907
+ cursor: pointer;
5908
+ opacity: 0;
5909
+ transform: translateY(-50%);
5910
+ }
5911
+
5912
+ .studio-file-tab-wrap:hover .studio-tab-close,
5913
+ .studio-file-tab-wrap:focus-within .studio-tab-close,
5914
+ .studio-file-tab-wrap .studio-tab-button.is-active + .studio-tab-close {
5915
+ opacity: 1;
5916
+ }
5917
+
5918
+ .studio-tab-close .dashicons {
5919
+ font-size: 13px;
5920
+ width: 13px;
5921
+ height: 13px;
5922
+ }
5923
+
5924
+ .studio-tab-close:hover,
5925
+ .studio-tab-close:focus-visible {
5926
+ background: #3c3c3c;
5927
+ color: #ffffff;
5928
+ outline: none;
5929
+ }
5930
+
5931
+ .studio-tab-button:hover,
5932
+ .studio-tab-button:focus-visible {
5933
+ background: #333333;
5934
+ }
5935
+
5936
+ .studio-tab-button.is-active {
5937
+ background: var(--studio-vscode-bg);
5938
+ box-shadow: inset 0 1px 0 var(--studio-vscode-focus);
5939
+ color: var(--studio-vscode-active);
5940
+ }
5941
+
5942
+ .studio-play-tab-button {
5943
+ height: 28px;
5944
+ border-color: #0e639c;
5945
+ border-radius: 6px;
5946
+ background: #0e639c;
5947
+ }
5948
+
5949
+ .studio-title-actions .studio-play-tab-button {
5950
+ flex: 0 0 auto;
5951
+ box-shadow: none;
5952
+ }
5953
+
5954
+ .studio-title-actions .studio-preview-state {
5955
+ height: 28px;
5956
+ }
5957
+
5958
+ .studio-preview-state,
5959
+ #studio-editor-status {
5960
+ color: var(--studio-vscode-muted);
5961
+ }
5962
+
5963
+ .studio-ai {
5964
+ border-left: 1px solid var(--studio-vscode-border);
5965
+ background: var(--studio-vscode-side-bg);
5966
+ color: var(--studio-vscode-text);
5967
+ }
5968
+
5969
+ .studio-secondary-header {
5970
+ flex: 0 0 auto;
5971
+ }
5972
+
5973
+ .studio-sidebar-tabs.ps-segmented {
5974
+ align-self: stretch;
5975
+ margin: 0;
5976
+ padding: 4px;
5977
+ border: 0;
5978
+ border-bottom: 1px solid var(--studio-vscode-border);
5979
+ border-radius: 0;
5980
+ background: var(--studio-vscode-side-bg);
5981
+ }
5982
+
5983
+ .ps-segmented-option {
5984
+ border-radius: 3px;
5985
+ color: var(--studio-vscode-muted);
5986
+ }
5987
+
5988
+ .ps-segmented-option:hover,
5989
+ .ps-segmented-option:focus-visible {
5990
+ background: var(--studio-vscode-hover);
5991
+ color: var(--studio-vscode-active);
5992
+ outline: none;
5993
+ }
5994
+
5995
+ .ps-segmented-option.is-active {
5996
+ background: var(--studio-vscode-segment-active);
5997
+ color: var(--studio-vscode-active);
5998
+ box-shadow: none;
5999
+ }
6000
+
6001
+ .studio-ai-header,
6002
+ .studio-ai-context,
6003
+ .studio-ai-composer {
6004
+ border-color: var(--studio-vscode-border);
6005
+ background: var(--studio-vscode-side-bg);
6006
+ color: var(--studio-vscode-text);
6007
+ }
6008
+
6009
+ .studio-ai-header {
6010
+ background: #2d2d2d;
6011
+ }
6012
+
6013
+ .studio-ai-agent strong,
6014
+ .studio-ai-reply header span,
6015
+ .studio-ai-bubble header span,
6016
+ .studio-ai-empty strong {
6017
+ color: var(--studio-vscode-active);
6018
+ }
6019
+
6020
+ .studio-ai-status,
6021
+ .studio-ai-context-chip,
6022
+ .studio-ai-empty,
6023
+ .studio-ai-empty small {
6024
+ color: var(--studio-vscode-muted);
6025
+ }
6026
+
6027
+ .studio-ai-context-chip,
6028
+ .studio-ai-suggestion,
6029
+ .studio-ai-bubble,
6030
+ .studio-ai-change-card,
6031
+ .studio-ai-input-shell,
6032
+ .studio-ai-state,
6033
+ .studio-ai-message-system {
6034
+ border-color: var(--studio-vscode-border-strong);
6035
+ background: #1f1f1f;
6036
+ color: var(--studio-vscode-text);
6037
+ }
6038
+
6039
+ .studio-ai-messages {
6040
+ background: #1e1e1e;
6041
+ }
6042
+
6043
+ .studio-ai-suggestion:hover,
6044
+ .studio-ai-suggestion:focus-visible,
6045
+ .studio-ai-change:hover,
6046
+ .studio-ai-change:focus-visible,
6047
+ .studio-ai-change-action:hover,
6048
+ .studio-ai-change-action:focus-visible {
6049
+ background: #2a2d2e;
6050
+ color: var(--studio-vscode-active);
6051
+ }
6052
+
6053
+ .studio-ai-changes {
6054
+ border-bottom-color: var(--studio-vscode-border);
6055
+ background: #1f2937;
6056
+ }
6057
+
6058
+ .studio-ai-composer textarea {
6059
+ color: var(--studio-vscode-text);
6060
+ }
6061
+
6062
+ .studio-root[data-theme="dark"] .studio-ai-reply p,
6063
+ .studio-root[data-theme="dark"] .studio-ai-markdown,
6064
+ .studio-root[data-theme="dark"] .studio-ai-markdown h1,
6065
+ .studio-root[data-theme="dark"] .studio-ai-markdown h2,
6066
+ .studio-root[data-theme="dark"] .studio-ai-markdown h3,
6067
+ .studio-root[data-theme="dark"] .studio-ai-markdown h4,
6068
+ .studio-root[data-theme="dark"] .studio-ai-markdown h5,
6069
+ .studio-root[data-theme="dark"] .studio-ai-markdown h6,
6070
+ .studio-root[data-theme="dark"] .studio-ai-bubble p {
6071
+ color: var(--studio-vscode-text);
6072
+ }
6073
+
6074
+ .studio-root[data-theme="dark"] .studio-ai-markdown blockquote,
6075
+ .studio-root[data-theme="dark"] .studio-ai-reply header time,
6076
+ .studio-root[data-theme="dark"] .studio-ai-bubble header time {
6077
+ color: var(--studio-vscode-muted);
6078
+ }
6079
+
6080
+ .studio-root[data-theme="dark"] .studio-ai-markdown code,
6081
+ .studio-root[data-theme="dark"] .studio-ai-markdown pre,
6082
+ .studio-root[data-theme="dark"] .studio-ai-markdown th {
6083
+ border-color: var(--studio-vscode-border-strong);
6084
+ background: #181818;
6085
+ color: var(--studio-vscode-text);
6086
+ }
6087
+
6088
+ .studio-root[data-theme="dark"] .studio-ai-reply ::selection,
6089
+ .studio-root[data-theme="dark"] .studio-ai-bubble ::selection,
6090
+ .studio-root[data-theme="dark"] .studio-ai-composer textarea::selection {
6091
+ background: rgba(0, 120, 212, 0.55);
6092
+ color: var(--studio-vscode-active);
6093
+ }
6094
+
6095
+ .studio-root[data-theme="dark"] .studio-ai-input-shell.is-disabled {
6096
+ border-color: var(--studio-vscode-border-strong);
6097
+ background: #252526;
6098
+ opacity: 1;
6099
+ }
6100
+
6101
+ .studio-root[data-theme="dark"] .studio-ai-input-shell.is-disabled textarea,
6102
+ .studio-root[data-theme="dark"] .studio-ai-composer textarea:disabled {
6103
+ color: var(--studio-vscode-muted);
6104
+ -webkit-text-fill-color: var(--studio-vscode-muted);
6105
+ }
6106
+
6107
+ .studio-root[data-theme="dark"] .studio-ai-composer textarea::placeholder,
6108
+ .studio-root[data-theme="dark"] .studio-ai-composer textarea:disabled::placeholder {
6109
+ color: var(--studio-vscode-muted);
6110
+ opacity: 1;
6111
+ }
6112
+
6113
+ .studio-root[data-theme="dark"] .studio-ai-hint kbd {
6114
+ border-color: var(--studio-vscode-border-strong);
6115
+ background: #252526;
6116
+ color: var(--studio-vscode-muted);
6117
+ }
6118
+
6119
+ .studio-root[data-theme="dark"] .studio-ai-send-button:disabled {
6120
+ border-color: var(--studio-vscode-border-strong);
6121
+ background: #252526;
6122
+ color: var(--studio-vscode-muted);
6123
+ opacity: 1;
6124
+ }
6125
+
6126
+ .studio-ai-input-shell:focus-within {
6127
+ border-color: var(--studio-vscode-focus);
6128
+ box-shadow: 0 0 0 1px var(--studio-vscode-focus);
6129
+ }
6130
+
6131
+ .studio-statusbar {
6132
+ align-items: center;
6133
+ display: flex;
6134
+ gap: 14px;
6135
+ min-width: 0;
6136
+ min-height: 22px;
6137
+ overflow: hidden;
6138
+ background: var(--studio-vscode-status);
6139
+ color: #ffffff;
6140
+ font-size: 11px;
6141
+ padding: 0 10px;
6142
+ }
6143
+
6144
+ .studio-statusbar span {
6145
+ align-items: center;
6146
+ display: inline-flex;
6147
+ gap: 5px;
6148
+ min-width: 0;
6149
+ overflow: hidden;
6150
+ text-overflow: ellipsis;
6151
+ white-space: nowrap;
6152
+ }
6153
+
6154
+ .studio-statusbar .dashicons {
6155
+ font-size: 13px;
6156
+ width: 13px;
6157
+ height: 13px;
6158
+ }
6159
+
6160
+ .studio-statusbar-spacer {
6161
+ flex: 1 1 auto;
6162
+ }
6163
+
6164
+ .studio-root .studio-playground-version-backdrop {
6165
+ inset: 35px 0 22px;
6166
+ }
6167
+
6168
+ /* ===================================================================
6169
+ * Responsive
6170
+ * =================================================================== */
6171
+
6172
+ @media screen and (max-width: 1200px) {
6173
+ #dashboard-widgets {
6174
+ grid-template-columns: 1fr;
6175
+ }
6176
+ }
6177
+
6178
+ @media screen and (max-width: 960px) {
6179
+ .ab-command {
6180
+ min-width: auto;
6181
+ }
6182
+ .ab-command-label,
6183
+ .ab-kbd {
6184
+ display: none;
6185
+ }
6186
+
6187
+ .ps-welcome-panel .welcome-panel-header {
6188
+ padding: 30px 28px 42px;
6189
+ }
6190
+
6191
+ .ps-welcome-panel h2 {
6192
+ font-size: 34px;
6193
+ }
6194
+
6195
+ .ps-welcome-panel .welcome-panel-header p {
6196
+ font-size: 16px;
6197
+ }
6198
+
6199
+ .ps-welcome-panel .welcome-panel-column-container {
6200
+ grid-template-columns: 1fr;
6201
+ gap: 20px;
6202
+ }
6203
+
6204
+ .studio-main {
6205
+ grid-template-columns:
6206
+ 48px
6207
+ var(--studio-files-width, 260px)
6208
+ 6px
6209
+ minmax(0, 1fr)
6210
+ 6px
6211
+ var(--studio-ai-width, 330px);
6212
+ }
6213
+
6214
+ .studio-root.is-files-collapsed.has-secondary-sidebar .studio-main {
6215
+ grid-template-columns: 48px minmax(0, 1fr) 6px var(--studio-ai-width, 330px);
6216
+ }
6217
+
6218
+ .studio-root.has-files.is-secondary-sidebar-collapsed .studio-main {
6219
+ grid-template-columns: 48px var(--studio-files-width, 260px) 6px minmax(0, 1fr);
6220
+ }
6221
+
6222
+ .studio-root.is-files-collapsed.is-secondary-sidebar-collapsed .studio-main {
6223
+ grid-template-columns: 48px minmax(0, 1fr);
6224
+ }
6225
+
6226
+ .studio-preview-empty {
6227
+ gap: 18px;
6228
+ padding: 24px;
6229
+ }
6230
+
6231
+ .studio-preview-shell {
6232
+ width: min(300px, 44vw);
6233
+ min-width: 220px;
6234
+ }
6235
+
6236
+ .studio-preview-empty-copy {
6237
+ max-width: 280px;
6238
+ }
6239
+ }
6240
+
6241
+ @media screen and (max-width: 782px) {
6242
+ :root {
6243
+ --wp-admin--admin-bar--height: 46px;
6244
+ --wp-sidebar-width: 190px;
6245
+ }
6246
+
6247
+ body {
6248
+ min-width: 0;
6249
+ }
6250
+
6251
+ .ab-brand-name {
6252
+ font-size: 15px;
6253
+ }
6254
+
6255
+ #adminmenuback,
6256
+ #adminmenuwrap,
6257
+ #adminmenu {
6258
+ position: relative;
6259
+ width: 100%;
6260
+ height: auto;
6261
+ }
6262
+
6263
+ #adminmenuback {
6264
+ display: none;
6265
+ }
6266
+
6267
+ #adminmenuwrap {
6268
+ position: relative;
6269
+ top: 0;
6270
+ }
6271
+
6272
+ #wpcontent {
6273
+ margin-left: 0;
6274
+ padding-left: 12px;
6275
+ padding-right: 12px;
6276
+ }
6277
+
6278
+ body[data-active-view="studio"] #wpcontent {
6279
+ padding-left: 0;
6280
+ padding-right: 0;
6281
+ }
6282
+
6283
+ .studio-main,
6284
+ .studio-root.has-files.has-secondary-sidebar .studio-main,
6285
+ .studio-root.is-files-collapsed.has-secondary-sidebar .studio-main,
6286
+ .studio-root.has-files.is-secondary-sidebar-collapsed .studio-main,
6287
+ .studio-root.is-files-collapsed.is-secondary-sidebar-collapsed .studio-main {
6288
+ position: relative;
6289
+ grid-template-columns: 48px minmax(0, 1fr);
6290
+ }
6291
+
6292
+ .studio-main > .studio-resizer-h {
6293
+ display: none;
6294
+ }
6295
+
6296
+ .studio-files,
6297
+ .studio-ai {
6298
+ position: absolute;
6299
+ top: 0;
6300
+ bottom: 0;
6301
+ z-index: 12;
6302
+ width: min(320px, calc(100vw - 72px));
6303
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.42);
6304
+ }
6305
+
6306
+ .studio-files {
6307
+ left: 48px;
6308
+ }
6309
+
6310
+ .studio-ai {
6311
+ right: 0;
6312
+ }
6313
+
6314
+ .studio-title-actions .studio-icon-button span:last-child,
6315
+ .studio-title-actions .studio-action-button span:last-child,
6316
+ .studio-title-actions .studio-play-tab-button span:last-child,
6317
+ .studio-title-actions .studio-theme-switch-label {
6318
+ display: none;
6319
+ }
6320
+
6321
+ .studio-title-actions .studio-preview-state {
6322
+ display: none;
6323
+ }
6324
+
6325
+ .studio-title-actions .studio-theme-switch {
6326
+ padding: 0 6px;
6327
+ }
6328
+
6329
+ .ps-settings-row {
6330
+ grid-template-columns: 1fr;
6331
+ }
6332
+
6333
+ .inline-form {
6334
+ display: flex;
6335
+ margin-top: 8px;
6336
+ width: 100%;
6337
+ }
6338
+
6339
+ .inline-form input[type="text"] {
6340
+ width: 100%;
6341
+ }
6342
+
6343
+ .ps-welcome-panel .welcome-panel-header {
6344
+ padding: 24px 20px 32px;
6345
+ }
6346
+
6347
+ .ps-welcome-panel h2 {
6348
+ font-size: 28px;
6349
+ }
6350
+
6351
+ .ps-welcome-panel .welcome-panel-header p {
6352
+ font-size: 14px;
6353
+ }
6354
+
6355
+ .ps-welcome-panel .welcome-panel-column-container {
6356
+ padding: 18px;
6357
+ }
6358
+
6359
+ .ps-welcome-panel .welcome-panel-column {
6360
+ grid-template-columns: 44px minmax(0, 1fr);
6361
+ gap: 14px;
6362
+ }
6363
+
6364
+ .ps-welcome-icon,
6365
+ .ps-skeleton-welcome-icon {
6366
+ width: 44px;
6367
+ height: 44px;
6368
+ }
6369
+
6370
+ .ps-welcome-icon .dashicons {
6371
+ font-size: 20px;
6372
+ width: 20px;
6373
+ height: 20px;
6374
+ }
6375
+
6376
+ .ps-dashboard-widgets-wrap {
6377
+ margin: 0;
6378
+ }
6379
+
6380
+ #dashboard-widgets .meta-box-sortables {
6381
+ margin: 0 0 16px;
6382
+ }
6383
+
6384
+ #dashboard-widgets .postbox-header {
6385
+ align-items: center;
6386
+ }
6387
+
6388
+ .ps-postbox-actions {
6389
+ padding: 8px 10px 8px 0;
6390
+ }
5308
6391
 
5309
6392
  .ps-plugin-row {
5310
6393
  grid-template-columns: 1fr;
5311
6394
  gap: 6px;
5312
6395
  }
5313
6396
 
5314
- .ps-plugin-meta {
5315
- justify-content: flex-start;
5316
- }
6397
+ .ps-plugin-meta {
6398
+ justify-content: flex-start;
6399
+ }
6400
+
6401
+ .studio-empty-state {
6402
+ grid-template-columns: 1fr;
6403
+ align-content: start;
6404
+ gap: 18px;
6405
+ max-width: 100%;
6406
+ padding: 28px 16px;
6407
+ }
6408
+
6409
+ .studio-empty-copy h1 {
6410
+ font-size: 26px;
6411
+ }
6412
+
6413
+ .studio-empty-panel {
6414
+ align-self: stretch;
6415
+ }
6416
+
6417
+ .studio-empty-picker {
6418
+ grid-template-columns: 1fr;
6419
+ max-width: none;
6420
+ }
6421
+
6422
+ .studio-empty-footer {
6423
+ justify-self: start;
6424
+ text-align: left;
6425
+ }
6426
+
6427
+ .studio-preview-empty {
6428
+ align-content: center;
6429
+ display: grid;
6430
+ gap: 18px;
6431
+ justify-items: center;
6432
+ text-align: center;
6433
+ }
6434
+
6435
+ .studio-preview-shell {
6436
+ width: min(360px, 100%);
6437
+ min-width: 0;
6438
+ }
6439
+
6440
+ .studio-preview-empty-copy {
6441
+ justify-items: center;
6442
+ }
6443
+
6444
+ .studio-title {
6445
+ display: none;
6446
+ }
6447
+
6448
+ .widefat thead {
6449
+ display: none;
6450
+ }
6451
+
6452
+ .widefat tbody tr {
6453
+ display: block;
6454
+ padding: 8px 0;
6455
+ border-bottom: 1px solid var(--wp-border);
6456
+ }
6457
+
6458
+ .widefat tbody td {
6459
+ display: grid;
6460
+ grid-template-columns: 112px minmax(0, 1fr);
6461
+ gap: 10px;
6462
+ border: 0;
6463
+ padding: 6px 14px;
6464
+ }
6465
+
6466
+ .widefat tbody td::before {
6467
+ content: attr(data-colname);
6468
+ color: var(--wp-text-soft);
6469
+ font-weight: 600;
6470
+ }
6471
+
6472
+ .widefat tbody td.column-primary {
6473
+ display: block;
6474
+ }
6475
+
6476
+ .widefat tbody td.column-primary::before {
6477
+ content: none;
6478
+ }
6479
+
6480
+ .row-actions {
6481
+ opacity: 1;
6482
+ visibility: visible;
6483
+ }
6484
+
6485
+ #detail-panel {
6486
+ width: 100%;
6487
+ }
6488
+ }
6489
+
6490
+ /* View transitions for modern browsers */
6491
+ @supports (view-transition-name: root) {
6492
+ ::view-transition-old(root),
6493
+ ::view-transition-new(root) {
6494
+ animation-duration: 0.18s;
6495
+ }
6496
+ }
6497
+
6498
+ @keyframes ps-spin {
6499
+ to {
6500
+ transform: rotate(360deg);
6501
+ }
6502
+ }
6503
+
6504
+ code {
6505
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
6506
+ font-size: 12px;
6507
+ color: var(--wp-text);
6508
+ background: var(--wp-surface-soft);
6509
+ padding: 1px 6px;
6510
+ border-radius: var(--wp-radius-s);
6511
+ border: 1px solid var(--wp-border-soft);
6512
+ }
6513
+
6514
+ td code {
6515
+ font-size: 12px;
6516
+ background: transparent;
6517
+ border: 0;
6518
+ padding: 0;
6519
+ color: var(--wp-text-soft);
6520
+ }
6521
+
6522
+ .version-line {
6523
+ margin-top: 4px;
6524
+ font-size: 12px;
6525
+ color: var(--wp-text);
6526
+ }
6527
+
6528
+ .subsubsub .count {
6529
+ color: inherit;
6530
+ font-weight: 500;
6531
+ margin-left: 2px;
6532
+ }
6533
+
6534
+ .ul-disc {
6535
+ margin: 6px 0 12px 18px;
6536
+ padding: 0;
6537
+ list-style: disc outside;
6538
+ }
6539
+
6540
+ .ul-disc li {
6541
+ margin: 2px 0;
6542
+ }
6543
+
6544
+ /* ===================================================================
6545
+ * Plugin card grid (WP 7.0 plugin-card pattern)
6546
+ * =================================================================== */
6547
+
6548
+ .ps-card-shell {
6549
+ margin-top: 14px;
6550
+ }
6551
+
6552
+ .ps-card-toolbar {
6553
+ align-items: center;
6554
+ display: flex;
6555
+ justify-content: space-between;
6556
+ gap: 12px;
6557
+ margin: 0 0 14px;
6558
+ color: var(--wp-text-soft);
6559
+ font-size: 13px;
6560
+ }
6561
+
6562
+ .ps-card-toolbar-count {
6563
+ align-items: center;
6564
+ display: inline-flex;
6565
+ gap: 8px;
6566
+ font-weight: 500;
6567
+ color: var(--wp-heading);
6568
+ }
6569
+
6570
+ .ps-card-toolbar-count .dashicons {
6571
+ color: var(--wp-text-muted);
6572
+ }
6573
+
6574
+ .ps-card-toolbar-hint {
6575
+ color: var(--wp-text-muted);
6576
+ font-size: 12px;
6577
+ }
6578
+
6579
+ .ps-plugin-card-grid {
6580
+ display: grid;
6581
+ gap: 16px;
6582
+ grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
6583
+ align-items: stretch;
6584
+ }
6585
+
6586
+ .ps-plugin-card {
6587
+ display: flex;
6588
+ flex-direction: column;
6589
+ gap: 12px;
6590
+ padding: 18px 18px 16px;
6591
+ border: 1px solid var(--wp-border);
6592
+ border-radius: var(--wp-radius-m);
6593
+ background: var(--wp-surface);
6594
+ box-shadow: var(--wp-shadow-sm);
6595
+ transition: box-shadow 0.16s ease, transform 0.16s ease, border-color 0.16s ease;
6596
+ position: relative;
6597
+ }
6598
+
6599
+ .ps-plugin-card:hover {
6600
+ box-shadow: var(--wp-shadow-md);
6601
+ transform: translateY(-1px);
6602
+ border-color: var(--wp-border-strong);
6603
+ }
6604
+
6605
+ .ps-plugin-card.is-missing {
6606
+ opacity: 0.72;
6607
+ border-style: dashed;
6608
+ }
6609
+
6610
+ .ps-plugin-card-header {
6611
+ display: flex;
6612
+ gap: 12px;
6613
+ align-items: flex-start;
6614
+ }
6615
+
6616
+ .ps-plugin-card-icon {
6617
+ flex: 0 0 auto;
6618
+ width: 44px;
6619
+ height: 44px;
6620
+ border-radius: var(--wp-radius-m);
6621
+ background: linear-gradient(135deg, var(--wp-admin-theme-color), var(--wp-admin-theme-color-darker-20));
6622
+ color: #ffffff;
6623
+ display: inline-flex;
6624
+ align-items: center;
6625
+ justify-content: center;
6626
+ font-weight: 600;
6627
+ font-size: 14px;
6628
+ letter-spacing: 0.02em;
6629
+ }
6630
+
6631
+ .ps-plugin-card-title {
6632
+ flex: 1 1 auto;
6633
+ min-width: 0;
6634
+ }
6635
+
6636
+ .ps-plugin-card-title h2 {
6637
+ font-size: 15px;
6638
+ font-weight: 600;
6639
+ margin: 0;
6640
+ color: var(--wp-heading);
6641
+ word-break: break-word;
6642
+ }
6643
+
6644
+ .ps-plugin-card-link {
6645
+ background: none;
6646
+ border: 0;
6647
+ padding: 0;
6648
+ color: var(--wp-admin-theme-color);
6649
+ cursor: pointer;
6650
+ font: inherit;
6651
+ text-align: left;
6652
+ }
6653
+
6654
+ .ps-plugin-card-link:hover,
6655
+ .ps-plugin-card-link:focus-visible {
6656
+ color: var(--wp-admin-theme-color-darker-10);
6657
+ text-decoration: underline;
6658
+ outline: none;
6659
+ }
6660
+
6661
+ .ps-plugin-card-byline {
6662
+ margin: 2px 0 0;
6663
+ font-size: 12px;
6664
+ color: var(--wp-text-muted);
6665
+ white-space: nowrap;
6666
+ overflow: hidden;
6667
+ text-overflow: ellipsis;
6668
+ }
6669
+
6670
+ .ps-plugin-card-status {
6671
+ display: flex;
6672
+ flex-wrap: wrap;
6673
+ gap: 5px;
6674
+ }
6675
+
6676
+ .ps-plugin-card-meta {
6677
+ display: grid;
6678
+ gap: 8px 16px;
6679
+ grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
6680
+ margin: 0;
6681
+ font-size: 12px;
6682
+ }
6683
+
6684
+ .ps-plugin-card-meta dt {
6685
+ color: var(--wp-text-muted);
6686
+ text-transform: uppercase;
6687
+ letter-spacing: 0.04em;
6688
+ font-size: 11px;
6689
+ margin: 0;
6690
+ }
6691
+
6692
+ .ps-plugin-card-meta dd {
6693
+ margin: 1px 0 0;
6694
+ color: var(--wp-heading);
6695
+ font-weight: 500;
6696
+ font-size: 13px;
6697
+ }
6698
+
6699
+ .ps-plugin-card-path {
6700
+ display: block;
6701
+ max-width: 100%;
6702
+ overflow: hidden;
6703
+ text-overflow: ellipsis;
6704
+ white-space: nowrap;
6705
+ background: var(--wp-surface-soft);
6706
+ border: 1px solid var(--wp-border-soft);
6707
+ border-radius: var(--wp-radius-s);
6708
+ color: var(--wp-text-soft);
6709
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
6710
+ font-size: 11px;
6711
+ padding: 4px 8px;
6712
+ }
6713
+
6714
+ .ps-plugin-card-footer {
6715
+ display: flex;
6716
+ flex-wrap: wrap;
6717
+ align-items: center;
6718
+ gap: 8px;
6719
+ margin-top: auto;
6720
+ }
6721
+
6722
+ .ps-plugin-card-primary {
6723
+ align-items: center;
6724
+ display: inline-flex;
6725
+ gap: 6px;
6726
+ }
6727
+
6728
+ .ps-plugin-card-secondary {
6729
+ background: transparent;
6730
+ border: 0;
6731
+ padding: 0;
6732
+ color: var(--wp-admin-theme-color);
6733
+ cursor: pointer;
6734
+ font: inherit;
6735
+ font-size: 12px;
6736
+ }
6737
+
6738
+ .ps-plugin-card-secondary:hover,
6739
+ .ps-plugin-card-secondary:focus-visible {
6740
+ color: var(--wp-admin-theme-color-darker-10);
6741
+ text-decoration: underline;
6742
+ outline: none;
6743
+ }
6744
+
6745
+ .ps-plugin-card-secondary[disabled] {
6746
+ opacity: 0.45;
6747
+ cursor: not-allowed;
6748
+ pointer-events: none;
6749
+ }
6750
+
6751
+ .ps-plugin-card-muted {
6752
+ color: var(--wp-text-muted);
6753
+ }
6754
+
6755
+ /* Kebab menu */
6756
+
6757
+ .ps-kebab-wrap {
6758
+ position: relative;
6759
+ margin-left: auto;
6760
+ }
6761
+
6762
+ .ps-kebab-button {
6763
+ display: inline-flex;
6764
+ align-items: center;
6765
+ justify-content: center;
6766
+ width: 28px;
6767
+ height: 28px;
6768
+ border: 1px solid transparent;
6769
+ border-radius: var(--wp-radius-m);
6770
+ background: transparent;
6771
+ color: var(--wp-text-soft);
6772
+ cursor: pointer;
6773
+ }
6774
+
6775
+ .ps-kebab-button:hover,
6776
+ .ps-kebab-button:focus-visible {
6777
+ background: var(--wp-surface-soft);
6778
+ border-color: var(--wp-border);
6779
+ outline: none;
6780
+ }
6781
+
6782
+ .ps-kebab-menu {
6783
+ position: absolute;
6784
+ right: 0;
6785
+ top: calc(100% + 4px);
6786
+ min-width: 200px;
6787
+ background: var(--wp-surface);
6788
+ border: 1px solid var(--wp-border-strong);
6789
+ border-radius: var(--wp-radius-m);
6790
+ box-shadow: var(--wp-shadow-lg);
6791
+ padding: 4px;
6792
+ z-index: 30;
6793
+ display: flex;
6794
+ flex-direction: column;
6795
+ }
6796
+
6797
+ .ps-kebab-menu[hidden] {
6798
+ display: none;
6799
+ }
6800
+
6801
+ .ps-kebab-menu button {
6802
+ display: inline-flex;
6803
+ align-items: center;
6804
+ gap: 8px;
6805
+ padding: 6px 8px;
6806
+ border: 0;
6807
+ background: transparent;
6808
+ border-radius: var(--wp-radius-s);
6809
+ color: var(--wp-text);
6810
+ cursor: pointer;
6811
+ font: inherit;
6812
+ text-align: left;
6813
+ }
6814
+
6815
+ .ps-kebab-menu button:hover,
6816
+ .ps-kebab-menu button:focus-visible {
6817
+ background: var(--wp-surface-soft);
6818
+ outline: none;
6819
+ }
6820
+
6821
+ .ps-kebab-menu-danger {
6822
+ color: var(--wp-error);
6823
+ }
6824
+
6825
+ .ps-kebab-menu-danger:hover,
6826
+ .ps-kebab-menu-danger:focus-visible {
6827
+ background: var(--wp-error-bg);
6828
+ color: var(--wp-error);
6829
+ }
6830
+
6831
+ /* ===================================================================
6832
+ * Release management board (top-level view)
6833
+ * =================================================================== */
6834
+
6835
+ .ps-release-board-shell {
6836
+ margin-top: 14px;
6837
+ }
6838
+
6839
+ .ps-release-board {
6840
+ display: grid;
6841
+ gap: 16px;
6842
+ grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
6843
+ }
6844
+
6845
+ .ps-release-board-card {
6846
+ display: flex;
6847
+ flex-direction: column;
6848
+ gap: 12px;
6849
+ background: var(--wp-surface);
6850
+ border: 1px solid var(--wp-border);
6851
+ border-radius: var(--wp-radius-m);
6852
+ box-shadow: var(--wp-shadow-sm);
6853
+ padding: 18px;
6854
+ }
6855
+
6856
+ .ps-release-board-card.is-blocked {
6857
+ border-color: var(--wp-error);
6858
+ }
6859
+
6860
+ .ps-release-board-card.is-missing {
6861
+ border-style: dashed;
6862
+ opacity: 0.72;
6863
+ }
6864
+
6865
+ .ps-release-board-card-header {
6866
+ display: flex;
6867
+ align-items: center;
6868
+ gap: 12px;
6869
+ }
6870
+
6871
+ .ps-release-board-title h2 {
6872
+ font-size: 15px;
6873
+ margin: 0;
6874
+ color: var(--wp-heading);
6875
+ }
6876
+
6877
+ .ps-release-board-status {
6878
+ margin-left: auto;
6879
+ display: flex;
6880
+ flex-wrap: wrap;
6881
+ gap: 4px;
6882
+ }
6883
+
6884
+ .ps-release-board-meta {
6885
+ display: grid;
6886
+ gap: 6px 16px;
6887
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
6888
+ margin: 0;
6889
+ padding: 8px 10px;
6890
+ background: var(--wp-surface-soft);
6891
+ border: 1px solid var(--wp-border-soft);
6892
+ border-radius: var(--wp-radius-s);
6893
+ }
6894
+
6895
+ .ps-release-board-meta-row {
6896
+ margin: 0;
6897
+ display: flex;
6898
+ flex-direction: column;
6899
+ }
6900
+
6901
+ .ps-release-board-meta-row dt {
6902
+ font-size: 11px;
6903
+ color: var(--wp-text-muted);
6904
+ text-transform: uppercase;
6905
+ letter-spacing: 0.04em;
6906
+ }
6907
+
6908
+ .ps-release-board-meta-row dd {
6909
+ margin: 0;
6910
+ font-size: 13px;
6911
+ color: var(--wp-heading);
6912
+ font-weight: 500;
6913
+ }
6914
+
6915
+ .ps-release-board-messages {
6916
+ margin: 0;
6917
+ padding: 0 0 0 16px;
6918
+ font-size: 12px;
6919
+ color: var(--wp-text-soft);
6920
+ }
6921
+
6922
+ .ps-release-board-card-footer {
6923
+ display: flex;
6924
+ align-items: center;
6925
+ gap: 10px;
6926
+ margin-top: auto;
6927
+ }
6928
+
6929
+ /* ===================================================================
6930
+ * Studio sidebar segmented tabs (AI Helper ⟷ Release)
6931
+ * =================================================================== */
6932
+
6933
+ .studio-sidebar-tabs.ps-segmented {
6934
+ display: inline-flex;
6935
+ align-self: stretch;
6936
+ margin: 0;
6937
+ padding: 4px;
6938
+ background: var(--studio-vscode-side-bg);
6939
+ border: 0;
6940
+ border-bottom: 1px solid var(--studio-vscode-border);
6941
+ border-radius: 0;
6942
+ gap: 2px;
6943
+ }
6944
+
6945
+ .ps-segmented-option {
6946
+ flex: 1;
6947
+ display: inline-flex;
6948
+ align-items: center;
6949
+ justify-content: center;
6950
+ gap: 6px;
6951
+ padding: 6px 10px;
6952
+ border: 0;
6953
+ border-radius: 3px;
6954
+ background: transparent;
6955
+ color: var(--studio-vscode-muted);
6956
+ cursor: pointer;
6957
+ font: inherit;
6958
+ font-size: 12px;
6959
+ font-weight: 500;
6960
+ transition: background 0.12s ease, color 0.12s ease;
6961
+ }
6962
+
6963
+ .ps-segmented-option:hover,
6964
+ .ps-segmented-option:focus-visible {
6965
+ background: var(--studio-vscode-hover);
6966
+ color: var(--studio-vscode-active);
6967
+ outline: none;
6968
+ }
6969
+
6970
+ .ps-segmented-option.is-active {
6971
+ background: var(--studio-vscode-segment-active);
6972
+ color: var(--studio-vscode-active);
6973
+ box-shadow: none;
6974
+ }
6975
+
6976
+ .ps-segmented-option.is-active .dashicons {
6977
+ color: inherit;
6978
+ }
6979
+
6980
+ .studio-sidebar-pane {
6981
+ display: flex;
6982
+ flex-direction: column;
6983
+ flex: 1 1 auto;
6984
+ min-height: 0;
6985
+ }
6986
+
6987
+ /* ===================================================================
6988
+ * Release funnel (Studio right sidebar) — WP 7.0 Modern
6989
+ *
6990
+ * Visual rules:
6991
+ * - Step card is always neutral surface (--wp-surface) with hairline
6992
+ * --wp-border. Status is communicated via inline pills only.
6993
+ * - Hairline 1px connector along the left in --wp-border-soft.
6994
+ * - Sticky step headers get a subtle 1px bottom border when scrolled
6995
+ * (no shadow). 12px rhythm between steps, 8px gutter inside steps.
6996
+ * - All inline buttons use .button-small (28px). Dashicons sit left.
6997
+ * =================================================================== */
6998
+
6999
+ .studio-release-pane {
7000
+ display: flex;
7001
+ flex-direction: column;
7002
+ flex: 1 1 auto;
7003
+ min-height: 0;
7004
+ padding: 8px 12px 12px;
7005
+ gap: 8px;
7006
+ overflow-y: auto;
7007
+ scrollbar-gutter: stable;
7008
+ font-size: 12px;
7009
+ color: var(--wp-text-soft);
7010
+ }
7011
+
7012
+ .studio-release-empty {
7013
+ display: flex;
7014
+ flex-direction: column;
7015
+ align-items: center;
7016
+ justify-content: center;
7017
+ text-align: center;
7018
+ padding: 24px 14px;
7019
+ color: var(--wp-text-soft);
7020
+ gap: 6px;
7021
+ }
7022
+
7023
+ .studio-release-empty .dashicons {
7024
+ font-size: 24px;
7025
+ width: 24px;
7026
+ height: 24px;
7027
+ color: var(--wp-text-muted);
7028
+ }
7029
+
7030
+ .studio-release-empty strong {
7031
+ color: var(--wp-heading);
7032
+ font-size: 13px;
7033
+ font-weight: 600;
7034
+ }
7035
+
7036
+ .studio-release-empty p {
7037
+ margin: 0;
7038
+ font-size: 12px;
7039
+ }
7040
+
7041
+ .studio-release-header {
7042
+ display: flex;
7043
+ align-items: center;
7044
+ justify-content: space-between;
7045
+ padding: 4px 2px 2px;
7046
+ }
7047
+
7048
+ .studio-release-title {
7049
+ min-width: 0;
7050
+ display: flex;
7051
+ flex-direction: column;
7052
+ gap: 1px;
7053
+ }
7054
+
7055
+ .studio-release-title strong {
7056
+ display: block;
7057
+ font-size: 12px;
7058
+ text-transform: uppercase;
7059
+ letter-spacing: 0.06em;
7060
+ color: var(--wp-heading);
7061
+ }
7062
+
7063
+ .studio-release-title small {
7064
+ color: var(--wp-text-muted);
7065
+ font-size: 11px;
7066
+ overflow: hidden;
7067
+ text-overflow: ellipsis;
7068
+ white-space: nowrap;
7069
+ }
7070
+
7071
+ .ps-release-funnel {
7072
+ margin: 0;
7073
+ padding: 0 0 0 18px;
7074
+ list-style: none;
7075
+ display: flex;
7076
+ flex-direction: column;
7077
+ gap: 12px;
7078
+ position: relative;
7079
+ }
7080
+
7081
+ .ps-release-funnel::before {
7082
+ content: "";
7083
+ position: absolute;
7084
+ top: 10px;
7085
+ bottom: 10px;
7086
+ left: 9px;
7087
+ width: 1px;
7088
+ background: var(--wp-border-soft);
7089
+ z-index: 0;
7090
+ }
7091
+
7092
+ .ps-release-step {
7093
+ position: relative;
7094
+ border: 1px solid var(--wp-border);
7095
+ border-radius: var(--wp-radius-m);
7096
+ background: var(--wp-surface);
7097
+ box-shadow: var(--wp-shadow-sm);
7098
+ overflow: hidden;
7099
+ }
7100
+
7101
+ /* Hairline tick from the funnel rail into each step */
7102
+ .ps-release-step-connector {
7103
+ position: absolute;
7104
+ top: 14px;
7105
+ left: -10px;
7106
+ width: 9px;
7107
+ height: 1px;
7108
+ background: var(--wp-border-soft);
7109
+ z-index: 0;
7110
+ }
7111
+
7112
+ .ps-release-step-header {
7113
+ display: flex;
7114
+ align-items: center;
7115
+ gap: 8px;
7116
+ padding: 8px 10px;
7117
+ position: sticky;
7118
+ top: 0;
7119
+ z-index: 2;
7120
+ background: var(--wp-surface);
7121
+ border-bottom: 1px solid transparent;
7122
+ transition: border-color 0.12s ease;
7123
+ }
7124
+
7125
+ .studio-release-pane:not(:hover) .ps-release-step-header {
7126
+ /* Keep the rule definition stable for scroll-state detection. */
7127
+ }
7128
+
7129
+ .ps-release-step:not(:first-of-type) .ps-release-step-header {
7130
+ border-bottom-color: var(--wp-border-soft);
7131
+ }
7132
+
7133
+ .ps-release-step.is-collapsed .ps-release-step-header {
7134
+ border-bottom-color: transparent;
7135
+ }
7136
+
7137
+ .ps-release-step-toggle {
7138
+ display: flex;
7139
+ align-items: center;
7140
+ gap: 8px;
7141
+ width: 100%;
7142
+ min-width: 0;
7143
+ border: 0;
7144
+ background: transparent;
7145
+ color: inherit;
7146
+ cursor: pointer;
7147
+ padding: 0;
7148
+ text-align: left;
7149
+ }
7150
+
7151
+ .ps-release-step-toggle:focus-visible {
7152
+ outline: 2px solid var(--wp-admin-theme-color);
7153
+ outline-offset: 2px;
7154
+ border-radius: var(--wp-radius-s);
7155
+ }
7156
+
7157
+ .ps-release-step-toggle .ps-release-step-heading {
7158
+ flex: 1 1 auto;
7159
+ }
7160
+
7161
+ .ps-release-step-toggle-icon {
7162
+ flex: 0 0 auto;
7163
+ color: var(--wp-text-muted);
7164
+ font-size: 14px;
7165
+ width: 14px;
7166
+ height: 14px;
7167
+ }
7168
+
7169
+ .ps-release-step-marker {
7170
+ display: inline-flex;
7171
+ align-items: center;
7172
+ justify-content: center;
7173
+ width: 20px;
7174
+ height: 20px;
7175
+ border-radius: 50%;
7176
+ background: var(--wp-surface);
7177
+ border: 1px solid var(--wp-border-strong);
7178
+ color: var(--wp-text-soft);
7179
+ font-weight: 600;
7180
+ font-size: 11px;
7181
+ flex: 0 0 auto;
7182
+ font-feature-settings: "tnum" 1;
7183
+ }
7184
+
7185
+ .ps-release-step-heading {
7186
+ display: flex;
7187
+ flex-direction: column;
7188
+ min-width: 0;
7189
+ gap: 1px;
7190
+ }
7191
+
7192
+ .ps-release-step-heading strong {
7193
+ font-size: 12px;
7194
+ color: var(--wp-heading);
7195
+ display: block;
7196
+ font-weight: 600;
7197
+ letter-spacing: 0.01em;
7198
+ }
7199
+
7200
+ .ps-release-step-heading small {
7201
+ font-size: 11px;
7202
+ color: var(--wp-text-muted);
7203
+ overflow: hidden;
7204
+ text-overflow: ellipsis;
7205
+ white-space: nowrap;
7206
+ }
7207
+
7208
+ .ps-release-step-body {
7209
+ position: relative;
7210
+ z-index: 1;
7211
+ display: flex;
7212
+ flex-direction: column;
7213
+ gap: 8px;
7214
+ padding: 8px 10px 10px;
7215
+ font-size: 12px;
7216
+ color: var(--wp-text-soft);
7217
+ border-top: 1px solid var(--wp-border-soft);
7218
+ }
7219
+
7220
+ .ps-release-step-grid {
7221
+ display: grid;
7222
+ grid-template-columns: 1fr 1fr;
7223
+ gap: 4px 10px;
7224
+ margin: 0;
7225
+ }
5317
7226
 
5318
- .studio-main {
5319
- grid-template-columns: 1fr;
5320
- grid-template-rows: 170px minmax(0, 1fr) 320px;
5321
- }
7227
+ .ps-release-step-grid div {
7228
+ display: flex;
7229
+ flex-direction: column;
7230
+ min-width: 0;
7231
+ }
5322
7232
 
5323
- .studio-resizer-h {
5324
- display: none;
5325
- }
7233
+ .ps-release-step-grid dt {
7234
+ font-size: 10px;
7235
+ color: var(--wp-text-muted);
7236
+ text-transform: uppercase;
7237
+ letter-spacing: 0.06em;
7238
+ }
5326
7239
 
5327
- .studio-empty-state {
5328
- grid-template-columns: 1fr;
5329
- align-content: start;
5330
- gap: 18px;
5331
- max-width: 100%;
5332
- padding: 28px 16px;
5333
- }
7240
+ .ps-release-step-grid dd {
7241
+ margin: 0;
7242
+ font-size: 12px;
7243
+ color: var(--wp-heading);
7244
+ font-weight: 500;
7245
+ overflow: hidden;
7246
+ text-overflow: ellipsis;
7247
+ white-space: nowrap;
7248
+ }
5334
7249
 
5335
- .studio-empty-copy h1 {
5336
- font-size: 26px;
5337
- }
7250
+ .ps-release-step-bumps {
7251
+ display: flex;
7252
+ flex-wrap: wrap;
7253
+ gap: 4px;
7254
+ }
5338
7255
 
5339
- .studio-empty-panel {
5340
- align-self: stretch;
5341
- }
7256
+ .ps-release-step-bumps .button,
7257
+ .ps-release-step-newtag .button,
7258
+ .ps-release-step-custom .button,
7259
+ .ps-release-publish-options .button {
7260
+ align-items: center;
7261
+ display: inline-flex;
7262
+ gap: 4px;
7263
+ min-height: 26px;
7264
+ padding: 0 8px;
7265
+ font-size: 12px;
7266
+ line-height: 1.2;
7267
+ }
5342
7268
 
5343
- .studio-empty-picker {
5344
- grid-template-columns: 1fr;
5345
- max-width: none;
5346
- }
7269
+ .ps-release-step-bumps .button .dashicons,
7270
+ .ps-release-step-newtag .button .dashicons,
7271
+ .ps-release-step-custom .button .dashicons,
7272
+ .ps-release-publish-options .button .dashicons,
7273
+ .ps-release-tag-actions .button .dashicons {
7274
+ font-size: 14px;
7275
+ width: 14px;
7276
+ height: 14px;
7277
+ }
5347
7278
 
5348
- .studio-empty-footer {
5349
- justify-self: start;
5350
- text-align: left;
5351
- }
7279
+ .ps-release-bump-button.is-busy .dashicons-update {
7280
+ animation: ps-spin 0.85s linear infinite;
7281
+ }
5352
7282
 
5353
- .studio-preview-empty {
5354
- align-content: center;
5355
- display: grid;
5356
- gap: 18px;
5357
- justify-items: center;
5358
- text-align: center;
5359
- }
7283
+ .ps-release-bump-button.is-success {
7284
+ border-color: var(--wp-success);
7285
+ color: var(--wp-success);
7286
+ }
5360
7287
 
5361
- .studio-preview-shell {
5362
- width: min(360px, 100%);
5363
- min-width: 0;
5364
- }
7288
+ .ps-release-step-custom,
7289
+ .ps-release-step-newtag {
7290
+ display: flex;
7291
+ align-items: flex-end;
7292
+ gap: 6px;
7293
+ }
5365
7294
 
5366
- .studio-preview-empty-copy {
5367
- justify-items: center;
5368
- }
7295
+ .ps-release-step-custom label,
7296
+ .ps-release-step-newtag label {
7297
+ flex: 1 1 auto;
7298
+ display: flex;
7299
+ flex-direction: column;
7300
+ gap: 2px;
7301
+ font-size: 10px;
7302
+ color: var(--wp-text-muted);
7303
+ text-transform: uppercase;
7304
+ letter-spacing: 0.06em;
7305
+ }
5369
7306
 
5370
- .studio-files {
5371
- border-right: 0;
5372
- border-bottom: 1px solid #dcdcde;
5373
- }
7307
+ .ps-release-step-custom input,
7308
+ .ps-release-step-newtag input {
7309
+ padding: 4px 8px;
7310
+ border: 1px solid var(--wp-border-strong);
7311
+ border-radius: var(--wp-radius-s);
7312
+ font-size: 12px;
7313
+ color: var(--wp-heading);
7314
+ background: var(--wp-surface);
7315
+ height: 26px;
7316
+ text-transform: none;
7317
+ letter-spacing: 0;
7318
+ }
5374
7319
 
5375
- .studio-ai {
5376
- border-left: 0;
5377
- border-top: 1px solid #dcdcde;
5378
- }
7320
+ .ps-release-step-custom input:focus-visible,
7321
+ .ps-release-step-newtag input:focus-visible {
7322
+ outline: none;
7323
+ box-shadow: var(--wp-focus-ring);
7324
+ border-color: var(--wp-admin-theme-color);
7325
+ }
5379
7326
 
5380
- .studio-title {
5381
- display: none;
5382
- }
7327
+ .ps-release-inline-error {
7328
+ margin: 0;
7329
+ font-size: 11px;
7330
+ color: var(--wp-error);
7331
+ display: flex;
7332
+ align-items: center;
7333
+ gap: 4px;
7334
+ }
5383
7335
 
5384
- .widefat thead {
5385
- display: none;
5386
- }
7336
+ .ps-release-inline-error .dashicons {
7337
+ font-size: 14px;
7338
+ width: 14px;
7339
+ height: 14px;
7340
+ }
5387
7341
 
5388
- .widefat tbody tr {
5389
- display: block;
5390
- padding: 8px 0;
5391
- border-bottom: 1px solid var(--wp-border);
5392
- }
7342
+ .ps-release-tag-ready,
7343
+ .ps-release-tag-local-note {
7344
+ align-items: center;
7345
+ display: inline-flex;
7346
+ gap: 5px;
7347
+ margin: 0;
7348
+ color: var(--wp-success);
7349
+ font-size: 11px;
7350
+ font-weight: 600;
7351
+ }
5393
7352
 
5394
- .widefat tbody td {
5395
- display: grid;
5396
- grid-template-columns: 112px minmax(0, 1fr);
5397
- gap: 10px;
5398
- border: 0;
5399
- padding: 6px 14px;
5400
- }
7353
+ .ps-release-tag-ready {
7354
+ padding: 6px 8px;
7355
+ border: 1px solid rgba(0, 112, 23, 0.22);
7356
+ border-radius: var(--wp-radius-s);
7357
+ background: var(--wp-success-bg);
7358
+ }
5401
7359
 
5402
- .widefat tbody td::before {
5403
- content: attr(data-colname);
5404
- color: var(--wp-text-soft);
5405
- font-weight: 600;
5406
- }
7360
+ .ps-release-tag-ready .dashicons {
7361
+ font-size: 14px;
7362
+ width: 14px;
7363
+ height: 14px;
7364
+ }
5407
7365
 
5408
- .widefat tbody td.column-primary {
5409
- display: block;
5410
- }
7366
+ .ps-release-tag-ready.is-blocked {
7367
+ border-color: rgba(178, 98, 0, 0.26);
7368
+ background: var(--wp-warning-bg);
7369
+ color: var(--wp-warning);
7370
+ }
5411
7371
 
5412
- .widefat tbody td.column-primary::before {
5413
- content: none;
5414
- }
7372
+ .ps-release-switch-conflict {
7373
+ display: grid;
7374
+ gap: 7px;
7375
+ padding: 8px;
7376
+ border: 1px solid var(--wp-warning);
7377
+ border-radius: var(--wp-radius-s);
7378
+ background: var(--wp-warning-bg);
7379
+ }
5415
7380
 
5416
- .row-actions {
5417
- opacity: 1;
5418
- visibility: visible;
5419
- }
7381
+ .ps-release-switch-conflict p,
7382
+ .ps-release-conflict-actions {
7383
+ margin: 0;
7384
+ display: flex;
7385
+ align-items: center;
7386
+ gap: 6px;
7387
+ flex-wrap: wrap;
7388
+ }
5420
7389
 
5421
- #detail-panel {
5422
- width: 100%;
5423
- }
7390
+ .ps-release-switch-conflict p {
7391
+ font-size: 11px;
7392
+ color: var(--wp-warning);
5424
7393
  }
5425
7394
 
5426
- /* View transitions for modern browsers */
5427
- @supports (view-transition-name: root) {
5428
- ::view-transition-old(root),
5429
- ::view-transition-new(root) {
5430
- animation-duration: 0.18s;
5431
- }
7395
+ .ps-release-conflict-actions .dashicons {
7396
+ font-size: 14px;
7397
+ width: 14px;
7398
+ height: 14px;
7399
+ }
7400
+
7401
+ .ps-release-tag-list {
7402
+ margin: 0;
7403
+ padding: 0;
7404
+ list-style: none;
7405
+ display: flex;
7406
+ flex-direction: column;
7407
+ border: 1px solid var(--wp-border-soft);
7408
+ border-radius: var(--wp-radius-s);
7409
+ background: var(--wp-surface);
7410
+ overflow: hidden;
5432
7411
  }
5433
7412
 
5434
- @keyframes ps-spin {
5435
- to {
5436
- transform: rotate(360deg);
5437
- }
7413
+ .ps-release-tag-row {
7414
+ display: flex;
7415
+ align-items: center;
7416
+ gap: 6px;
7417
+ padding: 5px 8px;
7418
+ border-bottom: 1px solid var(--wp-border-soft);
7419
+ min-height: 30px;
5438
7420
  }
5439
7421
 
5440
- code {
5441
- font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
5442
- font-size: 12px;
5443
- color: var(--wp-text);
5444
- background: var(--wp-surface-soft);
5445
- padding: 1px 6px;
5446
- border-radius: var(--wp-radius-s);
5447
- border: 1px solid var(--wp-border-soft);
7422
+ .ps-release-tag-row:last-child {
7423
+ border-bottom: 0;
5448
7424
  }
5449
7425
 
5450
- td code {
5451
- font-size: 12px;
5452
- background: transparent;
5453
- border: 0;
5454
- padding: 0;
5455
- color: var(--wp-text-soft);
7426
+ .ps-release-tag-row.is-current {
7427
+ background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
5456
7428
  }
5457
7429
 
5458
- .version-line {
5459
- margin-top: 4px;
5460
- font-size: 12px;
5461
- color: var(--wp-text);
7430
+ .ps-release-tag-row.is-switching {
7431
+ opacity: 0.7;
5462
7432
  }
5463
7433
 
5464
- .subsubsub .count {
5465
- color: inherit;
7434
+ .ps-release-tag-name {
7435
+ display: inline-flex;
7436
+ align-items: center;
7437
+ gap: 5px;
5466
7438
  font-weight: 500;
5467
- margin-left: 2px;
7439
+ color: var(--wp-heading);
7440
+ flex: 1 1 auto;
7441
+ min-width: 0;
7442
+ font-size: 12px;
5468
7443
  }
5469
7444
 
5470
- .ul-disc {
5471
- margin: 6px 0 12px 18px;
5472
- padding: 0;
5473
- list-style: disc outside;
7445
+ .ps-release-tag-name .dashicons {
7446
+ color: var(--wp-text-muted);
7447
+ font-size: 14px;
7448
+ width: 14px;
7449
+ height: 14px;
5474
7450
  }
5475
7451
 
5476
- .ul-disc li {
5477
- margin: 2px 0;
7452
+ .ps-release-tag-current,
7453
+ .ps-release-tag-uncommitted {
7454
+ font-size: 9px;
7455
+ text-transform: uppercase;
7456
+ letter-spacing: 0.06em;
7457
+ padding: 1px 6px;
7458
+ border-radius: 9999px;
7459
+ font-weight: 600;
5478
7460
  }
5479
7461
 
5480
- /* ===================================================================
5481
- * Plugin card grid (WP 7.0 plugin-card pattern)
5482
- * =================================================================== */
7462
+ .ps-release-tag-current {
7463
+ background: var(--wp-admin-theme-color);
7464
+ color: #ffffff;
7465
+ }
5483
7466
 
5484
- .ps-card-shell {
5485
- margin-top: 14px;
7467
+ .ps-release-tag-uncommitted {
7468
+ background: var(--wp-warning-bg);
7469
+ color: var(--wp-warning);
5486
7470
  }
5487
7471
 
5488
- .ps-card-toolbar {
7472
+ .ps-release-tag-spinner {
7473
+ display: inline-flex;
5489
7474
  align-items: center;
5490
- display: flex;
5491
- justify-content: space-between;
5492
- gap: 12px;
5493
- margin: 0 0 14px;
5494
- color: var(--wp-text-soft);
5495
- font-size: 13px;
7475
+ gap: 4px;
7476
+ font-size: 10px;
7477
+ color: var(--wp-text-muted);
5496
7478
  }
5497
7479
 
5498
- .ps-card-toolbar-count {
5499
- align-items: center;
7480
+ .ps-release-tag-spinner .dashicons {
7481
+ animation: ps-spin 0.85s linear infinite;
7482
+ font-size: 12px;
7483
+ width: 12px;
7484
+ height: 12px;
7485
+ }
7486
+
7487
+ .ps-release-tag-actions {
5500
7488
  display: inline-flex;
5501
- gap: 8px;
5502
- font-weight: 500;
5503
- color: var(--wp-heading);
7489
+ gap: 4px;
5504
7490
  }
5505
7491
 
5506
- .ps-card-toolbar-count .dashicons {
5507
- color: var(--wp-text-muted);
7492
+ .ps-release-tag-actions .button.is-confirming,
7493
+ .ps-release-confirm-button.is-confirming {
7494
+ background: var(--wp-warning);
7495
+ border-color: var(--wp-warning);
7496
+ color: #ffffff;
5508
7497
  }
5509
7498
 
5510
- .ps-card-toolbar-hint {
7499
+ .ps-release-tag-empty {
7500
+ padding: 10px;
7501
+ text-align: center;
5511
7502
  color: var(--wp-text-muted);
5512
7503
  font-size: 12px;
5513
7504
  }
5514
7505
 
5515
- .ps-plugin-card-grid {
5516
- display: grid;
5517
- gap: 16px;
5518
- grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
5519
- align-items: stretch;
5520
- }
5521
-
5522
- .ps-plugin-card {
7506
+ .ps-release-validate-list {
7507
+ margin: 0;
7508
+ padding: 0;
7509
+ list-style: none;
5523
7510
  display: flex;
5524
7511
  flex-direction: column;
5525
- gap: 12px;
5526
- padding: 18px 18px 16px;
5527
- border: 1px solid var(--wp-border);
5528
- border-radius: var(--wp-radius-m);
7512
+ gap: 4px;
7513
+ }
7514
+
7515
+ .ps-release-validate-list li {
7516
+ display: grid;
7517
+ grid-template-columns: 1fr auto auto;
7518
+ align-items: center;
7519
+ gap: 8px;
7520
+ padding: 5px 8px;
5529
7521
  background: var(--wp-surface);
5530
- box-shadow: var(--wp-shadow-sm);
5531
- transition: box-shadow 0.16s ease, transform 0.16s ease, border-color 0.16s ease;
5532
- position: relative;
7522
+ border: 1px solid var(--wp-border-soft);
7523
+ border-radius: var(--wp-radius-s);
7524
+ font-size: 12px;
7525
+ min-height: 30px;
5533
7526
  }
5534
7527
 
5535
- .ps-plugin-card:hover {
5536
- box-shadow: var(--wp-shadow-md);
5537
- transform: translateY(-1px);
5538
- border-color: var(--wp-border-strong);
7528
+ .ps-release-validate-list .dashicons {
7529
+ margin-right: 4px;
7530
+ color: var(--wp-text-muted);
7531
+ font-size: 14px;
7532
+ width: 14px;
7533
+ height: 14px;
5539
7534
  }
5540
7535
 
5541
- .ps-plugin-card.is-missing {
5542
- opacity: 0.72;
5543
- border-style: dashed;
7536
+ .ps-release-validate-state {
7537
+ font-size: 10px;
7538
+ color: var(--wp-text-muted);
7539
+ text-transform: uppercase;
7540
+ letter-spacing: 0.06em;
5544
7541
  }
5545
7542
 
5546
- .ps-plugin-card-header {
5547
- display: flex;
5548
- gap: 12px;
5549
- align-items: flex-start;
7543
+ .ps-release-ignore-patterns,
7544
+ .ps-release-ignored-files {
7545
+ margin: 0;
7546
+ padding: 0;
7547
+ list-style: none;
7548
+ display: grid;
7549
+ gap: 3px;
5550
7550
  }
5551
7551
 
5552
- .ps-plugin-card-icon {
5553
- flex: 0 0 auto;
5554
- width: 44px;
5555
- height: 44px;
5556
- border-radius: var(--wp-radius-m);
5557
- background: linear-gradient(135deg, var(--wp-admin-theme-color), var(--wp-admin-theme-color-darker-20));
5558
- color: #ffffff;
5559
- display: inline-flex;
7552
+ .ps-release-ignore-patterns li {
7553
+ display: grid;
7554
+ grid-template-columns: minmax(0, 1fr) auto;
5560
7555
  align-items: center;
5561
- justify-content: center;
5562
- font-weight: 600;
5563
- font-size: 14px;
5564
- letter-spacing: 0.02em;
7556
+ gap: 5px;
7557
+ padding: 3px 4px;
7558
+ border: 1px solid var(--wp-border-soft);
7559
+ border-radius: var(--wp-radius-s);
7560
+ background: var(--wp-surface);
5565
7561
  }
5566
7562
 
5567
- .ps-plugin-card-title {
5568
- flex: 1 1 auto;
7563
+ .ps-release-ignore-patterns code {
5569
7564
  min-width: 0;
7565
+ overflow: hidden;
7566
+ text-overflow: ellipsis;
7567
+ white-space: nowrap;
7568
+ display: block;
7569
+ padding: 2px 6px;
7570
+ border: 1px solid var(--wp-border-soft);
7571
+ border-radius: var(--wp-radius-s);
7572
+ background: var(--wp-surface-soft);
7573
+ color: var(--wp-heading);
7574
+ font-size: 11px;
7575
+ line-height: 18px;
5570
7576
  }
5571
7577
 
5572
- .ps-plugin-card-title h2 {
5573
- font-size: 15px;
5574
- font-weight: 600;
5575
- margin: 0;
5576
- color: var(--wp-heading);
5577
- word-break: break-word;
7578
+ .ps-release-ignore-patterns .dashicons {
7579
+ font-size: 13px;
7580
+ width: 13px;
7581
+ height: 13px;
5578
7582
  }
5579
7583
 
5580
- .ps-plugin-card-link {
5581
- background: none;
5582
- border: 0;
7584
+ .ps-release-ignore-remove.button-small {
7585
+ min-width: 24px;
7586
+ min-height: 24px;
7587
+ width: 24px;
5583
7588
  padding: 0;
5584
- color: var(--wp-admin-theme-color);
5585
- cursor: pointer;
5586
- font: inherit;
5587
- text-align: left;
5588
7589
  }
5589
7590
 
5590
- .ps-plugin-card-link:hover,
5591
- .ps-plugin-card-link:focus-visible {
5592
- color: var(--wp-admin-theme-color-darker-10);
5593
- text-decoration: underline;
5594
- outline: none;
7591
+ .ps-release-ignore-patterns button[aria-busy="true"] .dashicons {
7592
+ animation: ps-spin 0.85s linear infinite;
5595
7593
  }
5596
7594
 
5597
- .ps-plugin-card-byline {
5598
- margin: 2px 0 0;
5599
- font-size: 12px;
7595
+ .ps-release-ignored-files {
7596
+ gap: 0;
7597
+ }
7598
+
7599
+ .ps-release-ignored-files li {
7600
+ display: grid;
7601
+ grid-template-columns: 14px minmax(0, 1fr) minmax(72px, 0.45fr);
7602
+ grid-template-areas: "icon path pattern";
7603
+ align-items: center;
7604
+ column-gap: 5px;
7605
+ padding: 3px 0;
7606
+ color: var(--wp-text-muted);
7607
+ font-size: 11px;
7608
+ }
7609
+
7610
+ .ps-release-ignored-files .dashicons {
7611
+ grid-area: icon;
5600
7612
  color: var(--wp-text-muted);
7613
+ font-size: 12px;
7614
+ width: 12px;
7615
+ height: 12px;
7616
+ }
7617
+
7618
+ .ps-release-ignored-files span:not(.dashicons) {
7619
+ grid-area: path;
7620
+ min-width: 0;
7621
+ overflow: hidden;
7622
+ text-overflow: ellipsis;
5601
7623
  white-space: nowrap;
7624
+ color: var(--wp-text);
7625
+ font-size: 11px;
7626
+ }
7627
+
7628
+ .ps-release-ignored-files small {
7629
+ grid-area: pattern;
7630
+ min-width: 0;
5602
7631
  overflow: hidden;
5603
7632
  text-overflow: ellipsis;
7633
+ white-space: nowrap;
7634
+ color: var(--wp-text-muted);
7635
+ font-size: 10px;
7636
+ text-align: right;
5604
7637
  }
5605
7638
 
5606
- .ps-plugin-card-status {
5607
- display: flex;
5608
- flex-wrap: wrap;
5609
- gap: 5px;
7639
+ .ps-release-publish-guide {
7640
+ display: grid;
7641
+ gap: 3px;
7642
+ padding: 7px 8px;
7643
+ border: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.18);
7644
+ border-radius: var(--wp-radius-s);
7645
+ background: rgba(var(--wp-admin-theme-color--rgb), 0.05);
7646
+ font-size: 11px;
5610
7647
  }
5611
7648
 
5612
- .ps-plugin-card-meta {
5613
- display: grid;
5614
- gap: 8px 16px;
5615
- grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
5616
- margin: 0;
7649
+ .ps-release-publish-guide strong {
7650
+ color: var(--wp-heading);
5617
7651
  font-size: 12px;
5618
7652
  }
5619
7653
 
5620
- .ps-plugin-card-meta dt {
7654
+ .ps-release-publish-guide span {
5621
7655
  color: var(--wp-text-muted);
5622
- text-transform: uppercase;
5623
- letter-spacing: 0.04em;
5624
- font-size: 11px;
5625
- margin: 0;
7656
+ line-height: 1.35;
5626
7657
  }
5627
7658
 
5628
- .ps-plugin-card-meta dd {
5629
- margin: 1px 0 0;
5630
- color: var(--wp-heading);
5631
- font-weight: 500;
5632
- font-size: 13px;
7659
+ .ps-release-publish-options {
7660
+ display: grid;
7661
+ gap: 6px;
5633
7662
  }
5634
7663
 
5635
- .ps-plugin-card-path {
5636
- display: block;
5637
- max-width: 100%;
5638
- overflow: hidden;
5639
- text-overflow: ellipsis;
5640
- white-space: nowrap;
5641
- background: var(--wp-surface-soft);
7664
+ .ps-release-publish-option {
7665
+ width: 100%;
7666
+ min-height: 68px;
7667
+ display: grid;
7668
+ grid-template-columns: 24px minmax(0, 1fr) auto;
7669
+ align-items: center;
7670
+ gap: 8px;
7671
+ padding: 8px;
5642
7672
  border: 1px solid var(--wp-border-soft);
5643
7673
  border-radius: var(--wp-radius-s);
5644
- color: var(--wp-text-soft);
5645
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
5646
- font-size: 11px;
5647
- padding: 4px 8px;
7674
+ background: var(--wp-surface);
7675
+ color: var(--wp-text);
7676
+ text-align: left;
7677
+ cursor: pointer;
5648
7678
  }
5649
7679
 
5650
- .ps-plugin-card-footer {
5651
- display: flex;
5652
- flex-wrap: wrap;
5653
- align-items: center;
5654
- gap: 8px;
5655
- margin-top: auto;
7680
+ .ps-release-publish-option:hover,
7681
+ .ps-release-publish-option:focus-visible {
7682
+ border-color: rgba(var(--wp-admin-theme-color--rgb), 0.45);
7683
+ box-shadow: 0 0 0 1px rgba(var(--wp-admin-theme-color--rgb), 0.12);
7684
+ outline: none;
5656
7685
  }
5657
7686
 
5658
- .ps-plugin-card-primary {
5659
- align-items: center;
5660
- display: inline-flex;
5661
- gap: 6px;
7687
+ .ps-release-publish-option:disabled {
7688
+ cursor: default;
7689
+ opacity: 0.72;
5662
7690
  }
5663
7691
 
5664
- .ps-plugin-card-secondary {
5665
- background: transparent;
5666
- border: 0;
5667
- padding: 0;
7692
+ .ps-release-publish-option.is-active,
7693
+ .ps-release-publish-option.is-selected {
7694
+ border-color: var(--wp-admin-theme-color);
7695
+ background: rgba(var(--wp-admin-theme-color--rgb), 0.08);
7696
+ }
7697
+
7698
+ .ps-release-option-icon {
7699
+ width: 24px;
7700
+ height: 24px;
7701
+ display: inline-flex;
7702
+ align-items: center;
7703
+ justify-content: center;
5668
7704
  color: var(--wp-admin-theme-color);
5669
- cursor: pointer;
5670
- font: inherit;
5671
- font-size: 12px;
7705
+ background: rgba(var(--wp-admin-theme-color--rgb), 0.1);
7706
+ border-radius: var(--wp-radius-s);
5672
7707
  }
5673
7708
 
5674
- .ps-plugin-card-secondary:hover,
5675
- .ps-plugin-card-secondary:focus-visible {
5676
- color: var(--wp-admin-theme-color-darker-10);
5677
- text-decoration: underline;
5678
- outline: none;
7709
+ .ps-release-option-icon.dashicons {
7710
+ font-size: 15px;
7711
+ line-height: 1;
5679
7712
  }
5680
7713
 
5681
- .ps-plugin-card-secondary[disabled] {
5682
- opacity: 0.45;
5683
- cursor: not-allowed;
5684
- pointer-events: none;
7714
+ .ps-release-option-content {
7715
+ min-width: 0;
7716
+ display: grid;
7717
+ gap: 3px;
5685
7718
  }
5686
7719
 
5687
- .ps-plugin-card-muted {
5688
- color: var(--wp-text-muted);
7720
+ .ps-release-option-title {
7721
+ display: flex;
7722
+ align-items: center;
7723
+ gap: 4px;
7724
+ flex-wrap: wrap;
7725
+ color: var(--wp-heading);
7726
+ font-size: 12px;
7727
+ line-height: 1.2;
5689
7728
  }
5690
7729
 
5691
- /* Kebab menu */
7730
+ .ps-release-option-title strong {
7731
+ font-weight: 600;
7732
+ }
5692
7733
 
5693
- .ps-kebab-wrap {
5694
- position: relative;
5695
- margin-left: auto;
7734
+ .ps-release-option-title em {
7735
+ font-style: normal;
7736
+ font-size: 9px;
7737
+ text-transform: uppercase;
7738
+ letter-spacing: 0.06em;
7739
+ color: var(--wp-admin-theme-color);
7740
+ background: rgba(var(--wp-admin-theme-color--rgb), 0.1);
7741
+ border-radius: 999px;
7742
+ padding: 1px 5px;
5696
7743
  }
5697
7744
 
5698
- .ps-kebab-button {
5699
- display: inline-flex;
5700
- align-items: center;
5701
- justify-content: center;
5702
- width: 28px;
5703
- height: 28px;
5704
- border: 1px solid transparent;
5705
- border-radius: var(--wp-radius-m);
5706
- background: transparent;
5707
- color: var(--wp-text-soft);
5708
- cursor: pointer;
7745
+ .ps-release-option-copy {
7746
+ color: var(--wp-text-muted);
7747
+ font-size: 11px;
7748
+ line-height: 1.35;
5709
7749
  }
5710
7750
 
5711
- .ps-kebab-button:hover,
5712
- .ps-kebab-button:focus-visible {
5713
- background: var(--wp-surface-soft);
5714
- border-color: var(--wp-border);
5715
- outline: none;
7751
+ .ps-release-option-action {
7752
+ justify-self: end;
7753
+ color: var(--wp-admin-theme-color);
7754
+ font-size: 10px;
7755
+ font-weight: 600;
7756
+ line-height: 1.2;
7757
+ text-align: right;
7758
+ max-width: 58px;
5716
7759
  }
5717
7760
 
5718
- .ps-kebab-menu {
5719
- position: absolute;
5720
- right: 0;
5721
- top: calc(100% + 4px);
5722
- min-width: 200px;
5723
- background: var(--wp-surface);
5724
- border: 1px solid var(--wp-border-strong);
5725
- border-radius: var(--wp-radius-m);
5726
- box-shadow: var(--wp-shadow-lg);
5727
- padding: 4px;
5728
- z-index: 30;
7761
+ .ps-release-publish-summary {
7762
+ padding: 8px;
7763
+ border: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.16);
7764
+ border-radius: var(--wp-radius-s);
7765
+ background: linear-gradient(
7766
+ 180deg,
7767
+ rgba(var(--wp-admin-theme-color--rgb), 0.06),
7768
+ rgba(var(--wp-admin-theme-color--rgb), 0.025)
7769
+ );
5729
7770
  display: flex;
5730
7771
  flex-direction: column;
7772
+ gap: 8px;
5731
7773
  }
5732
7774
 
5733
- .ps-kebab-menu[hidden] {
5734
- display: none;
7775
+ .ps-release-publish-summary.is-running {
7776
+ display: grid;
7777
+ grid-template-columns: 18px minmax(0, 1fr);
7778
+ align-items: center;
5735
7779
  }
5736
7780
 
5737
- .ps-kebab-menu button {
7781
+ .ps-release-publish-summary.is-running .dashicons {
7782
+ animation: ps-spin 0.85s linear infinite;
7783
+ color: var(--wp-admin-theme-color);
7784
+ }
7785
+
7786
+ .ps-release-publish-result {
7787
+ display: grid;
7788
+ grid-template-columns: 22px minmax(0, 1fr);
7789
+ align-items: start;
7790
+ gap: 7px;
7791
+ }
7792
+
7793
+ .ps-release-publish-result > .dashicons {
7794
+ width: 22px;
7795
+ height: 22px;
5738
7796
  display: inline-flex;
5739
7797
  align-items: center;
5740
- gap: 8px;
5741
- padding: 6px 8px;
5742
- border: 0;
5743
- background: transparent;
7798
+ justify-content: center;
7799
+ color: var(--wp-admin-theme-color);
7800
+ background: rgba(var(--wp-admin-theme-color--rgb), 0.1);
5744
7801
  border-radius: var(--wp-radius-s);
5745
- color: var(--wp-text);
5746
- cursor: pointer;
5747
- font: inherit;
5748
- text-align: left;
7802
+ font-size: 14px;
5749
7803
  }
5750
7804
 
5751
- .ps-kebab-menu button:hover,
5752
- .ps-kebab-menu button:focus-visible {
5753
- background: var(--wp-surface-soft);
5754
- outline: none;
7805
+ .ps-release-publish-summary p {
7806
+ margin: 0;
7807
+ font-size: 12px;
5755
7808
  }
5756
7809
 
5757
- .ps-kebab-menu-danger {
5758
- color: var(--wp-error);
7810
+ .ps-release-publish-summary strong {
7811
+ color: var(--wp-heading);
5759
7812
  }
5760
7813
 
5761
- .ps-kebab-menu-danger:hover,
5762
- .ps-kebab-menu-danger:focus-visible {
7814
+ .ps-release-publish-summary small {
7815
+ display: block;
7816
+ color: var(--wp-text-muted);
7817
+ font-size: 11px;
7818
+ line-height: 1.35;
7819
+ }
7820
+
7821
+ .ps-release-step-error {
7822
+ margin: 0;
7823
+ padding: 6px 8px;
7824
+ border-radius: var(--wp-radius-s);
5763
7825
  background: var(--wp-error-bg);
5764
7826
  color: var(--wp-error);
7827
+ font-size: 11px;
7828
+ border: 1px solid rgba(204, 24, 24, 0.18);
5765
7829
  }
5766
7830
 
5767
- /* ===================================================================
5768
- * Release management board (top-level view)
5769
- * =================================================================== */
5770
-
5771
- .ps-release-board-shell {
5772
- margin-top: 14px;
7831
+ .ps-release-step-muted {
7832
+ margin: 0;
7833
+ color: var(--wp-text-muted);
7834
+ font-style: italic;
7835
+ font-size: 11px;
5773
7836
  }
5774
7837
 
5775
- .ps-release-board {
5776
- display: grid;
5777
- gap: 16px;
5778
- grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
7838
+ /* Keep Studio's workbench dark even when later release styles use admin surfaces. */
7839
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) input,
7840
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) select,
7841
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) textarea,
7842
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) button {
7843
+ color-scheme: dark;
5779
7844
  }
5780
7845
 
5781
- .ps-release-board-card {
5782
- display: flex;
5783
- flex-direction: column;
5784
- gap: 12px;
5785
- background: var(--wp-surface);
5786
- border: 1px solid var(--wp-border);
5787
- border-radius: var(--wp-radius-m);
5788
- box-shadow: var(--wp-shadow-sm);
5789
- padding: 18px;
7846
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button,
7847
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-secondary {
7848
+ border-color: var(--studio-vscode-border-strong);
7849
+ background: #252526;
7850
+ color: var(--studio-vscode-text);
5790
7851
  }
5791
7852
 
5792
- .ps-release-board-card.is-blocked {
5793
- border-color: var(--wp-error);
7853
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button:hover,
7854
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button:focus-visible,
7855
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-secondary:hover,
7856
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-secondary:focus-visible {
7857
+ border-color: #5a5a5a;
7858
+ background: #2d2d2d;
7859
+ color: var(--studio-vscode-active);
5794
7860
  }
5795
7861
 
5796
- .ps-release-board-card.is-missing {
5797
- border-style: dashed;
5798
- opacity: 0.72;
7862
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-primary {
7863
+ border-color: var(--studio-vscode-focus);
7864
+ background: var(--studio-vscode-focus);
7865
+ color: #ffffff;
5799
7866
  }
5800
7867
 
5801
- .ps-release-board-card-header {
5802
- display: flex;
5803
- align-items: center;
5804
- gap: 12px;
7868
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-primary:hover,
7869
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-primary:focus-visible {
7870
+ border-color: #106ebe;
7871
+ background: #106ebe;
7872
+ color: #ffffff;
5805
7873
  }
5806
7874
 
5807
- .ps-release-board-title h2 {
5808
- font-size: 15px;
5809
- margin: 0;
5810
- color: var(--wp-heading);
7875
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button:disabled,
7876
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-secondary:disabled,
7877
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-primary:disabled {
7878
+ border-color: #303030;
7879
+ background: #222222;
7880
+ color: #6f7378;
5811
7881
  }
5812
7882
 
5813
- .ps-release-board-status {
5814
- margin-left: auto;
5815
- display: flex;
5816
- flex-wrap: wrap;
5817
- gap: 4px;
7883
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-danger {
7884
+ border-color: #f14c4c;
7885
+ color: #ff8a80;
5818
7886
  }
5819
7887
 
5820
- .ps-release-board-meta {
5821
- display: grid;
5822
- gap: 6px 16px;
5823
- grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
5824
- margin: 0;
5825
- padding: 8px 10px;
5826
- background: var(--wp-surface-soft);
5827
- border: 1px solid var(--wp-border-soft);
5828
- border-radius: var(--wp-radius-s);
7888
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-danger:hover,
7889
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .button-danger:focus-visible {
7890
+ border-color: #f14c4c;
7891
+ background: rgba(241, 76, 76, 0.16);
7892
+ color: #ffb3ad;
5829
7893
  }
5830
7894
 
5831
- .ps-release-board-meta-row {
5832
- margin: 0;
5833
- display: flex;
5834
- flex-direction: column;
7895
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-pane {
7896
+ background: var(--studio-vscode-side-bg);
7897
+ color: var(--studio-vscode-muted);
5835
7898
  }
5836
7899
 
5837
- .ps-release-board-meta-row dt {
5838
- font-size: 11px;
5839
- color: var(--wp-text-muted);
5840
- text-transform: uppercase;
5841
- letter-spacing: 0.04em;
7900
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-empty,
7901
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-empty p,
7902
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-title small,
7903
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-heading small,
7904
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-body,
7905
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-grid dt,
7906
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-muted,
7907
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-guide span,
7908
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-option-copy,
7909
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignored-files,
7910
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignored-files small,
7911
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-spinner,
7912
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-empty,
7913
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-validate-state,
7914
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-summary small {
7915
+ color: var(--studio-vscode-muted);
5842
7916
  }
5843
7917
 
5844
- .ps-release-board-meta-row dd {
5845
- margin: 0;
5846
- font-size: 13px;
5847
- color: var(--wp-heading);
5848
- font-weight: 500;
7918
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-empty .dashicons,
7919
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-name .dashicons,
7920
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-validate-list .dashicons,
7921
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignored-files .dashicons {
7922
+ color: #858585;
5849
7923
  }
5850
7924
 
5851
- .ps-release-board-messages {
5852
- margin: 0;
5853
- padding: 0 0 0 16px;
5854
- font-size: 12px;
5855
- color: var(--wp-text-soft);
7925
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-empty strong,
7926
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-title strong,
7927
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-heading strong,
7928
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-grid dd,
7929
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-guide strong,
7930
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-option-title,
7931
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignore-patterns code,
7932
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignored-files span:not(.dashicons),
7933
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-name,
7934
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-summary strong {
7935
+ color: var(--studio-vscode-active);
5856
7936
  }
5857
7937
 
5858
- .ps-release-board-card-footer {
5859
- display: flex;
5860
- align-items: center;
5861
- gap: 10px;
5862
- margin-top: auto;
7938
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-funnel::before,
7939
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-connector {
7940
+ background: var(--studio-vscode-border-strong);
5863
7941
  }
5864
7942
 
5865
- /* ===================================================================
5866
- * Studio sidebar segmented tabs (AI Helper ⟷ Release)
5867
- * =================================================================== */
7943
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step,
7944
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-list,
7945
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-validate-list li,
7946
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignore-patterns li,
7947
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-option {
7948
+ border-color: var(--studio-vscode-border-strong);
7949
+ background: #1f1f1f;
7950
+ box-shadow: none;
7951
+ }
5868
7952
 
5869
- .studio-sidebar-tabs.ps-segmented {
5870
- display: inline-flex;
5871
- align-self: stretch;
5872
- margin: 12px 14px 6px;
5873
- padding: 2px;
5874
- background: var(--wp-surface-soft);
5875
- border: 1px solid var(--wp-border);
5876
- border-radius: var(--wp-radius-m);
5877
- gap: 2px;
7953
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-pane .empty-state {
7954
+ border-color: var(--studio-vscode-border-strong);
7955
+ background: #1f1f1f;
7956
+ color: var(--studio-vscode-muted);
5878
7957
  }
5879
7958
 
5880
- .ps-segmented-option {
5881
- flex: 1;
5882
- display: inline-flex;
5883
- align-items: center;
5884
- justify-content: center;
5885
- gap: 6px;
5886
- padding: 6px 10px;
5887
- border: 0;
5888
- border-radius: calc(var(--wp-radius-m) - 1px);
5889
- background: transparent;
5890
- color: var(--wp-text-soft);
5891
- cursor: pointer;
5892
- font: inherit;
5893
- font-size: 12px;
5894
- font-weight: 500;
5895
- transition: background 0.12s ease, color 0.12s ease;
7959
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-pane .empty-state strong {
7960
+ color: var(--studio-vscode-active);
5896
7961
  }
5897
7962
 
5898
- .ps-segmented-option:hover {
5899
- color: var(--wp-text);
7963
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-release-pane .empty-state .dashicons {
7964
+ color: #8bdcff;
7965
+ opacity: 0.85;
5900
7966
  }
5901
7967
 
5902
- .ps-segmented-option.is-active {
5903
- background: var(--wp-admin-theme-color);
5904
- color: #ffffff;
5905
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
7968
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-tree-ignored-badge,
7969
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-tree-deferred-badge {
7970
+ border: 1px solid #3c3c3c;
7971
+ background: #2d2d2d;
7972
+ color: #c8c8c8;
5906
7973
  }
5907
7974
 
5908
- .ps-segmented-option.is-active .dashicons {
5909
- color: inherit;
7975
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-tree-deferred-badge {
7976
+ color: #f0b849;
5910
7977
  }
5911
7978
 
5912
- .studio-sidebar-pane {
5913
- display: flex;
5914
- flex-direction: column;
5915
- flex: 1 1 auto;
5916
- min-height: 0;
7979
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-tree-action {
7980
+ color: var(--studio-vscode-muted);
5917
7981
  }
5918
7982
 
5919
- /* ===================================================================
5920
- * Release funnel (Studio right sidebar) — WP 7.0 Modern
5921
- *
5922
- * Visual rules:
5923
- * - Step card is always neutral surface (--wp-surface) with hairline
5924
- * --wp-border. Status is communicated via inline pills only.
5925
- * - Hairline 1px connector along the left in --wp-border-soft.
5926
- * - Sticky step headers get a subtle 1px bottom border when scrolled
5927
- * (no shadow). 12px rhythm between steps, 8px gutter inside steps.
5928
- * - All inline buttons use .button-small (28px). Dashicons sit left.
5929
- * =================================================================== */
7983
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-tree-action:hover,
7984
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .studio-tree-action:focus-visible {
7985
+ background: #3c3c3c;
7986
+ color: var(--studio-vscode-active);
7987
+ }
5930
7988
 
5931
- .studio-release-pane {
5932
- display: flex;
5933
- flex-direction: column;
5934
- flex: 1 1 auto;
5935
- min-height: 0;
5936
- padding: 8px 12px 12px;
5937
- gap: 8px;
5938
- overflow-y: auto;
5939
- scrollbar-gutter: stable;
5940
- font-size: 12px;
5941
- color: var(--wp-text-soft);
7989
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignored-files li {
7990
+ padding: 3px 0;
7991
+ border: 0;
7992
+ border-radius: 0;
7993
+ background: #252526;
5942
7994
  }
5943
7995
 
5944
- .studio-release-empty {
5945
- display: flex;
5946
- flex-direction: column;
5947
- align-items: center;
5948
- justify-content: center;
5949
- text-align: center;
5950
- padding: 24px 14px;
5951
- color: var(--wp-text-soft);
5952
- gap: 6px;
7996
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignore-patterns code {
7997
+ border-color: var(--studio-vscode-border);
7998
+ background: #252526;
7999
+ color: var(--studio-vscode-active);
5953
8000
  }
5954
8001
 
5955
- .studio-release-empty .dashicons {
5956
- font-size: 24px;
5957
- width: 24px;
5958
- height: 24px;
5959
- color: var(--wp-text-muted);
8002
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignore-patterns .button {
8003
+ border-color: var(--studio-vscode-border-strong);
8004
+ background: #2d2d2d;
8005
+ color: var(--studio-vscode-text);
5960
8006
  }
5961
8007
 
5962
- .studio-release-empty strong {
5963
- color: var(--wp-heading);
5964
- font-size: 13px;
5965
- font-weight: 600;
8008
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignore-patterns .button:hover,
8009
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-ignore-patterns .button:focus-visible {
8010
+ border-color: var(--studio-vscode-focus);
8011
+ background: #37373d;
8012
+ color: var(--studio-vscode-active);
5966
8013
  }
5967
8014
 
5968
- .studio-release-empty p {
5969
- margin: 0;
5970
- font-size: 12px;
8015
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-guide,
8016
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-option.is-active,
8017
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-option.is-selected {
8018
+ border-color: rgba(76, 194, 255, 0.32);
8019
+ background: rgba(76, 194, 255, 0.08);
5971
8020
  }
5972
8021
 
5973
- .studio-release-header {
5974
- display: flex;
5975
- align-items: center;
5976
- justify-content: space-between;
5977
- padding: 4px 2px 2px;
8022
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-summary {
8023
+ border-color: rgba(76, 194, 255, 0.22);
8024
+ background: linear-gradient(180deg, rgba(76, 194, 255, 0.09), rgba(76, 194, 255, 0.035));
5978
8025
  }
5979
8026
 
5980
- .studio-release-title {
5981
- min-width: 0;
5982
- display: flex;
5983
- flex-direction: column;
5984
- gap: 1px;
8027
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-option:hover,
8028
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-option:focus-visible {
8029
+ border-color: rgba(76, 194, 255, 0.56);
8030
+ box-shadow: 0 0 0 1px rgba(76, 194, 255, 0.1);
5985
8031
  }
5986
8032
 
5987
- .studio-release-title strong {
5988
- display: block;
5989
- font-size: 12px;
5990
- text-transform: uppercase;
5991
- letter-spacing: 0.06em;
5992
- color: var(--wp-heading);
8033
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-option-icon,
8034
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-publish-result > .dashicons {
8035
+ color: #8bdcff;
8036
+ background: rgba(76, 194, 255, 0.12);
5993
8037
  }
5994
8038
 
5995
- .studio-release-title small {
5996
- color: var(--wp-text-muted);
5997
- font-size: 11px;
5998
- overflow: hidden;
5999
- text-overflow: ellipsis;
6000
- white-space: nowrap;
8039
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-option-action,
8040
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-option-title em {
8041
+ color: #8bdcff;
6001
8042
  }
6002
8043
 
6003
- .ps-release-funnel {
6004
- margin: 0;
6005
- padding: 0 0 0 18px;
6006
- list-style: none;
6007
- display: flex;
6008
- flex-direction: column;
6009
- gap: 12px;
6010
- position: relative;
8044
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-option-title em {
8045
+ background: rgba(76, 194, 255, 0.12);
6011
8046
  }
6012
8047
 
6013
- .ps-release-funnel::before {
6014
- content: "";
6015
- position: absolute;
6016
- top: 10px;
6017
- bottom: 10px;
6018
- left: 9px;
6019
- width: 1px;
6020
- background: var(--wp-border-soft);
6021
- z-index: 0;
8048
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-header {
8049
+ background: #252526;
8050
+ border-bottom-color: transparent;
6022
8051
  }
6023
8052
 
6024
- .ps-release-step {
6025
- position: relative;
6026
- border: 1px solid var(--wp-border);
6027
- border-radius: var(--wp-radius-m);
6028
- background: var(--wp-surface);
6029
- box-shadow: var(--wp-shadow-sm);
6030
- overflow: hidden;
8053
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step:not(:first-of-type) .ps-release-step-header,
8054
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-body,
8055
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-row {
8056
+ border-color: var(--studio-vscode-border);
6031
8057
  }
6032
8058
 
6033
- /* Hairline tick from the funnel rail into each step */
6034
- .ps-release-step-connector {
6035
- position: absolute;
6036
- top: 14px;
6037
- left: -10px;
6038
- width: 9px;
6039
- height: 1px;
6040
- background: var(--wp-border-soft);
6041
- z-index: 0;
8059
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-marker {
8060
+ border-color: var(--studio-vscode-border-strong);
8061
+ background: #2d2d2d;
8062
+ color: var(--studio-vscode-text);
6042
8063
  }
6043
8064
 
6044
- .ps-release-step-header {
6045
- display: flex;
6046
- align-items: center;
6047
- gap: 8px;
6048
- padding: 8px 10px;
6049
- position: sticky;
6050
- top: 0;
6051
- z-index: 2;
6052
- background: var(--wp-surface);
6053
- border-bottom: 1px solid transparent;
6054
- transition: border-color 0.12s ease;
8065
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-custom label,
8066
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-newtag label {
8067
+ color: var(--studio-vscode-muted);
6055
8068
  }
6056
8069
 
6057
- .studio-release-pane:not(:hover) .ps-release-step-header {
6058
- /* Keep the rule definition stable for scroll-state detection. */
8070
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-custom input,
8071
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-newtag input {
8072
+ border-color: var(--studio-vscode-border-strong);
8073
+ background: var(--studio-vscode-bg);
8074
+ color: var(--studio-vscode-active);
6059
8075
  }
6060
8076
 
6061
- .ps-release-step:not(:first-of-type) .ps-release-step-header {
6062
- border-bottom-color: var(--wp-border-soft);
8077
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-custom input:focus-visible,
8078
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-newtag input:focus-visible {
8079
+ border-color: var(--studio-vscode-focus);
8080
+ box-shadow: 0 0 0 1px var(--studio-vscode-focus);
6063
8081
  }
6064
8082
 
6065
- .ps-release-step-marker {
6066
- display: inline-flex;
6067
- align-items: center;
6068
- justify-content: center;
6069
- width: 20px;
6070
- height: 20px;
6071
- border-radius: 50%;
6072
- background: var(--wp-surface);
6073
- border: 1px solid var(--wp-border-strong);
6074
- color: var(--wp-text-soft);
6075
- font-weight: 600;
6076
- font-size: 11px;
6077
- flex: 0 0 auto;
6078
- font-feature-settings: "tnum" 1;
8083
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-row.is-current {
8084
+ background: rgba(0, 120, 212, 0.16);
6079
8085
  }
6080
8086
 
6081
- .ps-release-step-heading {
6082
- display: flex;
6083
- flex-direction: column;
6084
- min-width: 0;
6085
- gap: 1px;
8087
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-switch-conflict {
8088
+ border-color: rgba(240, 184, 73, 0.56);
8089
+ background: rgba(240, 184, 73, 0.12);
6086
8090
  }
6087
8091
 
6088
- .ps-release-step-heading strong {
6089
- font-size: 12px;
6090
- color: var(--wp-heading);
6091
- display: block;
6092
- font-weight: 600;
6093
- letter-spacing: 0.01em;
8092
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-switch-conflict p,
8093
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-uncommitted {
8094
+ color: #f0b849;
6094
8095
  }
6095
8096
 
6096
- .ps-release-step-heading small {
6097
- font-size: 11px;
6098
- color: var(--wp-text-muted);
6099
- overflow: hidden;
6100
- text-overflow: ellipsis;
6101
- white-space: nowrap;
8097
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-ready,
8098
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-local-note {
8099
+ color: #86efac;
6102
8100
  }
6103
8101
 
6104
- .ps-release-step-body {
6105
- position: relative;
6106
- z-index: 1;
6107
- display: flex;
6108
- flex-direction: column;
6109
- gap: 8px;
6110
- padding: 8px 10px 10px;
6111
- font-size: 12px;
6112
- color: var(--wp-text-soft);
6113
- border-top: 1px solid var(--wp-border-soft);
8102
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-ready {
8103
+ border-color: rgba(134, 239, 172, 0.26);
8104
+ background: rgba(34, 197, 94, 0.12);
6114
8105
  }
6115
8106
 
6116
- .ps-release-step-grid {
6117
- display: grid;
6118
- grid-template-columns: 1fr 1fr;
6119
- gap: 4px 10px;
6120
- margin: 0;
8107
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-ready.is-blocked {
8108
+ border-color: rgba(240, 184, 73, 0.32);
8109
+ background: rgba(240, 184, 73, 0.12);
8110
+ color: #f0b849;
6121
8111
  }
6122
8112
 
6123
- .ps-release-step-grid div {
6124
- display: flex;
6125
- flex-direction: column;
6126
- min-width: 0;
8113
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-tag-uncommitted {
8114
+ background: rgba(240, 184, 73, 0.16);
6127
8115
  }
6128
8116
 
6129
- .ps-release-step-grid dt {
6130
- font-size: 10px;
6131
- color: var(--wp-text-muted);
6132
- text-transform: uppercase;
6133
- letter-spacing: 0.06em;
8117
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-inline-error,
8118
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-error {
8119
+ color: #ff8a80;
6134
8120
  }
6135
8121
 
6136
- .ps-release-step-grid dd {
6137
- margin: 0;
6138
- font-size: 12px;
6139
- color: var(--wp-heading);
6140
- font-weight: 500;
6141
- overflow: hidden;
6142
- text-overflow: ellipsis;
6143
- white-space: nowrap;
8122
+ .studio-root[data-theme="dark"]:not(.studio-empty-root) .ps-release-step-error {
8123
+ border-color: rgba(241, 76, 76, 0.32);
8124
+ background: rgba(241, 76, 76, 0.14);
6144
8125
  }
6145
8126
 
6146
- .ps-release-step-bumps {
6147
- display: flex;
6148
- flex-wrap: wrap;
6149
- gap: 4px;
8127
+ /* Light Studio theme */
8128
+ .studio-root[data-theme="light"]:not(.studio-empty-root) input,
8129
+ .studio-root[data-theme="light"]:not(.studio-empty-root) select,
8130
+ .studio-root[data-theme="light"]:not(.studio-empty-root) textarea,
8131
+ .studio-root[data-theme="light"]:not(.studio-empty-root) button {
8132
+ color-scheme: light;
6150
8133
  }
6151
8134
 
6152
- .ps-release-step-bumps .button,
6153
- .ps-release-step-newtag .button,
6154
- .ps-release-step-custom .button,
6155
- .ps-release-publish-options .button {
6156
- align-items: center;
6157
- display: inline-flex;
6158
- gap: 4px;
6159
- min-height: 26px;
6160
- padding: 0 8px;
6161
- font-size: 12px;
6162
- line-height: 1.2;
8135
+ .studio-root[data-theme="light"] {
8136
+ background: var(--studio-vscode-bg);
8137
+ color: var(--studio-vscode-text);
6163
8138
  }
6164
8139
 
6165
- .ps-release-step-bumps .button .dashicons,
6166
- .ps-release-step-newtag .button .dashicons,
6167
- .ps-release-step-custom .button .dashicons,
6168
- .ps-release-publish-options .button .dashicons,
6169
- .ps-release-tag-actions .button .dashicons {
6170
- font-size: 14px;
6171
- width: 14px;
6172
- height: 14px;
8140
+ .studio-root[data-theme="light"] .studio-title strong,
8141
+ .studio-root[data-theme="light"] .studio-pane-header strong,
8142
+ .studio-root[data-theme="light"] .studio-secondary-header strong,
8143
+ .studio-root[data-theme="light"] .studio-ai-agent strong,
8144
+ .studio-root[data-theme="light"] .studio-ai-reply header span,
8145
+ .studio-root[data-theme="light"] .studio-ai-bubble header span,
8146
+ .studio-root[data-theme="light"] .studio-ai-empty strong {
8147
+ color: var(--studio-vscode-active);
6173
8148
  }
6174
8149
 
6175
- .ps-release-bump-button.is-busy .dashicons-update {
6176
- animation: ps-spin 0.85s linear infinite;
8150
+ .studio-root[data-theme="light"] .studio-title span,
8151
+ .studio-root[data-theme="light"] .studio-layout-button,
8152
+ .studio-root[data-theme="light"] .studio-pane-action,
8153
+ .studio-root[data-theme="light"] .studio-preview-state,
8154
+ .studio-root[data-theme="light"] #studio-editor-status,
8155
+ .studio-root[data-theme="light"] .studio-ai-status,
8156
+ .studio-root[data-theme="light"] .studio-ai-empty,
8157
+ .studio-root[data-theme="light"] .studio-ai-empty small,
8158
+ .studio-root[data-theme="light"] .studio-ai-context-chip,
8159
+ .studio-root[data-theme="light"] .studio-file-tabs-empty {
8160
+ color: var(--studio-vscode-muted);
6177
8161
  }
6178
8162
 
6179
- .ps-release-bump-button.is-success {
6180
- border-color: var(--wp-success);
6181
- color: var(--wp-success);
8163
+ .studio-root[data-theme="light"] .studio-titlebar,
8164
+ .studio-root[data-theme="light"] .studio-activitybar,
8165
+ .studio-root[data-theme="light"] .studio-pane-header,
8166
+ .studio-root[data-theme="light"] .studio-secondary-header,
8167
+ .studio-root[data-theme="light"] .studio-files,
8168
+ .studio-root[data-theme="light"] .studio-ai,
8169
+ .studio-root[data-theme="light"] .studio-ai-header,
8170
+ .studio-root[data-theme="light"] .studio-ai-context,
8171
+ .studio-root[data-theme="light"] .studio-ai-composer {
8172
+ border-color: var(--studio-vscode-border);
8173
+ background: var(--studio-vscode-side-bg);
8174
+ color: var(--studio-vscode-text);
6182
8175
  }
6183
8176
 
6184
- .ps-release-step-custom,
6185
- .ps-release-step-newtag {
6186
- display: flex;
6187
- align-items: flex-end;
6188
- gap: 6px;
8177
+ .studio-root[data-theme="light"] .studio-titlebar,
8178
+ .studio-root[data-theme="light"] .studio-activitybar {
8179
+ background: var(--studio-vscode-title-bg);
6189
8180
  }
6190
8181
 
6191
- .ps-release-step-custom label,
6192
- .ps-release-step-newtag label {
6193
- flex: 1 1 auto;
6194
- display: flex;
6195
- flex-direction: column;
6196
- gap: 2px;
6197
- font-size: 10px;
6198
- color: var(--wp-text-muted);
6199
- text-transform: uppercase;
6200
- letter-spacing: 0.06em;
8182
+ .studio-root[data-theme="light"] .studio-action-button,
8183
+ .studio-root[data-theme="light"] .studio-icon-button,
8184
+ .studio-root[data-theme="light"] .studio-theme-switch {
8185
+ border-color: var(--studio-vscode-border-strong);
8186
+ background: #ffffff;
8187
+ color: var(--studio-vscode-text);
6201
8188
  }
6202
8189
 
6203
- .ps-release-step-custom input,
6204
- .ps-release-step-newtag input {
6205
- padding: 4px 8px;
6206
- border: 1px solid var(--wp-border-strong);
6207
- border-radius: var(--wp-radius-s);
6208
- font-size: 12px;
6209
- color: var(--wp-heading);
6210
- background: var(--wp-surface);
6211
- height: 26px;
6212
- text-transform: none;
6213
- letter-spacing: 0;
8190
+ .studio-root[data-theme="light"] .studio-toolbar-group {
8191
+ border-color: transparent;
8192
+ background: transparent;
6214
8193
  }
6215
8194
 
6216
- .ps-release-step-custom input:focus-visible,
6217
- .ps-release-step-newtag input:focus-visible {
6218
- outline: none;
6219
- box-shadow: var(--wp-focus-ring);
6220
- border-color: var(--wp-admin-theme-color);
8195
+ .studio-root[data-theme="light"] .studio-toolbar-run {
8196
+ border-color: transparent;
8197
+ background: transparent;
6221
8198
  }
6222
8199
 
6223
- .ps-release-inline-error {
6224
- margin: 0;
6225
- font-size: 11px;
6226
- color: var(--wp-error);
6227
- display: flex;
6228
- align-items: center;
6229
- gap: 4px;
8200
+ .studio-root[data-theme="light"] .studio-toolbar-layout,
8201
+ .studio-root[data-theme="light"] .studio-toolbar-actions,
8202
+ .studio-root[data-theme="light"] .studio-preview-state {
8203
+ border-color: var(--studio-vscode-border);
8204
+ background: #ffffff;
8205
+ box-shadow: none;
6230
8206
  }
6231
8207
 
6232
- .ps-release-inline-error .dashicons {
6233
- font-size: 14px;
6234
- width: 14px;
6235
- height: 14px;
8208
+ .studio-root[data-theme="light"] .studio-title-actions .studio-action-button,
8209
+ .studio-root[data-theme="light"] .studio-title-actions .studio-icon-button,
8210
+ .studio-root[data-theme="light"] .studio-title-actions .studio-theme-switch {
8211
+ border-color: transparent;
8212
+ background: transparent;
6236
8213
  }
6237
8214
 
6238
- .ps-release-switch-conflict {
6239
- display: grid;
6240
- gap: 7px;
6241
- padding: 8px;
6242
- border: 1px solid var(--wp-warning);
6243
- border-radius: var(--wp-radius-s);
6244
- background: var(--wp-warning-bg);
8215
+ .studio-root[data-theme="light"] .studio-action-button:hover,
8216
+ .studio-root[data-theme="light"] .studio-icon-button:hover,
8217
+ .studio-root[data-theme="light"] .studio-icon-button[aria-pressed="true"],
8218
+ .studio-root[data-theme="light"] .studio-theme-switch:hover,
8219
+ .studio-root[data-theme="light"] .studio-theme-switch:focus-visible,
8220
+ .studio-root[data-theme="light"] .studio-layout-button:hover,
8221
+ .studio-root[data-theme="light"] .studio-layout-button:focus-visible,
8222
+ .studio-root[data-theme="light"] .studio-layout-button.is-active,
8223
+ .studio-root[data-theme="light"] .studio-pane-action:hover,
8224
+ .studio-root[data-theme="light"] .studio-pane-action:focus-visible,
8225
+ .studio-root[data-theme="light"] .studio-activity-button:hover,
8226
+ .studio-root[data-theme="light"] .studio-activity-button:focus-visible {
8227
+ background: #eaeef2;
8228
+ color: var(--studio-vscode-active);
8229
+ }
8230
+
8231
+ .studio-root[data-theme="light"] .studio-play-tab-button {
8232
+ border-color: #0969da;
8233
+ background: #0969da;
8234
+ color: #ffffff;
6245
8235
  }
6246
8236
 
6247
- .ps-release-switch-conflict p,
6248
- .ps-release-conflict-actions {
6249
- margin: 0;
6250
- display: flex;
6251
- align-items: center;
6252
- gap: 6px;
6253
- flex-wrap: wrap;
8237
+ .studio-root[data-theme="light"] .studio-play-tab-button:hover,
8238
+ .studio-root[data-theme="light"] .studio-play-tab-button:focus-visible {
8239
+ border-color: #0757b8;
8240
+ background: #0757b8;
8241
+ color: #ffffff;
6254
8242
  }
6255
8243
 
6256
- .ps-release-switch-conflict p {
6257
- font-size: 11px;
6258
- color: var(--wp-warning);
8244
+ .studio-root[data-theme="light"] .studio-title-actions .studio-package-size-button {
8245
+ color: var(--studio-vscode-active);
6259
8246
  }
6260
8247
 
6261
- .ps-release-conflict-actions .dashicons {
6262
- font-size: 14px;
6263
- width: 14px;
6264
- height: 14px;
8248
+ .studio-root[data-theme="light"] .studio-package-size-button.is-over-limit {
8249
+ border-color: rgba(214, 54, 56, 0.36);
8250
+ background: #fff0f0;
8251
+ color: #b42318;
6265
8252
  }
6266
8253
 
6267
- .ps-release-tag-list {
6268
- margin: 0;
6269
- padding: 0;
6270
- list-style: none;
6271
- display: flex;
6272
- flex-direction: column;
6273
- border: 1px solid var(--wp-border-soft);
6274
- border-radius: var(--wp-radius-s);
6275
- background: var(--wp-surface);
6276
- overflow: hidden;
8254
+ .studio-root[data-theme="light"] .studio-package-size-button.is-stale:not(.is-over-limit) {
8255
+ color: #8a5a00;
6277
8256
  }
6278
8257
 
6279
- .ps-release-tag-row {
6280
- display: flex;
6281
- align-items: center;
6282
- gap: 6px;
6283
- padding: 5px 8px;
6284
- border-bottom: 1px solid var(--wp-border-soft);
6285
- min-height: 30px;
8258
+ .studio-root[data-theme="light"] .studio-package-size-button.has-error {
8259
+ color: #b42318;
6286
8260
  }
6287
8261
 
6288
- .ps-release-tag-row:last-child {
6289
- border-bottom: 0;
8262
+ .studio-root[data-theme="light"] .studio-action-button:disabled,
8263
+ .studio-root[data-theme="light"] .studio-action-button[aria-disabled="true"],
8264
+ .studio-root[data-theme="light"] .studio-play-tab-button:disabled {
8265
+ border-color: #d8dee4;
8266
+ background: #f6f8fa;
8267
+ color: #8c959f;
6290
8268
  }
6291
8269
 
6292
- .ps-release-tag-row.is-current {
6293
- background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
8270
+ .studio-root[data-theme="light"] .studio-title-actions .studio-action-button:disabled,
8271
+ .studio-root[data-theme="light"] .studio-title-actions .studio-action-button[aria-disabled="true"] {
8272
+ border-color: transparent;
8273
+ background: transparent;
8274
+ color: #8c959f;
6294
8275
  }
6295
8276
 
6296
- .ps-release-tag-row.is-switching {
6297
- opacity: 0.7;
8277
+ .studio-root[data-theme="light"] .studio-theme-switch-track {
8278
+ border-color: #afb8c1;
8279
+ background: #d8dee4;
6298
8280
  }
6299
8281
 
6300
- .ps-release-tag-name {
6301
- display: inline-flex;
6302
- align-items: center;
6303
- gap: 5px;
6304
- font-weight: 500;
6305
- color: var(--wp-heading);
6306
- flex: 1 1 auto;
6307
- min-width: 0;
6308
- font-size: 12px;
8282
+ .studio-root[data-theme="light"] .studio-theme-switch-track span {
8283
+ background: #0969da;
6309
8284
  }
6310
8285
 
6311
- .ps-release-tag-name .dashicons {
6312
- color: var(--wp-text-muted);
6313
- font-size: 14px;
6314
- width: 14px;
6315
- height: 14px;
8286
+ .studio-root[data-theme="light"] .studio-resizer-h,
8287
+ .studio-root[data-theme="light"] .studio-resizer-v {
8288
+ border-color: var(--studio-vscode-border);
8289
+ background: #f6f8fa;
6316
8290
  }
6317
8291
 
6318
- .ps-release-tag-current,
6319
- .ps-release-tag-uncommitted {
6320
- font-size: 9px;
6321
- text-transform: uppercase;
6322
- letter-spacing: 0.06em;
6323
- padding: 1px 6px;
6324
- border-radius: 9999px;
6325
- font-weight: 600;
8292
+ .studio-root[data-theme="light"] .studio-tree-row {
8293
+ color: var(--studio-vscode-text);
6326
8294
  }
6327
8295
 
6328
- .ps-release-tag-current {
6329
- background: var(--wp-admin-theme-color);
6330
- color: #ffffff;
8296
+ .studio-root[data-theme="light"] .studio-tree-arrow,
8297
+ .studio-root[data-theme="light"] .studio-tree-indent,
8298
+ .studio-root[data-theme="light"] .studio-tree-icon {
8299
+ color: #57606a;
6331
8300
  }
6332
8301
 
6333
- .ps-release-tag-uncommitted {
6334
- background: var(--wp-warning-bg);
6335
- color: var(--wp-warning);
8302
+ .studio-root[data-theme="light"] .studio-tree-row:hover,
8303
+ .studio-root[data-theme="light"] .studio-tree-row:focus-visible,
8304
+ .studio-root[data-theme="light"] .studio-tree-row:focus-within,
8305
+ .studio-root[data-theme="light"] .studio-tree-file-row.is-current,
8306
+ .studio-root[data-theme="light"] .studio-tree-folder.has-current > .studio-tree-folder-row,
8307
+ .studio-root[data-theme="light"] .studio-tab-button:hover,
8308
+ .studio-root[data-theme="light"] .studio-tab-button:focus-visible,
8309
+ .studio-root[data-theme="light"] .studio-tab-close:hover,
8310
+ .studio-root[data-theme="light"] .studio-tab-close:focus-visible {
8311
+ background: #eaeef2;
8312
+ color: var(--studio-vscode-active);
6336
8313
  }
6337
8314
 
6338
- .ps-release-tag-spinner {
6339
- display: inline-flex;
6340
- align-items: center;
6341
- gap: 4px;
6342
- font-size: 10px;
6343
- color: var(--wp-text-muted);
8315
+ .studio-root[data-theme="light"] .studio-workbench,
8316
+ .studio-root[data-theme="light"] .studio-tabs,
8317
+ .studio-root[data-theme="light"] .studio-panel-body,
8318
+ .studio-root[data-theme="light"] .studio-editor-fallback {
8319
+ background: var(--studio-vscode-bg);
8320
+ color: var(--studio-vscode-text);
6344
8321
  }
6345
8322
 
6346
- .ps-release-tag-spinner .dashicons {
6347
- animation: ps-spin 0.85s linear infinite;
6348
- font-size: 12px;
6349
- width: 12px;
6350
- height: 12px;
8323
+ .studio-root[data-theme="light"] .studio-tab-button {
8324
+ border-color: var(--studio-vscode-border);
8325
+ background: var(--studio-vscode-tab-bg);
8326
+ color: var(--studio-vscode-muted);
6351
8327
  }
6352
8328
 
6353
- .ps-release-tag-actions {
6354
- display: inline-flex;
6355
- gap: 4px;
8329
+ .studio-root[data-theme="light"] .studio-tab-button.is-active {
8330
+ background: var(--studio-vscode-bg);
8331
+ color: var(--studio-vscode-active);
6356
8332
  }
6357
8333
 
6358
- .ps-release-tag-actions .button.is-confirming,
6359
- .ps-release-confirm-button.is-confirming {
6360
- background: var(--wp-warning);
6361
- border-color: var(--wp-warning);
6362
- color: #ffffff;
8334
+ .studio-root[data-theme="light"] .studio-tab-close {
8335
+ color: #57606a;
6363
8336
  }
6364
8337
 
6365
- .ps-release-tag-empty {
6366
- padding: 10px;
6367
- text-align: center;
6368
- color: var(--wp-text-muted);
6369
- font-size: 12px;
8338
+ .studio-root[data-theme="light"] .studio-preview-empty {
8339
+ color: #1a7f37;
6370
8340
  }
6371
8341
 
6372
- .ps-release-validate-list {
6373
- margin: 0;
6374
- padding: 0;
6375
- list-style: none;
6376
- display: flex;
6377
- flex-direction: column;
6378
- gap: 4px;
8342
+ .studio-root[data-theme="light"] .studio-ai-avatar.is-harness {
8343
+ border-color: var(--studio-vscode-border);
8344
+ box-shadow: 0 1px 2px rgba(27, 31, 36, 0.12);
6379
8345
  }
6380
8346
 
6381
- .ps-release-validate-list li {
6382
- display: grid;
6383
- grid-template-columns: 1fr auto auto;
6384
- align-items: center;
6385
- gap: 8px;
6386
- padding: 5px 8px;
6387
- background: var(--wp-surface);
6388
- border: 1px solid var(--wp-border-soft);
6389
- border-radius: var(--wp-radius-s);
6390
- font-size: 12px;
6391
- min-height: 30px;
8347
+ .studio-root[data-theme="light"] .studio-ai-context-chip,
8348
+ .studio-root[data-theme="light"] .studio-ai-suggestion,
8349
+ .studio-root[data-theme="light"] .studio-ai-bubble,
8350
+ .studio-root[data-theme="light"] .studio-ai-change-card,
8351
+ .studio-root[data-theme="light"] .studio-ai-input-shell,
8352
+ .studio-root[data-theme="light"] .studio-ai-state,
8353
+ .studio-root[data-theme="light"] .studio-ai-message-system {
8354
+ border-color: var(--studio-vscode-border);
8355
+ background: #ffffff;
8356
+ color: var(--studio-vscode-text);
6392
8357
  }
6393
8358
 
6394
- .ps-release-validate-list .dashicons {
6395
- margin-right: 4px;
6396
- color: var(--wp-text-muted);
6397
- font-size: 14px;
6398
- width: 14px;
6399
- height: 14px;
8359
+ .studio-root[data-theme="light"] .studio-ai-messages {
8360
+ background: #ffffff;
6400
8361
  }
6401
8362
 
6402
- .ps-release-validate-state {
6403
- font-size: 10px;
6404
- color: var(--wp-text-muted);
6405
- text-transform: uppercase;
6406
- letter-spacing: 0.06em;
8363
+ .studio-root[data-theme="light"] .studio-ai-suggestion:hover,
8364
+ .studio-root[data-theme="light"] .studio-ai-suggestion:focus-visible,
8365
+ .studio-root[data-theme="light"] .studio-ai-change:hover,
8366
+ .studio-root[data-theme="light"] .studio-ai-change:focus-visible,
8367
+ .studio-root[data-theme="light"] .studio-ai-change-action:hover,
8368
+ .studio-root[data-theme="light"] .studio-ai-change-action:focus-visible {
8369
+ background: #eaeef2;
8370
+ color: var(--studio-vscode-active);
6407
8371
  }
6408
8372
 
6409
- .ps-release-publish-options {
6410
- display: flex;
6411
- flex-wrap: wrap;
6412
- gap: 4px;
8373
+ .studio-root[data-theme="light"] .studio-ai-changes,
8374
+ .studio-root[data-theme="light"] .studio-check-notes,
8375
+ .studio-root[data-theme="light"] .studio-terminal,
8376
+ .studio-root[data-theme="light"] .studio-terminal header {
8377
+ border-color: var(--studio-vscode-border);
8378
+ background: #f6f8fa;
8379
+ color: var(--studio-vscode-text);
6413
8380
  }
6414
8381
 
6415
- .ps-release-publish-summary {
6416
- border-top: 1px dashed var(--wp-border-soft);
6417
- padding-top: 8px;
6418
- display: flex;
6419
- flex-direction: column;
6420
- gap: 6px;
8382
+ .studio-root[data-theme="light"] .studio-terminal-output {
8383
+ background: #ffffff;
6421
8384
  }
6422
8385
 
6423
- .ps-release-publish-summary p {
6424
- margin: 0;
6425
- font-size: 12px;
8386
+ .studio-root[data-theme="light"] .terminal-muted,
8387
+ .studio-root[data-theme="light"] .studio-terminal header span,
8388
+ .studio-root[data-theme="light"] .studio-check-notes header span,
8389
+ .studio-root[data-theme="light"] .studio-check-note-line {
8390
+ color: var(--studio-vscode-muted);
6426
8391
  }
6427
8392
 
6428
- .ps-release-publish-summary strong {
6429
- color: var(--wp-heading);
6430
- text-transform: capitalize;
8393
+ .studio-root[data-theme="light"] .terminal-log,
8394
+ .studio-root[data-theme="light"] .studio-check-note,
8395
+ .studio-root[data-theme="light"] .studio-check-notes header,
8396
+ .studio-root[data-theme="light"] .studio-check-note-text strong {
8397
+ color: var(--studio-vscode-text);
6431
8398
  }
6432
8399
 
6433
- .ps-release-publish-summary small {
6434
- display: block;
6435
- color: var(--wp-text-muted);
6436
- font-size: 11px;
8400
+ .studio-root[data-theme="light"] .studio-check-note:hover,
8401
+ .studio-root[data-theme="light"] .studio-check-note:focus-visible {
8402
+ background: #eaeef2;
6437
8403
  }
6438
8404
 
6439
- .ps-release-step-error {
6440
- margin: 0;
6441
- padding: 6px 8px;
6442
- border-radius: var(--wp-radius-s);
6443
- background: var(--wp-error-bg);
6444
- color: var(--wp-error);
6445
- font-size: 11px;
6446
- border: 1px solid rgba(204, 24, 24, 0.18);
8405
+ .studio-root[data-theme="light"] .studio-release-pane {
8406
+ background: var(--studio-vscode-side-bg);
8407
+ color: var(--studio-vscode-muted);
6447
8408
  }
6448
8409
 
6449
- .ps-release-step-muted {
6450
- margin: 0;
6451
- color: var(--wp-text-muted);
6452
- font-style: italic;
6453
- font-size: 11px;
8410
+ .studio-root[data-theme="light"] .ps-release-step,
8411
+ .studio-root[data-theme="light"] .ps-release-step-header,
8412
+ .studio-root[data-theme="light"] .ps-release-tag-list,
8413
+ .studio-root[data-theme="light"] .ps-release-validate-list li {
8414
+ border-color: var(--studio-vscode-border);
8415
+ background: #ffffff;
8416
+ box-shadow: none;
6454
8417
  }