@jonsoc/console-app 1.1.34 → 1.1.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/package.json +5 -1
  2. package/public/robots.txt +5 -5
  3. package/script/generate-sitemap.ts +0 -0
  4. package/src/app.css +1 -1
  5. package/src/asset/brand/opencode-logo-dark.svg +16 -16
  6. package/src/asset/brand/opencode-logo-light.svg +16 -16
  7. package/src/asset/brand/opencode-wordmark-dark.svg +30 -30
  8. package/src/asset/brand/opencode-wordmark-light.svg +30 -30
  9. package/src/asset/brand/opencode-wordmark-simple-dark.svg +22 -22
  10. package/src/asset/brand/opencode-wordmark-simple-light.svg +22 -22
  11. package/src/asset/lander/brand-assets-dark.svg +10 -10
  12. package/src/asset/lander/brand-assets-light.svg +10 -10
  13. package/src/asset/lander/check.svg +3 -3
  14. package/src/asset/lander/copy.svg +3 -3
  15. package/src/asset/lander/logo-dark.svg +11 -11
  16. package/src/asset/lander/logo-light.svg +11 -11
  17. package/src/asset/lander/opencode-logo-dark.svg +11 -11
  18. package/src/asset/lander/opencode-logo-light.svg +11 -11
  19. package/src/asset/lander/opencode-wordmark-dark.svg +25 -25
  20. package/src/asset/lander/opencode-wordmark-light.svg +25 -25
  21. package/src/asset/lander/wordmark-dark.svg +3 -3
  22. package/src/asset/lander/wordmark-light.svg +3 -3
  23. package/src/asset/logo-ornate-dark.svg +18 -18
  24. package/src/asset/logo-ornate-light.svg +18 -18
  25. package/src/asset/logo.svg +18 -18
  26. package/src/asset/zen-ornate-dark.svg +8 -8
  27. package/src/asset/zen-ornate-light.svg +8 -8
  28. package/src/component/dropdown.css +80 -80
  29. package/src/component/header-context-menu.css +63 -63
  30. package/src/component/modal.css +66 -66
  31. package/src/component/spotlight.css +15 -15
  32. package/src/routes/[...404].css +130 -130
  33. package/src/routes/black/workspace.css +214 -214
  34. package/src/routes/black.css +828 -828
  35. package/src/routes/brand/index.css +555 -555
  36. package/src/routes/changelog/index.css +477 -477
  37. package/src/routes/download/index.css +750 -750
  38. package/src/routes/enterprise/index.css +578 -578
  39. package/src/routes/index.css +1251 -1251
  40. package/src/routes/legal/privacy-policy/index.css +343 -343
  41. package/src/routes/legal/terms-of-service/index.css +254 -254
  42. package/src/routes/user-menu.css +18 -18
  43. package/src/routes/workspace/[id]/billing/billing-section.module.css +185 -185
  44. package/src/routes/workspace/[id]/billing/black-section.module.css +142 -142
  45. package/src/routes/workspace/[id]/billing/black-waitlist-section.module.css +23 -23
  46. package/src/routes/workspace/[id]/billing/monthly-limit-section.module.css +96 -96
  47. package/src/routes/workspace/[id]/billing/payment-section.module.css +93 -93
  48. package/src/routes/workspace/[id]/billing/reload-section.module.css +261 -261
  49. package/src/routes/workspace/[id]/graph-section.module.css +145 -145
  50. package/src/routes/workspace/[id]/keys/key-section.module.css +197 -197
  51. package/src/routes/workspace/[id]/members/member-section.module.css +249 -249
  52. package/src/routes/workspace/[id]/members/role-dropdown.css +72 -72
  53. package/src/routes/workspace/[id]/model-section.module.css +173 -173
  54. package/src/routes/workspace/[id]/new-user-section.module.css +143 -143
  55. package/src/routes/workspace/[id]/provider-section.module.css +138 -138
  56. package/src/routes/workspace/[id]/settings/settings-section.module.css +94 -94
  57. package/src/routes/workspace/[id]/usage-section.module.css +185 -185
  58. package/src/routes/workspace/[id].css +308 -308
  59. package/src/routes/workspace-picker.css +74 -74
  60. package/src/routes/workspace.css +107 -107
  61. package/src/routes/zen/index.css +866 -866
  62. package/src/style/base.css +21 -21
  63. package/src/style/component/button.css +102 -102
  64. package/src/style/index.css +8 -8
  65. package/src/style/reset.css +76 -76
  66. package/src/style/token/color.css +91 -91
  67. package/src/style/token/font.css +21 -21
  68. package/src/style/token/space.css +46 -46
  69. package/public/apple-touch-icon-v3.png +0 -1
  70. package/public/apple-touch-icon.png +0 -1
  71. package/public/email +0 -1
  72. package/public/favicon-96x96-v3.png +0 -1
  73. package/public/favicon-96x96.png +0 -1
  74. package/public/favicon-v3.ico +0 -1
  75. package/public/favicon-v3.svg +0 -1
  76. package/public/favicon.ico +0 -1
  77. package/public/favicon.svg +0 -1
  78. package/public/site.webmanifest +0 -1
  79. package/public/social-share-black.png +0 -1
  80. package/public/social-share-zen.png +0 -1
  81. package/public/social-share.png +0 -1
  82. package/public/web-app-manifest-192x192.png +0 -1
  83. package/public/web-app-manifest-512x512.png +0 -1
