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_game_container_fullscreen {
1343 width: "100%";
1344 height: "100%";
1345 background: var!(background);
1346 display: "flex";
1347 flex-direction: "column";
1348 position: "fixed";
1349 top: "0";
1350 left: "0";
1351 z-index: "10002";
1352 padding: format!(
1353 "{} {} {} {}",
1354 var!(padding-shell-top),
1355 var!(space-lg),
1356 var!(padding-shell-bottom),
1357 var!(space-lg)
1358 );
1359 box-sizing: "border-box";
1360 }
1361
1362 pub c_game_fullscreen_toolbar {
1368 display: "flex";
1369 align-items: "center";
1370 justify-content: "flex-end";
1371 width: "100%";
1372 padding: format!("{} {} {} {}", var!(space-xs), var!(space-lg), var!(space-xs), var!(space-lg));
1373 flex-shrink: "0";
1374 gap: var!(space-sm);
1375 box-sizing: "border-box";
1376 }
1377
1378 pub c_game_fullscreen_canvas_letterbox {
1392 position: "relative";
1393 width: "100%";
1394 max-width: "100%";
1395 max-height: "100%";
1396 height: "100%";
1397 display: "flex";
1398 align-items: "center";
1399 justify-content: "center";
1400 }
1401
1402 pub c_custom_attrs_demo {
1407 color: var!(foreground);
1412 box-sizing: "border-box";
1413 }
1414
1415 pub c_demo_text {
1416 color: var!(foreground);
1417 margin-bottom: var!(gap-component);
1418 }
1419
1420 pub c_demo_text_muted {
1421 color: var!(foreground);
1422 opacity: "1";
1423 font-size: var!(font-base);
1424 margin-bottom: "0px";
1425 }
1426
1427 pub c_loading_container {
1432 display: "flex";
1433 align-items: "center";
1434 justify-content: "center";
1435 gap: var!(gap-component);
1436 margin: format!("{} 0px", var!(gap-component));
1437 box-sizing: "border-box";
1438 }
1439
1440 pub c_spinner {
1441 width: "28px";
1442 height: "28px";
1443 border: format!("3px solid {}", var!(accent-muted));
1444 border-top: format!("3px solid {}", var!(accent));
1445 border-radius: "50%";
1446 flex-shrink: "0";
1447 animation: "euv-spin 0.8s linear infinite";
1448 }
1449
1450 pub c_loading_text_col {
1451 display: "flex";
1452 flex-direction: "column";
1453 gap: var!(space-xs);
1454 }
1455
1456 pub c_loading_title {
1457 color: var!(foreground);
1458 font-size: var!(font-md);
1459 font-weight: "500";
1460 }
1461
1462 pub c_loading_subtitle {
1463 color: var!(muted-foreground);
1464 font-size: var!(font-base);
1465 }
1466
1467 pub c_loading_overlay(background: &str) {
1468 position: "absolute";
1469 top: "0";
1470 left: "0";
1471 width: "100%";
1472 height: "100%";
1473 display: "flex";
1474 flex-direction: "column";
1475 align-items: "center";
1476 justify-content: "center";
1477 gap: var!(gap-component);
1478 background: background;
1479 z-index: "1";
1480 box-sizing: "border-box";
1481 }
1482
1483 pub c_error_container {
1484 display: "flex";
1485 align-items: "center";
1486 gap: var!(gap-element);
1487 margin-top: var!(gap-component);
1488 box-sizing: "border-box";
1489 }
1490
1491 pub c_error_icon {
1492 width: "20px";
1493 height: "20px";
1494 display: "flex";
1495 align-items: "center";
1496 justify-content: "center";
1497 flex-shrink: "0";
1498 color: var!(foreground);
1499 font-size: var!(font-sm);
1500 font-weight: "700";
1501 }
1502
1503 pub c_error_text {
1504 color: var!(foreground);
1505 font-size: var!(font-base);
1506 }
1507
1508 pub c_data_box {
1509 margin: format!("{} 0px", var!(gap-component));
1510 box-sizing: "border-box";
1511 }
1512
1513 pub c_data_pre {
1514 color: var!(foreground);
1515 font-size: var!(font-base);
1516 margin: "0px";
1517 white-space: "pre-wrap";
1518 word-break: "break-all";
1519 font-family: "ui-monospace, monospace";
1520 }
1521
1522 pub c_fetch_hint {
1523 color: "inherit";
1524 opacity: "1";
1525 font-size: var!(font-base);
1526 margin-bottom: var!(gap-component);
1527 }
1528
1529 pub c_toggle_content {
1534 margin-top: var!(gap-component);
1535 color: "inherit";
1536 }
1537
1538 pub c_toggle_title {
1539 margin-top: "0px";
1540 color: var!(accent);
1541 font-size: var!(font-md);
1542 }
1543
1544 pub c_role_button_row {
1545 display: "flex";
1546 flex-wrap: "nowrap";
1547 gap: var!(gap-element);
1548 margin-bottom: var!(gap-component);
1549 }
1550
1551 pub c_role_guest_text {
1552 color: var!(foreground);
1553 font-size: var!(font-base);
1554 }
1555
1556 pub c_role_user_text {
1557 color: var!(foreground);
1558 font-size: var!(font-base);
1559 }
1560
1561 pub c_role_admin_text {
1562 color: var!(foreground);
1563 font-size: var!(font-base);
1564 }
1565
1566 pub c_tab_bar {
1571 display: "flex";
1572 border-bottom: format!("1px dashed {}", var!(border));
1573 margin-bottom: var!(gap-component);
1574 gap: var!(gap-element);
1575 @media ((max-width: 767px)) {
1576 flex-wrap: "wrap";
1577 }
1578 }
1579
1580 pub c_tab_item_active {
1581 padding: format!("{} {}", var!(space-md), var!(space-xl));
1582 cursor: "pointer";
1583 border-bottom: format!("2px solid {}", var!(accent));
1584 color: var!(text-on-accent);
1585 background: var!(accent);
1586 font-size: var!(font-base);
1587 font-weight: "500";
1588 }
1589
1590 pub c_tab_item_inactive {
1591 padding: format!("{} {}", var!(space-md), var!(space-xl));
1592 cursor: "pointer";
1593 border-bottom: "2px solid transparent";
1594 color: "inherit";
1595 font-size: var!(font-base);
1596 font-weight: "500";
1597 :hover {
1598 background: var!(accent-muted);
1599 color: var!(accent);
1600 }
1601 }
1602
1603 pub c_tab_content {
1604 padding: format!("{} 0px", var!(gap-element));
1605 }
1606
1607 pub c_tab_text {
1608 color: "inherit";
1609 font-size: var!(font-base);
1610 margin-bottom: var!(gap-element);
1611 }
1612
1613 pub c_tab_text_muted {
1614 color: "inherit";
1615 opacity: "1";
1616 font-size: var!(font-base);
1617 }
1618
1619 pub c_tab_text_input {
1620 color: "inherit";
1621 font-size: var!(font-base);
1622 margin-bottom: var!(gap-component);
1623 }
1624
1625 pub c_list_input {
1630 width: "100%";
1631 flex: "1";
1632 height: "42px";
1633 padding: format!("0px {}", var!(space-lg));
1634 border: format!("1px solid {}", var!(border));
1635 font-size: var!(font-base);
1636 line-height: "normal";
1637 box-sizing: "border-box";
1638 outline: "none";
1639 color: var!(foreground);
1640 appearance: "none";
1641 -webkit-appearance: "none";
1642 -moz-appearance: "none";
1643 vertical-align: "middle";
1644 :hover {
1645 border-color: var!(accent);
1646 background: var!(accent-muted);
1647 }
1648 :focus {
1649 outline: "none";
1650 border-color: var!(accent);
1651 background: var!(accent-muted);
1652 }
1653 }
1654
1655 pub c_list_input_error {
1656 width: "100%";
1657 flex: "1";
1658 height: "42px";
1659 padding: format!("0px {}", var!(space-lg));
1660 border: format!("1px solid {}", var!(foreground));
1661 font-size: var!(font-base);
1662 line-height: "normal";
1663 box-sizing: "border-box";
1664 outline: "none";
1665 color: var!(foreground);
1666 appearance: "none";
1667 -webkit-appearance: "none";
1668 -moz-appearance: "none";
1669 vertical-align: "middle";
1670 :focus {
1671 outline: "none";
1672 border-color: var!(foreground);
1673 }
1674 }
1675
1676 pub c_list_error_text {
1677 color: var!(foreground);
1678 font-size: var!(font-base);
1679 margin: format!("{} 0px", var!(gap-element));
1680 }
1681
1682 pub c_inline_input_button_wrap {
1683 flex-shrink: "0";
1684 }
1685
1686 pub c_list_ul {
1687 list-style: "none";
1688 padding: "0px";
1689 margin: "0px";
1690 margin-top: var!(gap-component);
1691 }
1692
1693 pub c_list_item {
1694 display: "flex";
1695 justify-content: "space-between";
1696 align-items: "center";
1697 gap: var!(gap-component);
1698 min-height: var!(min-height-base);
1699 margin: format!("{} 0px", var!(gap-element));
1700 }
1701
1702 pub c_list_item_text {
1703 flex: "1";
1704 overflow: "hidden";
1705 text-overflow: "ellipsis";
1706 white-space: "nowrap";
1707 font-size: var!(font-base);
1708 color: "inherit";
1709 min-width: "0";
1710 }
1711
1712 pub c_list_item_button {
1713 max-width: "120px";
1714 flex-shrink: "0";
1715 }
1716
1717 pub c_log_container {
1722 font-family: "ui-monospace, monospace";
1723 font-size: var!(font-base);
1724 margin-top: "0px";
1725 color: var!(foreground);
1726 }
1727
1728 pub c_log_item {
1729 padding: format!("{} 0px", var!(space-sm));
1730 font-size: var!(font-base);
1731 color: var!(foreground);
1732 }
1733
1734 pub c_render_count_text {
1739 font-size: var!(font-base);
1740 color: "inherit";
1741 margin-bottom: var!(gap-component);
1742 }
1743
1744 pub c_event_result {
1749 font-size: var!(font-base);
1750 color: "inherit";
1751 margin-top: var!(gap-element);
1752 }
1753
1754 pub c_event_highlight {
1755 font-weight: "600";
1756 color: var!(accent);
1757 }
1758
1759 pub c_event_info_grid {
1760 display: "grid";
1761 grid-template-columns: "1fr 1fr";
1762 gap: var!(gap-element);
1763 margin-top: var!(gap-component);
1764 @media ((max-width: 767px)) {
1765 grid-template-columns: "1fr";
1766 gap: var!(gap-element);
1767 }
1768 }
1769
1770 pub c_event_info_row {
1771 display: "flex";
1772 align-items: "center";
1773 gap: var!(space-sm);
1774 overflow: "hidden";
1775 }
1776
1777 pub c_event_info_label {
1778 font-size: var!(font-base);
1779 font-weight: "600";
1780 color: var!(foreground);
1781 flex-shrink: "0";
1782 }
1783
1784 pub c_event_info_value {
1785 c_text_ellipsis();
1786 font-size: var!(font-base);
1787 font-weight: "600";
1788 color: var!(accent);
1789 font-family: "ui-monospace, monospace";
1790 flex: "1";
1791 }
1792
1793 pub c_event_mouse_area {
1794 min-height: "120px";
1795 padding: format!("{} 0px", var!(space-xl));
1796 border: format!("2px dashed {}", var!(border));
1797 cursor: "crosshair";
1798 text-align: "center";
1799 user-select: "none";
1800 color: "inherit";
1801 }
1802
1803 pub c_event_drag_zone {
1804 min-height: "100px";
1805 padding: format!("{} 0px", var!(space-xl));
1806 border: format!("2px dashed {}", var!(border));
1807 text-align: "center";
1808 user-select: "none";
1809 color: var!(foreground);
1810 }
1811
1812 pub c_event_drag_zone_active {
1813 min-height: "100px";
1814 padding: format!("{} 0px", var!(space-xl));
1815 border: format!("2px dashed {}", var!(border));
1816 text-align: "center";
1817 user-select: "none";
1818 color: var!(foreground);
1819 }
1820
1821 pub c_event_drag_item {
1822 display: "inline-block";
1823 padding: format!("{} {}", var!(space-sm), var!(space-xl));
1824 background: var!(accent);
1825 color: var!(text-on-accent);
1826 font-size: var!(font-base);
1827 font-weight: "500";
1828 cursor: "grab";
1829 margin: var!(space-sm);
1830 }
1831
1832 pub c_event_drop_zone {
1833 border: format!("2px dashed {}", var!(border));
1834 padding: format!("{} {}", var!(space-4xl), var!(space-xl));
1835 text-align: "center";
1836 cursor: "pointer";
1837 }
1838
1839 pub c_event_drop_zone_active {
1840 border: format!("2px dashed {}", var!(accent));
1841 padding: format!("{} {}", var!(space-4xl), var!(space-xl));
1842 text-align: "center";
1843 cursor: "pointer";
1844 background: var!(accent-muted);
1845 }
1846
1847 pub c_event_drop_icon {
1848 font-size: var!(font-5xl);
1849 display: "block";
1850 padding-bottom: var!(space-md);
1851 }
1852
1853 pub c_event_drop_text {
1854 font-size: var!(font-lg);
1855 font-weight: "500";
1856 color: "inherit";
1857 padding-bottom: var!(space-md);
1858 }
1859
1860 pub c_event_drop_hint {
1861 font-size: var!(font-base);
1862 color: "inherit";
1863 opacity: "1";
1864 margin: "0px";
1865 }
1866
1867 pub c_event_wheel_zone {
1868 min-height: "120px";
1869 padding: format!("{} 0px", var!(space-xl));
1870 border: format!("2px dashed {}", var!(border));
1871 text-align: "center";
1872 overflow: "auto";
1873 color: var!(foreground);
1874 }
1875
1876 pub c_event_clipboard_area {
1877 color: var!(foreground);
1878 }
1879
1880 pub c_event_touch_zone {
1881 min-height: "120px";
1882 padding: format!("{} 0px", var!(space-xl));
1883 border: format!("2px dashed {}", var!(accent));
1884 text-align: "center";
1885 touch-action: "none";
1886 user-select: "none";
1887 color: var!(accent);
1888 }
1889
1890 pub c_event_form_area {
1891 padding: format!("{} 0px", var!(space-lg));
1892 color: var!(foreground);
1893 }
1894
1895 pub c_event_media_area {
1896 padding: format!("{} 0px", var!(space-lg));
1897 color: var!(foreground);
1898 max-width: "100%";
1899 overflow: "hidden";
1900 }
1901
1902 pub c_event_audio {
1903 width: "100%";
1904 max-width: "100%";
1905 }
1906
1907 pub c_event_video_area {
1908 color: var!(foreground);
1909 width: "100%";
1910 overflow: "hidden";
1911 }
1912
1913 pub c_event_video {
1914 width: "100%";
1915 max-width: "100%";
1916 }
1917
1918 pub c_event_image_area {
1919 padding: format!("{} 0px", var!(space-lg));
1920 color: "inherit";
1921 width: "100%";
1922 overflow: "hidden";
1923 display: "flex";
1924 flex-direction: "column";
1925 align-items: "center";
1926 gap: var!(space-md);
1927 }
1928
1929 pub c_event_image {
1930 width: "200px";
1931 max-width: "100%";
1932 object-fit: "contain";
1933 display: "block";
1934 }
1935
1936 pub c_event_url_text {
1937 text-align: "center";
1938 font-size: var!(font-sm);
1939 color: "inherit";
1940 opacity: "1";
1941 font-family: "ui-monospace, monospace";
1942 word-break: "break-all";
1943 width: "100%";
1944 }
1945
1946 pub c_timer_display {
1951 text-align: "center";
1952 padding: var!(space-xl);
1953 margin: format!("{} 0px", var!(gap-component));
1954 color: "inherit";
1955 }
1956
1957 pub c_timer_value {
1958 font-size: var!(font-base);
1959 font-weight: "700";
1960 color: var!(accent);
1961 letter-spacing: "0.04em";
1962 font-family: "ui-monospace, monospace";
1963 }
1964
1965 pub c_timer_controls {
1966 display: "flex";
1967 flex-wrap: "wrap";
1968 gap: var!(gap-element);
1969 }
1970
1971 pub c_timer_done {
1972 text-align: "center";
1973 margin-top: var!(gap-component);
1974 font-size: var!(font-lg);
1975 font-weight: "600";
1976 color: var!(foreground);
1977 }
1978
1979 pub c_modal_overlay {
1984 position: "fixed";
1985 top: "0px";
1986 left: "0px";
1987 width: "100%";
1988 height: "100%";
1989 background: var!(bg-overlay);
1990 contain: "layout style paint";
1991 display: "flex";
1992 align-items: "center";
1993 justify-content: "center";
1994 z-index: "1000";
1995 animation: format!("euv-fade-in {} {}", var!(duration-modal-overlay), var!(ease-out));
1996 @media ((max-width: 767px)) {
1997 align-items: "center";
1998 justify-content: "center";
1999 }
2000 }
2001
2002 pub c_modal_content {
2003 background: var!(background);
2004 padding: "0px";
2005 max-width: "480px";
2006 width: "90%";
2007 animation: format!("euv-scale-in-modal {} {}", var!(duration-modal-content), var!(ease-bounce));
2008 overflow: "hidden";
2009 color: var!(foreground);
2010 box-sizing: "border-box";
2011 @media ((max-width: 767px)) {
2012 max-width: "100%";
2013 width: "calc(100% - 32px)";
2014 max-height: "85vh";
2015 overflow-y: "auto";
2016 }
2017 }
2018
2019 pub c_modal_header {
2020 display: "flex";
2021 justify-content: "space-between";
2022 align-items: "center";
2023 padding: format!("{} {} 0px {}", var!(space-md), var!(space-xl), var!(space-xl));
2024 }
2025
2026 pub c_modal_title {
2027 margin: "0px";
2028 font-size: var!(font-xl);
2029 font-weight: "600";
2030 color: "inherit";
2031 }
2032
2033 pub c_modal_body {
2034 padding: format!("0px {} {} {}", var!(space-xl), var!(space-md), var!(space-xl));
2035 color: "inherit";
2036 }
2037
2038 pub c_modal_actions {
2039 display: "flex";
2040 flex-wrap: "wrap";
2041 gap: var!(space-md);
2042 margin: format!("{} 0px", var!(space-md));
2043 }
2044
2045 pub c_anim_fade_in {
2050 margin-top: var!(gap-component);
2051 animation: format!("euv-fade-in 0.5s {}", var!(ease-out));
2052 font-size: var!(font-base);
2053 color: "inherit";
2054 }
2055
2056 pub c_anim_spin_container {
2057 display: "flex";
2058 justify-content: "center";
2059 align-items: "center";
2060 margin: format!("{} 0px", var!(space-lg));
2061 min-height: "80px";
2062 }
2063
2064 pub c_anim_spin {
2065 font-size: var!(font-5xl);
2066 animation: "euv-spin 1.5s linear infinite";
2067 display: "inline-block";
2068 @media ((max-width: 767px)) {
2069 font-size: var!(font-4xl);
2070 }
2071 }
2072
2073 pub c_anim_spin_stopped {
2074 font-size: var!(font-5xl);
2075 display: "inline-block";
2076 opacity: "1";
2077 @media ((max-width: 767px)) {
2078 font-size: var!(font-4xl);
2079 }
2080 }
2081
2082 pub c_anim_pulse_container {
2083 display: "flex";
2084 justify-content: "center";
2085 align-items: "center";
2086 margin: format!("{} 0px", var!(space-lg));
2087 min-height: "80px";
2088 }
2089
2090 pub c_anim_pulse {
2091 font-size: var!(font-5xl);
2092 animation: "euv-pulse 1.5s ease-in-out infinite";
2093 display: "inline-block";
2094 color: var!(foreground);
2095 @media ((max-width: 767px)) {
2096 font-size: var!(font-4xl);
2097 }
2098 }
2099
2100 pub c_anim_pulse_stopped {
2101 font-size: var!(font-5xl);
2102 display: "inline-block";
2103 opacity: "1";
2104 color: var!(foreground);
2105 @media ((max-width: 767px)) {
2106 font-size: var!(font-4xl);
2107 }
2108 }
2109
2110 pub c_progress_container {
2111 width: "100%";
2112 height: "12px";
2113 margin: format!("{} 0px", var!(space-lg));
2114 overflow: "hidden";
2115 }
2116
2117 pub c_progress_bar_running {
2118 height: "100%";
2119 background: var!(accent);
2120 animation: format!("euv-progress 1.6s {} forwards", var!(ease-in-out));
2121 }
2122
2123 pub c_progress_bar_stopped {
2124 height: "100%";
2125 background: var!(accent);
2126 width: "0%";
2127 }
2128
2129 pub c_anim_scale_box {
2130 margin: format!("{} 0px", var!(gap-component));
2131 padding: var!(space-xl);
2132 background: var!(accent);
2133 cursor: "pointer";
2134 transition: format!("transform {} {}", var!(duration-normal), var!(ease-out));
2135 }
2136
2137 pub c_browser_api_row {
2142 display: "grid";
2143 grid-template-columns: "1fr 1fr";
2144 gap: var!(gap-component);
2145 margin-bottom: var!(gap-component);
2146 @media ((max-width: 767px)) {
2147 grid-template-columns: "1fr";
2148 }
2149 }
2150
2151 pub c_browser_api_actions {
2152 display: "flex";
2153 flex-wrap: "wrap";
2154 gap: var!(gap-element);
2155 margin: format!("{} 0px", var!(gap-component));
2156 }
2157
2158 pub c_browser_result_box {
2159 margin-top: var!(gap-component);
2160 font-size: var!(font-base);
2161 word-break: "break-all";
2162 color: "inherit";
2163 }
2164
2165 pub c_browser_result_label {
2166 font-weight: "600";
2167 color: var!(accent);
2168 }
2169
2170 pub c_browser_result_value {
2171 color: "inherit";
2172 }
2173
2174 pub c_browser_info_grid {
2175 display: "grid";
2176 gap: var!(gap-component);
2177 margin-top: var!(gap-component);
2178 @media ((max-width: 767px)) {
2179 grid-template-columns: "1fr";
2180 }
2181 }
2182
2183 pub c_browser_info_item {
2184 display: "flex";
2185 flex-direction: "column";
2186 gap: var!(space-xs);
2187 color: "inherit";
2188 }
2189
2190 pub c_browser_info_label {
2191 font-size: var!(font-sm);
2192 font-weight: "600";
2193 color: "inherit";
2194 opacity: "1";
2195 text-transform: "uppercase";
2196 letter-spacing: "0.05em";
2197 }
2198
2199 pub c_browser_info_value {
2200 font-size: var!(font-base);
2201 color: "inherit";
2202 word-break: "break-all";
2203 font-family: "ui-monospace, monospace";
2204 }
2205
2206 pub c_vconsole_badge {
2211 position: "absolute";
2212 top: "-6px";
2213 right: "-8px";
2214 min-width: "18px";
2215 height: "18px";
2216 background: var!(background);
2217 color: var!(foreground);
2218 font-size: "10px";
2219 font-weight: "600";
2220 display: "flex";
2221 align-items: "center";
2222 justify-content: "center";
2223 padding: format!("0px {}", var!(space-xs));
2224 border: format!("1px solid {}", var!(accent));
2225 pointer-events: "none";
2226 transition: format!("transform {} {}, opacity {} {}", var!(duration-normal), var!(ease-out), var!(duration-normal), var!(ease-out));
2227 }
2228
2229 pub c_vconsole_overlay {
2230 position: "fixed";
2231 top: "0px";
2232 left: "0px";
2233 right: "0px";
2234 bottom: "0px";
2235 z-index: "10000";
2236 background: var!(bg-overlay);
2237 contain: "layout style paint";
2238 transition: format!("opacity {} {}", var!(duration-overlay), var!(ease-out));
2239 }
2240
2241 pub c_vconsole_overlay_hidden {
2242 opacity: "0";
2243 pointer-events: "none";
2244 }
2245
2246 pub c_vconsole_panel {
2247 position: "fixed";
2248 bottom: "0px";
2249 left: "0px";
2250 right: "0px";
2251 height: format!("calc(76vh - {})", var!(safe-area-inset-bottom));
2252 background: var!(background);
2253 z-index: "10001";
2254 display: "flex";
2255 flex-direction: "column";
2256 contain: "layout style paint";
2257 will-change: "transform";
2258 transition: format!("transform {} {}", var!(duration-overlay), var!(ease-out));
2259 overflow: "hidden";
2260 padding: format!("{} {}", var!(padding-main-top), var!(padding-main-horizontal));
2261 @media ((max-width: 767px)) {
2262 padding: format!("{} {}", var!(space-md), var!(padding-main-horizontal-mobile));
2263 }
2264 }
2265
2266 pub c_vconsole_panel_closed {
2267 transform: "translateY(100%)";
2268 will-change: "auto";
2269 }
2270
2271 pub c_vconsole_fab {
2272 position: "fixed";
2273 bottom: format!("calc(20px + {})", var!(safe-area-inset-bottom));
2274 right: var!(padding-main-horizontal);
2275 z-index: "9999";
2276 @media ((max-width: 767px)) {
2277 bottom: format!("calc(16px + {})", var!(safe-area-inset-bottom));
2278 right: var!(padding-main-horizontal-mobile);
2279 }
2280 }
2281
2282 pub c_vconsole_header {
2283 display: "flex";
2284 justify-content: "space-between";
2285 align-items: "center";
2286 flex-shrink: "0";
2287 }
2288
2289 pub c_vconsole_title {
2290 color: var!(foreground);
2291 font-size: var!(font-md);
2292 font-weight: "600";
2293 margin: "0px";
2294 letter-spacing: "0.03em";
2295 display: "flex";
2296 align-items: "center";
2297 gap: var!(space-sm);
2298 }
2299
2300 pub c_vconsole_title_dot {
2301 width: "8px";
2302 height: "8px";
2303 background: var!(accent);
2304 display: "inline-block";
2305 animation: "euv-pulse 2s ease-in-out infinite";
2306 }
2307
2308 pub c_vconsole_header_actions {
2309 display: "flex";
2310 gap: var!(space-sm);
2311 align-items: "center";
2312 }
2313
2314 pub c_vconsole_clear_button {
2315 display: "inline-flex";
2316 justify-content: "center";
2317 align-items: "center";
2318 color: var!(foreground);
2319 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2320 font-size: var!(font-xs);
2321 font-weight: "600";
2322 cursor: "pointer";
2323 text-align: "center";
2324 border: format!("1.5px solid {}", var!(border));
2325 margin-left: "auto";
2326 :focus-visible {
2327 outline: "none";
2328 }
2329 }
2330
2331 pub c_vconsole_close_button {
2332 display: "inline-flex";
2333 justify-content: "center";
2334 align-items: "center";
2335 color: var!(foreground);
2336 padding: format!("{} {}", var!(space-xs), var!(space-md));
2337 cursor: "pointer";
2338 font-size: var!(font-sm);
2339 font-weight: "400";
2340 text-align: "center";
2341 white-space: "nowrap";
2342 user-select: "none";
2343 -webkit-user-select: "none";
2344 vertical-align: "middle";
2345 outline: "none";
2346 transition: format!("all {} {}", var!(duration-fast), var!(ease-out));
2347 :hover {
2348 border-color: var!(foreground);
2349 color: var!(foreground);
2350 background: var!(background);
2351 }
2352 :focus-visible {
2353 outline: "none";
2354 }
2355 :active {
2356 background: "transparent";
2357 color: var!(foreground);
2358 border-color: var!(border);
2359 }
2360 }
2361
2362 pub c_vconsole_body {
2363 flex: "1";
2364 overflow-y: "auto";
2365 contain: "content";
2366 padding-bottom: var!(space-md);
2367 font-family: "ui-monospace, monospace";
2368 font-size: var!(font-xs);
2369 }
2370
2371 pub c_vconsole_log_item {
2372 display: "flex";
2373 align-items: "center";
2374 padding: format!("{} 0px", var!(space-sm));
2375 border-bottom: format!("1px dashed {}", var!(border));
2376 color: var!(foreground);
2377 font-size: var!(font-xs);
2378 word-break: "break-all";
2379 }
2380
2381 pub c_vconsole_empty {
2382 color: var!(muted-foreground);
2383 font-size: var!(font-xs);
2384 text-align: "center";
2385 padding: format!("{} 0px", var!(space-4xl));
2386 overflow: "hidden";
2387 }
2388
2389 pub c_vconsole_empty_hidden {
2390 height: "0";
2391 overflow: "hidden";
2392 padding: "0";
2393 }
2394
2395 pub c_vconsole_log_list {
2396 overflow: "hidden";
2397 }
2398
2399 pub c_vconsole_log_list_hidden {
2400 height: "0";
2401 overflow: "hidden";
2402 }
2403
2404 pub c_vconsole_count {
2405 color: var!(muted-foreground);
2406 font-size: var!(font-sm);
2407 font-weight: "400";
2408 }
2409
2410 pub c_vconsole_filter_bar {
2411 display: "flex";
2412 gap: var!(space-sm);
2413 padding: format!("{} 0px", var!(space-sm));
2414 border-bottom: format!("1px dashed {}", var!(border));
2415 flex-shrink: "0";
2416 align-items: "center";
2417 }
2418
2419 pub c_vconsole_filter_badge {
2420 display: "inline-flex";
2421 justify-content: "center";
2422 align-items: "center";
2423 color: var!(text-on-accent);
2424 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2425 border: format!("1px solid {}", var!(accent));
2426 font-size: var!(font-xs);
2427 font-weight: "600";
2428 cursor: "pointer";
2429 text-align: "center";
2430 background: var!(accent);
2431 :focus-visible {
2432 outline: "none";
2433 }
2434 }
2435
2436 pub c_vconsole_filter_badge_outline {
2437 display: "inline-flex";
2438 justify-content: "center";
2439 align-items: "center";
2440 color: var!(foreground);
2441 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2442 font-size: var!(font-xs);
2443 font-weight: "600";
2444 cursor: "pointer";
2445 text-align: "center";
2446 border: format!("1.5px solid {}", var!(border));
2447 }
2448
2449 pub c_vconsole_level_badge {
2450 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2451 font-size: var!(font-xs);
2452 margin-right: var!(space-sm);
2453 letter-spacing: "0.05em";
2454 color: var!(foreground);
2455 border: "1px solid currentColor";
2456 wrap: "nowrap";
2457 flex-shrink: "0";
2458 }
2459
2460 pub c_mobile_header {
2465 display: "flex";
2466 align-items: "center";
2467 justify-content: "space-between";
2468 padding: format!("var(--euv-mobile-safe-top, 0px) 0px 0px {}", var!(space-lg));
2469 height: format!("calc({} + var(--euv-mobile-safe-top, 0px))", var!(mobile-header-height));
2470 flex-shrink: "0";
2471 position: "sticky";
2472 top: "0px";
2473 z-index: "100";
2474 contain: "content";
2475 background: var!(background);
2476 border-bottom: format!("1px solid {}", var!(border));
2477 }
2478
2479 pub c_mobile_header_left {
2480 display: "flex";
2481 align-items: "center";
2482 gap: format!("{}", var!(space-md));
2483 }
2484
2485 pub c_mobile_header_logo {
2486 display: "flex";
2487 align-items: "center";
2488 gap: format!("{}", var!(space-sm));
2489 text-decoration: "none";
2490 color: var!(foreground);
2491 }
2492
2493 pub c_mobile_menu_button {
2494 width: "40px";
2495 height: "40px";
2496 border: "none";
2497 cursor: "pointer";
2498 font-size: "22px";
2499 font-weight: "700";
2500 display: "flex";
2501 align-items: "center";
2502 justify-content: "center";
2503 color: var!(foreground);
2504 padding: "0px";
2505 :active {
2506 background: "transparent";
2507 color: var!(foreground);
2508 }
2509 }
2510
2511 pub c_mobile_theme_button {
2512 width: "40px";
2513 height: "40px";
2514 border: "none";
2515 cursor: "pointer";
2516 display: "flex";
2517 align-items: "center";
2518 justify-content: "center";
2519 padding: "0px";
2520 :active {
2521 background: "transparent";
2522 }
2523 }
2524
2525 pub c_mobile_menu_button_active {
2526 width: "40px";
2527 height: "40px";
2528 border: "none";
2529 cursor: "pointer";
2530 font-size: "22px";
2531 font-weight: "700";
2532 display: "flex";
2533 align-items: "center";
2534 justify-content: "center";
2535 color: var!(accent);
2536 padding: "0px";
2537 :active {
2538 background: var!(background);
2539 color: var!(accent);
2540 }
2541 }
2542
2543 pub c_mobile_drawer_close_button {
2544 width: "32px";
2545 height: "32px";
2546 border: "none";
2547 cursor: "pointer";
2548 font-size: "18px";
2549 font-weight: "500";
2550 display: "flex";
2551 align-items: "center";
2552 justify-content: "center";
2553 color: var!(muted-foreground);
2554 padding: "0px";
2555 transition: format!("color {} {}", var!(duration-fast), var!(ease-out));
2556 :hover {
2557 color: var!(foreground);
2558 }
2559 :active {
2560 color: var!(muted-foreground);
2561 }
2562 }
2563
2564 pub c_mobile_overlay {
2565 position: "fixed";
2566 top: "0px";
2567 left: "0px";
2568 width: "100%";
2569 height: "100%";
2570 background: var!(bg-overlay);
2571 z-index: "200";
2572 contain: "layout style paint";
2573 transition: format!("opacity {} {}", var!(duration-overlay), var!(ease-out));
2574 }
2575
2576 pub c_mobile_overlay_hidden {
2577 opacity: "0";
2578 pointer-events: "none";
2579 }
2580
2581 pub c_mobile_nav_drawer {
2582 position: "fixed";
2583 top: "0px";
2584 left: "0px";
2585 width: "240px";
2586 max-width: "100%";
2587 height: "100%";
2588 background: var!(background);
2589 z-index: "201";
2590 display: "flex";
2591 flex-direction: "column";
2592 padding-top: "var(--euv-mobile-safe-top, 0px)";
2593 padding-bottom: var!(padding-shell-bottom);
2594 contain: "layout style paint";
2595 will-change: "transform";
2596 transition: format!("transform {} {}", var!(duration-overlay), var!(ease-out));
2597 overflow: "hidden";
2598 }
2599
2600 pub c_mobile_nav_drawer_closed {
2601 transform: "translateX(-100%)";
2602 }
2603
2604 pub c_mobile_nav_drawer_header {
2605 display: "flex";
2606 align-items: "center";
2607 justify-content: "space-between";
2608 padding: format!("0px {}", var!(space-lg));
2609 height: var!(mobile-header-height);
2610 flex-shrink: "0";
2611 position: "relative";
2612 ::after {
2613 content: "''";
2614 position: "absolute";
2615 bottom: "0px";
2616 left: var!(space-lg);
2617 right: var!(space-lg);
2618 height: "1px";
2619 background: format!("linear-gradient(90deg, transparent, {}, transparent)", var!(border));
2620 }
2621 }
2622
2623 pub c_mobile_main {
2624 c_app_main();
2625 ::-webkit-scrollbar {
2626 width: "0px";
2627 }
2628 }
2629
2630 pub c_keep_alive_tab_bar {
2635 display: "flex";
2636 border-bottom: format!("1px dashed {}", var!(border));
2637 margin-bottom: var!(gap-component);
2638 gap: var!(gap-element);
2639 }
2640
2641 pub c_keep_alive_tab_panel {
2642 padding: format!("{} 0px", var!(gap-element));
2643 }
2644
2645 pub c_keep_alive_panel_title {
2646 margin-top: "0px";
2647 color: var!(accent);
2648 font-size: var!(font-md);
2649 margin-bottom: var!(gap-element);
2650 }
2651
2652 pub c_keep_alive_demo_text {
2653 color: "inherit";
2654 font-size: var!(font-base);
2655 margin-bottom: var!(gap-component);
2656 }
2657
2658 pub c_keep_alive_counter_display {
2659 display: "flex";
2660 justify-content: "center";
2661 align-items: "center";
2662 margin: format!("{} 0px", var!(space-xl));
2663 }
2664
2665 pub c_keep_alive_counter_value {
2666 font-size: var!(font-base);
2667 font-weight: "700";
2668 font-variant-numeric: "tabular-nums";
2669 color: var!(accent);
2670 text-align: "center";
2671 }
2672
2673 pub c_keep_alive_counter_controls {
2674 display: "flex";
2675 flex-wrap: "wrap";
2676 gap: format!("{}", var!(space-md));
2677 }
2678
2679 pub c_keep_alive_form_group {
2680 margin-bottom: var!(gap-component);
2681 }
2682
2683 pub c_keep_alive_form_preview {
2684 margin-top: var!(gap-component);
2685 background: var!(accent-muted);
2686 }
2687
2688 pub c_keep_alive_preview_label {
2689 font-size: var!(font-base);
2690 font-weight: "600";
2691 color: var!(accent);
2692 margin: format!("0px 0px {} 0px", var!(space-xs));
2693 }
2694
2695 pub c_file_upload_input_hidden {
2700 position: "absolute";
2701 width: "1px";
2702 height: "1px";
2703 padding: "0px";
2704 margin: "-1px";
2705 overflow: "hidden";
2706 clip: "rect(0, 0, 0, 0)";
2707 white-space: "nowrap";
2708 border: "0px";
2709 }
2710
2711 pub c_file_upload_options {
2712 margin: format!("{} 0px", var!(gap-component));
2713 }
2714
2715 pub c_file_upload_item {
2716 display: "flex";
2717 align-items: "center";
2718 gap: format!("{}", var!(space-md));
2719 margin: format!("{} 0px", var!(space-sm));
2720 font-size: var!(font-base);
2721 color: "inherit";
2722 }
2723
2724 pub c_file_upload_item_index {
2725 font-size: var!(font-sm);
2726 font-weight: "600";
2727 color: var!(accent);
2728 min-width: "24px";
2729 }
2730
2731 pub c_file_upload_item_name {
2732 color: "inherit";
2733 word-break: "break-all";
2734 }
2735
2736 pub c_binding_child_box {
2741 display: "flex";
2742 flex-direction: "column";
2743 gap: var!(gap-component);
2744 margin-top: var!(gap-component);
2745 }
2746
2747 pub c_binding_child_label {
2748 font-size: var!(font-base);
2749 font-weight: "600";
2750 color: var!(accent);
2751 text-transform: "uppercase";
2752 letter-spacing: "0.05em";
2753 }
2754
2755 pub c_binding_parent_box {
2756 display: "flex";
2757 flex-direction: "column";
2758 gap: var!(gap-component);
2759 margin-top: var!(gap-component);
2760 }
2761
2762 pub c_binding_section_title {
2763 margin-top: var!(gap-component);
2764 margin-bottom: var!(gap-element);
2765 color: var!(accent);
2766 font-size: var!(font-md);
2767 font-weight: "600";
2768 }
2769
2770 pub c_binding_temp_converter {
2771 display: "flex";
2772 align-items: "flex-end";
2773 gap: var!(gap-component);
2774 flex-wrap: "wrap";
2775 margin-top: var!(gap-component);
2776 }
2777
2778 pub c_binding_temp_field {
2779 flex: "1";
2780 min-width: "120px";
2781 }
2782
2783 pub c_binding_temp_arrow {
2784 font-size: "20px";
2785 font-weight: "700";
2786 color: var!(accent);
2787 padding-bottom: "10px";
2788 }
2789
2790 pub c_binding_color_mixer {
2791 margin-top: var!(gap-component);
2792 }
2793
2794 pub c_binding_color_preview {
2795 width: "100%";
2796 height: "80px";
2797 display: "flex";
2798 align-items: "center";
2799 justify-content: "center";
2800 margin-bottom: var!(gap-component);
2801 }
2802
2803 pub c_binding_color_hex {
2804 font-family: "ui-monospace, monospace";
2805 font-size: var!(font-xl);
2806 font-weight: "700";
2807 color: var!(text-on-accent);
2808 letter-spacing: "0.02em";
2809 }
2810
2811 pub c_binding_slider_row {
2812 display: "flex";
2813 align-items: "center";
2814 gap: format!("{}", var!(space-md));
2815 margin-bottom: var!(space-sm);
2816 }
2817
2818 pub c_binding_slider_label {
2819 font-size: var!(font-base);
2820 font-weight: "700";
2821 min-width: var!(font-sm);
2822 }
2823
2824 pub c_binding_slider {
2825 flex: "1";
2826 height: "24px";
2827 padding: "0px";
2828 cursor: "pointer";
2829 -webkit-appearance: "none";
2830 appearance: "none";
2831 border: "none";
2832 outline: "none";
2833 ::-webkit-slider-runnable-track {
2834 height: "6px";
2835 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
2836 border-radius: "3px";
2837 border: "none";
2838 }
2839 ::-webkit-slider-thumb {
2840 width: "20px";
2841 height: "20px";
2842 background: var!(background);
2843 border: format!("2px solid {}", var!(accent));
2844 border-radius: "50%";
2845 cursor: "pointer";
2846 -webkit-appearance: "none";
2847 margin-top: "-7px";
2848 }
2849 : active::-webkit-slider-thumb {
2850 transform: "scale(0.92)";
2851 }
2852 ::-moz-range-track {
2853 height: "6px";
2854 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
2855 border-radius: "3px";
2856 border: "none";
2857 }
2858 ::-moz-range-thumb {
2859 width: "20px";
2860 height: "20px";
2861 background: var!(background);
2862 border: format!("2px solid {}", var!(accent));
2863 border-radius: "50%";
2864 cursor: "pointer";
2865 }
2866 : active::-moz-range-thumb {
2867 transform: "scale(0.92)";
2868 }
2869 }
2870
2871 pub c_binding_slider_value {
2872 font-size: var!(font-base);
2873 font-weight: "500";
2874 color: "inherit";
2875 min-width: "32px";
2876 text-align: "right";
2877 font-family: "ui-monospace, monospace";
2878 }
2879
2880 pub c_binding_typed_prop_value {
2881 font-family: "ui-monospace, monospace";
2882 font-size: var!(font-base);
2883 font-weight: "600";
2884 color: var!(accent);
2885 padding: format!("1px {}", var!(space-sm));
2886 }
2887
2888 pub c_binding_typed_prop_group {
2889 display: "flex";
2890 align-items: "center";
2891 gap: var!(space-sm);
2892 }
2893
2894 pub c_binding_typed_warning {
2895 font-size: var!(font-base);
2896 font-weight: "500";
2897 color: var!(foreground);
2898 margin-bottom: "0px";
2899 }
2900
2901 pub c_binding_form_label {
2902 display: "block";
2903 color: "inherit";
2904 font-weight: "500";
2905 font-size: var!(font-base);
2906 }
2907
2908 pub c_binding_demo_text {
2909 color: "inherit";
2910 margin: "0px"
2911 }
2912
2913 pub c_binding_compact_button {
2914 display: "inline-flex";
2915 justify-content: "center";
2916 align-items: "center";
2917 height: "42px";
2918 padding: format!("0px {}", var!(space-md));
2919 background: var!(accent);
2920 color: var!(text-on-accent);
2921 border: format!("1px solid {}", var!(accent));
2922 cursor: "pointer";
2923 font-size: var!(font-sm);
2924 font-weight: "600";
2925 outline: "none";
2926 white-space: "nowrap";
2927 user-select: "none";
2928 -webkit-user-select: "none";
2929 box-sizing: "border-box";
2930 :hover {
2931 background: var!(accent);
2932 }
2933 :focus-visible {
2934 outline: "none";
2935 }
2936 :active {
2937 background: var!(accent);
2938 color: var!(text-on-accent);
2939 border-color: var!(accent);
2940 }
2941 }
2942
2943 pub c_attrs_dynamic_demo(prop_key: &str, prop_value: &str) {
2948 {
2949 prop_key
2950 }
2951 : prop_value;
2952 }
2959
2960 pub c_dynamic_component_tab_bar {
2965 display: "flex";
2966 flex-wrap: "wrap";
2967 gap: var!(gap-element);
2968 margin-bottom: var!(gap-component);
2969 }
2970
2971 pub c_dynamic_component_panel {
2972 display: "block";
2973 min-height: var!(min-height-sm);
2974 margin-top: var!(gap-component);
2975 }
2976
2977 pub c_virtual_list_status {
2982 display: "flex";
2983 gap: var!(gap-component);
2984 padding: format!("{} 0px", var!(gap-component));
2985 flex-wrap: "nowrap";
2986 overflow: "hidden";
2987 text-overflow: "ellipsis";
2988 white-space: "nowrap";
2989 @media ((max-width: 767px)) {
2990 gap: var!(gap-component-mobile);
2991 }
2992 }
2993
2994 pub c_virtual_list_status_item {
2995 font-size: var!(font-base);
2996 color: "inherit";
2997 overflow: "hidden";
2998 text-overflow: "ellipsis";
2999 white-space: "nowrap";
3000 }
3001
3002 pub c_virtual_list_status_value {
3003 font-weight: "700";
3004 color: var!(accent);
3005 font-family: "ui-monospace, monospace";
3006 }
3007
3008 pub c_virtual_list_container {
3009 flex: "1";
3010 height: "666px";
3011 max-height: "666px";
3012 overflow-y: "auto";
3013 }
3014
3015 pub c_virtual_list_card {
3016 flex: "1";
3017 padding: var!(space-xl);
3018 color: var!(foreground);
3019 display: "flex";
3020 flex-direction: "column";
3021 @media ((max-width: 767px)) {
3022 padding: var!(space-lg);
3023 }
3024 }
3025
3026 pub c_virtual_list_row {
3027 display: "flex";
3028 align-items: "center";
3029 gap: var!(space-lg);
3030 height: "100%";
3031 box-sizing: "border-box";
3032 }
3033
3034 pub c_virtual_list_row_index {
3035 min-width: "36px";
3036 font-size: var!(font-sm);
3037 font-weight: "600";
3038 color: var!(accent);
3039 font-family: "ui-monospace, monospace";
3040 flex-shrink: "0";
3041 display: "flex";
3042 align-items: "center";
3043 }
3044
3045 pub c_virtual_list_row_label {
3046 font-size: var!(font-base);
3047 font-weight: "500";
3048 color: "inherit";
3049 min-width: "120px";
3050 flex-shrink: "0";
3051 overflow: "hidden";
3052 text-overflow: "ellipsis";
3053 white-space: "nowrap";
3054 display: "flex";
3055 align-items: "center";
3056 }
3057
3058 pub c_virtual_list_row_description {
3059 font-size: var!(font-base);
3060 color: "inherit";
3061 opacity: "1";
3062 overflow: "hidden";
3063 text-overflow: "ellipsis";
3064 white-space: "nowrap";
3065 flex: "1";
3066 display: "flex";
3067 align-items: "center";
3068 }
3069
3070 pub c_element_stack {
3075 display: "flex";
3076 flex-direction: "column";
3077 gap: var!(gap-element);
3078 }
3079
3080 pub c_switcher {
3081 display: "flex";
3082 gap: var!(gap-component);
3083 flex-wrap: "wrap";
3084 @media ((max-width: 767px)) {
3085 flex-direction: "column";
3086 gap: var!(gap-component-mobile);
3087 }
3088 }
3089
3090 pub c_switcher_col {
3091 flex: "1";
3092 min-width: "200px";
3093 @media ((max-width: 767px)) {
3094 min-width: "100%";
3095 }
3096 }
3097
3098 pub c_hint {
3103 color: "inherit";
3104 opacity: "1";
3105 font-size: var!(font-base);
3106 margin-bottom: var!(gap-component);
3107 }
3108
3109 pub c_net_messages_empty {
3114 color: "inherit";
3115 opacity: "1";
3116 padding: var!(space-xl);
3117 text-align: "center";
3118 font-size: var!(font-base);
3119 }
3120
3121 pub c_net_messages_list {
3122 display: "flex";
3123 flex-direction: "column";
3124 gap: var!(space-xs);
3125 }
3126
3127 pub c_net_message_item {
3128 display: "flex";
3129 align-items: "baseline";
3130 gap: var!(gap-element);
3131 justify-content: "space-between";
3132 }
3133
3134 pub c_net_message_index {
3135 color: var!(accent);
3136 font-size: var!(font-sm);
3137 font-weight: "600";
3138 white-space: "nowrap";
3139 flex-shrink: "0";
3140 }
3141
3142 pub c_net_message_data {
3143 color: "inherit";
3144 font-size: var!(font-base);
3145 word-break: "break-all";
3146 overflow-wrap: "break-word";
3147 flex: "1";
3148 min-width: "0";
3149 }
3150
3151 pub c_ws_message_input {
3156 width: "100%";
3157 flex: "1";
3158 height: "42px";
3159 padding: format!("0px {}", var!(space-lg));
3160 color: var!(foreground);
3161 border: format!("1px solid {}", var!(border));
3162 font-size: var!(font-base);
3163 line-height: "normal";
3164 box-sizing: "border-box";
3165 outline: "none";
3166 appearance: "none";
3167 -webkit-appearance: "none";
3168 -moz-appearance: "none";
3169 vertical-align: "middle";
3170 :hover {
3171 border-color: var!(accent);
3172 background: var!(accent-muted);
3173 }
3174 :focus {
3175 outline: "none";
3176 border-color: var!(accent);
3177 background: var!(accent-muted);
3178 }
3179 }
3180
3181 pub c_ws_message_time {
3182 color: var!(foreground);
3183 font-size: var!(font-sm);
3184 white-space: "nowrap";
3185 flex-shrink: "0";
3186 margin-left: "auto";
3187 }
3188
3189 pub c_home {
3198 position: "relative";
3199 text-align: "center";
3200 margin-bottom: var!(space-xl);
3201 flex: "1";
3202 display: "flex";
3203 flex-direction: "column";
3204 justify-content: "center";
3205 @media ((max-width: 767px)) {
3206 margin-bottom: var!(space-lg);
3207 flex: "0 0 auto";
3208 justify-content: "flex-start";
3209 }
3210 }
3211
3212 pub c_home_content {
3213 position: "relative";
3214 z-index: "1";
3215 }
3216
3217 pub c_home_badge_row {
3218 display: "inline-flex";
3219 align-items: "center";
3220 gap: var!(space-sm);
3221 margin-bottom: var!(space-md);
3222 }
3223
3224 pub c_home_badge {
3225 display: "inline-flex";
3226 justify-content: "center";
3227 align-items: "center";
3228 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3229 color: var!(accent);
3230 font-size: var!(font-xs);
3231 font-weight: "600";
3232 letter-spacing: "0.05em";
3233 border: format!("1px solid {}", var!(accent));
3234 }
3235
3236 pub c_home_title {
3237 font-size: var!(font-5xl);
3238 font-weight: "800";
3239 letter-spacing: "-0.03em";
3240 margin: "0px";
3241 color: var!(foreground);
3242 margin-bottom: var!(space-xs);
3243 @media ((max-width: 767px)) {
3244 font-size: var!(font-4xl);
3245 }
3246 }
3247
3248 pub c_home_subtitle {
3249 font-size: var!(font-lg);
3250 color: var!(foreground);
3251 margin: "0px auto";
3252 max-width: "520px";
3253 margin-bottom: var!(space-lg);
3254 @media ((max-width: 767px)) {
3255 font-size: var!(font-base);
3256 }
3257 }
3258
3259 pub c_home_actions {
3260 display: "flex";
3261 gap: var!(space-md);
3262 justify-content: "center";
3263 flex-wrap: "wrap";
3264 }
3265
3266 pub c_home_btn_primary {
3267 display: "inline-flex";
3268 justify-content: "center";
3269 align-items: "center";
3270 gap: var!(space-sm);
3271 padding: format!("{} {}", var!(space-sm), var!(space-2xl));
3272 background: var!(accent);
3273 color: var!(text-on-accent);
3274 font-size: var!(font-base);
3275 font-weight: "600";
3276 text-decoration: "none";
3277 border: "1.5px solid transparent";
3278 cursor: "pointer";
3279 letter-spacing: "0.01em";
3280 vertical-align: "middle";
3281 min-height: var!(min-height-sm);
3282 :focus-visible {
3283 outline: "none";
3284 }
3285 :active {
3286 background: var!(accent);
3287 color: var!(text-on-accent);
3288 border-color: "1.5px solid transparent";
3289 }
3290 }
3291
3292 pub c_home_btn_secondary {
3293 display: "inline-flex";
3294 justify-content: "center";
3295 align-items: "center";
3296 gap: var!(space-sm);
3297 padding: format!("{} {}", var!(space-sm), var!(space-2xl));
3298 color: var!(accent);
3299 font-size: var!(font-base);
3300 font-weight: "600";
3301 text-decoration: "none";
3302 border: format!("1.5px solid {}", var!(accent));
3303 cursor: "pointer";
3304 letter-spacing: "0.01em";
3305 vertical-align: "middle";
3306 min-height: var!(min-height-sm);
3307 :focus-visible {
3308 outline: "none";
3309 }
3310 :active {
3311 background: "transparent";
3312 color: var!(accent);
3313 border-color: var!(accent);
3314 }
3315 }
3316
3317 pub c_home_stats {
3322 display: "grid";
3323 grid-template-columns: "repeat(4, 1fr)";
3324 gap: var!(space-md);
3325 margin-bottom: var!(space-xl);
3326 @media ((max-width: 767px)) {
3327 grid-template-columns: "repeat(2, 1fr)";
3328 gap: var!(space-sm);
3329 }
3330 }
3331
3332 pub c_home_stat_card {
3333 display: "flex";
3334 flex-direction: "column";
3335 align-items: "center";
3336 justify-content: "center";
3337 gap: var!(space-xs);
3338 }
3339
3340 pub c_home_stat_icon {
3341 font-size: var!(font-2xl);
3342 }
3343
3344 pub c_home_stat_value {
3345 font-size: var!(font-xl);
3346 font-weight: "800";
3347 color: var!(foreground);
3348 letter-spacing: "-0.01em";
3349 }
3350
3351 pub c_home_stat_label {
3352 font-size: var!(font-sm);
3353 color: var!(muted-foreground);
3354 font-weight: "500";
3355 }
3356
3357 pub c_home_section_title {
3362 font-size: var!(font-2xl);
3363 font-weight: "700";
3364 color: var!(foreground);
3365 margin: "0px";
3366 margin: format!("{} 0px", var!(gap-component));
3367 letter-spacing: "-0.02em";
3368 }
3369
3370 pub c_home_section_desc {
3371 font-size: var!(font-base);
3372 color: var!(foreground);
3373 margin: "0px";
3374 margin-bottom: var!(space-2xl);
3375 }
3376
3377 pub c_home_feature_grid {
3378 display: "grid";
3379 grid-template-columns: "repeat(2, 1fr)";
3380 gap: var!(space-md);
3381 @media ((max-width: 767px)) {
3382 grid-template-columns: "1fr";
3383 }
3384 }
3385
3386 pub c_feature_card {
3387 display: "flex";
3388 flex-direction: "column";
3389 gap: var!(space-sm);
3390 padding: "0px";
3391 overflow: "hidden";
3392 }
3393
3394 pub c_feature_header {
3395 display: "flex";
3396 align-items: "center";
3397 gap: var!(space-sm);
3398 }
3399
3400 pub c_feature_icon {
3401 font-size: var!(font-2xl);
3402 display: "flex";
3403 align-items: "center";
3404 justify-content: "center";
3405 line-height: "1";
3406 flex-shrink: "0";
3407 }
3408
3409 pub c_feature_name {
3410 font-size: var!(font-lg);
3411 font-weight: "600";
3412 color: var!(foreground);
3413 margin: "0px";
3414 overflow: "hidden";
3415 text-overflow: "ellipsis";
3416 white-space: "nowrap";
3417 }
3418
3419 pub c_feature_desc {
3420 font-size: var!(font-sm);
3421 color: var!(foreground);
3422 margin: "0px";
3423 }
3424
3425 pub c_debug {
3436 display: "flex";
3437 flex-direction: "row";
3438 align-items: "baseline";
3439 gap: var!(space-sm);
3440 padding: var!(space-xs);
3441 border: format!("1px dashed {}", var!(accent-muted));
3442 border-radius: var!(radius-sm);
3443 background: var!(surface-muted);
3444 font-family: "ui-monospace, SFMono-Regular, monospace";
3445 font-size: var!(font-sm);
3446 color: var!(foreground);
3447 margin: format!("{} 0px", var!(space-xs));
3448 }
3449
3450 pub c_debug_label {
3451 font-weight: "600";
3452 color: var!(accent);
3453 flex-shrink: "0";
3454 }
3455
3456 pub c_debug_value {
3457 font-family: "ui-monospace, SFMono-Regular, monospace";
3458 color: var!(foreground);
3459 margin: "0px";
3460 }
3461
3462 pub c_euv_navbar {
3467 position: "fixed";
3468 top: "0px";
3469 left: "0px";
3470 right: "0px";
3471 height: "56px";
3472 display: "flex";
3473 align-items: "center";
3474 gap: var!(gap-element);
3475 padding: format!("0px {}", var!(padding-main-horizontal));
3476 border-bottom: format!("1px solid {}", var!(border));
3477 background: var!(background);
3478 z-index: "100";
3479 @media ((max-width: 767px)) {
3480 padding: format!("0px {}", var!(padding-main-horizontal-mobile));
3481 }
3482 }
3483 pub c_euv_navbar_brand {
3484 display: "flex";
3485 align-items: "center";
3486 gap: var!(gap-element);
3487 font-size: var!(font-lg);
3488 font-weight: "700";
3489 letter-spacing: "-0.02em";
3490 color: var!(foreground);
3491 cursor: "pointer";
3492 flex-shrink: "0";
3493 }
3494 pub c_euv_navbar_logo {
3495 width: "32px";
3496 height: "32px";
3497 display: "flex";
3498 align-items: "center";
3499 justify-content: "center";
3500 background: var!(accent);
3501 color: var!(text-on-accent);
3502 font-size: var!(font-lg);
3503 flex-shrink: "0";
3504 }
3505 pub c_euv_navbar_links {
3506 display: "flex";
3507 align-items: "center";
3508 gap: var!(gap-section);
3509 margin-left: "auto";
3510 @media ((max-width: 767px)) {
3511 display: "none";
3512 }
3513 }
3514 pub c_euv_navbar_link {
3515 font-size: var!(font-sm);
3516 font-weight: "500";
3517 color: var!(foreground);
3518 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3519 border-bottom: "2px solid transparent";
3520 cursor: "pointer";
3521 hover {
3522 color: var!(accent);
3523 }
3524 }
3525 pub c_euv_navbar_link_active {
3526 font-size: var!(font-sm);
3527 font-weight: "600";
3528 color: var!(accent);
3529 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3530 border-bottom: format!("2px solid {}", var!(accent));
3531 cursor: "pointer";
3532 }
3533 pub c_euv_navbar_actions {
3534 display: "flex";
3535 align-items: "center";
3536 gap: var!(gap-element);
3537 margin-left: var!(gap-section);
3538 @media ((max-width: 767px)) {
3539 margin-left: "auto";
3540 }
3541 }
3542 pub c_euv_navbar_icon_button {
3543 width: "36px";
3544 height: "36px";
3545 display: "flex";
3546 align-items: "center";
3547 justify-content: "center";
3548 border: format!("1px dashed {}", var!(border));
3549 cursor: "pointer";
3550 font-size: var!(font-base);
3551 hover {
3552 background: var!(accent-muted);
3553 }
3554 }
3555 pub c_euv_navbar_menu_button {
3556 display: "none";
3557 width: "40px";
3558 height: "40px";
3559 align-items: "center";
3560 justify-content: "center";
3561 font-size: var!(font-xl);
3562 cursor: "pointer";
3563 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3564 @media ((max-width: 767px)) {
3565 display: "flex";
3566 }
3567 }
3568 pub c_euv_navbar_menu_button_active {
3569 display: "none";
3570 width: "40px";
3571 height: "40px";
3572 align-items: "center";
3573 justify-content: "center";
3574 font-size: var!(font-xl);
3575 cursor: "pointer";
3576 background: var!(accent-muted);
3577 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3578 @media ((max-width: 767px)) {
3579 display: "flex";
3580 }
3581 }
3582
3583 pub c_euv_dropdown {
3588 position: "relative";
3589 }
3590 pub c_euv_dropdown_menu {
3591 position: "absolute";
3592 top: "44px";
3593 right: "0px";
3594 width: "100%";
3606 background: var!(background);
3607 border: format!("1px solid {}", var!(border));
3608 box-shadow: var!(shadow-accent-lg);
3609 flex-direction: "column";
3610 z-index: "101";
3611 }
3612 pub c_euv_dropdown_menu_open {
3613 display: "flex";
3614 }
3615 pub c_euv_dropdown_menu_closed {
3616 display: "none";
3617 }
3618 pub c_euv_dropdown_item {
3619 padding: format!("{} {}", var!(space-sm), var!(space-lg));
3620 font-size: var!(font-sm);
3621 text-align: "left";
3622 cursor: "pointer";
3623 hover {
3624 background: var!(accent-muted);
3625 }
3626 }
3627
3628 pub c_euv_sidebar_group {
3633 margin-bottom: var!(space-xs);
3634 }
3635 pub c_euv_sidebar_group_title {
3636 display: "flex";
3637 align-items: "center";
3638 justify-content: "space-between";
3639 width: "100%";
3640 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3641 font-size: var!(font-sm);
3642 font-weight: "600";
3643 cursor: "pointer";
3644 text-align: "left";
3645 hover {
3646 background: var!(accent-muted);
3647 }
3648 }
3649 pub c_euv_sidebar_group_arrow {
3650 font-size: var!(font-xs);
3651 color: var!(muted-foreground);
3652 transition: format!("transform {} {}", var!(duration-fast), var!(ease-out));
3653 }
3654 pub c_euv_sidebar_group_arrow_open {
3655 transform: "rotate(90deg)";
3656 }
3657 pub c_euv_sidebar_children {
3658 display: "flex";
3659 flex-direction: "column";
3660 padding-left: var!(space-md);
3661 border-left: format!("1px dashed {}", var!(border));
3662 margin-left: var!(space-sm);
3663 animation: format!("euv-fade-in {} {}", var!(duration-normal), var!(ease-out));
3664 }
3665 pub c_euv_sidebar_link {
3666 display: "block";
3667 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3668 font-size: var!(font-sm);
3669 color: var!(foreground);
3670 cursor: "pointer";
3671 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3672 hover {
3673 background: var!(accent-muted);
3674 color: var!(accent);
3675 box-shadow: format!("inset 4px 0px 0px {}", var!(accent));
3676 }
3677 }
3678 pub c_euv_sidebar_link_active {
3679 display: "block";
3680 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3681 font-size: var!(font-sm);
3682 background: var!(accent);
3683 color: var!(text-on-accent);
3684 font-weight: "600";
3685 cursor: "pointer";
3686 }
3687
3688 pub c_euv_toc {
3693 position: "sticky";
3694 top: "76px";
3695 display: "flex";
3696 flex-direction: "column";
3697 gap: var!(space-xs);
3698 border-left: format!("1px solid {}", var!(border));
3699 padding-left: var!(space-lg);
3700 }
3701 pub c_euv_toc_title {
3702 font-size: var!(font-xs);
3703 font-weight: "700";
3704 text-transform: "uppercase";
3705 letter-spacing: "0.08em";
3706 color: var!(muted-foreground);
3707 margin-bottom: var!(space-xs);
3708 }
3709 pub c_euv_toc_link {
3710 font-size: var!(font-sm);
3711 color: var!(muted-foreground);
3712 cursor: "pointer";
3713 line-height: "1.5";
3714 hover {
3715 color: var!(accent);
3716 }
3717 }
3718 pub c_euv_toc_link_nested {
3719 padding-left: var!(space-lg);
3720 }
3721
3722 pub c_euv_pagination {
3727 display: "flex";
3728 justify-content: "space-between";
3729 gap: var!(gap-component);
3730 margin-top: var!(space-4xl);
3731 @media ((max-width: 767px)) {
3732 flex-direction: "column";
3733 }
3734 }
3735 pub c_euv_pagination_link {
3736 flex: "1";
3737 border: format!("1px solid {}", var!(border));
3738 padding: var!(space-lg);
3739 cursor: "pointer";
3740 display: "flex";
3741 flex-direction: "column";
3742 gap: var!(space-2xs);
3743 hover {
3744 border-color: var!(accent);
3745 }
3746 }
3747 pub c_euv_pagination_label {
3748 font-size: var!(font-xs);
3749 color: var!(muted-foreground);
3750 text-transform: "uppercase";
3751 letter-spacing: "0.08em";
3752 }
3753 pub c_euv_pagination_text {
3754 font-size: var!(font-base);
3755 font-weight: "600";
3756 color: var!(accent);
3757 }
3758 pub c_euv_pagination_next {
3759 text-align: "right";
3760 }
3761 pub c_euv_pagination_spacer {
3762 flex: "1";
3763 }
3764
3765 pub c_euv_drawer_overlay {
3770 position: "fixed";
3771 top: "0px";
3772 left: "0px";
3773 right: "0px";
3774 bottom: "0px";
3775 background: var!(bg-overlay);
3776 z-index: "200";
3777 transition: format!("opacity {} {}, visibility {} {}", var!(duration-overlay), var!(ease-out), var!(duration-overlay), var!(ease-out));
3778 }
3779 pub c_euv_drawer_overlay_open {
3780 opacity: "1";
3781 visibility: "visible";
3782 }
3783 pub c_euv_drawer_overlay_closed {
3784 opacity: "0";
3785 visibility: "hidden";
3786 }
3787 pub c_euv_drawer {
3788 position: "fixed";
3789 top: "0px";
3790 left: "0px";
3791 bottom: "0px";
3792 width: "260px";
3793 background: var!(background);
3794 border-right: format!("1px solid {}", var!(border));
3795 z-index: "201";
3796 overflow-y: "auto";
3797 padding: var!(space-xl);
3798 transition: format!("transform {} {}, visibility {} {}", var!(duration-normal), var!(ease-out), var!(duration-normal), var!(ease-out));
3799 }
3800 pub c_euv_drawer_open {
3801 transform: "translateX(0px)";
3802 visibility: "visible";
3803 }
3804 pub c_euv_drawer_closed {
3805 transform: "translateX(-100%)";
3806 visibility: "hidden";
3807 }
3808
3809 pub c_euv_markdown {
3814 width: "100%";
3815 min-width: "0px";
3816 }
3817 pub c_euv_footer {
3818 margin-top: var!(space-7xl);
3819 padding: format!("{} 0px", var!(space-2xl));
3820 border-top: format!("1px dashed {}", var!(border));
3821 text-align: "center";
3822 font-size: var!(font-sm);
3823 color: var!(muted-foreground);
3824 }
3825
3826 pub c_euv_result {
3831 display: "flex";
3832 flex-direction: "column";
3833 align-items: "center";
3834 justify-content: "center";
3835 text-align: "center";
3836 gap: var!(space-md);
3837 padding: format!("{} {}", var!(space-4xl), var!(space-md));
3838 min-height: "50vh";
3839 }
3840 pub c_euv_result_code {
3841 font-size: var!(font-6xl);
3842 font-weight: "700";
3843 line-height: "1";
3844 letter-spacing: "-0.02em";
3845 }
3846 pub c_euv_result_title {
3847 font-size: var!(font-2xl);
3848 font-weight: "600";
3849 margin: "0px";
3850 }
3851 pub c_euv_result_description {
3852 color: var!(muted-foreground);
3853 margin: "0px";
3854 }
3855 pub c_euv_result_actions {
3856 display: "flex";
3857 gap: var!(space-md);
3858 margin-top: var!(space-lg);
3859 }
3860
3861 pub c_euv_doc_layout {
3862 display: "flex";
3863 gap: var!(space-4xl);
3864 width: "100%";
3865 min-width: "0px";
3866 max-width: "1080px";
3867 margin: "0px auto";
3868 }
3869 pub c_euv_doc_content {
3870 flex: "1";
3871 min-width: "0px";
3872 max-width: var!(content-max-width);
3873 }
3874 pub c_euv_doc_toc {
3875 width: "200px";
3876 flex-shrink: "0";
3877 @media ((max-width: 1100px)) {
3878 display: "none";
3879 }
3880 }
3881}