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