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