@vantagecompute/docusaurus-theme 0.1.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.
@@ -0,0 +1,1858 @@
1
+ /**
2
+ * Vantage Documentation - design system
3
+ *
4
+ * Implements the Vantage AI Workbench design (iris + ink palette, Inter
5
+ * display + body, JetBrains Mono code, right-rail TOC, callout/table/step
6
+ * treatments) on top of Docusaurus' classic theme.
7
+ */
8
+
9
+ /* ── Fonts ─────────────────────────────────────────────────────────── */
10
+ @import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
11
+
12
+ @font-face {
13
+ font-family: 'Satoshi';
14
+ src: url('/fonts/Satoshi-Regular.woff') format('woff');
15
+ font-weight: 400;
16
+ font-style: normal;
17
+ font-display: swap;
18
+ }
19
+ @font-face {
20
+ font-family: 'Satoshi';
21
+ src: url('/fonts/Satoshi-Italic.woff') format('woff');
22
+ font-weight: 400;
23
+ font-style: italic;
24
+ font-display: swap;
25
+ }
26
+ @font-face {
27
+ font-family: 'Satoshi';
28
+ src: url('/fonts/Satoshi-Medium.woff') format('woff');
29
+ font-weight: 500;
30
+ font-style: normal;
31
+ font-display: swap;
32
+ }
33
+ @font-face {
34
+ font-family: 'Satoshi';
35
+ src: url('/fonts/Satoshi-MediumItalic.woff') format('woff');
36
+ font-weight: 500;
37
+ font-style: italic;
38
+ font-display: swap;
39
+ }
40
+ @font-face {
41
+ font-family: 'Satoshi';
42
+ src: url('/fonts/Satoshi-Bold.woff') format('woff');
43
+ font-weight: 700;
44
+ font-style: normal;
45
+ font-display: swap;
46
+ }
47
+ @font-face {
48
+ font-family: 'Satoshi';
49
+ src: url('/fonts/Satoshi-BoldItalic.woff') format('woff');
50
+ font-weight: 700;
51
+ font-style: italic;
52
+ font-display: swap;
53
+ }
54
+
55
+ /* ── Design tokens ─────────────────────────────────────────────────── */
56
+ :root {
57
+ /* Ink - neutral palette (slate-blue) */
58
+ --ink-900: #0b1020;
59
+ --ink-700: #1f2547;
60
+ --ink-500: #4a5375;
61
+ --ink-400: #6b7494;
62
+ --ink-300: #9aa1bd;
63
+ --ink-200: #c8cce0;
64
+ --ink-100: #e6e8f2;
65
+ --ink-50: #f4f5fb;
66
+ --paper: #fbfbfd;
67
+
68
+ /* Iris - primary accent */
69
+ --iris-900: #312e81;
70
+ --iris-700: #4338ca;
71
+ --iris-600: #5046e5;
72
+ --iris-500: #6366f1;
73
+ --iris-200: #c7d2fe;
74
+ --iris-100: #e0e2fb;
75
+ --iris-50: #eef0fe;
76
+
77
+ /* Status */
78
+ --green-700: #15803d;
79
+ --green-600: #15803d;
80
+ --green-500: #22c55e;
81
+ --green-50: #f0fdf4;
82
+ --amber-600: #b45309;
83
+ --amber-500: #f59e0b;
84
+ --amber-50: #fffbeb;
85
+ --rose-600: #be123c;
86
+ --rose-500: #f43f5e;
87
+ --rose-50: #fff1f2;
88
+ --violet-600: #7c3aed;
89
+ --violet-50: #faf5ff;
90
+
91
+ /* Shadows */
92
+ --shadow-card: 0 1px 0 rgba(15, 23, 42, 0.04), 0 1px 3px -1px rgba(15, 23, 42, 0.06);
93
+ --shadow-pop: 0 8px 24px -8px rgba(15, 23, 42, 0.18), 0 2px 6px -2px rgba(15, 23, 42, 0.08);
94
+
95
+ /* Legacy brand vars kept for backwards compat */
96
+ --vantage-purple: var(--iris-700);
97
+ --vantage-purple-dark: var(--iris-900);
98
+ --vantage-button: var(--iris-500);
99
+
100
+ /* Infima - primary mapped to iris */
101
+ --ifm-color-primary: #5046e5;
102
+ --ifm-color-primary-dark: #4338ca;
103
+ --ifm-color-primary-darker: #3f33c0;
104
+ --ifm-color-primary-darkest: #312e81;
105
+ --ifm-color-primary-light: #6366f1;
106
+ --ifm-color-primary-lighter: #818cf8;
107
+ --ifm-color-primary-lightest: #a5b4fc;
108
+
109
+ /* Infima - typography */
110
+ --ifm-font-family-base: 'Satoshi', 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
111
+ --ifm-font-family-monospace: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
112
+ --ifm-heading-font-family: var(--ifm-font-family-base);
113
+ --ifm-font-size-base: 15px;
114
+ --ifm-line-height-base: 1.65;
115
+ --ifm-heading-color: var(--ink-900);
116
+ --ifm-font-color-base: var(--ink-700);
117
+ --ifm-font-color-secondary: var(--ink-500);
118
+
119
+ /* Infima - surfaces */
120
+ --ifm-background-color: var(--paper);
121
+ --ifm-background-surface-color: #ffffff;
122
+ --ifm-color-emphasis-100: var(--ink-50);
123
+ --ifm-color-emphasis-200: var(--ink-100);
124
+ --ifm-color-emphasis-300: var(--ink-200);
125
+ --ifm-color-emphasis-600: var(--ink-500);
126
+ --ifm-color-emphasis-700: var(--ink-700);
127
+ --ifm-color-emphasis-800: var(--ink-700);
128
+ --ifm-color-emphasis-900: var(--ink-900);
129
+ --ifm-toc-border-color: var(--ink-100);
130
+ --ifm-hr-background-color: var(--ink-100);
131
+
132
+ /* Infima - code */
133
+ --ifm-code-background: var(--ink-50);
134
+ --ifm-code-padding-vertical: 1px;
135
+ --ifm-code-padding-horizontal: 5px;
136
+ --ifm-code-border-radius: 4px;
137
+ --ifm-code-font-size: 88%;
138
+ --ifm-pre-background: var(--ink-900);
139
+ --ifm-pre-color: #d4d8e9;
140
+
141
+ /* Infima - links */
142
+ --ifm-link-color: var(--iris-700);
143
+ --ifm-link-hover-color: var(--iris-600);
144
+ --ifm-link-decoration: none;
145
+
146
+ /* Infima - menu / sidebar */
147
+ --ifm-menu-color: var(--ink-500);
148
+ --ifm-menu-color-active: var(--iris-700);
149
+ --ifm-menu-color-background-active: var(--iris-50);
150
+ --ifm-menu-color-background-hover: var(--ink-50);
151
+
152
+ /* Infima - TOC right rail */
153
+ --ifm-toc-link-color: var(--ink-500);
154
+
155
+ /* Infima - admonitions */
156
+ --ifm-alert-border-radius: 8px;
157
+ --ifm-alert-border-width: 1px;
158
+ --ifm-alert-padding-vertical: 14px;
159
+ --ifm-alert-padding-horizontal: 16px;
160
+
161
+ --docusaurus-highlighted-code-line-bg: rgba(99, 102, 241, 0.12);
162
+ }
163
+
164
+ /* ── Dark theme ────────────────────────────────────────────────────── */
165
+ [data-theme='dark'] {
166
+ --paper: #0b1020;
167
+ --ink-900: #f4f5fb;
168
+ --ink-700: #d4d8e9;
169
+ --ink-500: #9aa1bd;
170
+ --ink-400: #6b7494;
171
+ --ink-300: #4a5375;
172
+ --ink-200: #2a3157;
173
+ --ink-100: #1f2547;
174
+ --ink-50: #161a36;
175
+
176
+ --iris-700: #818cf8;
177
+ --iris-600: #6366f1;
178
+ --iris-500: #818cf8;
179
+ --iris-100: rgba(129, 140, 248, 0.15);
180
+ --iris-50: rgba(129, 140, 248, 0.10);
181
+
182
+ --vantage-purple: var(--iris-700);
183
+ --vantage-purple-dark: var(--iris-900);
184
+ --vantage-button: var(--iris-500);
185
+
186
+ --ifm-color-primary: #818cf8;
187
+ --ifm-color-primary-dark: #6366f1;
188
+ --ifm-color-primary-darker: #5046e5;
189
+ --ifm-color-primary-darkest: #4338ca;
190
+ --ifm-color-primary-light: #a5b4fc;
191
+ --ifm-color-primary-lighter: #c7d2fe;
192
+ --ifm-color-primary-lightest: #e0e2fb;
193
+
194
+ --ifm-background-color: var(--paper);
195
+ --ifm-background-surface-color: #161a36;
196
+ --ifm-heading-color: var(--ink-900);
197
+ --ifm-font-color-base: var(--ink-700);
198
+
199
+ --ifm-toc-border-color: var(--ink-100);
200
+ --ifm-hr-background-color: var(--ink-100);
201
+ --ifm-code-background: var(--ink-100);
202
+ --ifm-pre-background: #060919;
203
+
204
+ --ifm-link-color: #a5b4fc;
205
+ --ifm-link-hover-color: #c7d2fe;
206
+
207
+ --ifm-menu-color: var(--ink-500);
208
+ --ifm-menu-color-active: #c7d2fe;
209
+ --ifm-menu-color-background-active: var(--iris-50);
210
+ --ifm-menu-color-background-hover: var(--ink-50);
211
+
212
+ --docusaurus-highlighted-code-line-bg: rgba(129, 140, 248, 0.18);
213
+ }
214
+
215
+ /* ── Body ──────────────────────────────────────────────────────────── */
216
+ html {
217
+ font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
218
+ -webkit-font-smoothing: antialiased;
219
+ -moz-osx-font-smoothing: grayscale;
220
+ }
221
+
222
+ body {
223
+ font-family: var(--ifm-font-family-base);
224
+ background: var(--ifm-background-color);
225
+ color: var(--ifm-font-color-base);
226
+ }
227
+
228
+ /* ── Typography ────────────────────────────────────────────────────── */
229
+ .markdown h1:first-child,
230
+ .theme-doc-markdown h1:first-child,
231
+ article h1:first-child {
232
+ font-size: 2.4rem;
233
+ letter-spacing: -0.02em;
234
+ line-height: 1.1;
235
+ margin-bottom: 0.6rem;
236
+ }
237
+
238
+ .markdown h1,
239
+ article h1,
240
+ .theme-doc-markdown h1 {
241
+ color: var(--ink-900) !important;
242
+ font-weight: 700;
243
+ letter-spacing: -0.02em;
244
+ }
245
+
246
+ .markdown h2,
247
+ article h2,
248
+ .theme-doc-markdown h2 {
249
+ color: var(--ink-900) !important;
250
+ font-weight: 700;
251
+ font-size: 1.65rem;
252
+ letter-spacing: -0.015em;
253
+ line-height: 1.2;
254
+ margin-top: 3rem;
255
+ margin-bottom: 0.85rem;
256
+ scroll-margin-top: 80px;
257
+ }
258
+
259
+ .markdown h3,
260
+ article h3 {
261
+ color: var(--ink-900) !important;
262
+ font-weight: 600;
263
+ font-size: 1.2rem;
264
+ letter-spacing: -0.01em;
265
+ margin-top: 2rem;
266
+ margin-bottom: 0.65rem;
267
+ scroll-margin-top: 80px;
268
+ }
269
+
270
+ .markdown h4,
271
+ article h4 {
272
+ color: var(--ink-900) !important;
273
+ font-weight: 600;
274
+ font-size: 1rem;
275
+ margin-top: 1.4rem;
276
+ margin-bottom: 0.5rem;
277
+ }
278
+
279
+ [data-theme='dark'] .markdown h1,
280
+ [data-theme='dark'] .markdown h2,
281
+ [data-theme='dark'] .markdown h3,
282
+ [data-theme='dark'] .markdown h4,
283
+ [data-theme='dark'] article h1,
284
+ [data-theme='dark'] article h2,
285
+ [data-theme='dark'] article h3,
286
+ [data-theme='dark'] article h4 {
287
+ color: var(--ink-900) !important;
288
+ }
289
+
290
+ .markdown p {
291
+ color: var(--ink-700);
292
+ max-width: 72ch;
293
+ }
294
+
295
+ .markdown a,
296
+ article a {
297
+ color: var(--iris-700);
298
+ border-bottom: 1px solid var(--iris-100);
299
+ text-decoration: none;
300
+ transition: border-color .15s;
301
+ }
302
+
303
+ .markdown a:hover,
304
+ article a:hover {
305
+ border-bottom-color: var(--iris-600);
306
+ text-decoration: none;
307
+ }
308
+
309
+ /* ── Inline code & kbd ─────────────────────────────────────────────── */
310
+ .markdown code:not([class*='language-']) {
311
+ font-family: var(--ifm-font-family-monospace);
312
+ font-size: 0.86em;
313
+ background: var(--ink-50);
314
+ border: 1px solid var(--ink-100);
315
+ border-radius: 4px;
316
+ padding: 1px 5px;
317
+ color: var(--ink-700);
318
+ }
319
+
320
+ [data-theme='dark'] .markdown code:not([class*='language-']) {
321
+ background: var(--ink-100);
322
+ border-color: var(--ink-200);
323
+ color: var(--ink-700);
324
+ }
325
+
326
+ kbd, .markdown kbd {
327
+ display: inline-block;
328
+ padding: 1px 6px;
329
+ font-size: 12px;
330
+ font-weight: 500;
331
+ font-family: var(--ifm-font-family-monospace);
332
+ color: var(--ink-700);
333
+ background: #fff;
334
+ border: 1px solid var(--ink-200);
335
+ border-bottom-width: 2px;
336
+ border-radius: 4px;
337
+ box-shadow: none;
338
+ }
339
+
340
+ [data-theme='dark'] kbd,
341
+ [data-theme='dark'] .markdown kbd {
342
+ background: var(--ink-100);
343
+ color: var(--ink-700);
344
+ border-color: var(--ink-200);
345
+ }
346
+
347
+ /* ── Code blocks ───────────────────────────────────────────────────── */
348
+ .theme-code-block {
349
+ border-radius: 7px !important;
350
+ box-shadow: var(--shadow-card) !important;
351
+ font-family: var(--ifm-font-family-monospace) !important;
352
+ }
353
+
354
+ .theme-code-block pre {
355
+ font-size: 13px !important;
356
+ line-height: 1.55 !important;
357
+ }
358
+
359
+ div[class^='codeBlockTitle'] {
360
+ background: var(--ink-700) !important;
361
+ color: var(--ink-300) !important;
362
+ border-bottom: 1px solid var(--ink-100) !important;
363
+ font-family: var(--ifm-font-family-monospace) !important;
364
+ font-size: 12px !important;
365
+ font-weight: 500 !important;
366
+ }
367
+
368
+ /* ── Tables ────────────────────────────────────────────────────────── */
369
+ .markdown table,
370
+ article table {
371
+ display: table;
372
+ width: 100%;
373
+ border-collapse: collapse;
374
+ font-size: 13px;
375
+ margin: 14px 0;
376
+ background: var(--ifm-background-surface-color);
377
+ border: 1px solid var(--ink-100);
378
+ border-radius: 8px;
379
+ overflow: hidden;
380
+ box-shadow: none;
381
+ }
382
+
383
+ .markdown table th,
384
+ article table th {
385
+ font-weight: 600;
386
+ font-size: 12px;
387
+ color: var(--ink-500);
388
+ text-transform: uppercase;
389
+ letter-spacing: 0.04em;
390
+ background: var(--ink-50);
391
+ padding: 10px 14px;
392
+ border: 0;
393
+ border-bottom: 1px solid var(--ink-100);
394
+ }
395
+
396
+ .markdown table td,
397
+ article table td {
398
+ padding: 10px 14px;
399
+ vertical-align: top;
400
+ border: 0;
401
+ border-bottom: 1px solid var(--ink-100);
402
+ }
403
+
404
+ .markdown table tr,
405
+ article table tr {
406
+ background: var(--ifm-background-surface-color);
407
+ border: 0;
408
+ }
409
+
410
+ .markdown table tr:last-child td,
411
+ article table tr:last-child td {
412
+ border-bottom: 0;
413
+ }
414
+
415
+ .markdown table td code,
416
+ article table td code {
417
+ font-size: 12px;
418
+ }
419
+
420
+ [data-theme='dark'] .markdown table,
421
+ [data-theme='dark'] article table {
422
+ background: var(--ifm-background-surface-color);
423
+ border-color: var(--ink-100);
424
+ }
425
+
426
+ [data-theme='dark'] .markdown table th,
427
+ [data-theme='dark'] article table th {
428
+ background: var(--ink-50);
429
+ color: var(--ink-500);
430
+ }
431
+
432
+ /* ── Lists ─────────────────────────────────────────────────────────── */
433
+ .markdown ul,
434
+ .markdown ol {
435
+ margin: 0.5rem 0 1rem;
436
+ padding-left: 1.4rem;
437
+ }
438
+
439
+ .markdown li {
440
+ margin: 0.3rem 0;
441
+ }
442
+
443
+ .markdown li::marker {
444
+ color: var(--ink-300);
445
+ }
446
+
447
+ /* Tab lists should have no left padding (override .markdown ul) */
448
+ .markdown .tabs {
449
+ padding-left: 0;
450
+ margin-bottom: 0;
451
+ }
452
+
453
+ /* ── Provider showcase (On-Premises clusters) ───────────────────────── */
454
+ .provider-showcase {
455
+ display: grid;
456
+ grid-template-columns: repeat(3, 1fr);
457
+ gap: 1rem;
458
+ margin: 2rem 0;
459
+ }
460
+
461
+ @media (max-width: 600px) {
462
+ .provider-showcase {
463
+ grid-template-columns: repeat(2, 1fr);
464
+ }
465
+ }
466
+
467
+ .provider-showcase-item {
468
+ display: flex;
469
+ flex-direction: column;
470
+ align-items: center;
471
+ justify-content: center;
472
+ gap: 0.75rem;
473
+ padding: 1.5rem 1rem;
474
+ border: 1px solid var(--ifm-color-emphasis-200);
475
+ border-radius: var(--ifm-global-radius);
476
+ background: var(--ifm-color-emphasis-0);
477
+ transition: border-color 0.15s, box-shadow 0.15s;
478
+ }
479
+
480
+ .provider-showcase-item:hover {
481
+ border-color: var(--ifm-color-primary);
482
+ box-shadow: 0 1px 3px rgba(0,0,0,0.08);
483
+ }
484
+
485
+ .provider-showcase-item img {
486
+ width: 56px;
487
+ height: 56px;
488
+ }
489
+
490
+ .provider-showcase-item span {
491
+ font-size: 0.875rem;
492
+ font-weight: 600;
493
+ color: var(--ifm-color-emphasis-700);
494
+ letter-spacing: 0.01em;
495
+ }
496
+
497
+ html[data-theme='dark'] .provider-showcase-item {
498
+ background: var(--ifm-card-background-color);
499
+ }
500
+
501
+
502
+
503
+ /* ── Admonitions → callouts ─────────────────────────────────────────── */
504
+ .theme-admonition,
505
+ .alert {
506
+ border-radius: 8px !important;
507
+ border: 1px solid !important;
508
+ padding: 14px 16px !important;
509
+ margin: 18px 0 !important;
510
+ font-size: 14px !important;
511
+ line-height: 1.55 !important;
512
+ box-shadow: none !important;
513
+ }
514
+
515
+ .theme-admonition p,
516
+ .alert p {
517
+ margin-bottom: 6px;
518
+ }
519
+
520
+ .theme-admonition p:last-child,
521
+ .alert p:last-child {
522
+ margin-bottom: 0;
523
+ }
524
+
525
+ /* note / info - iris */
526
+ .theme-admonition-note,
527
+ .alert--secondary,
528
+ .theme-admonition-info,
529
+ .alert--info {
530
+ background: var(--iris-50) !important;
531
+ border-color: var(--iris-100) !important;
532
+ color: var(--ink-700) !important;
533
+ }
534
+
535
+ /* tip / success - green */
536
+ .theme-admonition-tip,
537
+ .alert--success,
538
+ .theme-admonition-success {
539
+ background: var(--green-50) !important;
540
+ border-color: #bbf7d0 !important;
541
+ color: #14532d !important;
542
+ }
543
+
544
+ /* warning / caution - amber */
545
+ .theme-admonition-warning,
546
+ .alert--warning,
547
+ .theme-admonition-caution {
548
+ background: var(--amber-50) !important;
549
+ border-color: #fde68a !important;
550
+ color: #713f12 !important;
551
+ }
552
+
553
+ /* danger - rose */
554
+ .theme-admonition-danger,
555
+ .alert--danger {
556
+ background: var(--rose-50) !important;
557
+ border-color: #fecdd3 !important;
558
+ color: #881337 !important;
559
+ }
560
+
561
+ [data-theme='dark'] .theme-admonition-note,
562
+ [data-theme='dark'] .alert--info,
563
+ [data-theme='dark'] .theme-admonition-info {
564
+ background: rgba(99, 102, 241, 0.12) !important;
565
+ border-color: rgba(129, 140, 248, 0.3) !important;
566
+ color: var(--ink-700) !important;
567
+ }
568
+
569
+ [data-theme='dark'] .theme-admonition-tip,
570
+ [data-theme='dark'] .alert--success {
571
+ background: rgba(34, 197, 94, 0.10) !important;
572
+ border-color: rgba(34, 197, 94, 0.3) !important;
573
+ color: #bbf7d0 !important;
574
+ }
575
+
576
+ [data-theme='dark'] .theme-admonition-warning,
577
+ [data-theme='dark'] .alert--warning {
578
+ background: rgba(245, 158, 11, 0.10) !important;
579
+ border-color: rgba(245, 158, 11, 0.3) !important;
580
+ color: #fde68a !important;
581
+ }
582
+
583
+ [data-theme='dark'] .theme-admonition-danger,
584
+ [data-theme='dark'] .alert--danger {
585
+ background: rgba(244, 63, 94, 0.10) !important;
586
+ border-color: rgba(244, 63, 94, 0.3) !important;
587
+ color: #fecdd3 !important;
588
+ }
589
+
590
+ /* admonition heading row */
591
+ .theme-admonition .admonitionHeading_node_modules-\@docusaurus-theme-classic-lib-theme-Admonition-Layout-styles-module,
592
+ .theme-admonition div[class*='admonitionHeading'] {
593
+ font-size: 12px !important;
594
+ font-weight: 700 !important;
595
+ text-transform: uppercase !important;
596
+ letter-spacing: 0.06em !important;
597
+ margin-bottom: 6px !important;
598
+ }
599
+
600
+ /* ── Blockquote ────────────────────────────────────────────────────── */
601
+ .markdown blockquote {
602
+ border-left: 3px solid var(--iris-500);
603
+ padding: 4px 16px;
604
+ background: var(--iris-50);
605
+ border-radius: 0 6px 6px 0;
606
+ color: var(--ink-700);
607
+ margin: 16px 0;
608
+ }
609
+
610
+ [data-theme='dark'] .markdown blockquote {
611
+ background: rgba(99, 102, 241, 0.10);
612
+ color: var(--ink-700);
613
+ }
614
+
615
+ /* ── Guided how-to layout ─────────────────────────────────────────── */
616
+ .guide-intro {
617
+ margin: 1.5rem 0 2rem;
618
+ padding: 1.25rem;
619
+ border: 1px solid var(--ink-100);
620
+ border-radius: 14px;
621
+ background:
622
+ radial-gradient(circle at top right, rgba(99, 102, 241, 0.10), transparent 34%),
623
+ linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(244, 245, 251, 0.96));
624
+ box-shadow: var(--shadow-card);
625
+ }
626
+
627
+ .guide-intro > p:last-child {
628
+ margin-bottom: 0;
629
+ }
630
+
631
+ .guide-meta {
632
+ display: grid;
633
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
634
+ gap: 0.75rem;
635
+ margin: 1rem 0 0;
636
+ }
637
+
638
+ .guide-meta-card {
639
+ padding: 0.9rem 1rem;
640
+ border: 1px solid var(--ink-100);
641
+ border-radius: 12px;
642
+ background: rgba(255, 255, 255, 0.82);
643
+ }
644
+
645
+ .guide-meta-label {
646
+ display: block;
647
+ margin-bottom: 0.25rem;
648
+ color: var(--ink-400);
649
+ font-size: 0.75rem;
650
+ font-weight: 700;
651
+ letter-spacing: 0.08em;
652
+ text-transform: uppercase;
653
+ }
654
+
655
+ .guide-meta-value {
656
+ color: var(--ink-900);
657
+ font-weight: 600;
658
+ }
659
+
660
+ .guide-quick-links {
661
+ margin: 1.5rem 0 2rem;
662
+ padding: 1rem 1.25rem;
663
+ border-left: 3px solid var(--iris-500);
664
+ border-radius: 0 12px 12px 0;
665
+ background: var(--iris-50);
666
+ }
667
+
668
+ .guide-quick-links p {
669
+ margin-bottom: 0.55rem;
670
+ }
671
+
672
+ .guide-quick-links ul {
673
+ margin-bottom: 0;
674
+ }
675
+
676
+ .guide-steps {
677
+ display: grid;
678
+ gap: 1rem;
679
+ margin: 1.5rem 0 2rem;
680
+ counter-reset: guide-step-counter;
681
+ }
682
+
683
+ .guide-step {
684
+ display: grid;
685
+ grid-template-columns: auto 1fr;
686
+ gap: 1rem;
687
+ align-items: start;
688
+ padding: 1.1rem 1.2rem;
689
+ border: 1px solid var(--ink-100);
690
+ border-radius: 14px;
691
+ background: #fff;
692
+ box-shadow: var(--shadow-card);
693
+ }
694
+
695
+ /* Heading-based steps: badge via CSS counter instead of manual span. */
696
+ .guide-step:not(:has(.guide-step-number)) {
697
+ display: grid;
698
+ grid-template-columns: 2.2rem 1fr;
699
+ gap: 0.75rem 1rem;
700
+ align-items: center;
701
+ position: relative;
702
+ padding: 1.1rem;
703
+ counter-increment: guide-step-counter;
704
+ }
705
+
706
+ .guide-step:not(:has(.guide-step-number))::before {
707
+ content: counter(guide-step-counter);
708
+ display: flex;
709
+ align-items: center;
710
+ justify-content: center;
711
+ width: 2.2rem;
712
+ height: 2.2rem;
713
+ border-radius: 999px;
714
+ background: var(--iris-700);
715
+ color: #fff;
716
+ font-size: 1.1rem;
717
+ font-weight: 700;
718
+ line-height: 1;
719
+ }
720
+
721
+ .guide-step > h2,
722
+ .guide-step > h3 {
723
+ margin: 0;
724
+ padding: 0;
725
+ border-bottom: none;
726
+ font-size: 1.3rem;
727
+ font-weight: 700;
728
+ color: var(--ink-900);
729
+ }
730
+
731
+ .guide-step > h2 ~ *,
732
+ .guide-step > h3 ~ * {
733
+ grid-column: 1 / -1;
734
+ }
735
+
736
+ .guide-note {
737
+ margin-top: 0.75rem;
738
+ padding: 0.85rem 1rem;
739
+ border-radius: 12px;
740
+ background: var(--ink-50);
741
+ color: var(--ink-700);
742
+ font-size: 0.95rem;
743
+ }
744
+
745
+ .guide-related {
746
+ margin: 2rem 0;
747
+ }
748
+
749
+ .guide-related ul {
750
+ margin-bottom: 0;
751
+ }
752
+
753
+ [data-theme='dark'] .guide-intro {
754
+ border-color: var(--ink-100);
755
+ background:
756
+ radial-gradient(circle at top right, rgba(129, 140, 248, 0.14), transparent 34%),
757
+ linear-gradient(180deg, rgba(22, 26, 54, 0.96), rgba(11, 16, 32, 0.98));
758
+ }
759
+
760
+ [data-theme='dark'] .guide-meta-card,
761
+ [data-theme='dark'] .guide-step {
762
+ border-color: var(--ink-100);
763
+ background: rgba(22, 26, 54, 0.88);
764
+ }
765
+
766
+ [data-theme='dark'] .guide-quick-links {
767
+ background: rgba(129, 140, 248, 0.10);
768
+ }
769
+
770
+ [data-theme='dark'] .guide-note {
771
+ background: rgba(244, 245, 251, 0.05);
772
+ color: var(--ink-700);
773
+ }
774
+
775
+ @media (max-width: 640px) {
776
+ .guide-intro {
777
+ padding: 1rem;
778
+ }
779
+
780
+ .guide-step {
781
+ grid-template-columns: 1fr;
782
+ gap: 0.75rem;
783
+ }
784
+ }
785
+
786
+ /* ── HR ─────────────────────────────────────────────────────────────── */
787
+ .markdown hr {
788
+ border: 0;
789
+ height: 1px;
790
+ background: var(--ink-100);
791
+ margin: 32px 0;
792
+ }
793
+
794
+ /* ── Navbar (Vantage dark navigation) ──────────────────────────────── */
795
+ :root {
796
+ --ifm-navbar-height: 64px;
797
+ }
798
+
799
+ .navbar {
800
+ background-color: #18123B;
801
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
802
+ box-shadow: 0 1px 0 rgba(15, 16, 32, 0.08);
803
+ }
804
+
805
+ .navbar__title,
806
+ .navbar__item,
807
+ .navbar__link {
808
+ color: white;
809
+ }
810
+
811
+ .navbar__items--right {
812
+ gap: 10px;
813
+ }
814
+
815
+ /* Remove default horizontal padding from search container - gap handles spacing */
816
+ .navbar__items--right .navbarSearchContainer,
817
+ .navbar__items--right [class*='navbarSearchContainer'] {
818
+ padding: 0 !important;
819
+ }
820
+
821
+ .navbar [class*="colorModeToggle"],
822
+ .navbar button[aria-label*="Switch"] {
823
+ position: static !important;
824
+ transform: none !important;
825
+ flex-shrink: 0 !important;
826
+ z-index: 100 !important;
827
+ }
828
+
829
+ .navbar__brand {
830
+ padding-left: 6px;
831
+ }
832
+
833
+ .navbar__logo {
834
+ height: 2.25rem;
835
+ }
836
+
837
+ .navbar__link:hover {
838
+ color: var(--iris-100) !important;
839
+ }
840
+
841
+ @media (max-width: 1024px) {
842
+ .navbar__logo { display: none !important; }
843
+ }
844
+
845
+ /* ── Sidebar (left) ────────────────────────────────────────────────── */
846
+ .theme-doc-sidebar-container {
847
+ border-right: 1px solid var(--ink-100) !important;
848
+ background: var(--ifm-background-color);
849
+ }
850
+
851
+ .menu {
852
+ padding: 1rem 0.75rem !important;
853
+ font-size: 14px;
854
+ }
855
+
856
+ .menu__list-item {
857
+ margin: 0;
858
+ }
859
+
860
+ .menu__link {
861
+ border-radius: 5px;
862
+ padding: 6px 10px;
863
+ font-size: 14px;
864
+ font-weight: 450;
865
+ color: var(--ink-500);
866
+ }
867
+
868
+ .menu__link:hover {
869
+ background: var(--ink-50);
870
+ color: var(--ink-700);
871
+ }
872
+
873
+ .menu__link--active,
874
+ .menu__link--active:hover {
875
+ background: var(--iris-50) !important;
876
+ color: var(--iris-700) !important;
877
+ font-weight: 600;
878
+ }
879
+
880
+ .menu__list-item-collapsible .menu__link--active {
881
+ background: var(--iris-50) !important;
882
+ }
883
+
884
+ .menu__list-item--collapsed .menu__link {
885
+ color: var(--ink-500);
886
+ }
887
+
888
+ /* Streamlined chevron - replace the chunky default Infima SVG with a
889
+ thin CSS-border chevron that animates rotation on collapse/expand. */
890
+ .menu__caret,
891
+ .menu__link--sublist-caret {
892
+ position: relative;
893
+ }
894
+
895
+ .menu__caret::before,
896
+ .menu__link--sublist-caret::after {
897
+ content: '';
898
+ display: inline-block;
899
+ width: 7px;
900
+ height: 7px;
901
+ margin: 0 6px 0 auto;
902
+ background: none !important;
903
+ filter: none !important;
904
+ border: 0;
905
+ border-right: 1.5px solid var(--ink-400);
906
+ border-bottom: 1.5px solid var(--ink-400);
907
+ transform: rotate(45deg); /* points down - expanded */
908
+ transition: transform 0.18s ease, border-color 0.15s;
909
+ min-width: 0;
910
+ flex-shrink: 0;
911
+ }
912
+
913
+ .menu__caret { padding: 6px 8px; }
914
+
915
+ .menu__caret:hover {
916
+ background: var(--ink-50) !important;
917
+ }
918
+
919
+ .menu__caret:hover::before,
920
+ .menu__list-item-collapsible:hover .menu__link--sublist-caret::after {
921
+ border-color: var(--ink-700);
922
+ }
923
+
924
+ .menu__list-item-collapsible--active .menu__link--sublist-caret::after,
925
+ .menu__list-item-collapsible--active .menu__caret::before {
926
+ border-color: var(--iris-700);
927
+ }
928
+
929
+ /* Collapsed → chevron points right */
930
+ .menu__list-item--collapsed > .menu__link--sublist-caret::after,
931
+ .menu__list-item--collapsed > .menu__list-item-collapsible > .menu__link--sublist-caret::after,
932
+ .menu__list-item--collapsed > .menu__list-item-collapsible > .menu__caret::before,
933
+ .menu__list-item--collapsed > .menu__caret::before {
934
+ transform: rotate(-45deg);
935
+ }
936
+
937
+ [data-theme='dark'] .menu__caret::before,
938
+ [data-theme='dark'] .menu__link--sublist-caret::after {
939
+ border-color: var(--ink-400);
940
+ }
941
+
942
+ [data-theme='dark'] .menu__caret:hover::before,
943
+ [data-theme='dark'] .menu__list-item-collapsible:hover .menu__link--sublist-caret::after {
944
+ border-color: var(--ink-700);
945
+ }
946
+
947
+ /* Section labels (top-level menu category) */
948
+ .theme-doc-sidebar-item-category-level-1 > .menu__list-item-collapsible > .menu__link,
949
+ .menu__list-item-collapsible:not(.menu__list-item-collapsible--active) > .menu__link.menu__link--sublist {
950
+ font-weight: 600;
951
+ color: var(--ink-700);
952
+ }
953
+
954
+ [data-theme='dark'] .menu__link {
955
+ color: var(--ink-500);
956
+ }
957
+
958
+ [data-theme='dark'] .menu__link:hover {
959
+ background: var(--ink-50);
960
+ color: var(--ink-700);
961
+ }
962
+
963
+ [data-theme='dark'] .menu__link--active,
964
+ [data-theme='dark'] .menu__link--active:hover {
965
+ background: var(--iris-50) !important;
966
+ color: var(--iris-500) !important;
967
+ }
968
+
969
+ /* ── Right TOC (in-page nav) ───────────────────────────────────────── */
970
+ /* Docusaurus places TOC on the right by default - reinforce design */
971
+ .theme-doc-toc-desktop {
972
+ display: block !important;
973
+ border-left: 1px solid var(--ink-100);
974
+ padding: 1.5rem 1rem 2rem 1.25rem;
975
+ position: sticky;
976
+ top: var(--ifm-navbar-height);
977
+ max-height: calc(100vh - var(--ifm-navbar-height));
978
+ overflow-y: auto;
979
+ }
980
+
981
+ .table-of-contents {
982
+ font-size: 13px;
983
+ border-left: 0;
984
+ padding: 0;
985
+ }
986
+
987
+ .theme-doc-toc-desktop::before {
988
+ display: block;
989
+ font-size: 11px;
990
+ font-weight: 700;
991
+ text-transform: uppercase;
992
+ letter-spacing: 0.08em;
993
+ color: var(--ink-400);
994
+ margin-bottom: 10px;
995
+ content: 'On this page';
996
+ }
997
+
998
+ /* hide Docusaurus' default TOC title since we render our own label above */
999
+ .table-of-contents__title { display: none; }
1000
+
1001
+ .table-of-contents__link {
1002
+ display: block;
1003
+ padding: 4px 8px;
1004
+ border-left: 2px solid transparent;
1005
+ color: var(--ink-500);
1006
+ line-height: 1.4;
1007
+ margin-left: -2px;
1008
+ text-decoration: none;
1009
+ font-size: 13px;
1010
+ }
1011
+
1012
+ .table-of-contents__link:hover {
1013
+ color: var(--ink-700) !important;
1014
+ background: transparent !important;
1015
+ }
1016
+
1017
+ .table-of-contents__link--active,
1018
+ .table-of-contents__link--active:hover {
1019
+ color: var(--iris-700) !important;
1020
+ border-left-color: var(--iris-600);
1021
+ font-weight: 500;
1022
+ background: transparent !important;
1023
+ }
1024
+
1025
+ .table-of-contents .table-of-contents {
1026
+ padding-left: 8px;
1027
+ }
1028
+
1029
+ .table-of-contents li ul .table-of-contents__link {
1030
+ padding-left: 16px;
1031
+ font-size: 12.5px;
1032
+ }
1033
+
1034
+ /* ── Mobile TOC ────────────────────────────────────────────────────── */
1035
+ .theme-doc-toc-mobile {
1036
+ background: var(--ifm-background-surface-color);
1037
+ border: 1px solid var(--ink-100);
1038
+ border-radius: 8px;
1039
+ margin-bottom: 16px;
1040
+ }
1041
+
1042
+ /* ── Breadcrumbs ───────────────────────────────────────────────────── */
1043
+ .breadcrumbs {
1044
+ font-size: 13px;
1045
+ margin-bottom: 1rem;
1046
+ }
1047
+
1048
+ .breadcrumbs__link {
1049
+ color: var(--ink-400);
1050
+ font-weight: 500;
1051
+ border-bottom: 0 !important;
1052
+ }
1053
+
1054
+ .breadcrumbs__link:hover,
1055
+ .breadcrumbs__link--active,
1056
+ .breadcrumbs__item--active .breadcrumbs__link {
1057
+ color: var(--iris-700) !important;
1058
+ background: var(--iris-50);
1059
+ }
1060
+
1061
+ .breadcrumbs__item:not(:last-child)::after {
1062
+ background: var(--ink-300);
1063
+ opacity: 0.5;
1064
+ }
1065
+
1066
+ /* navbar dropdown items */
1067
+ .navbar .dropdown > .dropdown__menu .dropdown__link,
1068
+ .navbar__items .dropdown__menu .dropdown__link {
1069
+ color: var(--ink-700) !important;
1070
+ padding: 10px 16px !important;
1071
+ font-weight: 500 !important;
1072
+ font-size: 14px !important;
1073
+ border-radius: 0 !important;
1074
+ transition: all .15s ease !important;
1075
+ display: flex !important;
1076
+ align-items: center !important;
1077
+ }
1078
+
1079
+ .navbar .dropdown > .dropdown__menu .dropdown__link:hover,
1080
+ .navbar__items .dropdown__menu .dropdown__link:hover {
1081
+ background-color: var(--iris-50) !important;
1082
+ color: var(--iris-700) !important;
1083
+ transform: translateX(2px) !important;
1084
+ }
1085
+
1086
+ /* ── Buttons (force white text on iris fills) ──────────────────────── */
1087
+ :root {
1088
+ --ifm-button-color: #ffffff;
1089
+ }
1090
+
1091
+ .button--primary,
1092
+ .button--primary:visited,
1093
+ .button--primary:hover,
1094
+ .button--primary:focus,
1095
+ .button--primary:active,
1096
+ a.button--primary,
1097
+ a.button--primary:visited,
1098
+ a.button--primary:hover,
1099
+ a.button--primary:focus,
1100
+ a.button--primary:active {
1101
+ color: #ffffff !important;
1102
+ background-color: var(--iris-700) !important;
1103
+ border-color: var(--iris-700) !important;
1104
+ text-decoration: none !important;
1105
+ }
1106
+
1107
+ .button--primary:hover,
1108
+ a.button--primary:hover {
1109
+ background-color: var(--iris-600) !important;
1110
+ border-color: var(--iris-600) !important;
1111
+ }
1112
+
1113
+ .button--secondary,
1114
+ .button--secondary:visited,
1115
+ a.button--secondary,
1116
+ a.button--secondary:visited {
1117
+ color: var(--ink-900) !important;
1118
+ background-color: #ffffff !important;
1119
+ border: 1px solid var(--ink-200) !important;
1120
+ text-decoration: none !important;
1121
+ }
1122
+
1123
+ .button--secondary:hover,
1124
+ .button--secondary:focus,
1125
+ a.button--secondary:hover,
1126
+ a.button--secondary:focus {
1127
+ color: var(--iris-700) !important;
1128
+ background-color: var(--iris-50) !important;
1129
+ border-color: var(--iris-200) !important;
1130
+ text-decoration: none !important;
1131
+ }
1132
+
1133
+ [data-theme='dark'] .button--secondary,
1134
+ [data-theme='dark'] .button--secondary:visited,
1135
+ [data-theme='dark'] a.button--secondary,
1136
+ [data-theme='dark'] a.button--secondary:visited {
1137
+ color: var(--ink-900) !important;
1138
+ background-color: var(--ifm-background-surface-color) !important;
1139
+ border-color: var(--ink-200) !important;
1140
+ }
1141
+
1142
+ [data-theme='dark'] .button--secondary:hover,
1143
+ [data-theme='dark'] a.button--secondary:hover {
1144
+ color: #c7d2fe !important;
1145
+ background-color: var(--iris-50) !important;
1146
+ border-color: var(--iris-200) !important;
1147
+ }
1148
+
1149
+ /* Any explicit purple/iris filled button - bulletproof white text */
1150
+ .button[class*='button--primary'],
1151
+ .button[style*='background'][class*='button--primary'] {
1152
+ color: #ffffff !important;
1153
+ }
1154
+
1155
+ /* ── Pagination ────────────────────────────────────────────────────── */
1156
+ .pagination-nav__link {
1157
+ border-radius: 8px;
1158
+ border: 1px solid var(--ink-100);
1159
+ transition: border-color .15s, transform .12s, box-shadow .15s;
1160
+ }
1161
+
1162
+ .pagination-nav__link:hover {
1163
+ border-color: var(--iris-200);
1164
+ transform: translateY(-1px);
1165
+ box-shadow: var(--shadow-card);
1166
+ }
1167
+
1168
+ .pagination-nav__link:hover .pagination-nav__label,
1169
+ .pagination-nav__link--active .pagination-nav__label {
1170
+ color: var(--iris-700) !important;
1171
+ }
1172
+
1173
+ .pagination-nav__sublabel {
1174
+ color: var(--ink-400);
1175
+ font-size: 11px;
1176
+ text-transform: uppercase;
1177
+ letter-spacing: 0.06em;
1178
+ }
1179
+
1180
+ /* ── Cards (landing page) ──────────────────────────────────────────── */
1181
+ .card {
1182
+ background: var(--ifm-background-surface-color);
1183
+ border: 1px solid var(--ink-100);
1184
+ border-radius: 8px;
1185
+ box-shadow: var(--shadow-card);
1186
+ transition: border-color .15s, transform .12s;
1187
+ }
1188
+
1189
+ .card:hover {
1190
+ border-color: var(--iris-200);
1191
+ transform: translateY(-1px);
1192
+ }
1193
+
1194
+ .col--4 .card {
1195
+ display: flex;
1196
+ flex-direction: column;
1197
+ height: 100%;
1198
+ }
1199
+
1200
+ .col--4 .card__body {
1201
+ flex: 1;
1202
+ }
1203
+
1204
+ .card__header h3,
1205
+ .card__header h4 {
1206
+ margin: 0 0 6px;
1207
+ font-size: 15px;
1208
+ }
1209
+
1210
+ .card__body p {
1211
+ font-size: 13px;
1212
+ color: var(--ink-500);
1213
+ margin: 0;
1214
+ }
1215
+
1216
+ /* ── Details / summary ─────────────────────────────────────────────── */
1217
+ details {
1218
+ background: var(--ifm-background-surface-color);
1219
+ border: 1px solid var(--ink-100);
1220
+ border-radius: 6px;
1221
+ padding: 4px 0;
1222
+ }
1223
+
1224
+ details summary {
1225
+ cursor: pointer !important;
1226
+ transition: background-color 0.2s ease !important;
1227
+ padding: 8px 14px;
1228
+ font-weight: 500;
1229
+ color: var(--ink-700);
1230
+ }
1231
+
1232
+ details summary:hover {
1233
+ background-color: var(--iris-50);
1234
+ color: var(--iris-700);
1235
+ }
1236
+
1237
+ details summary[onclick] {
1238
+ color: var(--iris-700) !important;
1239
+ font-weight: 600 !important;
1240
+ }
1241
+
1242
+ details summary[onclick]:hover {
1243
+ background-color: var(--iris-50) !important;
1244
+ text-decoration: underline !important;
1245
+ }
1246
+
1247
+ /* ── Footer ────────────────────────────────────────────────────────── */
1248
+ .footer {
1249
+ background-color: var(--iris-900) !important;
1250
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
1251
+ }
1252
+
1253
+ .footer--dark {
1254
+ background-color: var(--iris-900) !important;
1255
+ }
1256
+
1257
+ .footer__title,
1258
+ .footer__item,
1259
+ .footer__link-item,
1260
+ .footer__copyright {
1261
+ color: white !important;
1262
+ }
1263
+
1264
+ .footer__title {
1265
+ font-size: 12px;
1266
+ text-transform: uppercase;
1267
+ letter-spacing: 0.08em;
1268
+ font-weight: 700;
1269
+ color: var(--iris-200) !important;
1270
+ }
1271
+
1272
+ .footer__link-item:hover {
1273
+ color: var(--iris-200) !important;
1274
+ }
1275
+
1276
+ .footer__separator {
1277
+ background-color: rgba(255, 255, 255, 0.12) !important;
1278
+ }
1279
+
1280
+ .footer__links {
1281
+ justify-content: center !important;
1282
+ }
1283
+
1284
+ .footer__col {
1285
+ text-align: center !important;
1286
+ }
1287
+
1288
+ .footer__logo {
1289
+ height: auto !important;
1290
+ width: auto !important;
1291
+ max-height: 60px;
1292
+ }
1293
+
1294
+ .footer__link-social {
1295
+ display: inline-flex !important;
1296
+ align-items: center !important;
1297
+ justify-content: center !important;
1298
+ width: 40px !important;
1299
+ height: 40px !important;
1300
+ margin: 0 8px 8px 0 !important;
1301
+ padding: 8px !important;
1302
+ border-radius: 8px !important;
1303
+ background-color: rgba(255, 255, 255, 0.1) !important;
1304
+ transition: all 0.3s ease !important;
1305
+ text-decoration: none !important;
1306
+ }
1307
+
1308
+ .footer__link-social:hover {
1309
+ background-color: rgba(255, 255, 255, 0.2) !important;
1310
+ transform: translateY(-2px) !important;
1311
+ text-decoration: none !important;
1312
+ }
1313
+
1314
+ .footer__link-social img {
1315
+ width: 24px !important;
1316
+ height: 24px !important;
1317
+ filter: brightness(0) invert(1) !important;
1318
+ transition: all 0.3s ease !important;
1319
+ }
1320
+
1321
+ .footer__link-social:hover img {
1322
+ filter: brightness(0) invert(1) !important;
1323
+ transform: scale(1.1) !important;
1324
+ }
1325
+
1326
+ [data-theme='dark'] .footer__link-social img {
1327
+ filter: brightness(0) invert(1) !important;
1328
+ }
1329
+
1330
+ [data-theme='light'] .footer__link-social img {
1331
+ filter: brightness(0) invert(1) !important;
1332
+ }
1333
+
1334
+ /* ── DocSearch (Algolia) - full theme ──────────────────────────────── */
1335
+ :root {
1336
+ /* Core */
1337
+ --docsearch-primary-color: var(--iris-700);
1338
+ --docsearch-text-color: var(--ink-700);
1339
+ --docsearch-spacing: 12px;
1340
+ --docsearch-icon-stroke-width: 1.4;
1341
+ --docsearch-highlight-color: var(--iris-700);
1342
+ --docsearch-muted-color: var(--ink-400);
1343
+ /* Backdrop */
1344
+ --docsearch-container-background: rgba(11, 16, 32, 0.48);
1345
+ /* Modal */
1346
+ --docsearch-modal-background: #ffffff;
1347
+ --docsearch-modal-shadow: 0 24px 64px -12px rgba(11, 16, 32, 0.22),
1348
+ 0 4px 16px -4px rgba(11, 16, 32, 0.10);
1349
+ /* Search input */
1350
+ --docsearch-searchbox-background: var(--ink-50);
1351
+ --docsearch-searchbox-focus-background: #ffffff;
1352
+ --docsearch-searchbox-shadow: inset 0 0 0 1.5px var(--iris-700);
1353
+ /* Hits */
1354
+ --docsearch-hit-color: var(--ink-700);
1355
+ --docsearch-hit-active-color: #ffffff;
1356
+ --docsearch-hit-background: transparent;
1357
+ --docsearch-hit-shadow: none;
1358
+ /* Keyboard key badges */
1359
+ --docsearch-key-gradient: none;
1360
+ --docsearch-key-shadow: none;
1361
+ /* Footer */
1362
+ --docsearch-footer-background: var(--ink-50);
1363
+ --docsearch-footer-shadow: 0 -1px 0 var(--ink-100);
1364
+ }
1365
+
1366
+ [data-theme='dark'] {
1367
+ /* Core - ink palette is inverted in dark mode */
1368
+ --docsearch-primary-color: #818cf8;
1369
+ --docsearch-text-color: var(--ink-700);
1370
+ --docsearch-highlight-color: #818cf8;
1371
+ --docsearch-muted-color: var(--ink-400);
1372
+ /* Backdrop */
1373
+ --docsearch-container-background: rgba(0, 0, 0, 0.65);
1374
+ /* Modal */
1375
+ --docsearch-modal-background: #161a36;
1376
+ --docsearch-modal-shadow: 0 24px 64px -12px rgba(0, 0, 0, 0.5),
1377
+ 0 4px 16px -4px rgba(0, 0, 0, 0.3);
1378
+ /* Search input */
1379
+ --docsearch-searchbox-background: #1f2547;
1380
+ --docsearch-searchbox-focus-background: #1f2547;
1381
+ --docsearch-searchbox-shadow: inset 0 0 0 1.5px #818cf8;
1382
+ /* Hits */
1383
+ --docsearch-hit-color: var(--ink-700);
1384
+ --docsearch-hit-active-color: #ffffff;
1385
+ --docsearch-hit-background: transparent;
1386
+ --docsearch-hit-shadow: none;
1387
+ /* Keyboard key badges */
1388
+ --docsearch-key-gradient: none;
1389
+ --docsearch-key-shadow: none;
1390
+ /* Footer */
1391
+ --docsearch-footer-background: #0b1020;
1392
+ --docsearch-footer-shadow: 0 -1px 0 #1f2547;
1393
+ }
1394
+
1395
+ /* ── Navbar search ──────────────────────────────────────────────────── */
1396
+ .DocSearch-Button,
1397
+ button.DocSearch-Button {
1398
+ display: inline-flex !important;
1399
+ align-items: center !important;
1400
+ gap: 8px !important;
1401
+ height: 36px !important;
1402
+ width: 400px !important;
1403
+ padding: 0 14px !important;
1404
+ background: rgba(255, 255, 255, 0.14) !important;
1405
+ border: 1px solid rgba(255, 255, 255, 0.25) !important;
1406
+ border-radius: 8px !important;
1407
+ color: rgba(255, 255, 255, 0.85) !important;
1408
+ font: inherit !important;
1409
+ font-size: 13px !important;
1410
+ cursor: pointer !important;
1411
+ transition: background 0.15s, border-color 0.15s !important;
1412
+ position: absolute !important;
1413
+ left: 50% !important;
1414
+ top: 50% !important;
1415
+ transform: translate(-50%, -50%) !important;
1416
+ }
1417
+
1418
+ .DocSearch-Button:hover {
1419
+ background: rgba(255, 255, 255, 0.2) !important;
1420
+ border-color: rgba(255, 255, 255, 0.38) !important;
1421
+ color: rgba(255, 255, 255, 0.95) !important;
1422
+ box-shadow: none !important;
1423
+ }
1424
+
1425
+ .DocSearch-Button-Container {
1426
+ display: inline-flex !important;
1427
+ align-items: center !important;
1428
+ gap: 6px !important;
1429
+ flex: 1;
1430
+ min-width: 0;
1431
+ }
1432
+
1433
+ /* Search icon in button */
1434
+ .DocSearch-Button .DocSearch-Search-Icon {
1435
+ color: rgba(255, 255, 255, 0.7) !important;
1436
+ width: 14px !important;
1437
+ height: 14px !important;
1438
+ flex-shrink: 0 !important;
1439
+ }
1440
+
1441
+ .DocSearch-Button-Placeholder {
1442
+ flex: 1 !important;
1443
+ text-align: left !important;
1444
+ color: rgba(255, 255, 255, 0.7) !important;
1445
+ font-weight: 400 !important;
1446
+ overflow: hidden;
1447
+ white-space: nowrap;
1448
+ }
1449
+
1450
+ /* Keyboard shortcut badge */
1451
+ .DocSearch-Button-Keys {
1452
+ display: inline-flex !important;
1453
+ align-items: center !important;
1454
+ gap: 2px !important;
1455
+ background: rgba(255, 255, 255, 0.14) !important;
1456
+ border: 1px solid rgba(255, 255, 255, 0.22) !important;
1457
+ border-radius: 4px !important;
1458
+ padding: 2px 6px !important;
1459
+ flex-shrink: 0 !important;
1460
+ }
1461
+
1462
+ .DocSearch-Button-Key {
1463
+ background: transparent !important;
1464
+ box-shadow: none !important;
1465
+ color: rgba(255, 255, 255, 0.7) !important;
1466
+ font-family: var(--ifm-font-family-monospace) !important;
1467
+ font-size: 10px !important;
1468
+ font-weight: 500 !important;
1469
+ margin: 0 !important;
1470
+ padding: 0 !important;
1471
+ line-height: 1 !important;
1472
+ }
1473
+
1474
+ /* Medium: hide AskAI, shrink search pill */
1475
+ @media (max-width: 1050px) {
1476
+ .navbar__items [data-navbar-ask-ai] { display: none !important; }
1477
+
1478
+ .DocSearch-Button {
1479
+ min-width: 180px !important;
1480
+ }
1481
+ }
1482
+
1483
+ /* Small: search pill drops to icon-only */
1484
+ @media (max-width: 800px) {
1485
+ .DocSearch-Button {
1486
+ min-width: 0 !important;
1487
+ width: 36px !important;
1488
+ padding: 0 !important;
1489
+ justify-content: center !important;
1490
+ }
1491
+ .DocSearch-Button-Placeholder,
1492
+ .DocSearch-Button-Keys { display: none !important; }
1493
+ .DocSearch-Button .DocSearch-Search-Icon {
1494
+ color: rgba(255, 255, 255, 0.9) !important;
1495
+ }
1496
+ }
1497
+
1498
+ /* Dark mode: same squared style */
1499
+ [data-theme='dark'] .DocSearch-Button,
1500
+ [data-theme='dark'] button.DocSearch-Button {
1501
+ background: rgba(255, 255, 255, 0.14) !important;
1502
+ border-color: rgba(255, 255, 255, 0.25) !important;
1503
+ color: rgba(255, 255, 255, 0.85) !important;
1504
+ }
1505
+
1506
+ [data-theme='dark'] .DocSearch-Button:hover {
1507
+ background: rgba(255, 255, 255, 0.2) !important;
1508
+ border-color: rgba(255, 255, 255, 0.38) !important;
1509
+ color: rgba(255, 255, 255, 0.95) !important;
1510
+ }
1511
+
1512
+ [data-theme='dark'] .DocSearch-Button-Placeholder {
1513
+ color: rgba(255, 255, 255, 0.7) !important;
1514
+ }
1515
+
1516
+ [data-theme='dark'] .DocSearch-Button-Keys {
1517
+ background: rgba(255, 255, 255, 0.14) !important;
1518
+ border-color: rgba(255, 255, 255, 0.22) !important;
1519
+ }
1520
+
1521
+ [data-theme='dark'] .DocSearch-Button-Key {
1522
+ color: rgba(255, 255, 255, 0.7) !important;
1523
+ }
1524
+
1525
+ /* ── Search modal ───────────────────────────────────────────────────── */
1526
+ .DocSearch-Modal {
1527
+ border-radius: 12px !important;
1528
+ overflow: hidden !important;
1529
+ max-width: 680px !important;
1530
+ }
1531
+
1532
+ /* Search input row */
1533
+ .DocSearch-SearchBar {
1534
+ padding: 14px 16px 10px !important;
1535
+ border-bottom: 1px solid var(--ink-100) !important;
1536
+ }
1537
+
1538
+ [data-theme='dark'] .DocSearch-SearchBar {
1539
+ border-bottom-color: #1f2547 !important;
1540
+ }
1541
+
1542
+ [data-theme='dark'] .DocSearch-Footer {
1543
+ border-top-color: #1f2547 !important;
1544
+ }
1545
+
1546
+ [data-theme='dark'] .DocSearch-Hit-source {
1547
+ color: #6b7494 !important;
1548
+ }
1549
+
1550
+ .DocSearch-Form {
1551
+ background: var(--docsearch-searchbox-background) !important;
1552
+ border-radius: 8px !important;
1553
+ border: 1.5px solid var(--ink-200) !important;
1554
+ box-shadow: none !important;
1555
+ transition: border-color 0.15s !important;
1556
+ }
1557
+
1558
+ .DocSearch-Form:focus-within {
1559
+ border-color: var(--docsearch-primary-color) !important;
1560
+ background: var(--docsearch-searchbox-focus-background) !important;
1561
+ box-shadow: 0 0 0 3px rgba(67, 56, 202, 0.12) !important;
1562
+ }
1563
+
1564
+ [data-theme='dark'] .DocSearch-Form:focus-within {
1565
+ box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.15) !important;
1566
+ }
1567
+
1568
+ .DocSearch-MagnifierLabel,
1569
+ .DocSearch-Form .DocSearch-Search-Icon {
1570
+ color: var(--docsearch-muted-color) !important;
1571
+ }
1572
+
1573
+ .DocSearch-Input {
1574
+ font-size: 15px !important;
1575
+ color: var(--docsearch-text-color) !important;
1576
+ background: transparent !important;
1577
+ }
1578
+
1579
+ .DocSearch-Input::placeholder { color: var(--docsearch-muted-color) !important; }
1580
+
1581
+ .DocSearch-Reset {
1582
+ color: var(--docsearch-muted-color) !important;
1583
+ }
1584
+ .DocSearch-Reset:hover { color: var(--docsearch-text-color) !important; }
1585
+
1586
+ /* Results panel */
1587
+ .DocSearch-Dropdown {
1588
+ padding: 8px 0 !important;
1589
+ }
1590
+
1591
+ /* Start screen (no query) - shrink dropdown to fit recent searches content */
1592
+ .DocSearch-Modal:has(.DocSearch-Input:placeholder-shown) .DocSearch-Dropdown {
1593
+ height: auto !important;
1594
+ max-height: var(--docsearch-modal-variable-height) !important;
1595
+ }
1596
+
1597
+ /* Start screen - section labels should not be sticky (no scrolling needed) */
1598
+ .DocSearch-Modal:has(.DocSearch-Input:placeholder-shown) .DocSearch-Hit-source {
1599
+ position: static !important;
1600
+ }
1601
+
1602
+ /* Category header above result groups */
1603
+ .DocSearch-Hit-source {
1604
+ font-size: 10.5px !important;
1605
+ font-weight: 700 !important;
1606
+ letter-spacing: 0.07em !important;
1607
+ text-transform: uppercase !important;
1608
+ color: var(--docsearch-muted-color) !important;
1609
+ padding: 10px 20px 4px !important;
1610
+ margin: 0 !important;
1611
+ background: transparent !important;
1612
+ }
1613
+
1614
+ /* Individual hit items */
1615
+ .DocSearch-Hit {
1616
+ padding: 0 8px !important;
1617
+ }
1618
+
1619
+ .DocSearch-Hit a {
1620
+ border-radius: 8px !important;
1621
+ padding: 8px 12px !important;
1622
+ background: var(--docsearch-hit-background) !important;
1623
+ box-shadow: none !important;
1624
+ border: 1px solid transparent !important;
1625
+ transition: background 0.1s, border-color 0.1s !important;
1626
+ }
1627
+
1628
+ .DocSearch-Hit[aria-selected='true'] a {
1629
+ background: var(--docsearch-primary-color) !important;
1630
+ border-color: transparent !important;
1631
+ }
1632
+
1633
+ .DocSearch-Hit-title {
1634
+ font-size: 14px !important;
1635
+ font-weight: 500 !important;
1636
+ color: var(--docsearch-text-color) !important;
1637
+ }
1638
+
1639
+ .DocSearch-Hit-path {
1640
+ font-size: 12px !important;
1641
+ color: var(--docsearch-muted-color) !important;
1642
+ }
1643
+
1644
+ .DocSearch-Hit[aria-selected='true'] .DocSearch-Hit-title,
1645
+ .DocSearch-Hit[aria-selected='true'] .DocSearch-Hit-path,
1646
+ .DocSearch-Hit[aria-selected='true'] .DocSearch-Hit-icon,
1647
+ .DocSearch-Hit[aria-selected='true'] .DocSearch-Hit-action {
1648
+ color: rgba(255, 255, 255, 0.9) !important;
1649
+ }
1650
+
1651
+ .DocSearch-Hit mark {
1652
+ color: var(--docsearch-highlight-color) !important;
1653
+ background: transparent !important;
1654
+ font-weight: 600 !important;
1655
+ }
1656
+
1657
+ .DocSearch-Hit[aria-selected='true'] mark {
1658
+ color: rgba(255, 255, 255, 1) !important;
1659
+ text-decoration: underline !important;
1660
+ background: transparent !important;
1661
+ }
1662
+
1663
+ /* Hit icon */
1664
+ .DocSearch-Hit-icon {
1665
+ color: var(--docsearch-muted-color) !important;
1666
+ }
1667
+
1668
+ /* ── Footer - keyboard hints, NO Algolia branding ───────────────────── */
1669
+ .DocSearch-Footer {
1670
+ border-radius: 0 0 12px 12px !important;
1671
+ border-top: 1px solid var(--ink-100) !important;
1672
+ background: var(--docsearch-footer-background) !important;
1673
+ box-shadow: none !important;
1674
+ padding: 10px 16px !important;
1675
+ display: flex !important;
1676
+ align-items: center !important;
1677
+ justify-content: flex-start !important;
1678
+ }
1679
+
1680
+ /* Hide Algolia logo */
1681
+ .DocSearch-Logo,
1682
+ .DocSearch-Footer a[href*='algolia'],
1683
+ .DocSearch-PoweredBy {
1684
+ display: none !important;
1685
+ }
1686
+
1687
+ /* Keyboard shortcut labels in footer */
1688
+ .DocSearch-Commands {
1689
+ gap: 16px !important;
1690
+ }
1691
+
1692
+ .DocSearch-Commands-Key {
1693
+ background: transparent !important;
1694
+ box-shadow: none !important;
1695
+ border: 1px solid var(--ink-300) !important;
1696
+ border-radius: 4px !important;
1697
+ color: var(--ink-400) !important;
1698
+ font-family: var(--ifm-font-family-monospace) !important;
1699
+ font-size: 10px !important;
1700
+ padding: 2px 5px !important;
1701
+ min-width: 18px !important;
1702
+ text-align: center !important;
1703
+ line-height: 1.4 !important;
1704
+ }
1705
+
1706
+ [data-theme='dark'] .DocSearch-Commands-Key {
1707
+ border-color: #2a3157 !important;
1708
+ color: #6b7494 !important;
1709
+ }
1710
+
1711
+ .DocSearch-Label {
1712
+ font-size: 11px !important;
1713
+ color: var(--ink-400) !important;
1714
+ }
1715
+
1716
+ /* Empty / no results state */
1717
+ .DocSearch-NoResults-Prefill-List,
1718
+ .DocSearch-NoResults {
1719
+ padding: 20px !important;
1720
+ }
1721
+
1722
+ .DocSearch-NoResults-Prefill-List .DocSearch-Hit-source {
1723
+ padding-left: 0 !important;
1724
+ }
1725
+
1726
+ /* Start screen (recent searches / favorites) */
1727
+ .DocSearch-StartScreen {
1728
+ padding: 20px !important;
1729
+ }
1730
+
1731
+ /* Hit-action button (clipboard icon on right) */
1732
+ .DocSearch-Hit-action {
1733
+ color: var(--docsearch-muted-color) !important;
1734
+ }
1735
+
1736
+ .DocSearch-Hit[aria-selected='true'] .DocSearch-Hit-action:hover {
1737
+ color: #ffffff !important;
1738
+ }
1739
+
1740
+ /* ── /search dedicated search results page ─────────────────────────── */
1741
+ .search-page-wrapper,
1742
+ [class*='searchResultsColumn'],
1743
+ [class*='SearchPage'] {
1744
+ max-width: 760px !important;
1745
+ margin: 0 auto !important;
1746
+ padding: 40px 24px !important;
1747
+ }
1748
+
1749
+ /* The DocSearch container on the search page opens in-page, not as overlay */
1750
+ .DocSearch-Container--Stalled,
1751
+ .DocSearch-Container {
1752
+ /* When rendered on /search page, remove the fixed overlay */
1753
+ }
1754
+
1755
+ /* On the /search page, the DocSearch opens as an overlay - this makes
1756
+ the backdrop less prominent since users are already on a search-focused page */
1757
+ html[data-search-page] .DocSearch-Container {
1758
+ background: transparent !important;
1759
+ }
1760
+
1761
+ /* ── Page layout fixes ─────────────────────────────────────────────── */
1762
+ .docsWrapper_bSxm {
1763
+ padding-top: 0 !important;
1764
+ margin-top: 0 !important;
1765
+ }
1766
+
1767
+ .docMainContainer_TBSr {
1768
+ padding-top: 0 !important;
1769
+ margin-top: 0 !important;
1770
+ margin-left: 0 !important;
1771
+ flex: 1 !important;
1772
+ }
1773
+
1774
+ .docMainContainer_TBSr .container {
1775
+ padding-top: 1rem !important;
1776
+ }
1777
+
1778
+ /* Subtle paper texture for the doc background */
1779
+ .theme-doc-markdown,
1780
+ article {
1781
+ background: var(--ifm-background-color);
1782
+ }
1783
+
1784
+ /* ── Selection ─────────────────────────────────────────────────────── */
1785
+ ::selection {
1786
+ background: var(--iris-100);
1787
+ color: var(--ink-900);
1788
+ }
1789
+
1790
+ [data-theme='dark'] ::selection {
1791
+ background: rgba(129, 140, 248, 0.3);
1792
+ color: var(--ink-900);
1793
+ }
1794
+
1795
+ /* ── Scrollbar (subtle, design-matching) ───────────────────────────── */
1796
+ * {
1797
+ scrollbar-width: thin;
1798
+ scrollbar-color: var(--ink-200) transparent;
1799
+ }
1800
+
1801
+ *::-webkit-scrollbar { width: 8px; height: 8px; }
1802
+ *::-webkit-scrollbar-track { background: transparent; }
1803
+ *::-webkit-scrollbar-thumb {
1804
+ background: var(--ink-200);
1805
+ border-radius: 4px;
1806
+ }
1807
+ *::-webkit-scrollbar-thumb:hover { background: var(--ink-300); }
1808
+
1809
+ /* ── Sidebar section labels (Products / Platform / Reference / About) ─ */
1810
+ .sidebar-section-label {
1811
+ font-size: 14px;
1812
+ font-weight: 700;
1813
+ text-transform: uppercase;
1814
+ letter-spacing: 0.08em;
1815
+ color: var(--ink-400);
1816
+ padding: 14px 0 6px;
1817
+ margin-top: 8px;
1818
+ border-top: 1px solid var(--ink-100);
1819
+ text-align: left;
1820
+ }
1821
+ .sidebar-section-label--sub {
1822
+ font-size: 11px;
1823
+ font-weight: 600;
1824
+ padding: 10px 0 4px;
1825
+ text-transform: uppercase;
1826
+ letter-spacing: 0.06em;
1827
+ color: var(--ink-400);
1828
+ text-align: left;
1829
+ }
1830
+ .menu > .menu__list > li:first-child .sidebar-section-label,
1831
+ .theme-doc-sidebar-menu > li:first-child .sidebar-section-label {
1832
+ border-top: 0;
1833
+ margin-top: 0;
1834
+ }
1835
+
1836
+ /* DocItem layout renders the H1 from frontmatter; hide the markdown body's
1837
+ first H1 to avoid duplication. */
1838
+ .theme-doc-markdown > header > h1,
1839
+ .markdown > header > h1,
1840
+ .theme-doc-markdown > article > h1:first-of-type {
1841
+ display: none;
1842
+ }
1843
+
1844
+
1845
+ /* Chat sidebar - push layout (navbar excluded) */
1846
+ .main-wrapper {
1847
+ transition: margin-right 0.3s ease-in-out;
1848
+ }
1849
+
1850
+ body.chat-open .main-wrapper {
1851
+ margin-right: 400px;
1852
+ }
1853
+
1854
+ @media (max-width: 480px) {
1855
+ body.chat-open .main-wrapper {
1856
+ margin-right: 0;
1857
+ }
1858
+ }