@abraham/modern.css 0.0.0-stage → 0.0.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,2241 @@
1
+ @layer m.reset {
2
+ :where(*) {
3
+ box-sizing: border-box;
4
+ }
5
+
6
+ :where(:not(dialog, [popover])) {
7
+ margin: 0;
8
+ }
9
+
10
+ :where(html) {
11
+ -webkit-text-size-adjust: 100%;
12
+ -moz-text-size-adjust: 100%;
13
+ text-size-adjust: 100%;
14
+ }
15
+
16
+ :where(img, picture, video, canvas, svg, iframe) {
17
+ vertical-align: middle;
18
+ }
19
+
20
+ :where(input, button, select, textarea) {
21
+ font: inherit;
22
+ letter-spacing: inherit;
23
+ color: inherit;
24
+ }
25
+
26
+ :where(p, h1, h2, h3, h4, h5, h6, li, dd, blockquote, figcaption) {
27
+ overflow-wrap: break-word;
28
+ }
29
+ }
30
+
31
+ @layer m.tokens {
32
+ :where(:root) {
33
+ --m-primary: oklch(55% .19 40);
34
+ --m-density: 1;
35
+ --m-radius: .5rem;
36
+ --m-font-sans: system-ui, sans-serif;
37
+ --m-font-mono: ui-monospace, SFMono-Regular, monospace;
38
+ --m-font-size: 1rem;
39
+ --m-measure: 100ch;
40
+ }
41
+
42
+ :where(*) {
43
+ --_m-space-1: calc(var(--m-density, 1) * .25rem);
44
+ --_m-space-2: calc(var(--m-density, 1) * .5rem);
45
+ --_m-space-3: calc(var(--m-density, 1) * .75rem);
46
+ --_m-space-4: calc(var(--m-density, 1) * 1rem);
47
+ --_m-space-6: calc(var(--m-density, 1) * 1.5rem);
48
+ --_m-space-8: calc(var(--m-density, 1) * 2rem);
49
+ --_m-text-sm: calc(var(--m-font-size, 1rem) / 1.2);
50
+ --_m-text-base: var(--m-font-size, 1rem);
51
+ --_m-text-lg: calc(var(--m-font-size, 1rem) * 1.2);
52
+ --_m-text-xl: calc(var(--m-font-size, 1rem) * pow(1.2, 2));
53
+ --_m-text-2xl: calc(var(--m-font-size, 1rem) * pow(1.2, 3));
54
+ --_m-leading: calc(1.4 + .2 * var(--m-density, 1));
55
+ --_m-leading-tight: calc(1.05 + .15 * var(--m-density, 1));
56
+ }
57
+
58
+ :where(:root) {
59
+ --_m-bar-size: calc(2 * var(--_m-space-3) + var(--_m-text-base) * var(--_m-leading));
60
+ --_m-sticky-offset: 0px;
61
+ }
62
+
63
+ :where(:root:has( > body > header > nav)) {
64
+ --_m-sticky-offset: var(--_m-bar-size);
65
+ }
66
+
67
+ :where(:root:has( > body > header > nav + nav)) {
68
+ --_m-sticky-offset: calc(2 * var(--_m-bar-size));
69
+ }
70
+
71
+ :where(:root, :host) {
72
+ --_m-surface: light-dark(oklch(99% .006 80), oklch(18% .008 60));
73
+ --_m-surface-raised: light-dark(oklch(97% .004 260), oklch(23% .008 260));
74
+ --_m-surface-overlay: light-dark(oklch(100% 0 0), oklch(24% .008 60));
75
+ --_m-text: light-dark(oklch(22% .012 260), oklch(93% .006 260));
76
+ --_m-edge: color-mix(in oklch, var(--_m-text), transparent 80%);
77
+ --_m-shadow-overlay: 0 2px 6px -2px light-dark(oklch(0% 0 0 / .15), oklch(0% 0 0 / .4)),
78
+ 0 12px 32px -8px light-dark(oklch(0% 0 0 / .3), oklch(0% 0 0 / .7));
79
+ }
80
+
81
+ :where(:root) {
82
+ --_m-host-surface: transparent;
83
+ }
84
+
85
+ :where(:root, :host, [data-contrast]) {
86
+ --_m-control-border: var(--_m-in-control-border, light-dark(oklch(62% .01 260), oklch(56% .01 260)));
87
+ --_m-border: var(--_m-in-border, light-dark(oklch(89% .006 260), oklch(34% .01 260)));
88
+ --_m-text-muted: var(--_m-in-text-muted, light-dark(oklch(48% .012 260), oklch(72% .01 260)));
89
+ --_m-tint: color-mix(in oklch, var(--_m-text), transparent var(--_m-in-tint, 92%));
90
+ --_m-danger: var(--_m-in-danger, light-dark(oklch(53% .2 27), oklch(70% .17 27)));
91
+ --_m-success: var(--_m-in-success, light-dark(oklch(50% .13 150), oklch(72% .15 150)));
92
+ --_m-underline-mix: var(--_m-in-underline-mix, 60%);
93
+ --_m-focus-width: var(--_m-in-focus-width, 2px);
94
+ }
95
+
96
+ :where([data-theme="light"]) {
97
+ --_m-scheme: light;
98
+ }
99
+
100
+ :where([data-theme="dark"]) {
101
+ --_m-scheme: dark;
102
+ }
103
+
104
+ :where(:root, :host, [data-theme]) {
105
+ color-scheme: var(--_m-scheme, light dark);
106
+ }
107
+
108
+ :where([data-theme]) {
109
+ background-color: var(--_m-surface);
110
+ color: var(--_m-text);
111
+ }
112
+
113
+ :where(*) {
114
+ --_m-primary-light: oklch(from var(--m-primary, oklch(55% .19 40)) min(l, var(--_m-in-primary-max, 1)) c h);
115
+ --_m-primary-dark: oklch(from var(--m-primary, oklch(55% .19 40)) max(calc(l + .1), var(--_m-in-primary-min, 0)) c h);
116
+ --_m-primary: light-dark(var(--_m-primary-light), var(--_m-primary-dark));
117
+ --_m-primary-hover: color-mix(in oklch, var(--_m-primary), light-dark(#000, #fff) 15%);
118
+ --_m-primary-subtle: color-mix(in oklch, var(--_m-primary), transparent var(--_m-in-primary-subtle, 85%));
119
+ --_m-on-primary: var(--m-on-primary, contrast-color(var(--_m-primary)));
120
+ }
121
+
122
+ @supports not (color: contrast-color(red)) {
123
+ :where(*) {
124
+ --_m-on-primary: var(--m-on-primary, light-dark(oklch(from var(--_m-primary-light) calc((.565 - l) * 1000) 0 0deg), oklch(from var(--_m-primary-dark) calc((.565 - l) * 1000) 0 0deg)));
125
+ }
126
+ }
127
+
128
+ @supports not (color: oklch(from red l c h)) {
129
+ :where(*) {
130
+ --_m-on-primary: initial;
131
+ }
132
+ }
133
+
134
+ @media (prefers-contrast: more) {
135
+ :where(:root, :host) {
136
+ --_m-in-border: var(--_m-control-border);
137
+ --_m-in-control-border: light-dark(oklch(45% .01 260), oklch(72% .01 260));
138
+ --_m-in-text-muted: light-dark(oklch(38% .012 260), oklch(82% .01 260));
139
+ --_m-in-tint: 85%;
140
+ --_m-in-danger: light-dark(oklch(43% .17 27), oklch(80% .12 27));
141
+ --_m-in-success: light-dark(oklch(40% .1 150), oklch(82% .13 150));
142
+ --_m-in-underline-mix: 0%;
143
+ --_m-in-focus-width: 3px;
144
+ --_m-in-primary-max: .4;
145
+ --_m-in-primary-min: .8;
146
+ --_m-in-primary-subtle: 70%;
147
+ }
148
+ }
149
+
150
+ :where([data-contrast="more"]) {
151
+ --_m-in-border: var(--_m-control-border);
152
+ --_m-in-control-border: light-dark(oklch(45% .01 260), oklch(72% .01 260));
153
+ --_m-in-text-muted: light-dark(oklch(38% .012 260), oklch(82% .01 260));
154
+ --_m-in-tint: 85%;
155
+ --_m-in-danger: light-dark(oklch(43% .17 27), oklch(80% .12 27));
156
+ --_m-in-success: light-dark(oklch(40% .1 150), oklch(82% .13 150));
157
+ --_m-in-underline-mix: 0%;
158
+ --_m-in-focus-width: 3px;
159
+ --_m-in-primary-max: .4;
160
+ --_m-in-primary-min: .8;
161
+ --_m-in-primary-subtle: 70%;
162
+ }
163
+
164
+ :where(:root, :host) {
165
+ --_m-ease: cubic-bezier(.2, .8, .2, 1);
166
+ --_m-spring: linear(0, .18 6.25%, .53 12.5%, .84 18.75%, 1.04 25%, 1.12 34%, 1.04 50%, .99 62.5%, .985 70%, 1);
167
+ }
168
+
169
+ :where(:root, :host, [data-motion]) {
170
+ --_m-duration: var(--_m-in-duration, .15s);
171
+ --_m-duration-slow: var(--_m-in-duration-slow, .25s);
172
+ --_m-scroll-behavior: var(--_m-in-scroll-behavior, smooth);
173
+ --_m-spin: var(--_m-in-spin, m-spin .8s linear infinite);
174
+ --_m-slide: var(--_m-in-slide, m-slide 1.2s ease-in-out infinite);
175
+ }
176
+
177
+ @media (prefers-reduced-motion: reduce) {
178
+ :where(:root, :host) {
179
+ --_m-in-duration: 0s;
180
+ --_m-in-duration-slow: 0s;
181
+ --_m-in-scroll-behavior: auto;
182
+ --_m-in-spin: m-pulse 2s ease-in-out infinite;
183
+ --_m-in-slide: m-pulse 2s ease-in-out infinite;
184
+ }
185
+ }
186
+
187
+ :where([data-motion="reduce"]) {
188
+ --_m-in-duration: 0s;
189
+ --_m-in-duration-slow: 0s;
190
+ --_m-in-scroll-behavior: auto;
191
+ --_m-in-spin: m-pulse 2s ease-in-out infinite;
192
+ --_m-in-slide: m-pulse 2s ease-in-out infinite;
193
+ }
194
+
195
+ @property --_m-drop {
196
+ syntax: "<length>";
197
+ inherits: true;
198
+ initial-value: 0;
199
+ }
200
+
201
+ @property --_m-fade-start {
202
+ syntax: "<length>";
203
+ inherits: false;
204
+ initial-value: 0;
205
+ }
206
+
207
+ @property --_m-fade-end {
208
+ syntax: "<length>";
209
+ inherits: false;
210
+ initial-value: 0;
211
+ }
212
+
213
+ @keyframes m-lift {
214
+ to {
215
+ --_m-drop: .5rem;
216
+ }
217
+ }
218
+
219
+ @keyframes m-fade {
220
+ 0% {
221
+ --_m-fade-end: 1.5em;
222
+ mask-image: linear-gradient(to right,
223
+ transparent,
224
+ black var(--_m-fade-start) calc(100% - var(--_m-fade-end)),
225
+ transparent);
226
+ }
227
+
228
+ 10%, 90% {
229
+ --_m-fade-start: 1.5em;
230
+ --_m-fade-end: 1.5em;
231
+ }
232
+
233
+ 100% {
234
+ --_m-fade-start: 1.5em;
235
+ mask-image: linear-gradient(to right,
236
+ transparent,
237
+ black var(--_m-fade-start) calc(100% - var(--_m-fade-end)),
238
+ transparent);
239
+ }
240
+ }
241
+
242
+ @keyframes m-spin {
243
+ to {
244
+ rotate: 1turn;
245
+ }
246
+ }
247
+
248
+ @keyframes m-slide {
249
+ from {
250
+ background-position: -43% 0;
251
+ }
252
+
253
+ to {
254
+ background-position: 143% 0;
255
+ }
256
+ }
257
+
258
+ @keyframes m-pulse {
259
+ 50% {
260
+ opacity: .4;
261
+ }
262
+ }
263
+ }
264
+
265
+ @layer m.base {
266
+ :where(html) {
267
+ background-color: var(--_m-surface);
268
+ color: var(--_m-text);
269
+ scroll-behavior: var(--_m-scroll-behavior);
270
+ scroll-padding-block-start: var(--_m-sticky-offset);
271
+ }
272
+
273
+ :where(body) {
274
+ box-sizing: content-box;
275
+ max-inline-size: var(--m-measure, 100ch);
276
+ padding: var(--_m-space-8) var(--_m-space-4);
277
+ font-family: var(--m-font-sans, system-ui, sans-serif);
278
+ font-size: var(--_m-text-base);
279
+ line-height: var(--_m-leading);
280
+ margin-inline: auto;
281
+ }
282
+
283
+ :where(:host) {
284
+ background-color: var(--_m-host-surface, var(--_m-surface));
285
+ color: var(--_m-text);
286
+ font-family: var(--m-font-sans, system-ui, sans-serif);
287
+ font-size: var(--m-font-size, 1rem);
288
+ line-height: calc(1.4 + .2 * var(--m-density, 1));
289
+ }
290
+
291
+ ::selection {
292
+ background-color: var(--_m-primary-subtle);
293
+ }
294
+
295
+ :where(address, blockquote, details, dl, fieldset, figure, form, ol, p, pre, table, ul) {
296
+ margin-block-end: var(--_m-space-4);
297
+ }
298
+
299
+ :where(article, aside, footer, header, main, nav, section) {
300
+ margin-block-end: var(--_m-space-8);
301
+ }
302
+
303
+ :where(address, blockquote, details, dl, fieldset, figure, form, ol, p, pre, table, ul, article, aside, footer, header, main, nav, section):where(:last-child) {
304
+ margin-block-end: 0;
305
+ }
306
+
307
+ :where(h1, h2, h3, h4, h5, h6) {
308
+ margin-block: var(--_m-space-8) var(--_m-space-3);
309
+ font-weight: 650;
310
+ line-height: var(--_m-leading-tight);
311
+ text-wrap: balance;
312
+ }
313
+
314
+ :where(h1, h2, h3, h4, h5, h6):where(:first-child) {
315
+ margin-block-start: 0;
316
+ }
317
+
318
+ :where(h1, h2, h3, h4, h5, h6):where(:last-child) {
319
+ margin-block-end: 0;
320
+ }
321
+
322
+ :where(h1) {
323
+ font-size: clamp(var(--_m-text-2xl),
324
+ calc(var(--_m-text-2xl) + (100vw - 20rem) * .76 / 60),
325
+ calc(var(--m-font-size, 1rem) * pow(1.2, 5)));
326
+ letter-spacing: -.02em;
327
+ font-weight: 700;
328
+ }
329
+
330
+ :where(h2) {
331
+ font-size: clamp(var(--_m-text-xl),
332
+ calc(var(--_m-text-xl) + (100vw - 20rem) * .634 / 60),
333
+ calc(var(--m-font-size, 1rem) * pow(1.2, 4)));
334
+ letter-spacing: -.015em;
335
+ }
336
+
337
+ :where(h3) {
338
+ font-size: clamp(var(--_m-text-lg), calc(var(--_m-text-lg) + (100vw - 20rem) * .528 / 60), var(--_m-text-2xl));
339
+ letter-spacing: -.01em;
340
+ }
341
+
342
+ :where(h4) {
343
+ font-size: var(--_m-text-lg);
344
+ }
345
+
346
+ :where(h5) {
347
+ font-size: var(--_m-text-base);
348
+ }
349
+
350
+ :where(h6) {
351
+ font-size: var(--_m-text-sm);
352
+ color: var(--_m-text-muted);
353
+ }
354
+
355
+ :where(p) {
356
+ text-wrap: pretty;
357
+ }
358
+
359
+ :where(hgroup) {
360
+ margin-block: var(--_m-space-8) var(--_m-space-4);
361
+
362
+ &:where(:first-child) {
363
+ margin-block-start: 0;
364
+ }
365
+
366
+ &:where(:last-child) {
367
+ margin-block-end: 0;
368
+ }
369
+
370
+ & > :where(*) {
371
+ margin-block: 0;
372
+ }
373
+
374
+ & > :where(p:has( ~ :is(h1, h2, h3, h4, h5, h6))) {
375
+ font-size: var(--_m-text-sm);
376
+ letter-spacing: .08em;
377
+ text-transform: uppercase;
378
+ color: var(--_m-text-muted);
379
+ margin-block-end: var(--_m-space-1);
380
+ font-weight: 600;
381
+ }
382
+
383
+ & > :where(:is(h1, h2, h3, h4, h5, h6) ~ p) {
384
+ font-size: var(--_m-text-lg);
385
+ color: var(--_m-text-muted);
386
+ text-wrap: balance;
387
+ margin-block-start: var(--_m-space-2);
388
+ }
389
+ }
390
+
391
+ :where(small) {
392
+ font-size: .875em;
393
+ }
394
+
395
+ :where(mark) {
396
+ background-color: color-mix(in oklch, var(--_m-primary), transparent 70%);
397
+ color: inherit;
398
+ -webkit-box-decoration-break: clone;
399
+ box-decoration-break: clone;
400
+ border-radius: .2em;
401
+ padding-inline: .15em;
402
+ }
403
+
404
+ :where(abbr[title]) {
405
+ text-underline-offset: .2em;
406
+ cursor: help;
407
+ -webkit-text-decoration: underline dotted;
408
+ text-decoration: underline dotted;
409
+ }
410
+
411
+ :where(ins) {
412
+ color: var(--_m-success);
413
+ }
414
+
415
+ :where(del) {
416
+ color: var(--_m-danger);
417
+ }
418
+
419
+ :where(time, data, output) {
420
+ font-variant-numeric: tabular-nums;
421
+ }
422
+
423
+ :where(sub, sup) {
424
+ vertical-align: baseline;
425
+ font-size: .75em;
426
+ line-height: 0;
427
+ position: relative;
428
+ }
429
+
430
+ :where(sup) {
431
+ inset-block-start: -.5em;
432
+ }
433
+
434
+ :where(sub) {
435
+ inset-block-end: -.25em;
436
+ }
437
+
438
+ @view-transition {
439
+ navigation: auto;
440
+ }
441
+
442
+ @media (prefers-reduced-motion: reduce) {
443
+ @view-transition {
444
+ navigation: none;
445
+ }
446
+ }
447
+
448
+ :where(:root)::view-transition-group(*) {
449
+ animation-duration: var(--_m-duration-slow);
450
+ animation-timing-function: var(--_m-ease);
451
+ }
452
+
453
+ @supports (animation-timeline: scroll()) {
454
+ :where([data-scroll-progress]:root):before {
455
+ content: "";
456
+ z-index: 2;
457
+ background-color: var(--_m-primary);
458
+ transform-origin: 0;
459
+ block-size: 3px;
460
+ animation: linear both m-grow;
461
+ animation-timeline: scroll(root);
462
+ position: fixed;
463
+ inset: 0 0 auto;
464
+ scale: 0 1;
465
+ }
466
+
467
+ :where([data-scroll-progress]:root:dir(rtl)):before {
468
+ transform-origin: 100%;
469
+ }
470
+ }
471
+
472
+ @keyframes m-grow {
473
+ to {
474
+ scale: 1;
475
+ }
476
+ }
477
+ }
478
+
479
+ @layer m.elements {
480
+ :where(a) {
481
+ color: var(--_m-primary);
482
+ text-decoration-line: underline;
483
+ -webkit-text-decoration-color: color-mix(in oklch, currentcolor, transparent var(--_m-underline-mix));
484
+ text-decoration-color: color-mix(in oklch, currentcolor, transparent var(--_m-underline-mix));
485
+ text-underline-offset: .2em;
486
+ transition-property: color, text-decoration-color, text-decoration-thickness;
487
+ transition-duration: var(--_m-duration);
488
+ transition-timing-function: var(--_m-ease);
489
+ text-decoration-thickness: from-font;
490
+ }
491
+
492
+ :where(a:visited) {
493
+ -webkit-text-decoration-color: var(--_m-text-muted);
494
+ text-decoration-color: var(--_m-text-muted);
495
+ }
496
+
497
+ :where(a:hover) {
498
+ color: var(--_m-primary-hover);
499
+ text-decoration-color: currentColor;
500
+ text-decoration-thickness: 2px;
501
+ }
502
+
503
+ :where(h1, h2, h3, h4, h5, h6) :where(a:not([role="button"])) {
504
+ color: inherit;
505
+ }
506
+
507
+ :where(a > [aria-hidden="true"]) {
508
+ font-style: normal;
509
+ display: inline-block;
510
+ }
511
+
512
+ :where(ul, ol) {
513
+ padding-inline-start: var(--_m-space-6);
514
+ }
515
+
516
+ :where(ol) {
517
+ font-variant-numeric: tabular-nums;
518
+ }
519
+
520
+ :where(li)::marker {
521
+ color: var(--_m-text-muted);
522
+ }
523
+
524
+ :where(li + li) {
525
+ margin-block-start: var(--_m-space-1);
526
+ }
527
+
528
+ :where(li) > :where(ul, ol) {
529
+ margin-block: var(--_m-space-1) 0;
530
+ }
531
+
532
+ :where(menu) {
533
+ gap: var(--_m-space-2);
534
+ flex-wrap: wrap;
535
+ padding: 0;
536
+ list-style: none;
537
+ display: flex;
538
+ }
539
+
540
+ :where(menu > li) {
541
+ margin: 0;
542
+ }
543
+
544
+ :where(dt) {
545
+ font-weight: 600;
546
+ }
547
+
548
+ :where(dd) {
549
+ margin-inline-start: var(--_m-space-4);
550
+ }
551
+
552
+ :where(dd + dt) {
553
+ margin-block-start: var(--_m-space-3);
554
+ }
555
+
556
+ :where(blockquote) {
557
+ border-inline-start: 3px solid var(--_m-primary);
558
+ color: var(--_m-text-muted);
559
+ hanging-punctuation: first last;
560
+ padding-inline-start: var(--_m-space-4);
561
+ }
562
+
563
+ :where(q) {
564
+ hanging-punctuation: first last;
565
+ }
566
+
567
+ :where(blockquote) :where(cite, footer) {
568
+ font-size: var(--_m-text-sm);
569
+ color: var(--_m-text-muted);
570
+ }
571
+
572
+ :where(blockquote > footer):before {
573
+ content: "— " / "";
574
+ }
575
+
576
+ :where(figcaption) {
577
+ font-size: var(--_m-text-sm);
578
+ color: var(--_m-text-muted);
579
+ margin-block-start: var(--_m-space-2);
580
+ }
581
+
582
+ :where(figcaption:first-child) {
583
+ margin-block: 0 var(--_m-space-2);
584
+ }
585
+
586
+ :where(code, kbd, samp, pre) {
587
+ font-family: var(--m-font-mono, ui-monospace, SFMono-Regular, monospace);
588
+ font-size: .875em;
589
+ }
590
+
591
+ :where(code, kbd, samp) {
592
+ border-radius: calc(var(--m-radius, .5rem) / 2);
593
+ background-color: var(--_m-tint);
594
+ padding: .1em .3em;
595
+ }
596
+
597
+ :where(kbd) {
598
+ border: 1px solid var(--_m-border);
599
+ border-block-end-width: 2px;
600
+ }
601
+
602
+ :where(pre) {
603
+ padding: var(--_m-space-4);
604
+ border-radius: var(--m-radius, .5rem);
605
+ background: linear-gradient(to right, var(--_m-surface-raised) 30%, transparent) left / 2em 100% no-repeat local,
606
+ linear-gradient(to left, var(--_m-surface-raised) 30%, transparent) right / 2em 100% no-repeat local,
607
+ linear-gradient(to right, var(--_m-edge), transparent) left / .75em 100% no-repeat,
608
+ linear-gradient(to left, var(--_m-edge), transparent) right / .75em 100% no-repeat var(--_m-surface-raised);
609
+ tab-size: 2;
610
+ line-height: 1.5;
611
+ overflow-x: auto;
612
+ }
613
+
614
+ :where(pre:not([dir])) {
615
+ direction: ltr;
616
+ }
617
+
618
+ :where(pre) :where(code, samp) {
619
+ font-size: inherit;
620
+ background: none;
621
+ border-radius: 0;
622
+ padding: 0;
623
+ }
624
+
625
+ :where(table) {
626
+ border-collapse: separate;
627
+ border-spacing: 0;
628
+ font-variant-numeric: tabular-nums;
629
+ inline-size: 100%;
630
+ }
631
+
632
+ :where(caption) {
633
+ font-size: var(--_m-text-sm);
634
+ color: var(--_m-text-muted);
635
+ text-align: start;
636
+ padding-block-end: var(--_m-space-2);
637
+ }
638
+
639
+ :where(th, td) {
640
+ padding: var(--_m-space-2) var(--_m-space-3);
641
+ border-block-end: 1px solid var(--_m-border);
642
+ text-align: start;
643
+ vertical-align: top;
644
+ }
645
+
646
+ :where(th) {
647
+ font-weight: 600;
648
+ }
649
+
650
+ :where(thead th) {
651
+ background-color: var(--_m-surface);
652
+ box-shadow: 0 var(--_m-drop) var(--_m-drop) calc(-1 * var(--_m-drop)) var(--_m-edge);
653
+ border-block-end-width: 2px;
654
+ position: sticky;
655
+ inset-block-start: var(--_m-sticky-offset, 0);
656
+ }
657
+
658
+ :where(tbody tr) {
659
+ transition: background-color var(--_m-duration) var(--_m-ease);
660
+ }
661
+
662
+ :where(tbody tr:nth-child(2n)) {
663
+ background-color: color-mix(in oklch, var(--_m-surface-raised), transparent 40%);
664
+ }
665
+
666
+ :where(tbody tr:hover) {
667
+ background-color: var(--_m-primary-subtle);
668
+ }
669
+
670
+ :where(tfoot) :where(th, td) {
671
+ border-block-end: 0;
672
+ font-weight: 600;
673
+ }
674
+
675
+ :where(figure:has( > table)) {
676
+ overflow-x: auto;
677
+ }
678
+
679
+ :where(figure:has( > table), :is(body > header > nav, body > nav) > :is(ul, ol, menu)) {
680
+ scroll-padding-inline: 1.5em;
681
+ }
682
+
683
+ @supports (animation-timeline: scroll()) {
684
+ :where(thead) {
685
+ view-timeline: --_m-table;
686
+ view-timeline-inset: var(--_m-sticky-offset, 0) 0;
687
+ }
688
+
689
+ :where(thead th) {
690
+ animation: linear both m-lift;
691
+ animation-timeline: --_m-table;
692
+ animation-range: exit-crossing exit-crossing 2rem;
693
+ }
694
+
695
+ :where(figure:has( > table), :is(body > header > nav, body > nav) > :is(ul, ol, menu)) {
696
+ animation: linear both m-fade;
697
+ animation-timeline: scroll(self inline);
698
+ }
699
+
700
+ :where(figure:has( > table), :is(body > header > nav, body > nav) > :is(ul, ol, menu)):where(:dir(rtl)) {
701
+ animation-direction: reverse;
702
+ }
703
+ }
704
+
705
+ :where(label) {
706
+ display: block;
707
+ }
708
+
709
+ :where(:not(legend) + label) {
710
+ margin-block-start: var(--_m-space-3);
711
+ }
712
+
713
+ :where(fieldset) {
714
+ padding: var(--_m-space-3) var(--_m-space-4) var(--_m-space-4);
715
+ border: 1px solid var(--_m-border);
716
+ border-radius: var(--m-radius, .5rem);
717
+ }
718
+
719
+ :where(legend) {
720
+ padding-inline: var(--_m-space-1);
721
+ font-weight: 600;
722
+ }
723
+
724
+ :where(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"], [type="submit"], [type="reset"], [type="button"], [type="image"], [type="hidden"]), select, textarea) {
725
+ inline-size: 100%;
726
+ padding: var(--_m-space-2) var(--_m-space-3);
727
+ border: 1px solid var(--_m-control-border);
728
+ border-radius: var(--m-radius, .5rem);
729
+ background-color: var(--_m-surface);
730
+ color: var(--_m-text);
731
+ line-height: var(--_m-leading-tight);
732
+ appearance: none;
733
+ transition-property: border-color, box-shadow;
734
+ transition-duration: var(--_m-duration);
735
+ transition-timing-function: var(--_m-ease);
736
+ display: block;
737
+
738
+ :where(label) > &, :where(label) + & {
739
+ margin-block-start: var(--_m-space-1);
740
+ }
741
+
742
+ &:where(:focus-visible) {
743
+ border-color: var(--_m-primary);
744
+ box-shadow: 0 0 0 1px var(--_m-primary),
745
+ 0 0 0 4px var(--_m-primary-subtle);
746
+ outline: 2px solid #0000;
747
+ }
748
+
749
+ &:where(:user-invalid, [aria-invalid="true"]) {
750
+ border-color: var(--_m-danger);
751
+ }
752
+
753
+ &:where(:user-invalid, [aria-invalid="true"]):where(:focus-visible) {
754
+ box-shadow: 0 0 0 1px var(--_m-danger),
755
+ 0 0 0 4px color-mix(in oklch, var(--_m-danger), transparent 80%);
756
+ }
757
+
758
+ &:where([aria-invalid="false"]) {
759
+ border-color: var(--_m-success);
760
+ }
761
+
762
+ &:where([aria-invalid="false"]:focus-visible) {
763
+ box-shadow: 0 0 0 1px var(--_m-success),
764
+ 0 0 0 4px color-mix(in oklch, var(--_m-success), transparent 80%);
765
+ }
766
+
767
+ &:where(:not(select, [type="date"], [type="datetime-local"], [type="month"], [type="week"], [type="time"])) {
768
+ background-image: var(--_m-field-icon, none);
769
+ background-position: right var(--_m-space-3) center;
770
+ background-repeat: no-repeat;
771
+ background-size: 1em;
772
+
773
+ &:where(:dir(rtl)) {
774
+ background-position: left var(--_m-space-3) center;
775
+ }
776
+
777
+ &:where(:user-invalid, [aria-invalid="true"], [aria-invalid="false"]) {
778
+ padding-inline-end: calc(var(--_m-space-3) + 1.5em);
779
+ }
780
+
781
+ &:where(:user-invalid, [aria-invalid="true"]) {
782
+ --_m-field-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23de3c37' stroke-width='2.5' stroke-linecap='round'><circle cx='12' cy='12' r='9.5'/><path d='M12 7v6m0 4h.01'/></svg>");
783
+ }
784
+
785
+ &:where([aria-invalid="false"]) {
786
+ --_m-field-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23319751' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");
787
+ }
788
+ }
789
+
790
+ &::placeholder {
791
+ color: var(--_m-text-muted);
792
+ opacity: 1;
793
+ }
794
+
795
+ &:where([readonly]) {
796
+ border-color: var(--_m-border);
797
+ background-color: var(--_m-surface-raised);
798
+ }
799
+
800
+ &:where(:disabled) {
801
+ background-color: var(--_m-surface-raised);
802
+ opacity: .6;
803
+ cursor: not-allowed;
804
+ }
805
+ }
806
+
807
+ :where(textarea) {
808
+ field-sizing: content;
809
+ min-block-size: calc(3lh + 2 * var(--_m-space-2) + 2px);
810
+ line-height: var(--_m-leading);
811
+ resize: vertical;
812
+ background-position: right var(--_m-space-3) top calc(var(--_m-space-2) + (1lh - 1em) / 2);
813
+
814
+ &:where(:dir(rtl)) {
815
+ background-position: left var(--_m-space-3) top calc(var(--_m-space-2) + (1lh - 1em) / 2);
816
+ }
817
+ }
818
+
819
+ :where(input[type="search"]) {
820
+ background-image: var(--_m-field-icon, none),
821
+ url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round'><circle cx='10.5' cy='10.5' r='6.5'/><path d='m15.5 15.5 5 5'/></svg>");
822
+ background-position: right var(--_m-space-3) center,
823
+ left var(--_m-space-3) center;
824
+ padding-inline-start: calc(var(--_m-space-3) + 1.5em);
825
+
826
+ &:where(:dir(rtl)) {
827
+ background-position: left var(--_m-space-3) center,
828
+ right var(--_m-space-3) center;
829
+ }
830
+
831
+ &::-webkit-search-decoration {
832
+ appearance: none;
833
+ }
834
+ }
835
+
836
+ :where(input, select, textarea, fieldset) + :where(small) {
837
+ color: var(--_m-text-muted);
838
+ margin-block-start: var(--_m-space-1);
839
+ display: block;
840
+ }
841
+
842
+ :where(fieldset:has( + small)) {
843
+ margin-block-end: 0;
844
+ }
845
+
846
+ :where(fieldset) + :where(small) {
847
+ margin-block-end: var(--_m-space-4);
848
+ }
849
+
850
+ :where(:user-invalid, [aria-invalid="true"], fieldset:has(:user-invalid, [aria-invalid="true"])) + :where(small) {
851
+ color: var(--_m-danger);
852
+ }
853
+
854
+ :where([aria-invalid="false"]) + :where(small) {
855
+ color: var(--_m-success);
856
+ }
857
+
858
+ :where(label:has( > :disabled, + :disabled), fieldset:disabled label) {
859
+ color: var(--_m-text-muted);
860
+ cursor: not-allowed;
861
+ }
862
+
863
+ :where(select:not([multiple], [size])) {
864
+ background-image: linear-gradient(45deg, #0000 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, #0000 50%);
865
+ background-position: calc(100% - var(--_m-space-3) - .6em) 50%,
866
+ calc(100% - var(--_m-space-3) - .3em) 50%;
867
+ background-repeat: no-repeat;
868
+ background-size: .3em .3em;
869
+ padding-inline-end: var(--_m-space-8);
870
+ }
871
+
872
+ @supports (appearance: base-select) {
873
+ :where(select:not([multiple], [size])) {
874
+ background-image: none;
875
+ align-items: center;
876
+ padding-inline-end: var(--_m-space-3);
877
+ display: flex;
878
+
879
+ & {
880
+ appearance: base-select;
881
+ }
882
+
883
+ &::picker(select) {
884
+ appearance: base-select;
885
+ }
886
+
887
+ &::picker-icon {
888
+ color: var(--_m-text-muted);
889
+ transition: rotate var(--_m-duration) var(--_m-ease);
890
+ margin-inline-start: auto;
891
+ }
892
+
893
+ &:where(:open)::picker-icon {
894
+ rotate: 180deg;
895
+ }
896
+
897
+ &::picker(select) {
898
+ margin-block: var(--_m-space-1);
899
+ padding: var(--_m-space-1);
900
+ border: 1px solid var(--_m-border);
901
+ border-radius: var(--m-radius, .5rem);
902
+ background-color: var(--_m-surface-overlay);
903
+ box-shadow: var(--_m-shadow-overlay);
904
+ opacity: 0;
905
+ translate: 0 calc(-1 * var(--_m-space-1));
906
+ transition: opacity var(--_m-duration) var(--_m-ease),
907
+ translate var(--_m-duration) var(--_m-ease),
908
+ display var(--_m-duration) allow-discrete,
909
+ overlay var(--_m-duration) allow-discrete;
910
+ }
911
+
912
+ &:where(:open)::picker(select) {
913
+ opacity: 1;
914
+ translate: 0;
915
+ }
916
+
917
+ @starting-style {
918
+ &:where(:open)::picker(select) {
919
+ opacity: 0;
920
+ translate: 0 calc(-1 * var(--_m-space-1));
921
+ }
922
+ }
923
+ }
924
+
925
+ :where(select:not([multiple], [size]) option) {
926
+ padding: var(--_m-space-2) var(--_m-space-3);
927
+ border-radius: calc(var(--m-radius, .5rem) - 2px);
928
+
929
+ &:where(:hover, :focus-visible) {
930
+ background-color: var(--_m-tint);
931
+ outline: 2px solid #0000;
932
+ }
933
+
934
+ &:where(:checked) {
935
+ font-weight: 600;
936
+ }
937
+
938
+ &::checkmark {
939
+ color: var(--_m-primary);
940
+ }
941
+ }
942
+ }
943
+
944
+ :where(input:is([type="checkbox"], [type="radio"])) {
945
+ block-size: 1.125em;
946
+ inline-size: 1.125em;
947
+ vertical-align: top;
948
+ border: 1px solid var(--_m-control-border);
949
+ background-color: var(--_m-surface);
950
+ appearance: none;
951
+ cursor: pointer;
952
+ transition-property: background-color, border-color, box-shadow;
953
+ transition-duration: var(--_m-duration);
954
+ transition-timing-function: var(--_m-ease);
955
+ border-radius: .25em;
956
+ place-content: center;
957
+ margin-block-start: calc(.5lh - .5625em);
958
+ margin-inline-end: var(--_m-space-2);
959
+ display: inline-grid;
960
+
961
+ &:before {
962
+ content: "";
963
+ background-color: var(--_m-on-primary);
964
+ block-size: .625em;
965
+ inline-size: .625em;
966
+ transition: scale var(--_m-duration) var(--_m-ease);
967
+ scale: 0;
968
+ }
969
+
970
+ &:where(:checked) {
971
+ border-color: var(--_m-primary);
972
+ background-color: var(--_m-primary);
973
+ }
974
+
975
+ &:where(:checked):before {
976
+ scale: 1;
977
+ }
978
+
979
+ &:where(:focus-visible) {
980
+ box-shadow: 0 0 0 2px var(--_m-surface),
981
+ 0 0 0 4px var(--_m-primary);
982
+ outline: 2px solid #0000;
983
+ }
984
+
985
+ &:where(:disabled) {
986
+ opacity: .5;
987
+ cursor: not-allowed;
988
+ }
989
+
990
+ &:where([aria-invalid="true"]) {
991
+ border-color: var(--_m-danger);
992
+ }
993
+ }
994
+
995
+ :where(input[type="checkbox"]):before {
996
+ clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
997
+ }
998
+
999
+ :where(input[type="checkbox"]:indeterminate) {
1000
+ border-color: var(--_m-primary);
1001
+ background-color: var(--_m-primary);
1002
+
1003
+ &:before {
1004
+ clip-path: none;
1005
+ block-size: .125em;
1006
+ scale: 1;
1007
+ }
1008
+ }
1009
+
1010
+ :where(input[type="radio"]) {
1011
+ border-radius: 50%;
1012
+
1013
+ &:before {
1014
+ border-radius: 50%;
1015
+ block-size: .5em;
1016
+ inline-size: .5em;
1017
+ }
1018
+ }
1019
+
1020
+ :where(input[type="checkbox"]:is([role="switch"], [switch])) {
1021
+ --_m-switch-travel: calc(2em - 2px - .25em - .75em);
1022
+ background-color: var(--_m-control-border);
1023
+ border-radius: 999px;
1024
+ place-content: center start;
1025
+ inline-size: 2em;
1026
+ padding-inline: .125em;
1027
+
1028
+ &:before {
1029
+ clip-path: none;
1030
+ background-color: var(--_m-surface);
1031
+ border-radius: 50%;
1032
+ block-size: .75em;
1033
+ inline-size: .75em;
1034
+ transition-property: translate, background-color;
1035
+ scale: 1;
1036
+ box-shadow: 0 1px 2px oklch(0% 0 0 / .3);
1037
+ }
1038
+
1039
+ &:where(:checked) {
1040
+ background-color: var(--_m-primary);
1041
+ }
1042
+
1043
+ &:where(:checked):before {
1044
+ background-color: var(--_m-on-primary);
1045
+ translate: var(--_m-switch-travel) 0;
1046
+ }
1047
+
1048
+ &:where(:checked:dir(rtl)):before {
1049
+ translate: calc(-1 * var(--_m-switch-travel)) 0;
1050
+ }
1051
+
1052
+ &:where(:indeterminate:not(:checked)) {
1053
+ border-color: var(--_m-control-border);
1054
+ background-color: var(--_m-control-border);
1055
+
1056
+ &:before {
1057
+ block-size: .75em;
1058
+ }
1059
+ }
1060
+ }
1061
+
1062
+ :where(input[type="range"]) {
1063
+ --_m-range-thumb: 1.25rem;
1064
+ --_m-range-track: .5rem;
1065
+ inline-size: 100%;
1066
+ block-size: var(--_m-range-thumb);
1067
+ accent-color: var(--_m-primary);
1068
+ appearance: none;
1069
+ cursor: pointer;
1070
+ background-color: #0000;
1071
+ overflow: hidden;
1072
+
1073
+ &:where(:disabled) {
1074
+ opacity: .5;
1075
+ cursor: not-allowed;
1076
+ }
1077
+
1078
+ &::-webkit-slider-runnable-track {
1079
+ block-size: var(--_m-range-track);
1080
+ background-color: var(--_m-tint);
1081
+ border-radius: 999px;
1082
+ }
1083
+
1084
+ &::-moz-range-track {
1085
+ block-size: var(--_m-range-track);
1086
+ background-color: var(--_m-tint);
1087
+ border-radius: 999px;
1088
+ }
1089
+
1090
+ &::-moz-range-progress {
1091
+ block-size: var(--_m-range-track);
1092
+ background-color: var(--_m-primary);
1093
+ border-radius: 999px;
1094
+ }
1095
+
1096
+ &::-webkit-slider-thumb {
1097
+ inline-size: var(--_m-range-thumb);
1098
+ block-size: var(--_m-range-thumb);
1099
+ background-color: var(--_m-primary);
1100
+ box-shadow: inset 0 0 0 2px var(--_m-surface);
1101
+ appearance: none;
1102
+ border-image: linear-gradient(90deg, var(--_m-primary) 50%, transparent 0) 0 1 /
1103
+ calc(50% - var(--_m-range-track) / 2) 100vw / 0 100vw;
1104
+ transition: background-color var(--_m-duration) var(--_m-ease);
1105
+ border-radius: 50%;
1106
+ margin-block-start: calc((var(--_m-range-track) - var(--_m-range-thumb)) / 2);
1107
+ }
1108
+
1109
+ &::-moz-range-thumb {
1110
+ box-sizing: border-box;
1111
+ inline-size: var(--_m-range-thumb);
1112
+ block-size: var(--_m-range-thumb);
1113
+ border: 2px solid var(--_m-surface);
1114
+ background-color: var(--_m-primary);
1115
+ transition: background-color var(--_m-duration) var(--_m-ease);
1116
+ border-radius: 50%;
1117
+ }
1118
+
1119
+ &:where(:dir(rtl))::-webkit-slider-thumb {
1120
+ border-image-source: linear-gradient(-90deg, var(--_m-primary) 50%, transparent 0);
1121
+ }
1122
+
1123
+ &:where(:hover:not(:disabled))::-webkit-slider-thumb {
1124
+ background-color: var(--_m-primary-hover);
1125
+ }
1126
+
1127
+ &:where(:hover:not(:disabled))::-moz-range-thumb {
1128
+ background-color: var(--_m-primary-hover);
1129
+ }
1130
+ }
1131
+
1132
+ :where(input[type="color"]) {
1133
+ border: 1px solid var(--_m-control-border);
1134
+ border-radius: var(--m-radius, .5rem);
1135
+ background-color: var(--_m-surface);
1136
+ cursor: pointer;
1137
+ block-size: 2.25rem;
1138
+ inline-size: 3rem;
1139
+ padding: 2px;
1140
+ }
1141
+
1142
+ :where(input[type="color"])::-webkit-color-swatch-wrapper {
1143
+ padding: 0;
1144
+ }
1145
+
1146
+ :where(input[type="color"])::-webkit-color-swatch {
1147
+ border-radius: calc(var(--m-radius, .5rem) - 2px);
1148
+ border: 0;
1149
+ }
1150
+
1151
+ :where(input[type="color"])::-moz-color-swatch {
1152
+ border-radius: calc(var(--m-radius, .5rem) - 2px);
1153
+ border: 0;
1154
+ }
1155
+
1156
+ :where(input[type="file"]) {
1157
+ inline-size: 100%;
1158
+ }
1159
+
1160
+ :where(label) > :where(input:is([type="range"], [type="color"], [type="file"])) {
1161
+ margin-block-start: var(--_m-space-1);
1162
+ display: block;
1163
+ }
1164
+
1165
+ :where(label:has( > span + :is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"], [type="search"]), textarea, select))) {
1166
+ position: relative;
1167
+
1168
+ & > :where(span) {
1169
+ color: var(--_m-text-muted);
1170
+ font-size: .75em;
1171
+ line-height: var(--_m-leading-tight);
1172
+ pointer-events: none;
1173
+ transition-property: inset-block-start, font-size;
1174
+ transition-duration: var(--_m-duration);
1175
+ transition-timing-function: var(--_m-ease);
1176
+ position: absolute;
1177
+ inset-block-start: calc(1px + var(--_m-space-1));
1178
+ inset-inline-start: calc(1px + var(--_m-space-3));
1179
+ }
1180
+
1181
+ & > :where(input, textarea, select) {
1182
+ padding-block: calc(var(--_m-space-2) + .75em) var(--_m-space-1);
1183
+ margin-block-start: 0;
1184
+ }
1185
+
1186
+ & > :where(textarea) {
1187
+ min-block-size: calc(3lh + var(--_m-space-2) + .75em + var(--_m-space-1) + 2px);
1188
+ }
1189
+
1190
+ &:where(:has( > :placeholder-shown:not(:focus))) > :where(span) {
1191
+ font-size: 1em;
1192
+ inset-block-start: calc(1px + var(--_m-space-2) + .75em);
1193
+ }
1194
+
1195
+ & > :where(:placeholder-shown:not(:focus))::placeholder {
1196
+ opacity: 0;
1197
+ }
1198
+ }
1199
+
1200
+ :where(button, input:is([type="submit"], [type="reset"], [type="button"]), a[role="button"]) {
1201
+ padding: var(--_m-space-2) var(--_m-space-4);
1202
+ border: 1px solid var(--_m-primary);
1203
+ border-radius: var(--m-radius, .5rem);
1204
+ background-color: var(--_m-primary);
1205
+ color: var(--_m-on-primary);
1206
+ font-weight: 600;
1207
+ line-height: var(--_m-leading-tight);
1208
+ text-align: center;
1209
+ cursor: pointer;
1210
+ transition-property: background-color, border-color, color, box-shadow, scale;
1211
+ transition-duration: var(--_m-duration);
1212
+ transition-timing-function: var(--_m-ease);
1213
+ text-decoration-line: none;
1214
+ display: inline-block;
1215
+
1216
+ &:where(:hover:not(:disabled, [aria-disabled="true"])) {
1217
+ border-color: var(--_m-primary-hover);
1218
+ background-color: var(--_m-primary-hover);
1219
+ }
1220
+
1221
+ &:where(:active:not(:disabled, [aria-disabled="true"])) {
1222
+ scale: .98;
1223
+ }
1224
+
1225
+ &:where(:disabled, [aria-disabled="true"]) {
1226
+ opacity: .5;
1227
+ cursor: not-allowed;
1228
+ }
1229
+
1230
+ & + & {
1231
+ margin-inline-start: var(--_m-space-2);
1232
+ }
1233
+
1234
+ :where(label, input, select, textarea, fieldset) + & {
1235
+ margin-block-start: var(--_m-space-4);
1236
+ }
1237
+ }
1238
+
1239
+ :where(button, input):where([type="reset"], [formnovalidate]) {
1240
+ border-color: var(--_m-control-border);
1241
+ color: var(--_m-text);
1242
+ background-color: #0000;
1243
+ }
1244
+
1245
+ :where(input[type="file"])::file-selector-button {
1246
+ border-color: var(--_m-control-border);
1247
+ color: var(--_m-text);
1248
+ background-color: #0000;
1249
+ }
1250
+
1251
+ :where(button, input):where([type="reset"], [formnovalidate]):where(:hover:not(:disabled)) {
1252
+ border-color: var(--_m-control-border);
1253
+ background-color: var(--_m-tint);
1254
+ }
1255
+
1256
+ :where(input[type="file"]:hover)::file-selector-button {
1257
+ border-color: var(--_m-control-border);
1258
+ background-color: var(--_m-tint);
1259
+ }
1260
+
1261
+ :where(input[type="file"])::file-selector-button {
1262
+ padding: var(--_m-space-2) var(--_m-space-4);
1263
+ border: 1px solid var(--_m-control-border);
1264
+ border-radius: var(--m-radius, .5rem);
1265
+ cursor: pointer;
1266
+ transition: background-color var(--_m-duration) var(--_m-ease);
1267
+ margin-inline-end: var(--_m-space-3);
1268
+ font-weight: 600;
1269
+ }
1270
+
1271
+ :where([role="group"], search:not(:has( > form)), search > form) {
1272
+ vertical-align: middle;
1273
+ display: inline-flex;
1274
+
1275
+ &:where(:has( > input, > select, > textarea)) {
1276
+ display: flex;
1277
+ }
1278
+
1279
+ :where(label) > &, :where(label) + & {
1280
+ margin-block-start: var(--_m-space-1);
1281
+ }
1282
+
1283
+ & > :where(*) {
1284
+ border-radius: 0;
1285
+ margin: 0;
1286
+ }
1287
+
1288
+ & > :where(* + *) {
1289
+ margin-inline-start: -1px;
1290
+ }
1291
+
1292
+ & > :where(:focus-visible) {
1293
+ z-index: 2;
1294
+ border-radius: calc(var(--m-radius, .5rem) / 2);
1295
+ position: relative;
1296
+ }
1297
+
1298
+ & > :where(:first-child) {
1299
+ border-start-start-radius: var(--m-radius, .5rem);
1300
+ border-end-start-radius: var(--m-radius, .5rem);
1301
+ }
1302
+
1303
+ & > :where(:last-child) {
1304
+ border-start-end-radius: var(--m-radius, .5rem);
1305
+ border-end-end-radius: var(--m-radius, .5rem);
1306
+ }
1307
+
1308
+ & > :where(input, select, textarea) {
1309
+ flex: 1;
1310
+ inline-size: auto;
1311
+ min-inline-size: 0;
1312
+ }
1313
+
1314
+ & > :where(span) {
1315
+ padding: var(--_m-space-2) var(--_m-space-3);
1316
+ border: 1px solid var(--_m-control-border);
1317
+ background-color: var(--_m-surface-raised);
1318
+ color: var(--_m-text-muted);
1319
+ line-height: var(--_m-leading-tight);
1320
+ white-space: nowrap;
1321
+ }
1322
+
1323
+ & > :where(:hover:not(:focus-visible, span)) {
1324
+ z-index: 1;
1325
+ position: relative;
1326
+ }
1327
+
1328
+ & > :where(button, input:is([type="submit"], [type="reset"], [type="button"]), a[role="button"]) + :where(button, input:is([type="submit"], [type="reset"], [type="button"]), a[role="button"]) {
1329
+ border-inline-start-color: color-mix(in oklch, currentcolor, transparent 70%);
1330
+ }
1331
+ }
1332
+
1333
+ :where(button[aria-pressed]) {
1334
+ border-color: var(--_m-control-border);
1335
+ color: var(--_m-text);
1336
+ background-color: #0000;
1337
+
1338
+ &:where(:hover:not(:disabled)) {
1339
+ border-color: var(--_m-control-border);
1340
+ background-color: var(--_m-tint);
1341
+ }
1342
+
1343
+ &:where([aria-pressed="true"]) {
1344
+ border-color: var(--_m-primary);
1345
+ background-color: var(--_m-primary-subtle);
1346
+ box-shadow: inset 0 0 0 1px var(--_m-primary);
1347
+ }
1348
+
1349
+ &:where([aria-pressed="true"]:not(:focus-visible)) {
1350
+ z-index: 1;
1351
+ position: relative;
1352
+ }
1353
+
1354
+ &:where([aria-pressed="true"]:hover:not(:disabled)) {
1355
+ border-color: var(--_m-primary-hover);
1356
+ background-color: color-mix(in oklch, var(--_m-primary), transparent 75%);
1357
+ }
1358
+ }
1359
+
1360
+ :where(details) {
1361
+ padding-inline: var(--_m-space-4);
1362
+ border: 1px solid var(--_m-border);
1363
+ border-radius: var(--m-radius, .5rem);
1364
+ }
1365
+
1366
+ :where(details[open]) {
1367
+ padding-block-end: var(--_m-space-4);
1368
+ }
1369
+
1370
+ :where(summary) {
1371
+ margin-inline: calc(-1 * var(--_m-space-4));
1372
+ padding: var(--_m-space-3) var(--_m-space-4);
1373
+ border-radius: calc(var(--m-radius, .5rem) - 1px);
1374
+ cursor: pointer;
1375
+ font-weight: 600;
1376
+ list-style: none;
1377
+
1378
+ &::-webkit-details-marker {
1379
+ display: none;
1380
+ }
1381
+
1382
+ &:before {
1383
+ content: "";
1384
+ vertical-align: .15em;
1385
+ border-style: solid;
1386
+ border-color: var(--_m-text-muted);
1387
+ block-size: .45em;
1388
+ inline-size: .45em;
1389
+ transition: rotate var(--_m-duration) var(--_m-ease);
1390
+ border-width: 0 2px 2px 0;
1391
+ margin-inline: .1em .6em;
1392
+ display: inline-block;
1393
+ rotate: -45deg;
1394
+ }
1395
+
1396
+ &:where(:dir(rtl)):before {
1397
+ rotate: 135deg;
1398
+ }
1399
+ }
1400
+
1401
+ :where(details[open]) > :where(summary) {
1402
+ border-end-end-radius: 0;
1403
+ border-end-start-radius: 0;
1404
+ }
1405
+
1406
+ :where(details[open]) > :where(summary):before {
1407
+ rotate: 45deg;
1408
+ }
1409
+
1410
+ @supports (interpolate-size: allow-keywords) {
1411
+ :where(details) {
1412
+ transition: padding-block-end var(--_m-duration-slow) var(--_m-ease);
1413
+ }
1414
+
1415
+ :where(details)::details-content {
1416
+ contain: layout;
1417
+ interpolate-size: allow-keywords;
1418
+ block-size: 0;
1419
+ transition: block-size var(--_m-duration-slow) var(--_m-ease),
1420
+ content-visibility var(--_m-duration-slow) allow-discrete;
1421
+ overflow: clip;
1422
+ }
1423
+
1424
+ :where(details[open])::details-content {
1425
+ block-size: auto;
1426
+ }
1427
+ }
1428
+
1429
+ :where(dialog, [popover]) {
1430
+ max-inline-size: min(var(--m-measure, 100ch), calc(100vw - 2 * var(--_m-space-4)));
1431
+ padding: var(--_m-space-6);
1432
+ border: 1px solid var(--_m-border);
1433
+ border-radius: calc(var(--m-radius, .5rem) * 1.5);
1434
+ background-color: var(--_m-surface-overlay);
1435
+ color: var(--_m-text);
1436
+ box-shadow: var(--_m-shadow-overlay);
1437
+ opacity: 0;
1438
+ transition: opacity var(--_m-duration-slow) var(--_m-ease),
1439
+ scale var(--_m-duration-slow) var(--_m-ease),
1440
+ translate var(--_m-duration-slow) var(--_m-ease),
1441
+ display var(--_m-duration-slow) allow-discrete,
1442
+ overlay var(--_m-duration-slow) allow-discrete;
1443
+ }
1444
+
1445
+ :where(dialog) {
1446
+ scale: .96;
1447
+ }
1448
+
1449
+ :where(dialog:modal) {
1450
+ overscroll-behavior: contain;
1451
+ }
1452
+
1453
+ :where([popover]) {
1454
+ translate: 0 var(--_m-space-2);
1455
+ }
1456
+
1457
+ :where(dialog[open], [popover]:popover-open) {
1458
+ opacity: 1;
1459
+ transition-timing-function: var(--_m-ease), var(--_m-spring), var(--_m-spring);
1460
+ translate: 0;
1461
+ scale: 1;
1462
+ }
1463
+
1464
+ @starting-style {
1465
+ :where(dialog[open]) {
1466
+ opacity: 0;
1467
+ scale: .96;
1468
+ }
1469
+
1470
+ :where([popover]:popover-open) {
1471
+ opacity: 0;
1472
+ translate: 0 var(--_m-space-2);
1473
+ }
1474
+ }
1475
+
1476
+ :where(dialog)::backdrop {
1477
+ backdrop-filter: blur(4px);
1478
+ opacity: 0;
1479
+ overscroll-behavior: contain;
1480
+ transition: opacity var(--_m-duration-slow) var(--_m-ease),
1481
+ display var(--_m-duration-slow) allow-discrete,
1482
+ overlay var(--_m-duration-slow) allow-discrete;
1483
+ background-color: oklch(0% 0 0 / .4);
1484
+ overflow: hidden;
1485
+ }
1486
+
1487
+ :where(dialog[open])::backdrop {
1488
+ opacity: 1;
1489
+ }
1490
+
1491
+ @media (prefers-reduced-transparency: reduce) {
1492
+ :where(dialog)::backdrop {
1493
+ backdrop-filter: none;
1494
+ background-color: oklch(0% 0 0 / .6);
1495
+ }
1496
+ }
1497
+
1498
+ @starting-style {
1499
+ :where(dialog[open])::backdrop {
1500
+ opacity: 0;
1501
+ }
1502
+ }
1503
+
1504
+ :where(img, video, canvas, iframe, svg) {
1505
+ max-inline-size: 100%;
1506
+ }
1507
+
1508
+ :where(img, video, canvas) {
1509
+ block-size: auto;
1510
+ }
1511
+
1512
+ :where(a > svg[aria-hidden="true"], a > [aria-hidden="true"] > :is(img, svg)) {
1513
+ vertical-align: -.25em;
1514
+ block-size: 1.25em;
1515
+ inline-size: auto;
1516
+ }
1517
+
1518
+ :where(img, video) {
1519
+ border-radius: var(--m-radius, .5rem);
1520
+ }
1521
+
1522
+ :where(iframe) {
1523
+ border: 1px solid var(--_m-border);
1524
+ border-radius: var(--m-radius, .5rem);
1525
+ }
1526
+
1527
+ :where(audio) {
1528
+ inline-size: 100%;
1529
+ }
1530
+
1531
+ :where(figure > img, figure > video, figure > iframe, figure > canvas, figure > svg, figure > picture > img) {
1532
+ display: block;
1533
+ }
1534
+
1535
+ :where(progress) {
1536
+ background-color: var(--_m-tint);
1537
+ appearance: none;
1538
+ border: 0;
1539
+ border-radius: 999px;
1540
+ block-size: .5rem;
1541
+ inline-size: 100%;
1542
+ display: block;
1543
+ overflow: hidden;
1544
+ }
1545
+
1546
+ :where(progress)::-webkit-progress-bar {
1547
+ background-color: #0000;
1548
+ }
1549
+
1550
+ :where(progress)::-webkit-progress-value {
1551
+ border-radius: inherit;
1552
+ background-color: var(--_m-primary);
1553
+ }
1554
+
1555
+ :where(progress)::-moz-progress-bar {
1556
+ border-radius: inherit;
1557
+ background-color: var(--_m-primary);
1558
+ }
1559
+
1560
+ :where(progress:indeterminate) {
1561
+ background-image: linear-gradient(var(--_m-primary), var(--_m-primary));
1562
+ animation: var(--_m-slide);
1563
+ background-repeat: no-repeat;
1564
+ background-size: 30% 100%;
1565
+ }
1566
+
1567
+ :where(progress:indeterminate)::-moz-progress-bar {
1568
+ background-color: #0000;
1569
+ }
1570
+
1571
+ :where(meter) {
1572
+ --_m-warning: light-dark(oklch(62% .14 65), oklch(80% .14 75));
1573
+ vertical-align: middle;
1574
+ background: var(--_m-tint);
1575
+ appearance: none;
1576
+ border-radius: 999px;
1577
+ block-size: .5rem;
1578
+ overflow: hidden;
1579
+ }
1580
+
1581
+ :where(meter)::-webkit-meter-bar {
1582
+ background: none;
1583
+ border: 0;
1584
+ block-size: 100%;
1585
+ }
1586
+
1587
+ :where(meter)::-webkit-meter-optimum-value {
1588
+ background: var(--_m-success);
1589
+ }
1590
+
1591
+ :where(meter)::-webkit-meter-suboptimum-value {
1592
+ background: var(--_m-warning);
1593
+ }
1594
+
1595
+ :where(meter)::-webkit-meter-even-less-good-value {
1596
+ background: var(--_m-danger);
1597
+ }
1598
+
1599
+ :where(meter)::-moz-meter-bar {
1600
+ background: var(--_m-success);
1601
+ }
1602
+
1603
+ :where(meter:-moz-meter-sub-optimum)::-moz-meter-bar {
1604
+ background: var(--_m-warning);
1605
+ }
1606
+
1607
+ :where(meter:-moz-meter-sub-sub-optimum)::-moz-meter-bar {
1608
+ background: var(--_m-danger);
1609
+ }
1610
+
1611
+ :where([aria-busy="true"]) {
1612
+ cursor: progress;
1613
+ }
1614
+
1615
+ :where([aria-busy="true"]):before {
1616
+ content: "";
1617
+ vertical-align: middle;
1618
+ border: .15em solid;
1619
+ block-size: 1em;
1620
+ inline-size: 1em;
1621
+ animation: var(--_m-spin);
1622
+ border-inline-end-color: #0000;
1623
+ border-radius: 50%;
1624
+ margin-block: -1em;
1625
+ margin-inline-end: .5em;
1626
+ display: inline-block;
1627
+ }
1628
+
1629
+ :where(:is(article, aside, div, fieldset, figure, form, main, ol, section, ul)[aria-busy="true"]) {
1630
+ z-index: 0;
1631
+ position: relative;
1632
+
1633
+ & > :where(*) {
1634
+ opacity: .4;
1635
+ }
1636
+
1637
+ &:before {
1638
+ z-index: 1;
1639
+ block-size: 2em;
1640
+ inline-size: 2em;
1641
+ margin: auto;
1642
+ position: absolute;
1643
+ inset: 0;
1644
+ }
1645
+ }
1646
+
1647
+ :where(body > header) {
1648
+ border-block-end: 1px solid var(--_m-border);
1649
+ padding-block-end: var(--_m-space-6);
1650
+ }
1651
+
1652
+ :where(body > footer) {
1653
+ border-block-start: 1px solid var(--_m-border);
1654
+ font-size: var(--_m-text-sm);
1655
+ color: var(--_m-text-muted);
1656
+ margin-block-start: calc(var(--m-density, 1) * 3rem);
1657
+ padding-block-start: var(--_m-space-6);
1658
+ }
1659
+
1660
+ :where(nav) :where(ul, ol, menu) {
1661
+ gap: var(--_m-space-2) var(--_m-space-4);
1662
+ flex-wrap: wrap;
1663
+ padding: 0;
1664
+ list-style: none;
1665
+ display: flex;
1666
+ }
1667
+
1668
+ :where(nav li) {
1669
+ margin: 0;
1670
+ }
1671
+
1672
+ :where(nav a:not([role="button"])) {
1673
+ color: inherit;
1674
+ text-decoration-color: #0000;
1675
+
1676
+ &:where(:hover, [aria-current]:not([aria-current="false"])) {
1677
+ color: var(--_m-primary);
1678
+ }
1679
+
1680
+ &:where([aria-current]:not([aria-current="false"])) {
1681
+ font-weight: 600;
1682
+ }
1683
+ }
1684
+
1685
+ :where(aside) {
1686
+ padding: var(--_m-space-4);
1687
+ border-radius: var(--m-radius, .5rem);
1688
+ background-color: var(--_m-surface-raised);
1689
+ }
1690
+
1691
+ :where(address) {
1692
+ font-style: normal;
1693
+ }
1694
+
1695
+ :where(hr) {
1696
+ margin-block: var(--_m-space-8);
1697
+ border: 0;
1698
+ border-block-start: 1px solid var(--_m-border);
1699
+ }
1700
+
1701
+ :where(body > header:has( > nav)) {
1702
+ display: contents;
1703
+
1704
+ & > :where(:last-child) {
1705
+ margin-block-end: var(--_m-space-8);
1706
+ }
1707
+ }
1708
+
1709
+ :where(body > header > nav) {
1710
+ z-index: 1;
1711
+ padding-block: var(--_m-space-3);
1712
+ background-color: var(--_m-surface);
1713
+ view-transition-name: m-top-nav;
1714
+ border-image: linear-gradient(to top, var(--_m-border) 1px, var(--_m-surface) 1px) fill 0 / 0 / 0 100vmax;
1715
+ position: sticky;
1716
+ inset-block-start: 0;
1717
+
1718
+ &:after {
1719
+ content: "";
1720
+ block-size: var(--_m-drop);
1721
+ border-image: linear-gradient(var(--_m-edge), transparent) fill 0 / 0 / 0 100vmax;
1722
+ pointer-events: none;
1723
+ position: absolute;
1724
+ inset: 100% 0 auto;
1725
+ }
1726
+ }
1727
+
1728
+ @supports (animation-timeline: scroll()) {
1729
+ :where(body > header > nav) {
1730
+ animation: linear both m-lift;
1731
+ animation-timeline: scroll(root);
1732
+ animation-range: 0 2rem;
1733
+ }
1734
+ }
1735
+
1736
+ :where(body > header > nav + nav) {
1737
+ view-transition-name: m-sub-nav;
1738
+ inset-block-start: var(--_m-bar-size);
1739
+ }
1740
+
1741
+ :where(body > header > nav, body > nav) :where(ul, ol, menu) {
1742
+ scrollbar-width: thin;
1743
+ flex-wrap: nowrap;
1744
+ margin: -4px;
1745
+ padding: 4px;
1746
+ overflow-x: auto;
1747
+
1748
+ & > :where(li) {
1749
+ flex: none;
1750
+ }
1751
+ }
1752
+
1753
+ :where(nav:not(body > nav):has( > :is(ul, ol, menu) + :is(ul, ol, menu))) {
1754
+ justify-content: space-between;
1755
+ align-items: center;
1756
+ gap: var(--_m-space-2) var(--_m-space-6);
1757
+ flex-wrap: wrap;
1758
+ display: flex;
1759
+
1760
+ &:where(:not(body > header > nav)) > :where(ul, ol, menu) {
1761
+ margin-block: 0;
1762
+ }
1763
+
1764
+ & > :where(:last-child) {
1765
+ min-inline-size: 0;
1766
+ }
1767
+
1768
+ &:where(body > header > nav) {
1769
+ flex-wrap: nowrap;
1770
+ }
1771
+ }
1772
+
1773
+ :where(nav:not(body > nav, body > header > nav):has( > ol)) {
1774
+ font-size: var(--_m-text-sm);
1775
+ margin-block-end: var(--_m-space-4);
1776
+
1777
+ & > :where(ol) {
1778
+ gap: var(--_m-space-2);
1779
+
1780
+ & > :where(li + li):before {
1781
+ content: "/" / "";
1782
+ color: var(--_m-text-muted);
1783
+ margin-inline-end: var(--_m-space-2);
1784
+ }
1785
+
1786
+ & > :where(li:last-child), & > :where(li:last-child) :where(a) {
1787
+ color: var(--_m-text-muted);
1788
+ font-weight: inherit;
1789
+ }
1790
+ }
1791
+ }
1792
+
1793
+ @media (width >= 64rem) {
1794
+ :where(body:has( > nav, > aside)) {
1795
+ grid-template-columns: [full-start nav-start] fit-content(16rem)
1796
+ [nav-end main-start] minmax(0, var(--m-measure, 100ch))
1797
+ [main-end aside-start] fit-content(16rem)
1798
+ [aside-end full-end];
1799
+ grid-auto-flow: row dense;
1800
+ justify-content: center;
1801
+ align-items: start;
1802
+ max-inline-size: none;
1803
+ display: grid;
1804
+
1805
+ & > :where(*), & > :where(header:has( > nav)) > :where(*) {
1806
+ grid-column: full;
1807
+ }
1808
+
1809
+ & > :where(:not(nav, aside, main)), & > :where(header:has( > nav)) > :where(*) {
1810
+ contain: inline-size;
1811
+ }
1812
+
1813
+ & > :where(main) {
1814
+ grid-column: main;
1815
+ }
1816
+ }
1817
+
1818
+ :where(body > header > nav) {
1819
+ margin-inline: min(0px, (100% - min(var(--m-measure, 100ch) + 32rem, 100vw - 2 * var(--_m-space-4))) / 2);
1820
+ }
1821
+
1822
+ :where(body > nav, body > aside) {
1823
+ max-block-size: calc(100dvh - var(--_m-sticky-offset) - 2 * var(--_m-space-4));
1824
+ overscroll-behavior: contain;
1825
+ position: sticky;
1826
+ inset-block-start: calc(var(--_m-sticky-offset) + var(--_m-space-4));
1827
+ overflow-y: auto;
1828
+ }
1829
+
1830
+ :where(body > nav) {
1831
+ grid-column: nav;
1832
+ margin-inline-end: var(--_m-space-8);
1833
+ padding: 4px;
1834
+
1835
+ & :where(ul, ol, menu) {
1836
+ gap: var(--_m-space-2);
1837
+ flex-direction: column;
1838
+ margin: 0;
1839
+ padding: 0;
1840
+ overflow: visible;
1841
+ }
1842
+
1843
+ & :where(li) > :where(ul, ol, menu) {
1844
+ margin-block-start: var(--_m-space-2);
1845
+ padding-inline-start: var(--_m-space-3);
1846
+ }
1847
+ }
1848
+
1849
+ :where(body > aside) {
1850
+ font-size: var(--_m-text-sm);
1851
+ background-color: #0000;
1852
+ border-radius: 0;
1853
+ grid-column: aside;
1854
+ margin-inline-start: var(--_m-space-8);
1855
+ padding: 4px;
1856
+ }
1857
+ }
1858
+
1859
+ @media (prefers-reduced-motion: no-preference) {
1860
+ @supports (container-type: scroll-state) {
1861
+ :where(:root:not([data-motion="reduce"]):has( > body > header > nav)) {
1862
+ container-type: scroll-state;
1863
+ }
1864
+
1865
+ :where(body > header > nav) {
1866
+ transition: translate var(--_m-duration-slow) var(--_m-ease);
1867
+ }
1868
+
1869
+ @container scroll-state(scrolled: bottom) {
1870
+ :where(:root:not(:has( > body > header > nav:focus-within)) body > header > nav) {
1871
+ translate: 0 -100%;
1872
+ }
1873
+
1874
+ :where(:root:not(:has( > body > header > nav:focus-within)) thead th) {
1875
+ inset-block-start: calc(var(--_m-sticky-offset) - var(--_m-bar-size));
1876
+ }
1877
+
1878
+ :where(:root:not(:has( > body > header > nav:focus-within)) body > :is(nav, aside)) {
1879
+ inset-block-start: calc(var(--_m-sticky-offset) - var(--_m-bar-size) + var(--_m-space-4));
1880
+ }
1881
+ }
1882
+ }
1883
+ }
1884
+
1885
+ :where(:is(ul, ol, menu)[popover], [popover] > :is(ul, ol, menu)) {
1886
+ flex-flow: column;
1887
+ gap: 0;
1888
+ margin: 0;
1889
+ padding: 0;
1890
+ list-style: none;
1891
+ display: flex;
1892
+ overflow: visible;
1893
+
1894
+ &:where([popover]:not(:popover-open)) {
1895
+ display: none;
1896
+ }
1897
+
1898
+ & > :where(li) {
1899
+ margin: 0;
1900
+ padding: 0;
1901
+ }
1902
+
1903
+ & > :where(li) > :where(a, button) {
1904
+ inline-size: 100%;
1905
+ padding: var(--_m-space-2) var(--_m-space-3);
1906
+ border-radius: var(--m-radius, .5rem);
1907
+ color: var(--_m-text);
1908
+ font-weight: inherit;
1909
+ text-align: start;
1910
+ background-color: #0000;
1911
+ border: 0;
1912
+ text-decoration-line: none;
1913
+ display: block;
1914
+
1915
+ &:where(:hover:not(:disabled), :focus-visible) {
1916
+ background-color: var(--_m-tint);
1917
+ color: var(--_m-text);
1918
+ }
1919
+
1920
+ &:where([aria-current]:not([aria-current="false"])) {
1921
+ color: var(--_m-primary);
1922
+ font-weight: 600;
1923
+ }
1924
+
1925
+ &:where(:focus-visible) {
1926
+ outline-offset: -2px;
1927
+ }
1928
+ }
1929
+ }
1930
+
1931
+ :where(:is(ul, ol, menu)[popover], [popover]:has( > :is(ul, ol, menu))) {
1932
+ min-inline-size: 12rem;
1933
+ padding: var(--_m-space-1);
1934
+ }
1935
+
1936
+ @supports (position-area: block-end) {
1937
+ :where(:is(ul, ol, menu)[popover], [popover]:has( > :is(ul, ol, menu))) {
1938
+ margin: var(--_m-space-1) 0;
1939
+ position-area: block-end span-inline-end;
1940
+ position-try-fallbacks: flip-block, flip-inline;
1941
+ inset: auto;
1942
+ }
1943
+ }
1944
+
1945
+ :where(article):where(:not(main > article:only-child)) {
1946
+ padding: var(--_m-space-6);
1947
+ border: 1px solid var(--_m-border);
1948
+ border-radius: calc(var(--m-radius, .5rem) * 1.5);
1949
+ background-color: var(--_m-surface-overlay);
1950
+ overflow: clip;
1951
+
1952
+ & > :where(header, footer) {
1953
+ margin-inline: calc(-1 * var(--_m-space-6));
1954
+ padding: var(--_m-space-4) var(--_m-space-6);
1955
+ background-color: color-mix(in oklch, var(--_m-text), transparent 96%);
1956
+ }
1957
+
1958
+ & > :where(header:first-child) {
1959
+ margin-block: calc(-1 * var(--_m-space-6)) var(--_m-space-6);
1960
+ border-block-end: 1px solid var(--_m-border);
1961
+ }
1962
+
1963
+ & > :where(footer:last-child) {
1964
+ margin-block: var(--_m-space-6) calc(-1 * var(--_m-space-6));
1965
+ border-block-start: 1px solid var(--_m-border);
1966
+ }
1967
+ }
1968
+
1969
+ :where(div, section):where(:has( > article + article):not(:has( > :not(article)))) {
1970
+ gap: var(--_m-space-4);
1971
+ grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
1972
+ margin-block-end: var(--_m-space-8);
1973
+ display: grid;
1974
+
1975
+ &:where(:last-child) {
1976
+ margin-block-end: 0;
1977
+ }
1978
+
1979
+ & > :where(article) {
1980
+ flex-direction: column;
1981
+ margin: 0;
1982
+ display: flex;
1983
+
1984
+ & > :where(footer:last-child) {
1985
+ margin-block-start: auto;
1986
+ }
1987
+ }
1988
+ }
1989
+ }
1990
+
1991
+ @layer m.a11y {
1992
+ :where(:focus-visible):where(:not(select, textarea, option, input:not([type="range"], [type="color"], [type="file"], [type="submit"], [type="reset"], [type="button"], [type="image"]))) {
1993
+ outline: var(--_m-focus-width) solid var(--_m-primary);
1994
+ outline-offset: 2px;
1995
+ animation: m-focus-in var(--_m-duration) var(--_m-ease);
1996
+ }
1997
+
1998
+ :where(a:not([role="button"])) {
1999
+ border-radius: calc(var(--m-radius, .5rem) / 2);
2000
+ }
2001
+
2002
+ :where(summary:focus-visible) {
2003
+ outline-offset: 0;
2004
+ }
2005
+
2006
+ :where(input:is([type="range"], [type="file"])) {
2007
+ border-radius: var(--m-radius, .5rem);
2008
+ }
2009
+
2010
+ @keyframes m-focus-in {
2011
+ from {
2012
+ outline-offset: 0;
2013
+ }
2014
+ }
2015
+
2016
+ :where(:target) {
2017
+ animation: m-target-in calc(var(--_m-duration) * 10) var(--_m-ease);
2018
+ scroll-margin-block-start: var(--_m-space-8);
2019
+ }
2020
+
2021
+ @keyframes m-target-in {
2022
+ from {
2023
+ background-color: var(--_m-primary-subtle);
2024
+ }
2025
+ }
2026
+
2027
+ @media (forced-colors: active) {
2028
+ :where(button[aria-pressed="true"]) {
2029
+ color: selecteditemtext;
2030
+ forced-color-adjust: none;
2031
+ background-color: selecteditem;
2032
+ border-color: selecteditem;
2033
+
2034
+ &:where(:focus-visible) {
2035
+ outline-color: canvastext;
2036
+ }
2037
+ }
2038
+
2039
+ :where(input:is([type="checkbox"], [type="radio"])) {
2040
+ forced-color-adjust: none;
2041
+ background-color: canvas;
2042
+ border-color: canvastext;
2043
+
2044
+ &:before {
2045
+ background-color: highlighttext;
2046
+ }
2047
+
2048
+ &:where(:checked) {
2049
+ background-color: highlight;
2050
+ border-color: highlight;
2051
+ }
2052
+
2053
+ &:where(:disabled) {
2054
+ border-color: graytext;
2055
+ }
2056
+ }
2057
+
2058
+ :where(input[type="checkbox"]:indeterminate) {
2059
+ background-color: highlight;
2060
+ border-color: highlight;
2061
+ }
2062
+
2063
+ :where(input[type="checkbox"]:is([role="switch"], [switch])) {
2064
+ &:before {
2065
+ box-shadow: none;
2066
+ background-color: canvastext;
2067
+ }
2068
+
2069
+ &:where(:checked):before {
2070
+ background-color: highlighttext;
2071
+ }
2072
+
2073
+ &:where(:indeterminate:not(:checked)) {
2074
+ background-color: canvas;
2075
+ border-color: canvastext;
2076
+ }
2077
+ }
2078
+
2079
+ :where(progress, meter) {
2080
+ forced-color-adjust: none;
2081
+ background-color: canvas;
2082
+ border: 1px solid canvastext;
2083
+ }
2084
+
2085
+ :where(meter) {
2086
+ --_m-success: Highlight;
2087
+ --_m-warning: Highlight;
2088
+ --_m-danger: Highlight;
2089
+ }
2090
+
2091
+ :where(progress)::-webkit-progress-value {
2092
+ background-color: highlight;
2093
+ }
2094
+
2095
+ :where(progress)::-moz-progress-bar {
2096
+ background-color: highlight;
2097
+ }
2098
+
2099
+ :where(progress:indeterminate) {
2100
+ background-image: linear-gradient(highlight, highlight);
2101
+ }
2102
+
2103
+ :where(progress:indeterminate)::-moz-progress-bar {
2104
+ background-color: #0000;
2105
+ }
2106
+
2107
+ :where(input[type="range"]) {
2108
+ --_m-range-fill: Highlight;
2109
+ forced-color-adjust: none;
2110
+
2111
+ &:where(:disabled) {
2112
+ --_m-range-fill: GrayText;
2113
+ opacity: 1;
2114
+ }
2115
+
2116
+ &:where(:focus-visible) {
2117
+ outline-color: highlight;
2118
+ }
2119
+
2120
+ &::-webkit-slider-runnable-track {
2121
+ background-color: canvas;
2122
+ box-shadow: inset 0 0 0 1px canvastext;
2123
+ }
2124
+
2125
+ &::-moz-range-track {
2126
+ background-color: canvas;
2127
+ box-shadow: inset 0 0 0 1px canvastext;
2128
+ }
2129
+
2130
+ &::-moz-range-progress {
2131
+ background-color: var(--_m-range-fill);
2132
+ }
2133
+
2134
+ &::-webkit-slider-thumb {
2135
+ background-color: var(--_m-range-fill);
2136
+ border-image-source: linear-gradient(90deg, var(--_m-range-fill) 50%, transparent 0);
2137
+ box-shadow: inset 0 0 0 2px canvas;
2138
+ }
2139
+
2140
+ &:where(:dir(rtl))::-webkit-slider-thumb {
2141
+ border-image-source: linear-gradient(-90deg, var(--_m-range-fill) 50%, transparent 0);
2142
+ }
2143
+
2144
+ &::-moz-range-thumb {
2145
+ background-color: var(--_m-range-fill);
2146
+ border-color: canvas;
2147
+ }
2148
+ }
2149
+
2150
+ :where([data-scroll-progress]:root):before {
2151
+ forced-color-adjust: none;
2152
+ background-color: highlight;
2153
+ }
2154
+
2155
+ :where(mark) {
2156
+ color: marktext;
2157
+ forced-color-adjust: none;
2158
+ background-color: mark;
2159
+ }
2160
+
2161
+ :where(aside, pre) {
2162
+ border: 1px solid canvastext;
2163
+ }
2164
+
2165
+ :where(body > header > nav) {
2166
+ border-block-end: 1px solid canvastext;
2167
+ }
2168
+
2169
+ @supports not (appearance: base-select) {
2170
+ :where(select:not([multiple], [size])) {
2171
+ appearance: auto;
2172
+ background-image: none;
2173
+ padding-inline-end: var(--_m-space-3);
2174
+ }
2175
+ }
2176
+ }
2177
+
2178
+ @media print {
2179
+ :where(:root, :host) {
2180
+ color-scheme: light;
2181
+ }
2182
+
2183
+ :where(*) {
2184
+ box-shadow: none;
2185
+ text-shadow: none;
2186
+ background: none;
2187
+ }
2188
+
2189
+ :where(figure:has( > table)) {
2190
+ animation: none;
2191
+ }
2192
+
2193
+ :where(body) {
2194
+ max-inline-size: none;
2195
+ padding: 0;
2196
+ }
2197
+
2198
+ :where(a[href]:not([href^="#"], [href^="javascript:"])):after {
2199
+ content: " (" attr(href) ")";
2200
+ color: var(--_m-text-muted);
2201
+ overflow-wrap: anywhere;
2202
+ font-size: .875em;
2203
+ }
2204
+
2205
+ :where(nav a):after {
2206
+ content: none;
2207
+ }
2208
+
2209
+ :where(pre) {
2210
+ white-space: pre-wrap;
2211
+ border: 1px solid var(--_m-border);
2212
+ overflow: visible;
2213
+ }
2214
+
2215
+ :where(thead th, body > header > nav, body > nav, body > aside) {
2216
+ position: static;
2217
+ }
2218
+
2219
+ :where(body > header > nav, body > nav) :where(ul, ol, menu) {
2220
+ flex-wrap: wrap;
2221
+ overflow: visible;
2222
+ }
2223
+
2224
+ :where(details)::details-content {
2225
+ content-visibility: visible;
2226
+ block-size: auto;
2227
+ }
2228
+
2229
+ :where(pre, blockquote, figure, img, video, table, tr, details) {
2230
+ break-inside: avoid;
2231
+ }
2232
+
2233
+ :where(h1, h2, h3, h4, h5, h6) {
2234
+ break-after: avoid;
2235
+ }
2236
+
2237
+ :where([data-scroll-progress]:root):before {
2238
+ display: none;
2239
+ }
2240
+ }
2241
+ }