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