1use super::*;
2
3class! {
4 pub c_app_root {
9 display: "flex";
10 height: "100%";
11 padding-bottom: var!(safe-area-inset-bottom);
12 font-family: "system-ui, -apple-system, sans-serif";
13 background: var!(background);
14 color: var!(foreground);
15 user-select: "none";
16 -webkit-user-select: "none";
17 -webkit-font-smoothing: "antialiased";
18 -moz-osx-font-smoothing: "grayscale";
19 text-rendering: "optimizeLegibility";
20 scrollbar-color: format!("{} {}", var!(scrollbar-thumb), var!(scrollbar-track));
21 ::-webkit-scrollbar-thumb {
22 background: var!(scrollbar-thumb);
23 border: "none";
24 border-radius: "0px";
25 }
26 ::-webkit-scrollbar-thumb:hover {
27 background: var!(scrollbar-thumb-hover);
28 }
29 ::-webkit-scrollbar-thumb:active {
30 background: var!(scrollbar-thumb-active);
31 }
32
33 *, *::before, *::after {
38 box-sizing: "border-box";
39 }
40 h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, figure, blockquote, pre, hr {
41 margin: "0px";
42 padding: "0px";
43 }
44 ul, ol {
45 list-style: "none";
46 padding: "0px";
47 margin: "0px";
48 }
49 a {
50 color: "inherit";
51 text-decoration: "none";
52 }
53 button {
54 appearance: "none";
55 -webkit-appearance: "none";
56 -moz-appearance: "none";
57 background: "transparent";
58 border: "none";
59 padding: "0px";
60 margin: "0px";
61 font: "inherit";
62 color: "inherit";
63 cursor: "pointer";
64 outline: "none";
65 font-family: "inherit";
66 ::-moz-focus-inner {
67 border: "0px";
68 padding: "0px";
69 }
70 }
71 input, textarea, select, button {
72 font: "inherit";
73 font-family: "inherit";
74 font-size: "inherit";
75 line-height: "normal";
76 margin: "0px";
77 padding: "0px";
78 border: "none";
79 outline: "none";
80 background: "transparent";
81 color: "inherit";
82 appearance: "none";
83 -webkit-appearance: "none";
84 -moz-appearance: "none";
85 }
86 input[type="text"], input[type="number"], input[type="email"], input[type="password"], input[type="search"], input[type="tel"], input[type="url"] {
87 appearance: "none";
88 -webkit-appearance: "none";
89 -moz-appearance: "none";
90 border-radius: "0px";
91 }
92 input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
93 -webkit-appearance: "none";
94 appearance: "none";
95 }
96 input[type="number"] {
97 -moz-appearance: "textfield";
98 }
99 input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button {
100 -webkit-appearance: "none";
101 appearance: "none";
102 margin: "0px";
103 }
104 textarea {
105 appearance: "none";
106 -webkit-appearance: "none";
107 -moz-appearance: "none";
108 resize: "vertical";
109 font-family: "inherit";
110 }
111 select {
112 appearance: "none";
113 -webkit-appearance: "none";
114 -moz-appearance: "none";
115 background-image: "none";
116 border-radius: "0px";
117 }
118 img, svg, video, canvas, audio, iframe, embed, object {
119 display: "block";
120 max-width: "100%";
121 }
122 table {
123 border-collapse: "collapse";
124 border-spacing: "0px";
125 }
126 hr {
127 border: "none";
128 margin: "0px";
129 }
130 :focus-visible {
131 outline: "none";
132 }
133 : focus:not(: focus-visible) {
134 outline: "none";
135 }
136 h1, h2, h3, h4, h5, h6 {
137 font-weight: "inherit";
138 font-size: "inherit";
139 }
140 strong, b {
141 font-weight: "700";
142 }
143 em, i {
144 font-style: "italic";
145 }
146 code, pre, kbd, samp {
147 font-family: "ui-monospace, monospace";
148 }
149 @media ((max-width: 767px)) {
150 input, select, textarea {
151 font-size: "16px";
152 }
153 }
154 }
155
156 pub c_mobile_app_root {
157 display: "flex";
158 flex-direction: "column";
159 width: "100%";
160 height: "100%";
161 font-family: "system-ui, -apple-system, sans-serif";
162 background: var!(background);
163 color: var!(foreground);
164 padding: format!("0px {} {} {}", var!(safe-area-inset-right), var!(padding-shell-bottom), var!(safe-area-inset-left));
165 scrollbar-color: format!("{} {}", var!(scrollbar-thumb), var!(scrollbar-track));
166 ::-webkit-scrollbar-thumb {
167 background: var!(scrollbar-thumb);
168 border: "none";
169 border-radius: "0px";
170 }
171 ::-webkit-scrollbar-thumb:hover {
172 background: var!(scrollbar-thumb-hover);
173 }
174 ::-webkit-scrollbar-thumb:active {
175 background: var!(scrollbar-thumb-active);
176 }
177 }
178
179 pub c_app_nav {
184 width: var!(nav-width);
185 background: var!(background);
186 border-left: format!("2px solid {}", var!(border));
187 display: "flex";
188 flex-direction: "column";
189 height: "100%";
190 flex-shrink: "0";
191 padding-top: var!(safe-area-inset-top);
192 @media ((max-width: 767px)) {
193 display: "none";
194 }
195 }
196
197 pub c_nav_header {
198 padding: format!("{} {}", var!(space-xl), var!(space-xl));
199 width: "100%";
200 box-sizing: "border-box";
201 font-size: var!(font-xl);
202 font-weight: "700";
203 color: var!(foreground);
204 letter-spacing: "-0.02em";
205 display: "flex";
206 align-items: "center";
207 gap: format!("{}", var!(space-md));
208 flex-shrink: "0";
209 text-decoration: "none";
210 cursor: "pointer";
211 position: "relative";
212 ::after {
213 content: "''";
214 position: "absolute";
215 bottom: "0px";
216 left: var!(space-lg);
217 right: var!(space-lg);
218 height: "1px";
219 background: format!("linear-gradient(90deg, transparent, {}, transparent)", var!(border));
220 }
221 }
222
223 pub c_nav_brand_title {
224 font-size: var!(font-xl);
225 font-weight: "700";
226 color: var!(foreground);
227 letter-spacing: "-0.02em";
228 }
229
230 pub c_euv_logo {
231 display: "flex";
232 background: var!(accent);
233 align-items: "center";
234 justify-content: "center";
235 color: var!(text-on-accent);
236 font-weight: "700";
237 border: "none";
238 cursor: "pointer";
239 padding: "0px";
240 flex-shrink: "0";
241 position: "relative";
242 }
243
244 pub c_euv_logo_nav {
245 width: "32px";
246 height: "32px";
247 font-size: var!(font-lg);
248 }
249
250 pub c_euv_logo_fab {
251 width: "36px";
252 height: "36px";
253 font-size: var!(font-xl);
254 @media ((max-width: 767px)) {
255 width: "44px";
256 height: "44px";
257 }
258 }
259
260 pub c_nav_section_label {
261 padding: format!("{} {} {} {}", var!(space-md), var!(space-xl), var!(space-xs), var!(space-xl));
262 margin: "0px";
263 font-size: var!(font-xs);
264 font-weight: "700";
265 color: var!(foreground);
266 text-transform: "uppercase";
267 letter-spacing: "0.10em";
268 flex-shrink: "0";
269 }
270
271 pub c_nav_items_scroll {
272 flex: "1";
273 overflow-y: "auto";
274 contain: "content";
275 scrollbar-color: format!("{} {}", var!(scrollbar-thumb), var!(scrollbar-track));
276 ::-webkit-scrollbar-thumb {
277 background: var!(scrollbar-thumb);
278 border: "none";
279 border-radius: "0px";
280 }
281 ::-webkit-scrollbar-thumb:hover {
282 background: var!(scrollbar-thumb-hover);
283 }
284 ::-webkit-scrollbar-thumb:active {
285 background: var!(scrollbar-thumb-active);
286 }
287 }
288
289 pub c_nav_theme_toggle {
290 padding: format!("{} {}", var!(space-md), var!(space-xl));
291 flex-shrink: "0";
292 margin-top: "auto";
293 @media ((max-width: 767px)) {
294 display: "none";
295 }
296 }
297
298 pub c_nav_locale_row {
301 padding: format!("{} {}", var!(space-md), var!(space-xl));
302 flex-shrink: "0";
303 }
304
305 pub c_nav_theme_button {
306 width: "100%";
307 height: "36px";
308 padding: "0px";
309 cursor: "pointer";
310 outline: "none";
311 border: format!("1px dashed {}", var!(border));
312 display: "flex";
313 align-items: "center";
314 justify-content: "center";
315 :focus-visible {
316 outline: "none";
317 }
318 :active {
319 background: "transparent";
320 border-color: var!(border);
321 }
322 }
323
324 pub c_theme_icon_sun {
325 width: "20px";
326 height: "20px";
327 background-repeat: "no-repeat";
328 background-position: "center";
329 background-size: "20px 20px";
330 background-image: "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='%23ffffff' stroke='%23ffffff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Cline x1='12' y1='1' x2='12' y2='4'/%3E%3Cline x1='12' y1='20' x2='12' y2='23'/%3E%3Cline x1='4.22' y1='4.22' x2='6.34' y2='6.34'/%3E%3Cline x1='17.66' y1='17.66' x2='19.78' y2='19.78'/%3E%3Cline x1='1' y1='12' x2='4' y2='12'/%3E%3Cline x1='20' y1='12' x2='23' y2='12'/%3E%3Cline x1='4.22' y1='19.78' x2='6.34' y2='17.66'/%3E%3Cline x1='17.66' y1='6.34' x2='19.78' y2='4.22'/%3E%3C/svg%3E\")";
331 transition: format!("transform {} {}", var!(duration-normal), var!(ease-out));
332 }
333
334 pub c_theme_icon_moon {
335 width: "20px";
336 height: "20px";
337 background-repeat: "no-repeat";
338 background-position: "center";
339 background-size: "20px 20px";
340 background-image: "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='%23000000' stroke='none' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 13A9 9 0 1 1 11 3a7 7 0 0 0 10 10z'/%3E%3C/svg%3E\")";
341 transition: format!("transform {} {}", var!(duration-normal), var!(ease-out));
342 }
343
344 pub c_nav_footer {
345 padding: format!("{} {}", var!(space-lg), var!(space-xl));
346 position: "relative";
347 font-size: var!(font-xs);
348 color: var!(muted-foreground);
349 flex-shrink: "0";
350 text-decoration: "none";
351 display: "flex";
352 align-items: "center";
353 gap: var!(space-xs);
354 cursor: "pointer";
355 transition: format!("opacity {} {}", var!(duration-fast), var!(ease-out));
356 opacity: "1";
357 :hover {
358 opacity: "1";
359 }
360 }
361
362 pub c_nav_footer_divider {
363 position: "absolute";
364 top: "0";
365 left: var!(space-lg);
366 right: var!(space-lg);
367 height: "1px";
368 background: format!("linear-gradient(90deg, transparent, {}, transparent)", var!(border));
369 }
370
371 pub c_nav_footer_text {
372 font-weight: "400";
373 letter-spacing: "0.02em";
374 }
375
376 pub c_nav_footer_brand {
377 font-weight: "700";
378 color: var!(accent);
379 }
380
381 pub c_nav_item_active {
382 display: "flex";
383 align-items: "center";
384 gap: var!(space-sm);
385 padding: format!("{} {}", var!(space-md), var!(space-xl));
386 text-decoration: "none";
387 font-size: var!(font-base);
388 color: var!(text-on-accent);
389 font-weight: "600";
390 background: var!(accent);
391 }
392
393 pub c_nav_item_inactive {
394 display: "flex";
395 align-items: "center";
396 gap: var!(space-sm);
397 padding: format!("{} {}", var!(space-md), var!(space-xl));
398 text-decoration: "none";
399 font-size: var!(font-base);
400 color: var!(foreground);
401 font-weight: "400";
402 :hover {
403 background: var!(accent-muted);
404 color: var!(accent);
405 box-shadow: format!("inset 4px 0 0 0 {}", var!(foreground));
406 }
407 }
408
409 pub c_nav_item_icon {
410 flex-shrink: "0";
411 width: "20px";
412 text-align: "center";
413 }
414
415 pub c_nav_item_label {
416 flex: "1";
417 overflow: "hidden";
418 text-overflow: "ellipsis";
419 white-space: "nowrap";
420 color: "inherit";
421 }
422
423 pub c_app_main {
428 flex: "1";
429 height: "100%";
430 overflow: "auto";
431 padding: format!("{} {} {} {}", var!(padding-main-top), var!(padding-main-horizontal), var!(padding-main-bottom), var!(padding-main-horizontal));
432 scrollbar-color: format!("{} {}", var!(scrollbar-thumb), var!(scrollbar-track));
433 ::-webkit-scrollbar {
434 width: "6px";
435 }
436 ::-webkit-scrollbar-thumb {
437 background: var!(scrollbar-thumb);
438 border: "none";
439 border-radius: "0px";
440 }
441 ::-webkit-scrollbar-thumb:hover {
442 background: var!(scrollbar-thumb-hover);
443 }
444 ::-webkit-scrollbar-thumb:active {
445 background: var!(scrollbar-thumb-active);
446 }
447 @media ((max-width: 767px)) {
448 padding: format!("{} {} {} {}", var!(padding-main-top-mobile), var!(padding-main-horizontal-mobile), var!(padding-main-bottom), var!(padding-main-horizontal-mobile));
449 scrollbar-width: "none";
450 ::-webkit-scrollbar {
451 width: "0px";
452 }
453 }
454 }
455
456 pub c_page_router {
457 flex: "1";
458 display: "flex";
459 flex-direction: "column";
460 }
461
462 pub c_page_container {
463 width: "100%";
464 margin: "0px auto";
465 max-width: var!(content-max-width);
466 }
467
468 pub c_page {
473 position: "relative";
474 text-align: "center";
475 box-sizing: "border-box";
476 }
477
478 pub c_page_glow {
479 position: "absolute";
480 top: "-50%";
481 left: "50%";
482 transform: "translateX(-50%)";
483 width: "400px";
484 max-width: "100%";
485 height: "400px";
486 pointer-events: "none";
487 }
488
489 pub c_page_content {
490 position: "relative";
491 z-index: "1";
492 }
493
494 pub c_page_icon {
495 font-size: "36px";
496 padding-bottom: var!(space-md);
497 @media ((max-width: 767px)) {
498 font-size: "40px";
499 }
500 }
501
502 pub c_page_title {
503 font-size: var!(font-4xl);
504 font-weight: "800";
505 letter-spacing: "-0.03em";
506 margin: "0px";
507 color: var!(foreground);
508 margin-bottom: var!(space-sm);
509 @media ((max-width: 767px)) {
510 font-size: var!(font-3xl);
511 }
512 }
513
514 pub c_page_subtitle {
515 font-size: var!(font-lg);
516 color: var!(muted-foreground);
517 margin: "0px auto";
518 margin-bottom: var!(space-sm);
519 max-width: "560px";
520 opacity: "1";
521 @media ((max-width: 767px)) {
522 font-size: var!(font-base);
523 }
524 }
525
526 pub c_card {
531 color: var!(foreground);
532 box-sizing: "border-box";
533 }
534
535 pub c_card_title {
536 margin: format!("{} 0px", var!(gap-component));
537 color: var!(foreground);
538 font-size: var!(font-lg);
539 font-weight: "600";
540 padding-bottom: var!(gap-component);
541 border-bottom: format!("1px dashed {}", var!(border));
542 letter-spacing: "-0.01em";
543 @media ((max-width: 767px)) {
544 font-size: var!(font-md);
545 }
546 }
547
548 pub c_primary_button {
553 display: "flex";
554 justify-content: "center";
555 align-items: "center";
556 gap: var!(space-sm);
557 width: "100%";
558 height: "42px";
559 background: var!(accent);
560 color: var!(text-on-accent);
561 border: "1px solid transparent";
562 padding: format!("0px {}", var!(space-2xl));
563 cursor: "pointer";
564 font-size: var!(font-base);
565 font-weight: "500";
566 letter-spacing: "0.02em";
567 text-align: "center";
568 outline: "none";
569 box-sizing: "border-box";
570 white-space: "nowrap";
571 overflow: "hidden";
572 text-overflow: "ellipsis";
573 user-select: "none";
574 -webkit-user-select: "none";
575 :focus-visible {
576 outline: "none";
577 }
578 :disabled {
579 background: var!(muted-foreground);
580 cursor: "not-allowed";
581 opacity: "1";
582 }
583 :hover {
584 background: var!(accent);
585 }
586 :active {
587 background: var!(accent);
588 color: var!(text-on-accent);
589 border-color: "transparent";
590 }
591 @media ((max-width: 767px)) {
592 max-width: "100%";
593 padding: format!("{} {}", var!(space-lg), var!(space-xl));
594 font-size: var!(font-md);
595 }
596 }
597
598 pub c_modal_close_button {
599 display: "flex";
600 justify-content: "center";
601 align-items: "center";
602 color: "inherit";
603 border: "none";
604 padding: format!("{} {}", var!(space-sm), var!(space-md));
605 cursor: "pointer";
606 font-size: "20px";
607 font-weight: "400";
608 vertical-align: "middle";
609 outline: "none";
610 opacity: "1";
611 flex-shrink: "0";
612 transition: format!("opacity {} {}", var!(duration-fast), var!(ease-out));
613 :hover {
614 opacity: "1";
615 }
616 :active {
617 opacity: "1";
618 }
619 :focus {
620 outline: "none";
621 }
622 }
623
624 pub c_button_controls {
629 display: "flex";
630 flex-wrap: "wrap";
631 gap: var!(gap-element);
632 margin-top: var!(gap-component);
633 margin-bottom: var!(gap-component);
634 }
635
636 pub c_euv_button_primary_md {
641 display: "flex";
642 justify-content: "center";
643 align-items: "center";
644 gap: var!(space-sm);
645 flex: "1 1 120px";
646 height: "42px";
647 padding: format!("0px {}", var!(space-xl));
648 background: var!(accent);
649 color: var!(text-on-accent);
650 cursor: "pointer";
651 font-size: var!(font-base);
652 font-weight: "500";
653 outline: "none";
654 white-space: "nowrap";
655 user-select: "none";
656 -webkit-user-select: "none";
657 box-sizing: "border-box";
658 :disabled {
659 background: var!(muted-foreground);
660 cursor: "not-allowed";
661 opacity: "1";
662 }
663 }
664
665 pub c_euv_button_outline_md {
666 display: "flex";
667 justify-content: "center";
668 align-items: "center";
669 gap: var!(space-sm);
670 flex: "1 1 120px";
671 height: "42px";
672 padding: format!("0px {}", var!(space-xl));
673 color: var!(foreground);
674 border: format!("1px solid {}", var!(border));
675 cursor: "pointer";
676 font-size: var!(font-base);
677 font-weight: "500";
678 outline: "none";
679 white-space: "nowrap";
680 user-select: "none";
681 -webkit-user-select: "none";
682 box-sizing: "border-box";
683 :focus-visible {
684 outline: "none";
685 }
686 :disabled {
687 background: var!(muted-foreground);
688 cursor: "not-allowed";
689 opacity: "1";
690 }
691 }
692
693 pub c_badge {
698 display: "inline-flex";
699 justify-content: "center";
700 align-items: "center";
701 color: var!(text-on-accent);
702 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
703 border: format!("1px solid {}", var!(accent));
704 font-size: var!(font-xs);
705 font-weight: "600";
706 cursor: "pointer";
707 text-align: "center";
708 background: var!(accent);
709 :focus-visible {
710 outline: "none";
711 }
712 @media ((max-width: 767px)) {
713 padding: format!("{} {}", var!(space-2xs), var!(space-xs));
714 font-size: var!(font-xs);
715 }
716 }
717
718 pub c_badge_outline {
719 display: "inline-flex";
720 justify-content: "center";
721 align-items: "center";
722 color: var!(foreground);
723 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
724 font-size: var!(font-xs);
725 font-weight: "600";
726 cursor: "pointer";
727 text-align: "center";
728 border: format!("1.5px solid {}", var!(border));
729 @media ((max-width: 767px)) {
730 padding: format!("{} {}", var!(space-2xs), var!(space-xs));
731 font-size: var!(font-xs);
732 }
733 }
734
735 pub c_euv_tag_solid_black {
736 display: "inline-block";
737 vertical-align: "middle";
738 text-align: "center";
739 line-height: "1";
740 color: var!(text-on-accent);
741 padding: format!("{} {}", var!(space-xs), var!(space-md));
742 font-size: var!(font-sm);
743 font-weight: "600";
744 cursor: "pointer";
745 background: var!(accent);
746 border: format!("1px solid {}", var!(accent));
747 box-sizing: "border-box";
748 }
749
750 pub c_euv_tag_solid_white {
751 display: "inline-block";
752 vertical-align: "middle";
753 text-align: "center";
754 line-height: "1";
755 color: var!(foreground);
756 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
757 font-size: var!(font-xs);
758 font-weight: "600";
759 cursor: "pointer";
760 border: format!("1.5px solid {}", var!(accent));
761 box-sizing: "border-box";
762 }
763
764 pub c_euv_tag_outline_black {
769 display: "inline-block";
770 vertical-align: "middle";
771 text-align: "center";
772 line-height: "1";
773 color: var!(accent);
774 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
775 font-size: var!(font-xs);
776 font-weight: "600";
777 cursor: "pointer";
778 border: format!("1.5px solid {}", var!(accent));
779 box-sizing: "border-box";
780 }
781
782 pub c_euv_tag_outline_white {
783 display: "inline-block";
784 vertical-align: "middle";
785 text-align: "center";
786 line-height: "1";
787 color: var!(foreground);
788 padding: format!("{} {}", var!(space-xs), var!(space-md));
789 font-size: var!(font-sm);
790 font-weight: "600";
791 cursor: "pointer";
792 border: format!("1.5px solid {}", var!(border));
793 box-sizing: "border-box";
794 }
795
796 pub c_euv_input_wrapper {
801 width: "100%";
802 margin: format!("{} 0px", var!(gap-element));
803 }
804
805 pub c_form_label {
806 display: "block";
807 margin-bottom: var!(space-sm);
808 color: "inherit";
809 font-weight: "500";
810 font-size: var!(font-base);
811 }
812
813 pub c_inline_input_row {
814 display: "flex";
815 align-items: "center";
816 gap: var!(gap-component);
817 }
818
819 pub c_euv_input {
820 width: "100%";
821 min-height: var!(min-height-base);
822 padding: format!("0px {}", var!(space-lg));
823 border: format!("1px solid {}", var!(border));
824 font-size: var!(font-base);
825 line-height: "normal";
826 box-sizing: "border-box";
827 outline: "none";
828 color: var!(foreground);
829 appearance: "none";
830 -webkit-appearance: "none";
831 -moz-appearance: "none";
832 vertical-align: "middle";
833 :hover {
834 border-color: var!(accent);
835 background: var!(accent-muted);
836 }
837 :focus {
838 outline: "none";
839 border-color: var!(accent);
840 background: var!(accent-muted);
841 }
842 }
843
844 pub c_euv_input_no_transition {
845 width: "100%";
846 min-height: var!(min-height-base);
847 padding: format!("0px {}", var!(space-lg));
848 border: format!("1px solid {}", var!(border));
849 font-size: var!(font-base);
850 line-height: "normal";
851 box-sizing: "border-box";
852 outline: "none";
853 color: var!(foreground);
854 appearance: "none";
855 -webkit-appearance: "none";
856 -moz-appearance: "none";
857 vertical-align: "middle";
858 }
859
860 pub c_euv_input_error {
861 width: "100%";
862 min-height: var!(min-height-base);
863 padding: format!("0px {}", var!(space-lg));
864 border: format!("1px solid {}", var!(foreground));
865 font-size: var!(font-base);
866 line-height: "normal";
867 box-sizing: "border-box";
868 outline: "none";
869 color: var!(foreground);
870 appearance: "none";
871 -webkit-appearance: "none";
872 -moz-appearance: "none";
873 vertical-align: "middle";
874 :focus {
875 outline: "none";
876 border-color: var!(foreground);
877 }
878 }
879
880 pub c_form_checkbox {
881 cursor: "pointer";
882 width: var!(space-lg);
883 height: var!(space-lg);
884 }
885
886 pub c_form_checkbox_label {
887 font-size: var!(font-base);
888 color: "inherit";
889 cursor: "pointer";
890 }
891
892 pub c_form_checkbox_row {
893 margin: format!("{} 0px", var!(gap-component));
894 display: "flex";
895 align-items: "center";
896 gap: var!(gap-element);
897 }
898
899 pub c_select_input {
900 width: "100%";
901 min-height: var!(min-height-base);
902 padding: format!("0px {}", var!(space-lg));
903 border: format!("1px solid {}", var!(border));
904 font-size: var!(font-base);
905 line-height: "normal";
906 box-sizing: "border-box";
907 outline: "none";
908 cursor: "pointer";
909 appearance: "none";
910 -webkit-appearance: "none";
911 -moz-appearance: "none";
912 color: var!(foreground);
913 vertical-align: "middle";
914 background-image: "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='currentColor' d='M6 8L1 3h10z'/%3E%3C/svg%3E\")";
915 background-repeat: "no-repeat";
916 background-position: "right 14px center";
917 :focus {
918 outline: "none";
919 border-color: var!(accent);
920 background: var!(accent-muted);
921 }
922 }
923
924 pub c_textarea_input {
925 width: "100%";
926 max-width: "100%";
927 padding: format!("{} {}", var!(space-md), var!(space-lg));
928 border: format!("1px solid {}", var!(border));
929 font-size: var!(font-base);
930 line-height: "normal";
931 box-sizing: "border-box";
932 outline: "none";
933 resize: "vertical";
934 overflow-x: "hidden";
935 word-wrap: "break-word";
936 font-family: "inherit";
937 color: var!(foreground);
938 appearance: "none";
939 -webkit-appearance: "none";
940 -moz-appearance: "none";
941 :hover {
942 border-color: var!(accent);
943 background: var!(accent-muted);
944 }
945 :focus {
946 outline: "none";
947 border-color: var!(accent);
948 background: var!(accent-muted);
949 }
950 }
951
952 pub c_textarea_input_error {
953 width: "100%";
954 max-width: "100%";
955 padding: format!("{} {}", var!(space-md), var!(space-lg));
956 border: format!("1px solid {}", var!(foreground));
957 font-size: var!(font-base);
958 line-height: "normal";
959 box-sizing: "border-box";
960 outline: "none";
961 resize: "vertical";
962 overflow-x: "hidden";
963 word-wrap: "break-word";
964 font-family: "inherit";
965 color: var!(foreground);
966 appearance: "none";
967 -webkit-appearance: "none";
968 -moz-appearance: "none";
969 :focus {
970 outline: "none";
971 border-color: var!(foreground);
972 }
973 }
974
975 pub c_textarea_counter {
976 text-align: "right";
977 margin-top: var!(space-xs);
978 margin-bottom: var!(gap-component);
979 }
980
981 pub c_textarea_counter_text {
982 font-size: var!(font-sm);
983 color: "inherit";
984 opacity: "1";
985 }
986
987 pub c_field_error_text {
988 color: var!(foreground);
989 font-size: var!(font-base);
990 margin-top: var!(space-xs);
991 margin-bottom: var!(space-sm);
992 }
993
994 pub c_error_box {
999 margin: format!("{} 0px", var!(gap-component));
1000 background: var!(accent-muted);
1001 color: var!(foreground);
1002 font-size: var!(font-base);
1003 box-sizing: "border-box";
1004 }
1005
1006 pub c_success_box {
1007 margin: format!("{} 0px", var!(gap-component));
1008 background: var!(accent-muted);
1009 color: var!(foreground);
1010 font-size: var!(font-base);
1011 box-sizing: "border-box";
1012 }
1013
1014 pub c_counter_row {
1019 display: "grid";
1020 grid-template-columns: "1fr 1fr";
1021 align-items: "center";
1022 gap: var!(gap-component);
1023 @media ((max-width: 767px)) {
1024 grid-template-columns: "1fr";
1025 }
1026 }
1027
1028 pub c_counter_text {
1029 font-size: var!(font-base);
1030 color: "inherit";
1031 margin-bottom: var!(gap-component);
1032 }
1033
1034 pub c_counter_value {
1035 font-weight: "700";
1036 color: var!(accent);
1037 font-size: var!(font-base);
1038 }
1039
1040 pub c_badge_row {
1041 display: "flex";
1042 gap: var!(gap-inline);
1043 flex-wrap: "wrap";
1044 align-items: "center";
1045 }
1046
1047 pub c_badge_hint {
1048 margin-bottom: var!(gap-component);
1049 color: "inherit";
1050 opacity: "1";
1051 font-size: var!(font-base);
1052 }
1053
1054 pub c_text_ellipsis {
1059 overflow: "hidden";
1060 text-overflow: "ellipsis";
1061 white-space: "nowrap";
1062 }
1063
1064 pub c_info_row {
1065 display: "flex";
1066 align-items: "center";
1067 gap: var!(space-md);
1068 padding: format!("{} 0", var!(space-sm));
1069 overflow: "hidden";
1070 }
1071
1072 pub c_info_label {
1073 font-size: var!(font-sm);
1074 font-weight: "500";
1075 color: var!(muted-foreground);
1076 min-width: "72px";
1077 flex-shrink: "0";
1078 letter-spacing: "0.02em";
1079 }
1080
1081 pub c_info_value {
1082 c_text_ellipsis();
1083 font-size: var!(font-base);
1084 font-weight: "600";
1085 color: var!(foreground);
1086 font-family: "ui-monospace, monospace";
1087 flex: "1";
1088 }
1089
1090 pub c_info_link {
1091 c_text_ellipsis();
1092 font-size: var!(font-base);
1093 font-weight: "600";
1094 color: var!(accent);
1095 font-family: "ui-monospace, monospace";
1096 flex: "1";
1097 text-decoration: "none";
1098 transition: format!("opacity {} {}", var!(duration-fast), var!(ease-out));
1099 :hover {
1100 opacity: "1";
1101 }
1102 }
1103
1104 pub c_camera_video_container {
1109 margin: format!("{} 0", var!(space-lg));
1110 }
1111
1112 pub c_camera_video_active {
1113 width: "100%";
1114 background: "#000";
1115 aspect-ratio: "16 / 9";
1116 object-fit: "cover";
1117 border: format!("2px solid {}", var!(accent));
1118 box-sizing: "border-box";
1119 }
1120
1121 pub c_camera_video_hidden {
1122 width: "100%";
1123 aspect-ratio: "16 / 9";
1124 display: "none";
1125 }
1126
1127 pub c_camera_video_placeholder {
1128 width: "100%";
1129 aspect-ratio: "16 / 9";
1130 border: format!("2px dashed {}", var!(border));
1131 display: "flex";
1132 align-items: "center";
1133 justify-content: "center";
1134 box-sizing: "border-box";
1135 }
1136
1137 pub c_camera_placeholder_content {
1138 display: "flex";
1139 flex-direction: "column";
1140 align-items: "center";
1141 gap: var!(space-md);
1142 }
1143
1144 pub c_camera_placeholder_icon {
1145 font-size: var!(font-4xl);
1146 opacity: "1";
1147 }
1148
1149 pub c_camera_placeholder_text {
1150 font-size: var!(font-base);
1151 color: "inherit";
1152 opacity: "1";
1153 }
1154
1155 pub c_camera_error_box {
1156 margin: format!("{} 0px", var!(gap-component));
1157 color: var!(foreground);
1158 font-size: var!(font-base);
1159 word-break: "break-all";
1160 overflow-wrap: "break-word";
1161 box-sizing: "border-box";
1162 }
1163
1164 pub c_camera_scan_result_box {
1165 margin-top: var!(gap-component);
1166 box-sizing: "border-box";
1167 }
1168
1169 pub c_camera_scan_result_label {
1170 font-size: var!(font-sm);
1171 font-weight: "600";
1172 color: var!(foreground);
1173 margin-bottom: var!(space-xs);
1174 }
1175
1176 pub c_camera_scan_result_value {
1177 font-size: var!(font-base);
1178 color: "inherit";
1179 word-break: "break-all";
1180 overflow-wrap: "break-word";
1181 }
1182
1183 pub c_canvas_preview_container {
1188 margin: format!("{} 0", var!(space-lg));
1189 overflow: "hidden";
1190 border: format!("2px solid {}", var!(border));
1191 background: "#ffffff";
1192 aspect-ratio: "9 / 16";
1193 display: "flex";
1194 align-items: "center";
1195 justify-content: "center";
1196 box-sizing: "border-box";
1197 }
1198
1199 pub c_canvas_placeholder {
1200 color: var!(muted-foreground);
1201 font-size: var!(font-sm);
1202 text-align: "center";
1203 padding: var!(space-lg);
1204 }
1205
1206 pub c_canvas_preview_image {
1207 width: "100%";
1208 height: "100%";
1209 object-fit: "cover";
1210 display: "block";
1211 }
1212
1213 pub c_canvas_container_fullscreen {
1214 width: "100%";
1215 height: "100%";
1216 background: var!(background);
1217 display: "flex";
1218 flex-direction: "column";
1219 position: "fixed";
1220 top: "0";
1221 left: "0";
1222 z-index: "10002";
1223 padding: format!("{} {} {} {}", var!(padding-shell-top), var!(space-lg), var!(padding-shell-bottom), var!(space-lg));
1224 box-sizing: "border-box";
1225 }
1226
1227 pub c_canvas_drawing_fullscreen_wrapper {
1228 flex: "1";
1229 display: "flex";
1230 align-items: "center";
1231 justify-content: "center";
1232 overflow: "hidden";
1233 padding: var!(space-xs);
1234 }
1235
1236 pub c_canvas_drawing_fullscreen {
1237 border: format!("2px solid {}", var!(border));
1238 display: "block";
1239 cursor: "crosshair";
1240 touch-action: "none";
1241 }
1242
1243 pub c_canvas_fullscreen_toolbar {
1244 display: "flex";
1245 flex-direction: "column";
1246 align-items: "stretch";
1247 width: "100%";
1248 padding: format!("{} {}", var!(space-xs), "0px");
1249 flex-shrink: "0";
1250 gap: var!(space-xs);
1251 }
1252
1253 pub c_canvas_fullscreen_toolbar_row_top {
1254 display: "flex";
1255 align-items: "center";
1256 height: var!(mobile-header-height);
1257 width: "100%";
1258 gap: var!(space-sm);
1259 }
1260
1261 pub c_canvas_fullscreen_toolbar_color_wrapper {
1262 display: "flex";
1263 align-items: "center";
1264 justify-content: "center";
1265 flex: "1";
1266 min-width: "0";
1267 }
1268
1269 pub c_canvas_color_input_fullscreen {
1270 width: "100%";
1271 height: "42px";
1272 border: format!("1px solid {}", var!(border));
1273 cursor: "pointer";
1274 padding: format!("{}", var!(space-xs));
1275 }
1276
1277 pub c_canvas_fullscreen_toolbar_row_bottom {
1278 display: "flex";
1279 align-items: "center";
1280 width: "100%";
1281 }
1282
1283 pub c_canvas_fullscreen_range_input {
1284 flex: "1 1 0%";
1285 min-width: "120px";
1286 cursor: "pointer";
1287 -webkit-appearance: "none";
1288 appearance: "none";
1289 border: "none";
1290 outline: "none";
1291 height: "24px";
1292 ::-webkit-slider-runnable-track {
1293 height: "6px";
1294 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
1295 border-radius: "3px";
1296 border: "none";
1297 }
1298 ::-webkit-slider-thumb {
1299 width: "20px";
1300 height: "20px";
1301 background: var!(background);
1302 border: format!("2px solid {}", var!(accent));
1303 border-radius: "50%";
1304 cursor: "pointer";
1305 -webkit-appearance: "none";
1306 margin-top: "-7px";
1307 }
1308 ::-moz-range-track {
1309 height: "6px";
1310 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
1311 border-radius: "3px";
1312 border: "none";
1313 }
1314 ::-moz-range-thumb {
1315 width: "20px";
1316 height: "20px";
1317 background: var!(background);
1318 border: format!("2px solid {}", var!(accent));
1319 border-radius: "50%";
1320 cursor: "pointer";
1321 }
1322 }
1323
1324 pub c_canvas_fullscreen_toolbar_button {
1325 flex: "0 0 auto";
1326 overflow: "hidden";
1327 }
1328
1329 pub c_game_container_fullscreen {
1343 width: "100%";
1344 height: "100%";
1345 background: var!(background);
1346 display: "flex";
1347 flex-direction: "column";
1348 position: "fixed";
1349 top: "0";
1350 left: "0";
1351 z-index: "10002";
1352 padding: format!(
1353 "{} {} {} {}",
1354 var!(padding-shell-top),
1355 var!(space-lg),
1356 var!(padding-shell-bottom),
1357 var!(space-lg)
1358 );
1359 box-sizing: "border-box";
1360 }
1361
1362 pub c_game_fullscreen_toolbar {
1368 display: "flex";
1369 align-items: "center";
1370 justify-content: "flex-end";
1371 width: "100%";
1372 padding: format!("{} {} {} {}", var!(space-xs), var!(space-lg), var!(space-xs), var!(space-lg));
1373 flex-shrink: "0";
1374 gap: var!(space-sm);
1375 box-sizing: "border-box";
1376 }
1377
1378 pub c_game_fullscreen_canvas_letterbox {
1394 position: "relative";
1395 aspect-ratio: "16 / 9";
1396 width: "100%";
1397 max-width: "100%";
1398 max-height: "100%";
1399 height: "auto";
1400 display: "flex";
1401 align-items: "center";
1402 justify-content: "center";
1403 }
1404
1405 pub c_custom_attrs_demo {
1410 color: var!(foreground);
1415 box-sizing: "border-box";
1416 }
1417
1418 pub c_demo_text {
1419 color: var!(foreground);
1420 margin-bottom: var!(gap-component);
1421 }
1422
1423 pub c_demo_text_muted {
1424 color: var!(foreground);
1425 opacity: "1";
1426 font-size: var!(font-base);
1427 margin-bottom: "0px";
1428 }
1429
1430 pub c_loading_container {
1435 display: "flex";
1436 align-items: "center";
1437 justify-content: "center";
1438 gap: var!(gap-component);
1439 margin: format!("{} 0px", var!(gap-component));
1440 box-sizing: "border-box";
1441 }
1442
1443 pub c_spinner {
1444 width: "28px";
1445 height: "28px";
1446 border: format!("3px solid {}", var!(accent-muted));
1447 border-top: format!("3px solid {}", var!(accent));
1448 border-radius: "50%";
1449 flex-shrink: "0";
1450 animation: "euv-spin 0.8s linear infinite";
1451 }
1452
1453 pub c_loading_text_col {
1454 display: "flex";
1455 flex-direction: "column";
1456 gap: var!(space-xs);
1457 }
1458
1459 pub c_loading_title {
1460 color: var!(foreground);
1461 font-size: var!(font-md);
1462 font-weight: "500";
1463 }
1464
1465 pub c_loading_subtitle {
1466 color: var!(muted-foreground);
1467 font-size: var!(font-base);
1468 }
1469
1470 pub c_loading_overlay(background: &str) {
1471 position: "absolute";
1472 top: "0";
1473 left: "0";
1474 width: "100%";
1475 height: "100%";
1476 display: "flex";
1477 flex-direction: "column";
1478 align-items: "center";
1479 justify-content: "center";
1480 gap: var!(gap-component);
1481 background: background;
1482 z-index: "1";
1483 box-sizing: "border-box";
1484 }
1485
1486 pub c_error_container {
1487 display: "flex";
1488 align-items: "center";
1489 gap: var!(gap-element);
1490 margin-top: var!(gap-component);
1491 box-sizing: "border-box";
1492 }
1493
1494 pub c_error_icon {
1495 width: "20px";
1496 height: "20px";
1497 display: "flex";
1498 align-items: "center";
1499 justify-content: "center";
1500 flex-shrink: "0";
1501 color: var!(foreground);
1502 font-size: var!(font-sm);
1503 font-weight: "700";
1504 }
1505
1506 pub c_error_text {
1507 color: var!(foreground);
1508 font-size: var!(font-base);
1509 }
1510
1511 pub c_data_box {
1512 margin: format!("{} 0px", var!(gap-component));
1513 box-sizing: "border-box";
1514 }
1515
1516 pub c_data_pre {
1517 color: var!(foreground);
1518 font-size: var!(font-base);
1519 margin: "0px";
1520 white-space: "pre-wrap";
1521 word-break: "break-all";
1522 font-family: "ui-monospace, monospace";
1523 }
1524
1525 pub c_fetch_hint {
1526 color: "inherit";
1527 opacity: "1";
1528 font-size: var!(font-base);
1529 margin-bottom: var!(gap-component);
1530 }
1531
1532 pub c_toggle_content {
1537 margin-top: var!(gap-component);
1538 color: "inherit";
1539 }
1540
1541 pub c_toggle_title {
1542 margin-top: "0px";
1543 color: var!(accent);
1544 font-size: var!(font-md);
1545 }
1546
1547 pub c_role_button_row {
1548 display: "flex";
1549 flex-wrap: "nowrap";
1550 gap: var!(gap-element);
1551 margin-bottom: var!(gap-component);
1552 }
1553
1554 pub c_role_guest_text {
1555 color: var!(foreground);
1556 font-size: var!(font-base);
1557 }
1558
1559 pub c_role_user_text {
1560 color: var!(foreground);
1561 font-size: var!(font-base);
1562 }
1563
1564 pub c_role_admin_text {
1565 color: var!(foreground);
1566 font-size: var!(font-base);
1567 }
1568
1569 pub c_tab_bar {
1574 display: "flex";
1575 border-bottom: format!("1px dashed {}", var!(border));
1576 margin-bottom: var!(gap-component);
1577 gap: var!(gap-element);
1578 @media ((max-width: 767px)) {
1579 flex-wrap: "wrap";
1580 }
1581 }
1582
1583 pub c_tab_item_active {
1584 padding: format!("{} {}", var!(space-md), var!(space-xl));
1585 cursor: "pointer";
1586 border-bottom: format!("2px solid {}", var!(accent));
1587 color: var!(text-on-accent);
1588 background: var!(accent);
1589 font-size: var!(font-base);
1590 font-weight: "500";
1591 }
1592
1593 pub c_tab_item_inactive {
1594 padding: format!("{} {}", var!(space-md), var!(space-xl));
1595 cursor: "pointer";
1596 border-bottom: "2px solid transparent";
1597 color: "inherit";
1598 font-size: var!(font-base);
1599 font-weight: "500";
1600 :hover {
1601 background: var!(accent-muted);
1602 color: var!(accent);
1603 }
1604 }
1605
1606 pub c_tab_content {
1607 padding: format!("{} 0px", var!(gap-element));
1608 }
1609
1610 pub c_tab_text {
1611 color: "inherit";
1612 font-size: var!(font-base);
1613 margin-bottom: var!(gap-element);
1614 }
1615
1616 pub c_tab_text_muted {
1617 color: "inherit";
1618 opacity: "1";
1619 font-size: var!(font-base);
1620 }
1621
1622 pub c_tab_text_input {
1623 color: "inherit";
1624 font-size: var!(font-base);
1625 margin-bottom: var!(gap-component);
1626 }
1627
1628 pub c_list_input {
1633 width: "100%";
1634 flex: "1";
1635 height: "42px";
1636 padding: format!("0px {}", var!(space-lg));
1637 border: format!("1px solid {}", var!(border));
1638 font-size: var!(font-base);
1639 line-height: "normal";
1640 box-sizing: "border-box";
1641 outline: "none";
1642 color: var!(foreground);
1643 appearance: "none";
1644 -webkit-appearance: "none";
1645 -moz-appearance: "none";
1646 vertical-align: "middle";
1647 :hover {
1648 border-color: var!(accent);
1649 background: var!(accent-muted);
1650 }
1651 :focus {
1652 outline: "none";
1653 border-color: var!(accent);
1654 background: var!(accent-muted);
1655 }
1656 }
1657
1658 pub c_list_input_error {
1659 width: "100%";
1660 flex: "1";
1661 height: "42px";
1662 padding: format!("0px {}", var!(space-lg));
1663 border: format!("1px solid {}", var!(foreground));
1664 font-size: var!(font-base);
1665 line-height: "normal";
1666 box-sizing: "border-box";
1667 outline: "none";
1668 color: var!(foreground);
1669 appearance: "none";
1670 -webkit-appearance: "none";
1671 -moz-appearance: "none";
1672 vertical-align: "middle";
1673 :focus {
1674 outline: "none";
1675 border-color: var!(foreground);
1676 }
1677 }
1678
1679 pub c_list_error_text {
1680 color: var!(foreground);
1681 font-size: var!(font-base);
1682 margin: format!("{} 0px", var!(gap-element));
1683 }
1684
1685 pub c_inline_input_button_wrap {
1686 flex-shrink: "0";
1687 }
1688
1689 pub c_list_ul {
1690 list-style: "none";
1691 padding: "0px";
1692 margin: "0px";
1693 margin-top: var!(gap-component);
1694 }
1695
1696 pub c_list_item {
1697 display: "flex";
1698 justify-content: "space-between";
1699 align-items: "center";
1700 gap: var!(gap-component);
1701 min-height: var!(min-height-base);
1702 margin: format!("{} 0px", var!(gap-element));
1703 }
1704
1705 pub c_list_item_text {
1706 flex: "1";
1707 overflow: "hidden";
1708 text-overflow: "ellipsis";
1709 white-space: "nowrap";
1710 font-size: var!(font-base);
1711 color: "inherit";
1712 min-width: "0";
1713 }
1714
1715 pub c_list_item_button {
1716 max-width: "120px";
1717 flex-shrink: "0";
1718 }
1719
1720 pub c_log_container {
1725 font-family: "ui-monospace, monospace";
1726 font-size: var!(font-base);
1727 margin-top: "0px";
1728 color: var!(foreground);
1729 }
1730
1731 pub c_log_item {
1732 padding: format!("{} 0px", var!(space-sm));
1733 font-size: var!(font-base);
1734 color: var!(foreground);
1735 }
1736
1737 pub c_render_count_text {
1742 font-size: var!(font-base);
1743 color: "inherit";
1744 margin-bottom: var!(gap-component);
1745 }
1746
1747 pub c_event_result {
1752 font-size: var!(font-base);
1753 color: "inherit";
1754 margin-top: var!(gap-element);
1755 }
1756
1757 pub c_event_highlight {
1758 font-weight: "600";
1759 color: var!(accent);
1760 }
1761
1762 pub c_event_info_grid {
1763 display: "grid";
1764 grid-template-columns: "1fr 1fr";
1765 gap: var!(gap-element);
1766 margin-top: var!(gap-component);
1767 @media ((max-width: 767px)) {
1768 grid-template-columns: "1fr";
1769 gap: var!(gap-element);
1770 }
1771 }
1772
1773 pub c_event_info_row {
1774 display: "flex";
1775 align-items: "center";
1776 gap: var!(space-sm);
1777 overflow: "hidden";
1778 }
1779
1780 pub c_event_info_label {
1781 font-size: var!(font-base);
1782 font-weight: "600";
1783 color: var!(foreground);
1784 flex-shrink: "0";
1785 }
1786
1787 pub c_event_info_value {
1788 c_text_ellipsis();
1789 font-size: var!(font-base);
1790 font-weight: "600";
1791 color: var!(accent);
1792 font-family: "ui-monospace, monospace";
1793 flex: "1";
1794 }
1795
1796 pub c_event_mouse_area {
1797 min-height: "120px";
1798 padding: format!("{} 0px", var!(space-xl));
1799 border: format!("2px dashed {}", var!(border));
1800 cursor: "crosshair";
1801 text-align: "center";
1802 user-select: "none";
1803 color: "inherit";
1804 }
1805
1806 pub c_event_drag_zone {
1807 min-height: "100px";
1808 padding: format!("{} 0px", var!(space-xl));
1809 border: format!("2px dashed {}", var!(border));
1810 text-align: "center";
1811 user-select: "none";
1812 color: var!(foreground);
1813 }
1814
1815 pub c_event_drag_zone_active {
1816 min-height: "100px";
1817 padding: format!("{} 0px", var!(space-xl));
1818 border: format!("2px dashed {}", var!(border));
1819 text-align: "center";
1820 user-select: "none";
1821 color: var!(foreground);
1822 }
1823
1824 pub c_event_drag_item {
1825 display: "inline-block";
1826 padding: format!("{} {}", var!(space-sm), var!(space-xl));
1827 background: var!(accent);
1828 color: var!(text-on-accent);
1829 font-size: var!(font-base);
1830 font-weight: "500";
1831 cursor: "grab";
1832 margin: var!(space-sm);
1833 }
1834
1835 pub c_event_drop_zone {
1836 border: format!("2px dashed {}", var!(border));
1837 padding: format!("{} {}", var!(space-4xl), var!(space-xl));
1838 text-align: "center";
1839 cursor: "pointer";
1840 }
1841
1842 pub c_event_drop_zone_active {
1843 border: format!("2px dashed {}", var!(accent));
1844 padding: format!("{} {}", var!(space-4xl), var!(space-xl));
1845 text-align: "center";
1846 cursor: "pointer";
1847 background: var!(accent-muted);
1848 }
1849
1850 pub c_event_drop_icon {
1851 font-size: var!(font-5xl);
1852 display: "block";
1853 padding-bottom: var!(space-md);
1854 }
1855
1856 pub c_event_drop_text {
1857 font-size: var!(font-lg);
1858 font-weight: "500";
1859 color: "inherit";
1860 padding-bottom: var!(space-md);
1861 }
1862
1863 pub c_event_drop_hint {
1864 font-size: var!(font-base);
1865 color: "inherit";
1866 opacity: "1";
1867 margin: "0px";
1868 }
1869
1870 pub c_event_wheel_zone {
1871 min-height: "120px";
1872 padding: format!("{} 0px", var!(space-xl));
1873 border: format!("2px dashed {}", var!(border));
1874 text-align: "center";
1875 overflow: "auto";
1876 color: var!(foreground);
1877 }
1878
1879 pub c_event_clipboard_area {
1880 color: var!(foreground);
1881 }
1882
1883 pub c_event_touch_zone {
1884 min-height: "120px";
1885 padding: format!("{} 0px", var!(space-xl));
1886 border: format!("2px dashed {}", var!(accent));
1887 text-align: "center";
1888 touch-action: "none";
1889 user-select: "none";
1890 color: var!(accent);
1891 }
1892
1893 pub c_event_form_area {
1894 padding: format!("{} 0px", var!(space-lg));
1895 color: var!(foreground);
1896 }
1897
1898 pub c_event_media_area {
1899 padding: format!("{} 0px", var!(space-lg));
1900 color: var!(foreground);
1901 max-width: "100%";
1902 overflow: "hidden";
1903 }
1904
1905 pub c_event_audio {
1906 width: "100%";
1907 max-width: "100%";
1908 }
1909
1910 pub c_event_video_area {
1911 color: var!(foreground);
1912 width: "100%";
1913 overflow: "hidden";
1914 }
1915
1916 pub c_event_video {
1917 width: "100%";
1918 max-width: "100%";
1919 }
1920
1921 pub c_event_image_area {
1922 padding: format!("{} 0px", var!(space-lg));
1923 color: "inherit";
1924 width: "100%";
1925 overflow: "hidden";
1926 display: "flex";
1927 flex-direction: "column";
1928 align-items: "center";
1929 gap: var!(space-md);
1930 }
1931
1932 pub c_event_image {
1933 width: "200px";
1934 max-width: "100%";
1935 object-fit: "contain";
1936 display: "block";
1937 }
1938
1939 pub c_event_url_text {
1940 text-align: "center";
1941 font-size: var!(font-sm);
1942 color: "inherit";
1943 opacity: "1";
1944 font-family: "ui-monospace, monospace";
1945 word-break: "break-all";
1946 width: "100%";
1947 }
1948
1949 pub c_timer_display {
1954 text-align: "center";
1955 padding: var!(space-xl);
1956 margin: format!("{} 0px", var!(gap-component));
1957 color: "inherit";
1958 }
1959
1960 pub c_timer_value {
1961 font-size: var!(font-base);
1962 font-weight: "700";
1963 color: var!(accent);
1964 letter-spacing: "0.04em";
1965 font-family: "ui-monospace, monospace";
1966 }
1967
1968 pub c_timer_controls {
1969 display: "flex";
1970 flex-wrap: "wrap";
1971 gap: var!(gap-element);
1972 }
1973
1974 pub c_timer_done {
1975 text-align: "center";
1976 margin-top: var!(gap-component);
1977 font-size: var!(font-lg);
1978 font-weight: "600";
1979 color: var!(foreground);
1980 }
1981
1982 pub c_modal_overlay {
1987 position: "fixed";
1988 top: "0px";
1989 left: "0px";
1990 width: "100%";
1991 height: "100%";
1992 background: var!(bg-overlay);
1993 contain: "layout style paint";
1994 display: "flex";
1995 align-items: "center";
1996 justify-content: "center";
1997 z-index: "1000";
1998 animation: format!("euv-fade-in {} {}", var!(duration-modal-overlay), var!(ease-out));
1999 @media ((max-width: 767px)) {
2000 align-items: "center";
2001 justify-content: "center";
2002 }
2003 }
2004
2005 pub c_modal_content {
2006 background: var!(background);
2007 padding: "0px";
2008 max-width: "480px";
2009 width: "90%";
2010 animation: format!("euv-scale-in-modal {} {}", var!(duration-modal-content), var!(ease-bounce));
2011 overflow: "hidden";
2012 color: var!(foreground);
2013 box-sizing: "border-box";
2014 @media ((max-width: 767px)) {
2015 max-width: "100%";
2016 width: "calc(100% - 32px)";
2017 max-height: "85vh";
2018 overflow-y: "auto";
2019 }
2020 }
2021
2022 pub c_modal_header {
2023 display: "flex";
2024 justify-content: "space-between";
2025 align-items: "center";
2026 padding: format!("{} {} 0px {}", var!(space-md), var!(space-xl), var!(space-xl));
2027 }
2028
2029 pub c_modal_title {
2030 margin: "0px";
2031 font-size: var!(font-xl);
2032 font-weight: "600";
2033 color: "inherit";
2034 }
2035
2036 pub c_modal_body {
2037 padding: format!("0px {} {} {}", var!(space-xl), var!(space-md), var!(space-xl));
2038 color: "inherit";
2039 }
2040
2041 pub c_modal_actions {
2042 display: "flex";
2043 flex-wrap: "wrap";
2044 gap: var!(space-md);
2045 margin: format!("{} 0px", var!(space-md));
2046 }
2047
2048 pub c_anim_fade_in {
2053 margin-top: var!(gap-component);
2054 animation: format!("euv-fade-in 0.5s {}", var!(ease-out));
2055 font-size: var!(font-base);
2056 color: "inherit";
2057 }
2058
2059 pub c_anim_spin_container {
2060 display: "flex";
2061 justify-content: "center";
2062 align-items: "center";
2063 margin: format!("{} 0px", var!(space-lg));
2064 min-height: "80px";
2065 }
2066
2067 pub c_anim_spin {
2068 font-size: var!(font-5xl);
2069 animation: "euv-spin 1.5s linear infinite";
2070 display: "inline-block";
2071 @media ((max-width: 767px)) {
2072 font-size: var!(font-4xl);
2073 }
2074 }
2075
2076 pub c_anim_spin_stopped {
2077 font-size: var!(font-5xl);
2078 display: "inline-block";
2079 opacity: "1";
2080 @media ((max-width: 767px)) {
2081 font-size: var!(font-4xl);
2082 }
2083 }
2084
2085 pub c_anim_pulse_container {
2086 display: "flex";
2087 justify-content: "center";
2088 align-items: "center";
2089 margin: format!("{} 0px", var!(space-lg));
2090 min-height: "80px";
2091 }
2092
2093 pub c_anim_pulse {
2094 font-size: var!(font-5xl);
2095 animation: "euv-pulse 1.5s ease-in-out infinite";
2096 display: "inline-block";
2097 color: var!(foreground);
2098 @media ((max-width: 767px)) {
2099 font-size: var!(font-4xl);
2100 }
2101 }
2102
2103 pub c_anim_pulse_stopped {
2104 font-size: var!(font-5xl);
2105 display: "inline-block";
2106 opacity: "1";
2107 color: var!(foreground);
2108 @media ((max-width: 767px)) {
2109 font-size: var!(font-4xl);
2110 }
2111 }
2112
2113 pub c_progress_container {
2114 width: "100%";
2115 height: "12px";
2116 margin: format!("{} 0px", var!(space-lg));
2117 overflow: "hidden";
2118 }
2119
2120 pub c_progress_bar_running {
2121 height: "100%";
2122 background: var!(accent);
2123 animation: format!("euv-progress 1.6s {} forwards", var!(ease-in-out));
2124 }
2125
2126 pub c_progress_bar_stopped {
2127 height: "100%";
2128 background: var!(accent);
2129 width: "0%";
2130 }
2131
2132 pub c_anim_scale_box {
2133 margin: format!("{} 0px", var!(gap-component));
2134 padding: var!(space-xl);
2135 background: var!(accent);
2136 cursor: "pointer";
2137 transition: format!("transform {} {}", var!(duration-normal), var!(ease-out));
2138 }
2139
2140 pub c_browser_api_row {
2145 display: "grid";
2146 grid-template-columns: "1fr 1fr";
2147 gap: var!(gap-component);
2148 margin-bottom: var!(gap-component);
2149 @media ((max-width: 767px)) {
2150 grid-template-columns: "1fr";
2151 }
2152 }
2153
2154 pub c_browser_api_actions {
2155 display: "flex";
2156 flex-wrap: "wrap";
2157 gap: var!(gap-element);
2158 margin: format!("{} 0px", var!(gap-component));
2159 }
2160
2161 pub c_browser_result_box {
2162 margin-top: var!(gap-component);
2163 font-size: var!(font-base);
2164 word-break: "break-all";
2165 color: "inherit";
2166 }
2167
2168 pub c_browser_result_label {
2169 font-weight: "600";
2170 color: var!(accent);
2171 }
2172
2173 pub c_browser_result_value {
2174 color: "inherit";
2175 }
2176
2177 pub c_browser_info_grid {
2178 display: "grid";
2179 gap: var!(gap-component);
2180 margin-top: var!(gap-component);
2181 @media ((max-width: 767px)) {
2182 grid-template-columns: "1fr";
2183 }
2184 }
2185
2186 pub c_browser_info_item {
2187 display: "flex";
2188 flex-direction: "column";
2189 gap: var!(space-xs);
2190 color: "inherit";
2191 }
2192
2193 pub c_browser_info_label {
2194 font-size: var!(font-sm);
2195 font-weight: "600";
2196 color: "inherit";
2197 opacity: "1";
2198 text-transform: "uppercase";
2199 letter-spacing: "0.05em";
2200 }
2201
2202 pub c_browser_info_value {
2203 font-size: var!(font-base);
2204 color: "inherit";
2205 word-break: "break-all";
2206 font-family: "ui-monospace, monospace";
2207 }
2208
2209 pub c_vconsole_badge {
2214 position: "absolute";
2215 top: "-6px";
2216 right: "-8px";
2217 min-width: "18px";
2218 height: "18px";
2219 background: var!(background);
2220 color: var!(foreground);
2221 font-size: "10px";
2222 font-weight: "600";
2223 display: "flex";
2224 align-items: "center";
2225 justify-content: "center";
2226 padding: format!("0px {}", var!(space-xs));
2227 border: format!("1px solid {}", var!(accent));
2228 pointer-events: "none";
2229 transition: format!("transform {} {}, opacity {} {}", var!(duration-normal), var!(ease-out), var!(duration-normal), var!(ease-out));
2230 }
2231
2232 pub c_vconsole_overlay {
2233 position: "fixed";
2234 top: "0px";
2235 left: "0px";
2236 right: "0px";
2237 bottom: "0px";
2238 z-index: "10000";
2239 background: var!(bg-overlay);
2240 contain: "layout style paint";
2241 transition: format!("opacity {} {}", var!(duration-overlay), var!(ease-out));
2242 }
2243
2244 pub c_vconsole_overlay_hidden {
2245 opacity: "0";
2246 pointer-events: "none";
2247 }
2248
2249 pub c_vconsole_panel {
2250 position: "fixed";
2251 bottom: "0px";
2252 left: "0px";
2253 right: "0px";
2254 height: format!("calc(76vh - {})", var!(safe-area-inset-bottom));
2255 background: var!(background);
2256 z-index: "10001";
2257 display: "flex";
2258 flex-direction: "column";
2259 contain: "layout style paint";
2260 will-change: "transform";
2261 transition: format!("transform {} {}", var!(duration-overlay), var!(ease-out));
2262 overflow: "hidden";
2263 padding: format!("{} {}", var!(padding-main-top), var!(padding-main-horizontal));
2264 @media ((max-width: 767px)) {
2265 padding: format!("{} {}", var!(space-md), var!(padding-main-horizontal-mobile));
2266 }
2267 }
2268
2269 pub c_vconsole_panel_closed {
2270 transform: "translateY(100%)";
2271 will-change: "auto";
2272 }
2273
2274 pub c_vconsole_fab {
2275 position: "fixed";
2276 bottom: format!("calc(20px + {})", var!(safe-area-inset-bottom));
2277 right: var!(padding-main-horizontal);
2278 z-index: "9999";
2279 @media ((max-width: 767px)) {
2280 bottom: format!("calc(16px + {})", var!(safe-area-inset-bottom));
2281 right: var!(padding-main-horizontal-mobile);
2282 }
2283 }
2284
2285 pub c_vconsole_header {
2286 display: "flex";
2287 justify-content: "space-between";
2288 align-items: "center";
2289 flex-shrink: "0";
2290 }
2291
2292 pub c_vconsole_title {
2293 color: var!(foreground);
2294 font-size: var!(font-md);
2295 font-weight: "600";
2296 margin: "0px";
2297 letter-spacing: "0.03em";
2298 display: "flex";
2299 align-items: "center";
2300 gap: var!(space-sm);
2301 }
2302
2303 pub c_vconsole_title_dot {
2304 width: "8px";
2305 height: "8px";
2306 background: var!(accent);
2307 display: "inline-block";
2308 animation: "euv-pulse 2s ease-in-out infinite";
2309 }
2310
2311 pub c_vconsole_header_actions {
2312 display: "flex";
2313 gap: var!(space-sm);
2314 align-items: "center";
2315 }
2316
2317 pub c_vconsole_clear_button {
2318 display: "inline-flex";
2319 justify-content: "center";
2320 align-items: "center";
2321 color: var!(foreground);
2322 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2323 font-size: var!(font-xs);
2324 font-weight: "600";
2325 cursor: "pointer";
2326 text-align: "center";
2327 border: format!("1.5px solid {}", var!(border));
2328 margin-left: "auto";
2329 :focus-visible {
2330 outline: "none";
2331 }
2332 }
2333
2334 pub c_vconsole_close_button {
2335 display: "inline-flex";
2336 justify-content: "center";
2337 align-items: "center";
2338 color: var!(foreground);
2339 padding: format!("{} {}", var!(space-xs), var!(space-md));
2340 cursor: "pointer";
2341 font-size: var!(font-sm);
2342 font-weight: "400";
2343 text-align: "center";
2344 white-space: "nowrap";
2345 user-select: "none";
2346 -webkit-user-select: "none";
2347 vertical-align: "middle";
2348 outline: "none";
2349 transition: format!("all {} {}", var!(duration-fast), var!(ease-out));
2350 :hover {
2351 border-color: var!(foreground);
2352 color: var!(foreground);
2353 background: var!(background);
2354 }
2355 :focus-visible {
2356 outline: "none";
2357 }
2358 :active {
2359 background: "transparent";
2360 color: var!(foreground);
2361 border-color: var!(border);
2362 }
2363 }
2364
2365 pub c_vconsole_body {
2366 flex: "1";
2367 overflow-y: "auto";
2368 contain: "content";
2369 padding-bottom: var!(space-md);
2370 font-family: "ui-monospace, monospace";
2371 font-size: var!(font-xs);
2372 }
2373
2374 pub c_vconsole_log_item {
2375 display: "flex";
2376 align-items: "center";
2377 padding: format!("{} 0px", var!(space-sm));
2378 border-bottom: format!("1px dashed {}", var!(border));
2379 color: var!(foreground);
2380 font-size: var!(font-xs);
2381 word-break: "break-all";
2382 }
2383
2384 pub c_vconsole_empty {
2385 color: var!(muted-foreground);
2386 font-size: var!(font-xs);
2387 text-align: "center";
2388 padding: format!("{} 0px", var!(space-4xl));
2389 overflow: "hidden";
2390 }
2391
2392 pub c_vconsole_empty_hidden {
2393 height: "0";
2394 overflow: "hidden";
2395 padding: "0";
2396 }
2397
2398 pub c_vconsole_log_list {
2399 overflow: "hidden";
2400 }
2401
2402 pub c_vconsole_log_list_hidden {
2403 height: "0";
2404 overflow: "hidden";
2405 }
2406
2407 pub c_vconsole_count {
2408 color: var!(muted-foreground);
2409 font-size: var!(font-sm);
2410 font-weight: "400";
2411 }
2412
2413 pub c_vconsole_filter_bar {
2414 display: "flex";
2415 gap: var!(space-sm);
2416 padding: format!("{} 0px", var!(space-sm));
2417 border-bottom: format!("1px dashed {}", var!(border));
2418 flex-shrink: "0";
2419 align-items: "center";
2420 }
2421
2422 pub c_vconsole_filter_badge {
2423 display: "inline-flex";
2424 justify-content: "center";
2425 align-items: "center";
2426 color: var!(text-on-accent);
2427 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2428 border: format!("1px solid {}", var!(accent));
2429 font-size: var!(font-xs);
2430 font-weight: "600";
2431 cursor: "pointer";
2432 text-align: "center";
2433 background: var!(accent);
2434 :focus-visible {
2435 outline: "none";
2436 }
2437 }
2438
2439 pub c_vconsole_filter_badge_outline {
2440 display: "inline-flex";
2441 justify-content: "center";
2442 align-items: "center";
2443 color: var!(foreground);
2444 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2445 font-size: var!(font-xs);
2446 font-weight: "600";
2447 cursor: "pointer";
2448 text-align: "center";
2449 border: format!("1.5px solid {}", var!(border));
2450 }
2451
2452 pub c_vconsole_level_badge {
2453 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2454 font-size: var!(font-xs);
2455 margin-right: var!(space-sm);
2456 letter-spacing: "0.05em";
2457 color: var!(foreground);
2458 border: "1px solid currentColor";
2459 wrap: "nowrap";
2460 flex-shrink: "0";
2461 }
2462
2463 pub c_mobile_header {
2468 display: "flex";
2469 align-items: "center";
2470 justify-content: "space-between";
2471 padding: format!("var(--euv-mobile-safe-top, 0px) 0px 0px {}", var!(space-lg));
2472 height: format!("calc({} + var(--euv-mobile-safe-top, 0px))", var!(mobile-header-height));
2473 flex-shrink: "0";
2474 position: "sticky";
2475 top: "0px";
2476 z-index: "100";
2477 contain: "content";
2478 background: var!(background);
2479 border-bottom: format!("1px solid {}", var!(border));
2480 }
2481
2482 pub c_mobile_header_left {
2483 display: "flex";
2484 align-items: "center";
2485 gap: format!("{}", var!(space-md));
2486 }
2487
2488 pub c_mobile_header_logo {
2489 display: "flex";
2490 align-items: "center";
2491 gap: format!("{}", var!(space-sm));
2492 text-decoration: "none";
2493 color: var!(foreground);
2494 }
2495
2496 pub c_mobile_menu_button {
2497 width: "40px";
2498 height: "40px";
2499 border: "none";
2500 cursor: "pointer";
2501 font-size: "22px";
2502 font-weight: "700";
2503 display: "flex";
2504 align-items: "center";
2505 justify-content: "center";
2506 color: var!(foreground);
2507 padding: "0px";
2508 :active {
2509 background: "transparent";
2510 color: var!(foreground);
2511 }
2512 }
2513
2514 pub c_mobile_theme_button {
2515 width: "40px";
2516 height: "40px";
2517 border: "none";
2518 cursor: "pointer";
2519 display: "flex";
2520 align-items: "center";
2521 justify-content: "center";
2522 padding: "0px";
2523 :active {
2524 background: "transparent";
2525 }
2526 }
2527
2528 pub c_mobile_menu_button_active {
2529 width: "40px";
2530 height: "40px";
2531 border: "none";
2532 cursor: "pointer";
2533 font-size: "22px";
2534 font-weight: "700";
2535 display: "flex";
2536 align-items: "center";
2537 justify-content: "center";
2538 color: var!(accent);
2539 padding: "0px";
2540 :active {
2541 background: var!(background);
2542 color: var!(accent);
2543 }
2544 }
2545
2546 pub c_mobile_drawer_close_button {
2547 width: "32px";
2548 height: "32px";
2549 border: "none";
2550 cursor: "pointer";
2551 font-size: "18px";
2552 font-weight: "500";
2553 display: "flex";
2554 align-items: "center";
2555 justify-content: "center";
2556 color: var!(muted-foreground);
2557 padding: "0px";
2558 transition: format!("color {} {}", var!(duration-fast), var!(ease-out));
2559 :hover {
2560 color: var!(foreground);
2561 }
2562 :active {
2563 color: var!(muted-foreground);
2564 }
2565 }
2566
2567 pub c_mobile_overlay {
2568 position: "fixed";
2569 top: "0px";
2570 left: "0px";
2571 width: "100%";
2572 height: "100%";
2573 background: var!(bg-overlay);
2574 z-index: "200";
2575 contain: "layout style paint";
2576 transition: format!("opacity {} {}", var!(duration-overlay), var!(ease-out));
2577 }
2578
2579 pub c_mobile_overlay_hidden {
2580 opacity: "0";
2581 pointer-events: "none";
2582 }
2583
2584 pub c_mobile_nav_drawer {
2585 position: "fixed";
2586 top: "0px";
2587 left: "0px";
2588 width: "240px";
2589 max-width: "100%";
2590 height: "100%";
2591 background: var!(background);
2592 z-index: "201";
2593 display: "flex";
2594 flex-direction: "column";
2595 padding-top: "var(--euv-mobile-safe-top, 0px)";
2596 padding-bottom: var!(padding-shell-bottom);
2597 contain: "layout style paint";
2598 will-change: "transform";
2599 transition: format!("transform {} {}", var!(duration-overlay), var!(ease-out));
2600 overflow: "hidden";
2601 }
2602
2603 pub c_mobile_nav_drawer_closed {
2604 transform: "translateX(-100%)";
2605 }
2606
2607 pub c_mobile_nav_drawer_header {
2608 display: "flex";
2609 align-items: "center";
2610 justify-content: "space-between";
2611 padding: format!("0px {}", var!(space-lg));
2612 height: var!(mobile-header-height);
2613 flex-shrink: "0";
2614 position: "relative";
2615 ::after {
2616 content: "''";
2617 position: "absolute";
2618 bottom: "0px";
2619 left: var!(space-lg);
2620 right: var!(space-lg);
2621 height: "1px";
2622 background: format!("linear-gradient(90deg, transparent, {}, transparent)", var!(border));
2623 }
2624 }
2625
2626 pub c_mobile_main {
2627 c_app_main();
2628 ::-webkit-scrollbar {
2629 width: "0px";
2630 }
2631 }
2632
2633 pub c_keep_alive_tab_bar {
2638 display: "flex";
2639 border-bottom: format!("1px dashed {}", var!(border));
2640 margin-bottom: var!(gap-component);
2641 gap: var!(gap-element);
2642 }
2643
2644 pub c_keep_alive_tab_panel {
2645 padding: format!("{} 0px", var!(gap-element));
2646 }
2647
2648 pub c_keep_alive_panel_title {
2649 margin-top: "0px";
2650 color: var!(accent);
2651 font-size: var!(font-md);
2652 margin-bottom: var!(gap-element);
2653 }
2654
2655 pub c_keep_alive_demo_text {
2656 color: "inherit";
2657 font-size: var!(font-base);
2658 margin-bottom: var!(gap-component);
2659 }
2660
2661 pub c_keep_alive_counter_display {
2662 display: "flex";
2663 justify-content: "center";
2664 align-items: "center";
2665 margin: format!("{} 0px", var!(space-xl));
2666 }
2667
2668 pub c_keep_alive_counter_value {
2669 font-size: var!(font-base);
2670 font-weight: "700";
2671 font-variant-numeric: "tabular-nums";
2672 color: var!(accent);
2673 text-align: "center";
2674 }
2675
2676 pub c_keep_alive_counter_controls {
2677 display: "flex";
2678 flex-wrap: "wrap";
2679 gap: format!("{}", var!(space-md));
2680 }
2681
2682 pub c_keep_alive_form_group {
2683 margin-bottom: var!(gap-component);
2684 }
2685
2686 pub c_keep_alive_form_preview {
2687 margin-top: var!(gap-component);
2688 background: var!(accent-muted);
2689 }
2690
2691 pub c_keep_alive_preview_label {
2692 font-size: var!(font-base);
2693 font-weight: "600";
2694 color: var!(accent);
2695 margin: format!("0px 0px {} 0px", var!(space-xs));
2696 }
2697
2698 pub c_file_upload_input_hidden {
2703 position: "absolute";
2704 width: "1px";
2705 height: "1px";
2706 padding: "0px";
2707 margin: "-1px";
2708 overflow: "hidden";
2709 clip: "rect(0, 0, 0, 0)";
2710 white-space: "nowrap";
2711 border: "0px";
2712 }
2713
2714 pub c_file_upload_options {
2715 margin: format!("{} 0px", var!(gap-component));
2716 }
2717
2718 pub c_file_upload_item {
2719 display: "flex";
2720 align-items: "center";
2721 gap: format!("{}", var!(space-md));
2722 margin: format!("{} 0px", var!(space-sm));
2723 font-size: var!(font-base);
2724 color: "inherit";
2725 }
2726
2727 pub c_file_upload_item_index {
2728 font-size: var!(font-sm);
2729 font-weight: "600";
2730 color: var!(accent);
2731 min-width: "24px";
2732 }
2733
2734 pub c_file_upload_item_name {
2735 color: "inherit";
2736 word-break: "break-all";
2737 }
2738
2739 pub c_binding_child_box {
2744 display: "flex";
2745 flex-direction: "column";
2746 gap: var!(gap-component);
2747 margin-top: var!(gap-component);
2748 }
2749
2750 pub c_binding_child_label {
2751 font-size: var!(font-base);
2752 font-weight: "600";
2753 color: var!(accent);
2754 text-transform: "uppercase";
2755 letter-spacing: "0.05em";
2756 }
2757
2758 pub c_binding_parent_box {
2759 display: "flex";
2760 flex-direction: "column";
2761 gap: var!(gap-component);
2762 margin-top: var!(gap-component);
2763 }
2764
2765 pub c_binding_section_title {
2766 margin-top: var!(gap-component);
2767 margin-bottom: var!(gap-element);
2768 color: var!(accent);
2769 font-size: var!(font-md);
2770 font-weight: "600";
2771 }
2772
2773 pub c_binding_temp_converter {
2774 display: "flex";
2775 align-items: "flex-end";
2776 gap: var!(gap-component);
2777 flex-wrap: "wrap";
2778 margin-top: var!(gap-component);
2779 }
2780
2781 pub c_binding_temp_field {
2782 flex: "1";
2783 min-width: "120px";
2784 }
2785
2786 pub c_binding_temp_arrow {
2787 font-size: "20px";
2788 font-weight: "700";
2789 color: var!(accent);
2790 padding-bottom: "10px";
2791 }
2792
2793 pub c_binding_color_mixer {
2794 margin-top: var!(gap-component);
2795 }
2796
2797 pub c_binding_color_preview {
2798 width: "100%";
2799 height: "80px";
2800 display: "flex";
2801 align-items: "center";
2802 justify-content: "center";
2803 margin-bottom: var!(gap-component);
2804 }
2805
2806 pub c_binding_color_hex {
2807 font-family: "ui-monospace, monospace";
2808 font-size: var!(font-xl);
2809 font-weight: "700";
2810 color: var!(text-on-accent);
2811 letter-spacing: "0.02em";
2812 }
2813
2814 pub c_binding_slider_row {
2815 display: "flex";
2816 align-items: "center";
2817 gap: format!("{}", var!(space-md));
2818 margin-bottom: var!(space-sm);
2819 }
2820
2821 pub c_binding_slider_label {
2822 font-size: var!(font-base);
2823 font-weight: "700";
2824 min-width: var!(font-sm);
2825 }
2826
2827 pub c_binding_slider {
2828 flex: "1";
2829 height: "24px";
2830 padding: "0px";
2831 cursor: "pointer";
2832 -webkit-appearance: "none";
2833 appearance: "none";
2834 border: "none";
2835 outline: "none";
2836 ::-webkit-slider-runnable-track {
2837 height: "6px";
2838 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
2839 border-radius: "3px";
2840 border: "none";
2841 }
2842 ::-webkit-slider-thumb {
2843 width: "20px";
2844 height: "20px";
2845 background: var!(background);
2846 border: format!("2px solid {}", var!(accent));
2847 border-radius: "50%";
2848 cursor: "pointer";
2849 -webkit-appearance: "none";
2850 margin-top: "-7px";
2851 }
2852 : active::-webkit-slider-thumb {
2853 transform: "scale(0.92)";
2854 }
2855 ::-moz-range-track {
2856 height: "6px";
2857 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
2858 border-radius: "3px";
2859 border: "none";
2860 }
2861 ::-moz-range-thumb {
2862 width: "20px";
2863 height: "20px";
2864 background: var!(background);
2865 border: format!("2px solid {}", var!(accent));
2866 border-radius: "50%";
2867 cursor: "pointer";
2868 }
2869 : active::-moz-range-thumb {
2870 transform: "scale(0.92)";
2871 }
2872 }
2873
2874 pub c_binding_slider_value {
2875 font-size: var!(font-base);
2876 font-weight: "500";
2877 color: "inherit";
2878 min-width: "32px";
2879 text-align: "right";
2880 font-family: "ui-monospace, monospace";
2881 }
2882
2883 pub c_binding_typed_prop_value {
2884 font-family: "ui-monospace, monospace";
2885 font-size: var!(font-base);
2886 font-weight: "600";
2887 color: var!(accent);
2888 padding: format!("1px {}", var!(space-sm));
2889 }
2890
2891 pub c_binding_typed_prop_group {
2892 display: "flex";
2893 align-items: "center";
2894 gap: var!(space-sm);
2895 }
2896
2897 pub c_binding_typed_warning {
2898 font-size: var!(font-base);
2899 font-weight: "500";
2900 color: var!(foreground);
2901 margin-bottom: "0px";
2902 }
2903
2904 pub c_binding_form_label {
2905 display: "block";
2906 color: "inherit";
2907 font-weight: "500";
2908 font-size: var!(font-base);
2909 }
2910
2911 pub c_binding_demo_text {
2912 color: "inherit";
2913 margin: "0px"
2914 }
2915
2916 pub c_binding_compact_button {
2917 display: "inline-flex";
2918 justify-content: "center";
2919 align-items: "center";
2920 height: "42px";
2921 padding: format!("0px {}", var!(space-md));
2922 background: var!(accent);
2923 color: var!(text-on-accent);
2924 border: format!("1px solid {}", var!(accent));
2925 cursor: "pointer";
2926 font-size: var!(font-sm);
2927 font-weight: "600";
2928 outline: "none";
2929 white-space: "nowrap";
2930 user-select: "none";
2931 -webkit-user-select: "none";
2932 box-sizing: "border-box";
2933 :hover {
2934 background: var!(accent);
2935 }
2936 :focus-visible {
2937 outline: "none";
2938 }
2939 :active {
2940 background: var!(accent);
2941 color: var!(text-on-accent);
2942 border-color: var!(accent);
2943 }
2944 }
2945
2946 pub c_attrs_dynamic_demo(prop_key: &str, prop_value: &str) {
2951 {
2952 prop_key
2953 }
2954 : prop_value;
2955 }
2962
2963 pub c_dynamic_component_tab_bar {
2968 display: "flex";
2969 flex-wrap: "wrap";
2970 gap: var!(gap-element);
2971 margin-bottom: var!(gap-component);
2972 }
2973
2974 pub c_dynamic_component_panel {
2975 display: "block";
2976 min-height: var!(min-height-sm);
2977 margin-top: var!(gap-component);
2978 }
2979
2980 pub c_virtual_list_status {
2985 display: "flex";
2986 gap: var!(gap-component);
2987 padding: format!("{} 0px", var!(gap-component));
2988 flex-wrap: "nowrap";
2989 overflow: "hidden";
2990 text-overflow: "ellipsis";
2991 white-space: "nowrap";
2992 @media ((max-width: 767px)) {
2993 gap: var!(gap-component-mobile);
2994 }
2995 }
2996
2997 pub c_virtual_list_status_item {
2998 font-size: var!(font-base);
2999 color: "inherit";
3000 overflow: "hidden";
3001 text-overflow: "ellipsis";
3002 white-space: "nowrap";
3003 }
3004
3005 pub c_virtual_list_status_value {
3006 font-weight: "700";
3007 color: var!(accent);
3008 font-family: "ui-monospace, monospace";
3009 }
3010
3011 pub c_virtual_list_container {
3012 flex: "1";
3013 height: "666px";
3014 max-height: "666px";
3015 overflow-y: "auto";
3016 }
3017
3018 pub c_virtual_list_card {
3019 flex: "1";
3020 padding: var!(space-xl);
3021 color: var!(foreground);
3022 display: "flex";
3023 flex-direction: "column";
3024 @media ((max-width: 767px)) {
3025 padding: var!(space-lg);
3026 }
3027 }
3028
3029 pub c_virtual_list_row {
3030 display: "flex";
3031 align-items: "center";
3032 gap: var!(space-lg);
3033 height: "100%";
3034 box-sizing: "border-box";
3035 }
3036
3037 pub c_virtual_list_row_index {
3038 min-width: "36px";
3039 font-size: var!(font-sm);
3040 font-weight: "600";
3041 color: var!(accent);
3042 font-family: "ui-monospace, monospace";
3043 flex-shrink: "0";
3044 display: "flex";
3045 align-items: "center";
3046 }
3047
3048 pub c_virtual_list_row_label {
3049 font-size: var!(font-base);
3050 font-weight: "500";
3051 color: "inherit";
3052 min-width: "120px";
3053 flex-shrink: "0";
3054 overflow: "hidden";
3055 text-overflow: "ellipsis";
3056 white-space: "nowrap";
3057 display: "flex";
3058 align-items: "center";
3059 }
3060
3061 pub c_virtual_list_row_description {
3062 font-size: var!(font-base);
3063 color: "inherit";
3064 opacity: "1";
3065 overflow: "hidden";
3066 text-overflow: "ellipsis";
3067 white-space: "nowrap";
3068 flex: "1";
3069 display: "flex";
3070 align-items: "center";
3071 }
3072
3073 pub c_element_stack {
3078 display: "flex";
3079 flex-direction: "column";
3080 gap: var!(gap-element);
3081 }
3082
3083 pub c_switcher {
3084 display: "flex";
3085 gap: var!(gap-component);
3086 flex-wrap: "wrap";
3087 @media ((max-width: 767px)) {
3088 flex-direction: "column";
3089 gap: var!(gap-component-mobile);
3090 }
3091 }
3092
3093 pub c_switcher_col {
3094 flex: "1";
3095 min-width: "200px";
3096 @media ((max-width: 767px)) {
3097 min-width: "100%";
3098 }
3099 }
3100
3101 pub c_hint {
3106 color: "inherit";
3107 opacity: "1";
3108 font-size: var!(font-base);
3109 margin-bottom: var!(gap-component);
3110 }
3111
3112 pub c_net_messages_empty {
3117 color: "inherit";
3118 opacity: "1";
3119 padding: var!(space-xl);
3120 text-align: "center";
3121 font-size: var!(font-base);
3122 }
3123
3124 pub c_net_messages_list {
3125 display: "flex";
3126 flex-direction: "column";
3127 gap: var!(space-xs);
3128 }
3129
3130 pub c_net_message_item {
3131 display: "flex";
3132 align-items: "baseline";
3133 gap: var!(gap-element);
3134 justify-content: "space-between";
3135 }
3136
3137 pub c_net_message_index {
3138 color: var!(accent);
3139 font-size: var!(font-sm);
3140 font-weight: "600";
3141 white-space: "nowrap";
3142 flex-shrink: "0";
3143 }
3144
3145 pub c_net_message_data {
3146 color: "inherit";
3147 font-size: var!(font-base);
3148 word-break: "break-all";
3149 overflow-wrap: "break-word";
3150 flex: "1";
3151 min-width: "0";
3152 }
3153
3154 pub c_ws_message_input {
3159 width: "100%";
3160 flex: "1";
3161 height: "42px";
3162 padding: format!("0px {}", var!(space-lg));
3163 color: var!(foreground);
3164 border: format!("1px solid {}", var!(border));
3165 font-size: var!(font-base);
3166 line-height: "normal";
3167 box-sizing: "border-box";
3168 outline: "none";
3169 appearance: "none";
3170 -webkit-appearance: "none";
3171 -moz-appearance: "none";
3172 vertical-align: "middle";
3173 :hover {
3174 border-color: var!(accent);
3175 background: var!(accent-muted);
3176 }
3177 :focus {
3178 outline: "none";
3179 border-color: var!(accent);
3180 background: var!(accent-muted);
3181 }
3182 }
3183
3184 pub c_ws_message_time {
3185 color: var!(foreground);
3186 font-size: var!(font-sm);
3187 white-space: "nowrap";
3188 flex-shrink: "0";
3189 margin-left: "auto";
3190 }
3191
3192 pub c_home {
3201 position: "relative";
3202 text-align: "center";
3203 margin-bottom: var!(space-xl);
3204 flex: "1";
3205 display: "flex";
3206 flex-direction: "column";
3207 justify-content: "center";
3208 @media ((max-width: 767px)) {
3209 margin-bottom: var!(space-lg);
3210 flex: "0 0 auto";
3211 justify-content: "flex-start";
3212 }
3213 }
3214
3215 pub c_home_content {
3216 position: "relative";
3217 z-index: "1";
3218 }
3219
3220 pub c_home_badge_row {
3221 display: "inline-flex";
3222 align-items: "center";
3223 gap: var!(space-sm);
3224 margin-bottom: var!(space-md);
3225 }
3226
3227 pub c_home_badge {
3228 display: "inline-flex";
3229 justify-content: "center";
3230 align-items: "center";
3231 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3232 color: var!(accent);
3233 font-size: var!(font-xs);
3234 font-weight: "600";
3235 letter-spacing: "0.05em";
3236 border: format!("1px solid {}", var!(accent));
3237 }
3238
3239 pub c_home_title {
3240 font-size: var!(font-5xl);
3241 font-weight: "800";
3242 letter-spacing: "-0.03em";
3243 margin: "0px";
3244 color: var!(foreground);
3245 margin-bottom: var!(space-xs);
3246 @media ((max-width: 767px)) {
3247 font-size: var!(font-4xl);
3248 }
3249 }
3250
3251 pub c_home_subtitle {
3252 font-size: var!(font-lg);
3253 color: var!(foreground);
3254 margin: "0px auto";
3255 max-width: "520px";
3256 margin-bottom: var!(space-lg);
3257 @media ((max-width: 767px)) {
3258 font-size: var!(font-base);
3259 }
3260 }
3261
3262 pub c_home_actions {
3263 display: "flex";
3264 gap: var!(space-md);
3265 justify-content: "center";
3266 flex-wrap: "wrap";
3267 }
3268
3269 pub c_home_btn_primary {
3270 display: "inline-flex";
3271 justify-content: "center";
3272 align-items: "center";
3273 gap: var!(space-sm);
3274 padding: format!("{} {}", var!(space-sm), var!(space-2xl));
3275 background: var!(accent);
3276 color: var!(text-on-accent);
3277 font-size: var!(font-base);
3278 font-weight: "600";
3279 text-decoration: "none";
3280 border: "1.5px solid transparent";
3281 cursor: "pointer";
3282 letter-spacing: "0.01em";
3283 vertical-align: "middle";
3284 min-height: var!(min-height-sm);
3285 :focus-visible {
3286 outline: "none";
3287 }
3288 :active {
3289 background: var!(accent);
3290 color: var!(text-on-accent);
3291 border-color: "1.5px solid transparent";
3292 }
3293 }
3294
3295 pub c_home_btn_secondary {
3296 display: "inline-flex";
3297 justify-content: "center";
3298 align-items: "center";
3299 gap: var!(space-sm);
3300 padding: format!("{} {}", var!(space-sm), var!(space-2xl));
3301 color: var!(accent);
3302 font-size: var!(font-base);
3303 font-weight: "600";
3304 text-decoration: "none";
3305 border: format!("1.5px solid {}", var!(accent));
3306 cursor: "pointer";
3307 letter-spacing: "0.01em";
3308 vertical-align: "middle";
3309 min-height: var!(min-height-sm);
3310 :focus-visible {
3311 outline: "none";
3312 }
3313 :active {
3314 background: "transparent";
3315 color: var!(accent);
3316 border-color: var!(accent);
3317 }
3318 }
3319
3320 pub c_home_stats {
3325 display: "grid";
3326 grid-template-columns: "repeat(4, 1fr)";
3327 gap: var!(space-md);
3328 margin-bottom: var!(space-xl);
3329 @media ((max-width: 767px)) {
3330 grid-template-columns: "repeat(2, 1fr)";
3331 gap: var!(space-sm);
3332 }
3333 }
3334
3335 pub c_home_stat_card {
3336 display: "flex";
3337 flex-direction: "column";
3338 align-items: "center";
3339 justify-content: "center";
3340 gap: var!(space-xs);
3341 }
3342
3343 pub c_home_stat_icon {
3344 font-size: var!(font-2xl);
3345 }
3346
3347 pub c_home_stat_value {
3348 font-size: var!(font-xl);
3349 font-weight: "800";
3350 color: var!(foreground);
3351 letter-spacing: "-0.01em";
3352 }
3353
3354 pub c_home_stat_label {
3355 font-size: var!(font-sm);
3356 color: var!(muted-foreground);
3357 font-weight: "500";
3358 }
3359
3360 pub c_home_section_title {
3365 font-size: var!(font-2xl);
3366 font-weight: "700";
3367 color: var!(foreground);
3368 margin: "0px";
3369 margin: format!("{} 0px", var!(gap-component));
3370 letter-spacing: "-0.02em";
3371 }
3372
3373 pub c_home_section_desc {
3374 font-size: var!(font-base);
3375 color: var!(foreground);
3376 margin: "0px";
3377 margin-bottom: var!(space-2xl);
3378 }
3379
3380 pub c_home_feature_grid {
3381 display: "grid";
3382 grid-template-columns: "repeat(2, 1fr)";
3383 gap: var!(space-md);
3384 @media ((max-width: 767px)) {
3385 grid-template-columns: "1fr";
3386 }
3387 }
3388
3389 pub c_feature_card {
3390 display: "flex";
3391 flex-direction: "column";
3392 gap: var!(space-sm);
3393 padding: "0px";
3394 overflow: "hidden";
3395 }
3396
3397 pub c_feature_header {
3398 display: "flex";
3399 align-items: "center";
3400 gap: var!(space-sm);
3401 }
3402
3403 pub c_feature_icon {
3404 font-size: var!(font-2xl);
3405 display: "flex";
3406 align-items: "center";
3407 justify-content: "center";
3408 line-height: "1";
3409 flex-shrink: "0";
3410 }
3411
3412 pub c_feature_name {
3413 font-size: var!(font-lg);
3414 font-weight: "600";
3415 color: var!(foreground);
3416 margin: "0px";
3417 overflow: "hidden";
3418 text-overflow: "ellipsis";
3419 white-space: "nowrap";
3420 }
3421
3422 pub c_feature_desc {
3423 font-size: var!(font-sm);
3424 color: var!(foreground);
3425 margin: "0px";
3426 }
3427
3428 pub c_debug {
3439 display: "flex";
3440 flex-direction: "row";
3441 align-items: "baseline";
3442 gap: var!(space-sm);
3443 padding: var!(space-xs);
3444 border: format!("1px dashed {}", var!(accent-muted));
3445 border-radius: var!(radius-sm);
3446 background: var!(surface-muted);
3447 font-family: "ui-monospace, SFMono-Regular, monospace";
3448 font-size: var!(font-sm);
3449 color: var!(foreground);
3450 margin: format!("{} 0px", var!(space-xs));
3451 }
3452
3453 pub c_debug_label {
3454 font-weight: "600";
3455 color: var!(accent);
3456 flex-shrink: "0";
3457 }
3458
3459 pub c_debug_value {
3460 font-family: "ui-monospace, SFMono-Regular, monospace";
3461 color: var!(foreground);
3462 margin: "0px";
3463 }
3464
3465 pub c_euv_navbar {
3470 position: "fixed";
3471 top: "0px";
3472 left: "0px";
3473 right: "0px";
3474 height: "56px";
3475 display: "flex";
3476 align-items: "center";
3477 gap: var!(gap-element);
3478 padding: format!("0px {}", var!(padding-main-horizontal));
3479 border-bottom: format!("1px solid {}", var!(border));
3480 background: var!(background);
3481 z-index: "100";
3482 @media ((max-width: 767px)) {
3483 padding: format!("0px {}", var!(padding-main-horizontal-mobile));
3484 }
3485 }
3486 pub c_euv_navbar_brand {
3487 display: "flex";
3488 align-items: "center";
3489 gap: var!(gap-element);
3490 font-size: var!(font-lg);
3491 font-weight: "700";
3492 letter-spacing: "-0.02em";
3493 color: var!(foreground);
3494 cursor: "pointer";
3495 flex-shrink: "0";
3496 }
3497 pub c_euv_navbar_logo {
3498 width: "32px";
3499 height: "32px";
3500 display: "flex";
3501 align-items: "center";
3502 justify-content: "center";
3503 background: var!(accent);
3504 color: var!(text-on-accent);
3505 font-size: var!(font-lg);
3506 flex-shrink: "0";
3507 }
3508 pub c_euv_navbar_links {
3509 display: "flex";
3510 align-items: "center";
3511 gap: var!(gap-section);
3512 margin-left: "auto";
3513 @media ((max-width: 767px)) {
3514 display: "none";
3515 }
3516 }
3517 pub c_euv_navbar_link {
3518 font-size: var!(font-sm);
3519 font-weight: "500";
3520 color: var!(foreground);
3521 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3522 border-bottom: "2px solid transparent";
3523 cursor: "pointer";
3524 hover {
3525 color: var!(accent);
3526 }
3527 }
3528 pub c_euv_navbar_link_active {
3529 font-size: var!(font-sm);
3530 font-weight: "600";
3531 color: var!(accent);
3532 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3533 border-bottom: format!("2px solid {}", var!(accent));
3534 cursor: "pointer";
3535 }
3536 pub c_euv_navbar_actions {
3537 display: "flex";
3538 align-items: "center";
3539 gap: var!(gap-element);
3540 margin-left: var!(gap-section);
3541 @media ((max-width: 767px)) {
3542 margin-left: "auto";
3543 }
3544 }
3545 pub c_euv_navbar_icon_button {
3546 width: "36px";
3547 height: "36px";
3548 display: "flex";
3549 align-items: "center";
3550 justify-content: "center";
3551 border: format!("1px dashed {}", var!(border));
3552 cursor: "pointer";
3553 font-size: var!(font-base);
3554 hover {
3555 background: var!(accent-muted);
3556 }
3557 }
3558 pub c_euv_navbar_menu_button {
3559 display: "none";
3560 width: "40px";
3561 height: "40px";
3562 align-items: "center";
3563 justify-content: "center";
3564 font-size: var!(font-xl);
3565 cursor: "pointer";
3566 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3567 @media ((max-width: 767px)) {
3568 display: "flex";
3569 }
3570 }
3571 pub c_euv_navbar_menu_button_active {
3572 display: "none";
3573 width: "40px";
3574 height: "40px";
3575 align-items: "center";
3576 justify-content: "center";
3577 font-size: var!(font-xl);
3578 cursor: "pointer";
3579 background: var!(accent-muted);
3580 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3581 @media ((max-width: 767px)) {
3582 display: "flex";
3583 }
3584 }
3585
3586 pub c_euv_dropdown {
3591 position: "relative";
3592 }
3593 pub c_euv_dropdown_menu {
3594 position: "absolute";
3595 top: "44px";
3596 right: "0px";
3597 width: "100%";
3609 background: var!(background);
3610 border: format!("1px solid {}", var!(border));
3611 box-shadow: var!(shadow-accent-lg);
3612 flex-direction: "column";
3613 z-index: "101";
3614 }
3615 pub c_euv_dropdown_menu_open {
3616 display: "flex";
3617 }
3618 pub c_euv_dropdown_menu_closed {
3619 display: "none";
3620 }
3621 pub c_euv_dropdown_item {
3622 padding: format!("{} {}", var!(space-sm), var!(space-lg));
3623 font-size: var!(font-sm);
3624 text-align: "left";
3625 cursor: "pointer";
3626 hover {
3627 background: var!(accent-muted);
3628 }
3629 }
3630
3631 pub c_euv_sidebar_group {
3636 margin-bottom: var!(space-xs);
3637 }
3638 pub c_euv_sidebar_group_title {
3639 display: "flex";
3640 align-items: "center";
3641 justify-content: "space-between";
3642 width: "100%";
3643 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3644 font-size: var!(font-sm);
3645 font-weight: "600";
3646 cursor: "pointer";
3647 text-align: "left";
3648 hover {
3649 background: var!(accent-muted);
3650 }
3651 }
3652 pub c_euv_sidebar_group_arrow {
3653 font-size: var!(font-xs);
3654 color: var!(muted-foreground);
3655 transition: format!("transform {} {}", var!(duration-fast), var!(ease-out));
3656 }
3657 pub c_euv_sidebar_group_arrow_open {
3658 transform: "rotate(90deg)";
3659 }
3660 pub c_euv_sidebar_children {
3661 display: "flex";
3662 flex-direction: "column";
3663 padding-left: var!(space-md);
3664 border-left: format!("1px dashed {}", var!(border));
3665 margin-left: var!(space-sm);
3666 animation: format!("euv-fade-in {} {}", var!(duration-normal), var!(ease-out));
3667 }
3668 pub c_euv_sidebar_link {
3669 display: "block";
3670 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3671 font-size: var!(font-sm);
3672 color: var!(foreground);
3673 cursor: "pointer";
3674 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3675 hover {
3676 background: var!(accent-muted);
3677 color: var!(accent);
3678 box-shadow: format!("inset 4px 0px 0px {}", var!(accent));
3679 }
3680 }
3681 pub c_euv_sidebar_link_active {
3682 display: "block";
3683 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3684 font-size: var!(font-sm);
3685 background: var!(accent);
3686 color: var!(text-on-accent);
3687 font-weight: "600";
3688 cursor: "pointer";
3689 }
3690
3691 pub c_euv_toc {
3696 position: "sticky";
3697 top: "76px";
3698 display: "flex";
3699 flex-direction: "column";
3700 gap: var!(space-xs);
3701 border-left: format!("1px solid {}", var!(border));
3702 padding-left: var!(space-lg);
3703 }
3704 pub c_euv_toc_title {
3705 font-size: var!(font-xs);
3706 font-weight: "700";
3707 text-transform: "uppercase";
3708 letter-spacing: "0.08em";
3709 color: var!(muted-foreground);
3710 margin-bottom: var!(space-xs);
3711 }
3712 pub c_euv_toc_link {
3713 font-size: var!(font-sm);
3714 color: var!(muted-foreground);
3715 cursor: "pointer";
3716 line-height: "1.5";
3717 hover {
3718 color: var!(accent);
3719 }
3720 }
3721 pub c_euv_toc_link_nested {
3722 padding-left: var!(space-lg);
3723 }
3724
3725 pub c_euv_pagination {
3730 display: "flex";
3731 justify-content: "space-between";
3732 gap: var!(gap-component);
3733 margin-top: var!(space-4xl);
3734 @media ((max-width: 767px)) {
3735 flex-direction: "column";
3736 }
3737 }
3738 pub c_euv_pagination_link {
3739 flex: "1";
3740 border: format!("1px solid {}", var!(border));
3741 padding: var!(space-lg);
3742 cursor: "pointer";
3743 display: "flex";
3744 flex-direction: "column";
3745 gap: var!(space-2xs);
3746 hover {
3747 border-color: var!(accent);
3748 }
3749 }
3750 pub c_euv_pagination_label {
3751 font-size: var!(font-xs);
3752 color: var!(muted-foreground);
3753 text-transform: "uppercase";
3754 letter-spacing: "0.08em";
3755 }
3756 pub c_euv_pagination_text {
3757 font-size: var!(font-base);
3758 font-weight: "600";
3759 color: var!(accent);
3760 }
3761 pub c_euv_pagination_next {
3762 text-align: "right";
3763 }
3764 pub c_euv_pagination_spacer {
3765 flex: "1";
3766 }
3767
3768 pub c_euv_drawer_overlay {
3773 position: "fixed";
3774 top: "0px";
3775 left: "0px";
3776 right: "0px";
3777 bottom: "0px";
3778 background: var!(bg-overlay);
3779 z-index: "200";
3780 transition: format!("opacity {} {}, visibility {} {}", var!(duration-overlay), var!(ease-out), var!(duration-overlay), var!(ease-out));
3781 }
3782 pub c_euv_drawer_overlay_open {
3783 opacity: "1";
3784 visibility: "visible";
3785 }
3786 pub c_euv_drawer_overlay_closed {
3787 opacity: "0";
3788 visibility: "hidden";
3789 }
3790 pub c_euv_drawer {
3791 position: "fixed";
3792 top: "0px";
3793 left: "0px";
3794 bottom: "0px";
3795 width: "260px";
3796 background: var!(background);
3797 border-right: format!("1px solid {}", var!(border));
3798 z-index: "201";
3799 overflow-y: "auto";
3800 padding: var!(space-xl);
3801 transition: format!("transform {} {}, visibility {} {}", var!(duration-normal), var!(ease-out), var!(duration-normal), var!(ease-out));
3802 }
3803 pub c_euv_drawer_open {
3804 transform: "translateX(0px)";
3805 visibility: "visible";
3806 }
3807 pub c_euv_drawer_closed {
3808 transform: "translateX(-100%)";
3809 visibility: "hidden";
3810 }
3811
3812 pub c_euv_markdown {
3817 width: "100%";
3818 min-width: "0px";
3819 }
3820 pub c_euv_footer {
3821 margin-top: var!(space-7xl);
3822 padding: format!("{} 0px", var!(space-2xl));
3823 border-top: format!("1px dashed {}", var!(border));
3824 text-align: "center";
3825 font-size: var!(font-sm);
3826 color: var!(muted-foreground);
3827 }
3828
3829 pub c_euv_result {
3834 display: "flex";
3835 flex-direction: "column";
3836 align-items: "center";
3837 justify-content: "center";
3838 text-align: "center";
3839 gap: var!(space-md);
3840 padding: format!("{} {}", var!(space-4xl), var!(space-md));
3841 min-height: "50vh";
3842 }
3843 pub c_euv_result_code {
3844 font-size: var!(font-6xl);
3845 font-weight: "700";
3846 line-height: "1";
3847 letter-spacing: "-0.02em";
3848 }
3849 pub c_euv_result_title {
3850 font-size: var!(font-2xl);
3851 font-weight: "600";
3852 margin: "0px";
3853 }
3854 pub c_euv_result_description {
3855 color: var!(muted-foreground);
3856 margin: "0px";
3857 }
3858 pub c_euv_result_actions {
3859 display: "flex";
3860 gap: var!(space-md);
3861 margin-top: var!(space-lg);
3862 }
3863
3864 pub c_euv_doc_layout {
3865 display: "flex";
3866 gap: var!(space-4xl);
3867 width: "100%";
3868 min-width: "0px";
3869 max-width: "1080px";
3870 margin: "0px auto";
3871 }
3872 pub c_euv_doc_content {
3873 flex: "1";
3874 min-width: "0px";
3875 max-width: var!(content-max-width);
3876 }
3877 pub c_euv_doc_toc {
3878 width: "200px";
3879 flex-shrink: "0";
3880 @media ((max-width: 1100px)) {
3881 display: "none";
3882 }
3883 }
3884}