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_counter_value_row {
1041 margin-top: var!(space-sm);
1042 word-break: "break-all";
1043 overflow-wrap: "anywhere";
1044 font-size: var!(font-base);
1045 color: "inherit";
1046 font-weight: "400";
1047 }
1048
1049 pub c_badge_row {
1050 display: "flex";
1051 gap: var!(gap-inline);
1052 flex-wrap: "wrap";
1053 align-items: "center";
1054 }
1055
1056 pub c_badge_hint {
1057 margin-bottom: var!(gap-component);
1058 color: "inherit";
1059 opacity: "1";
1060 font-size: var!(font-base);
1061 }
1062
1063 pub c_text_ellipsis {
1068 overflow: "hidden";
1069 text-overflow: "ellipsis";
1070 white-space: "nowrap";
1071 }
1072
1073 pub c_info_row {
1074 display: "flex";
1075 align-items: "center";
1076 gap: var!(space-md);
1077 padding: format!("{} 0", var!(space-sm));
1078 overflow: "hidden";
1079 }
1080
1081 pub c_info_label {
1082 font-size: var!(font-sm);
1083 font-weight: "500";
1084 color: var!(muted-foreground);
1085 min-width: "72px";
1086 flex-shrink: "0";
1087 letter-spacing: "0.02em";
1088 }
1089
1090 pub c_info_value {
1091 c_text_ellipsis();
1092 font-size: var!(font-base);
1093 font-weight: "600";
1094 color: var!(foreground);
1095 font-family: "ui-monospace, monospace";
1096 flex: "1";
1097 }
1098
1099 pub c_info_link {
1100 c_text_ellipsis();
1101 font-size: var!(font-base);
1102 font-weight: "600";
1103 color: var!(accent);
1104 font-family: "ui-monospace, monospace";
1105 flex: "1";
1106 text-decoration: "none";
1107 transition: format!("opacity {} {}", var!(duration-fast), var!(ease-out));
1108 :hover {
1109 opacity: "1";
1110 }
1111 }
1112
1113 pub c_camera_video_container {
1118 margin: format!("{} 0", var!(space-lg));
1119 }
1120
1121 pub c_camera_video_active {
1122 width: "100%";
1123 background: "#000";
1124 aspect-ratio: "16 / 9";
1125 object-fit: "cover";
1126 border: format!("2px solid {}", var!(accent));
1127 box-sizing: "border-box";
1128 }
1129
1130 pub c_camera_video_hidden {
1131 width: "100%";
1132 aspect-ratio: "16 / 9";
1133 display: "none";
1134 }
1135
1136 pub c_camera_video_placeholder {
1137 width: "100%";
1138 aspect-ratio: "16 / 9";
1139 border: format!("2px dashed {}", var!(border));
1140 display: "flex";
1141 align-items: "center";
1142 justify-content: "center";
1143 box-sizing: "border-box";
1144 }
1145
1146 pub c_camera_placeholder_content {
1147 display: "flex";
1148 flex-direction: "column";
1149 align-items: "center";
1150 gap: var!(space-md);
1151 }
1152
1153 pub c_camera_placeholder_icon {
1154 font-size: var!(font-4xl);
1155 opacity: "1";
1156 }
1157
1158 pub c_camera_placeholder_text {
1159 font-size: var!(font-base);
1160 color: "inherit";
1161 opacity: "1";
1162 }
1163
1164 pub c_camera_error_box {
1165 margin: format!("{} 0px", var!(gap-component));
1166 color: var!(foreground);
1167 font-size: var!(font-base);
1168 word-break: "break-all";
1169 overflow-wrap: "break-word";
1170 box-sizing: "border-box";
1171 }
1172
1173 pub c_camera_scan_result_box {
1174 margin-top: var!(gap-component);
1175 box-sizing: "border-box";
1176 }
1177
1178 pub c_camera_scan_result_label {
1179 font-size: var!(font-sm);
1180 font-weight: "600";
1181 color: var!(foreground);
1182 margin-bottom: var!(space-xs);
1183 }
1184
1185 pub c_camera_scan_result_value {
1186 font-size: var!(font-base);
1187 color: "inherit";
1188 word-break: "break-all";
1189 overflow-wrap: "break-word";
1190 }
1191
1192 pub c_canvas_preview_container {
1197 margin: format!("{} 0", var!(space-lg));
1198 overflow: "hidden";
1199 border: format!("2px solid {}", var!(border));
1200 background: "#ffffff";
1201 aspect-ratio: "9 / 16";
1202 display: "flex";
1203 align-items: "center";
1204 justify-content: "center";
1205 box-sizing: "border-box";
1206 }
1207
1208 pub c_canvas_placeholder {
1209 color: var!(muted-foreground);
1210 font-size: var!(font-sm);
1211 text-align: "center";
1212 padding: var!(space-lg);
1213 }
1214
1215 pub c_canvas_preview_image {
1216 width: "100%";
1217 height: "100%";
1218 object-fit: "cover";
1219 display: "block";
1220 }
1221
1222 pub c_canvas_container_fullscreen {
1223 width: "100%";
1224 height: "100%";
1225 background: var!(background);
1226 display: "flex";
1227 flex-direction: "column";
1228 position: "fixed";
1229 top: "0";
1230 left: "0";
1231 z-index: "10002";
1232 padding: format!("{} {} {} {}", var!(padding-shell-top), var!(space-lg), var!(padding-shell-bottom), var!(space-lg));
1233 box-sizing: "border-box";
1234 }
1235
1236 pub c_canvas_drawing_fullscreen_wrapper {
1237 flex: "1";
1238 display: "flex";
1239 align-items: "center";
1240 justify-content: "center";
1241 overflow: "hidden";
1242 padding: var!(space-xs);
1243 }
1244
1245 pub c_canvas_drawing_fullscreen {
1246 border: format!("2px solid {}", var!(border));
1247 display: "block";
1248 cursor: "crosshair";
1249 touch-action: "none";
1250 }
1251
1252 pub c_canvas_fullscreen_toolbar {
1253 display: "flex";
1254 flex-direction: "column";
1255 align-items: "stretch";
1256 width: "100%";
1257 padding: format!("{} {}", var!(space-xs), "0px");
1258 flex-shrink: "0";
1259 gap: var!(space-xs);
1260 }
1261
1262 pub c_canvas_fullscreen_toolbar_row_top {
1263 display: "flex";
1264 align-items: "center";
1265 height: var!(mobile-header-height);
1266 width: "100%";
1267 gap: var!(space-sm);
1268 }
1269
1270 pub c_canvas_fullscreen_toolbar_color_wrapper {
1271 display: "flex";
1272 align-items: "center";
1273 justify-content: "center";
1274 flex: "1";
1275 min-width: "0";
1276 }
1277
1278 pub c_canvas_color_input_fullscreen {
1279 width: "100%";
1280 height: "42px";
1281 border: format!("1px solid {}", var!(border));
1282 cursor: "pointer";
1283 padding: format!("{}", var!(space-xs));
1284 }
1285
1286 pub c_canvas_fullscreen_toolbar_row_bottom {
1287 display: "flex";
1288 align-items: "center";
1289 width: "100%";
1290 }
1291
1292 pub c_canvas_fullscreen_range_input {
1293 flex: "1 1 0%";
1294 min-width: "120px";
1295 cursor: "pointer";
1296 -webkit-appearance: "none";
1297 appearance: "none";
1298 border: "none";
1299 outline: "none";
1300 height: "24px";
1301 ::-webkit-slider-runnable-track {
1302 height: "6px";
1303 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
1304 border-radius: "3px";
1305 border: "none";
1306 }
1307 ::-webkit-slider-thumb {
1308 width: "20px";
1309 height: "20px";
1310 background: var!(background);
1311 border: format!("2px solid {}", var!(accent));
1312 border-radius: "50%";
1313 cursor: "pointer";
1314 -webkit-appearance: "none";
1315 margin-top: "-7px";
1316 }
1317 ::-moz-range-track {
1318 height: "6px";
1319 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
1320 border-radius: "3px";
1321 border: "none";
1322 }
1323 ::-moz-range-thumb {
1324 width: "20px";
1325 height: "20px";
1326 background: var!(background);
1327 border: format!("2px solid {}", var!(accent));
1328 border-radius: "50%";
1329 cursor: "pointer";
1330 }
1331 }
1332
1333 pub c_canvas_fullscreen_toolbar_button {
1334 flex: "0 0 auto";
1335 overflow: "hidden";
1336 }
1337
1338 pub c_game_container_fullscreen {
1352 width: "100%";
1353 height: "100%";
1354 background: var!(background);
1355 display: "flex";
1356 flex-direction: "column";
1357 position: "fixed";
1358 top: "0";
1359 left: "0";
1360 z-index: "10002";
1361 padding: format!(
1362 "{} {} {} {}",
1363 var!(padding-shell-top),
1364 var!(space-lg),
1365 var!(padding-shell-bottom),
1366 var!(space-lg)
1367 );
1368 box-sizing: "border-box";
1369 }
1370
1371 pub c_game_fullscreen_toolbar {
1377 display: "flex";
1378 align-items: "center";
1379 justify-content: "flex-end";
1380 width: "100%";
1381 padding: format!("{} {} {} {}", var!(space-xs), var!(space-lg), var!(space-xs), var!(space-lg));
1382 flex-shrink: "0";
1383 gap: var!(space-sm);
1384 box-sizing: "border-box";
1385 }
1386
1387 pub c_game_fullscreen_canvas_letterbox {
1401 position: "relative";
1402 width: "100%";
1403 max-width: "100%";
1404 max-height: "100%";
1405 height: "100%";
1406 display: "flex";
1407 align-items: "center";
1408 justify-content: "center";
1409 }
1410
1411 pub c_custom_attrs_demo {
1416 color: var!(foreground);
1421 box-sizing: "border-box";
1422 }
1423
1424 pub c_demo_text {
1425 color: var!(foreground);
1426 margin-bottom: var!(gap-component);
1427 }
1428
1429 pub c_demo_text_muted {
1430 color: var!(foreground);
1431 opacity: "1";
1432 font-size: var!(font-base);
1433 margin-bottom: "0px";
1434 }
1435
1436 pub c_loading_container {
1441 display: "flex";
1442 align-items: "center";
1443 justify-content: "center";
1444 gap: var!(gap-component);
1445 margin: format!("{} 0px", var!(gap-component));
1446 box-sizing: "border-box";
1447 }
1448
1449 pub c_spinner {
1450 width: "28px";
1451 height: "28px";
1452 border: format!("3px solid {}", var!(accent-muted));
1453 border-top: format!("3px solid {}", var!(accent));
1454 border-radius: "50%";
1455 flex-shrink: "0";
1456 animation: "euv-spin 0.8s linear infinite";
1457 }
1458
1459 pub c_loading_text_col {
1460 display: "flex";
1461 flex-direction: "column";
1462 gap: var!(space-xs);
1463 }
1464
1465 pub c_loading_title {
1466 color: var!(foreground);
1467 font-size: var!(font-md);
1468 font-weight: "500";
1469 }
1470
1471 pub c_loading_subtitle {
1472 color: var!(muted-foreground);
1473 font-size: var!(font-base);
1474 }
1475
1476 pub c_loading_overlay(background: &str) {
1477 position: "absolute";
1478 top: "0";
1479 left: "0";
1480 width: "100%";
1481 height: "100%";
1482 display: "flex";
1483 flex-direction: "column";
1484 align-items: "center";
1485 justify-content: "center";
1486 gap: var!(gap-component);
1487 background: background;
1488 z-index: "1";
1489 box-sizing: "border-box";
1490 }
1491
1492 pub c_error_container {
1493 display: "flex";
1494 align-items: "center";
1495 gap: var!(gap-element);
1496 margin-top: var!(gap-component);
1497 box-sizing: "border-box";
1498 }
1499
1500 pub c_error_icon {
1501 width: "20px";
1502 height: "20px";
1503 display: "flex";
1504 align-items: "center";
1505 justify-content: "center";
1506 flex-shrink: "0";
1507 color: var!(foreground);
1508 font-size: var!(font-sm);
1509 font-weight: "700";
1510 }
1511
1512 pub c_error_text {
1513 color: var!(foreground);
1514 font-size: var!(font-base);
1515 }
1516
1517 pub c_data_box {
1518 margin: format!("{} 0px", var!(gap-component));
1519 box-sizing: "border-box";
1520 }
1521
1522 pub c_data_pre {
1523 color: var!(foreground);
1524 font-size: var!(font-base);
1525 margin: "0px";
1526 white-space: "pre-wrap";
1527 word-break: "break-all";
1528 font-family: "ui-monospace, monospace";
1529 }
1530
1531 pub c_fetch_hint {
1532 color: "inherit";
1533 opacity: "1";
1534 font-size: var!(font-base);
1535 margin-bottom: var!(gap-component);
1536 }
1537
1538 pub c_toggle_content {
1543 margin-top: var!(gap-component);
1544 color: "inherit";
1545 }
1546
1547 pub c_toggle_title {
1548 margin-top: "0px";
1549 color: var!(accent);
1550 font-size: var!(font-md);
1551 }
1552
1553 pub c_role_button_row {
1554 display: "flex";
1555 flex-wrap: "nowrap";
1556 gap: var!(gap-element);
1557 margin-bottom: var!(gap-component);
1558 }
1559
1560 pub c_role_guest_text {
1561 color: var!(foreground);
1562 font-size: var!(font-base);
1563 }
1564
1565 pub c_role_user_text {
1566 color: var!(foreground);
1567 font-size: var!(font-base);
1568 }
1569
1570 pub c_role_admin_text {
1571 color: var!(foreground);
1572 font-size: var!(font-base);
1573 }
1574
1575 pub c_tab_bar {
1580 display: "flex";
1581 border-bottom: format!("1px dashed {}", var!(border));
1582 margin-bottom: var!(gap-component);
1583 gap: var!(gap-element);
1584 @media ((max-width: 767px)) {
1585 flex-wrap: "wrap";
1586 }
1587 }
1588
1589 pub c_tab_item_active {
1590 padding: format!("{} {}", var!(space-md), var!(space-xl));
1591 cursor: "pointer";
1592 border-bottom: format!("2px solid {}", var!(accent));
1593 color: var!(text-on-accent);
1594 background: var!(accent);
1595 font-size: var!(font-base);
1596 font-weight: "500";
1597 touch-action: "manipulation";
1598 user-select: "none";
1599 -webkit-user-select: "none";
1600 }
1601
1602 pub c_tab_item_inactive {
1603 padding: format!("{} {}", var!(space-md), var!(space-xl));
1604 cursor: "pointer";
1605 border-bottom: "2px solid transparent";
1606 color: "inherit";
1607 font-size: var!(font-base);
1608 font-weight: "500";
1609 touch-action: "manipulation";
1610 user-select: "none";
1611 -webkit-user-select: "none";
1612 :hover {
1613 background: var!(accent-muted);
1614 color: var!(accent);
1615 }
1616 }
1617
1618 pub c_tab_content {
1619 padding: format!("{} 0px", var!(gap-element));
1620 }
1621
1622 pub c_tab_text {
1623 color: "inherit";
1624 font-size: var!(font-base);
1625 margin-bottom: var!(gap-element);
1626 }
1627
1628 pub c_tab_text_muted {
1629 color: "inherit";
1630 opacity: "1";
1631 font-size: var!(font-base);
1632 }
1633
1634 pub c_tab_text_input {
1635 color: "inherit";
1636 font-size: var!(font-base);
1637 margin-bottom: var!(gap-component);
1638 }
1639
1640 pub c_list_input {
1645 width: "100%";
1646 flex: "1";
1647 height: "42px";
1648 padding: format!("0px {}", var!(space-lg));
1649 border: format!("1px solid {}", var!(border));
1650 font-size: var!(font-base);
1651 line-height: "normal";
1652 box-sizing: "border-box";
1653 outline: "none";
1654 color: var!(foreground);
1655 appearance: "none";
1656 -webkit-appearance: "none";
1657 -moz-appearance: "none";
1658 vertical-align: "middle";
1659 :hover {
1660 border-color: var!(accent);
1661 background: var!(accent-muted);
1662 }
1663 :focus {
1664 outline: "none";
1665 border-color: var!(accent);
1666 background: var!(accent-muted);
1667 }
1668 }
1669
1670 pub c_list_input_error {
1671 width: "100%";
1672 flex: "1";
1673 height: "42px";
1674 padding: format!("0px {}", var!(space-lg));
1675 border: format!("1px solid {}", var!(foreground));
1676 font-size: var!(font-base);
1677 line-height: "normal";
1678 box-sizing: "border-box";
1679 outline: "none";
1680 color: var!(foreground);
1681 appearance: "none";
1682 -webkit-appearance: "none";
1683 -moz-appearance: "none";
1684 vertical-align: "middle";
1685 :focus {
1686 outline: "none";
1687 border-color: var!(foreground);
1688 }
1689 }
1690
1691 pub c_list_error_text {
1692 color: var!(foreground);
1693 font-size: var!(font-base);
1694 margin: format!("{} 0px", var!(gap-element));
1695 }
1696
1697 pub c_inline_input_button_wrap {
1698 flex-shrink: "0";
1699 }
1700
1701 pub c_list_ul {
1702 list-style: "none";
1703 padding: "0px";
1704 margin: "0px";
1705 margin-top: var!(gap-component);
1706 }
1707
1708 pub c_list_item {
1709 display: "flex";
1710 justify-content: "space-between";
1711 align-items: "center";
1712 gap: var!(gap-component);
1713 min-height: var!(min-height-base);
1714 margin: format!("{} 0px", var!(gap-element));
1715 }
1716
1717 pub c_list_item_text {
1718 flex: "1";
1719 overflow: "hidden";
1720 text-overflow: "ellipsis";
1721 white-space: "nowrap";
1722 font-size: var!(font-base);
1723 color: "inherit";
1724 min-width: "0";
1725 }
1726
1727 pub c_list_item_button {
1728 max-width: "120px";
1729 flex-shrink: "0";
1730 }
1731
1732 pub c_log_container {
1737 font-family: "ui-monospace, monospace";
1738 font-size: var!(font-base);
1739 margin-top: "0px";
1740 color: var!(foreground);
1741 }
1742
1743 pub c_log_item {
1744 padding: format!("{} 0px", var!(space-sm));
1745 font-size: var!(font-base);
1746 color: var!(foreground);
1747 }
1748
1749 pub c_render_count_text {
1754 font-size: var!(font-base);
1755 color: "inherit";
1756 margin-bottom: var!(gap-component);
1757 }
1758
1759 pub c_event_result {
1764 font-size: var!(font-base);
1765 color: "inherit";
1766 margin-top: var!(gap-element);
1767 }
1768
1769 pub c_event_highlight {
1770 font-weight: "600";
1771 color: var!(accent);
1772 }
1773
1774 pub c_event_info_grid {
1775 display: "grid";
1776 grid-template-columns: "1fr 1fr";
1777 gap: var!(gap-element);
1778 margin-top: var!(gap-component);
1779 @media ((max-width: 767px)) {
1780 grid-template-columns: "1fr";
1781 gap: var!(gap-element);
1782 }
1783 }
1784
1785 pub c_event_info_row {
1786 display: "flex";
1787 align-items: "center";
1788 gap: var!(space-sm);
1789 overflow: "hidden";
1790 }
1791
1792 pub c_event_info_label {
1793 font-size: var!(font-base);
1794 font-weight: "600";
1795 color: var!(foreground);
1796 flex-shrink: "0";
1797 }
1798
1799 pub c_event_info_value {
1800 c_text_ellipsis();
1801 font-size: var!(font-base);
1802 font-weight: "600";
1803 color: var!(accent);
1804 font-family: "ui-monospace, monospace";
1805 flex: "1";
1806 }
1807
1808 pub c_event_mouse_area {
1809 min-height: "120px";
1810 padding: format!("{} 0px", var!(space-xl));
1811 border: format!("2px dashed {}", var!(border));
1812 cursor: "crosshair";
1813 text-align: "center";
1814 user-select: "none";
1815 color: "inherit";
1816 }
1817
1818 pub c_event_drag_zone {
1819 min-height: "100px";
1820 padding: format!("{} 0px", var!(space-xl));
1821 border: format!("2px dashed {}", var!(border));
1822 text-align: "center";
1823 user-select: "none";
1824 color: var!(foreground);
1825 }
1826
1827 pub c_event_drag_zone_active {
1828 min-height: "100px";
1829 padding: format!("{} 0px", var!(space-xl));
1830 border: format!("2px dashed {}", var!(border));
1831 text-align: "center";
1832 user-select: "none";
1833 color: var!(foreground);
1834 }
1835
1836 pub c_event_drag_item {
1837 display: "inline-block";
1838 padding: format!("{} {}", var!(space-sm), var!(space-xl));
1839 background: var!(accent);
1840 color: var!(text-on-accent);
1841 font-size: var!(font-base);
1842 font-weight: "500";
1843 cursor: "grab";
1844 margin: var!(space-sm);
1845 }
1846
1847 pub c_event_drop_zone {
1848 border: format!("2px dashed {}", var!(border));
1849 padding: format!("{} {}", var!(space-4xl), var!(space-xl));
1850 text-align: "center";
1851 cursor: "pointer";
1852 }
1853
1854 pub c_event_drop_zone_active {
1855 border: format!("2px dashed {}", var!(accent));
1856 padding: format!("{} {}", var!(space-4xl), var!(space-xl));
1857 text-align: "center";
1858 cursor: "pointer";
1859 background: var!(accent-muted);
1860 }
1861
1862 pub c_event_drop_icon {
1863 font-size: var!(font-5xl);
1864 display: "block";
1865 padding-bottom: var!(space-md);
1866 }
1867
1868 pub c_event_drop_text {
1869 font-size: var!(font-lg);
1870 font-weight: "500";
1871 color: "inherit";
1872 padding-bottom: var!(space-md);
1873 }
1874
1875 pub c_event_drop_hint {
1876 font-size: var!(font-base);
1877 color: "inherit";
1878 opacity: "1";
1879 margin: "0px";
1880 }
1881
1882 pub c_event_wheel_zone {
1883 min-height: "120px";
1884 padding: format!("{} 0px", var!(space-xl));
1885 border: format!("2px dashed {}", var!(border));
1886 text-align: "center";
1887 overflow: "auto";
1888 color: var!(foreground);
1889 }
1890
1891 pub c_event_clipboard_area {
1892 color: var!(foreground);
1893 }
1894
1895 pub c_event_touch_zone {
1896 min-height: "120px";
1897 padding: format!("{} 0px", var!(space-xl));
1898 border: format!("2px dashed {}", var!(accent));
1899 text-align: "center";
1900 touch-action: "none";
1901 user-select: "none";
1902 color: var!(accent);
1903 }
1904
1905 pub c_event_form_area {
1906 padding: format!("{} 0px", var!(space-lg));
1907 color: var!(foreground);
1908 }
1909
1910 pub c_event_media_area {
1911 padding: format!("{} 0px", var!(space-lg));
1912 color: var!(foreground);
1913 max-width: "100%";
1914 overflow: "hidden";
1915 }
1916
1917 pub c_event_audio {
1918 width: "100%";
1919 max-width: "100%";
1920 }
1921
1922 pub c_event_video_area {
1923 color: var!(foreground);
1924 width: "100%";
1925 overflow: "hidden";
1926 }
1927
1928 pub c_event_video {
1929 width: "100%";
1930 max-width: "100%";
1931 }
1932
1933 pub c_event_image_area {
1934 padding: format!("{} 0px", var!(space-lg));
1935 color: "inherit";
1936 width: "100%";
1937 overflow: "hidden";
1938 display: "flex";
1939 flex-direction: "column";
1940 align-items: "center";
1941 gap: var!(space-md);
1942 }
1943
1944 pub c_event_image {
1945 width: "200px";
1946 max-width: "100%";
1947 object-fit: "contain";
1948 display: "block";
1949 }
1950
1951 pub c_event_url_text {
1952 text-align: "center";
1953 font-size: var!(font-sm);
1954 color: "inherit";
1955 opacity: "1";
1956 font-family: "ui-monospace, monospace";
1957 word-break: "break-all";
1958 width: "100%";
1959 }
1960
1961 pub c_timer_display {
1966 text-align: "center";
1967 padding: var!(space-xl);
1968 margin: format!("{} 0px", var!(gap-component));
1969 color: "inherit";
1970 }
1971
1972 pub c_timer_value {
1973 font-size: var!(font-base);
1974 font-weight: "700";
1975 color: var!(accent);
1976 letter-spacing: "0.04em";
1977 font-family: "ui-monospace, monospace";
1978 }
1979
1980 pub c_timer_controls {
1981 display: "flex";
1982 flex-wrap: "wrap";
1983 gap: var!(gap-element);
1984 }
1985
1986 pub c_timer_done {
1987 text-align: "center";
1988 margin-top: var!(gap-component);
1989 font-size: var!(font-lg);
1990 font-weight: "600";
1991 color: var!(foreground);
1992 }
1993
1994 pub c_modal_overlay {
1999 position: "fixed";
2000 top: "0px";
2001 left: "0px";
2002 width: "100%";
2003 height: "100%";
2004 background: var!(bg-overlay);
2005 contain: "layout style paint";
2006 display: "flex";
2007 align-items: "center";
2008 justify-content: "center";
2009 z-index: "1000";
2010 animation: format!("euv-fade-in {} {}", var!(duration-modal-overlay), var!(ease-out));
2011 touch-action: "manipulation";
2012 user-select: "none";
2013 -webkit-user-select: "none";
2014 @media ((max-width: 767px)) {
2015 align-items: "center";
2016 justify-content: "center";
2017 }
2018 }
2019
2020 pub c_modal_content {
2021 background: var!(background);
2022 padding: "0px";
2023 max-width: "480px";
2024 width: "90%";
2025 animation: format!("euv-scale-in-modal {} {}", var!(duration-modal-content), var!(ease-bounce));
2026 overflow: "hidden";
2027 color: var!(foreground);
2028 box-sizing: "border-box";
2029 @media ((max-width: 767px)) {
2030 max-width: "100%";
2031 width: "calc(100% - 32px)";
2032 max-height: "85vh";
2033 overflow-y: "auto";
2034 }
2035 }
2036
2037 pub c_modal_header {
2038 display: "flex";
2039 justify-content: "space-between";
2040 align-items: "center";
2041 padding: format!("{} {} 0px {}", var!(space-md), var!(space-xl), var!(space-xl));
2042 }
2043
2044 pub c_modal_title {
2045 margin: "0px";
2046 font-size: var!(font-xl);
2047 font-weight: "600";
2048 color: "inherit";
2049 }
2050
2051 pub c_modal_body {
2052 padding: format!("0px {} {} {}", var!(space-xl), var!(space-md), var!(space-xl));
2053 color: "inherit";
2054 }
2055
2056 pub c_modal_actions {
2057 display: "flex";
2058 flex-wrap: "wrap";
2059 gap: var!(space-md);
2060 margin: format!("{} 0px", var!(space-md));
2061 }
2062
2063 pub c_anim_fade_in {
2068 margin-top: var!(gap-component);
2069 animation: format!("euv-fade-in 0.5s {}", var!(ease-out));
2070 font-size: var!(font-base);
2071 color: "inherit";
2072 }
2073
2074 pub c_anim_spin_container {
2075 display: "flex";
2076 justify-content: "center";
2077 align-items: "center";
2078 margin: format!("{} 0px", var!(space-lg));
2079 min-height: "80px";
2080 }
2081
2082 pub c_anim_spin {
2083 font-size: var!(font-5xl);
2084 animation: "euv-spin 1.5s linear infinite";
2085 display: "inline-block";
2086 @media ((max-width: 767px)) {
2087 font-size: var!(font-4xl);
2088 }
2089 }
2090
2091 pub c_anim_spin_stopped {
2092 font-size: var!(font-5xl);
2093 display: "inline-block";
2094 opacity: "1";
2095 @media ((max-width: 767px)) {
2096 font-size: var!(font-4xl);
2097 }
2098 }
2099
2100 pub c_anim_pulse_container {
2101 display: "flex";
2102 justify-content: "center";
2103 align-items: "center";
2104 margin: format!("{} 0px", var!(space-lg));
2105 min-height: "80px";
2106 }
2107
2108 pub c_anim_pulse {
2109 font-size: var!(font-5xl);
2110 animation: "euv-pulse 1.5s ease-in-out infinite";
2111 display: "inline-block";
2112 color: var!(foreground);
2113 @media ((max-width: 767px)) {
2114 font-size: var!(font-4xl);
2115 }
2116 }
2117
2118 pub c_anim_pulse_stopped {
2119 font-size: var!(font-5xl);
2120 display: "inline-block";
2121 opacity: "1";
2122 color: var!(foreground);
2123 @media ((max-width: 767px)) {
2124 font-size: var!(font-4xl);
2125 }
2126 }
2127
2128 pub c_progress_container {
2129 width: "100%";
2130 height: "12px";
2131 margin: format!("{} 0px", var!(space-lg));
2132 overflow: "hidden";
2133 }
2134
2135 pub c_progress_bar_running {
2136 height: "100%";
2137 background: var!(accent);
2138 animation: format!("euv-progress 1.6s {} forwards", var!(ease-in-out));
2139 }
2140
2141 pub c_progress_bar_stopped {
2142 height: "100%";
2143 background: var!(accent);
2144 width: "0%";
2145 }
2146
2147 pub c_anim_scale_box {
2148 margin: format!("{} 0px", var!(gap-component));
2149 padding: var!(space-xl);
2150 background: var!(accent);
2151 cursor: "pointer";
2152 transition: format!("transform {} {}", var!(duration-normal), var!(ease-out));
2153 }
2154
2155 pub c_browser_api_row {
2160 display: "grid";
2161 grid-template-columns: "1fr 1fr";
2162 gap: var!(gap-component);
2163 margin-bottom: var!(gap-component);
2164 @media ((max-width: 767px)) {
2165 grid-template-columns: "1fr";
2166 }
2167 }
2168
2169 pub c_browser_api_actions {
2170 display: "flex";
2171 flex-wrap: "wrap";
2172 gap: var!(gap-element);
2173 margin: format!("{} 0px", var!(gap-component));
2174 }
2175
2176 pub c_browser_result_box {
2177 margin-top: var!(gap-component);
2178 font-size: var!(font-base);
2179 word-break: "break-all";
2180 color: "inherit";
2181 }
2182
2183 pub c_browser_result_label {
2184 font-weight: "600";
2185 color: var!(accent);
2186 }
2187
2188 pub c_browser_result_value {
2189 color: "inherit";
2190 }
2191
2192 pub c_browser_info_grid {
2193 display: "grid";
2194 gap: var!(gap-component);
2195 margin-top: var!(gap-component);
2196 @media ((max-width: 767px)) {
2197 grid-template-columns: "1fr";
2198 }
2199 }
2200
2201 pub c_browser_info_item {
2202 display: "flex";
2203 flex-direction: "column";
2204 gap: var!(space-xs);
2205 color: "inherit";
2206 }
2207
2208 pub c_browser_info_label {
2209 font-size: var!(font-sm);
2210 font-weight: "600";
2211 color: "inherit";
2212 opacity: "1";
2213 text-transform: "uppercase";
2214 letter-spacing: "0.05em";
2215 }
2216
2217 pub c_browser_info_value {
2218 font-size: var!(font-base);
2219 color: "inherit";
2220 word-break: "break-all";
2221 font-family: "ui-monospace, monospace";
2222 }
2223
2224 pub c_vconsole_badge {
2229 position: "absolute";
2230 top: "-6px";
2231 right: "-8px";
2232 min-width: "18px";
2233 height: "18px";
2234 background: var!(background);
2235 color: var!(foreground);
2236 font-size: "10px";
2237 font-weight: "600";
2238 display: "flex";
2239 align-items: "center";
2240 justify-content: "center";
2241 padding: format!("0px {}", var!(space-xs));
2242 border: format!("1px solid {}", var!(accent));
2243 pointer-events: "none";
2244 transition: format!("transform {} {}, opacity {} {}", var!(duration-normal), var!(ease-out), var!(duration-normal), var!(ease-out));
2245 }
2246
2247 pub c_vconsole_overlay {
2248 position: "fixed";
2249 top: "0px";
2250 left: "0px";
2251 right: "0px";
2252 bottom: "0px";
2253 z-index: "10000";
2254 background: var!(bg-overlay);
2255 contain: "layout style paint";
2256 transition: format!("opacity {} {}", var!(duration-overlay), var!(ease-out));
2257 touch-action: "manipulation";
2258 user-select: "none";
2259 -webkit-user-select: "none";
2260 }
2261
2262 pub c_vconsole_overlay_hidden {
2263 opacity: "0";
2264 pointer-events: "none";
2265 }
2266
2267 pub c_vconsole_panel {
2268 position: "fixed";
2269 bottom: "0px";
2270 left: "0px";
2271 right: "0px";
2272 height: format!("calc(76vh - {})", var!(safe-area-inset-bottom));
2273 background: var!(background);
2274 z-index: "10001";
2275 display: "flex";
2276 flex-direction: "column";
2277 contain: "layout style paint";
2278 will-change: "transform";
2279 transition: format!("transform {} {}", var!(duration-overlay), var!(ease-out));
2280 overflow: "hidden";
2281 padding: format!("{} {}", var!(padding-main-top), var!(padding-main-horizontal));
2282 @media ((max-width: 767px)) {
2283 padding: format!("{} {}", var!(space-md), var!(padding-main-horizontal-mobile));
2284 }
2285 }
2286
2287 pub c_vconsole_panel_closed {
2288 transform: "translateY(100%)";
2289 will-change: "auto";
2290 }
2291
2292 pub c_vconsole_fab {
2293 position: "fixed";
2294 bottom: format!("calc(20px + {})", var!(safe-area-inset-bottom));
2295 right: var!(padding-main-horizontal);
2296 z-index: "9999";
2297 @media ((max-width: 767px)) {
2298 bottom: format!("calc(16px + {})", var!(safe-area-inset-bottom));
2299 right: var!(padding-main-horizontal-mobile);
2300 }
2301 }
2302
2303 pub c_vconsole_header {
2304 display: "flex";
2305 justify-content: "space-between";
2306 align-items: "center";
2307 flex-shrink: "0";
2308 }
2309
2310 pub c_vconsole_title {
2311 color: var!(foreground);
2312 font-size: var!(font-md);
2313 font-weight: "600";
2314 margin: "0px";
2315 letter-spacing: "0.03em";
2316 display: "flex";
2317 align-items: "center";
2318 gap: var!(space-sm);
2319 }
2320
2321 pub c_vconsole_title_dot {
2322 width: "8px";
2323 height: "8px";
2324 background: var!(accent);
2325 display: "inline-block";
2326 animation: "euv-pulse 2s ease-in-out infinite";
2327 }
2328
2329 pub c_vconsole_header_actions {
2330 display: "flex";
2331 gap: var!(space-sm);
2332 align-items: "center";
2333 }
2334
2335 pub c_vconsole_clear_button {
2336 display: "inline-flex";
2337 justify-content: "center";
2338 align-items: "center";
2339 color: var!(foreground);
2340 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2341 font-size: var!(font-xs);
2342 font-weight: "600";
2343 cursor: "pointer";
2344 text-align: "center";
2345 border: format!("1.5px solid {}", var!(border));
2346 margin-left: "auto";
2347 :focus-visible {
2348 outline: "none";
2349 }
2350 }
2351
2352 pub c_vconsole_close_button {
2353 display: "inline-flex";
2354 justify-content: "center";
2355 align-items: "center";
2356 color: var!(foreground);
2357 padding: format!("{} {}", var!(space-xs), var!(space-md));
2358 cursor: "pointer";
2359 font-size: var!(font-sm);
2360 font-weight: "400";
2361 text-align: "center";
2362 white-space: "nowrap";
2363 user-select: "none";
2364 -webkit-user-select: "none";
2365 vertical-align: "middle";
2366 outline: "none";
2367 transition: format!("all {} {}", var!(duration-fast), var!(ease-out));
2368 :hover {
2369 border-color: var!(foreground);
2370 color: var!(foreground);
2371 background: var!(background);
2372 }
2373 :focus-visible {
2374 outline: "none";
2375 }
2376 :active {
2377 background: "transparent";
2378 color: var!(foreground);
2379 border-color: var!(border);
2380 }
2381 }
2382
2383 pub c_vconsole_body {
2384 flex: "1";
2385 overflow-y: "auto";
2386 contain: "content";
2387 padding-bottom: var!(space-md);
2388 font-family: "ui-monospace, monospace";
2389 font-size: var!(font-xs);
2390 }
2391
2392 pub c_vconsole_log_item {
2393 display: "flex";
2394 align-items: "center";
2395 padding: format!("{} 0px", var!(space-sm));
2396 border-bottom: format!("1px dashed {}", var!(border));
2397 color: var!(foreground);
2398 font-size: var!(font-xs);
2399 word-break: "break-all";
2400 }
2401
2402 pub c_vconsole_empty {
2403 color: var!(muted-foreground);
2404 font-size: var!(font-xs);
2405 text-align: "center";
2406 padding: format!("{} 0px", var!(space-4xl));
2407 overflow: "hidden";
2408 }
2409
2410 pub c_vconsole_empty_hidden {
2411 height: "0";
2412 overflow: "hidden";
2413 padding: "0";
2414 }
2415
2416 pub c_vconsole_log_list {
2417 overflow: "hidden";
2418 }
2419
2420 pub c_vconsole_log_list_hidden {
2421 height: "0";
2422 overflow: "hidden";
2423 }
2424
2425 pub c_vconsole_count {
2426 color: var!(muted-foreground);
2427 font-size: var!(font-sm);
2428 font-weight: "400";
2429 }
2430
2431 pub c_vconsole_filter_bar {
2432 display: "flex";
2433 gap: var!(space-sm);
2434 padding: format!("{} 0px", var!(space-sm));
2435 border-bottom: format!("1px dashed {}", var!(border));
2436 flex-shrink: "0";
2437 align-items: "center";
2438 }
2439
2440 pub c_vconsole_filter_badge {
2441 display: "inline-flex";
2442 justify-content: "center";
2443 align-items: "center";
2444 color: var!(text-on-accent);
2445 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2446 border: format!("1px solid {}", var!(accent));
2447 font-size: var!(font-xs);
2448 font-weight: "600";
2449 cursor: "pointer";
2450 text-align: "center";
2451 background: var!(accent);
2452 :focus-visible {
2453 outline: "none";
2454 }
2455 }
2456
2457 pub c_vconsole_filter_badge_outline {
2458 display: "inline-flex";
2459 justify-content: "center";
2460 align-items: "center";
2461 color: var!(foreground);
2462 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2463 font-size: var!(font-xs);
2464 font-weight: "600";
2465 cursor: "pointer";
2466 text-align: "center";
2467 border: format!("1.5px solid {}", var!(border));
2468 }
2469
2470 pub c_vconsole_level_badge {
2471 padding: format!("{} {}", var!(space-2xs), var!(space-sm));
2472 font-size: var!(font-xs);
2473 margin-right: var!(space-sm);
2474 letter-spacing: "0.05em";
2475 color: var!(foreground);
2476 border: "1px solid currentColor";
2477 wrap: "nowrap";
2478 flex-shrink: "0";
2479 }
2480
2481 pub c_mobile_header {
2486 display: "flex";
2487 align-items: "center";
2488 justify-content: "space-between";
2489 padding: format!("var(--euv-mobile-safe-top, 0px) 0px 0px {}", var!(space-lg));
2490 height: format!("calc({} + var(--euv-mobile-safe-top, 0px))", var!(mobile-header-height));
2491 flex-shrink: "0";
2492 position: "sticky";
2493 top: "0px";
2494 z-index: "100";
2495 contain: "content";
2496 background: var!(background);
2497 border-bottom: format!("1px solid {}", var!(border));
2498 }
2499
2500 pub c_mobile_header_left {
2501 display: "flex";
2502 align-items: "center";
2503 gap: format!("{}", var!(space-md));
2504 }
2505
2506 pub c_mobile_header_logo {
2507 display: "flex";
2508 align-items: "center";
2509 gap: format!("{}", var!(space-sm));
2510 text-decoration: "none";
2511 color: var!(foreground);
2512 }
2513
2514 pub c_mobile_menu_button {
2515 width: "40px";
2516 height: "40px";
2517 border: "none";
2518 cursor: "pointer";
2519 font-size: "22px";
2520 font-weight: "700";
2521 display: "flex";
2522 align-items: "center";
2523 justify-content: "center";
2524 color: var!(foreground);
2525 padding: "0px";
2526 :active {
2527 background: "transparent";
2528 color: var!(foreground);
2529 }
2530 }
2531
2532 pub c_mobile_theme_button {
2533 width: "40px";
2534 height: "40px";
2535 border: "none";
2536 cursor: "pointer";
2537 display: "flex";
2538 align-items: "center";
2539 justify-content: "center";
2540 padding: "0px";
2541 :active {
2542 background: "transparent";
2543 }
2544 }
2545
2546 pub c_mobile_menu_button_active {
2547 width: "40px";
2548 height: "40px";
2549 border: "none";
2550 cursor: "pointer";
2551 font-size: "22px";
2552 font-weight: "700";
2553 display: "flex";
2554 align-items: "center";
2555 justify-content: "center";
2556 color: var!(accent);
2557 padding: "0px";
2558 :active {
2559 background: var!(background);
2560 color: var!(accent);
2561 }
2562 }
2563
2564 pub c_mobile_drawer_close_button {
2565 width: "32px";
2566 height: "32px";
2567 border: "none";
2568 cursor: "pointer";
2569 font-size: "18px";
2570 font-weight: "500";
2571 display: "flex";
2572 align-items: "center";
2573 justify-content: "center";
2574 color: var!(muted-foreground);
2575 padding: "0px";
2576 transition: format!("color {} {}", var!(duration-fast), var!(ease-out));
2577 :hover {
2578 color: var!(foreground);
2579 }
2580 :active {
2581 color: var!(muted-foreground);
2582 }
2583 }
2584
2585 pub c_mobile_overlay {
2586 position: "fixed";
2587 top: "0px";
2588 left: "0px";
2589 width: "100%";
2590 height: "100%";
2591 background: var!(bg-overlay);
2592 z-index: "200";
2593 contain: "layout style paint";
2594 transition: format!("opacity {} {}", var!(duration-overlay), var!(ease-out));
2595 touch-action: "manipulation";
2596 user-select: "none";
2597 -webkit-user-select: "none";
2598 }
2599
2600 pub c_mobile_overlay_hidden {
2601 opacity: "0";
2602 pointer-events: "none";
2603 }
2604
2605 pub c_mobile_nav_drawer {
2606 position: "fixed";
2607 top: "0px";
2608 left: "0px";
2609 width: "240px";
2610 max-width: "100%";
2611 height: "100%";
2612 background: var!(background);
2613 z-index: "201";
2614 display: "flex";
2615 flex-direction: "column";
2616 padding-top: "var(--euv-mobile-safe-top, 0px)";
2617 padding-bottom: var!(padding-shell-bottom);
2618 contain: "layout style paint";
2619 will-change: "transform";
2620 transition: format!("transform {} {}", var!(duration-overlay), var!(ease-out));
2621 overflow: "hidden";
2622 }
2623
2624 pub c_mobile_nav_drawer_closed {
2625 transform: "translateX(-100%)";
2626 }
2627
2628 pub c_mobile_nav_drawer_header {
2629 display: "flex";
2630 align-items: "center";
2631 justify-content: "space-between";
2632 padding: format!("0px {}", var!(space-lg));
2633 height: var!(mobile-header-height);
2634 flex-shrink: "0";
2635 position: "relative";
2636 ::after {
2637 content: "''";
2638 position: "absolute";
2639 bottom: "0px";
2640 left: var!(space-lg);
2641 right: var!(space-lg);
2642 height: "1px";
2643 background: format!("linear-gradient(90deg, transparent, {}, transparent)", var!(border));
2644 }
2645 }
2646
2647 pub c_mobile_main {
2648 c_app_main();
2649 ::-webkit-scrollbar {
2650 width: "0px";
2651 }
2652 }
2653
2654 pub c_keep_alive_tab_bar {
2659 display: "flex";
2660 border-bottom: format!("1px dashed {}", var!(border));
2661 margin-bottom: var!(gap-component);
2662 gap: var!(gap-element);
2663 }
2664
2665 pub c_keep_alive_tab_panel {
2666 padding: format!("{} 0px", var!(gap-element));
2667 }
2668
2669 pub c_keep_alive_panel_title {
2670 margin-top: "0px";
2671 color: var!(accent);
2672 font-size: var!(font-md);
2673 margin-bottom: var!(gap-element);
2674 }
2675
2676 pub c_keep_alive_demo_text {
2677 color: "inherit";
2678 font-size: var!(font-base);
2679 margin-bottom: var!(gap-component);
2680 }
2681
2682 pub c_keep_alive_counter_display {
2683 display: "flex";
2684 justify-content: "center";
2685 align-items: "center";
2686 margin: format!("{} 0px", var!(space-xl));
2687 }
2688
2689 pub c_keep_alive_counter_value {
2690 font-size: var!(font-base);
2691 font-weight: "700";
2692 font-variant-numeric: "tabular-nums";
2693 color: var!(accent);
2694 text-align: "center";
2695 }
2696
2697 pub c_keep_alive_counter_controls {
2698 display: "flex";
2699 flex-wrap: "wrap";
2700 gap: format!("{}", var!(space-md));
2701 }
2702
2703 pub c_keep_alive_form_group {
2704 margin-bottom: var!(gap-component);
2705 }
2706
2707 pub c_keep_alive_form_preview {
2708 margin-top: var!(gap-component);
2709 background: var!(accent-muted);
2710 }
2711
2712 pub c_keep_alive_preview_label {
2713 font-size: var!(font-base);
2714 font-weight: "600";
2715 color: var!(accent);
2716 margin: format!("0px 0px {} 0px", var!(space-xs));
2717 }
2718
2719 pub c_file_upload_input_hidden {
2724 position: "absolute";
2725 width: "1px";
2726 height: "1px";
2727 padding: "0px";
2728 margin: "-1px";
2729 overflow: "hidden";
2730 clip: "rect(0, 0, 0, 0)";
2731 white-space: "nowrap";
2732 border: "0px";
2733 }
2734
2735 pub c_file_upload_options {
2736 margin: format!("{} 0px", var!(gap-component));
2737 }
2738
2739 pub c_file_upload_item {
2740 display: "flex";
2741 align-items: "center";
2742 gap: format!("{}", var!(space-md));
2743 margin: format!("{} 0px", var!(space-sm));
2744 font-size: var!(font-base);
2745 color: "inherit";
2746 }
2747
2748 pub c_file_upload_item_index {
2749 font-size: var!(font-sm);
2750 font-weight: "600";
2751 color: var!(accent);
2752 min-width: "24px";
2753 }
2754
2755 pub c_file_upload_item_name {
2756 color: "inherit";
2757 word-break: "break-all";
2758 }
2759
2760 pub c_binding_child_box {
2765 display: "flex";
2766 flex-direction: "column";
2767 gap: var!(gap-component);
2768 margin-top: var!(gap-component);
2769 }
2770
2771 pub c_binding_child_label {
2772 font-size: var!(font-base);
2773 font-weight: "600";
2774 color: var!(accent);
2775 text-transform: "uppercase";
2776 letter-spacing: "0.05em";
2777 }
2778
2779 pub c_binding_parent_box {
2780 display: "flex";
2781 flex-direction: "column";
2782 gap: var!(gap-component);
2783 margin-top: var!(gap-component);
2784 }
2785
2786 pub c_binding_section_title {
2787 margin-top: var!(gap-component);
2788 margin-bottom: var!(gap-element);
2789 color: var!(accent);
2790 font-size: var!(font-md);
2791 font-weight: "600";
2792 }
2793
2794 pub c_binding_temp_converter {
2795 display: "flex";
2796 align-items: "flex-end";
2797 gap: var!(gap-component);
2798 flex-wrap: "wrap";
2799 margin-top: var!(gap-component);
2800 }
2801
2802 pub c_binding_temp_field {
2803 flex: "1";
2804 min-width: "120px";
2805 }
2806
2807 pub c_binding_temp_arrow {
2808 font-size: "20px";
2809 font-weight: "700";
2810 color: var!(accent);
2811 padding-bottom: "10px";
2812 }
2813
2814 pub c_binding_color_mixer {
2815 margin-top: var!(gap-component);
2816 }
2817
2818 pub c_binding_color_preview {
2819 width: "100%";
2820 height: "80px";
2821 display: "flex";
2822 align-items: "center";
2823 justify-content: "center";
2824 margin-bottom: var!(gap-component);
2825 }
2826
2827 pub c_binding_color_hex {
2828 font-family: "ui-monospace, monospace";
2829 font-size: var!(font-xl);
2830 font-weight: "700";
2831 color: var!(text-on-accent);
2832 letter-spacing: "0.02em";
2833 }
2834
2835 pub c_binding_slider_row {
2836 display: "flex";
2837 align-items: "center";
2838 gap: format!("{}", var!(space-md));
2839 margin-bottom: var!(space-sm);
2840 }
2841
2842 pub c_binding_slider_label {
2843 font-size: var!(font-base);
2844 font-weight: "700";
2845 min-width: var!(font-sm);
2846 }
2847
2848 pub c_binding_slider {
2849 flex: "1";
2850 height: "24px";
2851 padding: "0px";
2852 cursor: "pointer";
2853 -webkit-appearance: "none";
2854 appearance: "none";
2855 border: "none";
2856 outline: "none";
2857 ::-webkit-slider-runnable-track {
2858 height: "6px";
2859 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
2860 border-radius: "3px";
2861 border: "none";
2862 }
2863 ::-webkit-slider-thumb {
2864 width: "20px";
2865 height: "20px";
2866 background: var!(background);
2867 border: format!("2px solid {}", var!(accent));
2868 border-radius: "50%";
2869 cursor: "pointer";
2870 -webkit-appearance: "none";
2871 margin-top: "-7px";
2872 }
2873 : active::-webkit-slider-thumb {
2874 transform: "scale(0.92)";
2875 }
2876 ::-moz-range-track {
2877 height: "6px";
2878 background: format!("linear-gradient(to right, {} 0%, {} var(--value,50%), {} var(--value,50%), {} 100%)", var!(foreground), var!(foreground), var!(border), var!(border));
2879 border-radius: "3px";
2880 border: "none";
2881 }
2882 ::-moz-range-thumb {
2883 width: "20px";
2884 height: "20px";
2885 background: var!(background);
2886 border: format!("2px solid {}", var!(accent));
2887 border-radius: "50%";
2888 cursor: "pointer";
2889 }
2890 : active::-moz-range-thumb {
2891 transform: "scale(0.92)";
2892 }
2893 }
2894
2895 pub c_binding_slider_value {
2896 font-size: var!(font-base);
2897 font-weight: "500";
2898 color: "inherit";
2899 min-width: "32px";
2900 text-align: "right";
2901 font-family: "ui-monospace, monospace";
2902 }
2903
2904 pub c_binding_typed_prop_value {
2905 font-family: "ui-monospace, monospace";
2906 font-size: var!(font-base);
2907 font-weight: "600";
2908 color: var!(accent);
2909 padding: format!("1px {}", var!(space-sm));
2910 }
2911
2912 pub c_binding_typed_prop_group {
2913 display: "flex";
2914 align-items: "center";
2915 gap: var!(space-sm);
2916 }
2917
2918 pub c_binding_typed_warning {
2919 font-size: var!(font-base);
2920 font-weight: "500";
2921 color: var!(foreground);
2922 margin-bottom: "0px";
2923 }
2924
2925 pub c_binding_form_label {
2926 display: "block";
2927 color: "inherit";
2928 font-weight: "500";
2929 font-size: var!(font-base);
2930 }
2931
2932 pub c_binding_demo_text {
2933 color: "inherit";
2934 margin: "0px"
2935 }
2936
2937 pub c_binding_compact_button {
2938 display: "inline-flex";
2939 justify-content: "center";
2940 align-items: "center";
2941 height: "42px";
2942 padding: format!("0px {}", var!(space-md));
2943 background: var!(accent);
2944 color: var!(text-on-accent);
2945 border: format!("1px solid {}", var!(accent));
2946 cursor: "pointer";
2947 font-size: var!(font-sm);
2948 font-weight: "600";
2949 outline: "none";
2950 white-space: "nowrap";
2951 user-select: "none";
2952 -webkit-user-select: "none";
2953 box-sizing: "border-box";
2954 :hover {
2955 background: var!(accent);
2956 }
2957 :focus-visible {
2958 outline: "none";
2959 }
2960 :active {
2961 background: var!(accent);
2962 color: var!(text-on-accent);
2963 border-color: var!(accent);
2964 }
2965 }
2966
2967 pub c_attrs_dynamic_demo(prop_key: &str, prop_value: &str) {
2972 {
2973 prop_key
2974 }
2975 : prop_value;
2976 }
2983
2984 pub c_dynamic_component_tab_bar {
2989 display: "flex";
2990 flex-wrap: "wrap";
2991 gap: var!(gap-element);
2992 margin-bottom: var!(gap-component);
2993 }
2994
2995 pub c_dynamic_component_panel {
2996 display: "block";
2997 min-height: var!(min-height-sm);
2998 margin-top: var!(gap-component);
2999 }
3000
3001 pub c_virtual_list_status {
3006 display: "flex";
3007 gap: var!(gap-component);
3008 padding: format!("{} 0px", var!(gap-component));
3009 flex-wrap: "nowrap";
3010 overflow: "hidden";
3011 text-overflow: "ellipsis";
3012 white-space: "nowrap";
3013 @media ((max-width: 767px)) {
3014 gap: var!(gap-component-mobile);
3015 }
3016 }
3017
3018 pub c_virtual_list_status_item {
3019 font-size: var!(font-base);
3020 color: "inherit";
3021 overflow: "hidden";
3022 text-overflow: "ellipsis";
3023 white-space: "nowrap";
3024 }
3025
3026 pub c_virtual_list_status_value {
3027 font-weight: "700";
3028 color: var!(accent);
3029 font-family: "ui-monospace, monospace";
3030 }
3031
3032 pub c_virtual_list_container {
3033 flex: "1";
3034 height: "666px";
3035 max-height: "666px";
3036 overflow-y: "auto";
3037 }
3038
3039 pub c_virtual_list_card {
3040 flex: "1";
3041 padding: var!(space-xl);
3042 color: var!(foreground);
3043 display: "flex";
3044 flex-direction: "column";
3045 @media ((max-width: 767px)) {
3046 padding: var!(space-lg);
3047 }
3048 }
3049
3050 pub c_virtual_list_row {
3051 display: "flex";
3052 align-items: "center";
3053 gap: var!(space-lg);
3054 height: "100%";
3055 box-sizing: "border-box";
3056 }
3057
3058 pub c_virtual_list_row_index {
3059 min-width: "36px";
3060 font-size: var!(font-sm);
3061 font-weight: "600";
3062 color: var!(accent);
3063 font-family: "ui-monospace, monospace";
3064 flex-shrink: "0";
3065 display: "flex";
3066 align-items: "center";
3067 }
3068
3069 pub c_virtual_list_row_label {
3070 font-size: var!(font-base);
3071 font-weight: "500";
3072 color: "inherit";
3073 min-width: "120px";
3074 flex-shrink: "0";
3075 overflow: "hidden";
3076 text-overflow: "ellipsis";
3077 white-space: "nowrap";
3078 display: "flex";
3079 align-items: "center";
3080 }
3081
3082 pub c_virtual_list_row_description {
3083 font-size: var!(font-base);
3084 color: "inherit";
3085 opacity: "1";
3086 overflow: "hidden";
3087 text-overflow: "ellipsis";
3088 white-space: "nowrap";
3089 flex: "1";
3090 display: "flex";
3091 align-items: "center";
3092 }
3093
3094 pub c_element_stack {
3099 display: "flex";
3100 flex-direction: "column";
3101 gap: var!(gap-element);
3102 }
3103
3104 pub c_switcher {
3105 display: "flex";
3106 gap: var!(gap-component);
3107 flex-wrap: "wrap";
3108 @media ((max-width: 767px)) {
3109 flex-direction: "column";
3110 gap: var!(gap-component-mobile);
3111 }
3112 }
3113
3114 pub c_switcher_col {
3115 flex: "1";
3116 min-width: "200px";
3117 @media ((max-width: 767px)) {
3118 min-width: "100%";
3119 }
3120 }
3121
3122 pub c_hint {
3127 color: "inherit";
3128 opacity: "1";
3129 font-size: var!(font-base);
3130 margin-bottom: var!(gap-component);
3131 }
3132
3133 pub c_net_messages_empty {
3138 color: "inherit";
3139 opacity: "1";
3140 padding: var!(space-xl);
3141 text-align: "center";
3142 font-size: var!(font-base);
3143 }
3144
3145 pub c_net_messages_list {
3146 display: "flex";
3147 flex-direction: "column";
3148 gap: var!(space-xs);
3149 }
3150
3151 pub c_net_message_item {
3152 display: "flex";
3153 align-items: "baseline";
3154 gap: var!(gap-element);
3155 justify-content: "space-between";
3156 }
3157
3158 pub c_net_message_index {
3159 color: var!(accent);
3160 font-size: var!(font-sm);
3161 font-weight: "600";
3162 white-space: "nowrap";
3163 flex-shrink: "0";
3164 }
3165
3166 pub c_net_message_data {
3167 color: "inherit";
3168 font-size: var!(font-base);
3169 word-break: "break-all";
3170 overflow-wrap: "break-word";
3171 flex: "1";
3172 min-width: "0";
3173 }
3174
3175 pub c_ws_message_input {
3180 width: "100%";
3181 flex: "1";
3182 height: "42px";
3183 padding: format!("0px {}", var!(space-lg));
3184 color: var!(foreground);
3185 border: format!("1px solid {}", var!(border));
3186 font-size: var!(font-base);
3187 line-height: "normal";
3188 box-sizing: "border-box";
3189 outline: "none";
3190 appearance: "none";
3191 -webkit-appearance: "none";
3192 -moz-appearance: "none";
3193 vertical-align: "middle";
3194 :hover {
3195 border-color: var!(accent);
3196 background: var!(accent-muted);
3197 }
3198 :focus {
3199 outline: "none";
3200 border-color: var!(accent);
3201 background: var!(accent-muted);
3202 }
3203 }
3204
3205 pub c_ws_message_time {
3206 color: var!(foreground);
3207 font-size: var!(font-sm);
3208 white-space: "nowrap";
3209 flex-shrink: "0";
3210 margin-left: "auto";
3211 }
3212
3213 pub c_home {
3222 position: "relative";
3223 text-align: "center";
3224 margin-bottom: var!(space-xl);
3225 flex: "1";
3226 display: "flex";
3227 flex-direction: "column";
3228 justify-content: "center";
3229 @media ((max-width: 767px)) {
3230 margin-bottom: var!(space-lg);
3231 flex: "0 0 auto";
3232 justify-content: "flex-start";
3233 }
3234 }
3235
3236 pub c_home_content {
3237 position: "relative";
3238 z-index: "1";
3239 }
3240
3241 pub c_home_badge_row {
3242 display: "inline-flex";
3243 align-items: "center";
3244 gap: var!(space-sm);
3245 margin-bottom: var!(space-md);
3246 }
3247
3248 pub c_home_badge {
3249 display: "inline-flex";
3250 justify-content: "center";
3251 align-items: "center";
3252 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3253 color: var!(accent);
3254 font-size: var!(font-xs);
3255 font-weight: "600";
3256 letter-spacing: "0.05em";
3257 border: format!("1px solid {}", var!(accent));
3258 }
3259
3260 pub c_home_title {
3261 font-size: var!(font-5xl);
3262 font-weight: "800";
3263 letter-spacing: "-0.03em";
3264 margin: "0px";
3265 color: var!(foreground);
3266 margin-bottom: var!(space-xs);
3267 @media ((max-width: 767px)) {
3268 font-size: var!(font-4xl);
3269 }
3270 }
3271
3272 pub c_home_subtitle {
3273 font-size: var!(font-lg);
3274 color: var!(foreground);
3275 margin: "0px auto";
3276 max-width: "520px";
3277 margin-bottom: var!(space-lg);
3278 @media ((max-width: 767px)) {
3279 font-size: var!(font-base);
3280 }
3281 }
3282
3283 pub c_home_actions {
3284 display: "flex";
3285 gap: var!(space-md);
3286 justify-content: "center";
3287 flex-wrap: "wrap";
3288 }
3289
3290 pub c_home_btn_primary {
3291 display: "inline-flex";
3292 justify-content: "center";
3293 align-items: "center";
3294 gap: var!(space-sm);
3295 padding: format!("{} {}", var!(space-sm), var!(space-2xl));
3296 background: var!(accent);
3297 color: var!(text-on-accent);
3298 font-size: var!(font-base);
3299 font-weight: "600";
3300 text-decoration: "none";
3301 border: "1.5px solid transparent";
3302 cursor: "pointer";
3303 letter-spacing: "0.01em";
3304 vertical-align: "middle";
3305 min-height: var!(min-height-sm);
3306 :focus-visible {
3307 outline: "none";
3308 }
3309 :active {
3310 background: var!(accent);
3311 color: var!(text-on-accent);
3312 border-color: "1.5px solid transparent";
3313 }
3314 }
3315
3316 pub c_home_btn_secondary {
3317 display: "inline-flex";
3318 justify-content: "center";
3319 align-items: "center";
3320 gap: var!(space-sm);
3321 padding: format!("{} {}", var!(space-sm), var!(space-2xl));
3322 color: var!(accent);
3323 font-size: var!(font-base);
3324 font-weight: "600";
3325 text-decoration: "none";
3326 border: format!("1.5px solid {}", var!(accent));
3327 cursor: "pointer";
3328 letter-spacing: "0.01em";
3329 vertical-align: "middle";
3330 min-height: var!(min-height-sm);
3331 :focus-visible {
3332 outline: "none";
3333 }
3334 :active {
3335 background: "transparent";
3336 color: var!(accent);
3337 border-color: var!(accent);
3338 }
3339 }
3340
3341 pub c_home_stats {
3346 display: "grid";
3347 grid-template-columns: "repeat(4, 1fr)";
3348 gap: var!(space-md);
3349 margin-bottom: var!(space-xl);
3350 @media ((max-width: 767px)) {
3351 grid-template-columns: "repeat(2, 1fr)";
3352 gap: var!(space-sm);
3353 }
3354 }
3355
3356 pub c_home_stat_card {
3357 display: "flex";
3358 flex-direction: "column";
3359 align-items: "center";
3360 justify-content: "center";
3361 gap: var!(space-xs);
3362 }
3363
3364 pub c_home_stat_icon {
3365 font-size: var!(font-2xl);
3366 }
3367
3368 pub c_home_stat_value {
3369 font-size: var!(font-xl);
3370 font-weight: "800";
3371 color: var!(foreground);
3372 letter-spacing: "-0.01em";
3373 }
3374
3375 pub c_home_stat_label {
3376 font-size: var!(font-sm);
3377 color: var!(muted-foreground);
3378 font-weight: "500";
3379 }
3380
3381 pub c_home_section_title {
3386 font-size: var!(font-2xl);
3387 font-weight: "700";
3388 color: var!(foreground);
3389 margin: "0px";
3390 margin: format!("{} 0px", var!(gap-component));
3391 letter-spacing: "-0.02em";
3392 }
3393
3394 pub c_home_section_desc {
3395 font-size: var!(font-base);
3396 color: var!(foreground);
3397 margin: "0px";
3398 margin-bottom: var!(space-2xl);
3399 }
3400
3401 pub c_home_feature_grid {
3402 display: "grid";
3403 grid-template-columns: "repeat(2, 1fr)";
3404 gap: var!(space-md);
3405 @media ((max-width: 767px)) {
3406 grid-template-columns: "1fr";
3407 }
3408 }
3409
3410 pub c_feature_card {
3411 display: "flex";
3412 flex-direction: "column";
3413 gap: var!(space-sm);
3414 padding: "0px";
3415 overflow: "hidden";
3416 }
3417
3418 pub c_feature_header {
3419 display: "flex";
3420 align-items: "center";
3421 gap: var!(space-sm);
3422 }
3423
3424 pub c_feature_icon {
3425 font-size: var!(font-2xl);
3426 display: "flex";
3427 align-items: "center";
3428 justify-content: "center";
3429 line-height: "1";
3430 flex-shrink: "0";
3431 }
3432
3433 pub c_feature_name {
3434 font-size: var!(font-lg);
3435 font-weight: "600";
3436 color: var!(foreground);
3437 margin: "0px";
3438 overflow: "hidden";
3439 text-overflow: "ellipsis";
3440 white-space: "nowrap";
3441 }
3442
3443 pub c_feature_desc {
3444 font-size: var!(font-sm);
3445 color: var!(foreground);
3446 margin: "0px";
3447 }
3448
3449 pub c_debug {
3460 display: "flex";
3461 flex-direction: "row";
3462 align-items: "baseline";
3463 gap: var!(space-sm);
3464 padding: var!(space-xs);
3465 border: format!("1px dashed {}", var!(accent-muted));
3466 border-radius: var!(radius-sm);
3467 background: var!(surface-muted);
3468 font-family: "ui-monospace, SFMono-Regular, monospace";
3469 font-size: var!(font-sm);
3470 color: var!(foreground);
3471 margin: format!("{} 0px", var!(space-xs));
3472 }
3473
3474 pub c_debug_label {
3475 font-weight: "600";
3476 color: var!(accent);
3477 flex-shrink: "0";
3478 }
3479
3480 pub c_debug_value {
3481 font-family: "ui-monospace, SFMono-Regular, monospace";
3482 color: var!(foreground);
3483 margin: "0px";
3484 }
3485
3486 pub c_euv_navbar {
3491 position: "fixed";
3492 top: "0px";
3493 left: "0px";
3494 right: "0px";
3495 height: "56px";
3496 display: "flex";
3497 align-items: "center";
3498 gap: var!(gap-element);
3499 padding: format!("0px {}", var!(padding-main-horizontal));
3500 border-bottom: format!("1px solid {}", var!(border));
3501 background: var!(background);
3502 z-index: "100";
3503 @media ((max-width: 767px)) {
3504 padding: format!("0px {}", var!(padding-main-horizontal-mobile));
3505 }
3506 }
3507 pub c_euv_navbar_brand {
3508 display: "flex";
3509 align-items: "center";
3510 gap: var!(gap-element);
3511 font-size: var!(font-lg);
3512 font-weight: "700";
3513 letter-spacing: "-0.02em";
3514 color: var!(foreground);
3515 cursor: "pointer";
3516 flex-shrink: "0";
3517 }
3518 pub c_euv_navbar_logo {
3519 width: "32px";
3520 height: "32px";
3521 display: "flex";
3522 align-items: "center";
3523 justify-content: "center";
3524 background: var!(accent);
3525 color: var!(text-on-accent);
3526 font-size: var!(font-lg);
3527 flex-shrink: "0";
3528 }
3529 pub c_euv_navbar_links {
3530 display: "flex";
3531 align-items: "center";
3532 gap: var!(gap-section);
3533 margin-left: "auto";
3534 @media ((max-width: 767px)) {
3535 display: "none";
3536 }
3537 }
3538 pub c_euv_navbar_link {
3539 font-size: var!(font-sm);
3540 font-weight: "500";
3541 color: var!(foreground);
3542 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3543 border-bottom: "2px solid transparent";
3544 cursor: "pointer";
3545 hover {
3546 color: var!(accent);
3547 }
3548 }
3549 pub c_euv_navbar_link_active {
3550 font-size: var!(font-sm);
3551 font-weight: "600";
3552 color: var!(accent);
3553 padding: format!("{} {}", var!(space-xs), var!(space-sm));
3554 border-bottom: format!("2px solid {}", var!(accent));
3555 cursor: "pointer";
3556 }
3557 pub c_euv_navbar_actions {
3558 display: "flex";
3559 align-items: "center";
3560 gap: var!(gap-element);
3561 margin-left: var!(gap-section);
3562 @media ((max-width: 767px)) {
3563 margin-left: "auto";
3564 }
3565 }
3566 pub c_euv_navbar_icon_button {
3567 width: "36px";
3568 height: "36px";
3569 display: "flex";
3570 align-items: "center";
3571 justify-content: "center";
3572 border: format!("1px dashed {}", var!(border));
3573 cursor: "pointer";
3574 font-size: var!(font-base);
3575 hover {
3576 background: var!(accent-muted);
3577 }
3578 }
3579 pub c_euv_navbar_menu_button {
3580 display: "none";
3581 width: "40px";
3582 height: "40px";
3583 align-items: "center";
3584 justify-content: "center";
3585 font-size: var!(font-xl);
3586 cursor: "pointer";
3587 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3588 @media ((max-width: 767px)) {
3589 display: "flex";
3590 }
3591 }
3592 pub c_euv_navbar_menu_button_active {
3593 display: "none";
3594 width: "40px";
3595 height: "40px";
3596 align-items: "center";
3597 justify-content: "center";
3598 font-size: var!(font-xl);
3599 cursor: "pointer";
3600 background: var!(accent-muted);
3601 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3602 @media ((max-width: 767px)) {
3603 display: "flex";
3604 }
3605 }
3606
3607 pub c_euv_dropdown {
3612 position: "relative";
3613 }
3614 pub c_euv_dropdown_menu {
3615 position: "absolute";
3616 top: "44px";
3617 right: "0px";
3618 width: "100%";
3630 background: var!(background);
3631 border: format!("1px solid {}", var!(border));
3632 box-shadow: var!(shadow-accent-lg);
3633 flex-direction: "column";
3634 z-index: "101";
3635 }
3636 pub c_euv_dropdown_menu_open {
3637 display: "flex";
3638 }
3639 pub c_euv_dropdown_menu_closed {
3640 display: "none";
3641 }
3642 pub c_euv_dropdown_item {
3643 padding: format!("{} {}", var!(space-sm), var!(space-lg));
3644 font-size: var!(font-sm);
3645 text-align: "left";
3646 cursor: "pointer";
3647 hover {
3648 background: var!(accent-muted);
3649 }
3650 }
3651
3652 pub c_euv_sidebar_group {
3657 margin-bottom: var!(space-xs);
3658 }
3659 pub c_euv_sidebar_group_title {
3660 display: "flex";
3661 align-items: "center";
3662 justify-content: "space-between";
3663 width: "100%";
3664 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3665 font-size: var!(font-sm);
3666 font-weight: "600";
3667 cursor: "pointer";
3668 text-align: "left";
3669 hover {
3670 background: var!(accent-muted);
3671 }
3672 }
3673 pub c_euv_sidebar_group_arrow {
3674 font-size: var!(font-xs);
3675 color: var!(muted-foreground);
3676 transition: format!("transform {} {}", var!(duration-fast), var!(ease-out));
3677 }
3678 pub c_euv_sidebar_group_arrow_open {
3679 transform: "rotate(90deg)";
3680 }
3681 pub c_euv_sidebar_children {
3682 display: "flex";
3683 flex-direction: "column";
3684 padding-left: var!(space-md);
3685 border-left: format!("1px dashed {}", var!(border));
3686 margin-left: var!(space-sm);
3687 animation: format!("euv-fade-in {} {}", var!(duration-normal), var!(ease-out));
3688 }
3689 pub c_euv_sidebar_link {
3690 display: "block";
3691 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3692 font-size: var!(font-sm);
3693 color: var!(foreground);
3694 cursor: "pointer";
3695 transition: format!("background {} {}", var!(duration-fast), var!(ease-out));
3696 hover {
3697 background: var!(accent-muted);
3698 color: var!(accent);
3699 box-shadow: format!("inset 4px 0px 0px {}", var!(accent));
3700 }
3701 }
3702 pub c_euv_sidebar_link_active {
3703 display: "block";
3704 padding: format!("{} {}", var!(space-sm), var!(space-xl));
3705 font-size: var!(font-sm);
3706 background: var!(accent);
3707 color: var!(text-on-accent);
3708 font-weight: "600";
3709 cursor: "pointer";
3710 }
3711
3712 pub c_euv_toc {
3717 position: "sticky";
3718 top: "76px";
3719 display: "flex";
3720 flex-direction: "column";
3721 gap: var!(space-xs);
3722 border-left: format!("1px solid {}", var!(border));
3723 padding-left: var!(space-lg);
3724 }
3725 pub c_euv_toc_title {
3726 font-size: var!(font-xs);
3727 font-weight: "700";
3728 text-transform: "uppercase";
3729 letter-spacing: "0.08em";
3730 color: var!(muted-foreground);
3731 margin-bottom: var!(space-xs);
3732 }
3733 pub c_euv_toc_link {
3734 font-size: var!(font-sm);
3735 color: var!(muted-foreground);
3736 cursor: "pointer";
3737 line-height: "1.5";
3738 hover {
3739 color: var!(accent);
3740 }
3741 }
3742 pub c_euv_toc_link_nested {
3743 padding-left: var!(space-lg);
3744 }
3745
3746 pub c_euv_pagination {
3751 display: "flex";
3752 justify-content: "space-between";
3753 gap: var!(gap-component);
3754 margin-top: var!(space-4xl);
3755 @media ((max-width: 767px)) {
3756 flex-direction: "column";
3757 }
3758 }
3759 pub c_euv_pagination_link {
3760 flex: "1";
3761 border: format!("1px solid {}", var!(border));
3762 padding: var!(space-lg);
3763 cursor: "pointer";
3764 display: "flex";
3765 flex-direction: "column";
3766 gap: var!(space-2xs);
3767 hover {
3768 border-color: var!(accent);
3769 }
3770 }
3771 pub c_euv_pagination_label {
3772 font-size: var!(font-xs);
3773 color: var!(muted-foreground);
3774 text-transform: "uppercase";
3775 letter-spacing: "0.08em";
3776 }
3777 pub c_euv_pagination_text {
3778 font-size: var!(font-base);
3779 font-weight: "600";
3780 color: var!(accent);
3781 }
3782 pub c_euv_pagination_next {
3783 text-align: "right";
3784 }
3785 pub c_euv_pagination_spacer {
3786 flex: "1";
3787 }
3788
3789 pub c_euv_drawer_overlay {
3794 position: "fixed";
3795 top: "0px";
3796 left: "0px";
3797 right: "0px";
3798 bottom: "0px";
3799 background: var!(bg-overlay);
3800 z-index: "200";
3801 transition: format!("opacity {} {}, visibility {} {}", var!(duration-overlay), var!(ease-out), var!(duration-overlay), var!(ease-out));
3802 touch-action: "manipulation";
3803 user-select: "none";
3804 -webkit-user-select: "none";
3805 }
3806 pub c_euv_drawer_overlay_open {
3807 opacity: "1";
3808 visibility: "visible";
3809 }
3810 pub c_euv_drawer_overlay_closed {
3811 opacity: "0";
3812 visibility: "hidden";
3813 }
3814 pub c_euv_drawer {
3815 position: "fixed";
3816 top: "0px";
3817 left: "0px";
3818 bottom: "0px";
3819 width: "260px";
3820 background: var!(background);
3821 border-right: format!("1px solid {}", var!(border));
3822 z-index: "201";
3823 overflow-y: "auto";
3824 padding: var!(space-xl);
3825 transition: format!("transform {} {}, visibility {} {}", var!(duration-normal), var!(ease-out), var!(duration-normal), var!(ease-out));
3826 }
3827 pub c_euv_drawer_open {
3828 transform: "translateX(0px)";
3829 visibility: "visible";
3830 }
3831 pub c_euv_drawer_closed {
3832 transform: "translateX(-100%)";
3833 visibility: "hidden";
3834 }
3835
3836 pub c_euv_markdown {
3841 width: "100%";
3842 min-width: "0px";
3843 }
3844 pub c_euv_footer {
3845 margin-top: var!(space-7xl);
3846 padding: format!("{} 0px", var!(space-2xl));
3847 border-top: format!("1px dashed {}", var!(border));
3848 text-align: "center";
3849 font-size: var!(font-sm);
3850 color: var!(muted-foreground);
3851 }
3852
3853 pub c_euv_result {
3858 display: "flex";
3859 flex-direction: "column";
3860 align-items: "center";
3861 justify-content: "center";
3862 text-align: "center";
3863 gap: var!(space-md);
3864 padding: format!("{} {}", var!(space-4xl), var!(space-md));
3865 min-height: "50vh";
3866 }
3867 pub c_euv_result_code {
3868 font-size: var!(font-6xl);
3869 font-weight: "700";
3870 line-height: "1";
3871 letter-spacing: "-0.02em";
3872 }
3873 pub c_euv_result_title {
3874 font-size: var!(font-2xl);
3875 font-weight: "600";
3876 margin: "0px";
3877 }
3878 pub c_euv_result_description {
3879 color: var!(muted-foreground);
3880 margin: "0px";
3881 }
3882 pub c_euv_result_actions {
3883 display: "flex";
3884 gap: var!(space-md);
3885 margin-top: var!(space-lg);
3886 }
3887
3888 pub c_euv_doc_layout {
3889 display: "flex";
3890 gap: var!(space-4xl);
3891 width: "100%";
3892 min-width: "0px";
3893 max-width: "1080px";
3894 margin: "0px auto";
3895 }
3896 pub c_euv_doc_content {
3897 flex: "1";
3898 min-width: "0px";
3899 max-width: var!(content-max-width);
3900 }
3901 pub c_euv_doc_toc {
3902 width: "200px";
3903 flex-shrink: "0";
3904 @media ((max-width: 1100px)) {
3905 display: "none";
3906 }
3907 }
3908}