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