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_counter_value_row {
1041 padding-left: format!("calc(1px + {})", var!(space-lg));
1042 padding-right: format!("calc(1px + {})", var!(space-lg));
1043 margin-top: var!(space-sm);
1044 word-break: "break-all";
1045 overflow-wrap: "anywhere";
1046 font-size: var!(font-base);
1047 color: "inherit";
1048 font-weight: "500";
1049 }
1050
1051 pub c_badge_row {
1052 display: "flex";
1053 gap: var!(gap-inline);
1054 flex-wrap: "wrap";
1055 align-items: "center";
1056 }
1057
1058 pub c_badge_hint {
1059 margin-bottom: var!(gap-component);
1060 color: "inherit";
1061 opacity: "1";
1062 font-size: var!(font-base);
1063 }
1064
1065 pub c_text_ellipsis {
1070 overflow: "hidden";
1071 text-overflow: "ellipsis";
1072 white-space: "nowrap";
1073 }
1074
1075 pub c_info_row {
1076 display: "flex";
1077 align-items: "center";
1078 gap: var!(space-md);
1079 padding: format!("{} 0", var!(space-sm));
1080 overflow: "hidden";
1081 }
1082
1083 pub c_info_label {
1084 font-size: var!(font-sm);
1085 font-weight: "500";
1086 color: var!(muted-foreground);
1087 min-width: "72px";
1088 flex-shrink: "0";
1089 letter-spacing: "0.02em";
1090 }
1091
1092 pub c_info_value {
1093 c_text_ellipsis();
1094 font-size: var!(font-base);
1095 font-weight: "600";
1096 color: var!(foreground);
1097 font-family: "ui-monospace, monospace";
1098 flex: "1";
1099 }
1100
1101 pub c_info_link {
1102 c_text_ellipsis();
1103 font-size: var!(font-base);
1104 font-weight: "600";
1105 color: var!(accent);
1106 font-family: "ui-monospace, monospace";
1107 flex: "1";
1108 text-decoration: "none";
1109 transition: format!("opacity {} {}", var!(duration-fast), var!(ease-out));
1110 :hover {
1111 opacity: "1";
1112 }
1113 }
1114
1115 pub c_camera_video_container {
1120 margin: format!("{} 0", var!(space-lg));
1121 }
1122
1123 pub c_camera_video_active {
1124 width: "100%";
1125 background: "#000";
1126 aspect-ratio: "16 / 9";
1127 object-fit: "cover";
1128 border: format!("2px solid {}", var!(accent));
1129 box-sizing: "border-box";
1130 }
1131
1132 pub c_camera_video_hidden {
1133 width: "100%";
1134 aspect-ratio: "16 / 9";
1135 display: "none";
1136 }
1137
1138 pub c_camera_video_placeholder {
1139 width: "100%";
1140 aspect-ratio: "16 / 9";
1141 border: format!("2px dashed {}", var!(border));
1142 display: "flex";
1143 align-items: "center";
1144 justify-content: "center";
1145 box-sizing: "border-box";
1146 }
1147
1148 pub c_camera_placeholder_content {
1149 display: "flex";
1150 flex-direction: "column";
1151 align-items: "center";
1152 gap: var!(space-md);
1153 }
1154
1155 pub c_camera_placeholder_icon {
1156 font-size: var!(font-4xl);
1157 opacity: "1";
1158 }
1159
1160 pub c_camera_placeholder_text {
1161 font-size: var!(font-base);
1162 color: "inherit";
1163 opacity: "1";
1164 }
1165
1166 pub c_camera_error_box {
1167 margin: format!("{} 0px", var!(gap-component));
1168 color: var!(foreground);
1169 font-size: var!(font-base);
1170 word-break: "break-all";
1171 overflow-wrap: "break-word";
1172 box-sizing: "border-box";
1173 }
1174
1175 pub c_camera_scan_result_box {
1176 margin-top: var!(gap-component);
1177 box-sizing: "border-box";
1178 }
1179
1180 pub c_camera_scan_result_label {
1181 font-size: var!(font-sm);
1182 font-weight: "600";
1183 color: var!(foreground);
1184 margin-bottom: var!(space-xs);
1185 }
1186
1187 pub c_camera_scan_result_value {
1188 font-size: var!(font-base);
1189 color: "inherit";
1190 word-break: "break-all";
1191 overflow-wrap: "break-word";
1192 }
1193
1194 pub c_canvas_preview_container {
1199 margin: format!("{} 0", var!(space-lg));
1200 overflow: "hidden";
1201 border: format!("2px solid {}", var!(border));
1202 background: "#ffffff";
1203 aspect-ratio: "9 / 16";
1204 display: "flex";
1205 align-items: "center";
1206 justify-content: "center";
1207 box-sizing: "border-box";
1208 }
1209
1210 pub c_canvas_placeholder {
1211 color: var!(muted-foreground);
1212 font-size: var!(font-sm);
1213 text-align: "center";
1214 padding: var!(space-lg);
1215 }
1216
1217 pub c_canvas_preview_image {
1218 width: "100%";
1219 height: "100%";
1220 object-fit: "cover";
1221 display: "block";
1222 }
1223
1224 pub c_canvas_container_fullscreen {
1225 width: "100%";
1226 height: "100%";
1227 background: var!(background);
1228 display: "flex";
1229 flex-direction: "column";
1230 position: "fixed";
1231 top: "0";
1232 left: "0";
1233 z-index: "10002";
1234 padding: format!("{} {} {} {}", var!(padding-shell-top), var!(space-lg), var!(padding-shell-bottom), var!(space-lg));
1235 box-sizing: "border-box";
1236 }
1237
1238 pub c_canvas_drawing_fullscreen_wrapper {
1239 flex: "1";
1240 display: "flex";
1241 align-items: "center";
1242 justify-content: "center";
1243 overflow: "hidden";
1244 padding: var!(space-xs);
1245 }
1246
1247 pub c_canvas_drawing_fullscreen {
1248 border: format!("2px solid {}", var!(border));
1249 display: "block";
1250 cursor: "crosshair";
1251 touch-action: "none";
1252 }
1253
1254 pub c_canvas_fullscreen_toolbar {
1255 display: "flex";
1256 flex-direction: "column";
1257 align-items: "stretch";
1258 width: "100%";
1259 padding: format!("{} {}", var!(space-xs), "0px");
1260 flex-shrink: "0";
1261 gap: var!(space-xs);
1262 }
1263
1264 pub c_canvas_fullscreen_toolbar_row_top {
1265 display: "flex";
1266 align-items: "center";
1267 height: var!(mobile-header-height);
1268 width: "100%";
1269 gap: var!(space-sm);
1270 }
1271
1272 pub c_canvas_fullscreen_toolbar_color_wrapper {
1273 display: "flex";
1274 align-items: "center";
1275 justify-content: "center";
1276 flex: "1";
1277 min-width: "0";
1278 }
1279
1280 pub c_canvas_color_input_fullscreen {
1281 width: "100%";
1282 height: "42px";
1283 border: format!("1px solid {}", var!(border));
1284 cursor: "pointer";
1285 padding: format!("{}", var!(space-xs));
1286 }
1287
1288 pub c_canvas_fullscreen_toolbar_row_bottom {
1289 display: "flex";
1290 align-items: "center";
1291 width: "100%";
1292 }
1293
1294 pub c_canvas_fullscreen_range_input {
1295 flex: "1 1 0%";
1296 min-width: "120px";
1297 cursor: "pointer";
1298 -webkit-appearance: "none";
1299 appearance: "none";
1300 border: "none";
1301 outline: "none";
1302 height: "24px";
1303 ::-webkit-slider-runnable-track {
1304 height: "6px";
1305 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
1306 border-radius: "3px";
1307 border: "none";
1308 }
1309 ::-webkit-slider-thumb {
1310 width: "20px";
1311 height: "20px";
1312 background: var!(background);
1313 border: format!("2px solid {}", var!(accent));
1314 border-radius: "50%";
1315 cursor: "pointer";
1316 -webkit-appearance: "none";
1317 margin-top: "-7px";
1318 }
1319 ::-moz-range-track {
1320 height: "6px";
1321 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
1322 border-radius: "3px";
1323 border: "none";
1324 }
1325 ::-moz-range-thumb {
1326 width: "20px";
1327 height: "20px";
1328 background: var!(background);
1329 border: format!("2px solid {}", var!(accent));
1330 border-radius: "50%";
1331 cursor: "pointer";
1332 }
1333 }
1334
1335 pub c_canvas_fullscreen_toolbar_button {
1336 flex: "0 0 auto";
1337 overflow: "hidden";
1338 }
1339
1340 pub c_game_container_fullscreen {
1354 width: "100%";
1355 height: "100%";
1356 background: var!(background);
1357 display: "flex";
1358 flex-direction: "column";
1359 position: "fixed";
1360 top: "0";
1361 left: "0";
1362 z-index: "10002";
1363 padding: format!(
1364 "{} {} {} {}",
1365 var!(padding-shell-top),
1366 var!(space-lg),
1367 var!(padding-shell-bottom),
1368 var!(space-lg)
1369 );
1370 box-sizing: "border-box";
1371 }
1372
1373 pub c_game_fullscreen_toolbar {
1379 display: "flex";
1380 align-items: "center";
1381 justify-content: "flex-end";
1382 width: "100%";
1383 padding: format!("{} {} {} {}", var!(space-xs), var!(space-lg), var!(space-xs), var!(space-lg));
1384 flex-shrink: "0";
1385 gap: var!(space-sm);
1386 box-sizing: "border-box";
1387 }
1388
1389 pub c_game_fullscreen_canvas_letterbox {
1403 position: "relative";
1404 width: "100%";
1405 max-width: "100%";
1406 max-height: "100%";
1407 height: "100%";
1408 display: "flex";
1409 align-items: "center";
1410 justify-content: "center";
1411 }
1412
1413 pub c_custom_attrs_demo {
1418 color: var!(foreground);
1423 box-sizing: "border-box";
1424 }
1425
1426 pub c_demo_text {
1427 color: var!(foreground);
1428 margin-bottom: var!(gap-component);
1429 }
1430
1431 pub c_demo_text_muted {
1432 color: var!(foreground);
1433 opacity: "1";
1434 font-size: var!(font-base);
1435 margin-bottom: "0px";
1436 }
1437
1438 pub c_loading_container {
1443 display: "flex";
1444 align-items: "center";
1445 justify-content: "center";
1446 gap: var!(gap-component);
1447 margin: format!("{} 0px", var!(gap-component));
1448 box-sizing: "border-box";
1449 }
1450
1451 pub c_spinner {
1452 width: "28px";
1453 height: "28px";
1454 border: format!("3px solid {}", var!(accent-muted));
1455 border-top: format!("3px solid {}", var!(accent));
1456 border-radius: "50%";
1457 flex-shrink: "0";
1458 animation: "euv-spin 0.8s linear infinite";
1459 }
1460
1461 pub c_loading_text_col {
1462 display: "flex";
1463 flex-direction: "column";
1464 gap: var!(space-xs);
1465 }
1466
1467 pub c_loading_title {
1468 color: var!(foreground);
1469 font-size: var!(font-md);
1470 font-weight: "500";
1471 }
1472
1473 pub c_loading_subtitle {
1474 color: var!(muted-foreground);
1475 font-size: var!(font-base);
1476 }
1477
1478 pub c_loading_overlay(background: &str) {
1479 position: "absolute";
1480 top: "0";
1481 left: "0";
1482 width: "100%";
1483 height: "100%";
1484 display: "flex";
1485 flex-direction: "column";
1486 align-items: "center";
1487 justify-content: "center";
1488 gap: var!(gap-component);
1489 background: background;
1490 z-index: "1";
1491 box-sizing: "border-box";
1492 }
1493
1494 pub c_error_container {
1495 display: "flex";
1496 align-items: "center";
1497 gap: var!(gap-element);
1498 margin-top: var!(gap-component);
1499 box-sizing: "border-box";
1500 }
1501
1502 pub c_error_icon {
1503 width: "20px";
1504 height: "20px";
1505 display: "flex";
1506 align-items: "center";
1507 justify-content: "center";
1508 flex-shrink: "0";
1509 color: var!(foreground);
1510 font-size: var!(font-sm);
1511 font-weight: "700";
1512 }
1513
1514 pub c_error_text {
1515 color: var!(foreground);
1516 font-size: var!(font-base);
1517 }
1518
1519 pub c_data_box {
1520 margin: format!("{} 0px", var!(gap-component));
1521 box-sizing: "border-box";
1522 }
1523
1524 pub c_data_pre {
1525 color: var!(foreground);
1526 font-size: var!(font-base);
1527 margin: "0px";
1528 white-space: "pre-wrap";
1529 word-break: "break-all";
1530 font-family: "ui-monospace, monospace";
1531 }
1532
1533 pub c_fetch_hint {
1534 color: "inherit";
1535 opacity: "1";
1536 font-size: var!(font-base);
1537 margin-bottom: var!(gap-component);
1538 }
1539
1540 pub c_toggle_content {
1545 margin-top: var!(gap-component);
1546 color: "inherit";
1547 }
1548
1549 pub c_toggle_title {
1550 margin-top: "0px";
1551 color: var!(accent);
1552 font-size: var!(font-md);
1553 }
1554
1555 pub c_role_button_row {
1556 display: "flex";
1557 flex-wrap: "nowrap";
1558 gap: var!(gap-element);
1559 margin-bottom: var!(gap-component);
1560 }
1561
1562 pub c_role_guest_text {
1563 color: var!(foreground);
1564 font-size: var!(font-base);
1565 }
1566
1567 pub c_role_user_text {
1568 color: var!(foreground);
1569 font-size: var!(font-base);
1570 }
1571
1572 pub c_role_admin_text {
1573 color: var!(foreground);
1574 font-size: var!(font-base);
1575 }
1576
1577 pub c_tab_bar {
1582 display: "flex";
1583 border-bottom: format!("1px dashed {}", var!(border));
1584 margin-bottom: var!(gap-component);
1585 gap: var!(gap-element);
1586 @media ((max-width: 767px)) {
1587 flex-wrap: "wrap";
1588 }
1589 }
1590
1591 pub c_tab_item_active {
1592 padding: format!("{} {}", var!(space-md), var!(space-xl));
1593 cursor: "pointer";
1594 border-bottom: format!("2px solid {}", var!(accent));
1595 color: var!(text-on-accent);
1596 background: var!(accent);
1597 font-size: var!(font-base);
1598 font-weight: "500";
1599 }
1600
1601 pub c_tab_item_inactive {
1602 padding: format!("{} {}", var!(space-md), var!(space-xl));
1603 cursor: "pointer";
1604 border-bottom: "2px solid transparent";
1605 color: "inherit";
1606 font-size: var!(font-base);
1607 font-weight: "500";
1608 :hover {
1609 background: var!(accent-muted);
1610 color: var!(accent);
1611 }
1612 }
1613
1614 pub c_tab_content {
1615 padding: format!("{} 0px", var!(gap-element));
1616 }
1617
1618 pub c_tab_text {
1619 color: "inherit";
1620 font-size: var!(font-base);
1621 margin-bottom: var!(gap-element);
1622 }
1623
1624 pub c_tab_text_muted {
1625 color: "inherit";
1626 opacity: "1";
1627 font-size: var!(font-base);
1628 }
1629
1630 pub c_tab_text_input {
1631 color: "inherit";
1632 font-size: var!(font-base);
1633 margin-bottom: var!(gap-component);
1634 }
1635
1636 pub c_list_input {
1641 width: "100%";
1642 flex: "1";
1643 height: "42px";
1644 padding: format!("0px {}", var!(space-lg));
1645 border: format!("1px solid {}", var!(border));
1646 font-size: var!(font-base);
1647 line-height: "normal";
1648 box-sizing: "border-box";
1649 outline: "none";
1650 color: var!(foreground);
1651 appearance: "none";
1652 -webkit-appearance: "none";
1653 -moz-appearance: "none";
1654 vertical-align: "middle";
1655 :hover {
1656 border-color: var!(accent);
1657 background: var!(accent-muted);
1658 }
1659 :focus {
1660 outline: "none";
1661 border-color: var!(accent);
1662 background: var!(accent-muted);
1663 }
1664 }
1665
1666 pub c_list_input_error {
1667 width: "100%";
1668 flex: "1";
1669 height: "42px";
1670 padding: format!("0px {}", var!(space-lg));
1671 border: format!("1px solid {}", var!(foreground));
1672 font-size: var!(font-base);
1673 line-height: "normal";
1674 box-sizing: "border-box";
1675 outline: "none";
1676 color: var!(foreground);
1677 appearance: "none";
1678 -webkit-appearance: "none";
1679 -moz-appearance: "none";
1680 vertical-align: "middle";
1681 :focus {
1682 outline: "none";
1683 border-color: var!(foreground);
1684 }
1685 }
1686
1687 pub c_list_error_text {
1688 color: var!(foreground);
1689 font-size: var!(font-base);
1690 margin: format!("{} 0px", var!(gap-element));
1691 }
1692
1693 pub c_inline_input_button_wrap {
1694 flex-shrink: "0";
1695 }
1696
1697 pub c_list_ul {
1698 list-style: "none";
1699 padding: "0px";
1700 margin: "0px";
1701 margin-top: var!(gap-component);
1702 }
1703
1704 pub c_list_item {
1705 display: "flex";
1706 justify-content: "space-between";
1707 align-items: "center";
1708 gap: var!(gap-component);
1709 min-height: var!(min-height-base);
1710 margin: format!("{} 0px", var!(gap-element));
1711 }
1712
1713 pub c_list_item_text {
1714 flex: "1";
1715 overflow: "hidden";
1716 text-overflow: "ellipsis";
1717 white-space: "nowrap";
1718 font-size: var!(font-base);
1719 color: "inherit";
1720 min-width: "0";
1721 }
1722
1723 pub c_list_item_button {
1724 max-width: "120px";
1725 flex-shrink: "0";
1726 }
1727
1728 pub c_log_container {
1733 font-family: "ui-monospace, monospace";
1734 font-size: var!(font-base);
1735 margin-top: "0px";
1736 color: var!(foreground);
1737 }
1738
1739 pub c_log_item {
1740 padding: format!("{} 0px", var!(space-sm));
1741 font-size: var!(font-base);
1742 color: var!(foreground);
1743 }
1744
1745 pub c_render_count_text {
1750 font-size: var!(font-base);
1751 color: "inherit";
1752 margin-bottom: var!(gap-component);
1753 }
1754
1755 pub c_event_result {
1760 font-size: var!(font-base);
1761 color: "inherit";
1762 margin-top: var!(gap-element);
1763 }
1764
1765 pub c_event_highlight {
1766 font-weight: "600";
1767 color: var!(accent);
1768 }
1769
1770 pub c_event_info_grid {
1771 display: "grid";
1772 grid-template-columns: "1fr 1fr";
1773 gap: var!(gap-element);
1774 margin-top: var!(gap-component);
1775 @media ((max-width: 767px)) {
1776 grid-template-columns: "1fr";
1777 gap: var!(gap-element);
1778 }
1779 }
1780
1781 pub c_event_info_row {
1782 display: "flex";
1783 align-items: "center";
1784 gap: var!(space-sm);
1785 overflow: "hidden";
1786 }
1787
1788 pub c_event_info_label {
1789 font-size: var!(font-base);
1790 font-weight: "600";
1791 color: var!(foreground);
1792 flex-shrink: "0";
1793 }
1794
1795 pub c_event_info_value {
1796 c_text_ellipsis();
1797 font-size: var!(font-base);
1798 font-weight: "600";
1799 color: var!(accent);
1800 font-family: "ui-monospace, monospace";
1801 flex: "1";
1802 }
1803
1804 pub c_event_mouse_area {
1805 min-height: "120px";
1806 padding: format!("{} 0px", var!(space-xl));
1807 border: format!("2px dashed {}", var!(border));
1808 cursor: "crosshair";
1809 text-align: "center";
1810 user-select: "none";
1811 color: "inherit";
1812 }
1813
1814 pub c_event_drag_zone {
1815 min-height: "100px";
1816 padding: format!("{} 0px", var!(space-xl));
1817 border: format!("2px dashed {}", var!(border));
1818 text-align: "center";
1819 user-select: "none";
1820 color: var!(foreground);
1821 }
1822
1823 pub c_event_drag_zone_active {
1824 min-height: "100px";
1825 padding: format!("{} 0px", var!(space-xl));
1826 border: format!("2px dashed {}", var!(border));
1827 text-align: "center";
1828 user-select: "none";
1829 color: var!(foreground);
1830 }
1831
1832 pub c_event_drag_item {
1833 display: "inline-block";
1834 padding: format!("{} {}", var!(space-sm), var!(space-xl));
1835 background: var!(accent);
1836 color: var!(text-on-accent);
1837 font-size: var!(font-base);
1838 font-weight: "500";
1839 cursor: "grab";
1840 margin: var!(space-sm);
1841 }
1842
1843 pub c_event_drop_zone {
1844 border: format!("2px dashed {}", var!(border));
1845 padding: format!("{} {}", var!(space-4xl), var!(space-xl));
1846 text-align: "center";
1847 cursor: "pointer";
1848 }
1849
1850 pub c_event_drop_zone_active {
1851 border: format!("2px dashed {}", var!(accent));
1852 padding: format!("{} {}", var!(space-4xl), var!(space-xl));
1853 text-align: "center";
1854 cursor: "pointer";
1855 background: var!(accent-muted);
1856 }
1857
1858 pub c_event_drop_icon {
1859 font-size: var!(font-5xl);
1860 display: "block";
1861 padding-bottom: var!(space-md);
1862 }
1863
1864 pub c_event_drop_text {
1865 font-size: var!(font-lg);
1866 font-weight: "500";
1867 color: "inherit";
1868 padding-bottom: var!(space-md);
1869 }
1870
1871 pub c_event_drop_hint {
1872 font-size: var!(font-base);
1873 color: "inherit";
1874 opacity: "1";
1875 margin: "0px";
1876 }
1877
1878 pub c_event_wheel_zone {
1879 min-height: "120px";
1880 padding: format!("{} 0px", var!(space-xl));
1881 border: format!("2px dashed {}", var!(border));
1882 text-align: "center";
1883 overflow: "auto";
1884 color: var!(foreground);
1885 }
1886
1887 pub c_event_clipboard_area {
1888 color: var!(foreground);
1889 }
1890
1891 pub c_event_touch_zone {
1892 min-height: "120px";
1893 padding: format!("{} 0px", var!(space-xl));
1894 border: format!("2px dashed {}", var!(accent));
1895 text-align: "center";
1896 touch-action: "none";
1897 user-select: "none";
1898 color: var!(accent);
1899 }
1900
1901 pub c_event_form_area {
1902 padding: format!("{} 0px", var!(space-lg));
1903 color: var!(foreground);
1904 }
1905
1906 pub c_event_media_area {
1907 padding: format!("{} 0px", var!(space-lg));
1908 color: var!(foreground);
1909 max-width: "100%";
1910 overflow: "hidden";
1911 }
1912
1913 pub c_event_audio {
1914 width: "100%";
1915 max-width: "100%";
1916 }
1917
1918 pub c_event_video_area {
1919 color: var!(foreground);
1920 width: "100%";
1921 overflow: "hidden";
1922 }
1923
1924 pub c_event_video {
1925 width: "100%";
1926 max-width: "100%";
1927 }
1928
1929 pub c_event_image_area {
1930 padding: format!("{} 0px", var!(space-lg));
1931 color: "inherit";
1932 width: "100%";
1933 overflow: "hidden";
1934 display: "flex";
1935 flex-direction: "column";
1936 align-items: "center";
1937 gap: var!(space-md);
1938 }
1939
1940 pub c_event_image {
1941 width: "200px";
1942 max-width: "100%";
1943 object-fit: "contain";
1944 display: "block";
1945 }
1946
1947 pub c_event_url_text {
1948 text-align: "center";
1949 font-size: var!(font-sm);
1950 color: "inherit";
1951 opacity: "1";
1952 font-family: "ui-monospace, monospace";
1953 word-break: "break-all";
1954 width: "100%";
1955 }
1956
1957 pub c_timer_display {
1962 text-align: "center";
1963 padding: var!(space-xl);
1964 margin: format!("{} 0px", var!(gap-component));
1965 color: "inherit";
1966 }
1967
1968 pub c_timer_value {
1969 font-size: var!(font-base);
1970 font-weight: "700";
1971 color: var!(accent);
1972 letter-spacing: "0.04em";
1973 font-family: "ui-monospace, monospace";
1974 }
1975
1976 pub c_timer_controls {
1977 display: "flex";
1978 flex-wrap: "wrap";
1979 gap: var!(gap-element);
1980 }
1981
1982 pub c_timer_done {
1983 text-align: "center";
1984 margin-top: var!(gap-component);
1985 font-size: var!(font-lg);
1986 font-weight: "600";
1987 color: var!(foreground);
1988 }
1989
1990 pub c_modal_overlay {
1995 position: "fixed";
1996 top: "0px";
1997 left: "0px";
1998 width: "100%";
1999 height: "100%";
2000 background: var!(bg-overlay);
2001 contain: "layout style paint";
2002 display: "flex";
2003 align-items: "center";
2004 justify-content: "center";
2005 z-index: "1000";
2006 animation: format!("euv-fade-in {} {}", var!(duration-modal-overlay), var!(ease-out));
2007 @media ((max-width: 767px)) {
2008 align-items: "center";
2009 justify-content: "center";
2010 }
2011 }
2012
2013 pub c_modal_content {
2014 background: var!(background);
2015 padding: "0px";
2016 max-width: "480px";
2017 width: "90%";
2018 animation: format!("euv-scale-in-modal {} {}", var!(duration-modal-content), var!(ease-bounce));
2019 overflow: "hidden";
2020 color: var!(foreground);
2021 box-sizing: "border-box";
2022 @media ((max-width: 767px)) {
2023 max-width: "100%";
2024 width: "calc(100% - 32px)";
2025 max-height: "85vh";
2026 overflow-y: "auto";
2027 }
2028 }
2029
2030 pub c_modal_header {
2031 display: "flex";
2032 justify-content: "space-between";
2033 align-items: "center";
2034 padding: format!("{} {} 0px {}", var!(space-md), var!(space-xl), var!(space-xl));
2035 }
2036
2037 pub c_modal_title {
2038 margin: "0px";
2039 font-size: var!(font-xl);
2040 font-weight: "600";
2041 color: "inherit";
2042 }
2043
2044 pub c_modal_body {
2045 padding: format!("0px {} {} {}", var!(space-xl), var!(space-md), var!(space-xl));
2046 color: "inherit";
2047 }
2048
2049 pub c_modal_actions {
2050 display: "flex";
2051 flex-wrap: "wrap";
2052 gap: var!(space-md);
2053 margin: format!("{} 0px", var!(space-md));
2054 }
2055
2056 pub c_anim_fade_in {
2061 margin-top: var!(gap-component);
2062 animation: format!("euv-fade-in 0.5s {}", var!(ease-out));
2063 font-size: var!(font-base);
2064 color: "inherit";
2065 }
2066
2067 pub c_anim_spin_container {
2068 display: "flex";
2069 justify-content: "center";
2070 align-items: "center";
2071 margin: format!("{} 0px", var!(space-lg));
2072 min-height: "80px";
2073 }
2074
2075 pub c_anim_spin {
2076 font-size: var!(font-5xl);
2077 animation: "euv-spin 1.5s linear infinite";
2078 display: "inline-block";
2079 @media ((max-width: 767px)) {
2080 font-size: var!(font-4xl);
2081 }
2082 }
2083
2084 pub c_anim_spin_stopped {
2085 font-size: var!(font-5xl);
2086 display: "inline-block";
2087 opacity: "1";
2088 @media ((max-width: 767px)) {
2089 font-size: var!(font-4xl);
2090 }
2091 }
2092
2093 pub c_anim_pulse_container {
2094 display: "flex";
2095 justify-content: "center";
2096 align-items: "center";
2097 margin: format!("{} 0px", var!(space-lg));
2098 min-height: "80px";
2099 }
2100
2101 pub c_anim_pulse {
2102 font-size: var!(font-5xl);
2103 animation: "euv-pulse 1.5s ease-in-out infinite";
2104 display: "inline-block";
2105 color: var!(foreground);
2106 @media ((max-width: 767px)) {
2107 font-size: var!(font-4xl);
2108 }
2109 }
2110
2111 pub c_anim_pulse_stopped {
2112 font-size: var!(font-5xl);
2113 display: "inline-block";
2114 opacity: "1";
2115 color: var!(foreground);
2116 @media ((max-width: 767px)) {
2117 font-size: var!(font-4xl);
2118 }
2119 }
2120
2121 pub c_progress_container {
2122 width: "100%";
2123 height: "12px";
2124 margin: format!("{} 0px", var!(space-lg));
2125 overflow: "hidden";
2126 }
2127
2128 pub c_progress_bar_running {
2129 height: "100%";
2130 background: var!(accent);
2131 animation: format!("euv-progress 1.6s {} forwards", var!(ease-in-out));
2132 }
2133
2134 pub c_progress_bar_stopped {
2135 height: "100%";
2136 background: var!(accent);
2137 width: "0%";
2138 }
2139
2140 pub c_anim_scale_box {
2141 margin: format!("{} 0px", var!(gap-component));
2142 padding: var!(space-xl);
2143 background: var!(accent);
2144 cursor: "pointer";
2145 transition: format!("transform {} {}", var!(duration-normal), var!(ease-out));
2146 }
2147
2148 pub c_browser_api_row {
2153 display: "grid";
2154 grid-template-columns: "1fr 1fr";
2155 gap: var!(gap-component);
2156 margin-bottom: var!(gap-component);
2157 @media ((max-width: 767px)) {
2158 grid-template-columns: "1fr";
2159 }
2160 }
2161
2162 pub c_browser_api_actions {
2163 display: "flex";
2164 flex-wrap: "wrap";
2165 gap: var!(gap-element);
2166 margin: format!("{} 0px", var!(gap-component));
2167 }
2168
2169 pub c_browser_result_box {
2170 margin-top: var!(gap-component);
2171 font-size: var!(font-base);
2172 word-break: "break-all";
2173 color: "inherit";
2174 }
2175
2176 pub c_browser_result_label {
2177 font-weight: "600";
2178 color: var!(accent);
2179 }
2180
2181 pub c_browser_result_value {
2182 color: "inherit";
2183 }
2184
2185 pub c_browser_info_grid {
2186 display: "grid";
2187 gap: var!(gap-component);
2188 margin-top: var!(gap-component);
2189 @media ((max-width: 767px)) {
2190 grid-template-columns: "1fr";
2191 }
2192 }
2193
2194 pub c_browser_info_item {
2195 display: "flex";
2196 flex-direction: "column";
2197 gap: var!(space-xs);
2198 color: "inherit";
2199 }
2200
2201 pub c_browser_info_label {
2202 font-size: var!(font-sm);
2203 font-weight: "600";
2204 color: "inherit";
2205 opacity: "1";
2206 text-transform: "uppercase";
2207 letter-spacing: "0.05em";
2208 }
2209
2210 pub c_browser_info_value {
2211 font-size: var!(font-base);
2212 color: "inherit";
2213 word-break: "break-all";
2214 font-family: "ui-monospace, monospace";
2215 }
2216
2217 pub c_vconsole_badge {
2222 position: "absolute";
2223 top: "-6px";
2224 right: "-8px";
2225 min-width: "18px";
2226 height: "18px";
2227 background: var!(background);
2228 color: var!(foreground);
2229 font-size: "10px";
2230 font-weight: "600";
2231 display: "flex";
2232 align-items: "center";
2233 justify-content: "center";
2234 padding: format!("0px {}", var!(space-xs));
2235 border: format!("1px solid {}", var!(accent));
2236 pointer-events: "none";
2237 transition: format!("transform {} {}, opacity {} {}", var!(duration-normal), var!(ease-out), var!(duration-normal), var!(ease-out));
2238 }
2239
2240 pub c_vconsole_overlay {
2241 position: "fixed";
2242 top: "0px";
2243 left: "0px";
2244 right: "0px";
2245 bottom: "0px";
2246 z-index: "10000";
2247 background: var!(bg-overlay);
2248 contain: "layout style paint";
2249 transition: format!("opacity {} {}", var!(duration-overlay), var!(ease-out));
2250 }
2251
2252 pub c_vconsole_overlay_hidden {
2253 opacity: "0";
2254 pointer-events: "none";
2255 }
2256
2257 pub c_vconsole_panel {
2258 position: "fixed";
2259 bottom: "0px";
2260 left: "0px";
2261 right: "0px";
2262 height: format!("calc(76vh - {})", var!(safe-area-inset-bottom));
2263 background: var!(background);
2264 z-index: "10001";
2265 display: "flex";
2266 flex-direction: "column";
2267 contain: "layout style paint";
2268 will-change: "transform";
2269 transition: format!("transform {} {}", var!(duration-overlay), var!(ease-out));
2270 overflow: "hidden";
2271 padding: format!("{} {}", var!(padding-main-top), var!(padding-main-horizontal));
2272 @media ((max-width: 767px)) {
2273 padding: format!("{} {}", var!(space-md), var!(padding-main-horizontal-mobile));
2274 }
2275 }
2276
2277 pub c_vconsole_panel_closed {
2278 transform: "translateY(100%)";
2279 will-change: "auto";
2280 }
2281
2282 pub c_vconsole_fab {
2283 position: "fixed";
2284 bottom: format!("calc(20px + {})", var!(safe-area-inset-bottom));
2285 right: var!(padding-main-horizontal);
2286 z-index: "9999";
2287 @media ((max-width: 767px)) {
2288 bottom: format!("calc(16px + {})", var!(safe-area-inset-bottom));
2289 right: var!(padding-main-horizontal-mobile);
2290 }
2291 }
2292
2293 pub c_vconsole_header {
2294 display: "flex";
2295 justify-content: "space-between";
2296 align-items: "center";
2297 flex-shrink: "0";
2298 }
2299
2300 pub c_vconsole_title {
2301 color: var!(foreground);
2302 font-size: var!(font-md);
2303 font-weight: "600";
2304 margin: "0px";
2305 letter-spacing: "0.03em";
2306 display: "flex";
2307 align-items: "center";
2308 gap: var!(space-sm);
2309 }
2310
2311 pub c_vconsole_title_dot {
2312 width: "8px";
2313 height: "8px";
2314 background: var!(accent);
2315 display: "inline-block";
2316 animation: "euv-pulse 2s ease-in-out infinite";
2317 }
2318
2319 pub c_vconsole_header_actions {
2320 display: "flex";
2321 gap: var!(space-sm);
2322 align-items: "center";
2323 }
2324
2325 pub c_vconsole_clear_button {
2326 display: "inline-flex";
2327 justify-content: "center";
2328 align-items: "center";
2329 color: var!(foreground);
2330 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2331 font-size: var!(font-xs);
2332 font-weight: "600";
2333 cursor: "pointer";
2334 text-align: "center";
2335 border: format!("1.5px solid {}", var!(border));
2336 margin-left: "auto";
2337 :focus-visible {
2338 outline: "none";
2339 }
2340 }
2341
2342 pub c_vconsole_close_button {
2343 display: "inline-flex";
2344 justify-content: "center";
2345 align-items: "center";
2346 color: var!(foreground);
2347 padding: format!("{} {}", var!(space-xs), var!(space-md));
2348 cursor: "pointer";
2349 font-size: var!(font-sm);
2350 font-weight: "400";
2351 text-align: "center";
2352 white-space: "nowrap";
2353 user-select: "none";
2354 -webkit-user-select: "none";
2355 vertical-align: "middle";
2356 outline: "none";
2357 transition: format!("all {} {}", var!(duration-fast), var!(ease-out));
2358 :hover {
2359 border-color: var!(foreground);
2360 color: var!(foreground);
2361 background: var!(background);
2362 }
2363 :focus-visible {
2364 outline: "none";
2365 }
2366 :active {
2367 background: "transparent";
2368 color: var!(foreground);
2369 border-color: var!(border);
2370 }
2371 }
2372
2373 pub c_vconsole_body {
2374 flex: "1";
2375 overflow-y: "auto";
2376 contain: "content";
2377 padding-bottom: var!(space-md);
2378 font-family: "ui-monospace, monospace";
2379 font-size: var!(font-xs);
2380 }
2381
2382 pub c_vconsole_log_item {
2383 display: "flex";
2384 align-items: "center";
2385 padding: format!("{} 0px", var!(space-sm));
2386 border-bottom: format!("1px dashed {}", var!(border));
2387 color: var!(foreground);
2388 font-size: var!(font-xs);
2389 word-break: "break-all";
2390 }
2391
2392 pub c_vconsole_empty {
2393 color: var!(muted-foreground);
2394 font-size: var!(font-xs);
2395 text-align: "center";
2396 padding: format!("{} 0px", var!(space-4xl));
2397 overflow: "hidden";
2398 }
2399
2400 pub c_vconsole_empty_hidden {
2401 height: "0";
2402 overflow: "hidden";
2403 padding: "0";
2404 }
2405
2406 pub c_vconsole_log_list {
2407 overflow: "hidden";
2408 }
2409
2410 pub c_vconsole_log_list_hidden {
2411 height: "0";
2412 overflow: "hidden";
2413 }
2414
2415 pub c_vconsole_count {
2416 color: var!(muted-foreground);
2417 font-size: var!(font-sm);
2418 font-weight: "400";
2419 }
2420
2421 pub c_vconsole_filter_bar {
2422 display: "flex";
2423 gap: var!(space-sm);
2424 padding: format!("{} 0px", var!(space-sm));
2425 border-bottom: format!("1px dashed {}", var!(border));
2426 flex-shrink: "0";
2427 align-items: "center";
2428 }
2429
2430 pub c_vconsole_filter_badge {
2431 display: "inline-flex";
2432 justify-content: "center";
2433 align-items: "center";
2434 color: var!(text-on-accent);
2435 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2436 border: format!("1px solid {}", var!(accent));
2437 font-size: var!(font-xs);
2438 font-weight: "600";
2439 cursor: "pointer";
2440 text-align: "center";
2441 background: var!(accent);
2442 :focus-visible {
2443 outline: "none";
2444 }
2445 }
2446
2447 pub c_vconsole_filter_badge_outline {
2448 display: "inline-flex";
2449 justify-content: "center";
2450 align-items: "center";
2451 color: var!(foreground);
2452 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2453 font-size: var!(font-xs);
2454 font-weight: "600";
2455 cursor: "pointer";
2456 text-align: "center";
2457 border: format!("1.5px solid {}", var!(border));
2458 }
2459
2460 pub c_vconsole_level_badge {
2461 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2462 font-size: var!(font-xs);
2463 margin-right: var!(space-sm);
2464 letter-spacing: "0.05em";
2465 color: var!(foreground);
2466 border: "1px solid currentColor";
2467 wrap: "nowrap";
2468 flex-shrink: "0";
2469 }
2470
2471 pub c_mobile_header {
2476 display: "flex";
2477 align-items: "center";
2478 justify-content: "space-between";
2479 padding: format!("var(--euv-mobile-safe-top, 0px) 0px 0px {}", var!(space-lg));
2480 height: format!("calc({} + var(--euv-mobile-safe-top, 0px))", var!(mobile-header-height));
2481 flex-shrink: "0";
2482 position: "sticky";
2483 top: "0px";
2484 z-index: "100";
2485 contain: "content";
2486 background: var!(background);
2487 border-bottom: format!("1px solid {}", var!(border));
2488 }
2489
2490 pub c_mobile_header_left {
2491 display: "flex";
2492 align-items: "center";
2493 gap: format!("{}", var!(space-md));
2494 }
2495
2496 pub c_mobile_header_logo {
2497 display: "flex";
2498 align-items: "center";
2499 gap: format!("{}", var!(space-sm));
2500 text-decoration: "none";
2501 color: var!(foreground);
2502 }
2503
2504 pub c_mobile_menu_button {
2505 width: "40px";
2506 height: "40px";
2507 border: "none";
2508 cursor: "pointer";
2509 font-size: "22px";
2510 font-weight: "700";
2511 display: "flex";
2512 align-items: "center";
2513 justify-content: "center";
2514 color: var!(foreground);
2515 padding: "0px";
2516 :active {
2517 background: "transparent";
2518 color: var!(foreground);
2519 }
2520 }
2521
2522 pub c_mobile_theme_button {
2523 width: "40px";
2524 height: "40px";
2525 border: "none";
2526 cursor: "pointer";
2527 display: "flex";
2528 align-items: "center";
2529 justify-content: "center";
2530 padding: "0px";
2531 :active {
2532 background: "transparent";
2533 }
2534 }
2535
2536 pub c_mobile_menu_button_active {
2537 width: "40px";
2538 height: "40px";
2539 border: "none";
2540 cursor: "pointer";
2541 font-size: "22px";
2542 font-weight: "700";
2543 display: "flex";
2544 align-items: "center";
2545 justify-content: "center";
2546 color: var!(accent);
2547 padding: "0px";
2548 :active {
2549 background: var!(background);
2550 color: var!(accent);
2551 }
2552 }
2553
2554 pub c_mobile_drawer_close_button {
2555 width: "32px";
2556 height: "32px";
2557 border: "none";
2558 cursor: "pointer";
2559 font-size: "18px";
2560 font-weight: "500";
2561 display: "flex";
2562 align-items: "center";
2563 justify-content: "center";
2564 color: var!(muted-foreground);
2565 padding: "0px";
2566 transition: format!("color {} {}", var!(duration-fast), var!(ease-out));
2567 :hover {
2568 color: var!(foreground);
2569 }
2570 :active {
2571 color: var!(muted-foreground);
2572 }
2573 }
2574
2575 pub c_mobile_overlay {
2576 position: "fixed";
2577 top: "0px";
2578 left: "0px";
2579 width: "100%";
2580 height: "100%";
2581 background: var!(bg-overlay);
2582 z-index: "200";
2583 contain: "layout style paint";
2584 transition: format!("opacity {} {}", var!(duration-overlay), var!(ease-out));
2585 }
2586
2587 pub c_mobile_overlay_hidden {
2588 opacity: "0";
2589 pointer-events: "none";
2590 }
2591
2592 pub c_mobile_nav_drawer {
2593 position: "fixed";
2594 top: "0px";
2595 left: "0px";
2596 width: "240px";
2597 max-width: "100%";
2598 height: "100%";
2599 background: var!(background);
2600 z-index: "201";
2601 display: "flex";
2602 flex-direction: "column";
2603 padding-top: "var(--euv-mobile-safe-top, 0px)";
2604 padding-bottom: var!(padding-shell-bottom);
2605 contain: "layout style paint";
2606 will-change: "transform";
2607 transition: format!("transform {} {}", var!(duration-overlay), var!(ease-out));
2608 overflow: "hidden";
2609 }
2610
2611 pub c_mobile_nav_drawer_closed {
2612 transform: "translateX(-100%)";
2613 }
2614
2615 pub c_mobile_nav_drawer_header {
2616 display: "flex";
2617 align-items: "center";
2618 justify-content: "space-between";
2619 padding: format!("0px {}", var!(space-lg));
2620 height: var!(mobile-header-height);
2621 flex-shrink: "0";
2622 position: "relative";
2623 ::after {
2624 content: "''";
2625 position: "absolute";
2626 bottom: "0px";
2627 left: var!(space-lg);
2628 right: var!(space-lg);
2629 height: "1px";
2630 background: format!("linear-gradient(90deg, transparent, {}, transparent)", var!(border));
2631 }
2632 }
2633
2634 pub c_mobile_main {
2635 c_app_main();
2636 ::-webkit-scrollbar {
2637 width: "0px";
2638 }
2639 }
2640
2641 pub c_keep_alive_tab_bar {
2646 display: "flex";
2647 border-bottom: format!("1px dashed {}", var!(border));
2648 margin-bottom: var!(gap-component);
2649 gap: var!(gap-element);
2650 }
2651
2652 pub c_keep_alive_tab_panel {
2653 padding: format!("{} 0px", var!(gap-element));
2654 }
2655
2656 pub c_keep_alive_panel_title {
2657 margin-top: "0px";
2658 color: var!(accent);
2659 font-size: var!(font-md);
2660 margin-bottom: var!(gap-element);
2661 }
2662
2663 pub c_keep_alive_demo_text {
2664 color: "inherit";
2665 font-size: var!(font-base);
2666 margin-bottom: var!(gap-component);
2667 }
2668
2669 pub c_keep_alive_counter_display {
2670 display: "flex";
2671 justify-content: "center";
2672 align-items: "center";
2673 margin: format!("{} 0px", var!(space-xl));
2674 }
2675
2676 pub c_keep_alive_counter_value {
2677 font-size: var!(font-base);
2678 font-weight: "700";
2679 font-variant-numeric: "tabular-nums";
2680 color: var!(accent);
2681 text-align: "center";
2682 }
2683
2684 pub c_keep_alive_counter_controls {
2685 display: "flex";
2686 flex-wrap: "wrap";
2687 gap: format!("{}", var!(space-md));
2688 }
2689
2690 pub c_keep_alive_form_group {
2691 margin-bottom: var!(gap-component);
2692 }
2693
2694 pub c_keep_alive_form_preview {
2695 margin-top: var!(gap-component);
2696 background: var!(accent-muted);
2697 }
2698
2699 pub c_keep_alive_preview_label {
2700 font-size: var!(font-base);
2701 font-weight: "600";
2702 color: var!(accent);
2703 margin: format!("0px 0px {} 0px", var!(space-xs));
2704 }
2705
2706 pub c_file_upload_input_hidden {
2711 position: "absolute";
2712 width: "1px";
2713 height: "1px";
2714 padding: "0px";
2715 margin: "-1px";
2716 overflow: "hidden";
2717 clip: "rect(0, 0, 0, 0)";
2718 white-space: "nowrap";
2719 border: "0px";
2720 }
2721
2722 pub c_file_upload_options {
2723 margin: format!("{} 0px", var!(gap-component));
2724 }
2725
2726 pub c_file_upload_item {
2727 display: "flex";
2728 align-items: "center";
2729 gap: format!("{}", var!(space-md));
2730 margin: format!("{} 0px", var!(space-sm));
2731 font-size: var!(font-base);
2732 color: "inherit";
2733 }
2734
2735 pub c_file_upload_item_index {
2736 font-size: var!(font-sm);
2737 font-weight: "600";
2738 color: var!(accent);
2739 min-width: "24px";
2740 }
2741
2742 pub c_file_upload_item_name {
2743 color: "inherit";
2744 word-break: "break-all";
2745 }
2746
2747 pub c_binding_child_box {
2752 display: "flex";
2753 flex-direction: "column";
2754 gap: var!(gap-component);
2755 margin-top: var!(gap-component);
2756 }
2757
2758 pub c_binding_child_label {
2759 font-size: var!(font-base);
2760 font-weight: "600";
2761 color: var!(accent);
2762 text-transform: "uppercase";
2763 letter-spacing: "0.05em";
2764 }
2765
2766 pub c_binding_parent_box {
2767 display: "flex";
2768 flex-direction: "column";
2769 gap: var!(gap-component);
2770 margin-top: var!(gap-component);
2771 }
2772
2773 pub c_binding_section_title {
2774 margin-top: var!(gap-component);
2775 margin-bottom: var!(gap-element);
2776 color: var!(accent);
2777 font-size: var!(font-md);
2778 font-weight: "600";
2779 }
2780
2781 pub c_binding_temp_converter {
2782 display: "flex";
2783 align-items: "flex-end";
2784 gap: var!(gap-component);
2785 flex-wrap: "wrap";
2786 margin-top: var!(gap-component);
2787 }
2788
2789 pub c_binding_temp_field {
2790 flex: "1";
2791 min-width: "120px";
2792 }
2793
2794 pub c_binding_temp_arrow {
2795 font-size: "20px";
2796 font-weight: "700";
2797 color: var!(accent);
2798 padding-bottom: "10px";
2799 }
2800
2801 pub c_binding_color_mixer {
2802 margin-top: var!(gap-component);
2803 }
2804
2805 pub c_binding_color_preview {
2806 width: "100%";
2807 height: "80px";
2808 display: "flex";
2809 align-items: "center";
2810 justify-content: "center";
2811 margin-bottom: var!(gap-component);
2812 }
2813
2814 pub c_binding_color_hex {
2815 font-family: "ui-monospace, monospace";
2816 font-size: var!(font-xl);
2817 font-weight: "700";
2818 color: var!(text-on-accent);
2819 letter-spacing: "0.02em";
2820 }
2821
2822 pub c_binding_slider_row {
2823 display: "flex";
2824 align-items: "center";
2825 gap: format!("{}", var!(space-md));
2826 margin-bottom: var!(space-sm);
2827 }
2828
2829 pub c_binding_slider_label {
2830 font-size: var!(font-base);
2831 font-weight: "700";
2832 min-width: var!(font-sm);
2833 }
2834
2835 pub c_binding_slider {
2836 flex: "1";
2837 height: "24px";
2838 padding: "0px";
2839 cursor: "pointer";
2840 -webkit-appearance: "none";
2841 appearance: "none";
2842 border: "none";
2843 outline: "none";
2844 ::-webkit-slider-runnable-track {
2845 height: "6px";
2846 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
2847 border-radius: "3px";
2848 border: "none";
2849 }
2850 ::-webkit-slider-thumb {
2851 width: "20px";
2852 height: "20px";
2853 background: var!(background);
2854 border: format!("2px solid {}", var!(accent));
2855 border-radius: "50%";
2856 cursor: "pointer";
2857 -webkit-appearance: "none";
2858 margin-top: "-7px";
2859 }
2860 : active::-webkit-slider-thumb {
2861 transform: "scale(0.92)";
2862 }
2863 ::-moz-range-track {
2864 height: "6px";
2865 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
2866 border-radius: "3px";
2867 border: "none";
2868 }
2869 ::-moz-range-thumb {
2870 width: "20px";
2871 height: "20px";
2872 background: var!(background);
2873 border: format!("2px solid {}", var!(accent));
2874 border-radius: "50%";
2875 cursor: "pointer";
2876 }
2877 : active::-moz-range-thumb {
2878 transform: "scale(0.92)";
2879 }
2880 }
2881
2882 pub c_binding_slider_value {
2883 font-size: var!(font-base);
2884 font-weight: "500";
2885 color: "inherit";
2886 min-width: "32px";
2887 text-align: "right";
2888 font-family: "ui-monospace, monospace";
2889 }
2890
2891 pub c_binding_typed_prop_value {
2892 font-family: "ui-monospace, monospace";
2893 font-size: var!(font-base);
2894 font-weight: "600";
2895 color: var!(accent);
2896 padding: format!("1px {}", var!(space-sm));
2897 }
2898
2899 pub c_binding_typed_prop_group {
2900 display: "flex";
2901 align-items: "center";
2902 gap: var!(space-sm);
2903 }
2904
2905 pub c_binding_typed_warning {
2906 font-size: var!(font-base);
2907 font-weight: "500";
2908 color: var!(foreground);
2909 margin-bottom: "0px";
2910 }
2911
2912 pub c_binding_form_label {
2913 display: "block";
2914 color: "inherit";
2915 font-weight: "500";
2916 font-size: var!(font-base);
2917 }
2918
2919 pub c_binding_demo_text {
2920 color: "inherit";
2921 margin: "0px"
2922 }
2923
2924 pub c_binding_compact_button {
2925 display: "inline-flex";
2926 justify-content: "center";
2927 align-items: "center";
2928 height: "42px";
2929 padding: format!("0px {}", var!(space-md));
2930 background: var!(accent);
2931 color: var!(text-on-accent);
2932 border: format!("1px solid {}", var!(accent));
2933 cursor: "pointer";
2934 font-size: var!(font-sm);
2935 font-weight: "600";
2936 outline: "none";
2937 white-space: "nowrap";
2938 user-select: "none";
2939 -webkit-user-select: "none";
2940 box-sizing: "border-box";
2941 :hover {
2942 background: var!(accent);
2943 }
2944 :focus-visible {
2945 outline: "none";
2946 }
2947 :active {
2948 background: var!(accent);
2949 color: var!(text-on-accent);
2950 border-color: var!(accent);
2951 }
2952 }
2953
2954 pub c_attrs_dynamic_demo(prop_key: &str, prop_value: &str) {
2959 {
2960 prop_key
2961 }
2962 : prop_value;
2963 }
2970
2971 pub c_dynamic_component_tab_bar {
2976 display: "flex";
2977 flex-wrap: "wrap";
2978 gap: var!(gap-element);
2979 margin-bottom: var!(gap-component);
2980 }
2981
2982 pub c_dynamic_component_panel {
2983 display: "block";
2984 min-height: var!(min-height-sm);
2985 margin-top: var!(gap-component);
2986 }
2987
2988 pub c_virtual_list_status {
2993 display: "flex";
2994 gap: var!(gap-component);
2995 padding: format!("{} 0px", var!(gap-component));
2996 flex-wrap: "nowrap";
2997 overflow: "hidden";
2998 text-overflow: "ellipsis";
2999 white-space: "nowrap";
3000 @media ((max-width: 767px)) {
3001 gap: var!(gap-component-mobile);
3002 }
3003 }
3004
3005 pub c_virtual_list_status_item {
3006 font-size: var!(font-base);
3007 color: "inherit";
3008 overflow: "hidden";
3009 text-overflow: "ellipsis";
3010 white-space: "nowrap";
3011 }
3012
3013 pub c_virtual_list_status_value {
3014 font-weight: "700";
3015 color: var!(accent);
3016 font-family: "ui-monospace, monospace";
3017 }
3018
3019 pub c_virtual_list_container {
3020 flex: "1";
3021 height: "666px";
3022 max-height: "666px";
3023 overflow-y: "auto";
3024 }
3025
3026 pub c_virtual_list_card {
3027 flex: "1";
3028 padding: var!(space-xl);
3029 color: var!(foreground);
3030 display: "flex";
3031 flex-direction: "column";
3032 @media ((max-width: 767px)) {
3033 padding: var!(space-lg);
3034 }
3035 }
3036
3037 pub c_virtual_list_row {
3038 display: "flex";
3039 align-items: "center";
3040 gap: var!(space-lg);
3041 height: "100%";
3042 box-sizing: "border-box";
3043 }
3044
3045 pub c_virtual_list_row_index {
3046 min-width: "36px";
3047 font-size: var!(font-sm);
3048 font-weight: "600";
3049 color: var!(accent);
3050 font-family: "ui-monospace, monospace";
3051 flex-shrink: "0";
3052 display: "flex";
3053 align-items: "center";
3054 }
3055
3056 pub c_virtual_list_row_label {
3057 font-size: var!(font-base);
3058 font-weight: "500";
3059 color: "inherit";
3060 min-width: "120px";
3061 flex-shrink: "0";
3062 overflow: "hidden";
3063 text-overflow: "ellipsis";
3064 white-space: "nowrap";
3065 display: "flex";
3066 align-items: "center";
3067 }
3068
3069 pub c_virtual_list_row_description {
3070 font-size: var!(font-base);
3071 color: "inherit";
3072 opacity: "1";
3073 overflow: "hidden";
3074 text-overflow: "ellipsis";
3075 white-space: "nowrap";
3076 flex: "1";
3077 display: "flex";
3078 align-items: "center";
3079 }
3080
3081 pub c_element_stack {
3086 display: "flex";
3087 flex-direction: "column";
3088 gap: var!(gap-element);
3089 }
3090
3091 pub c_switcher {
3092 display: "flex";
3093 gap: var!(gap-component);
3094 flex-wrap: "wrap";
3095 @media ((max-width: 767px)) {
3096 flex-direction: "column";
3097 gap: var!(gap-component-mobile);
3098 }
3099 }
3100
3101 pub c_switcher_col {
3102 flex: "1";
3103 min-width: "200px";
3104 @media ((max-width: 767px)) {
3105 min-width: "100%";
3106 }
3107 }
3108
3109 pub c_hint {
3114 color: "inherit";
3115 opacity: "1";
3116 font-size: var!(font-base);
3117 margin-bottom: var!(gap-component);
3118 }
3119
3120 pub c_net_messages_empty {
3125 color: "inherit";
3126 opacity: "1";
3127 padding: var!(space-xl);
3128 text-align: "center";
3129 font-size: var!(font-base);
3130 }
3131
3132 pub c_net_messages_list {
3133 display: "flex";
3134 flex-direction: "column";
3135 gap: var!(space-xs);
3136 }
3137
3138 pub c_net_message_item {
3139 display: "flex";
3140 align-items: "baseline";
3141 gap: var!(gap-element);
3142 justify-content: "space-between";
3143 }
3144
3145 pub c_net_message_index {
3146 color: var!(accent);
3147 font-size: var!(font-sm);
3148 font-weight: "600";
3149 white-space: "nowrap";
3150 flex-shrink: "0";
3151 }
3152
3153 pub c_net_message_data {
3154 color: "inherit";
3155 font-size: var!(font-base);
3156 word-break: "break-all";
3157 overflow-wrap: "break-word";
3158 flex: "1";
3159 min-width: "0";
3160 }
3161
3162 pub c_ws_message_input {
3167 width: "100%";
3168 flex: "1";
3169 height: "42px";
3170 padding: format!("0px {}", var!(space-lg));
3171 color: var!(foreground);
3172 border: format!("1px solid {}", var!(border));
3173 font-size: var!(font-base);
3174 line-height: "normal";
3175 box-sizing: "border-box";
3176 outline: "none";
3177 appearance: "none";
3178 -webkit-appearance: "none";
3179 -moz-appearance: "none";
3180 vertical-align: "middle";
3181 :hover {
3182 border-color: var!(accent);
3183 background: var!(accent-muted);
3184 }
3185 :focus {
3186 outline: "none";
3187 border-color: var!(accent);
3188 background: var!(accent-muted);
3189 }
3190 }
3191
3192 pub c_ws_message_time {
3193 color: var!(foreground);
3194 font-size: var!(font-sm);
3195 white-space: "nowrap";
3196 flex-shrink: "0";
3197 margin-left: "auto";
3198 }
3199
3200 pub c_home {
3209 position: "relative";
3210 text-align: "center";
3211 margin-bottom: var!(space-xl);
3212 flex: "1";
3213 display: "flex";
3214 flex-direction: "column";
3215 justify-content: "center";
3216 @media ((max-width: 767px)) {
3217 margin-bottom: var!(space-lg);
3218 flex: "0 0 auto";
3219 justify-content: "flex-start";
3220 }
3221 }
3222
3223 pub c_home_content {
3224 position: "relative";
3225 z-index: "1";
3226 }
3227
3228 pub c_home_badge_row {
3229 display: "inline-flex";
3230 align-items: "center";
3231 gap: var!(space-sm);
3232 margin-bottom: var!(space-md);
3233 }
3234
3235 pub c_home_badge {
3236 display: "inline-flex";
3237 justify-content: "center";
3238 align-items: "center";
3239 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3240 color: var!(accent);
3241 font-size: var!(font-xs);
3242 font-weight: "600";
3243 letter-spacing: "0.05em";
3244 border: format!("1px solid {}", var!(accent));
3245 }
3246
3247 pub c_home_title {
3248 font-size: var!(font-5xl);
3249 font-weight: "800";
3250 letter-spacing: "-0.03em";
3251 margin: "0px";
3252 color: var!(foreground);
3253 margin-bottom: var!(space-xs);
3254 @media ((max-width: 767px)) {
3255 font-size: var!(font-4xl);
3256 }
3257 }
3258
3259 pub c_home_subtitle {
3260 font-size: var!(font-lg);
3261 color: var!(foreground);
3262 margin: "0px auto";
3263 max-width: "520px";
3264 margin-bottom: var!(space-lg);
3265 @media ((max-width: 767px)) {
3266 font-size: var!(font-base);
3267 }
3268 }
3269
3270 pub c_home_actions {
3271 display: "flex";
3272 gap: var!(space-md);
3273 justify-content: "center";
3274 flex-wrap: "wrap";
3275 }
3276
3277 pub c_home_btn_primary {
3278 display: "inline-flex";
3279 justify-content: "center";
3280 align-items: "center";
3281 gap: var!(space-sm);
3282 padding: format!("{} {}", var!(space-sm), var!(space-2xl));
3283 background: var!(accent);
3284 color: var!(text-on-accent);
3285 font-size: var!(font-base);
3286 font-weight: "600";
3287 text-decoration: "none";
3288 border: "1.5px solid transparent";
3289 cursor: "pointer";
3290 letter-spacing: "0.01em";
3291 vertical-align: "middle";
3292 min-height: var!(min-height-sm);
3293 :focus-visible {
3294 outline: "none";
3295 }
3296 :active {
3297 background: var!(accent);
3298 color: var!(text-on-accent);
3299 border-color: "1.5px solid transparent";
3300 }
3301 }
3302
3303 pub c_home_btn_secondary {
3304 display: "inline-flex";
3305 justify-content: "center";
3306 align-items: "center";
3307 gap: var!(space-sm);
3308 padding: format!("{} {}", var!(space-sm), var!(space-2xl));
3309 color: var!(accent);
3310 font-size: var!(font-base);
3311 font-weight: "600";
3312 text-decoration: "none";
3313 border: format!("1.5px solid {}", var!(accent));
3314 cursor: "pointer";
3315 letter-spacing: "0.01em";
3316 vertical-align: "middle";
3317 min-height: var!(min-height-sm);
3318 :focus-visible {
3319 outline: "none";
3320 }
3321 :active {
3322 background: "transparent";
3323 color: var!(accent);
3324 border-color: var!(accent);
3325 }
3326 }
3327
3328 pub c_home_stats {
3333 display: "grid";
3334 grid-template-columns: "repeat(4, 1fr)";
3335 gap: var!(space-md);
3336 margin-bottom: var!(space-xl);
3337 @media ((max-width: 767px)) {
3338 grid-template-columns: "repeat(2, 1fr)";
3339 gap: var!(space-sm);
3340 }
3341 }
3342
3343 pub c_home_stat_card {
3344 display: "flex";
3345 flex-direction: "column";
3346 align-items: "center";
3347 justify-content: "center";
3348 gap: var!(space-xs);
3349 }
3350
3351 pub c_home_stat_icon {
3352 font-size: var!(font-2xl);
3353 }
3354
3355 pub c_home_stat_value {
3356 font-size: var!(font-xl);
3357 font-weight: "800";
3358 color: var!(foreground);
3359 letter-spacing: "-0.01em";
3360 }
3361
3362 pub c_home_stat_label {
3363 font-size: var!(font-sm);
3364 color: var!(muted-foreground);
3365 font-weight: "500";
3366 }
3367
3368 pub c_home_section_title {
3373 font-size: var!(font-2xl);
3374 font-weight: "700";
3375 color: var!(foreground);
3376 margin: "0px";
3377 margin: format!("{} 0px", var!(gap-component));
3378 letter-spacing: "-0.02em";
3379 }
3380
3381 pub c_home_section_desc {
3382 font-size: var!(font-base);
3383 color: var!(foreground);
3384 margin: "0px";
3385 margin-bottom: var!(space-2xl);
3386 }
3387
3388 pub c_home_feature_grid {
3389 display: "grid";
3390 grid-template-columns: "repeat(2, 1fr)";
3391 gap: var!(space-md);
3392 @media ((max-width: 767px)) {
3393 grid-template-columns: "1fr";
3394 }
3395 }
3396
3397 pub c_feature_card {
3398 display: "flex";
3399 flex-direction: "column";
3400 gap: var!(space-sm);
3401 padding: "0px";
3402 overflow: "hidden";
3403 }
3404
3405 pub c_feature_header {
3406 display: "flex";
3407 align-items: "center";
3408 gap: var!(space-sm);
3409 }
3410
3411 pub c_feature_icon {
3412 font-size: var!(font-2xl);
3413 display: "flex";
3414 align-items: "center";
3415 justify-content: "center";
3416 line-height: "1";
3417 flex-shrink: "0";
3418 }
3419
3420 pub c_feature_name {
3421 font-size: var!(font-lg);
3422 font-weight: "600";
3423 color: var!(foreground);
3424 margin: "0px";
3425 overflow: "hidden";
3426 text-overflow: "ellipsis";
3427 white-space: "nowrap";
3428 }
3429
3430 pub c_feature_desc {
3431 font-size: var!(font-sm);
3432 color: var!(foreground);
3433 margin: "0px";
3434 }
3435
3436 pub c_debug {
3447 display: "flex";
3448 flex-direction: "row";
3449 align-items: "baseline";
3450 gap: var!(space-sm);
3451 padding: var!(space-xs);
3452 border: format!("1px dashed {}", var!(accent-muted));
3453 border-radius: var!(radius-sm);
3454 background: var!(surface-muted);
3455 font-family: "ui-monospace, SFMono-Regular, monospace";
3456 font-size: var!(font-sm);
3457 color: var!(foreground);
3458 margin: format!("{} 0px", var!(space-xs));
3459 }
3460
3461 pub c_debug_label {
3462 font-weight: "600";
3463 color: var!(accent);
3464 flex-shrink: "0";
3465 }
3466
3467 pub c_debug_value {
3468 font-family: "ui-monospace, SFMono-Regular, monospace";
3469 color: var!(foreground);
3470 margin: "0px";
3471 }
3472
3473 pub c_euv_navbar {
3478 position: "fixed";
3479 top: "0px";
3480 left: "0px";
3481 right: "0px";
3482 height: "56px";
3483 display: "flex";
3484 align-items: "center";
3485 gap: var!(gap-element);
3486 padding: format!("0px {}", var!(padding-main-horizontal));
3487 border-bottom: format!("1px solid {}", var!(border));
3488 background: var!(background);
3489 z-index: "100";
3490 @media ((max-width: 767px)) {
3491 padding: format!("0px {}", var!(padding-main-horizontal-mobile));
3492 }
3493 }
3494 pub c_euv_navbar_brand {
3495 display: "flex";
3496 align-items: "center";
3497 gap: var!(gap-element);
3498 font-size: var!(font-lg);
3499 font-weight: "700";
3500 letter-spacing: "-0.02em";
3501 color: var!(foreground);
3502 cursor: "pointer";
3503 flex-shrink: "0";
3504 }
3505 pub c_euv_navbar_logo {
3506 width: "32px";
3507 height: "32px";
3508 display: "flex";
3509 align-items: "center";
3510 justify-content: "center";
3511 background: var!(accent);
3512 color: var!(text-on-accent);
3513 font-size: var!(font-lg);
3514 flex-shrink: "0";
3515 }
3516 pub c_euv_navbar_links {
3517 display: "flex";
3518 align-items: "center";
3519 gap: var!(gap-section);
3520 margin-left: "auto";
3521 @media ((max-width: 767px)) {
3522 display: "none";
3523 }
3524 }
3525 pub c_euv_navbar_link {
3526 font-size: var!(font-sm);
3527 font-weight: "500";
3528 color: var!(foreground);
3529 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3530 border-bottom: "2px solid transparent";
3531 cursor: "pointer";
3532 hover {
3533 color: var!(accent);
3534 }
3535 }
3536 pub c_euv_navbar_link_active {
3537 font-size: var!(font-sm);
3538 font-weight: "600";
3539 color: var!(accent);
3540 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3541 border-bottom: format!("2px solid {}", var!(accent));
3542 cursor: "pointer";
3543 }
3544 pub c_euv_navbar_actions {
3545 display: "flex";
3546 align-items: "center";
3547 gap: var!(gap-element);
3548 margin-left: var!(gap-section);
3549 @media ((max-width: 767px)) {
3550 margin-left: "auto";
3551 }
3552 }
3553 pub c_euv_navbar_icon_button {
3554 width: "36px";
3555 height: "36px";
3556 display: "flex";
3557 align-items: "center";
3558 justify-content: "center";
3559 border: format!("1px dashed {}", var!(border));
3560 cursor: "pointer";
3561 font-size: var!(font-base);
3562 hover {
3563 background: var!(accent-muted);
3564 }
3565 }
3566 pub c_euv_navbar_menu_button {
3567 display: "none";
3568 width: "40px";
3569 height: "40px";
3570 align-items: "center";
3571 justify-content: "center";
3572 font-size: var!(font-xl);
3573 cursor: "pointer";
3574 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3575 @media ((max-width: 767px)) {
3576 display: "flex";
3577 }
3578 }
3579 pub c_euv_navbar_menu_button_active {
3580 display: "none";
3581 width: "40px";
3582 height: "40px";
3583 align-items: "center";
3584 justify-content: "center";
3585 font-size: var!(font-xl);
3586 cursor: "pointer";
3587 background: var!(accent-muted);
3588 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3589 @media ((max-width: 767px)) {
3590 display: "flex";
3591 }
3592 }
3593
3594 pub c_euv_dropdown {
3599 position: "relative";
3600 }
3601 pub c_euv_dropdown_menu {
3602 position: "absolute";
3603 top: "44px";
3604 right: "0px";
3605 width: "100%";
3617 background: var!(background);
3618 border: format!("1px solid {}", var!(border));
3619 box-shadow: var!(shadow-accent-lg);
3620 flex-direction: "column";
3621 z-index: "101";
3622 }
3623 pub c_euv_dropdown_menu_open {
3624 display: "flex";
3625 }
3626 pub c_euv_dropdown_menu_closed {
3627 display: "none";
3628 }
3629 pub c_euv_dropdown_item {
3630 padding: format!("{} {}", var!(space-sm), var!(space-lg));
3631 font-size: var!(font-sm);
3632 text-align: "left";
3633 cursor: "pointer";
3634 hover {
3635 background: var!(accent-muted);
3636 }
3637 }
3638
3639 pub c_euv_sidebar_group {
3644 margin-bottom: var!(space-xs);
3645 }
3646 pub c_euv_sidebar_group_title {
3647 display: "flex";
3648 align-items: "center";
3649 justify-content: "space-between";
3650 width: "100%";
3651 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3652 font-size: var!(font-sm);
3653 font-weight: "600";
3654 cursor: "pointer";
3655 text-align: "left";
3656 hover {
3657 background: var!(accent-muted);
3658 }
3659 }
3660 pub c_euv_sidebar_group_arrow {
3661 font-size: var!(font-xs);
3662 color: var!(muted-foreground);
3663 transition: format!("transform {} {}", var!(duration-fast), var!(ease-out));
3664 }
3665 pub c_euv_sidebar_group_arrow_open {
3666 transform: "rotate(90deg)";
3667 }
3668 pub c_euv_sidebar_children {
3669 display: "flex";
3670 flex-direction: "column";
3671 padding-left: var!(space-md);
3672 border-left: format!("1px dashed {}", var!(border));
3673 margin-left: var!(space-sm);
3674 animation: format!("euv-fade-in {} {}", var!(duration-normal), var!(ease-out));
3675 }
3676 pub c_euv_sidebar_link {
3677 display: "block";
3678 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3679 font-size: var!(font-sm);
3680 color: var!(foreground);
3681 cursor: "pointer";
3682 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3683 hover {
3684 background: var!(accent-muted);
3685 color: var!(accent);
3686 box-shadow: format!("inset 4px 0px 0px {}", var!(accent));
3687 }
3688 }
3689 pub c_euv_sidebar_link_active {
3690 display: "block";
3691 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3692 font-size: var!(font-sm);
3693 background: var!(accent);
3694 color: var!(text-on-accent);
3695 font-weight: "600";
3696 cursor: "pointer";
3697 }
3698
3699 pub c_euv_toc {
3704 position: "sticky";
3705 top: "76px";
3706 display: "flex";
3707 flex-direction: "column";
3708 gap: var!(space-xs);
3709 border-left: format!("1px solid {}", var!(border));
3710 padding-left: var!(space-lg);
3711 }
3712 pub c_euv_toc_title {
3713 font-size: var!(font-xs);
3714 font-weight: "700";
3715 text-transform: "uppercase";
3716 letter-spacing: "0.08em";
3717 color: var!(muted-foreground);
3718 margin-bottom: var!(space-xs);
3719 }
3720 pub c_euv_toc_link {
3721 font-size: var!(font-sm);
3722 color: var!(muted-foreground);
3723 cursor: "pointer";
3724 line-height: "1.5";
3725 hover {
3726 color: var!(accent);
3727 }
3728 }
3729 pub c_euv_toc_link_nested {
3730 padding-left: var!(space-lg);
3731 }
3732
3733 pub c_euv_pagination {
3738 display: "flex";
3739 justify-content: "space-between";
3740 gap: var!(gap-component);
3741 margin-top: var!(space-4xl);
3742 @media ((max-width: 767px)) {
3743 flex-direction: "column";
3744 }
3745 }
3746 pub c_euv_pagination_link {
3747 flex: "1";
3748 border: format!("1px solid {}", var!(border));
3749 padding: var!(space-lg);
3750 cursor: "pointer";
3751 display: "flex";
3752 flex-direction: "column";
3753 gap: var!(space-2xs);
3754 hover {
3755 border-color: var!(accent);
3756 }
3757 }
3758 pub c_euv_pagination_label {
3759 font-size: var!(font-xs);
3760 color: var!(muted-foreground);
3761 text-transform: "uppercase";
3762 letter-spacing: "0.08em";
3763 }
3764 pub c_euv_pagination_text {
3765 font-size: var!(font-base);
3766 font-weight: "600";
3767 color: var!(accent);
3768 }
3769 pub c_euv_pagination_next {
3770 text-align: "right";
3771 }
3772 pub c_euv_pagination_spacer {
3773 flex: "1";
3774 }
3775
3776 pub c_euv_drawer_overlay {
3781 position: "fixed";
3782 top: "0px";
3783 left: "0px";
3784 right: "0px";
3785 bottom: "0px";
3786 background: var!(bg-overlay);
3787 z-index: "200";
3788 transition: format!("opacity {} {}, visibility {} {}", var!(duration-overlay), var!(ease-out), var!(duration-overlay), var!(ease-out));
3789 }
3790 pub c_euv_drawer_overlay_open {
3791 opacity: "1";
3792 visibility: "visible";
3793 }
3794 pub c_euv_drawer_overlay_closed {
3795 opacity: "0";
3796 visibility: "hidden";
3797 }
3798 pub c_euv_drawer {
3799 position: "fixed";
3800 top: "0px";
3801 left: "0px";
3802 bottom: "0px";
3803 width: "260px";
3804 background: var!(background);
3805 border-right: format!("1px solid {}", var!(border));
3806 z-index: "201";
3807 overflow-y: "auto";
3808 padding: var!(space-xl);
3809 transition: format!("transform {} {}, visibility {} {}", var!(duration-normal), var!(ease-out), var!(duration-normal), var!(ease-out));
3810 }
3811 pub c_euv_drawer_open {
3812 transform: "translateX(0px)";
3813 visibility: "visible";
3814 }
3815 pub c_euv_drawer_closed {
3816 transform: "translateX(-100%)";
3817 visibility: "hidden";
3818 }
3819
3820 pub c_euv_markdown {
3825 width: "100%";
3826 min-width: "0px";
3827 }
3828 pub c_euv_footer {
3829 margin-top: var!(space-7xl);
3830 padding: format!("{} 0px", var!(space-2xl));
3831 border-top: format!("1px dashed {}", var!(border));
3832 text-align: "center";
3833 font-size: var!(font-sm);
3834 color: var!(muted-foreground);
3835 }
3836
3837 pub c_euv_result {
3842 display: "flex";
3843 flex-direction: "column";
3844 align-items: "center";
3845 justify-content: "center";
3846 text-align: "center";
3847 gap: var!(space-md);
3848 padding: format!("{} {}", var!(space-4xl), var!(space-md));
3849 min-height: "50vh";
3850 }
3851 pub c_euv_result_code {
3852 font-size: var!(font-6xl);
3853 font-weight: "700";
3854 line-height: "1";
3855 letter-spacing: "-0.02em";
3856 }
3857 pub c_euv_result_title {
3858 font-size: var!(font-2xl);
3859 font-weight: "600";
3860 margin: "0px";
3861 }
3862 pub c_euv_result_description {
3863 color: var!(muted-foreground);
3864 margin: "0px";
3865 }
3866 pub c_euv_result_actions {
3867 display: "flex";
3868 gap: var!(space-md);
3869 margin-top: var!(space-lg);
3870 }
3871
3872 pub c_euv_doc_layout {
3873 display: "flex";
3874 gap: var!(space-4xl);
3875 width: "100%";
3876 min-width: "0px";
3877 max-width: "1080px";
3878 margin: "0px auto";
3879 }
3880 pub c_euv_doc_content {
3881 flex: "1";
3882 min-width: "0px";
3883 max-width: var!(content-max-width);
3884 }
3885 pub c_euv_doc_toc {
3886 width: "200px";
3887 flex-shrink: "0";
3888 @media ((max-width: 1100px)) {
3889 display: "none";
3890 }
3891 }
3892}