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