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