@a83/orbiter-admin 0.2.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,1020 @@
1
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
2
+
3
+ /* ════════════════════════════════════════════════════════════
4
+ THEME SYSTEM
5
+ Variables applied in this order:
6
+ 1. :root → Space Dark (default)
7
+ 2. @media light → Space Light (system auto)
8
+ 3. [data-scheme] → manual override
9
+ 4. [data-theme] → palette swap (Zen / Catppuccin)
10
+ ════════════════════════════════════════════════════════════ */
11
+
12
+ /* ── Space Dark (default) — Space Station ─────────── */
13
+ :root {
14
+ --bg0: #080e18;
15
+ --bg1: #0e1620;
16
+ --bg2: #131d2c;
17
+ --bg3: #1a2638;
18
+ --line: #1c2e46;
19
+ --line2: #132030;
20
+ --muted: #284060;
21
+ --mid: #4a7098;
22
+ --text: #7898c0;
23
+ --heading: #b8d4f0;
24
+ --gold: #00c8a0;
25
+ --gold-bg: rgba(0,200,160,.08);
26
+ --jade: #00d8b8;
27
+ --jade-bg: rgba(0,216,184,.09);
28
+ --accent: #1898f8;
29
+ --accent2: #8050e8;
30
+ --accent-bg: rgba(24,152,248,.10);
31
+ --red: #e85870;
32
+ --red-bg: rgba(232,88,112,.10);
33
+ --hover-bg: rgba(24,152,248,.04);
34
+ --row-hover: rgba(24,152,248,.018);
35
+ --td-line: rgba(8,16,40,.85);
36
+ --sans: "Inter", system-ui, -apple-system, sans-serif;
37
+ --mono: "DM Mono", "Fira Mono", monospace;
38
+ --serif: "Noto Serif JP", serif;
39
+ --display: "Space Grotesk", system-ui, sans-serif;
40
+ --radius: 5px;
41
+ }
42
+
43
+ /* ── Space Light — Solar Command ─────────────────── */
44
+ .space-light {
45
+ --bg0: #eef5ff;
46
+ --bg1: #e4f0ff;
47
+ --bg2: #f8fcff;
48
+ --bg3: #d0e8ff;
49
+ --line: #b0ccf0;
50
+ --line2: #cce0ff;
51
+ --muted: #6080a8;
52
+ --mid: #204878;
53
+ --text: #0a1e3a;
54
+ --heading: #030d1e;
55
+ --gold: #0088b8;
56
+ --gold-bg: rgba(0,136,184,.07);
57
+ --jade: #006880;
58
+ --jade-bg: rgba(0,104,128,.08);
59
+ --accent: #0048d8;
60
+ --accent2: #5828c8;
61
+ --accent-bg: rgba(0,72,216,.09);
62
+ --red: #c02040;
63
+ --red-bg: rgba(192,32,64,.08);
64
+ --hover-bg: rgba(0,72,216,.03);
65
+ --row-hover: rgba(0,72,216,.015);
66
+ --td-line: rgba(10,25,70,.07);
67
+ }
68
+
69
+ /* ── Zen Dark (Japandi) ───────────────────────────── */
70
+ /* Palette: Slate #566070 · Umber #574838 · Sakura #e8cac8 · Mauve #ad7575 · Moss #6b8c6e */
71
+ .zen-dark {
72
+ --bg0: #0f0e10;
73
+ --bg1: #151416;
74
+ --bg2: #1c1a20;
75
+ --bg3: #242228;
76
+ --line: #2c2830;
77
+ --line2: #221f26;
78
+ --muted: #574838;
79
+ --mid: #6e7a88;
80
+ --text: #98a4b0;
81
+ --heading: #e0ccd0;
82
+ --gold: #ad7575;
83
+ --gold-bg: rgba(173,117,117,.08);
84
+ --jade: #6b8c6e;
85
+ --jade-bg: rgba(107,140,110,.10);
86
+ --accent: #566070;
87
+ --accent2: #ad7575;
88
+ --accent-bg: rgba(86,96,112,.12);
89
+ --red: #c07060;
90
+ --red-bg: rgba(192,112,96,.10);
91
+ --hover-bg: rgba(232,202,200,.06);
92
+ --row-hover: rgba(232,202,200,.03);
93
+ --td-line: rgba(46,40,48,.8);
94
+ }
95
+
96
+ /* ── Zen Light (Japandi) ──────────────────────────── */
97
+ .zen-light {
98
+ --bg0: #f4f5f7;
99
+ --bg1: #ecedf2;
100
+ --bg2: #ffffff;
101
+ --bg3: #e0e2e8;
102
+ --line: #cccdd8;
103
+ --line2: #d8d9e4;
104
+ --muted: #8c8fa0;
105
+ --mid: #4a5060;
106
+ --text: #282c38;
107
+ --heading: #10131e;
108
+ --gold: #8c5858;
109
+ --gold-bg: rgba(140,88,88,.08);
110
+ --jade: #3d6b40;
111
+ --jade-bg: rgba(61,107,64,.09);
112
+ --accent: #3a4a58;
113
+ --accent2: #8c5858;
114
+ --accent-bg: rgba(58,74,88,.10);
115
+ --red: #b04030;
116
+ --red-bg: rgba(176,64,48,.08);
117
+ --hover-bg: rgba(173,117,117,.07);
118
+ --row-hover: rgba(173,117,117,.035);
119
+ --td-line: rgba(70,75,90,.12);
120
+ }
121
+
122
+ /* ── Catppuccin Mocha (Dark) ─────────────────────── */
123
+ .catppuccin-dark {
124
+ --bg0: #11111b;
125
+ --bg1: #181825;
126
+ --bg2: #1e1e2e;
127
+ --bg3: #313244;
128
+ --line: #313244;
129
+ --line2: #262637;
130
+ --muted: #6c7086;
131
+ --mid: #9399b2;
132
+ --text: #cdd6f4;
133
+ --heading: #cdd6f4;
134
+ --gold: #f9e2af;
135
+ --gold-bg: rgba(249,226,175,.08);
136
+ --jade: #a6e3a1;
137
+ --jade-bg: rgba(166,227,161,.09);
138
+ --accent: #cba6f7;
139
+ --accent2: #b4befe;
140
+ --accent-bg: rgba(203,166,247,.10);
141
+ --red: #f38ba8;
142
+ --red-bg: rgba(243,139,168,.10);
143
+ --hover-bg: rgba(255,255,255,.04);
144
+ --row-hover: rgba(255,255,255,.018);
145
+ --td-line: rgba(49,50,68,.7);
146
+ }
147
+
148
+ /* ── Catppuccin Latte (Light) ────────────────────── */
149
+ .catppuccin-light {
150
+ --bg0: #eff1f5;
151
+ --bg1: #e6e9ef;
152
+ --bg2: #ffffff;
153
+ --bg3: #ccd0da;
154
+ --line: #ccd0da;
155
+ --line2: #dce0e8;
156
+ --muted: #9ca0b0;
157
+ --mid: #7c7f93;
158
+ --text: #4c4f69;
159
+ --heading: #1e1e2e;
160
+ --gold: #df8e1d;
161
+ --gold-bg: rgba(223,142,29,.08);
162
+ --jade: #40a02b;
163
+ --jade-bg: rgba(64,160,43,.09);
164
+ --accent: #8839ef;
165
+ --accent2: #7287fd;
166
+ --accent-bg: rgba(136,57,239,.09);
167
+ --red: #d20f39;
168
+ --red-bg: rgba(210,15,57,.08);
169
+ --hover-bg: rgba(0,0,0,.03);
170
+ --row-hover: rgba(0,0,0,.015);
171
+ --td-line: rgba(76,79,105,.12);
172
+ }
173
+
174
+ /* ── Apply themes via data attributes ───────────────
175
+ Scheme selector order:
176
+ html → Space Dark
177
+ html[data-scheme="light"] → Space Light
178
+ html[data-theme="zen"] → Zen Dark
179
+ html[data-theme="zen"][data-scheme="light"] → Zen Light
180
+ html[data-theme="catppuccin"] → Catppuccin Dark
181
+ html[data-theme="catppuccin"][data-scheme="light"] → Catppuccin Light
182
+ @media prefers light (auto) → same light variants if no [data-scheme="dark"]
183
+ ─────────────────────────────────────────────────── */
184
+
185
+ html[data-scheme="light"]:not([data-theme]),
186
+ html[data-scheme="light"][data-theme="space"]
187
+ { @apply .space-light; } /* fallback below */
188
+
189
+ /* Programmatic application (JS sets vars directly via class) */
190
+ /* We use JS to add the right class to html — see theme.js */
191
+
192
+ /* ── System auto-light (no manual override) ──────── */
193
+ @media (prefers-color-scheme: light) {
194
+ html:not([data-scheme="dark"]):not([data-theme]),
195
+ html:not([data-scheme="dark"])[data-theme="space"] {
196
+ --bg0: #eef5ff;
197
+ --bg1: #e4f0ff;
198
+ --bg2: #f8fcff;
199
+ --bg3: #d0e8ff;
200
+ --line: #b0ccf0;
201
+ --line2: #cce0ff;
202
+ --muted: #6080a8;
203
+ --mid: #204878;
204
+ --text: #0a1e3a;
205
+ --heading: #030d1e;
206
+ --gold: #0088b8;
207
+ --gold-bg: rgba(0,136,184,.07);
208
+ --jade: #006880;
209
+ --jade-bg: rgba(0,104,128,.08);
210
+ --accent: #0048d8;
211
+ --accent2: #5828c8;
212
+ --accent-bg: rgba(0,72,216,.09);
213
+ --red: #c02040;
214
+ --red-bg: rgba(192,32,64,.08);
215
+ --hover-bg: rgba(0,72,216,.03);
216
+ --row-hover: rgba(0,72,216,.015);
217
+ --td-line: rgba(10,25,70,.07);
218
+ }
219
+ html:not([data-scheme="dark"])[data-theme="zen"] {
220
+ --bg0: #f4f5f7;
221
+ --bg1: #ecedf2;
222
+ --bg2: #ffffff;
223
+ --bg3: #e0e2e8;
224
+ --line: #cccdd8;
225
+ --line2: #d8d9e4;
226
+ --muted: #8c8fa0;
227
+ --mid: #4a5060;
228
+ --text: #282c38;
229
+ --heading: #10131e;
230
+ --gold: #8c5858;
231
+ --gold-bg: rgba(140,88,88,.08);
232
+ --jade: #3d6b40;
233
+ --jade-bg: rgba(61,107,64,.09);
234
+ --accent: #3a4a58;
235
+ --accent2: #8c5858;
236
+ --accent-bg: rgba(58,74,88,.10);
237
+ --red: #b04030;
238
+ --red-bg: rgba(176,64,48,.08);
239
+ --hover-bg: rgba(173,117,117,.07);
240
+ --row-hover: rgba(173,117,117,.035);
241
+ --td-line: rgba(70,75,90,.12);
242
+ }
243
+ html:not([data-scheme="dark"])[data-theme="catppuccin"] {
244
+ --bg0: #eff1f5;
245
+ --bg1: #e6e9ef;
246
+ --bg2: #ffffff;
247
+ --bg3: #ccd0da;
248
+ --line: #ccd0da;
249
+ --line2: #dce0e8;
250
+ --muted: #9ca0b0;
251
+ --mid: #7c7f93;
252
+ --text: #4c4f69;
253
+ --heading: #1e1e2e;
254
+ --gold: #df8e1d;
255
+ --gold-bg: rgba(223,142,29,.08);
256
+ --jade: #40a02b;
257
+ --jade-bg: rgba(64,160,43,.09);
258
+ --accent: #8839ef;
259
+ --accent2: #7287fd;
260
+ --accent-bg: rgba(136,57,239,.09);
261
+ --red: #d20f39;
262
+ --red-bg: rgba(210,15,57,.08);
263
+ --hover-bg: rgba(0,0,0,.03);
264
+ --row-hover: rgba(0,0,0,.015);
265
+ --td-line: rgba(76,79,105,.12);
266
+ }
267
+ }
268
+
269
+ /* ── Zen Light explicit override ─────────────────── */
270
+ html[data-scheme="light"][data-theme="zen"] {
271
+ --bg0: #f4f5f7;
272
+ --bg1: #ecedf2;
273
+ --bg2: #ffffff;
274
+ --bg3: #e0e2e8;
275
+ --line: #cccdd8;
276
+ --line2: #d8d9e4;
277
+ --muted: #8c8fa0;
278
+ --mid: #4a5060;
279
+ --text: #282c38;
280
+ --heading: #10131e;
281
+ --gold: #8c5858;
282
+ --gold-bg: rgba(140,88,88,.08);
283
+ --jade: #3d6b40;
284
+ --jade-bg: rgba(61,107,64,.09);
285
+ --accent: #3a4a58;
286
+ --accent2: #8c5858;
287
+ --accent-bg: rgba(58,74,88,.10);
288
+ --red: #b04030;
289
+ --red-bg: rgba(176,64,48,.08);
290
+ --hover-bg: rgba(173,117,117,.07);
291
+ --row-hover: rgba(173,117,117,.035);
292
+ --td-line: rgba(70,75,90,.12);
293
+ }
294
+
295
+ /* ── Zen Dark ────────────────────────────────────── */
296
+ html[data-theme="zen"],
297
+ html[data-scheme="dark"][data-theme="zen"] {
298
+ --bg0: #0f0e10;
299
+ --bg1: #151416;
300
+ --bg2: #1c1a20;
301
+ --bg3: #242228;
302
+ --line: #2c2830;
303
+ --line2: #221f26;
304
+ --muted: #574838;
305
+ --mid: #6e7a88;
306
+ --text: #98a4b0;
307
+ --heading: #e0ccd0;
308
+ --gold: #ad7575;
309
+ --gold-bg: rgba(173,117,117,.08);
310
+ --jade: #6b8c6e;
311
+ --jade-bg: rgba(107,140,110,.10);
312
+ --accent: #566070;
313
+ --accent2: #ad7575;
314
+ --accent-bg: rgba(86,96,112,.12);
315
+ --red: #c07060;
316
+ --red-bg: rgba(192,112,96,.10);
317
+ --hover-bg: rgba(232,202,200,.06);
318
+ --row-hover: rgba(232,202,200,.03);
319
+ --td-line: rgba(46,40,48,.8);
320
+ }
321
+ html[data-scheme="dark"][data-theme="catppuccin"] {
322
+ --bg0: #11111b;
323
+ --bg1: #181825;
324
+ --bg2: #1e1e2e;
325
+ --bg3: #313244;
326
+ --line: #313244;
327
+ --line2: #262637;
328
+ --muted: #6c7086;
329
+ --mid: #9399b2;
330
+ --text: #cdd6f4;
331
+ --heading: #cdd6f4;
332
+ --gold: #f9e2af;
333
+ --gold-bg: rgba(249,226,175,.08);
334
+ --jade: #a6e3a1;
335
+ --jade-bg: rgba(166,227,161,.09);
336
+ --accent: #cba6f7;
337
+ --accent2: #b4befe;
338
+ --accent-bg: rgba(203,166,247,.10);
339
+ --red: #f38ba8;
340
+ --red-bg: rgba(243,139,168,.10);
341
+ --hover-bg: rgba(255,255,255,.04);
342
+ --row-hover: rgba(255,255,255,.018);
343
+ --td-line: rgba(49,50,68,.7);
344
+ }
345
+
346
+ /* ── Manual light override per theme ────────────── */
347
+ html[data-scheme="light"][data-theme="zen"] {
348
+ --bg0: #f4f5f7;
349
+ --bg1: #ecedf2;
350
+ --bg2: #ffffff;
351
+ --bg3: #e0e2e8;
352
+ --line: #cccdd8;
353
+ --line2: #d8d9e4;
354
+ --muted: #8c8fa0;
355
+ --mid: #4a5060;
356
+ --text: #282c38;
357
+ --heading: #10131e;
358
+ --gold: #8c5858;
359
+ --gold-bg: rgba(140,88,88,.08);
360
+ --jade: #3d6b40;
361
+ --jade-bg: rgba(61,107,64,.09);
362
+ --accent: #3a4a58;
363
+ --accent2: #8c5858;
364
+ --accent-bg: rgba(58,74,88,.10);
365
+ --red: #b04030;
366
+ --red-bg: rgba(176,64,48,.08);
367
+ --hover-bg: rgba(173,117,117,.07);
368
+ --row-hover: rgba(173,117,117,.035);
369
+ --td-line: rgba(70,75,90,.12);
370
+ }
371
+ html[data-scheme="light"][data-theme="catppuccin"] {
372
+ --bg0: #eff1f5;
373
+ --bg1: #e6e9ef;
374
+ --bg2: #ffffff;
375
+ --bg3: #ccd0da;
376
+ --line: #ccd0da;
377
+ --line2: #dce0e8;
378
+ --muted: #9ca0b0;
379
+ --mid: #7c7f93;
380
+ --text: #4c4f69;
381
+ --heading: #1e1e2e;
382
+ --gold: #df8e1d;
383
+ --gold-bg: rgba(223,142,29,.08);
384
+ --jade: #40a02b;
385
+ --jade-bg: rgba(64,160,43,.09);
386
+ --accent: #8839ef;
387
+ --accent2: #7287fd;
388
+ --accent-bg: rgba(136,57,239,.09);
389
+ --red: #d20f39;
390
+ --red-bg: rgba(210,15,57,.08);
391
+ --hover-bg: rgba(0,0,0,.03);
392
+ --row-hover: rgba(0,0,0,.015);
393
+ --td-line: rgba(76,79,105,.12);
394
+ }
395
+ html[data-scheme="light"]:not([data-theme]),
396
+ html[data-scheme="light"][data-theme="space"] {
397
+ --bg0: #eef5ff;
398
+ --bg1: #e4f0ff;
399
+ --bg2: #f8fcff;
400
+ --bg3: #d0e8ff;
401
+ --line: #b0ccf0;
402
+ --line2: #cce0ff;
403
+ --muted: #6080a8;
404
+ --mid: #204878;
405
+ --text: #0a1e3a;
406
+ --heading: #030d1e;
407
+ --gold: #0088b8;
408
+ --gold-bg: rgba(0,136,184,.07);
409
+ --jade: #006880;
410
+ --jade-bg: rgba(0,104,128,.08);
411
+ --accent: #0048d8;
412
+ --accent2: #5828c8;
413
+ --accent-bg: rgba(0,72,216,.09);
414
+ --red: #c02040;
415
+ --red-bg: rgba(192,32,64,.08);
416
+ --hover-bg: rgba(0,72,216,.03);
417
+ --row-hover: rgba(0,72,216,.015);
418
+ --td-line: rgba(10,25,70,.07);
419
+ }
420
+
421
+ /* Zen dark base (lower specificity so @media auto-light overrides) */
422
+ [data-theme="zen"] {
423
+ --bg0: #0f0e10;
424
+ --bg1: #151416;
425
+ --bg2: #1c1a20;
426
+ --bg3: #242228;
427
+ --line: #2c2830;
428
+ --line2: #221f26;
429
+ --muted: #574838;
430
+ --mid: #6e7a88;
431
+ --text: #98a4b0;
432
+ --heading: #e0ccd0;
433
+ --gold: #ad7575;
434
+ --gold-bg: rgba(173,117,117,.08);
435
+ --jade: #6b8c6e;
436
+ --jade-bg: rgba(107,140,110,.10);
437
+ --accent: #566070;
438
+ --accent2: #ad7575;
439
+ --accent-bg: rgba(86,96,112,.12);
440
+ --red: #c07060;
441
+ --red-bg: rgba(192,112,96,.10);
442
+ --hover-bg: rgba(232,202,200,.06);
443
+ --row-hover: rgba(232,202,200,.03);
444
+ --td-line: rgba(46,40,48,.8);
445
+ }
446
+
447
+ /* Catppuccin dark base (lower specificity so @media auto-light overrides) */
448
+ [data-theme="catppuccin"] {
449
+ --bg0: #11111b;
450
+ --bg1: #181825;
451
+ --bg2: #1e1e2e;
452
+ --bg3: #313244;
453
+ --line: #313244;
454
+ --line2: #262637;
455
+ --muted: #6c7086;
456
+ --mid: #9399b2;
457
+ --text: #cdd6f4;
458
+ --heading: #cdd6f4;
459
+ --gold: #f9e2af;
460
+ --gold-bg: rgba(249,226,175,.08);
461
+ --jade: #a6e3a1;
462
+ --jade-bg: rgba(166,227,161,.09);
463
+ --accent: #cba6f7;
464
+ --accent2: #b4befe;
465
+ --accent-bg: rgba(203,166,247,.10);
466
+ --red: #f38ba8;
467
+ --red-bg: rgba(243,139,168,.10);
468
+ --hover-bg: rgba(255,255,255,.04);
469
+ --row-hover: rgba(255,255,255,.018);
470
+ --td-line: rgba(49,50,68,.7);
471
+ }
472
+
473
+ /* ════════════════════════════════════════════════════════════
474
+ GLASS MODE (html[data-style="glass"])
475
+ Each UI section is its own floating frosted-glass card.
476
+ ════════════════════════════════════════════════════════════ */
477
+
478
+ html[data-style="glass"] {
479
+ --radius: 12px;
480
+ --glass-blur: blur(24px) saturate(200%);
481
+ --glass-blur-sm: blur(16px) saturate(180%);
482
+ --glass-border: color-mix(in srgb, var(--accent) 18%, transparent);
483
+ --glass-bg: color-mix(in srgb, var(--bg2) 44%, transparent);
484
+ --glass-bg-side: color-mix(in srgb, var(--bg1) 44%, transparent);
485
+ --glass-shadow: 0 4px 28px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.07);
486
+ }
487
+
488
+ /* Light mode: softer shadow so cards don't cast dark halos on each other */
489
+ html[data-style="glass"][data-scheme="light"],
490
+ html[data-style="glass"][data-theme="catppuccin"][data-scheme="light"] {
491
+ --glass-shadow: 0 2px 12px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.6);
492
+ }
493
+ @media (prefers-color-scheme: light) {
494
+ html[data-style="glass"]:not([data-scheme="dark"]) {
495
+ --glass-shadow: 0 2px 12px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.6);
496
+ }
497
+ }
498
+
499
+ /* ── Gradient mesh ──────────────────────────────────── */
500
+ html[data-style="glass"] body {
501
+ background:
502
+ radial-gradient(ellipse 65% 55% at 12% 52%, color-mix(in srgb, var(--accent) 24%, transparent) 0%, transparent 100%),
503
+ radial-gradient(ellipse 50% 45% at 88% 14%, color-mix(in srgb, var(--gold) 18%, transparent) 0%, transparent 100%),
504
+ radial-gradient(ellipse 45% 50% at 58% 90%, color-mix(in srgb, var(--jade) 13%, transparent) 0%, transparent 100%),
505
+ var(--bg0);
506
+ background-attachment: fixed;
507
+ }
508
+
509
+ /* ── App: inset everything so glass cards float inside ── */
510
+ html[data-style="glass"] .app {
511
+ padding: 10px;
512
+ gap: 10px;
513
+ box-sizing: border-box;
514
+ }
515
+
516
+ /* ── Topbar: floating glass card ────────────────────── */
517
+ html[data-style="glass"] .topbar {
518
+ background: color-mix(in srgb, var(--bg1) 20%, transparent);
519
+ backdrop-filter: blur(32px) saturate(260%);
520
+ -webkit-backdrop-filter: blur(32px) saturate(260%);
521
+ border: 1px solid var(--glass-border);
522
+ border-radius: 12px;
523
+ box-shadow: var(--glass-shadow);
524
+ }
525
+
526
+ /* ── Sidebar: floating glass card ───────────────────── */
527
+ html[data-style="glass"] .sidebar {
528
+ background: var(--glass-bg-side);
529
+ backdrop-filter: var(--glass-blur);
530
+ -webkit-backdrop-filter: var(--glass-blur);
531
+ border-right: none;
532
+ border: 1px solid var(--glass-border);
533
+ border-radius: 12px;
534
+ box-shadow: var(--glass-shadow);
535
+ }
536
+
537
+ html[data-style="glass"] .nav-item:hover {
538
+ background: color-mix(in srgb, var(--accent) 10%, transparent);
539
+ box-shadow: 0 0 10px color-mix(in srgb, var(--accent) 16%, transparent);
540
+ color: var(--accent);
541
+ }
542
+ html[data-style="glass"] .nav-item.active {
543
+ background: color-mix(in srgb, var(--accent) 18%, transparent);
544
+ border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
545
+ box-shadow: 0 0 18px color-mix(in srgb, var(--accent) 28%, transparent);
546
+ color: var(--accent);
547
+ }
548
+ html[data-style="glass"] .nav-children {
549
+ border-left-color: var(--glass-border);
550
+ }
551
+
552
+ /* ── Main: transparent flex container ───────────────── */
553
+ html[data-style="glass"] .main {
554
+ background: transparent !important;
555
+ backdrop-filter: none !important;
556
+ -webkit-backdrop-filter: none !important;
557
+ border: none !important;
558
+ box-shadow: none !important;
559
+ margin: 0 !important;
560
+ border-radius: 0 !important;
561
+ padding: 0 0 24px;
562
+ display: flex;
563
+ flex-direction: column;
564
+ gap: 12px;
565
+ overflow-y: auto;
566
+ min-height: 0;
567
+ }
568
+ html[data-style="glass"] .main > * {
569
+ flex-shrink: 0;
570
+ }
571
+
572
+ /* ── Universal glass card ───────────────────────────── */
573
+ html[data-style="glass"] .glass-card {
574
+ background: var(--glass-bg);
575
+ backdrop-filter: var(--glass-blur-sm);
576
+ -webkit-backdrop-filter: var(--glass-blur-sm);
577
+ border: 1px solid var(--glass-border);
578
+ border-radius: 12px;
579
+ box-shadow: var(--glass-shadow);
580
+ overflow: hidden;
581
+ }
582
+
583
+ /* ── Settings groups ────────────────────────────────── */
584
+ html[data-style="glass"] .settings-group {
585
+ background: var(--glass-bg) !important;
586
+ backdrop-filter: var(--glass-blur-sm) !important;
587
+ -webkit-backdrop-filter: var(--glass-blur-sm) !important;
588
+ border: 1px solid var(--glass-border) !important;
589
+ border-radius: 12px;
590
+ overflow: hidden;
591
+ box-shadow: var(--glass-shadow);
592
+ }
593
+
594
+ /* ── Editor shell ───────────────────────────────────── */
595
+ html[data-style="glass"] .editor-shell {
596
+ gap: 8px;
597
+ padding: 8px;
598
+ background: transparent;
599
+ }
600
+
601
+ html[data-style="glass"] .editor-main {
602
+ background: var(--glass-bg);
603
+ backdrop-filter: var(--glass-blur-sm);
604
+ -webkit-backdrop-filter: var(--glass-blur-sm);
605
+ border: 1px solid var(--glass-border);
606
+ border-radius: 12px;
607
+ overflow: hidden;
608
+ }
609
+
610
+ html[data-style="glass"] .preview-panel {
611
+ background: var(--glass-bg-side);
612
+ backdrop-filter: var(--glass-blur-sm);
613
+ -webkit-backdrop-filter: var(--glass-blur-sm);
614
+ border: 1px solid var(--glass-border) !important;
615
+ border-radius: 12px;
616
+ overflow: hidden;
617
+ }
618
+
619
+ html[data-style="glass"] .meta-panel {
620
+ background: var(--glass-bg-side);
621
+ backdrop-filter: var(--glass-blur-sm);
622
+ -webkit-backdrop-filter: var(--glass-blur-sm);
623
+ border: 1px solid var(--glass-border) !important;
624
+ border-radius: 12px;
625
+ overflow: hidden;
626
+ box-shadow: var(--glass-shadow);
627
+ }
628
+
629
+ /* ── Dashboard glass overrides ──────────────────────── */
630
+ html[data-style="glass"] .hero {
631
+ background: transparent;
632
+ border-bottom: none;
633
+ }
634
+ html[data-style="glass"] .stats-row {
635
+ border-bottom: none;
636
+ }
637
+ html[data-style="glass"] .stat-cell {
638
+ border-right-color: var(--glass-border);
639
+ }
640
+ html[data-style="glass"] .dash-content .content-main {
641
+ border-right-color: var(--glass-border);
642
+ }
643
+ html[data-style="glass"] .workspace {
644
+ background: transparent !important;
645
+ backdrop-filter: none !important;
646
+ -webkit-backdrop-filter: none !important;
647
+ border: none !important;
648
+ box-shadow: none !important;
649
+ border-radius: 0 !important;
650
+ display: flex;
651
+ gap: 14px;
652
+ padding: 0;
653
+ }
654
+ html[data-style="glass"] .ws-panel {
655
+ background: var(--glass-bg);
656
+ backdrop-filter: var(--glass-blur-sm);
657
+ -webkit-backdrop-filter: var(--glass-blur-sm);
658
+ border: 1px solid var(--glass-border) !important;
659
+ border-radius: 12px;
660
+ box-shadow: var(--glass-shadow);
661
+ min-height: 320px;
662
+ }
663
+ html[data-style="glass"] .ws-panel:first-child { flex: 2; }
664
+ html[data-style="glass"] .ws-panel:last-child { flex: 1; }
665
+ html[data-style="glass"] .notes-area {
666
+ min-height: 240px;
667
+ }
668
+ html[data-style="glass"] .ws-panel + .ws-panel {
669
+ border-left-color: var(--glass-border);
670
+ }
671
+
672
+ /* ── Entries glass overrides ────────────────────────── */
673
+ html[data-style="glass"] .page-header {
674
+ margin-bottom: 0;
675
+ padding: 20px 24px;
676
+ }
677
+ html[data-style="glass"] .entries-content-card {
678
+ padding: 16px 20px;
679
+ }
680
+ html[data-style="glass"] .entries-filter-bar {
681
+ margin-bottom: 12px;
682
+ }
683
+
684
+ /* ── Auto-glass content sections (non-dashboard pages) ─ */
685
+ html[data-style="glass"] .table-wrap {
686
+ background: var(--glass-bg);
687
+ backdrop-filter: var(--glass-blur-sm);
688
+ -webkit-backdrop-filter: var(--glass-blur-sm);
689
+ border: 1px solid var(--glass-border);
690
+ border-radius: 12px;
691
+ box-shadow: var(--glass-shadow);
692
+ }
693
+ html[data-style="glass"] .glass-card .table-wrap {
694
+ background: transparent;
695
+ backdrop-filter: none;
696
+ -webkit-backdrop-filter: none;
697
+ border: none;
698
+ border-radius: 0;
699
+ box-shadow: none;
700
+ }
701
+ html[data-style="glass"] .build-card {
702
+ background: var(--glass-bg);
703
+ backdrop-filter: var(--glass-blur-sm);
704
+ -webkit-backdrop-filter: var(--glass-blur-sm);
705
+ border: 1px solid var(--glass-border);
706
+ border-radius: 12px;
707
+ box-shadow: var(--glass-shadow);
708
+ }
709
+ html[data-style="glass"] .main:has(.coll-panel) {
710
+ padding: 8px !important;
711
+ gap: 8px;
712
+ }
713
+ html[data-style="glass"] .coll-panel,
714
+ html[data-style="glass"] .editor-panel {
715
+ background: var(--glass-bg);
716
+ backdrop-filter: var(--glass-blur-sm);
717
+ -webkit-backdrop-filter: var(--glass-blur-sm);
718
+ border: 1px solid var(--glass-border) !important;
719
+ border-right: 1px solid var(--glass-border) !important;
720
+ border-radius: 12px;
721
+ box-shadow: var(--glass-shadow);
722
+ overflow: hidden;
723
+ height: auto;
724
+ }
725
+ html[data-style="glass"] .upload-area {
726
+ background: color-mix(in srgb, var(--glass-bg) 80%, transparent);
727
+ backdrop-filter: var(--glass-blur-sm);
728
+ -webkit-backdrop-filter: var(--glass-blur-sm);
729
+ border: 1px dashed var(--glass-border);
730
+ border-radius: 12px;
731
+ }
732
+ html[data-style="glass"] #media-grid-wrap {
733
+ background: var(--glass-bg);
734
+ backdrop-filter: var(--glass-blur-sm);
735
+ -webkit-backdrop-filter: var(--glass-blur-sm);
736
+ border: 1px solid var(--glass-border);
737
+ border-radius: 12px;
738
+ box-shadow: var(--glass-shadow);
739
+ padding: 16px;
740
+ }
741
+
742
+ /* ── Glow accents ───────────────────────────────────── */
743
+ html[data-style="glass"] .btn-publish {
744
+ box-shadow: 0 0 18px color-mix(in srgb, var(--gold) 40%, transparent);
745
+ }
746
+
747
+ html[data-style="glass"] .btn-primary {
748
+ box-shadow: 0 0 14px color-mix(in srgb, var(--accent) 35%, transparent);
749
+ }
750
+
751
+ /* ════════════════════════════════════════════════════════════
752
+ BASE STYLES
753
+ ════════════════════════════════════════════════════════════ */
754
+
755
+ html, body {
756
+ background: var(--bg0);
757
+ color: var(--text);
758
+ font-family: var(--sans);
759
+ font-size: 14px;
760
+ line-height: 1.6;
761
+ min-height: 100vh;
762
+ -webkit-font-smoothing: antialiased;
763
+ transition: background 0.2s, color 0.2s;
764
+ }
765
+
766
+ a { color: var(--accent); text-decoration: none; }
767
+ a:hover { color: var(--heading); }
768
+
769
+ /* ── Layout ─────────────────────────────────────── */
770
+ .app { display: grid; grid-template-columns: 232px 1fr; grid-template-rows: 56px 1fr; height: 100vh; }
771
+ .topbar { grid-column: 1/-1; background: var(--bg1); border-bottom: 1px solid var(--line); display: flex; align-items: center; padding: 0 24px; gap: 0; z-index: 10; }
772
+ .sidebar { background: var(--bg1); border-right: 1px solid var(--line); padding: 16px 0; display: flex; flex-direction: column; overflow-y: auto; }
773
+ .main { background: var(--bg0); overflow-y: auto; padding: 32px 40px; min-height: 0; }
774
+
775
+ /* ── Topbar ─────────────────────────────────────── */
776
+ .logo {
777
+ font-family: var(--display);
778
+ font-weight: 500;
779
+ font-size: 13px;
780
+ color: var(--heading);
781
+ display: flex;
782
+ align-items: center;
783
+ gap: 14px;
784
+ letter-spacing: 0.18em;
785
+ text-transform: uppercase;
786
+ text-decoration: none;
787
+ transition: color 0.25s;
788
+ cursor: pointer;
789
+ }
790
+ .logo:hover { color: var(--gold); }
791
+ .logo-mark {
792
+ width: 22px;
793
+ height: 22px;
794
+ border: 1px solid var(--gold);
795
+ border-radius: 50%;
796
+ display: flex;
797
+ align-items: center;
798
+ justify-content: center;
799
+ font-size: 7px;
800
+ color: var(--gold);
801
+ font-family: var(--mono);
802
+ letter-spacing: 0.02em;
803
+ position: relative;
804
+ overflow: visible;
805
+ flex-shrink: 0;
806
+ transition: border-color 0.25s;
807
+ }
808
+ .logo:hover .logo-mark { border-color: var(--accent); color: var(--accent); }
809
+
810
+ /* Orbital ring animation — two elliptical rings like a planet orbit */
811
+ .logo-mark::before {
812
+ content: '';
813
+ position: absolute;
814
+ inset: -5px;
815
+ border-radius: 50%;
816
+ border: 1px solid var(--accent);
817
+ border-top-color: transparent;
818
+ border-bottom-color: transparent;
819
+ opacity: 0.65;
820
+ pointer-events: none;
821
+ animation: logo-orbit-a 14s linear infinite;
822
+ }
823
+ .logo-mark::after {
824
+ content: '';
825
+ position: absolute;
826
+ inset: -9px;
827
+ border-radius: 50%;
828
+ border: 1px solid var(--gold);
829
+ border-left-color: transparent;
830
+ border-right-color: transparent;
831
+ opacity: 0.22;
832
+ pointer-events: none;
833
+ animation: logo-orbit-b 36s linear infinite reverse;
834
+ }
835
+ @keyframes logo-orbit-a {
836
+ from { transform: scaleY(0.38) rotate(0deg); }
837
+ to { transform: scaleY(0.38) rotate(360deg); }
838
+ }
839
+ @keyframes logo-orbit-b {
840
+ from { transform: scaleY(0.25) rotate(-20deg); }
841
+ to { transform: scaleY(0.25) rotate(340deg); }
842
+ }
843
+
844
+ .topbar-right {
845
+ margin-left: auto;
846
+ display: flex;
847
+ align-items: center;
848
+ gap: 12px;
849
+ font-size: 12px;
850
+ color: var(--muted);
851
+ }
852
+ .topbar-right .user { color: var(--mid); font-size: 11px; }
853
+ .topbar-right .logout { color: var(--muted); cursor: pointer; transition: color 0.12s; font-size: 11px; }
854
+ .topbar-right .logout:hover { color: var(--red); }
855
+
856
+ /* Search trigger */
857
+ .search-trigger {
858
+ display: flex;
859
+ align-items: center;
860
+ gap: 6px;
861
+ padding: 5px 10px;
862
+ background: var(--hover-bg);
863
+ border: 1px solid var(--line);
864
+ border-radius: var(--radius);
865
+ font-size: 11px;
866
+ color: var(--muted);
867
+ cursor: pointer;
868
+ transition: border-color 0.15s, color 0.15s;
869
+ font-family: var(--mono);
870
+ }
871
+ .search-trigger:hover { border-color: var(--accent); color: var(--text); }
872
+ .search-trigger kbd { font-family: var(--mono); font-size: 9px; opacity: 0.6; }
873
+
874
+ /* Scheme toggle button */
875
+ .scheme-toggle {
876
+ width: 30px;
877
+ height: 30px;
878
+ border: 1px solid var(--line);
879
+ border-radius: var(--radius);
880
+ background: var(--hover-bg);
881
+ color: var(--muted);
882
+ cursor: pointer;
883
+ display: flex;
884
+ align-items: center;
885
+ justify-content: center;
886
+ font-size: 13px;
887
+ transition: border-color 0.15s, color 0.15s, background 0.15s;
888
+ flex-shrink: 0;
889
+ }
890
+ .scheme-toggle:hover { border-color: var(--accent); color: var(--heading); }
891
+
892
+ /* ── Sidebar ─────────────────────────────────────── */
893
+ .nav-section { font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); padding: 0 20px; margin: 20px 0 4px; font-weight: 500; }
894
+ .nav-section:first-child { margin-top: 0; }
895
+ .nav-item { display: flex; align-items: center; gap: 10px; padding: 7px 12px; font-size: 13px; color: var(--mid); cursor: pointer; position: relative; transition: color 0.12s, background 0.15s, box-shadow 0.15s; border: none; background: none; margin: 1px 8px; text-align: left; text-decoration: none; border-radius: 8px; }
896
+ .nav-label { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
897
+ .nav-item:hover { color: var(--heading); background: var(--hover-bg); }
898
+ .nav-item.active { color: var(--accent); background: var(--accent-bg); }
899
+ .nav-item.active::before { display: none; }
900
+ .nav-icon { width: 14px; text-align: center; font-size: 11px; opacity: 0.45; flex-shrink: 0; }
901
+ .nav-badge { margin-left: 4px; flex-shrink: 0; font-size: 10px; color: var(--muted); background: var(--bg3); border: 1px solid var(--line); padding: 1px 7px; border-radius: 3px; }
902
+ .nav-children { border-left: 1px solid var(--line); margin-left: 26px; margin-bottom: 4px; }
903
+ .nav-child { padding-left: 20px; font-size: 12px; }
904
+ .nav-child .nav-icon { font-size: 7px; opacity: 0.3; }
905
+ .sidebar-footer { margin-top: auto; padding: 14px 18px; border-top: 1px solid var(--line); font-size: 11px; color: var(--muted); }
906
+ .pod-name { color: var(--text); font-size: 12px; font-weight: 500; margin-bottom: 3px; display: flex; align-items: center; gap: 5px; }
907
+ .pod-name::before { content: "◆"; font-size: 6px; color: var(--gold); }
908
+ .pod-info { font-size: 10px; color: var(--muted); margin-bottom: 6px; }
909
+ .pod-status { display: flex; align-items: center; margin-top: 8px; }
910
+ .pod-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--jade); margin-right: 5px; flex-shrink: 0; animation: pulse 2.5s ease-in-out infinite; }
911
+ @keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.3} }
912
+
913
+ /* ── Page header ─────────────────────────────────── */
914
+ .page-header { margin-bottom: 28px; padding: 0; }
915
+ .entries-filter-bar { margin-bottom: 16px; }
916
+ .page-title { font-family: var(--display); font-weight: 500; font-size: 20px; color: var(--heading); letter-spacing: 0.04em; }
917
+ .page-sub { font-size: 11px; color: var(--muted); margin-top: 4px; font-family: var(--mono); }
918
+
919
+ /* ── Cards / Stats ───────────────────────────────── */
920
+ .stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin-bottom: 28px; }
921
+ .stat-card { background: var(--bg2); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 20px; }
922
+ .stat-label { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
923
+ .stat-value { font-size: 26px; font-family: var(--mono); color: var(--heading); line-height: 1; }
924
+ .stat-sub { font-size: 10px; color: var(--muted); margin-top: 6px; }
925
+
926
+ /* ── Table ───────────────────────────────────────── */
927
+ .table-wrap { background: var(--bg2); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
928
+ .table-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 20px; border-bottom: 1px solid var(--line); }
929
+ .table-title { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mid); }
930
+ table { width: 100%; border-collapse: collapse; }
931
+ th { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); font-weight: 500; padding: 9px 20px; text-align: left; border-bottom: 1px solid var(--line); background: var(--bg2); }
932
+ td { padding: 10px 20px; font-size: 12px; color: var(--text); border-bottom: 1px solid var(--td-line); }
933
+ tr:last-child td { border-bottom: none; }
934
+ tr:hover td { background: var(--row-hover); }
935
+ .badge { display: inline-block; font-size: 10px; font-family: var(--mono); padding: 2px 7px; border-radius: 2px; letter-spacing: 0.04em; }
936
+ .badge-published { background: var(--jade-bg); color: var(--jade); }
937
+ .badge-draft { background: var(--gold-bg); color: var(--gold); }
938
+
939
+ /* ── Buttons ─────────────────────────────────────── */
940
+ .btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; font-size: 12px; font-family: var(--sans); border-radius: var(--radius); cursor: pointer; transition: all 0.12s; border: 1px solid transparent; font-weight: 400; letter-spacing: 0.01em; }
941
+ .btn-primary { background: var(--accent); color: #fff; border-color: var(--accent); }
942
+ .btn-primary:hover { opacity: 0.88; }
943
+ .btn-primary:disabled { opacity: 0.45; cursor: not-allowed; }
944
+ .btn-ghost { background: none; color: var(--mid); border-color: var(--line); }
945
+ .btn-ghost:hover { color: var(--heading); border-color: var(--mid); background: var(--hover-bg); }
946
+ .btn-ghost:disabled { opacity: 0.4; cursor: not-allowed; }
947
+ .btn-ghost.active { color: var(--accent); border-color: var(--accent); background: var(--accent-bg); }
948
+ .btn-danger { background: none; color: var(--red); border-color: var(--red-bg); }
949
+ .btn-danger:hover { background: var(--red-bg); border-color: var(--red); }
950
+ .btn-sm { padding: 3px 10px; font-size: 11px; }
951
+ /* Primary action button — used in settings and other forms */
952
+ .btn-save { padding: 7px 20px; background: var(--gold); border: 1px solid var(--gold); color: var(--bg0); font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s; border-radius: 6px; }
953
+ .btn-save:hover { background: transparent; color: var(--gold); border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold-bg); }
954
+ .btn-save:disabled { opacity: 0.4; cursor: not-allowed; }
955
+
956
+ /* ── Form fields ─────────────────────────────────── */
957
+ .field { margin-bottom: 16px; }
958
+ .label { display: block; font-size: 11px; color: var(--mid); margin-bottom: 6px; letter-spacing: 0.04em; }
959
+ .input { width: 100%; background: var(--bg0); border: 1px solid var(--line); border-radius: var(--radius); padding: 7px 11px; color: var(--heading); font-family: var(--mono); font-size: 12px; outline: none; transition: border-color 0.15s, box-shadow 0.15s; }
960
+ .input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-bg); }
961
+
962
+ /* ── Login page ──────────────────────────────────── */
963
+ .login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--bg0); }
964
+ .login-box { width: 340px; }
965
+
966
+ /* Glass mode — let the body gradient show through, glass card */
967
+ html[data-style="glass"] .login-wrap { background: transparent; }
968
+ html[data-style="glass"] .login-card {
969
+ background: var(--glass-bg);
970
+ backdrop-filter: var(--glass-blur);
971
+ border-color: var(--glass-border);
972
+ box-shadow: var(--glass-shadow);
973
+ }
974
+ .login-logo { text-align: center; margin-bottom: 36px; }
975
+ .login-mark {
976
+ width: 44px; height: 44px;
977
+ border: 1px solid var(--gold);
978
+ border-radius: 50%;
979
+ display: flex; align-items: center; justify-content: center;
980
+ position: relative; overflow: visible;
981
+ margin: 0 auto 20px;
982
+ }
983
+ .login-mark::before {
984
+ content: '';
985
+ position: absolute;
986
+ inset: -10px;
987
+ border-radius: 50%;
988
+ border: 1px solid var(--accent);
989
+ border-top-color: transparent;
990
+ border-bottom-color: transparent;
991
+ opacity: 0.65;
992
+ animation: logo-orbit-a 14s linear infinite;
993
+ }
994
+ .login-mark::after {
995
+ content: '';
996
+ position: absolute;
997
+ inset: -18px;
998
+ border-radius: 50%;
999
+ border: 1px solid var(--gold);
1000
+ border-left-color: transparent;
1001
+ border-right-color: transparent;
1002
+ opacity: 0.25;
1003
+ animation: logo-orbit-b 36s linear infinite reverse;
1004
+ }
1005
+ .login-logo-mark { font-family: var(--display); font-size: 24px; font-weight: 500; color: var(--heading); letter-spacing: 0.2em; }
1006
+ .login-logo-sub { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--muted); margin-top: 6px; font-family: var(--mono); }
1007
+ .login-card { background: var(--bg2); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 32px; }
1008
+ .login-card h2 { font-size: 13px; color: var(--heading); margin-bottom: 20px; font-weight: 500; }
1009
+ .login-error { background: var(--red-bg); border: 1px solid rgba(224,85,85,0.2); color: var(--red); font-size: 12px; padding: 8px 12px; border-radius: var(--radius); margin-bottom: 16px; display: none; }
1010
+ .login-error.visible { display: block; }
1011
+
1012
+ /* ── Misc ────────────────────────────────────────── */
1013
+ .empty { padding: 48px; text-align: center; color: var(--muted); font-size: 12px; }
1014
+ .empty-icon { font-size: 22px; opacity: 0.3; margin-bottom: 10px; }
1015
+ .spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid var(--line); border-top-color: var(--accent); border-radius: 50%; animation: spin 0.7s linear infinite; }
1016
+ @keyframes spin { to { transform: rotate(360deg); } }
1017
+
1018
+ /* Scheme toggle icon labels (set in JS) */
1019
+ [data-scheme="dark"] .scheme-toggle { color: var(--accent); }
1020
+ [data-scheme="light"] .scheme-toggle { color: var(--gold); }