@huaqiu/dsh-tool-plugin-update 0.6.8 → 0.6.9

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.
package/lib/client.js CHANGED
@@ -183,11 +183,11 @@ window.__ModuleLoader__.load({
183
183
  * family row means adding its selector here (and to no plugin-local list).
184
184
  */
185
185
  const HUAQIU_SIDEBAR_ENTRY_FAMILY = [
186
- "[data-hq-plugin-update-entry]",
187
186
  "[data-hqcg-footprint-entry]",
188
187
  "[data-hqcg-symbol-entry]",
189
188
  "[data-hqcg-schematic-entry]",
190
- "[data-hq-dummy-entry]"
189
+ "[data-hq-dummy-entry]",
190
+ "[data-hq-plugin-update-entry]"
191
191
  ];
192
192
  /**
193
193
  * Read the host UI language from `<html lang>`.
@@ -1477,7 +1477,7 @@ window.__ModuleLoader__.load({
1477
1477
  const block = el("div", `hqpu-source-editor hqpu-source-editor--${kind}`);
1478
1478
  if (!actions.sourceEditing) {
1479
1479
  const urlLine = el("p", "hqpu-source-current-url", source.url);
1480
- urlLine.style.cssText = "margin:2px 0 6px;font-size:9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#a1a1aa;word-break:break-all;";
1480
+ urlLine.style.cssText = "margin:2px 0 6px;font-size:9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--dsw-alias-label-tertiary);word-break:break-all;";
1481
1481
  block.append(urlLine);
1482
1482
  block.append(el("p", "hqpu-status hqpu-source-hint", labels.hint));
1483
1483
  const edit = el("button", "hqpu-btn hqpu-btn--outline hqpu-btn--sm", labels.edit);
@@ -2175,8 +2175,12 @@ window.__ModuleLoader__.load({
2175
2175
  text-align: center;
2176
2176
  font-variant-numeric: tabular-nums;
2177
2177
  }
2178
- /* Collapsed rail: icon-only, centered — same 36px square the shell uses. */
2178
+ /* Collapsed rail: icon-only, centered — same 36px square the shell uses.
2179
+ The update-count badge moves to the button's bottom-right corner. The
2180
+ sidebar-entry helper only renders the badge element while count > 0, so a
2181
+ zero count shows a bare icon with no dot. */
2179
2182
  [data-sidebar-collapsed] .hqpu-sidebar-entry {
2183
+ position: relative;
2180
2184
  justify-content: center;
2181
2185
  width: 36px;
2182
2186
  height: 36px;
@@ -2187,10 +2191,25 @@ window.__ModuleLoader__.load({
2187
2191
  width: 18px;
2188
2192
  height: 18px;
2189
2193
  }
2190
- [data-sidebar-collapsed] .hqpu-sidebar-entry__label,
2191
- [data-sidebar-collapsed] .hqpu-sidebar-entry__badge {
2194
+ [data-sidebar-collapsed] .hqpu-sidebar-entry__label {
2192
2195
  display: none;
2193
2196
  }
2197
+ [data-sidebar-collapsed] .hqpu-sidebar-entry__badge {
2198
+ /* Corner count badge: overlaps the icon's bottom-right like a notification
2199
+ dot. The ring uses the rail's own fill (HuaQiu override when the theme is
2200
+ mounted, shell layer-1 otherwise) so it reads on any sidebar surface. */
2201
+ position: absolute;
2202
+ right: 0;
2203
+ bottom: 0;
2204
+ min-width: 14px;
2205
+ height: 14px;
2206
+ padding: 0 3px;
2207
+ border-radius: 7px;
2208
+ font-size: 9px;
2209
+ line-height: 14px;
2210
+ box-shadow: 0 0 0 1.5px var(--dsw-specific-sidebar-fill, var(--dsw-alias-bg-layer-1));
2211
+ transform: translate(12%, 12%);
2212
+ }
2194
2213
  `;
2195
2214
  /**
2196
2215
  * View styles (hqpu-*). Plain overlay + panel, drawn with the SAME design
@@ -2939,25 +2958,39 @@ window.__ModuleLoader__.load({
2939
2958
  }
2940
2959
 
2941
2960
  /* ════════════════════════════════════════════════════════════════════════
2942
- * Refactored dock (interactive_refactored_ui_mockup.html) — a narrow dark-zinc
2961
+ * Refactored dock (interactive_refactored_ui_mockup.html) — a fluid
2943
2962
  * update-center column. These rules cascade over the shell-token base: the
2944
- * panel becomes ~340px wide, the zinc palette hard-coded per mockup, with a
2945
- * sticky header / scroll body / sticky footer. No Tailwind, no dependencies.
2963
+ * panel takes the available width (up to 720px), every colour is a
2964
+ * --dsw-alias-* token so light/dark follow the shell's
2965
+ * body[data-ds-dark-theme] and the brand follows the HuaQiu theme overrides,
2966
+ * with a sticky header / scroll body / sticky footer. No Tailwind, no
2967
+ * dependencies.
2946
2968
  * ════════════════════════════════════════════════════════════════════════ */
2947
2969
  .hqpu-panel,
2948
2970
  .hqpu-panel * {
2949
- --hq-bg: #18181b;
2950
- --hq-card: #27272a;
2951
- --hq-card-soft: #1c1c1f;
2952
- --hq-border: #3f3f46;
2953
- --hq-hover: #323236;
2954
- --hq-text: #f4f4f5;
2955
- --hq-muted: #a1a1aa;
2956
- --hq-faint: #71717a;
2957
- --hq-brand: #dc2626;
2958
- --hq-brand-soft: #ef4444;
2959
- --hq-emerald: #34d399;
2960
- --hq-amber: #f59e0b;
2971
+ /* Every colour rides a shell theme token, so light/dark follow
2972
+ * body[data-ds-dark-theme] automatically. The brand tokens are exactly the
2973
+ * ones @huaqiu/dsh-ui-theme-huaqiu overrides (light #C7000B / dark #FF6B74),
2974
+ * so the dock honours the HuaQiu brand scheme in both themes without knowing
2975
+ * which theme is active. */
2976
+ --hq-bg: var(--dsw-alias-bg-layer-1);
2977
+ --hq-card: var(--dsw-alias-bg-layer-2);
2978
+ --hq-card-soft: var(--dsw-alias-bg-overlay);
2979
+ --hq-border: var(--dsw-alias-border-l2);
2980
+ --hq-border-strong: var(--dsw-alias-border-l3);
2981
+ --hq-hover: var(--dsw-alias-interactive-bg-hover);
2982
+ --hq-text: var(--dsw-alias-label-primary);
2983
+ --hq-text-strong: var(--dsw-alias-label-primary);
2984
+ --hq-text-code: var(--dsw-alias-label-secondary);
2985
+ --hq-muted: var(--dsw-alias-label-secondary);
2986
+ --hq-faint: var(--dsw-alias-label-tertiary);
2987
+ --hq-brand: var(--dsw-alias-brand-primary);
2988
+ --hq-brand-soft: var(--dsw-alias-button-primary-hover);
2989
+ --hq-brand-dim: var(--dsw-alias-button-primary-dimmed);
2990
+ --hq-brand-fg: var(--dsw-alias-brand-primary-invert);
2991
+ --hq-emerald: var(--dsw-alias-state-success-primary);
2992
+ --hq-amber: var(--dsw-alias-state-warn-primary);
2993
+ --hq-rose: var(--dsw-alias-state-error-primary);
2961
2994
  }
2962
2995
  .hqpu-panel {
2963
2996
  width: min(360px, calc(100vw - 32px));
@@ -2970,7 +3003,7 @@ window.__ModuleLoader__.load({
2970
3003
  overflow: hidden;
2971
3004
  }
2972
3005
  .hqpu-scrim {
2973
- background: rgba(0, 0, 0, 0.55);
3006
+ background: var(--dsw-alias-bg-mask-3);
2974
3007
  }
2975
3008
 
2976
3009
  /* Sticky header */
@@ -3041,7 +3074,7 @@ window.__ModuleLoader__.load({
3041
3074
  flex: none;
3042
3075
  padding: 10px 12px;
3043
3076
  border-bottom: 0.5px solid var(--hq-border);
3044
- background: #131316;
3077
+ background: var(--hq-card-soft);
3045
3078
  }
3046
3079
  .hqpu-settings-row {
3047
3080
  display: flex;
@@ -3053,7 +3086,7 @@ window.__ModuleLoader__.load({
3053
3086
  .hqpu-settings-title {
3054
3087
  font-size: 11px;
3055
3088
  font-weight: 500;
3056
- color: #d4d4d8;
3089
+ color: var(--hq-text-code);
3057
3090
  }
3058
3091
  .hqpu-origin-badge {
3059
3092
  font-size: 9px;
@@ -3062,14 +3095,14 @@ window.__ModuleLoader__.load({
3062
3095
  border: 0.5px solid;
3063
3096
  }
3064
3097
  .hqpu-origin-badge[data-origin='config'] {
3065
- background: rgba(6, 78, 59, 0.4);
3098
+ background: color-mix(in srgb, var(--dsw-alias-state-success-tertiary) 55%, transparent);
3066
3099
  color: var(--hq-emerald);
3067
- border-color: rgba(6, 95, 70, 0.6);
3100
+ border-color: color-mix(in srgb, var(--hq-emerald) 40%, transparent);
3068
3101
  }
3069
3102
  .hqpu-origin-badge[data-origin='override'] {
3070
- background: rgba(120, 53, 15, 0.4);
3103
+ background: color-mix(in srgb, var(--dsw-alias-state-warn-tertiary) 55%, transparent);
3071
3104
  color: var(--hq-amber);
3072
- border-color: rgba(180, 83, 9, 0.5);
3105
+ border-color: color-mix(in srgb, var(--hq-amber) 40%, transparent);
3073
3106
  }
3074
3107
  .hqpu-settings label {
3075
3108
  display: block;
@@ -3085,7 +3118,7 @@ window.__ModuleLoader__.load({
3085
3118
  background: var(--hq-bg);
3086
3119
  border: 0.5px solid var(--hq-border);
3087
3120
  border-radius: 5px;
3088
- color: #d4d4d8;
3121
+ color: var(--hq-text-code);
3089
3122
  padding: 0 8px;
3090
3123
  box-sizing: border-box;
3091
3124
  }
@@ -3105,8 +3138,8 @@ window.__ModuleLoader__.load({
3105
3138
  flex: 1;
3106
3139
  padding: 12px;
3107
3140
  background: var(--hq-bg);
3108
- --dsh-scrollbar-thumb: #3f3f46;
3109
- --dsh-scrollbar-thumb-hover: #52525b;
3141
+ --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);
3142
+ --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2);
3110
3143
  }
3111
3144
  .hqpu-column {
3112
3145
  max-width: none;
@@ -3121,8 +3154,8 @@ window.__ModuleLoader__.load({
3121
3154
  padding: 12px;
3122
3155
  border-radius: 8px;
3123
3156
  border: 0.5px solid color-mix(in srgb, var(--hq-brand-soft) 30%, transparent);
3124
- background: #18181b;
3125
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
3157
+ background: var(--hq-bg);
3158
+ box-shadow: var(--dsw-elevation-prominent);
3126
3159
  }
3127
3160
  .hqpu-active-top {
3128
3161
  display: flex;
@@ -3137,7 +3170,7 @@ window.__ModuleLoader__.load({
3137
3170
  min-width: 0;
3138
3171
  font-size: 11px;
3139
3172
  font-weight: 600;
3140
- color: #e4e4e7;
3173
+ color: var(--hq-text-strong);
3141
3174
  }
3142
3175
  .hqpu-pulse-dot {
3143
3176
  position: relative;
@@ -3174,7 +3207,7 @@ window.__ModuleLoader__.load({
3174
3207
  height: 6px;
3175
3208
  margin-top: 10px;
3176
3209
  border-radius: 999px;
3177
- background: #27272a;
3210
+ background: var(--hq-card);
3178
3211
  overflow: hidden;
3179
3212
  }
3180
3213
  .hqpu-progress-fill {
@@ -3197,7 +3230,7 @@ window.__ModuleLoader__.load({
3197
3230
  gap: 4px;
3198
3231
  margin-top: 10px;
3199
3232
  padding-top: 8px;
3200
- border-top: 0.5px solid #27272a;
3233
+ border-top: 0.5px solid var(--hq-border);
3201
3234
  text-align: center;
3202
3235
  font-size: 9px;
3203
3236
  font-weight: 500;
@@ -3222,30 +3255,30 @@ window.__ModuleLoader__.load({
3222
3255
  border-radius: 8px;
3223
3256
  }
3224
3257
  .hqpu-alert--amber {
3225
- background: rgba(69, 26, 3, 0.35);
3226
- border: 0.5px solid rgba(180, 83, 9, 0.4);
3258
+ background: color-mix(in srgb, var(--dsw-alias-state-warn-tertiary) 60%, transparent);
3259
+ border: 0.5px solid color-mix(in srgb, var(--hq-amber) 35%, transparent);
3227
3260
  }
3228
3261
  .hqpu-alert--amber svg { color: var(--hq-amber); flex: none; margin-top: 1px; }
3229
3262
  .hqpu-alert-green {
3230
- background: rgba(6, 78, 59, 0.3);
3231
- border: 0.5px solid rgba(6, 95, 70, 0.4);
3232
- color: #a7f3d0;
3263
+ background: color-mix(in srgb, var(--dsw-alias-state-success-tertiary) 55%, transparent);
3264
+ border: 0.5px solid color-mix(in srgb, var(--hq-emerald) 35%, transparent);
3265
+ color: var(--hq-emerald);
3233
3266
  font-size: 11px;
3234
3267
  }
3235
3268
  .hqpu-alert-title {
3236
3269
  font-size: 11px;
3237
3270
  font-weight: 500;
3238
- color: #fcd34d;
3271
+ color: var(--dsw-alias-state-warn-label);
3239
3272
  }
3240
3273
  .hqpu-alert-body {
3241
3274
  margin: 2px 0 0;
3242
3275
  font-size: 10px;
3243
3276
  line-height: 15px;
3244
- color: rgba(252, 211, 77, 0.8);
3277
+ color: color-mix(in srgb, var(--dsw-alias-state-warn-label) 85%, transparent);
3245
3278
  }
3246
3279
  .hqpu-alert-body code {
3247
3280
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
3248
- background: rgba(120, 53, 15, 0.5);
3281
+ background: color-mix(in srgb, var(--hq-amber) 18%, transparent);
3249
3282
  padding: 1px 4px;
3250
3283
  border-radius: 3px;
3251
3284
  }
@@ -3259,7 +3292,7 @@ window.__ModuleLoader__.load({
3259
3292
  border: 0;
3260
3293
  padding: 0;
3261
3294
  font-size: 10px;
3262
- color: #fbbf24;
3295
+ color: var(--dsw-alias-state-warn-label);
3263
3296
  cursor: pointer;
3264
3297
  text-decoration: underline;
3265
3298
  }
@@ -3283,17 +3316,17 @@ window.__ModuleLoader__.load({
3283
3316
  gap: 6px;
3284
3317
  font-size: 12px;
3285
3318
  font-weight: 600;
3286
- color: #e4e4e7;
3319
+ color: var(--hq-text-strong);
3287
3320
  }
3288
- .hqpu-engine-title svg { width: 14px; height: 14px; color: #a1a1aa; }
3321
+ .hqpu-engine-title svg { width: 14px; height: 14px; color: var(--hq-muted); }
3289
3322
  .hqpu-chip {
3290
3323
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
3291
3324
  font-size: 9px;
3292
3325
  padding: 2px 6px;
3293
3326
  border-radius: 4px;
3294
- background: #27272a;
3295
- border: 0.5px solid #52525b;
3296
- color: #d4d4d8;
3327
+ background: var(--hq-card);
3328
+ border: 0.5px solid var(--hq-border-strong);
3329
+ color: var(--hq-text-code);
3297
3330
  }
3298
3331
  .hqpu-engine-update-row {
3299
3332
  display: flex;
@@ -3303,8 +3336,8 @@ window.__ModuleLoader__.load({
3303
3336
  margin-top: 10px;
3304
3337
  padding: 8px;
3305
3338
  border-radius: 6px;
3306
- border: 0.5px solid rgba(63, 63, 70, 0.7);
3307
- background: rgba(24, 24, 27, 0.6);
3339
+ border: 0.5px solid color-mix(in srgb, var(--hq-border) 70%, transparent);
3340
+ background: color-mix(in srgb, var(--hq-card) 60%, transparent);
3308
3341
  }
3309
3342
  .hqpu-engine-new-line {
3310
3343
  display: flex;
@@ -3312,15 +3345,15 @@ window.__ModuleLoader__.load({
3312
3345
  gap: 4px;
3313
3346
  font-size: 11px;
3314
3347
  font-weight: 500;
3315
- color: #d4d4d8;
3348
+ color: var(--hq-text-code);
3316
3349
  }
3317
3350
  .hqpu-tag--brand {
3318
3351
  font-size: 9px;
3319
3352
  padding: 1px 4px;
3320
3353
  border-radius: 3px;
3321
3354
  color: var(--hq-brand-soft);
3322
- background: rgba(69, 10, 10, 0.6);
3323
- border: 0.5px solid rgba(153, 27, 27, 0.5);
3355
+ background: color-mix(in srgb, var(--hq-brand-dim) 60%, transparent);
3356
+ border: 0.5px solid color-mix(in srgb, var(--hq-brand) 45%, transparent);
3324
3357
  }
3325
3358
  .hqpu-engine-size {
3326
3359
  margin: 3px 0 0;
@@ -3335,12 +3368,12 @@ window.__ModuleLoader__.load({
3335
3368
  height: auto;
3336
3369
  padding: 6px 10px;
3337
3370
  font-size: 10px;
3338
- background: #27272a;
3339
- border: 0.5px solid #52525b;
3340
- color: #e4e4e7;
3371
+ background: var(--hq-card);
3372
+ border: 0.5px solid var(--hq-border-strong);
3373
+ color: var(--hq-text-strong);
3341
3374
  border-radius: 5px;
3342
3375
  }
3343
- .hqpu-btn--engine:hover:not(:disabled) { background: #3f3f46; }
3376
+ .hqpu-btn--engine:hover:not(:disabled) { background: var(--hq-border); }
3344
3377
  .hqpu-engine-note {
3345
3378
  display: flex;
3346
3379
  align-items: center;
@@ -3365,7 +3398,7 @@ window.__ModuleLoader__.load({
3365
3398
  gap: 6px;
3366
3399
  font-size: 12px;
3367
3400
  font-weight: 600;
3368
- color: #e4e4e7;
3401
+ color: var(--hq-text-strong);
3369
3402
  }
3370
3403
  .hqpu-count-pill {
3371
3404
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
@@ -3386,7 +3419,12 @@ window.__ModuleLoader__.load({
3386
3419
  }
3387
3420
  .hqpu-all-changelog:hover { color: var(--hq-text); }
3388
3421
 
3389
- .hqpu-cards { gap: 8px; }
3422
+ .hqpu-cards {
3423
+ gap: 8px;
3424
+ display: grid;
3425
+ grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
3426
+ align-items: start;
3427
+ }
3390
3428
  .hqpu-card {
3391
3429
  margin: 0;
3392
3430
  padding: 10px;
@@ -3395,7 +3433,7 @@ window.__ModuleLoader__.load({
3395
3433
  background: var(--hq-card);
3396
3434
  transition: border-color 0.15s ease;
3397
3435
  }
3398
- .hqpu-card:hover { border-color: #52525b; }
3436
+ .hqpu-card:hover { border-color: var(--hq-border-strong); }
3399
3437
  .hqpu-card-head {
3400
3438
  display: flex;
3401
3439
  align-items: flex-start;
@@ -3412,16 +3450,16 @@ window.__ModuleLoader__.load({
3412
3450
  width: 28px;
3413
3451
  height: 28px;
3414
3452
  border-radius: 6px;
3415
- border: 0.5px solid #52525b;
3416
- background: #27272a;
3417
- color: #d4d4d8;
3453
+ border: 0.5px solid var(--hq-border-strong);
3454
+ background: var(--hq-card);
3455
+ color: var(--hq-text-code);
3418
3456
  font-size: 10px;
3419
3457
  font-weight: 700;
3420
3458
  }
3421
3459
  .hqpu-card-title {
3422
3460
  font-size: 12px;
3423
3461
  font-weight: 600;
3424
- color: #e4e4e7;
3462
+ color: var(--hq-text-strong);
3425
3463
  }
3426
3464
  .hqpu-card-sub {
3427
3465
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
@@ -3437,7 +3475,7 @@ window.__ModuleLoader__.load({
3437
3475
  font-size: 10px;
3438
3476
  }
3439
3477
  .hqpu-ver-old { color: var(--hq-muted); }
3440
- .hqpu-ver-arrow { color: #52525b; }
3478
+ .hqpu-ver-arrow { color: var(--hq-border-strong); }
3441
3479
  .hqpu-ver-new { color: var(--hq-emerald); font-weight: 700; }
3442
3480
  .hqpu-log-toggle {
3443
3481
  display: inline-flex;
@@ -3457,8 +3495,8 @@ window.__ModuleLoader__.load({
3457
3495
  margin-top: 8px;
3458
3496
  padding: 8px;
3459
3497
  border-radius: 6px;
3460
- border: 0.5px solid #27272a;
3461
- background: rgba(24, 24, 27, 0.8);
3498
+ border: 0.5px solid var(--hq-border);
3499
+ background: color-mix(in srgb, var(--hq-card) 80%, transparent);
3462
3500
  font-size: 10px;
3463
3501
  }
3464
3502
  .hqpu-changelog-drawer-title {
@@ -3466,34 +3504,34 @@ window.__ModuleLoader__.load({
3466
3504
  font-weight: 500;
3467
3505
  text-transform: uppercase;
3468
3506
  letter-spacing: 0.05em;
3469
- color: #a1a1aa;
3507
+ color: var(--hq-muted);
3470
3508
  }
3471
3509
  .hqpu-changelog-drawer ul {
3472
3510
  margin: 4px 0 0;
3473
3511
  padding-left: 16px;
3474
- color: #d4d4d8;
3512
+ color: var(--hq-text-code);
3475
3513
  line-height: 16px;
3476
3514
  }
3477
3515
 
3478
3516
  /* Blocked / incompatible card: dimmed, rose badge, no install button */
3479
3517
  .hqpu-card--blocked {
3480
3518
  opacity: 0.8;
3481
- background: rgba(39, 39, 42, 0.6);
3482
- border-color: #27272a;
3519
+ background: color-mix(in srgb, var(--hq-card) 60%, transparent);
3520
+ border-color: var(--hq-border);
3483
3521
  }
3484
3522
  .hqpu-card--blocked .hqpu-avatar {
3485
- background: rgba(39, 39, 42, 0.5);
3486
- border-color: #27272a;
3487
- color: #71717a;
3523
+ background: color-mix(in srgb, var(--hq-card) 50%, transparent);
3524
+ border-color: var(--hq-border);
3525
+ color: var(--hq-faint);
3488
3526
  }
3489
- .hqpu-card--blocked .hqpu-card-title { color: #a1a1aa; }
3527
+ .hqpu-card--blocked .hqpu-card-title { color: var(--hq-muted); }
3490
3528
  .hqpu-blocked-badge {
3491
3529
  font-size: 9px;
3492
3530
  padding: 2px 6px;
3493
3531
  border-radius: 4px;
3494
- color: #fb7185;
3495
- background: rgba(76, 5, 25, 0.5);
3496
- border: 0.5px solid rgba(136, 19, 55, 0.5);
3532
+ color: var(--hq-rose);
3533
+ background: color-mix(in srgb, var(--hq-rose) 18%, transparent);
3534
+ border: 0.5px solid color-mix(in srgb, var(--hq-rose) 40%, transparent);
3497
3535
  }
3498
3536
  .hqpu-reason-line {
3499
3537
  display: flex;
@@ -3502,10 +3540,10 @@ window.__ModuleLoader__.load({
3502
3540
  margin: 8px 0 0;
3503
3541
  padding: 6px;
3504
3542
  border-radius: 5px;
3505
- border: 0.5px solid rgba(136, 19, 55, 0.2);
3506
- background: rgba(76, 5, 25, 0.2);
3543
+ border: 0.5px solid color-mix(in srgb, var(--hq-rose) 20%, transparent);
3544
+ background: color-mix(in srgb, var(--hq-rose) 8%, transparent);
3507
3545
  font-size: 10px;
3508
- color: rgba(251, 113, 133, 0.9);
3546
+ color: var(--hq-rose);
3509
3547
  }
3510
3548
  .hqpu-reason-line svg { width: 12px; height: 12px; flex: none; margin-top: 1px; }
3511
3549
 
@@ -3539,11 +3577,11 @@ window.__ModuleLoader__.load({
3539
3577
  flex: 1;
3540
3578
  height: 32px;
3541
3579
  background: var(--hq-brand);
3542
- color: #fff;
3580
+ color: var(--hq-brand-fg);
3543
3581
  font-size: 11px;
3544
3582
  font-weight: 500;
3545
3583
  border-radius: 6px;
3546
- box-shadow: 0 4px 12px rgba(127, 29, 29, 0.4);
3584
+ box-shadow: 0 4px 12px color-mix(in srgb, var(--hq-brand) 40%, transparent);
3547
3585
  }
3548
3586
  .hqpu-btn--block:hover:not(:disabled) { background: var(--hq-brand-soft); }
3549
3587
  .hqpu-btn--block:disabled { opacity: 0.5; box-shadow: none; }
@@ -3568,7 +3606,7 @@ window.__ModuleLoader__.load({
3568
3606
  .hqpu-status { color: var(--hq-muted); font-size: 11px; }
3569
3607
  .hqpu-empty { color: var(--hq-muted); font-size: 11px; padding: 16px 0; }
3570
3608
  .hqpu-toast { background: var(--hq-card); border: 0.5px solid var(--hq-border); color: var(--hq-text); font-size: 12px; }
3571
- .hqpu-skeleton-fill { background: #3f3f46; }
3609
+ .hqpu-skeleton-fill { background: var(--hq-border); }
3572
3610
  .hqpu-job { background: var(--hq-card); border-color: var(--hq-border); }
3573
3611
  .hqpu-job-meta { color: var(--hq-muted); }
3574
3612
  .hqpu-release-notes { color: var(--hq-muted); font-size: 11px; }