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