pinokiod 3.85.0 → 3.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/kernel/api/index.js +7 -0
  2. package/kernel/bin/caddy.js +10 -4
  3. package/kernel/peer.js +0 -3
  4. package/kernel/prototype.js +1 -0
  5. package/kernel/shell.js +43 -2
  6. package/kernel/util.js +2 -0
  7. package/package.json +1 -1
  8. package/pipe/views/login.ejs +1 -1
  9. package/server/index.js +133 -83
  10. package/server/public/common.js +534 -0
  11. package/server/public/opener.js +12 -11
  12. package/server/public/serve/style.css +1 -1
  13. package/server/public/style.css +25 -24
  14. package/server/public/urldropdown.css +473 -4
  15. package/server/public/urldropdown.js +202 -8
  16. package/server/views/404.ejs +1 -1
  17. package/server/views/500.ejs +1 -1
  18. package/server/views/app.ejs +29 -33
  19. package/server/views/bookmarklet.ejs +197 -0
  20. package/server/views/connect/x.ejs +4 -4
  21. package/server/views/connect.ejs +10 -10
  22. package/server/views/container.ejs +2 -2
  23. package/server/views/d.ejs +3 -3
  24. package/server/views/download.ejs +1 -1
  25. package/server/views/editor.ejs +1 -1
  26. package/server/views/env_editor.ejs +3 -3
  27. package/server/views/explore.ejs +2 -2
  28. package/server/views/file_explorer.ejs +2 -2
  29. package/server/views/git.ejs +7 -7
  30. package/server/views/github.ejs +3 -3
  31. package/server/views/help.ejs +2 -2
  32. package/server/views/index.ejs +5 -5
  33. package/server/views/index2.ejs +3 -3
  34. package/server/views/init/index.ejs +11 -74
  35. package/server/views/install.ejs +3 -3
  36. package/server/views/keys.ejs +2 -2
  37. package/server/views/mini.ejs +2 -2
  38. package/server/views/net.ejs +6 -6
  39. package/server/views/network.ejs +21 -21
  40. package/server/views/network2.ejs +10 -10
  41. package/server/views/old_network.ejs +8 -8
  42. package/server/views/pro.ejs +369 -0
  43. package/server/views/prototype/index.ejs +2 -2
  44. package/server/views/required_env_editor.ejs +2 -2
  45. package/server/views/review.ejs +6 -6
  46. package/server/views/screenshots.ejs +5 -4
  47. package/server/views/settings.ejs +3 -3
  48. package/server/views/setup.ejs +2 -2
  49. package/server/views/setup_home.ejs +2 -2
  50. package/server/views/share_editor.ejs +4 -4
  51. package/server/views/shell.ejs +3 -3
  52. package/server/views/start.ejs +2 -2
  53. package/server/views/task.ejs +2 -2
  54. package/server/views/terminal.ejs +5 -4
  55. package/server/views/tools.ejs +13 -13
@@ -176,12 +176,12 @@ aside .tab.submenu {
176
176
  justify-content: center;
177
177
  }
178
178
  .url-bar .http-url:hover {
179
- color: royalblue;
180
- border-color: royalblue;
179
+ color: rgba(127, 91, 243, 0.9);
180
+ border-color: rgba(127, 91, 243, 0.9);
181
181
  }
182
182
  .url-bar .https-url:hover {
183
- color: royalblue;
184
- border-color: royalblue;
183
+ color: rgba(127, 91, 243, 0.9);
184
+ border-color: rgba(127, 91, 243, 0.9);
185
185
  }
