@ox-content/vite-plugin 2.90.0 → 3.0.0-alpha.10

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,2169 @@
1
+ :root {
2
+ color-scheme: light dark;
3
+ --octc-sidebar-width: 260px;
4
+ --octc-header-height: 60px;
5
+ --octc-mobile-footer-height: 56px;
6
+ --octc-max-content-width: 960px;
7
+ --octc-mobile-gutter: clamp(1rem, 4vw, 1.25rem);
8
+ --octc-font-sans: "IBM Plex Sans", "Avenir Next", "Segoe UI Variable", "Segoe UI", sans-serif;
9
+ --octc-font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;
10
+ --octc-color-bg: #ffffff;
11
+ --octc-color-bg-alt: #f5f7fb;
12
+ --octc-color-text: #131a30;
13
+ --octc-color-text-muted: #4f607b;
14
+ --octc-color-border: #d2dbea;
15
+ --octc-color-primary: #4f6fae;
16
+ --octc-color-primary-hover: #425f96;
17
+ --octc-color-code-bg: #101a31;
18
+ --octc-color-code-bg-top: #18264a;
19
+ --octc-color-code-text: #edf3ff;
20
+ --octc-color-code-line-highlight: rgba(56, 189, 248, 0.16);
21
+ --octc-color-code-line-warning: rgba(245, 158, 11, 0.18);
22
+ --octc-color-code-line-warning-border: #f59e0b;
23
+ --octc-color-code-line-error: rgba(239, 68, 68, 0.18);
24
+ --octc-color-code-line-error-border: #ef4444;
25
+ --octc-color-code-line-add: rgba(34, 197, 94, 0.16);
26
+ --octc-color-code-line-add-border: #22c55e;
27
+ --octc-color-code-line-remove: rgba(248, 113, 113, 0.14);
28
+ --octc-color-code-line-remove-border: #ef4444;
29
+ --octc-color-code-line-focus: rgba(79, 111, 174, 0.16);
30
+ --octc-color-code-line-dim: 0.45;
31
+ --octc-color-code-title-bg: #18264a;
32
+ --octc-color-code-title-text: #dce7ff;
33
+ --octc-color-code-title-border: rgba(167, 183, 213, 0.26);
34
+ --octc-color-code-line-number: rgba(177, 191, 219, 0.78);
35
+ --octc-color-code-frame-border: rgba(147, 166, 200, 0.46);
36
+ --octc-brand-violet: #4f6fae;
37
+ --octc-brand-cyan: #91ede9;
38
+ --octc-brand-lime: #b9ff66;
39
+ --octc-brand-coral: #ff915c;
40
+ --octc-brand-navy: #2b3c5a;
41
+ --octc-brand-violet-rgb: 79, 111, 174;
42
+ --octc-brand-cyan-rgb: 145, 237, 233;
43
+ --octc-brand-lime-rgb: 185, 255, 102;
44
+ --octc-brand-coral-rgb: 255, 145, 92;
45
+ --octc-color-backdrop: rgba(15, 23, 42, 0.48);
46
+ --octc-surface-glass: #f7f9fc;
47
+ --octc-surface-line: #e2e9f3;
48
+ --octc-surface-noise-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23noise)' opacity='0.062'/%3E%3C/svg%3E");
49
+ --octc-surface-noise-size: 164px 164px;
50
+ --octc-color-on-primary: var(--octc-color-bg);
51
+ --octc-color-tip: #0891b2;
52
+ --octc-color-info: #2563eb;
53
+ --octc-color-warning: #d97706;
54
+ --octc-color-danger: #dc2626;
55
+ --octc-color-success: #16a34a;
56
+ --octc-color-deprecated: #7c3aed;
57
+ --octc-color-required: #c2410c;
58
+ --octc-focus-ring: 2px solid var(--octc-color-primary);
59
+ --octc-focus-offset: 2px;
60
+ --octc-motion-base: 150ms;
61
+ --octc-motion-ease: ease;
62
+ --octc-code-pad-block: 1rem;
63
+ --octc-code-pad-inline: 1.25rem;
64
+ --octc-code-title-pad-block: 0.75rem;
65
+ --octc-code-title-gap: 0.875rem;
66
+ --octc-table-cell-pad-block: 0.75rem;
67
+ --octc-table-cell-pad-inline: 1rem;
68
+ --octc-touch-target: 44px;
69
+ }
70
+ [data-theme="light"] {
71
+ color-scheme: light;
72
+ }
73
+ [data-theme="dark"] {
74
+ color-scheme: dark;
75
+ --octc-color-bg: #060816;
76
+ --octc-color-bg-alt: #0d1528;
77
+ --octc-color-text: #ebf2ff;
78
+ --octc-color-text-muted: #8ea0bf;
79
+ --octc-color-border: #223252;
80
+ --octc-color-primary: #86a4da;
81
+ --octc-color-primary-hover: #a3bbe8;
82
+ --octc-color-code-bg: #0a1020;
83
+ --octc-color-code-bg-top: #0a1020;
84
+ --octc-color-code-text: #e7f0ff;
85
+ --octc-color-code-line-highlight: rgba(14, 165, 233, 0.2);
86
+ --octc-color-code-line-warning: rgba(245, 158, 11, 0.2);
87
+ --octc-color-code-line-warning-border: #f59e0b;
88
+ --octc-color-code-line-error: rgba(239, 68, 68, 0.22);
89
+ --octc-color-code-line-error-border: #f87171;
90
+ --octc-color-code-line-add: rgba(34, 197, 94, 0.18);
91
+ --octc-color-code-line-add-border: #4ade80;
92
+ --octc-color-code-line-remove: rgba(248, 113, 113, 0.18);
93
+ --octc-color-code-line-remove-border: #f87171;
94
+ --octc-color-code-line-focus: rgba(134, 164, 218, 0.16);
95
+ --octc-color-code-line-dim: 0.35;
96
+ --octc-color-code-title-bg: rgba(15, 23, 42, 0.82);
97
+ --octc-color-code-title-text: #d7e2f7;
98
+ --octc-color-code-title-border: rgba(131, 151, 184, 0.22);
99
+ --octc-color-code-line-number: rgba(131, 151, 184, 0.78);
100
+ --octc-color-code-frame-border: rgba(34, 50, 82, 0.92);
101
+ --octc-color-backdrop: rgba(2, 6, 18, 0.68);
102
+ --octc-surface-glass: #0c1324;
103
+ --octc-surface-line: #1b2944;
104
+ --octc-surface-noise-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.25' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23noise)' opacity='0.098'/%3E%3C/svg%3E");
105
+ }
106
+ @media (prefers-color-scheme: dark) {
107
+ :root:not([data-theme="light"]) {
108
+ --octc-color-bg: #060816;
109
+ --octc-color-bg-alt: #0d1528;
110
+ --octc-color-text: #ebf2ff;
111
+ --octc-color-text-muted: #8ea0bf;
112
+ --octc-color-border: #223252;
113
+ --octc-color-primary: #86a4da;
114
+ --octc-color-primary-hover: #a3bbe8;
115
+ --octc-color-code-bg: #0a1020;
116
+ --octc-color-code-bg-top: #0a1020;
117
+ --octc-color-code-text: #e7f0ff;
118
+ --octc-color-code-line-highlight: rgba(14, 165, 233, 0.2);
119
+ --octc-color-code-line-warning: rgba(245, 158, 11, 0.2);
120
+ --octc-color-code-line-warning-border: #f59e0b;
121
+ --octc-color-code-line-error: rgba(239, 68, 68, 0.22);
122
+ --octc-color-code-line-error-border: #f87171;
123
+ --octc-color-code-line-add: rgba(34, 197, 94, 0.18);
124
+ --octc-color-code-line-add-border: #4ade80;
125
+ --octc-color-code-line-remove: rgba(248, 113, 113, 0.18);
126
+ --octc-color-code-line-remove-border: #f87171;
127
+ --octc-color-code-line-focus: rgba(134, 164, 218, 0.16);
128
+ --octc-color-code-line-dim: 0.35;
129
+ --octc-color-code-title-bg: rgba(15, 23, 42, 0.82);
130
+ --octc-color-code-title-text: #d7e2f7;
131
+ --octc-color-code-title-border: rgba(131, 151, 184, 0.22);
132
+ --octc-color-code-line-number: rgba(131, 151, 184, 0.78);
133
+ --octc-color-code-frame-border: rgba(34, 50, 82, 0.92);
134
+ --octc-color-backdrop: rgba(2, 6, 18, 0.68);
135
+ --octc-surface-glass: #0c1324;
136
+ --octc-surface-line: #1b2944;
137
+ --octc-surface-noise-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.25' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23noise)' opacity='0.098'/%3E%3C/svg%3E");
138
+ }
139
+ }
140
+ * {
141
+ box-sizing: border-box;
142
+ margin: 0;
143
+ padding: 0;
144
+ }
145
+
146
+ html {
147
+ -webkit-text-size-adjust: 100%;
148
+ text-size-adjust: 100%;
149
+ scroll-padding-top: calc(var(--octc-header-height) + 1rem);
150
+ }
151
+ @media (prefers-reduced-motion: no-preference) {
152
+ html {
153
+ scroll-behavior: smooth;
154
+ }
155
+ }
156
+ body {
157
+ font-family: var(--octc-font-sans);
158
+ line-height: 1.7;
159
+ color: var(--octc-color-text);
160
+ min-height: 100vh;
161
+ background: var(--octc-color-bg);
162
+ background-image: var(--octc-surface-noise-image);
163
+ background-size: var(--octc-surface-noise-size);
164
+ background-repeat: repeat;
165
+ background-blend-mode: soft-light;
166
+ overflow-x: hidden;
167
+ }
168
+ body.search-open {
169
+ overflow: hidden;
170
+ }
171
+ body.menu-open {
172
+ overflow: hidden;
173
+ overscroll-behavior: none;
174
+ }
175
+ a {
176
+ color: var(--octc-color-primary);
177
+ text-decoration: none;
178
+ text-decoration-color: color-mix(in srgb, var(--octc-color-primary) 45%, transparent);
179
+ }
180
+ a:hover {
181
+ color: var(--octc-color-primary-hover);
182
+ text-decoration: underline;
183
+ }
184
+ .header {
185
+ position: fixed;
186
+ top: 0;
187
+ left: 0;
188
+ right: 0;
189
+ height: var(--octc-header-height);
190
+ background: color-mix(in srgb, var(--octc-color-bg) 92%, var(--octc-color-bg-alt));
191
+ border-bottom: 1px solid
192
+ color-mix(in srgb, var(--octc-color-border) 75%, var(--octc-surface-line));
193
+ display: flex;
194
+ align-items: center;
195
+ padding: 0 1.5rem;
196
+ z-index: 100;
197
+ }
198
+ .header,
199
+ .search-modal,
200
+ .mobile-footer,
201
+ .content blockquote.ox-callout {
202
+ background-image: var(--octc-surface-noise-image);
203
+ background-size: var(--octc-surface-noise-size);
204
+ background-repeat: repeat;
205
+ background-blend-mode: soft-light;
206
+ }
207
+ .header-title {
208
+ display: inline-flex;
209
+ align-items: center;
210
+ gap: 0.75rem;
211
+ font-size: 1.25rem;
212
+ font-weight: 700;
213
+ letter-spacing: -0.02em;
214
+ color: var(--octc-color-text);
215
+ }
216
+ .header-title--logo-only {
217
+ gap: 0;
218
+ }
219
+ .header-logo {
220
+ display: block;
221
+ margin-right: 8px;
222
+ vertical-align: middle;
223
+ }
224
+ .header-title--logo-only .header-logo {
225
+ margin-right: 0;
226
+ }
227
+ .header-title:hover {
228
+ text-decoration: none;
229
+ }
230
+ .theme-asset--dark {
231
+ display: none;
232
+ }
233
+ [data-theme="dark"] .theme-asset--light {
234
+ display: none;
235
+ }
236
+ [data-theme="dark"] .theme-asset--dark {
237
+ display: block;
238
+ }
239
+ [data-theme="light"] .theme-asset--light {
240
+ display: block;
241
+ }
242
+ [data-theme="light"] .theme-asset--dark {
243
+ display: none;
244
+ }
245
+ .menu-toggle {
246
+ display: none;
247
+ background: none;
248
+ border: none;
249
+ cursor: pointer;
250
+ padding: 0.5rem;
251
+ margin-right: 0.75rem;
252
+ }
253
+ .menu-toggle svg {
254
+ display: block;
255
+ }
256
+ .menu-toggle path {
257
+ stroke: var(--octc-color-text);
258
+ }
259
+ .header-actions {
260
+ margin-left: auto;
261
+ display: flex;
262
+ align-items: center;
263
+ gap: 0.5rem;
264
+ }
265
+ .ox-header-select {
266
+ position: relative;
267
+ }
268
+ .ox-header-select > button {
269
+ display: inline-flex;
270
+ align-items: center;
271
+ background: none;
272
+ border: none;
273
+ border-radius: 4px;
274
+ color: var(--octc-color-text-muted);
275
+ cursor: pointer;
276
+ font: inherit;
277
+ font-size: 0.875rem;
278
+ padding: 0.5rem 0.6rem;
279
+ white-space: nowrap;
280
+ }
281
+ .ox-header-select > button::after {
282
+ content: "";
283
+ width: 0.35em;
284
+ height: 0.35em;
285
+ border-right: 1.5px solid currentColor;
286
+ border-bottom: 1.5px solid currentColor;
287
+ transform: rotate(45deg);
288
+ margin-inline-start: 0.4rem;
289
+ margin-bottom: 0.15em;
290
+ }
291
+ .ox-header-select > button:hover,
292
+ .ox-header-select > button[aria-expanded="true"] {
293
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 82%, var(--octc-color-primary) 12%);
294
+ color: var(--octc-color-text);
295
+ }
296
+ .ox-header-select-menu {
297
+ display: none;
298
+ position: absolute;
299
+ top: calc(100% + 0.35rem);
300
+ inset-inline-end: 0;
301
+ min-width: 8rem;
302
+ margin: 0;
303
+ padding: 0.4rem 0;
304
+ list-style: none;
305
+ background: var(--octc-color-bg);
306
+ border: 1px solid var(--octc-color-border);
307
+ border-radius: 6px;
308
+ z-index: 120;
309
+ }
310
+ .ox-header-select > button[aria-expanded="true"] + .ox-header-select-menu {
311
+ display: block;
312
+ }
313
+ .ox-header-select-menu a,
314
+ .ox-header-select-menu span {
315
+ display: block;
316
+ padding: 0.4rem 0.85rem;
317
+ color: var(--octc-color-text);
318
+ text-decoration: none;
319
+ white-space: nowrap;
320
+ }
321
+ .ox-header-select-menu a:hover {
322
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 82%, var(--octc-color-primary) 12%);
323
+ color: var(--octc-color-text);
324
+ text-decoration: none;
325
+ }
326
+ .ox-header-select-menu [aria-current="page"] {
327
+ color: var(--octc-color-text);
328
+ font-weight: 600;
329
+ }
330
+ .ox-version-badge {
331
+ display: inline-block;
332
+ margin-inline-start: 0.35rem;
333
+ font-size: 0.75em;
334
+ color: var(--octc-color-text-muted);
335
+ }
336
+ .ox-version-banner {
337
+ padding: 0.6rem 1rem;
338
+ border-bottom: 1px solid var(--octc-color-border);
339
+ background: var(--octc-color-bg-alt);
340
+ color: var(--octc-color-text);
341
+ }
342
+ .ox-version-banner--unreleased {
343
+ background: color-mix(
344
+ in srgb,
345
+ var(--octc-color-code-line-warning-border) 16%,
346
+ var(--octc-color-bg)
347
+ );
348
+ }
349
+ .ox-version-banner--unmaintained {
350
+ background: var(--octc-color-bg-alt);
351
+ color: var(--octc-color-text-muted);
352
+ }
353
+ .social-link {
354
+ display: flex;
355
+ align-items: center;
356
+ justify-content: center;
357
+ padding: 0.5rem;
358
+ border-radius: 4px;
359
+ color: var(--octc-color-text-muted);
360
+ }
361
+ .social-link:hover {
362
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 82%, var(--octc-color-primary) 12%);
363
+ color: var(--octc-color-text);
364
+ text-decoration: none;
365
+ }
366
+ .social-link svg {
367
+ display: block;
368
+ }
369
+ .search-button {
370
+ display: flex;
371
+ align-items: center;
372
+ gap: 0.5rem;
373
+ padding: 0.5rem 0.75rem;
374
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 90%, var(--octc-color-primary) 10%);
375
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 88%, var(--octc-color-bg));
376
+ border-radius: 4px;
377
+ color: var(--octc-color-text-muted);
378
+ cursor: pointer;
379
+ font-size: 0.875rem;
380
+ }
381
+ .search-button:hover {
382
+ border-color: var(--octc-color-primary);
383
+ color: var(--octc-color-text);
384
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 82%, var(--octc-color-primary) 10%);
385
+ }
386
+ .search-button svg {
387
+ width: 16px;
388
+ height: 16px;
389
+ }
390
+ .search-button kbd {
391
+ padding: 0.125rem 0.375rem;
392
+ background: var(--octc-color-bg);
393
+ border: 1px solid var(--octc-color-border);
394
+ border-radius: 4px;
395
+ font-family: var(--octc-font-mono);
396
+ font-size: 0.75rem;
397
+ }
398
+ @media (max-width: 640px) {
399
+ .search-button span,
400
+ .search-button kbd {
401
+ display: none;
402
+ }
403
+ .search-button {
404
+ padding: 0.5rem;
405
+ }
406
+ }
407
+ .search-modal-overlay {
408
+ display: none;
409
+ position: fixed;
410
+ inset: 0;
411
+ z-index: 200;
412
+ justify-content: center;
413
+ align-items: flex-start;
414
+ padding: clamp(4rem, 10vh, 7rem) 1rem 1rem;
415
+ overflow-y: auto;
416
+ overscroll-behavior: contain;
417
+ background: var(--octc-color-backdrop);
418
+ -webkit-backdrop-filter: blur(14px) saturate(120%);
419
+ backdrop-filter: blur(14px) saturate(120%);
420
+ }
421
+ .search-modal-overlay.open {
422
+ display: flex;
423
+ }
424
+ .search-modal {
425
+ width: 100%;
426
+ max-width: 560px;
427
+ background: var(--octc-color-bg);
428
+ border: 1px solid var(--octc-color-border);
429
+ border-radius: 4px;
430
+ overflow: hidden;
431
+ height: 70vh;
432
+ max-height: 70vh;
433
+ display: flex;
434
+ flex-direction: column;
435
+ }
436
+ .search-header {
437
+ display: flex;
438
+ align-items: center;
439
+ gap: 0.75rem;
440
+ padding: 1rem;
441
+ border-bottom: 1px solid var(--octc-color-border);
442
+ }
443
+ .search-header svg {
444
+ flex-shrink: 0;
445
+ color: var(--octc-color-text-muted);
446
+ }
447
+ .search-input {
448
+ flex: 1;
449
+ background: none;
450
+ border: none;
451
+ outline: none;
452
+ font-size: 1rem;
453
+ color: var(--octc-color-text);
454
+ }
455
+ .search-input::placeholder {
456
+ color: var(--octc-color-text-muted);
457
+ }
458
+ .search-close {
459
+ padding: 0.25rem 0.5rem;
460
+ background: var(--octc-color-bg-alt);
461
+ border: 1px solid var(--octc-color-border);
462
+ border-radius: 4px;
463
+ color: var(--octc-color-text-muted);
464
+ font-family: var(--octc-font-mono);
465
+ font-size: 0.75rem;
466
+ cursor: pointer;
467
+ }
468
+ .search-results {
469
+ flex: 1;
470
+ overflow-y: auto;
471
+ padding: 0.5rem;
472
+ }
473
+ .search-result {
474
+ display: block;
475
+ padding: 0.75rem 1rem;
476
+ border-radius: 4px;
477
+ color: var(--octc-color-text);
478
+ text-decoration: none;
479
+ }
480
+ .search-result:hover,
481
+ .search-result.selected {
482
+ background: var(--octc-color-bg-alt);
483
+ text-decoration: none;
484
+ }
485
+ .search-result-title {
486
+ display: flex;
487
+ align-items: center;
488
+ gap: 0.5rem;
489
+ flex-wrap: wrap;
490
+ font-weight: 600;
491
+ font-size: 0.875rem;
492
+ margin-bottom: 0.25rem;
493
+ }
494
+ .search-result-scope {
495
+ display: inline-flex;
496
+ align-items: center;
497
+ padding: 0.125rem 0.5rem;
498
+ border-radius: 4px;
499
+ background: color-mix(in srgb, var(--octc-color-primary) 14%, transparent);
500
+ color: var(--octc-color-primary);
501
+ font-size: 0.6875rem;
502
+ font-weight: 700;
503
+ letter-spacing: 0.04em;
504
+ text-transform: uppercase;
505
+ }
506
+ .search-result-snippet {
507
+ font-size: 0.8125rem;
508
+ color: var(--octc-color-text-muted);
509
+ }
510
+ .search-empty {
511
+ padding: 2rem 1rem;
512
+ text-align: center;
513
+ color: var(--octc-color-text-muted);
514
+ }
515
+ .search-footer {
516
+ display: flex;
517
+ align-items: center;
518
+ justify-content: center;
519
+ gap: 1rem;
520
+ padding: 0.75rem 1rem;
521
+ border-top: 1px solid var(--octc-color-border);
522
+ background: var(--octc-color-bg-alt);
523
+ font-size: 0.75rem;
524
+ color: var(--octc-color-text-muted);
525
+ }
526
+ .search-footer kbd {
527
+ padding: 0.125rem 0.375rem;
528
+ background: var(--octc-color-bg);
529
+ border: 1px solid var(--octc-color-border);
530
+ border-radius: 4px;
531
+ font-family: var(--octc-font-mono);
532
+ }
533
+ .theme-toggle {
534
+ background: none;
535
+ border: none;
536
+ cursor: pointer;
537
+ padding: 0.5rem;
538
+ border-radius: 4px;
539
+ color: var(--octc-color-text-muted);
540
+ }
541
+ .theme-toggle:hover {
542
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 82%, var(--octc-color-primary) 12%);
543
+ color: var(--octc-color-text);
544
+ }
545
+ .theme-toggle svg {
546
+ display: block;
547
+ width: 20px;
548
+ height: 20px;
549
+ }
550
+ .theme-toggle .icon-sun {
551
+ display: none;
552
+ }
553
+ .theme-toggle .icon-moon {
554
+ display: block;
555
+ }
556
+ [data-theme="dark"] .theme-toggle .icon-sun {
557
+ display: block;
558
+ }
559
+ [data-theme="dark"] .theme-toggle .icon-moon {
560
+ display: none;
561
+ }
562
+ @media (prefers-color-scheme: dark) {
563
+ :root:not([data-theme="light"]) .theme-toggle .icon-sun {
564
+ display: block;
565
+ }
566
+ :root:not([data-theme="light"]) .theme-toggle .icon-moon {
567
+ display: none;
568
+ }
569
+ :root:not([data-theme="light"]) .theme-asset--light {
570
+ display: none;
571
+ }
572
+ :root:not([data-theme="light"]) .theme-asset--dark {
573
+ display: block;
574
+ }
575
+ }
576
+ /* Mobile footer theme icons */
577
+ .mobile-footer-btn .icon-sun {
578
+ display: none;
579
+ }
580
+ .mobile-footer-btn .icon-moon {
581
+ display: block;
582
+ }
583
+ [data-theme="dark"] .mobile-footer-btn .icon-sun {
584
+ display: block;
585
+ }
586
+ [data-theme="dark"] .mobile-footer-btn .icon-moon {
587
+ display: none;
588
+ }
589
+ @media (prefers-color-scheme: dark) {
590
+ :root:not([data-theme="light"]) .mobile-footer-btn .icon-sun {
591
+ display: block;
592
+ }
593
+ :root:not([data-theme="light"]) .mobile-footer-btn .icon-moon {
594
+ display: none;
595
+ }
596
+ }
597
+ .layout {
598
+ display: flex;
599
+ padding-top: var(--octc-header-height);
600
+ min-height: 100vh;
601
+ }
602
+ .sidebar {
603
+ position: fixed;
604
+ top: var(--octc-header-height);
605
+ left: 0;
606
+ bottom: 0;
607
+ width: var(--octc-sidebar-width);
608
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 16%, var(--octc-color-bg));
609
+ border-right: 1px solid color-mix(in srgb, var(--octc-color-border) 48%, transparent);
610
+ border-radius: 0;
611
+ overflow-y: auto;
612
+ overscroll-behavior: contain;
613
+ padding: 1rem 0.875rem 1.5rem;
614
+ scrollbar-width: thin;
615
+ scrollbar-color: var(--octc-color-border) transparent;
616
+ }
617
+ .entry-page .sidebar--entry {
618
+ display: none;
619
+ }
620
+
621
+ [data-theme="dark"] .sidebar {
622
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 28%, var(--octc-color-bg));
623
+ border-color: color-mix(in srgb, var(--octc-color-border) 52%, transparent);
624
+ }
625
+
626
+ @media (prefers-color-scheme: dark) {
627
+ :root:not([data-theme="light"]) .sidebar {
628
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 28%, var(--octc-color-bg));
629
+ border-color: color-mix(in srgb, var(--octc-color-border) 52%, transparent);
630
+ }
631
+ }
632
+ .sidebar nav {
633
+ display: flex;
634
+ flex-direction: column;
635
+ gap: 1rem;
636
+ }
637
+ .sidebar::-webkit-scrollbar {
638
+ width: 6px;
639
+ }
640
+ .sidebar::-webkit-scrollbar-track {
641
+ background: transparent;
642
+ }
643
+ .sidebar::-webkit-scrollbar-thumb {
644
+ background: var(--octc-color-border);
645
+ border-radius: 3px;
646
+ }
647
+ .sidebar::-webkit-scrollbar-thumb:hover {
648
+ background: var(--octc-color-text-muted);
649
+ }
650
+ .nav-section {
651
+ margin-bottom: 0;
652
+ }
653
+ .nav-title {
654
+ font-size: 0.6875rem;
655
+ font-weight: 600;
656
+ text-transform: uppercase;
657
+ letter-spacing: 0.08em;
658
+ color: var(--octc-color-text-muted);
659
+ margin-bottom: 0.4rem;
660
+ padding: 0 0.625rem;
661
+ }
662
+ .nav-title--summary,
663
+ .nav-details > .nav-summary {
664
+ display: flex;
665
+ align-items: flex-start;
666
+ min-width: 0;
667
+ list-style: none;
668
+ cursor: pointer;
669
+ }
670
+ .nav-title--summary::-webkit-details-marker,
671
+ .nav-summary::-webkit-details-marker {
672
+ display: none;
673
+ }
674
+ .nav-title--summary::before,
675
+ .nav-details > .nav-summary::before {
676
+ content: "";
677
+ flex: 0 0 auto;
678
+ width: 0.4rem;
679
+ height: 0.4rem;
680
+ margin-block-start: 0.32rem;
681
+ margin-inline-end: 0.45rem;
682
+ border-right: 1.5px solid currentColor;
683
+ border-bottom: 1.5px solid currentColor;
684
+ color: var(--octc-color-text-muted);
685
+ transform: rotate(-45deg);
686
+ transform-origin: center;
687
+ transition: transform var(--octc-motion-base) var(--octc-motion-ease);
688
+ }
689
+ .nav-details > .nav-summary::before {
690
+ margin-block-start: 0.8rem;
691
+ margin-inline-start: 0.45rem;
692
+ }
693
+ .nav-section--collapsible[open] > .nav-title--summary::before,
694
+ .nav-details[open] > .nav-summary::before {
695
+ transform: rotate(45deg);
696
+ }
697
+ [dir="rtl"] .nav-section--collapsible:not([open]) > .nav-title--summary::before,
698
+ [dir="rtl"] .nav-details:not([open]) > .nav-summary::before {
699
+ transform: rotate(135deg);
700
+ }
701
+ .nav-list {
702
+ list-style: none;
703
+ display: flex;
704
+ flex-direction: column;
705
+ gap: 0.125rem;
706
+ }
707
+ .nav-list--nested {
708
+ margin-inline-start: 0.65rem;
709
+ padding-inline-start: 0.75rem;
710
+ border-inline-start: 1px solid color-mix(in srgb, var(--octc-color-border) 64%, transparent);
711
+ }
712
+ .nav-list--nested .nav-list--nested {
713
+ margin-inline-start: 0.4rem;
714
+ padding-inline-start: 0.65rem;
715
+ }
716
+ .nav-item {
717
+ margin: 0;
718
+ }
719
+ .nav-link {
720
+ display: block;
721
+ padding: 0.45rem 0.625rem;
722
+ border-radius: 0;
723
+ border: 0;
724
+ color: color-mix(in srgb, var(--octc-color-text) 92%, var(--octc-color-text-muted));
725
+ font-size: 0.875rem;
726
+ }
727
+ .nav-link.active {
728
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 72%, transparent);
729
+ color: var(--octc-color-text);
730
+ font-weight: 600;
731
+ }
732
+ @media (any-hover: hover) and (any-pointer: fine) {
733
+ .nav-link:hover {
734
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 58%, transparent);
735
+ text-decoration: none;
736
+ color: var(--octc-color-text);
737
+ }
738
+ [data-theme="dark"] .nav-link:not(.active):hover {
739
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 42%, transparent);
740
+ }
741
+ .nav-link.active:hover {
742
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 72%, transparent);
743
+ color: var(--octc-color-text);
744
+ }
745
+ }
746
+ @media (any-hover: hover) and (any-pointer: fine) and (prefers-color-scheme: dark) {
747
+ :root:not([data-theme="light"]) .nav-link:not(.active):hover {
748
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 42%, transparent);
749
+ }
750
+ }
751
+ .nav-link--summary {
752
+ flex: 1;
753
+ min-width: 0;
754
+ padding-inline-start: 0.25rem;
755
+ overflow-wrap: anywhere;
756
+ }
757
+ @media (prefers-reduced-motion: reduce) {
758
+ .nav-title--summary::before,
759
+ .nav-details > .nav-summary::before {
760
+ transition: none;
761
+ }
762
+ .content pre.ox-code-block.has-focused .line,
763
+ .content pre.ox-code-block .ox-code-line--dimmed {
764
+ filter: none;
765
+ }
766
+ }
767
+ .main {
768
+ flex: 1;
769
+ margin-left: var(--octc-sidebar-width);
770
+ padding: 2rem;
771
+ min-width: 0;
772
+ overflow-x: hidden;
773
+ }
774
+ .main--with-toc {
775
+ padding-right: 2rem;
776
+ }
777
+ .content {
778
+ max-width: var(--octc-max-content-width);
779
+ margin: 0 auto;
780
+ overflow-wrap: break-word;
781
+ word-wrap: break-word;
782
+ word-break: break-word;
783
+ }
784
+ .last-updated {
785
+ max-width: var(--octc-max-content-width);
786
+ margin: 2rem auto 0;
787
+ padding-top: 1rem;
788
+ border-top: 1px solid color-mix(in srgb, var(--octc-color-border) 78%, transparent);
789
+ color: var(--octc-color-text-muted);
790
+ font-size: 0.875rem;
791
+ }
792
+ .pager {
793
+ max-width: var(--octc-max-content-width);
794
+ margin: 2rem auto 0;
795
+ padding-top: 1rem;
796
+ border-top: 1px solid color-mix(in srgb, var(--octc-color-border) 78%, transparent);
797
+ display: flex;
798
+ justify-content: space-between;
799
+ gap: 1.5rem;
800
+ font-size: 0.875rem;
801
+ }
802
+ .pager-link {
803
+ display: flex;
804
+ flex-direction: column;
805
+ gap: 0.2rem;
806
+ min-width: 0;
807
+ color: inherit;
808
+ text-decoration: none;
809
+ }
810
+ .pager-link--next {
811
+ margin-left: auto;
812
+ text-align: right;
813
+ }
814
+ .pager-label {
815
+ color: var(--octc-color-text-muted);
816
+ font-size: 0.75rem;
817
+ }
818
+ .pager-title {
819
+ color: var(--octc-color-text);
820
+ font-weight: 600;
821
+ }
822
+ .pager-link:hover .pager-title {
823
+ color: var(--octc-color-primary);
824
+ }
825
+ .ox-breadcrumbs {
826
+ max-width: var(--octc-max-content-width);
827
+ margin: 0 auto 1.25rem;
828
+ color: var(--octc-color-text-muted);
829
+ font-size: 0.875rem;
830
+ }
831
+ .ox-breadcrumbs-list {
832
+ display: flex;
833
+ flex-wrap: wrap;
834
+ align-items: center;
835
+ gap: 0.25rem 0;
836
+ list-style: none;
837
+ margin: 0;
838
+ padding: 0;
839
+ }
840
+ .ox-breadcrumbs-item {
841
+ display: inline-flex;
842
+ align-items: center;
843
+ }
844
+ .ox-breadcrumbs-item:not(:last-child)::after {
845
+ content: "/";
846
+ margin: 0 0.5rem;
847
+ color: color-mix(in srgb, var(--octc-color-text-muted) 80%, transparent);
848
+ }
849
+ .ox-breadcrumbs-link {
850
+ color: inherit;
851
+ text-decoration: none;
852
+ }
853
+ .ox-breadcrumbs-link:hover {
854
+ color: var(--octc-color-primary);
855
+ }
856
+ .ox-breadcrumbs-current {
857
+ color: var(--octc-color-text);
858
+ font-weight: 600;
859
+ }
860
+ .content h1 {
861
+ font-size: clamp(2.4rem, 5vw, 3.1rem);
862
+ margin-bottom: 1rem;
863
+ line-height: 1.08;
864
+ letter-spacing: -0.045em;
865
+ }
866
+ /* Vertical rhythm: body blocks (p, lists) sit 1rem apart, framed blocks (pre,
867
+ * tables, quotes, figures) 1.25rem, and headings clear more above than below —
868
+ * a section break should read bigger than a paragraph break, and the gap under
869
+ * a heading smaller than the gap over it. */
870
+ .content > :first-child {
871
+ margin-top: 0;
872
+ }
873
+ .content h2 {
874
+ font-size: 1.5rem;
875
+ margin-top: 2.75rem;
876
+ margin-bottom: 0.85rem;
877
+ padding-bottom: 0.4rem;
878
+ border-bottom: 1px solid color-mix(in srgb, var(--octc-color-border) 78%, transparent);
879
+ }
880
+ .content h3 {
881
+ font-size: 1.25rem;
882
+ margin-top: 2rem;
883
+ margin-bottom: 0.6rem;
884
+ }
885
+ .content h2 + h3 {
886
+ margin-top: 1.25rem;
887
+ }
888
+ .content h4 {
889
+ font-size: 1rem;
890
+ margin-top: 1.5rem;
891
+ margin-bottom: 0.5rem;
892
+ }
893
+ .content p {
894
+ margin-bottom: 1rem;
895
+ }
896
+ .content ul,
897
+ .content ol {
898
+ margin: 1rem 0;
899
+ padding-left: 1.5rem;
900
+ }
901
+ .content li {
902
+ margin: 0.3rem 0;
903
+ }
904
+ .content li > ul,
905
+ .content li > ol {
906
+ margin: 0.3rem 0;
907
+ }
908
+ .content blockquote {
909
+ border-left: 4px solid var(--octc-color-primary);
910
+ padding: 0.875rem 1rem 0.875rem 1.125rem;
911
+ margin: 1.25rem 0;
912
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 90%, var(--octc-color-primary) 10%);
913
+ border-radius: 0 4px 4px 0;
914
+ }
915
+ .content blockquote.ox-callout {
916
+ --octc-callout-accent: var(--octc-color-primary);
917
+ border-left-width: 3px;
918
+ border-left-color: var(--octc-callout-accent);
919
+ padding: 0.9rem 1rem;
920
+ border-radius: 4px;
921
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 92%, var(--octc-callout-accent) 8%);
922
+ }
923
+ .content blockquote.ox-callout.ox-callout--note,
924
+ .content blockquote.ox-callout.ox-callout--important {
925
+ --octc-callout-accent: var(--octc-color-primary);
926
+ }
927
+ .content blockquote.ox-callout.ox-callout--tip {
928
+ --octc-callout-accent: var(--octc-color-tip);
929
+ }
930
+ .content blockquote.ox-callout.ox-callout--warning {
931
+ --octc-callout-accent: var(--octc-color-warning);
932
+ }
933
+ .content blockquote.ox-callout.ox-callout--caution {
934
+ --octc-callout-accent: var(--octc-color-danger);
935
+ }
936
+ .content .ox-callout-title {
937
+ margin: 0 0 0.5rem;
938
+ font-size: 0.75rem;
939
+ font-weight: 700;
940
+ letter-spacing: 0.08em;
941
+ text-transform: uppercase;
942
+ color: var(--octc-callout-accent, var(--octc-color-primary));
943
+ }
944
+ .content blockquote.ox-callout > :last-child {
945
+ margin-bottom: 0;
946
+ }
947
+ .content blockquote.ox-callout > :not(.ox-callout-title):first-of-type {
948
+ margin-top: 0;
949
+ }
950
+ .content .ox-container {
951
+ --octc-container-accent: var(--octc-color-primary);
952
+ border-left: 3px solid var(--octc-container-accent);
953
+ padding: 0.9rem 1rem;
954
+ margin: 1.25rem 0;
955
+ border-radius: 4px;
956
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 92%, var(--octc-container-accent) 8%);
957
+ }
958
+ .content .ox-container--tip {
959
+ --octc-container-accent: var(--octc-color-tip);
960
+ }
961
+ .content .ox-container--warning,
962
+ .content .ox-container--caution {
963
+ --octc-container-accent: var(--octc-color-warning);
964
+ }
965
+ .content .ox-container--danger {
966
+ --octc-container-accent: var(--octc-color-danger);
967
+ }
968
+ .content .ox-container-title,
969
+ .content .ox-container summary {
970
+ margin: 0 0 0.5rem;
971
+ font-size: 0.75rem;
972
+ font-weight: 700;
973
+ letter-spacing: 0.08em;
974
+ text-transform: uppercase;
975
+ color: var(--octc-container-accent, var(--octc-color-primary));
976
+ }
977
+ .content .ox-container > :last-child {
978
+ margin-bottom: 0;
979
+ }
980
+ .content .ox-card-grid {
981
+ display: grid;
982
+ grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
983
+ gap: 1rem;
984
+ margin: 1.25rem 0;
985
+ }
986
+ .content .ox-card,
987
+ .content .ox-link-card {
988
+ display: block;
989
+ padding: 1rem 1.15rem;
990
+ border: 1px solid var(--octc-color-border);
991
+ border-radius: 8px;
992
+ background: var(--octc-color-bg-alt);
993
+ text-decoration: none;
994
+ color: inherit;
995
+ }
996
+ .content .ox-link-card:hover {
997
+ border-color: var(--octc-color-primary);
998
+ }
999
+ .content .ox-card-title,
1000
+ .content .ox-link-card-title {
1001
+ display: block;
1002
+ margin: 0 0 0.4rem;
1003
+ font-weight: 700;
1004
+ }
1005
+ .content .ox-card > :first-child,
1006
+ .content .ox-card > :first-of-type,
1007
+ .content .ox-link-card > :first-child,
1008
+ .content .ox-link-card > :first-of-type {
1009
+ margin-top: 0;
1010
+ }
1011
+ .content .ox-card > :last-child,
1012
+ .content .ox-link-card > :last-child {
1013
+ margin-bottom: 0;
1014
+ }
1015
+ .content .ox-steps {
1016
+ margin: 1.75rem 0 2rem;
1017
+ padding: 1.1rem 1rem 1.1rem 0;
1018
+ border: 1px solid var(--octc-color-border);
1019
+ border-radius: 8px;
1020
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 42%, transparent);
1021
+ }
1022
+ .content .ox-steps__list {
1023
+ list-style: none;
1024
+ margin: 0;
1025
+ padding: 0;
1026
+ counter-reset: ox-steps;
1027
+ }
1028
+ .content .ox-steps__item {
1029
+ position: relative;
1030
+ margin: 0 0 1rem;
1031
+ padding-left: 2.5rem;
1032
+ counter-increment: ox-steps;
1033
+ }
1034
+ .content .ox-steps__item::before {
1035
+ content: counter(ox-steps);
1036
+ position: absolute;
1037
+ left: 0;
1038
+ top: 0.15rem;
1039
+ display: flex;
1040
+ align-items: center;
1041
+ justify-content: center;
1042
+ width: 1.6rem;
1043
+ height: 1.6rem;
1044
+ border-radius: 999px;
1045
+ background: var(--octc-color-primary);
1046
+ color: var(--octc-color-bg);
1047
+ font-size: 0.75rem;
1048
+ font-weight: 700;
1049
+ }
1050
+ .content .ox-steps__item > :first-child {
1051
+ margin-top: 0;
1052
+ }
1053
+ .content .ox-steps__item > :last-child {
1054
+ margin-bottom: 0;
1055
+ }
1056
+ .content .ox-badge {
1057
+ --octc-badge-accent: var(--octc-color-primary);
1058
+ display: inline-block;
1059
+ padding: 0.1em 0.45em;
1060
+ border-radius: 999px;
1061
+ font-size: 0.75em;
1062
+ font-weight: 600;
1063
+ letter-spacing: 0.02em;
1064
+ line-height: 1.4;
1065
+ vertical-align: 0.1em;
1066
+ border: 1px solid color-mix(in srgb, var(--octc-badge-accent) 35%, transparent);
1067
+ color: var(--octc-badge-accent);
1068
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 88%, var(--octc-badge-accent) 12%);
1069
+ }
1070
+ .content .ox-badge--tip {
1071
+ --octc-badge-accent: var(--octc-color-tip);
1072
+ }
1073
+ .content .ox-badge--note {
1074
+ --octc-badge-accent: var(--octc-color-primary);
1075
+ }
1076
+ .content .ox-badge--info {
1077
+ --octc-badge-accent: var(--octc-color-info);
1078
+ }
1079
+ .content .ox-badge--warning {
1080
+ --octc-badge-accent: var(--octc-color-warning);
1081
+ }
1082
+ .content .ox-badge--danger {
1083
+ --octc-badge-accent: var(--octc-color-danger);
1084
+ }
1085
+ .content .ox-badge--success {
1086
+ --octc-badge-accent: var(--octc-color-success);
1087
+ }
1088
+ .content .ox-badge--deprecated {
1089
+ --octc-badge-accent: var(--octc-color-deprecated);
1090
+ }
1091
+ .content .ox-badge--required {
1092
+ --octc-badge-accent: var(--octc-color-required);
1093
+ }
1094
+ /* @include magic-links.css */
1095
+ .content .ox-figure {
1096
+ margin: 1.25rem 0;
1097
+ }
1098
+ .content .ox-figure img {
1099
+ margin-inline: auto;
1100
+ }
1101
+ .content .ox-figure figcaption {
1102
+ margin-top: 0.5rem;
1103
+ color: var(--octc-color-text-muted);
1104
+ font-size: 0.875rem;
1105
+ text-align: center;
1106
+ }
1107
+ .content .ox-math-inline {
1108
+ display: inline;
1109
+ }
1110
+ .content .ox-math-block {
1111
+ display: block;
1112
+ margin: 1.25rem 0;
1113
+ overflow-x: auto;
1114
+ text-align: center;
1115
+ }
1116
+ .content .ox-math .katex-display {
1117
+ margin: 0;
1118
+ }
1119
+ .content code {
1120
+ font-family: var(--octc-font-mono);
1121
+ font-size: 0.875em;
1122
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 90%, var(--octc-color-bg));
1123
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 72%, transparent);
1124
+ padding: 0.2em 0.4em;
1125
+ border-radius: 4px;
1126
+ word-break: normal;
1127
+ overflow-wrap: anywhere;
1128
+ }
1129
+ .content pre {
1130
+ background: var(--octc-color-code-bg) !important;
1131
+ color: var(--octc-color-code-text);
1132
+ padding: var(--octc-code-pad-block) var(--octc-code-pad-inline);
1133
+ border-radius: 4px;
1134
+ border: 1px solid var(--octc-color-code-frame-border);
1135
+ overflow-x: auto;
1136
+ margin: 1.25rem 0;
1137
+ line-height: 1.5;
1138
+ }
1139
+ .content pre code {
1140
+ background: transparent;
1141
+ border: 0;
1142
+ padding: 0;
1143
+ border-radius: 0;
1144
+ font-size: 0.8125rem;
1145
+ word-break: normal;
1146
+ }
1147
+ .content pre.ox-code-block code {
1148
+ display: block;
1149
+ }
1150
+ .content pre.ox-code-block[data-code-title]::before {
1151
+ content: attr(data-code-title);
1152
+ display: block;
1153
+ margin: calc(-1 * var(--octc-code-pad-block)) calc(-1 * var(--octc-code-pad-inline))
1154
+ var(--octc-code-title-gap);
1155
+ padding: var(--octc-code-title-pad-block) var(--octc-code-pad-inline);
1156
+ border-bottom: 1px solid var(--octc-color-code-title-border);
1157
+ background: var(--octc-color-code-title-bg);
1158
+ color: var(--octc-color-code-title-text);
1159
+ font-family: var(--octc-font-mono);
1160
+ font-size: 0.75rem;
1161
+ font-weight: 600;
1162
+ letter-spacing: 0.02em;
1163
+ }
1164
+ .content pre.ox-code-block .line {
1165
+ display: block;
1166
+ margin: 0 calc(-1 * var(--octc-code-pad-inline));
1167
+ padding: 0 var(--octc-code-pad-inline);
1168
+ position: relative;
1169
+ }
1170
+ .content pre.ox-code-block.line-numbers-mode .line {
1171
+ padding-left: 4rem;
1172
+ }
1173
+ .content pre.ox-code-block.line-numbers-mode .line::before {
1174
+ content: attr(data-line-number);
1175
+ position: absolute;
1176
+ left: var(--octc-code-pad-inline);
1177
+ width: 2rem;
1178
+ text-align: right;
1179
+ color: var(--octc-color-code-line-number);
1180
+ user-select: none;
1181
+ pointer-events: none;
1182
+ }
1183
+ .content pre.ox-code-block.has-focused .line {
1184
+ opacity: var(--octc-color-code-line-dim);
1185
+ filter: blur(0.6px);
1186
+ }
1187
+ .content pre.ox-code-block.has-focused .line.focused {
1188
+ opacity: 1;
1189
+ filter: none;
1190
+ background: var(--octc-color-code-line-focus);
1191
+ }
1192
+ .content pre.ox-code-block .ox-code-line--dimmed {
1193
+ opacity: var(--octc-color-code-line-dim);
1194
+ filter: blur(0.6px);
1195
+ }
1196
+ .content pre.ox-code-block .ox-code-line--highlight {
1197
+ background: var(--octc-color-code-line-highlight);
1198
+ }
1199
+ .content pre.ox-code-block .ox-code-line--warning {
1200
+ background: var(--octc-color-code-line-warning);
1201
+ border-left: 3px solid var(--octc-color-code-line-warning-border);
1202
+ }
1203
+ .content pre.ox-code-block .ox-code-line--error {
1204
+ background: var(--octc-color-code-line-error);
1205
+ border-left: 3px solid var(--octc-color-code-line-error-border);
1206
+ }
1207
+ .content pre.ox-code-block .ox-code-line--add {
1208
+ background: var(--octc-color-code-line-add);
1209
+ border-left: 3px solid var(--octc-color-code-line-add-border);
1210
+ }
1211
+ .content pre.ox-code-block .ox-code-line--remove {
1212
+ background: var(--octc-color-code-line-remove);
1213
+ border-left: 3px solid var(--octc-color-code-line-remove-border);
1214
+ }
1215
+ .content pre.ox-code-block .ox-code-line--focus {
1216
+ background: var(--octc-color-code-line-focus);
1217
+ }
1218
+ .content table {
1219
+ display: block;
1220
+ width: max-content;
1221
+ max-width: 100%;
1222
+ box-sizing: border-box;
1223
+ border: 1px solid var(--octc-color-border);
1224
+ border-collapse: separate;
1225
+ border-spacing: 0;
1226
+ overflow-x: auto;
1227
+ -webkit-overflow-scrolling: touch;
1228
+ margin: 1.25rem 0;
1229
+ font-size: 0.875rem;
1230
+ }
1231
+ .content th,
1232
+ .content td {
1233
+ border: 0;
1234
+ border-inline-end: 1px solid var(--octc-color-border);
1235
+ border-block-end: 1px solid var(--octc-color-border);
1236
+ padding: var(--octc-table-cell-pad-block) var(--octc-table-cell-pad-inline);
1237
+ text-align: start;
1238
+ }
1239
+ .content tr > :last-child {
1240
+ border-inline-end: 0;
1241
+ }
1242
+ .content table > :last-child > tr:last-child > * {
1243
+ border-block-end: 0;
1244
+ }
1245
+ .content th {
1246
+ background: var(--octc-color-bg-alt);
1247
+ font-weight: 600;
1248
+ }
1249
+ .content img {
1250
+ max-width: 100%;
1251
+ height: auto;
1252
+ border-radius: 4px;
1253
+ display: block;
1254
+ }
1255
+ .content img[alt*="Logo"] {
1256
+ max-width: 180px;
1257
+ }
1258
+ .content hr {
1259
+ border: none;
1260
+ border-top: 1px solid var(--octc-color-border);
1261
+ margin: 2rem 0;
1262
+ }
1263
+ .content .ox-api-controls {
1264
+ display: flex;
1265
+ justify-content: flex-end;
1266
+ align-items: center;
1267
+ gap: 0.5rem;
1268
+ margin: 0 0 1rem;
1269
+ }
1270
+ .content .ox-api-controls__button {
1271
+ appearance: none;
1272
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 82%, transparent);
1273
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 82%, var(--octc-color-bg));
1274
+ padding: 0.4rem 0.7rem;
1275
+ border-radius: 4px;
1276
+ color: color-mix(in srgb, var(--octc-color-text) 82%, var(--octc-color-text-muted));
1277
+ font-family: var(--octc-font-mono);
1278
+ font-size: 0.78rem;
1279
+ font-weight: 600;
1280
+ line-height: 1.4;
1281
+ cursor: pointer;
1282
+ }
1283
+ .content .ox-api-controls__button:hover {
1284
+ color: var(--octc-color-primary);
1285
+ border-color: color-mix(in srgb, var(--octc-color-primary) 38%, var(--octc-color-border));
1286
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 68%, var(--octc-color-primary) 6%);
1287
+ }
1288
+ .content .ox-api-entry,
1289
+ .content .ox-api-module {
1290
+ margin: 0;
1291
+ border: 0;
1292
+ border-top: 1px solid color-mix(in srgb, var(--octc-color-border) 74%, transparent);
1293
+ border-radius: 0;
1294
+ background: transparent;
1295
+ overflow: visible;
1296
+ }
1297
+ .content .ox-api-entry:last-child,
1298
+ .content .ox-api-module:last-child {
1299
+ border-bottom: 1px solid color-mix(in srgb, var(--octc-color-border) 74%, transparent);
1300
+ }
1301
+ .content .ox-api-entry summary,
1302
+ .content .ox-api-module summary {
1303
+ list-style: none;
1304
+ cursor: pointer;
1305
+ padding: 1rem 0;
1306
+ position: relative;
1307
+ }
1308
+ .content .ox-api-entry summary::-webkit-details-marker,
1309
+ .content .ox-api-module summary::-webkit-details-marker {
1310
+ display: none;
1311
+ }
1312
+ .content .ox-api-entry summary {
1313
+ display: grid;
1314
+ grid-template-columns: var(--octc-api-kind-width, 6.5rem) minmax(0, 1fr) auto;
1315
+ align-items: start;
1316
+ gap: 0.95rem;
1317
+ }
1318
+ .content .ox-api-entry summary::after,
1319
+ .content .ox-api-module summary::after {
1320
+ content: "+";
1321
+ align-self: center;
1322
+ color: var(--octc-color-text-muted);
1323
+ font-family: var(--octc-font-mono);
1324
+ font-size: 0.95rem;
1325
+ font-weight: 600;
1326
+ line-height: 1;
1327
+ }
1328
+ .content .ox-api-entry[open] summary::after,
1329
+ .content .ox-api-module[open] summary::after {
1330
+ content: "−";
1331
+ color: var(--octc-color-primary);
1332
+ }
1333
+ .content .ox-api-entry[open] summary,
1334
+ .content .ox-api-module[open] summary {
1335
+ border-bottom: 1px solid color-mix(in srgb, var(--octc-color-border) 72%, transparent);
1336
+ }
1337
+ .content .ox-api-entry__kind,
1338
+ .content .ox-api-module__kind {
1339
+ display: block;
1340
+ width: var(--octc-api-kind-width, 6.5rem);
1341
+ padding: 0.3rem 0 0;
1342
+ background: transparent;
1343
+ border: 0;
1344
+ font-family: var(--octc-font-mono);
1345
+ font-size: 0.76rem;
1346
+ font-weight: 600;
1347
+ letter-spacing: 0.01em;
1348
+ text-align: left;
1349
+ white-space: nowrap;
1350
+ color: var(--octc-color-text-muted);
1351
+ }
1352
+ .content .ox-api-module__count {
1353
+ display: inline-flex;
1354
+ align-items: center;
1355
+ padding: 0.2rem 0.48rem;
1356
+ border-radius: 4px;
1357
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 84%, var(--octc-color-primary) 8%);
1358
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 82%, transparent);
1359
+ color: var(--octc-color-text-muted);
1360
+ font-family: var(--octc-font-mono);
1361
+ font-size: 0.72rem;
1362
+ font-weight: 600;
1363
+ letter-spacing: 0.03em;
1364
+ white-space: nowrap;
1365
+ }
1366
+ .content .ox-api-entry__name {
1367
+ display: block;
1368
+ font-family: var(--octc-font-mono);
1369
+ font-size: 0.95rem;
1370
+ font-weight: 600;
1371
+ line-height: 1.55;
1372
+ }
1373
+ .content .ox-api-entry__signature,
1374
+ .content .ox-api-module__signature {
1375
+ display: block;
1376
+ width: 100%;
1377
+ min-width: 0;
1378
+ font-family: var(--octc-font-mono);
1379
+ font-size: 0.95rem;
1380
+ line-height: 1.55;
1381
+ white-space: nowrap;
1382
+ overflow-x: auto;
1383
+ overflow-y: hidden;
1384
+ -webkit-overflow-scrolling: touch;
1385
+ }
1386
+ .content .ox-api-entry__description {
1387
+ display: block;
1388
+ color: color-mix(in srgb, var(--octc-color-text) 78%, var(--octc-color-text-muted));
1389
+ font-size: 0.9rem;
1390
+ line-height: 1.6;
1391
+ max-width: 72ch;
1392
+ }
1393
+ .content .ox-api-entry__summary-main {
1394
+ min-width: 0;
1395
+ display: flex;
1396
+ flex-direction: column;
1397
+ gap: 0.55rem;
1398
+ }
1399
+ .content .ox-api-entry__name,
1400
+ .content .ox-api-entry__signature,
1401
+ .content .ox-api-module__name,
1402
+ .content .ox-api-module__signature {
1403
+ background: transparent;
1404
+ padding: 0;
1405
+ border-radius: 0;
1406
+ word-break: normal;
1407
+ }
1408
+ .content code.ox-highlight-inline.ox-api-entry__signature--highlighted,
1409
+ .content code.ox-highlight-inline.ox-api-module__signature--highlighted {
1410
+ display: block;
1411
+ width: 100%;
1412
+ max-width: 100%;
1413
+ background: var(--octc-color-code-bg) !important;
1414
+ border: 1px solid var(--octc-color-code-frame-border) !important;
1415
+ padding: 0.55rem 0.7rem !important;
1416
+ border-radius: 4px !important;
1417
+ white-space: nowrap;
1418
+ overflow-x: auto;
1419
+ overflow-y: hidden;
1420
+ -webkit-overflow-scrolling: touch;
1421
+ }
1422
+ .content code.ox-highlight-inline.ox-api-entry__signature--highlighted .line,
1423
+ .content code.ox-highlight-inline.ox-api-module__signature--highlighted .line {
1424
+ display: block;
1425
+ width: max-content;
1426
+ min-width: 100%;
1427
+ }
1428
+ .content .ox-api-entry__body,
1429
+ .content .ox-api-module__body {
1430
+ padding: 0.7rem 0 1.9rem;
1431
+ }
1432
+ .content .ox-api-entry__body {
1433
+ margin-left: calc(var(--octc-api-kind-width, 6.5rem) + 0.95rem);
1434
+ margin-top: 0.7rem;
1435
+ margin-bottom: 1rem;
1436
+ padding: 1.45rem 1rem 2.1rem 1.1rem;
1437
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 72%, transparent);
1438
+ border-radius: 4px;
1439
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 68%, transparent);
1440
+ }
1441
+ .content .ox-api-entry__body > :first-child {
1442
+ margin-top: 0;
1443
+ }
1444
+ .content .ox-api-entry__body > :last-child {
1445
+ margin-bottom: 0;
1446
+ }
1447
+ .content .ox-api-entry[open] summary {
1448
+ padding-bottom: 0.35rem;
1449
+ }
1450
+ .content .ox-api-entry__section {
1451
+ display: grid;
1452
+ grid-template-columns: 6.5rem minmax(0, 1fr);
1453
+ gap: 0.2rem 1.25rem;
1454
+ align-items: start;
1455
+ margin-top: 1rem;
1456
+ padding-top: 1rem;
1457
+ border-top: 1px solid color-mix(in srgb, var(--octc-color-border) 72%, transparent);
1458
+ }
1459
+ .content .ox-api-entry__section h4 {
1460
+ margin-top: 0;
1461
+ margin-bottom: 0;
1462
+ padding-top: 0.25rem;
1463
+ font-family: var(--octc-font-mono);
1464
+ font-size: 0.78rem;
1465
+ font-weight: 700;
1466
+ letter-spacing: 0.04em;
1467
+ text-transform: uppercase;
1468
+ color: var(--octc-color-text-muted);
1469
+ }
1470
+ .content .ox-api-entry__section > :not(h4) {
1471
+ /* The section grid is [6.5rem label | content]. Pin every content child to
1472
+ the content column: with more than one (a Members section renders one
1473
+ group per kind), auto-placement drops the second child into the narrow
1474
+ label column. */
1475
+ grid-column: 2;
1476
+ min-width: 0;
1477
+ }
1478
+ .content .ox-api-entry__source {
1479
+ margin: 0 0 0.15rem;
1480
+ font-family: var(--octc-font-mono);
1481
+ font-size: 0.78rem;
1482
+ color: var(--octc-color-text-muted);
1483
+ }
1484
+ .content .ox-api-entry__source a {
1485
+ color: inherit;
1486
+ text-decoration-color: color-mix(in srgb, var(--octc-color-text-muted) 38%, transparent);
1487
+ }
1488
+ .content .ox-api-entry__source-link {
1489
+ display: inline-flex;
1490
+ align-items: center;
1491
+ gap: 0.35rem;
1492
+ }
1493
+ .content .ox-api-entry__source-icon {
1494
+ width: 0.82em;
1495
+ height: 0.82em;
1496
+ flex: 0 0 auto;
1497
+ background-color: currentColor;
1498
+ -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20fill='none'%20stroke='black'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2'%20d='M18%2013v6a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2V8a2%202%200%200%201%202-2h6M15%203h6v6M10%2014%2021%203'/%3E%3C/svg%3E")
1499
+ center / contain no-repeat;
1500
+ mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20fill='none'%20stroke='black'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2'%20d='M18%2013v6a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2V8a2%202%200%200%201%202-2h6M15%203h6v6M10%2014%2021%203'/%3E%3C/svg%3E")
1501
+ center / contain no-repeat;
1502
+ }
1503
+ .content .ox-api-entry__tags,
1504
+ .content .ox-api-module__list {
1505
+ list-style: none;
1506
+ padding-left: 0;
1507
+ margin: 0;
1508
+ }
1509
+ .content .ox-api-entry__tags {
1510
+ display: flex;
1511
+ flex-wrap: wrap;
1512
+ gap: 0.6rem;
1513
+ }
1514
+ .content .ox-api-entry__tags li {
1515
+ display: inline-flex;
1516
+ align-items: center;
1517
+ gap: 0.45rem;
1518
+ padding: 0.4rem 0.55rem;
1519
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 80%, transparent);
1520
+ border-radius: 4px;
1521
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 72%, transparent);
1522
+ }
1523
+ .content .ox-api-module__list li {
1524
+ display: grid;
1525
+ grid-template-columns: var(--octc-api-kind-width, 6.5rem) minmax(0, 1fr);
1526
+ align-items: start;
1527
+ gap: 1rem;
1528
+ padding: 0.85rem 0;
1529
+ border-top: 1px solid color-mix(in srgb, var(--octc-color-border) 70%, transparent);
1530
+ }
1531
+ .content .ox-api-module__list li:first-child {
1532
+ border-top: none;
1533
+ }
1534
+ .content .ox-api-entry__tag-name,
1535
+ .content .ox-api-module__title {
1536
+ font-weight: 700;
1537
+ }
1538
+ .content .ox-api-entry__tag-name {
1539
+ color: var(--octc-color-primary);
1540
+ font-family: var(--octc-font-mono);
1541
+ font-size: 0.74rem;
1542
+ }
1543
+ .content .ox-api-entry__tag-value {
1544
+ color: var(--octc-color-text);
1545
+ font-size: 0.84rem;
1546
+ line-height: 1.45;
1547
+ }
1548
+ .content .ox-api-module summary {
1549
+ display: grid;
1550
+ grid-template-columns: minmax(0, 1fr) auto auto;
1551
+ align-items: center;
1552
+ gap: 0.9rem;
1553
+ }
1554
+ .content .ox-api-module__body {
1555
+ padding-top: 0.15rem;
1556
+ }
1557
+ .content .ox-api-module__item {
1558
+ min-width: 0;
1559
+ }
1560
+ .content .ox-api-module__link {
1561
+ display: block;
1562
+ text-decoration: none;
1563
+ }
1564
+ .content .ox-api-module__link:hover {
1565
+ text-decoration: none;
1566
+ }
1567
+ .content .ox-api-module__name,
1568
+ .content .ox-api-module__signature {
1569
+ display: block;
1570
+ font-family: var(--octc-font-mono);
1571
+ font-size: 0.91rem;
1572
+ line-height: 1.55;
1573
+ color: var(--octc-color-text);
1574
+ }
1575
+ .content .ox-api-module__summary {
1576
+ display: block;
1577
+ margin-top: 0.45rem;
1578
+ color: color-mix(in srgb, var(--octc-color-text) 76%, var(--octc-color-text-muted));
1579
+ font-size: 0.88rem;
1580
+ line-height: 1.55;
1581
+ }
1582
+ .content .ox-api-entry__section--signature pre {
1583
+ margin: 0;
1584
+ padding: 0.9rem 1rem;
1585
+ border: 1px solid var(--octc-color-code-frame-border);
1586
+ border-radius: 4px;
1587
+ background: var(--octc-color-code-bg) !important;
1588
+ }
1589
+ .content .ox-api-entry__section--signature pre code {
1590
+ font-size: 0.91rem;
1591
+ }
1592
+ .content .ox-api-entry__section--examples pre {
1593
+ margin: 0;
1594
+ border: 1px solid var(--octc-color-code-frame-border);
1595
+ border-radius: 4px;
1596
+ }
1597
+ .content .ox-api-entry__params {
1598
+ list-style: none;
1599
+ padding: 0;
1600
+ margin: 0;
1601
+ }
1602
+ .content .ox-api-entry__param {
1603
+ padding: 0.8rem 0;
1604
+ border-top: 1px solid color-mix(in srgb, var(--octc-color-border) 70%, transparent);
1605
+ }
1606
+ .content .ox-api-entry__param:first-child {
1607
+ padding-top: 0;
1608
+ border-top: 0;
1609
+ }
1610
+ .content .ox-api-entry__param-heading {
1611
+ display: flex;
1612
+ flex-wrap: wrap;
1613
+ align-items: center;
1614
+ gap: 0.5rem;
1615
+ }
1616
+ .content .ox-api-entry__param-name,
1617
+ .content .ox-api-entry__return-type {
1618
+ font-family: var(--octc-font-mono);
1619
+ font-size: 0.84rem;
1620
+ font-weight: 600;
1621
+ color: var(--octc-color-text);
1622
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 84%, transparent);
1623
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 82%, transparent);
1624
+ padding: 0.28rem 0.42rem;
1625
+ border-radius: 4px;
1626
+ }
1627
+ .content .ox-api-entry__param-type {
1628
+ font-family: var(--octc-font-mono);
1629
+ font-size: 0.78rem;
1630
+ color: var(--octc-color-text-muted);
1631
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 60%, transparent);
1632
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 82%, transparent);
1633
+ padding: 0.26rem 0.42rem;
1634
+ border-radius: 4px;
1635
+ }
1636
+ .content .ox-api-entry__param-description,
1637
+ .content .ox-api-entry__return-description {
1638
+ margin: 0.55rem 0 0;
1639
+ font-size: 0.88rem;
1640
+ line-height: 1.6;
1641
+ color: color-mix(in srgb, var(--octc-color-text) 78%, var(--octc-color-text-muted));
1642
+ }
1643
+ .content .ox-api-entry__return {
1644
+ margin: 0;
1645
+ }
1646
+ .content .ox-api-badge {
1647
+ display: inline-block;
1648
+ padding: 0.06rem 0.46rem;
1649
+ font-size: 0.7rem;
1650
+ font-weight: 600;
1651
+ line-height: 1.5;
1652
+ color: var(--octc-color-text-muted);
1653
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 84%, transparent);
1654
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 82%, transparent);
1655
+ border-radius: 999px;
1656
+ vertical-align: middle;
1657
+ }
1658
+ .content .ox-api-badge:not(:first-child) {
1659
+ margin-left: 0.4rem;
1660
+ }
1661
+ .content .ox-api-badge--warning {
1662
+ color: var(--octc-color-code-line-warning-border);
1663
+ background: var(--octc-color-code-line-warning);
1664
+ border-color: color-mix(in srgb, var(--octc-color-code-line-warning-border) 45%, transparent);
1665
+ }
1666
+ .content .ox-api-entry__meta {
1667
+ display: inline-flex;
1668
+ flex-wrap: wrap;
1669
+ gap: 0.4rem;
1670
+ }
1671
+ .content .ox-api-entry__meta .ox-api-badge {
1672
+ margin-left: 0;
1673
+ }
1674
+ .content .ox-api-entry__member-group {
1675
+ margin-top: 1rem;
1676
+ }
1677
+ .content .ox-api-entry__member-group > h5 {
1678
+ margin: 0 0 0.5rem;
1679
+ font-size: 0.78rem;
1680
+ font-weight: 700;
1681
+ letter-spacing: 0.04em;
1682
+ text-transform: uppercase;
1683
+ color: var(--octc-color-text-muted);
1684
+ }
1685
+ .content .ox-api-entry__members-table {
1686
+ margin: 0;
1687
+ }
1688
+ .content .ox-api-entry__members-table th,
1689
+ .content .ox-api-entry__members-table td {
1690
+ padding: 0.5rem 0.75rem;
1691
+ vertical-align: top;
1692
+ }
1693
+ .content .ox-api-entry__member-type {
1694
+ font-size: 0.8rem;
1695
+ }
1696
+ .content .ox-api-entry__member-detail {
1697
+ padding: 0.9rem 0;
1698
+ border-top: 1px solid color-mix(in srgb, var(--octc-color-border) 70%, transparent);
1699
+ }
1700
+ .content .ox-api-entry__member-detail:last-child {
1701
+ padding-bottom: 0;
1702
+ }
1703
+ .content .ox-api-entry__member-detail > h5 {
1704
+ margin: 0 0 0.5rem;
1705
+ font-family: var(--octc-font-mono);
1706
+ font-size: 0.95rem;
1707
+ font-weight: 600;
1708
+ }
1709
+ .content .ox-api-entry__member-meta {
1710
+ margin: 0 0 0.4rem;
1711
+ }
1712
+ .content .ox-api-entry__member-detail-section {
1713
+ margin-top: 0.6rem;
1714
+ }
1715
+ .content .ox-api-entry__member-detail-section h6 {
1716
+ margin: 0 0 0.3rem;
1717
+ font-size: 0.7rem;
1718
+ font-weight: 700;
1719
+ letter-spacing: 0.04em;
1720
+ text-transform: uppercase;
1721
+ color: var(--octc-color-text-muted);
1722
+ }
1723
+ .content .ox-api-entry__member-params {
1724
+ margin: 0;
1725
+ padding: 0;
1726
+ list-style: none;
1727
+ display: flex;
1728
+ flex-wrap: wrap;
1729
+ gap: 0.35rem;
1730
+ }
1731
+ .content .ox-api-entry__member-description {
1732
+ font-size: 0.88rem;
1733
+ line-height: 1.6;
1734
+ color: color-mix(in srgb, var(--octc-color-text) 78%, var(--octc-color-text-muted));
1735
+ }
1736
+ .toc {
1737
+ display: none;
1738
+ position: fixed;
1739
+ top: var(--octc-header-height);
1740
+ right: 0;
1741
+ bottom: 0;
1742
+ width: 15rem;
1743
+ padding: 2rem 1rem;
1744
+ border-left: 1px solid color-mix(in srgb, var(--octc-color-border) 58%, transparent);
1745
+ overflow-y: auto;
1746
+ }
1747
+ .toc-title {
1748
+ margin-bottom: 0.75rem;
1749
+ color: var(--octc-color-text-muted);
1750
+ font-size: 0.75rem;
1751
+ font-weight: 700;
1752
+ letter-spacing: 0.08em;
1753
+ text-transform: uppercase;
1754
+ }
1755
+ .toc-list {
1756
+ list-style: none;
1757
+ }
1758
+ .toc-item {
1759
+ margin: 0;
1760
+ }
1761
+ .toc-link {
1762
+ display: block;
1763
+ padding: 0.25rem 0.5rem;
1764
+ color: var(--octc-color-text-muted);
1765
+ font-size: 0.8125rem;
1766
+ line-height: 1.4;
1767
+ border-left: 1px solid transparent;
1768
+ }
1769
+ .toc-link:hover {
1770
+ color: var(--octc-color-primary);
1771
+ text-decoration: none;
1772
+ border-left-color: var(--octc-color-primary);
1773
+ }
1774
+ .toc-link--depth-3 {
1775
+ padding-left: 1rem;
1776
+ }
1777
+ .toc-link--depth-4,
1778
+ .toc-link--depth-5,
1779
+ .toc-link--depth-6 {
1780
+ padding-left: 1.5rem;
1781
+ }
1782
+ @media (min-width: 1440px) {
1783
+ .toc {
1784
+ display: block;
1785
+ }
1786
+ .main--with-toc {
1787
+ padding-right: 17rem;
1788
+ }
1789
+ }
1790
+ /* Mobile Footer Bar */
1791
+ .mobile-footer {
1792
+ display: none;
1793
+ }
1794
+ @media (max-width: 768px) {
1795
+ :root {
1796
+ --octc-code-pad-block: 0.85rem;
1797
+ --octc-code-pad-inline: 0.95rem;
1798
+ --octc-code-title-pad-block: 0.65rem;
1799
+ --octc-code-title-gap: 0.75rem;
1800
+ --octc-table-cell-pad-block: 0.5rem;
1801
+ --octc-table-cell-pad-inline: 0.75rem;
1802
+ }
1803
+ .header-actions {
1804
+ display: none;
1805
+ }
1806
+ .mobile-footer {
1807
+ display: flex;
1808
+ position: fixed;
1809
+ bottom: 0;
1810
+ left: 0;
1811
+ right: 0;
1812
+ height: calc(var(--octc-mobile-footer-height) + env(safe-area-inset-bottom, 0px));
1813
+ background: var(--octc-surface-glass);
1814
+ border-top: 1px solid var(--octc-color-border);
1815
+ justify-content: space-around;
1816
+ align-items: center;
1817
+ padding-left: max(var(--octc-mobile-gutter), env(safe-area-inset-left, 0px));
1818
+ padding-right: max(var(--octc-mobile-gutter), env(safe-area-inset-right, 0px));
1819
+ padding-bottom: env(safe-area-inset-bottom, 0px);
1820
+ z-index: 100;
1821
+ }
1822
+ .mobile-footer-btn {
1823
+ display: flex;
1824
+ flex-direction: column;
1825
+ align-items: center;
1826
+ justify-content: center;
1827
+ gap: 0.25rem;
1828
+ background: none;
1829
+ border: none;
1830
+ cursor: pointer;
1831
+ padding: 0.5rem;
1832
+ border-radius: 4px;
1833
+ color: var(--octc-color-text-muted);
1834
+ text-decoration: none;
1835
+ min-width: 48px;
1836
+ }
1837
+ .mobile-footer-btn svg {
1838
+ width: 22px;
1839
+ height: 22px;
1840
+ }
1841
+ .mobile-footer-label {
1842
+ font-size: 0.625rem;
1843
+ font-weight: 500;
1844
+ text-transform: uppercase;
1845
+ letter-spacing: 0.02em;
1846
+ }
1847
+ .menu-toggle {
1848
+ display: none;
1849
+ }
1850
+ .sidebar {
1851
+ position: fixed;
1852
+ top: calc(var(--octc-header-height) + 0.75rem);
1853
+ left: max(var(--octc-mobile-gutter), env(safe-area-inset-left, 0px));
1854
+ right: max(var(--octc-mobile-gutter), env(safe-area-inset-right, 0px));
1855
+ bottom: calc(var(--octc-mobile-footer-height) + env(safe-area-inset-bottom, 0px) + 0.75rem);
1856
+ width: auto;
1857
+ max-height: calc(
1858
+ 100dvh - var(--octc-header-height) - var(--octc-mobile-footer-height) -
1859
+ env(safe-area-inset-bottom, 0px) - 1.5rem
1860
+ );
1861
+ transform: translateY(calc(100% + 1rem));
1862
+ z-index: 101;
1863
+ border: 1px solid var(--octc-color-border);
1864
+ border-radius: 8px;
1865
+ visibility: hidden;
1866
+ pointer-events: none;
1867
+ overflow-y: auto;
1868
+ overflow-x: hidden;
1869
+ overscroll-behavior-y: contain;
1870
+ -webkit-overflow-scrolling: touch;
1871
+ scrollbar-gutter: stable;
1872
+ padding: 1rem 1rem 1.25rem;
1873
+ background: var(--octc-color-bg-alt);
1874
+ background-clip: padding-box;
1875
+ contain: paint;
1876
+ }
1877
+ .entry-page .sidebar--entry {
1878
+ display: block;
1879
+ }
1880
+ [data-theme="dark"] .sidebar {
1881
+ background: var(--octc-color-bg-alt);
1882
+ }
1883
+ @media (prefers-color-scheme: dark) {
1884
+ :root:not([data-theme="light"]) .sidebar {
1885
+ background: var(--octc-color-bg-alt);
1886
+ }
1887
+ }
1888
+ .sidebar::before {
1889
+ display: none;
1890
+ }
1891
+ .sidebar.open {
1892
+ transform: translateY(0);
1893
+ visibility: visible;
1894
+ pointer-events: auto;
1895
+ }
1896
+ .sidebar .nav-link {
1897
+ min-height: var(--octc-touch-target);
1898
+ display: flex;
1899
+ align-items: center;
1900
+ padding-block: 0.625rem;
1901
+ line-height: 1.35;
1902
+ }
1903
+ .sidebar .nav-title--summary {
1904
+ min-height: var(--octc-touch-target);
1905
+ align-items: center;
1906
+ }
1907
+ .sidebar .nav-title--summary::before,
1908
+ .sidebar .nav-details > .nav-summary::before {
1909
+ margin-block-start: 0;
1910
+ }
1911
+ .main {
1912
+ margin-left: 0;
1913
+ padding: 0.9rem var(--octc-mobile-gutter);
1914
+ padding-left: max(var(--octc-mobile-gutter), env(safe-area-inset-left, 0px));
1915
+ padding-right: max(var(--octc-mobile-gutter), env(safe-area-inset-right, 0px));
1916
+ padding-bottom: calc(
1917
+ var(--octc-mobile-footer-height) + env(safe-area-inset-bottom, 0px) + 0.9rem
1918
+ );
1919
+ }
1920
+ .content {
1921
+ padding: 0;
1922
+ }
1923
+ .ox-breadcrumbs-item:not(:last-child)::after {
1924
+ margin-inline: 0.25rem;
1925
+ }
1926
+ .content h1 {
1927
+ font-size: 1.5rem;
1928
+ }
1929
+ .content h2 {
1930
+ font-size: 1.2rem;
1931
+ }
1932
+ .content code {
1933
+ font-size: 0.82em;
1934
+ padding: 0.16em 0.34em;
1935
+ }
1936
+ .content pre {
1937
+ font-size: 0.78rem;
1938
+ margin: 1rem 0;
1939
+ border-radius: 8px;
1940
+ line-height: 1.6;
1941
+ }
1942
+ .content pre code {
1943
+ font-size: 0.78rem;
1944
+ }
1945
+ .content .ox-api-controls {
1946
+ justify-content: flex-start;
1947
+ gap: 0.625rem;
1948
+ flex-wrap: wrap;
1949
+ margin-bottom: 0.85rem;
1950
+ }
1951
+ .content .ox-api-controls__button {
1952
+ padding: 0.45rem 0.7rem;
1953
+ border-radius: 10px;
1954
+ font-size: 0.74rem;
1955
+ }
1956
+ .content .ox-api-entry summary,
1957
+ .content .ox-api-module summary {
1958
+ padding: 0.95rem 0.125rem 0.95rem 0;
1959
+ }
1960
+ .content .ox-api-entry summary {
1961
+ display: flex;
1962
+ flex-wrap: wrap;
1963
+ align-items: center;
1964
+ gap: 0.65rem 0.75rem;
1965
+ }
1966
+ .content .ox-api-module summary {
1967
+ display: flex;
1968
+ flex-wrap: wrap;
1969
+ align-items: center;
1970
+ gap: 0.65rem 0.75rem;
1971
+ }
1972
+ .content .ox-api-entry summary::after,
1973
+ .content .ox-api-module summary::after {
1974
+ order: 2;
1975
+ display: inline-flex;
1976
+ align-items: center;
1977
+ justify-content: center;
1978
+ width: 1.95rem;
1979
+ height: 1.95rem;
1980
+ margin-left: auto;
1981
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 82%, transparent);
1982
+ border-radius: 10px;
1983
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 84%, var(--octc-color-bg));
1984
+ font-size: 1rem;
1985
+ line-height: 1;
1986
+ flex: 0 0 auto;
1987
+ align-self: center;
1988
+ }
1989
+ .content .ox-api-entry__kind {
1990
+ order: 1;
1991
+ width: auto;
1992
+ padding: 0.28rem 0.55rem;
1993
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 82%, transparent);
1994
+ border-radius: 8px;
1995
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 80%, var(--octc-color-bg));
1996
+ font-size: 0.72rem;
1997
+ line-height: 1;
1998
+ align-self: center;
1999
+ }
2000
+ .content .ox-api-entry__summary-main {
2001
+ order: 3;
2002
+ flex: 1 1 100%;
2003
+ gap: 0.35rem;
2004
+ }
2005
+ .content .ox-api-module__item {
2006
+ order: 1;
2007
+ flex: 1 1 100%;
2008
+ min-width: 0;
2009
+ }
2010
+ .content .ox-api-module__count {
2011
+ order: 2;
2012
+ width: auto;
2013
+ max-width: 100%;
2014
+ padding: 0.28rem 0.55rem;
2015
+ border-radius: 8px;
2016
+ }
2017
+ .content .ox-api-entry__body {
2018
+ margin-left: 0;
2019
+ margin-top: 0.65rem;
2020
+ padding: 1rem 0.2rem 1.45rem;
2021
+ border-top: 0;
2022
+ border-left: 0;
2023
+ border-right: 0;
2024
+ border-bottom: 0;
2025
+ border-radius: 0;
2026
+ background: transparent;
2027
+ }
2028
+ .content .ox-api-entry__name,
2029
+ .content .ox-api-entry__signature,
2030
+ .content .ox-api-module__name,
2031
+ .content .ox-api-module__signature {
2032
+ font-size: 0.84rem;
2033
+ line-height: 1.5;
2034
+ }
2035
+ .content .ox-api-entry__description,
2036
+ .content .ox-api-module__summary {
2037
+ font-size: 0.82rem;
2038
+ line-height: 1.55;
2039
+ }
2040
+ .content .ox-api-entry__section {
2041
+ grid-template-columns: 1fr;
2042
+ gap: 0.5rem;
2043
+ }
2044
+ .content .ox-api-entry__tags li,
2045
+ .content .ox-api-module__list li {
2046
+ grid-template-columns: 1fr;
2047
+ }
2048
+ .content .ox-api-module__list li {
2049
+ gap: 0.4rem;
2050
+ padding: 0.85rem 0.1rem;
2051
+ }
2052
+ .content .ox-api-module__kind {
2053
+ width: auto;
2054
+ padding: 0;
2055
+ font-size: 0.72rem;
2056
+ }
2057
+ .content .ox-api-entry__signature {
2058
+ width: 100%;
2059
+ }
2060
+ .content code.ox-highlight-inline.ox-api-entry__signature--highlighted,
2061
+ .content code.ox-highlight-inline.ox-api-module__signature--highlighted {
2062
+ padding: 0.5rem 0.65rem !important;
2063
+ border-radius: 8px !important;
2064
+ font-size: 0.82rem !important;
2065
+ }
2066
+ .content pre.ox-code-block.line-numbers-mode .line {
2067
+ padding-left: 3.7rem;
2068
+ }
2069
+ .content pre.ox-code-block.line-numbers-mode .line::before {
2070
+ width: 1.75rem;
2071
+ }
2072
+ .content table {
2073
+ margin: 1rem 0;
2074
+ font-size: 0.8125rem;
2075
+ }
2076
+ .content th,
2077
+ .content td {
2078
+ white-space: nowrap;
2079
+ vertical-align: top;
2080
+ }
2081
+ .header {
2082
+ padding-left: max(var(--octc-mobile-gutter), env(safe-area-inset-left, 0px));
2083
+ padding-right: max(var(--octc-mobile-gutter), env(safe-area-inset-right, 0px));
2084
+ }
2085
+ .header-title {
2086
+ font-size: 1rem;
2087
+ }
2088
+ .header-title--logo-only .header-logo {
2089
+ width: 152px;
2090
+ height: auto;
2091
+ }
2092
+ .overlay {
2093
+ display: none;
2094
+ position: fixed;
2095
+ top: var(--octc-header-height);
2096
+ left: 0;
2097
+ right: 0;
2098
+ bottom: calc(var(--octc-mobile-footer-height) + env(safe-area-inset-bottom, 0px));
2099
+ background: color-mix(in srgb, var(--octc-color-bg) 72%, transparent);
2100
+ backdrop-filter: blur(2px);
2101
+ -webkit-backdrop-filter: blur(2px);
2102
+ overscroll-behavior: contain;
2103
+ touch-action: none;
2104
+ z-index: 98;
2105
+ }
2106
+ .overlay.open {
2107
+ display: block;
2108
+ }
2109
+ }
2110
+
2111
+ @media (any-hover: hover) and (any-pointer: fine) {
2112
+ .mobile-footer-btn:hover {
2113
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 82%, var(--octc-color-primary) 12%);
2114
+ color: var(--octc-color-text);
2115
+ text-decoration: none;
2116
+ }
2117
+ }
2118
+
2119
+ @media (any-hover: none) and (any-pointer: coarse) {
2120
+ .mobile-footer-btn:focus {
2121
+ outline: none;
2122
+ }
2123
+ }
2124
+
2125
+ @media (max-width: 480px) {
2126
+ :root {
2127
+ --octc-code-pad-block: 0.78rem;
2128
+ --octc-code-pad-inline: 0.85rem;
2129
+ --octc-code-title-pad-block: 0.6rem;
2130
+ --octc-code-title-gap: 0.72rem;
2131
+ --octc-table-cell-pad-block: 0.375rem;
2132
+ --octc-table-cell-pad-inline: 0.5rem;
2133
+ }
2134
+ .main {
2135
+ padding-block-start: 0.75rem;
2136
+ padding-bottom: calc(
2137
+ var(--octc-mobile-footer-height) + env(safe-area-inset-bottom, 0px) + 0.75rem
2138
+ );
2139
+ }
2140
+ .content h1 {
2141
+ font-size: 1.35rem;
2142
+ }
2143
+ .content code {
2144
+ font-size: 0.8em;
2145
+ }
2146
+ .content pre {
2147
+ font-size: 0.72rem;
2148
+ }
2149
+ .content pre code {
2150
+ font-size: 0.72rem;
2151
+ }
2152
+ .content .ox-api-entry summary::after,
2153
+ .content .ox-api-module summary::after {
2154
+ width: 1.85rem;
2155
+ height: 1.85rem;
2156
+ }
2157
+ .content .ox-api-entry__kind,
2158
+ .content .ox-api-module__count {
2159
+ font-size: 0.68rem;
2160
+ }
2161
+ .content table {
2162
+ font-size: 0.75rem;
2163
+ }
2164
+ }
2165
+
2166
+ :focus-visible {
2167
+ outline: var(--octc-focus-ring);
2168
+ outline-offset: var(--octc-focus-offset);
2169
+ }