@@ -1,578 +1,578 @@
1
- ::selection {
2
- background: var(--color-background-interactive);
3
- color: var(--color-text-strong);
4
-
5
- @media (prefers-color-scheme: dark) {
6
- background: var(--color-background-interactive);
7
- color: var(--color-text-inverted);
8
- }
9
- }
10
-
11
- [data-page="enterprise"] {
12
- --color-background: hsl(0, 20%, 99%);
13
- --color-background-weak: hsl(0, 8%, 97%);
14
- --color-background-weak-hover: hsl(0, 8%, 94%);
15
- --color-background-strong: hsl(0, 5%, 12%);
16
- --color-background-strong-hover: hsl(0, 5%, 18%);
17
- --color-background-interactive: hsl(62, 84%, 88%);
18
- --color-background-interactive-weaker: hsl(64, 74%, 95%);
19
-
20
- --color-text: hsl(0, 1%, 39%);
21
- --color-text-weak: hsl(0, 1%, 60%);
22
- --color-text-weaker: hsl(30, 2%, 81%);
23
- --color-text-strong: hsl(0, 5%, 12%);
24
- --color-text-inverted: hsl(0, 20%, 99%);
25
- --color-text-success: hsl(119, 100%, 35%);
26
-
27
- --color-border: hsl(30, 2%, 81%);
28
- --color-border-weak: hsl(0, 1%, 85%);
29
-
30
- --color-icon: hsl(0, 1%, 55%);
31
- --color-success: hsl(142, 76%, 36%);
32
-
33
- background: var(--color-background);
34
- font-family: var(--font-mono);
35
- color: var(--color-text);
36
- padding-bottom: 5rem;
37
-
38
- @media (prefers-color-scheme: dark) {
39
- --color-background: hsl(0, 9%, 7%);
40
- --color-background-weak: hsl(0, 6%, 10%);
41
- --color-background-weak-hover: hsl(0, 6%, 15%);
42
- --color-background-strong: hsl(0, 15%, 94%);
43
- --color-background-strong-hover: hsl(0, 15%, 97%);
44
- --color-background-interactive: hsl(62, 100%, 90%);
45
- --color-background-interactive-weaker: hsl(60, 20%, 8%);
46
-
47
- --color-text: hsl(0, 4%, 71%);
48
- --color-text-weak: hsl(0, 2%, 49%);
49
- --color-text-weaker: hsl(0, 3%, 28%);
50
- --color-text-strong: hsl(0, 15%, 94%);
51
- --color-text-inverted: hsl(0, 9%, 7%);
52
- --color-text-success: hsl(119, 60%, 72%);
53
-
54
- --color-border: hsl(0, 3%, 28%);
55
- --color-border-weak: hsl(0, 4%, 23%);
56
-
57
- --color-icon: hsl(10, 3%, 43%);
58
- --color-success: hsl(142, 76%, 46%);
59
- }
60
-
61
- /* Header and Footer styles - copied from index.css */
62
- [data-component="top"] {
63
- padding: 24px 5rem;
64
- height: 80px;
65
- position: sticky;
66
- top: 0;
67
- display: flex;
68
- justify-content: space-between;
69
- align-items: center;
70
- background: var(--color-background);
71
- border-bottom: 1px solid var(--color-border-weak);
72
- z-index: 10;
73
-
74
- @media (max-width: 60rem) {
75
- padding: 24px 1.5rem;
76
- }
77
-
78
- img {
79
- height: 34px;
80
- width: auto;
81
- }
82
-
83
- [data-component="nav-desktop"] {
84
- ul {
85
- display: flex;
86
- justify-content: space-between;
87
- align-items: center;
88
- gap: 48px;
89
-
90
- @media (max-width: 55rem) {
91
- gap: 32px;
92
- }
93
-
94
- @media (max-width: 48rem) {
95
- gap: 24px;
96
- }
97
- li {
98
- display: inline-block;
99
- a {
100
- text-decoration: none;
101
- span {
102
- color: var(--color-text-weak);
103
- }
104
- }
105
- a:hover {
106
- text-decoration: underline;
107
- text-underline-offset: 2px;
108
- text-decoration-thickness: 1px;
109
- }
110
- [data-slot="cta-button"] {
111
- background: var(--color-background-strong);
112
- color: var(--color-text-inverted);
113
- padding: 8px 16px 8px 10px;
114
- border-radius: 4px;
115
- font-weight: 500;
116
- text-decoration: none;
117
- display: flex;
118
- align-items: center;
119
- gap: 8px;
120
-
121
- @media (max-width: 55rem) {
122
- display: none;
123
- }
124
- }
125
- [data-slot="cta-button"]:hover {
126
- background: var(--color-background-strong-hover);
127
- text-decoration: none;
128
- }
129
- }
130
- }
131
-
132
- @media (max-width: 40rem) {
133
- display: none;
134
- }
135
- }
136
-
137
- [data-component="nav-mobile"] {
138
- button > svg {
139
- color: var(--color-icon);
140
- }
141
- }
142
-
143
- [data-component="nav-mobile-toggle"] {
144
- border: none;
145
- background: none;
146
- outline: none;
147
- height: 40px;
148
- width: 40px;
149
- cursor: pointer;
150
- margin-right: -8px;
151
- }
152
-
153
- [data-component="nav-mobile-toggle"]:hover {
154
- background: var(--color-background-weak);
155
- }
156
-
157
- [data-component="nav-mobile"] {
158
- display: none;
159
-
160
- @media (max-width: 40rem) {
161
- display: block;
162
-
163
- [data-component="nav-mobile-icon"] {
164
- cursor: pointer;
165
- height: 40px;
166
- width: 40px;
167
- display: flex;
168
- align-items: center;
169
- justify-content: center;
170
- }
171
-
172
- [data-component="nav-mobile-menu-list"] {
173
- position: fixed;
174
- background: var(--color-background);
175
- top: 80px;
176
- left: 0;
177
- right: 0;
178
- height: 100vh;
179
-
180
- ul {
181
- list-style: none;
182
- padding: 20px 0;
183
-
184
- li {
185
- a {
186
- text-decoration: none;
187
- padding: 20px;
188
- display: block;
189
-
190
- span {
191
- color: var(--color-text-weak);
192
- }
193
- }
194
-
195
- a:hover {
196
- background: var(--color-background-weak);
197
- }
198
- }
199
- }
200
- }
201
- }
202
- }
203
-
204
- [data-slot="logo dark"] {
205
- display: none;
206
- }
207
-
208
- @media (prefers-color-scheme: dark) {
209
- [data-slot="logo light"] {
210
- display: none;
211
- }
212
- [data-slot="logo dark"] {
213
- display: block;
214
- }
215
- }
216
- }
217
-
218
- [data-component="footer"] {
219
- border-top: 1px solid var(--color-border-weak);
220
- display: flex;
221
- flex-direction: row;
222
-
223
- @media (max-width: 65rem) {
224
- border-bottom: 1px solid var(--color-border-weak);
225
- }
226
-
227
- [data-slot="cell"] {
228
- flex: 1;
229
- text-align: center;
230
-
231
- a {
232
- text-decoration: none;
233
- padding: 2rem 0;
234
- width: 100%;
235
- display: block;
236
-
237
- span {
238
- color: var(--color-text-weak);
239
-
240
- @media (max-width: 40rem) {
241
- display: none;
242
- }
243
- }
244
- }
245
-
246
- a:hover {
247
- background: var(--color-background-weak);
248
- text-decoration: underline;
249
- text-underline-offset: 2px;
250
- text-decoration-thickness: 1px;
251
- }
252
- }
253
-
254
- [data-slot="cell"] + [data-slot="cell"] {
255
- border-left: 1px solid var(--color-border-weak);
256
-
257
- @media (max-width: 40rem) {
258
- border-left: none;
259
- }
260
- }
261
-
262
- /* Mobile: third column on its own row */
263
- @media (max-width: 25rem) {
264
- flex-wrap: wrap;
265
-
266
- [data-slot="cell"] {
267
- flex: 1 0 100%;
268
- border-left: none;
269
- border-top: 1px solid var(--color-border-weak);
270
- }
271
-
272
- [data-slot="cell"]:nth-child(1) {
273
- border-top: none;
274
- }
275
- }
276
- }
277
-
278
- [data-component="container"] {
279
- max-width: 67.5rem;
280
- margin: 0 auto;
281
- border: 1px solid var(--color-border-weak);
282
- border-top: none;
283
-
284
- @media (max-width: 65rem) {
285
- border: none;
286
- }
287
- }
288
-
289
- [data-component="content"] {
290
- }
291
-
292
- [data-component="enterprise-content"] {
293
- padding: 4rem 0;
294
-
295
- @media (max-width: 60rem) {
296
- padding: 2rem 0;
297
- }
298
- }
299
-
300
- [data-component="enterprise-columns"] {
301
- display: grid;
302
- grid-template-columns: 1fr 1fr;
303
- gap: 4rem;
304
- padding: 4rem 5rem;
305
-
306
- @media (max-width: 80rem) {
307
- gap: 3rem;
308
- }
309
-
310
- @media (max-width: 60rem) {
311
- grid-template-columns: 1fr;
312
- gap: 3rem;
313
- padding: 2rem 1.5rem;
314
- }
315
- }
316
-
317
- [data-component="enterprise-column-1"] {
318
- h1 {
319
- font-size: 1.5rem;
320
- font-weight: 700;
321
- color: var(--color-text-strong);
322
- margin-bottom: 1rem;
323
- }
324
-
325
- h3 {
326
- font-size: 1.25rem;
327
- font-weight: 500;
328
- color: var(--color-text-strong);
329
- margin: 2rem 0 1rem 0;
330
- }
331
-
332
- p {
333
- line-height: 1.6;
334
- margin-bottom: 1.5rem;
335
- color: var(--color-text);
336
- }
337
-
338
- [data-component="testimonial"] {
339
- margin-top: 4rem;
340
- font-weight: 500;
341
- color: var(--color-text-strong);
342
-
343
- [data-component="quotation"] {
344
- svg {
345
- margin-bottom: 1rem;
346
- opacity: 20%;
347
- }
348
- }
349
-
350
- [data-component="testimonial-logo"] {
351
- svg {
352
- margin-top: 1.5rem;
353
- }
354
- }
355
- }
356
- }
357
-
358
- [data-component="enterprise-column-2"] {
359
- [data-component="enterprise-form"] {
360
- padding: 0;
361
-
362
- h2 {
363
- font-size: 1.5rem;
364
- font-weight: 500;
365
- color: var(--color-text-strong);
366
- margin-bottom: 1.5rem;
367
- }
368
-
369
- [data-component="form-group"] {
370
- margin-bottom: 1.5rem;
371
-
372
- label {
373
- display: block;
374
- font-weight: 500;
375
- color: var(--color-text-weak);
376
- margin-bottom: 0.5rem;
377
- font-size: 0.875rem;
378
- }
379
-
380
- input:-webkit-autofill,
381
- input:-webkit-autofill:hover,
382
- input:-webkit-autofill:focus,
383
- input:-webkit-autofill:active {
384
- transition: background-color 5000000s ease-in-out 0s;
385
- }
386
-
387
- input:-webkit-autofill {
388
- -webkit-text-fill-color: var(--color-text-strong) !important;
389
- }
390
-
391
- input:-moz-autofill {
392
- -moz-text-fill-color: var(--color-text-strong) !important;
393
- }
394
-
395
- input,
396
- textarea {
397
- width: 100%;
398
- padding: 0.75rem;
399
- border: 1px solid var(--color-border-weak);
400
- border-radius: 4px;
401
- background: var(--color-background-weak);
402
- color: var(--color-text-strong);
403
- font-family: inherit;
404
-
405
- &::placeholder {
406
- color: var(--color-text-weak);
407
- }
408
-
409
- &:focus {
410
- background: var(--color-background-interactive-weaker);
411
- outline: none;
412
- border: none;
413
- color: var(--color-text-strong);
414
- border: 1px solid var(--color-background-strong);
415
- box-shadow: 0 0 0 3px var(--color-background-interactive);
416
-
417
- @media (prefers-color-scheme: dark) {
418
- box-shadow: none;
419
- border: 1px solid var(--color-background-interactive);
420
- }
421
- }
422
- }
423
-
424
- textarea {
425
- resize: vertical;
426
- min-height: 120px;
427
- }
428
- }
429
-
430
- [data-component="submit-button"] {
431
- padding: 0.5rem 1.5rem;
432
- background: var(--color-background-strong);
433
- color: var(--color-text-inverted);
434
- border: none;
435
- border-radius: 4px;
436
- font-weight: 500;
437
- cursor: pointer;
438
- transition: background-color 0.2s ease;
439
-
440
- &:hover:not(:disabled) {
441
- background: var(--color-background-strong-hover);
442
- }
443
-
444
- &:disabled {
445
- opacity: 0.6;
446
- cursor: not-allowed;
447
- }
448
- }
449
-
450
- [data-component="success-message"] {
451
- margin-top: 1rem;
452
- padding: 1rem 0;
453
- color: var(--color-text-success);
454
- text-align: left;
455
- }
456
- }
457
- }
458
-
459
- [data-component="faq"] {
460
- border-top: 1px solid var(--color-border-weak);
461
- padding: 4rem 5rem;
462
-
463
- @media (max-width: 60rem) {
464
- padding: 2rem 1.5rem;
465
- }
466
-
467
- [data-slot="section-title"] {
468
- margin-bottom: 24px;
469
-
470
- h3 {
471
- font-size: 16px;
472
- font-weight: 700;
473
- color: var(--color-text-strong);
474
- margin-bottom: 12px;
475
- }
476
-
477
- p {
478
- margin-bottom: 12px;
479
- color: var(--color-text);
480
- }
481
- }
482
-
483
- ul {
484
- padding: 0;
485
-
486
- li {
487
- list-style: none;
488
- margin-bottom: 24px;
489
- line-height: 200%;
490
-
491
- @media (max-width: 60rem) {
492
- line-height: 180%;
493
- }
494
- }
495
- }
496
-
497
- [data-slot="faq-question"] {
498
- display: flex;
499
- gap: 16px;
500
- margin-bottom: 8px;
501
- color: var(--color-text-strong);
502
- font-weight: 500;
503
- cursor: pointer;
504
- background: none;
505
- border: none;
506
- padding: 0;
507
-
508
- [data-slot="faq-icon-plus"] {
509
- flex-shrink: 0;
510
- color: var(--color-text-weak);
511
- margin-top: 2px;
512
-
513
- [data-closed] & {
514
- display: block;
515
- }
516
- [data-expanded] & {
517
- display: none;
518
- }
519
- }
520
- [data-slot="faq-icon-minus"] {
521
- flex-shrink: 0;
522
- color: var(--color-text-weak);
523
- margin-top: 2px;
524
-
525
- [data-closed] & {
526
- display: none;
527
- }
528
- [data-expanded] & {
529
- display: block;
530
- }
531
- }
532
- [data-slot="faq-question-text"] {
533
- flex-grow: 1;
534
- text-align: left;
535
- }
536
- }
537
-
538
- [data-slot="faq-answer"] {
539
- margin-left: 40px;
540
- margin-bottom: 32px;
541
- color: var(--color-text);
542
- }
543
- }
544
-
545
- [data-component="legal"] {
546
- color: var(--color-text-weak);
547
- text-align: center;
548
- padding: 2rem 5rem;
549
- display: flex;
550
- gap: 32px;
551
- justify-content: center;
552
-
553
- @media (max-width: 60rem) {
554
- padding: 2rem 1.5rem;
555
- }
556
-
557
- a {
558
- color: var(--color-text-weak);
559
- text-decoration: none;
560
- }
561
-
562
- a:hover {
563
- color: var(--color-text);
564
- text-decoration: underline;
565
- }
566
- }
567
-
568
- a {
569
- color: var(--color-text-strong);
570
- text-decoration: underline;
571
- text-underline-offset: 2px;
572
- text-decoration-thickness: 1px;
573
-
574
- &:hover {
575
- text-decoration-thickness: 2px;
576
- }
577
- }
578
- }
1
+ ::selection {
2
+ background: var(--color-background-interactive);
3
+ color: var(--color-text-strong);
4
+
5
+ @media (prefers-color-scheme: dark) {
6
+ background: var(--color-background-interactive);
7
+ color: var(--color-text-inverted);
8
+ }
9
+ }
10
+
11
+ [data-page="enterprise"] {
12
+ --color-background: hsl(0, 20%, 99%);
13
+ --color-background-weak: hsl(0, 8%, 97%);
14
+ --color-background-weak-hover: hsl(0, 8%, 94%);
15
+ --color-background-strong: hsl(0, 5%, 12%);
16
+ --color-background-strong-hover: hsl(0, 5%, 18%);
17
+ --color-background-interactive: hsl(62, 84%, 88%);
18
+ --color-background-interactive-weaker: hsl(64, 74%, 95%);
19
+
20
+ --color-text: hsl(0, 1%, 39%);
21
+ --color-text-weak: hsl(0, 1%, 60%);
22
+ --color-text-weaker: hsl(30, 2%, 81%);
23
+ --color-text-strong: hsl(0, 5%, 12%);
24
+ --color-text-inverted: hsl(0, 20%, 99%);
25
+ --color-text-success: hsl(119, 100%, 35%);
26
+
27
+ --color-border: hsl(30, 2%, 81%);
28
+ --color-border-weak: hsl(0, 1%, 85%);
29
+
30
+ --color-icon: hsl(0, 1%, 55%);
31
+ --color-success: hsl(142, 76%, 36%);
32
+
33
+ background: var(--color-background);
34
+ font-family: var(--font-mono);
35
+ color: var(--color-text);
36
+ padding-bottom: 5rem;
37
+
38
+ @media (prefers-color-scheme: dark) {
39
+ --color-background: hsl(0, 9%, 7%);
40
+ --color-background-weak: hsl(0, 6%, 10%);
41
+ --color-background-weak-hover: hsl(0, 6%, 15%);
42
+ --color-background-strong: hsl(0, 15%, 94%);
43
+ --color-background-strong-hover: hsl(0, 15%, 97%);
44
+ --color-background-interactive: hsl(62, 100%, 90%);
45
+ --color-background-interactive-weaker: hsl(60, 20%, 8%);
46
+
47
+ --color-text: hsl(0, 4%, 71%);
48
+ --color-text-weak: hsl(0, 2%, 49%);
49
+ --color-text-weaker: hsl(0, 3%, 28%);
50
+ --color-text-strong: hsl(0, 15%, 94%);
51
+ --color-text-inverted: hsl(0, 9%, 7%);
52
+ --color-text-success: hsl(119, 60%, 72%);
53
+
54
+ --color-border: hsl(0, 3%, 28%);
55
+ --color-border-weak: hsl(0, 4%, 23%);
56
+
57
+ --color-icon: hsl(10, 3%, 43%);
58
+ --color-success: hsl(142, 76%, 46%);
59
+ }
60
+
61
+ /* Header and Footer styles - copied from index.css */
62
+ [data-component="top"] {
63
+ padding: 24px 5rem;
64
+ height: 80px;
65
+ position: sticky;
66
+ top: 0;
67
+ display: flex;
68
+ justify-content: space-between;
69
+ align-items: center;
70
+ background: var(--color-background);
71
+ border-bottom: 1px solid var(--color-border-weak);
72
+ z-index: 10;
73
+
74
+ @media (max-width: 60rem) {
75
+ padding: 24px 1.5rem;
76
+ }
77
+
78
+ img {
79
+ height: 34px;
80
+ width: auto;
81
+ }
82
+
83
+ [data-component="nav-desktop"] {
84
+ ul {
85
+ display: flex;
86
+ justify-content: space-between;
87
+ align-items: center;
88
+ gap: 48px;
89
+
90
+ @media (max-width: 55rem) {
91
+ gap: 32px;
92
+ }
93
+
94
+ @media (max-width: 48rem) {
95
+ gap: 24px;
96
+ }
97
+ li {
98
+ display: inline-block;
99
+ a {
100
+ text-decoration: none;
101
+ span {
102
+ color: var(--color-text-weak);
103
+ }
104
+ }
105
+ a:hover {
106
+ text-decoration: underline;
107
+ text-underline-offset: 2px;
108
+ text-decoration-thickness: 1px;
109
+ }
110
+ [data-slot="cta-button"] {
111
+ background: var(--color-background-strong);
112
+ color: var(--color-text-inverted);
113
+ padding: 8px 16px 8px 10px;
114
+ border-radius: 4px;
115
+ font-weight: 500;
116
+ text-decoration: none;
117
+ display: flex;
118
+ align-items: center;
119
+ gap: 8px;
120
+
121
+ @media (max-width: 55rem) {
122
+ display: none;
123
+ }
124
+ }
125
+ [data-slot="cta-button"]:hover {
126
+ background: var(--color-background-strong-hover);
127
+ text-decoration: none;
128
+ }
129
+ }
130
+ }
131
+
132
+ @media (max-width: 40rem) {
133
+ display: none;
134
+ }
135
+ }
136
+
137
+ [data-component="nav-mobile"] {
138
+ button > svg {
139
+ color: var(--color-icon);
140
+ }
141
+ }
142
+
143
+ [data-component="nav-mobile-toggle"] {
144
+ border: none;
145
+ background: none;
146
+ outline: none;
147
+ height: 40px;
148
+ width: 40px;
149
+ cursor: pointer;
150
+ margin-right: -8px;
151
+ }
152
+
153
+ [data-component="nav-mobile-toggle"]:hover {
154
+ background: var(--color-background-weak);
155
+ }
156
+
157
+ [data-component="nav-mobile"] {
158
+ display: none;
159
+
160
+ @media (max-width: 40rem) {
161
+ display: block;
162
+
163
+ [data-component="nav-mobile-icon"] {
164
+ cursor: pointer;
165
+ height: 40px;
166
+ width: 40px;
167
+ display: flex;
168
+ align-items: center;
169
+ justify-content: center;
170
+ }
171
+
172
+ [data-component="nav-mobile-menu-list"] {
173
+ position: fixed;
174
+ background: var(--color-background);
175
+ top: 80px;
176
+ left: 0;
177
+ right: 0;
178
+ height: 100vh;
179
+
180
+ ul {
181
+ list-style: none;
182
+ padding: 20px 0;
183
+
184
+ li {
185
+ a {
186
+ text-decoration: none;
187
+ padding: 20px;
188
+ display: block;
189
+
190
+ span {
191
+ color: var(--color-text-weak);
192
+ }
193
+ }
194
+
195
+ a:hover {
196
+ background: var(--color-background-weak);
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+
204
+ [data-slot="logo dark"] {
205
+ display: none;
206
+ }
207
+
208
+ @media (prefers-color-scheme: dark) {
209
+ [data-slot="logo light"] {
210
+ display: none;
211
+ }
212
+ [data-slot="logo dark"] {
213
+ display: block;
214
+ }
215
+ }
216
+ }
217
+
218
+ [data-component="footer"] {
219
+ border-top: 1px solid var(--color-border-weak);
220
+ display: flex;
221
+ flex-direction: row;
222
+
223
+ @media (max-width: 65rem) {
224
+ border-bottom: 1px solid var(--color-border-weak);
225
+ }
226
+
227
+ [data-slot="cell"] {
228
+ flex: 1;
229
+ text-align: center;
230
+
231
+ a {
232
+ text-decoration: none;
233
+ padding: 2rem 0;
234
+ width: 100%;
235
+ display: block;
236
+
237
+ span {
238
+ color: var(--color-text-weak);
239
+
240
+ @media (max-width: 40rem) {
241
+ display: none;
242
+ }
243
+ }
244
+ }
245
+
246
+ a:hover {
247
+ background: var(--color-background-weak);
248
+ text-decoration: underline;
249
+ text-underline-offset: 2px;
250
+ text-decoration-thickness: 1px;
251
+ }
252
+ }
253
+
254
+ [data-slot="cell"] + [data-slot="cell"] {
255
+ border-left: 1px solid var(--color-border-weak);
256
+
257
+ @media (max-width: 40rem) {
258
+ border-left: none;
259
+ }
260
+ }
261
+
262
+ /* Mobile: third column on its own row */
263
+ @media (max-width: 25rem) {
264
+ flex-wrap: wrap;
265
+
266
+ [data-slot="cell"] {
267
+ flex: 1 0 100%;
268
+ border-left: none;
269
+ border-top: 1px solid var(--color-border-weak);
270
+ }
271
+
272
+ [data-slot="cell"]:nth-child(1) {
273
+ border-top: none;
274
+ }
275
+ }
276
+ }
277
+
278
+ [data-component="container"] {
279
+ max-width: 67.5rem;
280
+ margin: 0 auto;
281
+ border: 1px solid var(--color-border-weak);
282
+ border-top: none;
283
+
284
+ @media (max-width: 65rem) {
285
+ border: none;
286
+ }
287
+ }
288
+
289
+ [data-component="content"] {
290
+ }
291
+
292
+ [data-component="enterprise-content"] {
293
+ padding: 4rem 0;
294
+
295
+ @media (max-width: 60rem) {
296
+ padding: 2rem 0;
297
+ }
298
+ }
299
+
300
+ [data-component="enterprise-columns"] {
301
+ display: grid;
302
+ grid-template-columns: 1fr 1fr;
303
+ gap: 4rem;
304
+ padding: 4rem 5rem;
305
+
306
+ @media (max-width: 80rem) {
307
+ gap: 3rem;
308
+ }
309
+
310
+ @media (max-width: 60rem) {
311
+ grid-template-columns: 1fr;
312
+ gap: 3rem;
313
+ padding: 2rem 1.5rem;
314
+ }
315
+ }
316
+
317
+ [data-component="enterprise-column-1"] {
318
+ h1 {
319
+ font-size: 1.5rem;
320
+ font-weight: 700;
321
+ color: var(--color-text-strong);
322
+ margin-bottom: 1rem;
323
+ }
324
+
325
+ h3 {
326
+ font-size: 1.25rem;
327
+ font-weight: 500;
328
+ color: var(--color-text-strong);
329
+ margin: 2rem 0 1rem 0;
330
+ }
331
+
332
+ p {
333
+ line-height: 1.6;
334
+ margin-bottom: 1.5rem;
335
+ color: var(--color-text);
336
+ }
337
+
338
+ [data-component="testimonial"] {
339
+ margin-top: 4rem;
340
+ font-weight: 500;
341
+ color: var(--color-text-strong);
342
+
343
+ [data-component="quotation"] {
344
+ svg {
345
+ margin-bottom: 1rem;
346
+ opacity: 20%;
347
+ }
348
+ }
349
+
350
+ [data-component="testimonial-logo"] {
351
+ svg {
352
+ margin-top: 1.5rem;
353
+ }
354
+ }
355
+ }
356
+ }
357
+
358
+ [data-component="enterprise-column-2"] {
359
+ [data-component="enterprise-form"] {
360
+ padding: 0;
361
+
362
+ h2 {
363
+ font-size: 1.5rem;
364
+ font-weight: 500;
365
+ color: var(--color-text-strong);
366
+ margin-bottom: 1.5rem;
367
+ }
368
+
369
+ [data-component="form-group"] {
370
+ margin-bottom: 1.5rem;
371
+
372
+ label {
373
+ display: block;
374
+ font-weight: 500;
375
+ color: var(--color-text-weak);
376
+ margin-bottom: 0.5rem;
377
+ font-size: 0.875rem;
378
+ }
379
+
380
+ input:-webkit-autofill,
381
+ input:-webkit-autofill:hover,
382
+ input:-webkit-autofill:focus,
383
+ input:-webkit-autofill:active {
384
+ transition: background-color 5000000s ease-in-out 0s;
385
+ }
386
+
387
+ input:-webkit-autofill {
388
+ -webkit-text-fill-color: var(--color-text-strong) !important;
389
+ }
390
+
391
+ input:-moz-autofill {
392
+ -moz-text-fill-color: var(--color-text-strong) !important;
393
+ }
394
+
395
+ input,
396
+ textarea {
397
+ width: 100%;
398
+ padding: 0.75rem;
399
+ border: 1px solid var(--color-border-weak);
400
+ border-radius: 4px;
401
+ background: var(--color-background-weak);
402
+ color: var(--color-text-strong);
403
+ font-family: inherit;
404
+
405
+ &::placeholder {
406
+ color: var(--color-text-weak);
407
+ }
408
+
409
+ &:focus {
410
+ background: var(--color-background-interactive-weaker);
411
+ outline: none;
412
+ border: none;
413
+ color: var(--color-text-strong);
414
+ border: 1px solid var(--color-background-strong);
415
+ box-shadow: 0 0 0 3px var(--color-background-interactive);
416
+
417
+ @media (prefers-color-scheme: dark) {
418
+ box-shadow: none;
419
+ border: 1px solid var(--color-background-interactive);
420
+ }
421
+ }
422
+ }
423
+
424
+ textarea {
425
+ resize: vertical;
426
+ min-height: 120px;
427
+ }
428
+ }
429
+
430
+ [data-component="submit-button"] {
431
+ padding: 0.5rem 1.5rem;
432
+ background: var(--color-background-strong);
433
+ color: var(--color-text-inverted);
434
+ border: none;
435
+ border-radius: 4px;
436
+ font-weight: 500;
437
+ cursor: pointer;
438
+ transition: background-color 0.2s ease;
439
+
440
+ &:hover:not(:disabled) {
441
+ background: var(--color-background-strong-hover);
442
+ }
443
+
444
+ &:disabled {
445
+ opacity: 0.6;
446
+ cursor: not-allowed;
447
+ }
448
+ }
449
+
450
+ [data-component="success-message"] {
451
+ margin-top: 1rem;
452
+ padding: 1rem 0;
453
+ color: var(--color-text-success);
454
+ text-align: left;
455
+ }
456
+ }
457
+ }
458
+
459
+ [data-component="faq"] {
460
+ border-top: 1px solid var(--color-border-weak);
461
+ padding: 4rem 5rem;
462
+
463
+ @media (max-width: 60rem) {
464
+ padding: 2rem 1.5rem;
465
+ }
466
+
467
+ [data-slot="section-title"] {
468
+ margin-bottom: 24px;
469
+
470
+ h3 {
471
+ font-size: 16px;
472
+ font-weight: 700;
473
+ color: var(--color-text-strong);
474
+ margin-bottom: 12px;
475
+ }
476
+
477
+ p {
478
+ margin-bottom: 12px;
479
+ color: var(--color-text);
480
+ }
481
+ }
482
+
483
+ ul {
484
+ padding: 0;
485
+
486
+ li {
487
+ list-style: none;
488
+ margin-bottom: 24px;
489
+ line-height: 200%;
490
+
491
+ @media (max-width: 60rem) {
492
+ line-height: 180%;
493
+ }
494
+ }
495
+ }
496
+
497
+ [data-slot="faq-question"] {
498
+ display: flex;
499
+ gap: 16px;
500
+ margin-bottom: 8px;
501
+ color: var(--color-text-strong);
502
+ font-weight: 500;
503
+ cursor: pointer;
504
+ background: none;
505
+ border: none;
506
+ padding: 0;
507
+
508
+ [data-slot="faq-icon-plus"] {
509
+ flex-shrink: 0;
510
+ color: var(--color-text-weak);
511
+ margin-top: 2px;
512
+
513
+ [data-closed] & {
514
+ display: block;
515
+ }
516
+ [data-expanded] & {
517
+ display: none;
518
+ }
519
+ }
520
+ [data-slot="faq-icon-minus"] {
521
+ flex-shrink: 0;
522
+ color: var(--color-text-weak);
523
+ margin-top: 2px;
524
+
525
+ [data-closed] & {
526
+ display: none;
527
+ }
528
+ [data-expanded] & {
529
+ display: block;
530
+ }
531
+ }
532
+ [data-slot="faq-question-text"] {
533
+ flex-grow: 1;
534
+ text-align: left;
535
+ }
536
+ }
537
+
538
+ [data-slot="faq-answer"] {
539
+ margin-left: 40px;
540
+ margin-bottom: 32px;
541
+ color: var(--color-text);
542
+ }
543
+ }
544
+
545
+ [data-component="legal"] {
546
+ color: var(--color-text-weak);
547
+ text-align: center;
548
+ padding: 2rem 5rem;
549
+ display: flex;
550
+ gap: 32px;
551
+ justify-content: center;
552
+
553
+ @media (max-width: 60rem) {
554
+ padding: 2rem 1.5rem;
555
+ }
556
+
557
+ a {
558
+ color: var(--color-text-weak);
559
+ text-decoration: none;
560
+ }
561
+
562
+ a:hover {
563
+ color: var(--color-text);
564
+ text-decoration: underline;
565
+ }
566
+ }
567
+
568
+ a {
569
+ color: var(--color-text-strong);
570
+ text-decoration: underline;
571
+ text-underline-offset: 2px;
572
+ text-decoration-thickness: 1px;
573
+
574
+ &:hover {
575
+ text-decoration-thickness: 2px;
576
+ }
577
+ }
578
+ }