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