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