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