186
186
  .url-bar .https-url {
187
187
  cursor: pointer;
@@ -295,7 +295,7 @@ body.dark .type-tabs {
295
295
  */
296
296
  }
297
297
  .navheader a:hover, .navheader button:hover {
298
- color: royalblue;
298
+ color: rgba(127, 91, 243, 0.9);
299
299
  }
300
300
  .navheader a, .navheader button {
301
301
  cursor: pointer;
@@ -475,10 +475,10 @@ footer b {
475
475
  font-size: 12px;
476
476
  }
477
477
  .requirements .requirement-item .label.highlighted {
478
- color: royalblue;
478
+ color: rgba(127, 91, 243, 0.9);
479
479
  }
480
480
  .requirements .requirement-item .name.highlighted {
481
- color: royalblue;
481
+ color: rgba(127, 91, 243, 0.9);
482
482
  }
483
483
  .requirements .requirement-item .name {
484
484
  color: rgba(0,0,0,0.7);
@@ -508,7 +508,7 @@ body.dark .requirements .requirement-item .name {
508
508
  color: rgba(255,255,255,0.8);
509
509
  }
510
510
  body.dark .requirements .requirement-item .name.highlighted {
511
- color: royalblue;
511
+ color: rgba(127, 91, 243, 0.9);
512
512
  }
513
513
  body.dark .requirement-item {
514
514
  /*
@@ -552,7 +552,7 @@ body.dark .requirement-item {
552
552
  }
553
553
  #del-bin {
554
554
  cursor: pointer;
555
- color: royalblue;
555
+ color: rgba(127, 91, 243, 0.9);
556
556
  }
557
557
 
558
558
  html.columns {
@@ -747,12 +747,13 @@ form.search {
747
747
  justify-content: center;
748
748
  gap: 5px;
749
749
  }
750
- .btn-tab .btn {
750
+ body.dark .btn-tab .btn, .btn-tab .btn {
751
751
  display: flex;
752
752
  text-align: center;
753
753
  align-items: center;
754
754
  gap: 5px;
755
755
  box-sizing: border-box;
756
+ background: rgba(127, 91, 243, 0.9) !important;
756
757
  }
757
758
  body.dark form.search input[type=search] {
758
759
  border: none;
@@ -1581,7 +1582,7 @@ body.dark .swal2-popup {
1581
1582
  }
1582
1583
  .swal2-html-container a {
1583
1584
  text-decoration: none;
1584
- color: royalblue;
1585
+ color: rgba(127, 91, 243, 0.9);
1585
1586
  }
1586
1587
  .swal2-html-container .footer {
1587
1588
  text-align: center;
@@ -1731,7 +1732,7 @@ body.dark .swal2-modal input {
1731
1732
  margin-right: 5px;
1732
1733
  }
1733
1734
  .swal2-modal input[type=checkbox]:checked {
1734
- background: royalblue;
1735
+ background: rgba(127, 91, 243, 0.9);
1735
1736
  }
1736
1737
  .swal2-modal .checkbox-row {
1737
1738
  display: flex;
@@ -1806,7 +1807,7 @@ body.dark .swal2-styled.swal2-confirm{
1806
1807
  }
1807
1808
  .noty_bar.noty_type__success {
1808
1809
  color: white !important;
1809
- background: royalblue !important;
1810
+ background: rgba(127, 91, 243, 0.9) !important;
1810
1811
  }
1811
1812
  b {
1812
1813
  color: cornflowerblue;
@@ -1907,7 +1908,7 @@ b {
1907
1908
  }
1908
1909
  .dependencies .item .downloaded {
1909
1910
  text-decoration: none;
1910
- color: royalblue;
1911
+ color: rgba(127, 91, 243, 0.9);
1911
1912
  margin-left: 5px;
1912
1913
  }
1913
1914
  .dependencies h2 {
@@ -1920,7 +1921,7 @@ b {
1920
1921
  background: none;
1921
1922
  }
1922
1923
  .opener.btn {
1923
- background: royalblue;
1924
+ background: rgba(127, 91, 243, 0.9);
1924
1925
  }
1925
1926
  .field-row {
1926
1927
  display: flex;
@@ -1952,10 +1953,10 @@ body.dark .btn2 {
1952
1953
  */
1953
1954
  }
1954
1955
  .btn2:hover {
1955
- color: royalblue;
1956
+ color: rgba(127, 91, 243, 0.9);
1956
1957
  }
1957
1958
  body.dark .btn2:hover {
1958
- color: royalblue;
1959
+ color: rgba(127, 91, 243, 0.9);
1959
1960
  }
1960
1961
  /*
1961
1962
  body.dark .browser-options {
@@ -2124,7 +2125,7 @@ footer.status {
2124
2125
  height: 100%;
2125
2126
  */
2126
2127
  margin: 0;
2127
- background: royalblue;
2128
+ background: rgba(127, 91, 243, 0.9);
2128
2129
  color: white;
2129
2130
  overflow: auto;
2130
2131
  flex-grow: 1;
@@ -2134,7 +2135,7 @@ footer.status {
2134
2135
  padding: 10px;
2135
2136
  box-sizing: border-box;
2136
2137
  align-items: center;
2137
- background: royalblue;
2138
+ background: rgba(127, 91, 243, 0.9);
2138
2139
  }
2139
2140
  #error-screen-close {
2140
2141
  background: rgba(0, 0, 0, 0.6);
@@ -2162,11 +2163,11 @@ footer.status {
2162
2163
  text-transform: uppercase;
2163
2164
  }
2164
2165
  .tippy-box[data-theme~='pointer'] {
2165
- background-color: royalblue;
2166
+ background-color: rgba(127, 91, 243, 0.9);
2166
2167
  color: white;
2167
2168
  }
2168
2169
  .tippy-box[data-theme~='pointer'] .tippy-arrow {
2169
- color: royalblue;
2170
+ color: rgba(127, 91, 243, 0.9);
2170
2171
  }
2171
2172
  #fsmenu {
2172
2173
  /*
@@ -2188,7 +2189,7 @@ mark{
2188
2189
  #close-error-screen {
2189
2190
  background: white !important;
2190
2191
  padding: 15px !important;
2191
- color: royalblue !important;
2192
+ color: rgba(127, 91, 243, 0.9) !important;
2192
2193
  cursor: pointer;
2193
2194
  }
2194
2195
 
@@ -2318,11 +2319,11 @@ body.dark .dropdown-content .btn2 {
2318
2319
  }
2319
2320
 
2320
2321
  body.dark .mode-selector .btn2.selected {
2321
- background: royalblue;
2322
+ background: rgba(127, 91, 243, 0.9);
2322
2323
  color: white;
2323
2324
  }
2324
2325
  .mode-selector .btn2.selected {
2325
- background: royalblue;
2326
+ background: rgba(127, 91, 243, 0.9);
2326
2327
  color: white;
2327
2328
  border-radius: 4px;
2328
2329
  }
@@ -75,11 +75,480 @@ body.dark .url-dropdown-loading {
75
75
  padding: 12px 16px;
76
76
  text-align: center;
77
77
  color: #718096;
78
- font-style: italic;
79
78
  }
80
79
  body.dark .url-dropdown-empty {
81
80
  color: #a0aec0;
82
81
  }
82
+ .url-dropdown-empty-message {
83
+ font-style: italic;
84
+ }
85
+ .url-dropdown-empty-actions {
86
+ margin-top: 12px;
87
+ display: flex;
88
+ flex-direction: column;
89
+ align-items: center;
90
+ gap: 8px;
91
+ }
92
+ .url-dropdown-create-button {
93
+ padding: 8px 18px;
94
+ border-radius: 6px;
95
+ border: none;
96
+ background: var(--light-btn-bg, #7f5bf3);
97
+ color: var(--light-btn-color, #fff);
98
+ font-size: 14px;
99
+ font-weight: 600;
100
+ cursor: pointer;
101
+ transition: background 0.2s ease, transform 0.1s ease;
102
+ }
103
+ .url-dropdown-create-button:hover {
104
+ background: #6846e3;
105
+ }
106
+ .url-dropdown-create-button:active {
107
+ transform: translateY(1px);
108
+ }
109
+ body.dark .url-dropdown-create-button {
110
+ background: var(--dark-btn-bg, rgba(255,255,255,0.07));
111
+ color: var(--dark-btn-color, whitesmoke);
112
+ border: 1px solid rgba(255,255,255,0.1);
113
+ }
114
+ body.dark .url-dropdown-create-button:hover {
115
+ background: rgba(255,255,255,0.12);
116
+ }
117
+ .url-dropdown-empty-description {
118
+ font-size: 12px;
119
+ color: #4a5568;
120
+ }
121
+ body.dark .url-dropdown-empty-description {
122
+ color: #cbd5f5;
123
+ }
124
+ .create-launcher-modal-overlay {
125
+ position: fixed;
126
+ inset: 0;
127
+ padding: 24px;
128
+ background: rgba(15, 23, 42, 0.35);
129
+ display: none;
130
+ align-items: center;
131
+ justify-content: center;
132
+ z-index: 9999;
133
+ -webkit-backdrop-filter: blur(14px);
134
+ backdrop-filter: blur(14px);
135
+ animation: createLauncherModalFade 160ms ease-out;
136
+ }
137
+ .create-launcher-modal {
138
+ background: rgba(255, 255, 255, 0.86);
139
+ border: 1px solid rgba(15, 23, 42, 0.08);
140
+ border-radius: 20px;
141
+ padding: 28px 32px;
142
+ width: min(640px, calc(100% - 64px));
143
+ box-shadow: 0 40px 100px rgba(15, 23, 42, 0.35);
144
+ display: flex;
145
+ flex-direction: column;
146
+ gap: 20px;
147
+ font-family: "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
148
+ -webkit-backdrop-filter: blur(28px);
149
+ backdrop-filter: blur(28px);
150
+ animation: createLauncherModalPop 180ms ease-out;
151
+ }
152
+ body.dark .create-launcher-modal {
153
+ background: rgba(17, 24, 39, 0.82);
154
+ border: 1px solid rgba(148, 163, 184, 0.22);
155
+ color: rgba(226, 232, 240, 0.96);
156
+ box-shadow: 0 50px 120px rgba(2, 6, 20, 0.82);
157
+ }
158
+ .create-launcher-modal-header {
159
+ display: flex;
160
+ align-items: center;
161
+ gap: 18px;
162
+ padding-bottom: 4px;
163
+ }
164
+ .create-launcher-modal-icon {
165
+ width: 44px;
166
+ height: 44px;
167
+ border-radius: 14px;
168
+ display: inline-flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ background: linear-gradient(135deg, rgba(127, 91, 243, 0.9), rgba(95, 64, 216, 0.9));
172
+ color: white;
173
+ box-shadow: 0 18px 40px rgba(111, 76, 242, 0.3);
174
+ flex-shrink: 0;
175
+ }
176
+ .create-launcher-modal-icon i {
177
+ font-size: 18px;
178
+ }
179
+ .create-launcher-modal-headings {
180
+ display: flex;
181
+ flex-direction: column;
182
+ gap: 6px;
183
+ }
184
+ .create-launcher-modal h3 {
185
+ margin: 0;
186
+ font-size: 24px;
187
+ font-weight: 600;
188
+ letter-spacing: -0.01em;
189
+ }
190
+ .create-launcher-modal-description {
191
+ margin: 0;
192
+ font-size: 14px;
193
+ color: rgba(71, 85, 105, 0.8);
194
+ line-height: 1.5;
195
+ }
196
+ body.dark .create-launcher-modal-description {
197
+ color: rgba(203, 213, 225, 0.9);
198
+ }
199
+ .create-launcher-modal-label {
200
+ display: flex;
201
+ flex-direction: column;
202
+ gap: 8px;
203
+ font-weight: 600;
204
+ font-size: 12px;
205
+ text-transform: uppercase;
206
+ letter-spacing: 0.08em;
207
+ color: rgba(71, 85, 105, 0.9);
208
+ }
209
+ body.dark .create-launcher-modal-label {
210
+ color: rgba(203, 213, 225, 0.75);
211
+ }
212
+ .create-launcher-modal-input {
213
+ padding: 14px 16px;
214
+ border-radius: 14px;
215
+ border: 1px solid rgba(15, 23, 42, 0.12);
216
+ background: rgba(248, 250, 255, 0.65);
217
+ font-size: 15px;
218
+ line-height: 1.4;
219
+ color: var(--light-color, #131313);
220
+ transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
221
+ }
222
+ .create-launcher-modal-input:focus {
223
+ outline: none;
224
+ border-color: var(--light-link-color, #7f5bf3);
225
+ background: rgba(255, 255, 255, 0.82);
226
+ box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.12);
227
+ }
228
+ body.dark .create-launcher-modal-input {
229
+ background: rgba(148, 163, 184, 0.12);
230
+ border: 1px solid rgba(148, 163, 184, 0.28);
231
+ color: rgba(226, 232, 240, 0.96);
232
+ }
233
+ body.dark .create-launcher-modal-input:focus {
234
+ border-color: rgba(127, 91, 243, 0.7);
235
+ background: rgba(76, 86, 106, 0.3);
236
+ box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.2);
237
+ }
238
+ .create-launcher-modal-error {
239
+ min-height: 18px;
240
+ font-size: 12px;
241
+ color: #e53e3e;
242
+ }
243
+ .create-launcher-modal-textarea {
244
+ padding: 16px 18px;
245
+ border-radius: 16px;
246
+ border: 1px solid rgba(15, 23, 42, 0.12);
247
+ min-height: 132px;
248
+ resize: vertical;
249
+ font-size: 15px;
250
+ line-height: 1.55;
251
+ background: rgba(248, 250, 255, 0.68);
252
+ color: var(--light-color, #131313);
253
+ transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
254
+ }
255
+ .create-launcher-modal-textarea:focus {
256
+ outline: none;
257
+ border-color: var(--light-link-color, #7f5bf3);
258
+ background: rgba(255, 255, 255, 0.85);
259
+ box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.12);
260
+ }
261
+ body.dark .create-launcher-modal-textarea {
262
+ background: rgba(148, 163, 184, 0.12);
263
+ border: 1px solid rgba(148, 163, 184, 0.28);
264
+ color: rgba(226, 232, 240, 0.96);
265
+ }
266
+ body.dark .create-launcher-modal-textarea:focus {
267
+ border-color: rgba(127, 91, 243, 0.7);
268
+ background: rgba(76, 86, 106, 0.32);
269
+ box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.2);
270
+ }
271
+ .create-launcher-modal-template {
272
+ display: none;
273
+ flex-direction: column;
274
+ gap: 12px;
275
+ border-radius: 16px;
276
+ padding: 16px 18px;
277
+ background: rgba(248, 250, 255, 0.7);
278
+ border: 1px solid rgba(148, 163, 184, 0.28);
279
+ }
280
+ body.dark .create-launcher-modal-template {
281
+ background: rgba(30, 41, 59, 0.45);
282
+ border-color: rgba(148, 163, 184, 0.32);
283
+ }
284
+ .create-launcher-modal-template-title {
285
+ font-size: 12px;
286
+ text-transform: uppercase;
287
+ font-weight: 700;
288
+ letter-spacing: 0.08em;
289
+ color: rgba(71, 85, 105, 0.85);
290
+ }
291
+ body.dark .create-launcher-modal-template-title {
292
+ color: rgba(226, 232, 240, 0.82);
293
+ }
294
+ .create-launcher-modal-template-description {
295
+ margin: 0;
296
+ font-size: 13px;
297
+ color: rgba(71, 85, 105, 0.75);
298
+ }
299
+ body.dark .create-launcher-modal-template-description {
300
+ color: rgba(203, 213, 225, 0.75);
301
+ }
302
+ .create-launcher-modal-template-fields {
303
+ display: flex;
304
+ flex-direction: column;
305
+ gap: 10px;
306
+ }
307
+ .create-launcher-modal-template-field {
308
+ display: flex;
309
+ flex-direction: column;
310
+ gap: 6px;
311
+ }
312
+ .create-launcher-modal-template-field-label {
313
+ font-size: 12px;
314
+ font-weight: 600;
315
+ text-transform: uppercase;
316
+ letter-spacing: 0.06em;
317
+ color: rgba(71, 85, 105, 0.9);
318
+ }
319
+ body.dark .create-launcher-modal-template-field-label {
320
+ color: rgba(226, 232, 240, 0.86);
321
+ }
322
+ .create-launcher-modal-template-input {
323
+ padding: 12px 14px;
324
+ border-radius: 12px;
325
+ border: 1px solid rgba(148, 163, 184, 0.35);
326
+ background: rgba(255, 255, 255, 0.82);
327
+ font-size: 14px;
328
+ transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
329
+ }
330
+ .create-launcher-modal-template-input:focus {
331
+ outline: none;
332
+ border-color: rgba(127, 91, 243, 0.8);
333
+ box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.18);
334
+ }
335
+ body.dark .create-launcher-modal-template-input {
336
+ background: rgba(17, 24, 39, 0.65);
337
+ border-color: rgba(148, 163, 184, 0.4);
338
+ color: rgba(226, 232, 240, 0.95);
339
+ }
340
+ body.dark .create-launcher-modal-template-input:focus {
341
+ border-color: rgba(148, 163, 184, 0.9);
342
+ box-shadow: 0 0 0 4px rgba(148, 163, 184, 0.22);
343
+ }
344
+ .create-launcher-modal-tools {
345
+ display: flex;
346
+ flex-direction: column;
347
+ gap: 14px;
348
+ font-size: 13px;
349
+ }
350
+ .create-launcher-modal-tools-title {
351
+ font-weight: 600;
352
+ text-transform: uppercase;
353
+ letter-spacing: 0.08em;
354
+ color: rgba(71, 85, 105, 0.8);
355
+ }
356
+ body.dark .create-launcher-modal-tools-title {
357
+ color: rgba(203, 213, 225, 0.7);
358
+ }
359
+ .create-launcher-modal-tools-options {
360
+ display: flex;
361
+ gap: 10px;
362
+ flex-wrap: wrap;
363
+ }
364
+ .create-launcher-modal-tool {
365
+ position: relative;
366
+ display: flex;
367
+ align-items: center;
368
+ gap: 5px;
369
+ padding: 5px 10px;
370
+ border-radius: 5px;
371
+ border: 1px solid rgba(148, 163, 184, 0.24);
372
+ cursor: pointer;
373
+ transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.18s ease;
374
+ background: rgba(255, 255, 255, 0.7);
375
+ }
376
+ .create-launcher-modal-tool:hover {
377
+ transform: translateY(-1px);
378
+ box-shadow: 0 10px 30px rgba(15, 23, 42, 0.14);
379
+ }
380
+ .create-launcher-modal-tool.selected {
381
+ border-color: rgba(127, 91, 243, 0.65);
382
+ background: rgba(127, 91, 243, 0.16);
383
+ box-shadow: 0 12px 32px rgba(127, 91, 243, 0.25);
384
+ }
385
+ .create-launcher-modal-tool:focus-within {
386
+ border-color: rgba(127, 91, 243, 0.6);
387
+ box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.22);
388
+ }
389
+ body.dark .create-launcher-modal-tool {
390
+ border: 1px solid rgba(148, 163, 184, 0.28);
391
+ background: rgba(76, 86, 106, 0.26);
392
+ color: rgba(226, 232, 240, 0.92);
393
+ box-shadow: 0 12px 32px rgba(2, 6, 20, 0.35);
394
+ }
395
+ body.dark .create-launcher-modal-tool:focus-within {
396
+ border-color: rgba(127, 91, 243, 0.7);
397
+ box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.28);
398
+ }
399
+ body.dark .create-launcher-modal-tool:hover {
400
+ box-shadow: 0 14px 40px rgba(2, 6, 20, 0.45);
401
+ }
402
+ body.dark .create-launcher-modal-tool.selected {
403
+ border-color: rgba(127, 91, 243, 0.7);
404
+ background: rgba(127, 91, 243, 0.28);
405
+ box-shadow: 0 14px 40px rgba(5, 9, 25, 0.55);
406
+ }
407
+ .create-launcher-modal-tool input[type="radio"] {
408
+ position: absolute;
409
+ opacity: 0;
410
+ pointer-events: none;
411
+ }
412
+ .create-launcher-modal-tool::before {
413
+ content: '';
414
+ width: 12px;
415
+ height: 12px;
416
+ border-radius: 50%;
417
+ border: 2px solid rgba(71, 85, 105, 0.35);
418
+ background: transparent;
419
+ display: inline-flex;
420
+ align-items: center;
421
+ justify-content: center;
422
+ flex-shrink: 0;
423
+ transition: border-color 0.2s ease, background 0.2s ease;
424
+ }
425
+ .create-launcher-modal-tool.selected::before {
426
+ border-color: rgba(127, 91, 243, 0.9);
427
+ background: rgba(127, 91, 243, 0.9);
428
+ box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.18);
429
+ }
430
+ .create-launcher-modal-tool-label {
431
+ font-weight: 600;
432
+ font-size: 15px;
433
+ color: rgba(15, 23, 42, 0.88);
434
+ }
435
+ body.dark .create-launcher-modal-tool-label {
436
+ color: rgba(226, 232, 240, 0.96);
437
+ }
438
+ .create-launcher-modal-tool-icon {
439
+ width: 28px;
440
+ height: 28px;
441
+ border-radius: 6px;
442
+ object-fit: contain;
443
+ background: rgba(255, 255, 255, 0.9);
444
+ padding: 2px;
445
+ box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
446
+ flex-shrink: 0;
447
+ }
448
+ body.dark .create-launcher-modal-tool-icon {
449
+ background: rgba(30, 41, 59, 0.6);
450
+ box-shadow: 0 4px 14px rgba(2, 6, 20, 0.45);
451
+ }
452
+ .create-launcher-modal-actions {
453
+ display: flex;
454
+ justify-content: flex-end;
455
+ gap: 12px;
456
+ }
457
+ .create-launcher-modal-button {
458
+ padding: 10px 20px;
459
+ border-radius: 999px;
460
+ border: 1px solid transparent;
461
+ cursor: pointer;
462
+ font-size: 15px;
463
+ font-weight: 600;
464
+ transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease;
465
+ }
466
+ .create-launcher-modal-button.cancel {
467
+ background: rgba(148, 163, 184, 0.16);
468
+ color: rgba(15, 23, 42, 0.75);
469
+ }
470
+ .create-launcher-modal-button.cancel:hover {
471
+ background: rgba(148, 163, 184, 0.25);
472
+ box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
473
+ }
474
+ body.dark .create-launcher-modal-button.cancel {
475
+ background: rgba(148, 163, 184, 0.2);
476
+ color: rgba(226, 232, 240, 0.9);
477
+ }
478
+ .create-launcher-modal-button.confirm {
479
+ background: linear-gradient(135deg, rgba(127, 91, 243, 0.95), rgba(84, 63, 196, 0.95));
480
+ color: var(--light-btn-color, #fff);
481
+ box-shadow: 0 16px 36px rgba(111, 76, 242, 0.28);
482
+ }
483
+ .create-launcher-modal-button.confirm:hover {
484
+ box-shadow: 0 20px 40px rgba(111, 76, 242, 0.35);
485
+ transform: translateY(-1px);
486
+ }
487
+ body.dark .create-launcher-modal-button.confirm {
488
+ background: linear-gradient(135deg, rgba(127, 91, 243, 0.9), rgba(88, 63, 199, 0.9));
489
+ color: white;
490
+ }
491
+ .create-launcher-modal-button:active {
492
+ transform: translateY(1px);
493
+ }
494
+ .create-launcher-modal-links {
495
+ display: flex;
496
+ flex-wrap: wrap;
497
+ justify-content: center;
498
+ gap: 12px;
499
+ margin-top: 6px;
500
+ font-size: 13px;
501
+ }
502
+ .create-launcher-modal-advanced {
503
+ display: inline-flex;
504
+ align-items: center;
505
+ gap: 6px;
506
+ text-transform: uppercase;
507
+ letter-spacing: 0.08em;
508
+ font-weight: 600;
509
+ /*
510
+ text-decoration: none;
511
+ */
512
+ color: var(--light-link-color, #7f5bf3);
513
+ transition: color 0.2s ease;
514
+ }
515
+ .create-launcher-modal-advanced:hover {
516
+ color: #6846e3;
517
+ text-decoration: underline;
518
+ }
519
+ .create-launcher-modal-advanced.secondary {
520
+ color: rgba(15, 23, 42, 0.7);
521
+ }
522
+ .create-launcher-modal-advanced.secondary:hover {
523
+ color: rgba(15, 23, 42, 0.95);
524
+ }
525
+ body.dark .create-launcher-modal-advanced {
526
+ color: var(--dark-link-color, #b7a1ff);
527
+ }
528
+ body.dark .create-launcher-modal-advanced.secondary {
529
+ color: rgba(226, 232, 240, 0.8);
530
+ }
531
+ body.dark .create-launcher-modal-advanced.secondary:hover {
532
+ color: rgba(226, 232, 240, 0.98);
533
+ }
534
+ @keyframes createLauncherModalFade {
535
+ from {
536
+ opacity: 0;
537
+ }
538
+ to {
539
+ opacity: 1;
540
+ }
541
+ }
542
+ @keyframes createLauncherModalPop {
543
+ from {
544
+ opacity: 0;
545
+ transform: scale(0.98) translateY(10px);
546
+ }
547
+ to {
548
+ opacity: 1;
549
+ transform: scale(1) translateY(0);
550
+ }
551
+ }
83
552
  .urlbar {
84
553
  flex-grow: 1;
85
554
  margin: 0 20px;
@@ -182,7 +651,7 @@ body.dark .url-modal-input {
182
651
 
183
652
  /* Host categorization styles */
184
653
  .url-dropdown-host-header {
185
- background: royalblue;
654
+ background: rgba(127, 91, 243, 0.9);
186
655
  font-weight: bold;
187
656
  font-size: 18px;
188
657
  color: white;
@@ -193,7 +662,7 @@ body.dark .url-modal-input {
193
662
  }
194
663
 
195
664
  body.dark .url-dropdown-host-header {
196
- background: royalblue;
665
+ background: rgba(127, 91, 243, 0.9);
197
666
  color: white;
198
667
  border-bottom-color: rgba(255, 255, 255, 0.1);
199
668
  }
@@ -256,7 +725,7 @@ body.dark .host-badge {
256
725
  color: white !important;
257
726
  }
258
727
  .peer-network-button {
259
- background: royalblue;
728
+ background: rgba(127, 91, 243, 0.9);
260
729
  color: white;
261
730
  border: none;
262
731
  padding: 4px 10px;