@aurea-uds/core 0.46.0 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/aurea.css +733 -115
  2. package/package.json +1 -1
package/dist/aurea.css CHANGED
@@ -343,7 +343,7 @@
343
343
  --control-thumb:#ffffff;
344
344
  --warning-500:#d07612;
345
345
  }
346
- [data-brand="lory"][data-theme="dark"],[data-brand="lory"] [data-theme="dark"]{
346
+ [data-brand="ember"][data-theme="dark"],[data-brand="ember"] [data-theme="dark"]{
347
347
  --background:oklch(0.16 0.018 250);
348
348
  --foreground:oklch(0.96 0.006 250);
349
349
  --foreground-strong:oklch(1 0 0);
@@ -382,8 +382,8 @@
382
382
  --focus-strong:oklch(0.85 0.14 60);
383
383
  --selection:oklch(0.32 0.08 50);
384
384
  --control-selected:oklch(0.72 0.19 48);
385
- --control-selected-foreground:oklch(0.16 0.02 250);
386
- --control-selected-dot:oklch(0.16 0.02 250);
385
+ --control-selected-foreground:oklch(1 0 0);
386
+ --control-selected-dot:oklch(1 0 0);
387
387
  --primary-mark:oklch(0.16 0.02 250);
388
388
  --overlay:oklch(0 0 0 / 0.6);
389
389
  --chart-1:oklch(0.74 0.18 50);
@@ -409,9 +409,9 @@
409
409
  --info-bg:oklch(0.32 0.06 235);
410
410
  --brand-yellow-ink:#242424;
411
411
  --warning-foreground:#242424;
412
- --control-thumb:var(--primary-mark);
412
+ --control-thumb:oklch(1 0 0);
413
413
  }
414
- [data-brand="lory"][data-theme="light"],[data-brand="lory"] [data-theme="light"]{
414
+ [data-brand="ember"][data-theme="light"],[data-brand="ember"] [data-theme="light"]{
415
415
  --background:oklch(0.984 0.004 70);
416
416
  --foreground:oklch(0.24 0.022 250);
417
417
  --foreground-strong:oklch(0.16 0.02 250);
@@ -481,6 +481,572 @@
481
481
  --control-thumb:var(--primary-mark);
482
482
  --warning-500:oklch(0.727 0.149 60);
483
483
  }
484
+ [data-brand="sun"][data-theme="dark"],[data-brand="sun"] [data-theme="dark"]{
485
+ --primary:#facc15;
486
+ --primary-foreground:#18181b;
487
+ --primary-hover:#fbd34e;
488
+ --primary-active:#eabe13;
489
+ --primary-emphasis:#facc15;
490
+ --primary-outline:rgba(250,204,21,0.349);
491
+ --link:#facc15;
492
+ --link-hover:#facc15;
493
+ --link-mark:rgba(0,0,0,0);
494
+ --link-underline:#facc15;
495
+ --focus:#facc15;
496
+ --ring:#facc15;
497
+ --control-selected:#facc15;
498
+ --control-selected-foreground:#ffffff;
499
+ --control-selected-dot:#ffffff;
500
+ --primary-mark:#18181b;
501
+ --selection:rgba(250,204,21,0.2196);
502
+ --accent:#38311a;
503
+ --accent-foreground:#facc15;
504
+ --sidebar-primary:var(--primary-emphasis);
505
+ --sidebar-primary-foreground:#18181b;
506
+ --sidebar-ring:#facc15;
507
+ --sidebar-current-line:rgba(250,204,21,0.75);
508
+ }
509
+ [data-brand="sun"][data-theme="light"],[data-brand="sun"] [data-theme="light"]{
510
+ --primary:#facc15;
511
+ --primary-foreground:#18181b;
512
+ --primary-hover:#fbd34e;
513
+ --primary-active:#eabe13;
514
+ --primary-emphasis:var(--foreground);
515
+ --primary-outline:rgba(250,204,21,0.349);
516
+ --link:var(--foreground);
517
+ --link-hover:var(--foreground);
518
+ --link-mark:rgba(250,204,21,0.451);
519
+ --link-underline:#facc15;
520
+ --focus:#b27600;
521
+ --ring:#b27600;
522
+ --control-selected:#facc15;
523
+ --control-selected-foreground:#ffffff;
524
+ --control-selected-dot:#ffffff;
525
+ --primary-mark:#18181b;
526
+ --selection:rgba(250,204,21,0.1804);
527
+ --accent:#fef8de;
528
+ --accent-foreground:var(--foreground);
529
+ --sidebar-primary:var(--primary-emphasis);
530
+ --sidebar-primary-foreground:#18181b;
531
+ --sidebar-ring:#b27600;
532
+ --sidebar-current-line:rgba(250,204,21,0.75);
533
+ }
534
+ [data-brand="honey"][data-theme="dark"],[data-brand="honey"] [data-theme="dark"]{
535
+ --primary:#f5a524;
536
+ --primary-foreground:#18181b;
537
+ --primary-hover:#f7b04e;
538
+ --primary-active:#e59a21;
539
+ --primary-emphasis:#f5a524;
540
+ --primary-outline:rgba(245,165,36,0.349);
541
+ --link:#f5a524;
542
+ --link-hover:#f5a524;
543
+ --link-mark:rgba(0,0,0,0);
544
+ --link-underline:#f5a524;
545
+ --focus:#f5a524;
546
+ --ring:#f5a524;
547
+ --control-selected:#f5a524;
548
+ --control-selected-foreground:#ffffff;
549
+ --control-selected-dot:#ffffff;
550
+ --primary-mark:#18181b;
551
+ --selection:rgba(245,165,36,0.2196);
552
+ --accent:#372c1c;
553
+ --accent-foreground:#f5a524;
554
+ --sidebar-primary:var(--primary-emphasis);
555
+ --sidebar-primary-foreground:#18181b;
556
+ --sidebar-ring:#f5a524;
557
+ --sidebar-current-line:rgba(245,165,36,0.75);
558
+ }
559
+ [data-brand="honey"][data-theme="light"],[data-brand="honey"] [data-theme="light"]{
560
+ --primary:#f5a524;
561
+ --primary-foreground:#18181b;
562
+ --primary-hover:#f7b04e;
563
+ --primary-active:#e59a21;
564
+ --primary-emphasis:var(--foreground);
565
+ --primary-outline:rgba(245,165,36,0.349);
566
+ --link:var(--foreground);
567
+ --link-hover:var(--foreground);
568
+ --link-mark:rgba(245,165,36,0.451);
569
+ --link-underline:#f5a524;
570
+ --focus:#cc6700;
571
+ --ring:#cc6700;
572
+ --control-selected:#f5a524;
573
+ --control-selected-foreground:#ffffff;
574
+ --control-selected-dot:#ffffff;
575
+ --primary-mark:#18181b;
576
+ --selection:rgba(245,165,36,0.1804);
577
+ --accent:#fef2e0;
578
+ --accent-foreground:var(--foreground);
579
+ --sidebar-primary:var(--primary-emphasis);
580
+ --sidebar-primary-foreground:#18181b;
581
+ --sidebar-ring:#cc6700;
582
+ --sidebar-current-line:rgba(245,165,36,0.75);
583
+ }
584
+ [data-brand="orange"][data-theme="dark"],[data-brand="orange"] [data-theme="dark"]{
585
+ --primary:#ff7a1a;
586
+ --primary-foreground:#18181b;
587
+ --primary-hover:#ff8c46;
588
+ --primary-active:#ee7218;
589
+ --primary-emphasis:#ff904f;
590
+ --primary-outline:rgba(255,122,26,0.349);
591
+ --link:#ff904f;
592
+ --link-hover:#ff904f;
593
+ --link-mark:rgba(0,0,0,0);
594
+ --link-underline:#ff7a1a;
595
+ --focus:#ff7a1a;
596
+ --ring:#ff7a1a;
597
+ --control-selected:#ff7a1a;
598
+ --control-selected-foreground:#ffffff;
599
+ --control-selected-dot:#ffffff;
600
+ --primary-mark:#18181b;
601
+ --selection:rgba(255,122,26,0.2196);
602
+ --accent:#38261b;
603
+ --accent-foreground:#ff904f;
604
+ --sidebar-primary:var(--primary-emphasis);
605
+ --sidebar-primary-foreground:#18181b;
606
+ --sidebar-ring:#ff7a1a;
607
+ --sidebar-current-line:rgba(255,122,26,0.75);
608
+ --warning:#f5a524;
609
+ --warning-hover:#f7b04e;
610
+ --warning-400:#f5a524;
611
+ --warning-bg:#4a320b;
612
+ }
613
+ [data-brand="orange"][data-theme="light"],[data-brand="orange"] [data-theme="light"]{
614
+ --primary:#ff7a1a;
615
+ --primary-foreground:#18181b;
616
+ --primary-hover:#ff8c46;
617
+ --primary-active:#ee7218;
618
+ --primary-emphasis:#a44900;
619
+ --primary-outline:rgba(255,122,26,0.349);
620
+ --link:var(--foreground);
621
+ --link-hover:var(--foreground);
622
+ --link-mark:rgba(255,122,26,0.451);
623
+ --link-underline:#ff7a1a;
624
+ --focus:#d46100;
625
+ --ring:#d46100;
626
+ --control-selected:#ff7a1a;
627
+ --control-selected-foreground:#ffffff;
628
+ --control-selected-dot:#ffffff;
629
+ --primary-mark:#18181b;
630
+ --selection:rgba(255,122,26,0.1804);
631
+ --accent:#ffecdf;
632
+ --accent-foreground:#a44900;
633
+ --sidebar-primary:var(--primary-emphasis);
634
+ --sidebar-primary-foreground:#18181b;
635
+ --sidebar-ring:#d46100;
636
+ --sidebar-current-line:rgba(255,122,26,0.75);
637
+ --warning:#f5a524;
638
+ --warning-hover:#f7b04e;
639
+ --warning-400:#8c5b00;
640
+ --warning-bg:#fffbf6;
641
+ }
642
+ [data-brand="magenta"][data-theme="dark"],[data-brand="magenta"] [data-theme="dark"]{
643
+ --primary:#e0196e;
644
+ --primary-foreground:#ffffff;
645
+ --primary-hover:#bd135c;
646
+ --primary-active:#bd135c;
647
+ --primary-emphasis:#ff88a8;
648
+ --primary-outline:rgba(224,25,110,0.349);
649
+ --link:#ff88a8;
650
+ --link-hover:#ff88a8;
651
+ --link-mark:rgba(0,0,0,0);
652
+ --link-underline:#e0196e;
653
+ --focus:#ff4688;
654
+ --ring:#ff4688;
655
+ --control-selected:#e0196e;
656
+ --control-selected-foreground:#ffffff;
657
+ --control-selected-dot:#ffffff;
658
+ --primary-mark:#ffffff;
659
+ --selection:rgba(224,25,110,0.2196);
660
+ --accent:#341827;
661
+ --accent-foreground:#ff88a8;
662
+ --sidebar-primary:var(--primary-emphasis);
663
+ --sidebar-primary-foreground:#ffffff;
664
+ --sidebar-ring:#ff4688;
665
+ --sidebar-current-line:rgba(224,25,110,0.75);
666
+ --primary-gradient-end:oklch(0.4137 0.1594 3.94);
667
+ }
668
+ [data-brand="magenta"][data-theme="light"],[data-brand="magenta"] [data-theme="light"]{
669
+ --primary:#e0196e;
670
+ --primary-foreground:#ffffff;
671
+ --primary-hover:#bd135c;
672
+ --primary-active:#bd135c;
673
+ --primary-emphasis:#bb0059;
674
+ --primary-outline:rgba(224,25,110,0.349);
675
+ --link:var(--foreground);
676
+ --link-hover:var(--foreground);
677
+ --link-mark:rgba(224,25,110,0.451);
678
+ --link-underline:#e0196e;
679
+ --focus:#e0196e;
680
+ --ring:#e0196e;
681
+ --control-selected:#e0196e;
682
+ --control-selected-foreground:#ffffff;
683
+ --control-selected-dot:#ffffff;
684
+ --primary-mark:#ffffff;
685
+ --selection:rgba(224,25,110,0.1804);
686
+ --accent:#fbdfeb;
687
+ --accent-foreground:#bb0059;
688
+ --sidebar-primary:var(--primary-emphasis);
689
+ --sidebar-primary-foreground:#ffffff;
690
+ --sidebar-ring:#e0196e;
691
+ --sidebar-current-line:rgba(224,25,110,0.75);
692
+ --primary-gradient-end:oklch(0.4137 0.1594 3.94);
693
+ }
694
+ [data-brand="violet"][data-theme="dark"],[data-brand="violet"] [data-theme="dark"]{
695
+ --primary:#7c3aed;
696
+ --primary-foreground:#ffffff;
697
+ --primary-hover:#682fc8;
698
+ --primary-active:#682fc8;
699
+ --primary-emphasis:#b49eff;
700
+ --primary-outline:rgba(124,58,237,0.349);
701
+ --link:#b49eff;
702
+ --link-hover:#b49eff;
703
+ --link-mark:rgba(0,0,0,0);
704
+ --link-underline:#7c3aed;
705
+ --focus:#9c76ff;
706
+ --ring:#9c76ff;
707
+ --control-selected:#7c3aed;
708
+ --control-selected-foreground:#ffffff;
709
+ --control-selected-dot:#ffffff;
710
+ --primary-mark:#ffffff;
711
+ --selection:rgba(124,58,237,0.2196);
712
+ --accent:#261d38;
713
+ --accent-foreground:#b49eff;
714
+ --sidebar-primary:var(--primary-emphasis);
715
+ --sidebar-primary-foreground:#ffffff;
716
+ --sidebar-ring:#9c76ff;
717
+ --sidebar-current-line:rgba(124,58,237,0.75);
718
+ --primary-gradient-end:oklch(0.3789 0.1726 293.01);
719
+ }
720
+ [data-brand="violet"][data-theme="light"],[data-brand="violet"] [data-theme="light"]{
721
+ --primary:#7c3aed;
722
+ --primary-foreground:#ffffff;
723
+ --primary-hover:#682fc8;
724
+ --primary-active:#682fc8;
725
+ --primary-emphasis:#7530e4;
726
+ --primary-outline:rgba(124,58,237,0.349);
727
+ --link:var(--foreground);
728
+ --link-hover:var(--foreground);
729
+ --link-mark:rgba(124,58,237,0.451);
730
+ --link-underline:#7c3aed;
731
+ --focus:#7c3aed;
732
+ --ring:#7c3aed;
733
+ --control-selected:#7c3aed;
734
+ --control-selected-foreground:#ffffff;
735
+ --control-selected-dot:#ffffff;
736
+ --primary-mark:#ffffff;
737
+ --selection:rgba(124,58,237,0.1804);
738
+ --accent:#ede3fc;
739
+ --accent-foreground:#7530e4;
740
+ --sidebar-primary:var(--primary-emphasis);
741
+ --sidebar-primary-foreground:#ffffff;
742
+ --sidebar-ring:#7c3aed;
743
+ --sidebar-current-line:rgba(124,58,237,0.75);
744
+ --primary-gradient-end:oklch(0.3789 0.1726 293.01);
745
+ }
746
+ [data-brand="indigo"][data-theme="dark"],[data-brand="indigo"] [data-theme="dark"]{
747
+ --primary:#4f46e5;
748
+ --primary-foreground:#ffffff;
749
+ --primary-hover:#413ac1;
750
+ --primary-active:#413ac1;
751
+ --primary-emphasis:#9aa6ff;
752
+ --primary-outline:rgba(79,70,229,0.349);
753
+ --link:#9aa6ff;
754
+ --link-hover:#9aa6ff;
755
+ --link-mark:rgba(0,0,0,0);
756
+ --link-underline:#4f46e5;
757
+ --focus:#7982ff;
758
+ --ring:#7982ff;
759
+ --control-selected:#4f46e5;
760
+ --control-selected-foreground:#ffffff;
761
+ --control-selected-dot:#ffffff;
762
+ --primary-mark:#ffffff;
763
+ --selection:rgba(79,70,229,0.2196);
764
+ --accent:#201e37;
765
+ --accent-foreground:#9aa6ff;
766
+ --sidebar-primary:var(--primary-emphasis);
767
+ --sidebar-primary-foreground:#ffffff;
768
+ --sidebar-ring:#7982ff;
769
+ --sidebar-current-line:rgba(79,70,229,0.75);
770
+ --primary-gradient-end:oklch(0.3574 0.161 276.97);
771
+ }
772
+ [data-brand="indigo"][data-theme="light"],[data-brand="indigo"] [data-theme="light"]{
773
+ --primary:#4f46e5;
774
+ --primary-foreground:#ffffff;
775
+ --primary-hover:#413ac1;
776
+ --primary-active:#413ac1;
777
+ --primary-emphasis:#4e45e4;
778
+ --primary-outline:rgba(79,70,229,0.349);
779
+ --link:var(--foreground);
780
+ --link-hover:var(--foreground);
781
+ --link-mark:rgba(79,70,229,0.451);
782
+ --link-underline:#4f46e5;
783
+ --focus:#4f46e5;
784
+ --ring:#4f46e5;
785
+ --control-selected:#4f46e5;
786
+ --control-selected-foreground:#ffffff;
787
+ --control-selected-dot:#ffffff;
788
+ --primary-mark:#ffffff;
789
+ --selection:rgba(79,70,229,0.1804);
790
+ --accent:#e6e5fb;
791
+ --accent-foreground:#4e45e4;
792
+ --sidebar-primary:var(--primary-emphasis);
793
+ --sidebar-primary-foreground:#ffffff;
794
+ --sidebar-ring:#4f46e5;
795
+ --sidebar-current-line:rgba(79,70,229,0.75);
796
+ --primary-gradient-end:oklch(0.3574 0.161 276.97);
797
+ }
798
+ [data-brand="cobalt"][data-theme="dark"],[data-brand="cobalt"] [data-theme="dark"]{
799
+ --primary:#0246f1;
800
+ --primary-foreground:#ffffff;
801
+ --primary-hover:#013acb;
802
+ --primary-active:#013acb;
803
+ --primary-emphasis:#82acff;
804
+ --primary-outline:rgba(2,70,241,0.349);
805
+ --link:#82acff;
806
+ --link-hover:#82acff;
807
+ --link-mark:rgba(0,0,0,0);
808
+ --link-underline:#0246f1;
809
+ --focus:#548aff;
810
+ --ring:#548aff;
811
+ --control-selected:#0246f1;
812
+ --control-selected-foreground:#ffffff;
813
+ --control-selected-dot:#ffffff;
814
+ --primary-mark:#ffffff;
815
+ --selection:rgba(2,70,241,0.2196);
816
+ --accent:#151e39;
817
+ --accent-foreground:#82acff;
818
+ --sidebar-primary:var(--primary-emphasis);
819
+ --sidebar-primary-foreground:#ffffff;
820
+ --sidebar-ring:#548aff;
821
+ --sidebar-current-line:rgba(2,70,241,0.75);
822
+ --primary-gradient-end:oklch(0.3466 0.1812 263.46);
823
+ }
824
+ [data-brand="cobalt"][data-theme="light"],[data-brand="cobalt"] [data-theme="light"]{
825
+ --primary:#0246f1;
826
+ --primary-foreground:#ffffff;
827
+ --primary-hover:#013acb;
828
+ --primary-active:#013acb;
829
+ --primary-emphasis:#0246f1;
830
+ --primary-outline:rgba(2,70,241,0.349);
831
+ --link:var(--foreground);
832
+ --link-hover:var(--foreground);
833
+ --link-mark:rgba(2,70,241,0.451);
834
+ --link-underline:#0246f1;
835
+ --focus:#0246f1;
836
+ --ring:#0246f1;
837
+ --control-selected:#0246f1;
838
+ --control-selected-foreground:#ffffff;
839
+ --control-selected-dot:#ffffff;
840
+ --primary-mark:#ffffff;
841
+ --selection:rgba(2,70,241,0.1804);
842
+ --accent:#dce5fd;
843
+ --accent-foreground:#0246f1;
844
+ --sidebar-primary:var(--primary-emphasis);
845
+ --sidebar-primary-foreground:#ffffff;
846
+ --sidebar-ring:#0246f1;
847
+ --sidebar-current-line:rgba(2,70,241,0.75);
848
+ --primary-gradient-end:oklch(0.3466 0.1812 263.46);
849
+ }
850
+ [data-brand="cyan"][data-theme="dark"],[data-brand="cyan"] [data-theme="dark"]{
851
+ --primary:#06b6d4;
852
+ --primary-foreground:#18181b;
853
+ --primary-hover:#48bfd9;
854
+ --primary-active:#05aac6;
855
+ --primary-emphasis:#1cbcdb;
856
+ --primary-outline:rgba(6,182,212,0.349);
857
+ --link:#1cbcdb;
858
+ --link-hover:#1cbcdb;
859
+ --link-mark:rgba(0,0,0,0);
860
+ --link-underline:#06b6d4;
861
+ --focus:#06b6d4;
862
+ --ring:#06b6d4;
863
+ --control-selected:#06b6d4;
864
+ --control-selected-foreground:#ffffff;
865
+ --control-selected-dot:#ffffff;
866
+ --primary-mark:#18181b;
867
+ --selection:rgba(6,182,212,0.2196);
868
+ --accent:#152e35;
869
+ --accent-foreground:#1cbcdb;
870
+ --sidebar-primary:var(--primary-emphasis);
871
+ --sidebar-primary-foreground:#18181b;
872
+ --sidebar-ring:#06b6d4;
873
+ --sidebar-current-line:rgba(6,182,212,0.75);
874
+ }
875
+ [data-brand="cyan"][data-theme="light"],[data-brand="cyan"] [data-theme="light"]{
876
+ --primary:#06b6d4;
877
+ --primary-foreground:#18181b;
878
+ --primary-hover:#48bfd9;
879
+ --primary-active:#05aac6;
880
+ --primary-emphasis:#006d80;
881
+ --primary-outline:rgba(6,182,212,0.349);
882
+ --link:var(--foreground);
883
+ --link-hover:var(--foreground);
884
+ --link-mark:rgba(6,182,212,0.451);
885
+ --link-underline:#06b6d4;
886
+ --focus:#008fa8;
887
+ --ring:#008fa8;
888
+ --control-selected:#06b6d4;
889
+ --control-selected-foreground:#ffffff;
890
+ --control-selected-dot:#ffffff;
891
+ --primary-mark:#18181b;
892
+ --selection:rgba(6,182,212,0.1804);
893
+ --accent:#dcf5f9;
894
+ --accent-foreground:#006d80;
895
+ --sidebar-primary:var(--primary-emphasis);
896
+ --sidebar-primary-foreground:#18181b;
897
+ --sidebar-ring:#008fa8;
898
+ --sidebar-current-line:rgba(6,182,212,0.75);
899
+ }
900
+ [data-brand="turquoise"][data-theme="dark"],[data-brand="turquoise"] [data-theme="dark"]{
901
+ --primary:#14c8a8;
902
+ --primary-foreground:#18181b;
903
+ --primary-hover:#4ecfb2;
904
+ --primary-active:#12bb9d;
905
+ --primary-emphasis:#14c8a8;
906
+ --primary-outline:rgba(20,200,168,0.349);
907
+ --link:#14c8a8;
908
+ --link-hover:#14c8a8;
909
+ --link-mark:rgba(0,0,0,0);
910
+ --link-underline:#14c8a8;
911
+ --focus:#14c8a8;
912
+ --ring:#14c8a8;
913
+ --control-selected:#14c8a8;
914
+ --control-selected-foreground:#ffffff;
915
+ --control-selected-dot:#ffffff;
916
+ --primary-mark:#18181b;
917
+ --selection:rgba(20,200,168,0.2196);
918
+ --accent:#17312f;
919
+ --accent-foreground:#14c8a8;
920
+ --sidebar-primary:var(--primary-emphasis);
921
+ --sidebar-primary-foreground:#18181b;
922
+ --sidebar-ring:#14c8a8;
923
+ --sidebar-current-line:rgba(20,200,168,0.75);
924
+ }
925
+ [data-brand="turquoise"][data-theme="light"],[data-brand="turquoise"] [data-theme="light"]{
926
+ --primary:#14c8a8;
927
+ --primary-foreground:#18181b;
928
+ --primary-hover:#4ecfb2;
929
+ --primary-active:#12bb9d;
930
+ --primary-emphasis:#00715e;
931
+ --primary-outline:rgba(20,200,168,0.349);
932
+ --link:var(--foreground);
933
+ --link-hover:var(--foreground);
934
+ --link-mark:rgba(20,200,168,0.451);
935
+ --link-underline:#14c8a8;
936
+ --focus:#00937b;
937
+ --ring:#00937b;
938
+ --control-selected:#14c8a8;
939
+ --control-selected-foreground:#ffffff;
940
+ --control-selected-dot:#ffffff;
941
+ --primary-mark:#18181b;
942
+ --selection:rgba(20,200,168,0.1804);
943
+ --accent:#def7f3;
944
+ --accent-foreground:#00715e;
945
+ --sidebar-primary:var(--primary-emphasis);
946
+ --sidebar-primary-foreground:#18181b;
947
+ --sidebar-ring:#00937b;
948
+ --sidebar-current-line:rgba(20,200,168,0.75);
949
+ }
950
+ [data-brand="emerald"][data-theme="dark"],[data-brand="emerald"] [data-theme="dark"]{
951
+ --primary:#17c964;
952
+ --primary-foreground:#18181b;
953
+ --primary-hover:#4dd078;
954
+ --primary-active:#15bc5d;
955
+ --primary-emphasis:#17c964;
956
+ --primary-outline:rgba(23,201,100,0.349);
957
+ --link:#17c964;
958
+ --link-hover:#17c964;
959
+ --link-mark:rgba(0,0,0,0);
960
+ --link-underline:#17c964;
961
+ --focus:#17c964;
962
+ --ring:#17c964;
963
+ --control-selected:#17c964;
964
+ --control-selected-foreground:#ffffff;
965
+ --control-selected-dot:#ffffff;
966
+ --primary-mark:#18181b;
967
+ --selection:rgba(23,201,100,0.2196);
968
+ --accent:#183125;
969
+ --accent-foreground:#17c964;
970
+ --sidebar-primary:var(--primary-emphasis);
971
+ --sidebar-primary-foreground:#18181b;
972
+ --sidebar-ring:#17c964;
973
+ --sidebar-current-line:rgba(23,201,100,0.75);
974
+ }
975
+ [data-brand="emerald"][data-theme="light"],[data-brand="emerald"] [data-theme="light"]{
976
+ --primary:#17c964;
977
+ --primary-foreground:#18181b;
978
+ --primary-hover:#4dd078;
979
+ --primary-active:#15bc5d;
980
+ --primary-emphasis:#007435;
981
+ --primary-outline:rgba(23,201,100,0.349);
982
+ --link:var(--foreground);
983
+ --link-hover:var(--foreground);
984
+ --link-mark:rgba(23,201,100,0.451);
985
+ --link-underline:#17c964;
986
+ --focus:#009647;
987
+ --ring:#009647;
988
+ --control-selected:#17c964;
989
+ --control-selected-foreground:#ffffff;
990
+ --control-selected-dot:#ffffff;
991
+ --primary-mark:#18181b;
992
+ --selection:rgba(23,201,100,0.1804);
993
+ --accent:#dff7e9;
994
+ --accent-foreground:#007435;
995
+ --sidebar-primary:var(--primary-emphasis);
996
+ --sidebar-primary-foreground:#18181b;
997
+ --sidebar-ring:#009647;
998
+ --sidebar-current-line:rgba(23,201,100,0.75);
999
+ }
1000
+ [data-brand="lime"][data-theme="dark"],[data-brand="lime"] [data-theme="dark"]{
1001
+ --primary:#a3e635;
1002
+ --primary-foreground:#18181b;
1003
+ --primary-hover:#aeea5b;
1004
+ --primary-active:#98d731;
1005
+ --primary-emphasis:#a3e635;
1006
+ --primary-outline:rgba(163,230,53,0.349);
1007
+ --link:#a3e635;
1008
+ --link-hover:#a3e635;
1009
+ --link-mark:rgba(0,0,0,0);
1010
+ --link-underline:#a3e635;
1011
+ --focus:#a3e635;
1012
+ --ring:#a3e635;
1013
+ --control-selected:#a3e635;
1014
+ --control-selected-foreground:#ffffff;
1015
+ --control-selected-dot:#ffffff;
1016
+ --primary-mark:#18181b;
1017
+ --selection:rgba(163,230,53,0.2196);
1018
+ --accent:#2b351f;
1019
+ --accent-foreground:#a3e635;
1020
+ --sidebar-primary:var(--primary-emphasis);
1021
+ --sidebar-primary-foreground:#18181b;
1022
+ --sidebar-ring:#a3e635;
1023
+ --sidebar-current-line:rgba(163,230,53,0.75);
1024
+ }
1025
+ [data-brand="lime"][data-theme="light"],[data-brand="lime"] [data-theme="light"]{
1026
+ --primary:#a3e635;
1027
+ --primary-foreground:#18181b;
1028
+ --primary-hover:#aeea5b;
1029
+ --primary-active:#98d731;
1030
+ --primary-emphasis:#4c7200;
1031
+ --primary-outline:rgba(163,230,53,0.349);
1032
+ --link:var(--foreground);
1033
+ --link-hover:var(--foreground);
1034
+ --link-mark:rgba(163,230,53,0.451);
1035
+ --link-underline:#a3e635;
1036
+ --focus:#619000;
1037
+ --ring:#619000;
1038
+ --control-selected:#a3e635;
1039
+ --control-selected-foreground:#ffffff;
1040
+ --control-selected-dot:#ffffff;
1041
+ --primary-mark:#18181b;
1042
+ --selection:rgba(163,230,53,0.1804);
1043
+ --accent:#f2fce3;
1044
+ --accent-foreground:#4c7200;
1045
+ --sidebar-primary:var(--primary-emphasis);
1046
+ --sidebar-primary-foreground:#18181b;
1047
+ --sidebar-ring:#619000;
1048
+ --sidebar-current-line:rgba(163,230,53,0.75);
1049
+ }
484
1050
  [data-density="compact"]{
485
1051
  --control-h-xs:1.5rem;
486
1052
  --control-h-sm:1.75rem;
@@ -833,11 +1399,14 @@ img,svg { display:block; }
833
1399
  segunda exceção ao sem linha (ADR-0072), desenhada, de uma ponta à outra da barra, na cor da linha. */
834
1400
  .topbar-divider::after { content:""; position:absolute; inset-inline:0; inset-block-end:0; block-size:var(--border-width);
835
1401
  background:var(--border); pointer-events:none; }
836
- /* blurred (15/10/2026), só na `flush`: o fundo transparente que embaça o que passa por baixo — o desfoque de 16 da
837
- referência. Quem pede menos transparência ao sistema, e o navegador sem desfoque, ficam com o fundo cheio. */
838
- .topbar-flush.topbar-blurred { background:transparent; -webkit-backdrop-filter:blur(var(--space-4)); backdrop-filter:blur(var(--space-4)); }
839
- @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .topbar-flush.topbar-blurred { background:var(--background); } }
840
- @media (prefers-reduced-transparency:reduce) { .topbar-flush.topbar-blurred { background:var(--background); -webkit-backdrop-filter:none; backdrop-filter:none; } }
1402
+ /* blurred (15/10/2026), só na `flush`: o fundo que embaça o que passa por baixo — o desfoque de 16 da referência.
1403
+ ~~O fundo transparente~~ → a cor do CARTÃO a 72%, com a cor de trás mais viva (ADR-0086, 28/10/2026): transparente,
1404
+ a letra da barra ficava direto sobre a cor desfocada — 1,83:1 sobre o amarelo no escuro e 3,28:1 sobre o vermelho no
1405
+ claro, medido na bancada; a 72%, nunca menos de 9:1. Quem pede menos transparência ao sistema, e o navegador sem
1406
+ desfoque, ficam com o cartão cheio. */
1407
+ .topbar-flush.topbar-blurred { background:color-mix(in oklab, var(--card) 72%, transparent); -webkit-backdrop-filter:blur(var(--space-4)) saturate(160%); backdrop-filter:blur(var(--space-4)) saturate(160%); }
1408
+ @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .topbar-flush.topbar-blurred { background:var(--card); } }
1409
+ @media (prefers-reduced-transparency:reduce) { .topbar-flush.topbar-blurred { background:var(--card); -webkit-backdrop-filter:none; backdrop-filter:none; } }
841
1410
  /* menuActions (15/10/2026): o que só o menu do celular leva (o GitHub, na referência), embaixo dos links, depois de uma
842
1411
  linha. */
843
1412
  .topbar-menu-actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); margin-block-start:var(--space-4); padding-block-start:var(--space-4); border-block-start:var(--border-width) solid transparent; }
@@ -910,7 +1479,7 @@ img,svg { display:block; }
910
1479
  o painel do `Tabs`, o `KPI`). É a coluna "On this page" de uma documentação, como a da referência: os
911
1480
  itens soltos na página. Tira só a PINTURA — fundo, cor da borda, sombra — e guarda a geometria da
912
1481
  flutuante (margens, altura, a mesma borda de 1, agora invisível), então trocar de variante não mexe em
913
- nada de lugar. O texto continua na escala da lateral: medido nos quatro (Aurea e `lory`, claro e
1482
+ nada de lugar. O texto continua na escala da lateral: medido nos quatro (Aurea e `ember`, claro e
914
1483
  escuro), o `--sidebar-foreground` é o mesmo `--foreground` da página. */
915
1484
  .sidebar-plain { border-color:transparent; background:transparent; box-shadow:none; }
916
1485
  /* A COLUNA DA DIREITA do `AppShell` (`aside`): a terceira trilha, da largura da lateral, de 1280 para
@@ -1155,7 +1724,7 @@ img,svg { display:block; }
1155
1724
  /* A LATERAL SE PINTA COM OS TOKENS DELA, e isto é conserto de 20/08/2026 — o Victor viu.
1156
1725
  Estas duas regras usavam `--secondary` e `--foreground`, que são tokens da PÁGINA. Na Aurea
1157
1726
  isso nunca apareceu porque o painel e a página têm a mesma claridade nos dois temas; sob a
1158
- marca `lory`, onde a lateral é escura mesmo no tema claro (decisão de produto da marca), o
1727
+ marca `ember`, onde a lateral é escura mesmo no tema claro (decisão de produto da marca), o
1159
1728
  item atual virava uma pílula QUASE BRANCA com texto escuro em cima de um painel escuro. Ele
1160
1729
  chamou de "cores invertidas", e é exatamente o que era.
1161
1730
  `--sidebar-accent` e `--sidebar-accent-foreground` já eram PUBLICADOS e não tinham um único
@@ -1164,9 +1733,9 @@ img,svg { display:block; }
1164
1733
  /* O ITEM ESMAECIDO, como o da referência (ADR-0067, decisão do Victor de 13/10/2026, vendo os dois rodando:
1165
1734
  "B, igual ao dela"): o item que não é o atual fica cinza, e o título de grupo e o item atual ficam fortes;
1166
1735
  passando o mouse, o item acende. O cinza sai da ESCALA DA LATERAL (o texto dela, esmaecido), e não do
1167
- `--muted-foreground` da página — sob a marca `lory` a lateral é escura e a página não (a lição de
1736
+ `--muted-foreground` da página — sob a marca `ember` a lateral é escura e a página não (a lição de
1168
1737
  20/08/2026, logo abaixo). Medido contra o fundo da lateral (13/10/2026): 7,6:1 no escuro e 5,4:1 no
1169
- claro; na marca `lory`, 7,8:1 e 5,6:1 — o branco de antes era 14,5:1. */
1738
+ claro; na marca `ember`, 7,8:1 e 5,6:1 — o branco de antes era 14,5:1. */
1170
1739
  .sidebar-item:not([aria-current]) { color:color-mix(in oklab, var(--sidebar-foreground) 68%, transparent); }
1171
1740
  @media (hover:hover) and (pointer:fine) { .sidebar-item:hover { background:var(--sidebar-accent); } .sidebar-item:not([aria-current]):hover { color:var(--sidebar-foreground); } }
1172
1741
  /* A-05 (24/09/2026), decisão do Victor: o item atual da lateral passa a usar a MARCA DA CASA para
@@ -1174,7 +1743,7 @@ img,svg { display:block; }
1174
1743
  `SegmentedControl`, o `Button variant="nav"` e a navegação do catálogo (`.doc-nav`) já usavam.
1175
1744
  Era o único de fora: pílula cinza com texto branco, e um app copiou a regra da casa à mão.
1176
1745
  As cores saem da escala DA LATERAL (`--sidebar-accent`, `--sidebar-primary`), exatamente como o
1177
- `.doc-nav a.active` — não da página. Foi a lição de 20/08/2026 sob a marca `lory`: com
1746
+ `.doc-nav a.active` — não da página. Foi a lição de 20/08/2026 sob a marca `ember`: com
1178
1747
  `--secondary`/`--primary` da página, a lateral escura desenhava as cores invertidas.
1179
1748
  O FIO não mora aqui: a lateral entrou na lista da regra da casa (`.is-selected::after`, mais
1180
1749
  abaixo), com o do `.doc-nav`. Copiar a regra faria duas cópias do mesmo fio divergirem. */
@@ -1443,7 +2012,11 @@ img,svg { display:block; }
1443
2012
  decoração do item atual, é alerta.
1444
2013
  ⚠ Ponto não tem nome acessível — não há o que ler. Quem usa ponto põe o sentido no RÓTULO do
1445
2014
  item (`label: <>Updates <span className="sr-only">(new)</span></>`). Está na ficha. */
1446
- .bottom-nav-badge:empty { width:var(--space-2); height:var(--space-2); border-radius:var(--radius-full); background:var(--primary); }
2015
+ /* O CONTADOR E O PONTO SÃO VERMELHOS, como no nativo (o Victor, 28/10/2026: "Vermelho, igual"; "Vermelho sempre"; "Vermelho,
2016
+ como no nativo"). O ponto é o `--destructive`, o fundo do selo cheio de perigo — o que o `BottomNav` do nativo desenha. No
2017
+ item atual, a peça só inverte o selo da cor da MARCA (`.badge-primary`), que sumiria na cápsula da marca; o vermelho fica
2018
+ vermelho. Na barra inteira da marca (`bar-*`), o ponto continua na tinta: o vermelho no amarelo não chega a 3:1. */
2019
+ .bottom-nav-badge:empty { width:var(--space-2); height:var(--space-2); border-radius:var(--radius-full); background:var(--destructive); }
1447
2020
  /* SEM REALCE DE PASSAR O MOUSE, e isso é decisão do Victor em 20/08/2026: *"essa bola cinza
1448
2021
  que aparece quando mouse passar em cima pode retirar, é um recurso irrelevante no celular"*.
1449
2022
  Ele tem razão pelo escopo do componente: esta barra é o chrome de aplicativo de TELEFONE, e o
@@ -1563,7 +2136,7 @@ img,svg { display:block; }
1563
2136
  do Victor mostram. O gate de contraste reprovou no tema CLARO: sobre o amarelo sólido, nem o
1564
2137
  fundo do contador nem o anel branco chegam a 3:1. No escuro passava, e é assim que este defeito
1565
2138
  se esconde. Fio fino não substitui contraste quando as duas cores são claras. */
1566
- .bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .badge { background:var(--primary-mark); color:var(--primary); border-color:transparent; }
2139
+ .bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .badge-primary { background:var(--primary-mark); color:var(--primary); border-color:transparent; }
1567
2140
  .bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .bottom-nav-badge { color:var(--primary-mark); }
1568
2141
  /* ── CÁPSULA (`capsule`) — a "A" da bancada do Victor, 03/10/2026: o modelo de uma das referências ─
1569
2142
  A moldura do ícone vira a cápsula de 56 × 32 do indicador ativo dessa referência
@@ -1578,7 +2151,7 @@ img,svg { display:block; }
1578
2151
  .bottom-nav-ind-capsule .bottom-nav-badge { inset-inline-end:calc((var(--bottomnav-bold,3.5rem) - var(--bottomnav-ring)) / 2 - var(--space-05)); }
1579
2152
  .bottom-nav-ind-capsule .bottom-nav-item[aria-current] .bottom-nav-mark { background:var(--primary); color:var(--primary-mark); }
1580
2153
  .bottom-nav-ind-capsule .bottom-nav-item[aria-current] .icon { opacity:1; }
1581
- .bottom-nav-ind-capsule .bottom-nav-item[aria-current] .badge { background:var(--primary-mark); color:var(--primary); border-color:transparent; }
2154
+ .bottom-nav-ind-capsule .bottom-nav-item[aria-current] .badge-primary { background:var(--primary-mark); color:var(--primary); border-color:transparent; }
1582
2155
  /* No `content`, o recheio de sempre (`--space-1`) e não o `--space-3`: com ele cada item teria 80. */
1583
2156
  .bottom-nav-content:not(.bottom-nav-edge).bottom-nav-ind-capsule .bottom-nav-item { padding-inline:var(--space-1); }
1584
2157
  /* ── EXPANDE (`expand`) — a "C" da bancada do Victor, 03/10/2026 ───────────────────────────────
@@ -1594,7 +2167,7 @@ img,svg { display:block; }
1594
2167
  .bottom-nav-ind-expand .bottom-nav-label { font-size:var(--text-sm); }
1595
2168
  .bottom-nav-ind-expand .bottom-nav-item[aria-current] { flex:none; inline-size:calc(var(--icon-lg) + var(--space-2) + var(--space-20) + 2 * var(--space-3)); padding-inline:var(--space-3); background:var(--primary); color:var(--primary-mark); }
1596
2169
  .bottom-nav-ind-expand .bottom-nav-item[aria-current] .icon { opacity:1; }
1597
- .bottom-nav-ind-expand .bottom-nav-item[aria-current] .badge { background:var(--primary-mark); color:var(--primary); border-color:transparent; }
2170
+ .bottom-nav-ind-expand .bottom-nav-item[aria-current] .badge-primary { background:var(--primary-mark); color:var(--primary); border-color:transparent; }
1598
2171
  .bottom-nav-content:not(.bottom-nav-edge).bottom-nav-ind-expand .bottom-nav-item:not([aria-current]) { flex:none; inline-size:var(--target-min); padding-inline:0; }
1599
2172
 
1600
2173
  /* ── A LINHA DE LISTA TOCÁVEL (§4.3 do CONSUMIDOR-1) ──────────────────────────
@@ -1687,9 +2260,9 @@ img,svg { display:block; }
1687
2260
  quatro níveis alternados (escuro > claro > escuro > claro) não são cobertos. Quem cobra:
1688
2261
  `tests/visual/tema-na-secao.spec.ts`, e o `tema-na-secao.test.tsx` reprova regra nova sem a
1689
2262
  guarda. */
1690
- /* A mistura de 45% ficou SÓ na `lory` (ADR-0083, 26/10/2026): na Aurea, a letra de destaque do claro é o grafite —
2263
+ /* A mistura de 45% ficou SÓ na `ember` (ADR-0083, 26/10/2026): na Aurea, a letra de destaque do claro é o grafite —
1691
2264
  a regra fica na seção "A paleta da 1.0", no fim da folha. */
1692
- [data-theme="light"] .eyebrow:where([data-brand="lory"],[data-brand="lory"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) { color:color-mix(in oklab, var(--primary) 45%, var(--foreground)); }
2265
+ [data-theme="light"] .eyebrow:where([data-brand="ember"],[data-brand="ember"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) { color:color-mix(in oklab, var(--primary) 45%, var(--foreground)); }
1693
2266
  .demo { min-width:0; padding:var(--card-pad); border:1px solid transparent; border-radius:var(--radius-card); background:var(--card); color:var(--card-foreground); box-shadow:none; }
1694
2267
 
1695
2268
  /* ========================================================================== */
@@ -1789,9 +2362,9 @@ img,svg { display:block; }
1789
2362
  .btn-danger-ghost:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:color-mix(in oklab, var(--destructive) 14%, transparent); }
1790
2363
  [data-theme="light"] .btn-danger-outline:where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),[data-theme="light"] .btn-danger-ghost:where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),[data-theme="light"] .btn-link-danger:where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) { --btn-fg:var(--danger-400); }
1791
2364
  /* A LETRA DA MARCA nos botões sem caixa é a de DESTAQUE (ADR-0081, 24/10/2026 — a ADR-0076 aplicada a eles): o azul no
1792
- claro, o amarelo no escuro, e na `lory` o laranja escuro dela. De 21/08 até aqui, o claro levava a mistura marrom
2365
+ claro, o amarelo no escuro, e na `ember` o laranja escuro dela. De 21/08 até aqui, o claro levava a mistura marrom
1793
2366
  (a marca a 45% no texto): passava sobre a página e caía para 4,22 dentro da barra de ferramentas; o azul dá 4,69. O
1794
- `--primary-outline` não serve de letra: na `lory` ele é translúcido (é do contorno). */
2367
+ `--primary-outline` não serve de letra: na `ember` ele é translúcido (é do contorno). */
1795
2368
  /* LINK: aparência de texto, sem cápsula e sem altura de controle — o sublinhado é o que diz
1796
2369
  que é clicável, então ele existe desde o repouso (revelar no hover esconde a affordance).
1797
2370
  Três tons: neutro, marca e destrutivo. No claro a marca aprofunda, senão não passa o AA. */
@@ -1973,8 +2546,11 @@ img,svg { display:block; }
1973
2546
  .btn-group-detached,.toggle-group-detached { flex-wrap:wrap; gap:var(--space-1); }
1974
2547
  .btn-group-full,.toggle-group-full { display:flex; inline-size:100%; }
1975
2548
  :is(.btn-group-full,.toggle-group-full) > .btn { flex:1 1 0%; min-inline-size:0; }
1976
- /* Toolbar: contêiner de controles; o roving tabindex vem do Base UI. */
1977
- .toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:6px; border:1px solid transparent; border-radius:var(--radius-control); background:var(--secondary); }
2549
+ /* Toolbar: contêiner de controles; o roving tabindex vem do Base UI.
2550
+ AS MEDIDAS DA REFERÊNCIA (o Victor, 28/10/2026, olhando as duas lado a lado: "Medidas da referência"): a barra "colada"
2551
+ dela tem 4 por dentro e 8 entre os botões. Eram 7 (6 de recheio + 1 da borda transparente) e 6, escritos à mão. O
2552
+ recheio desconta a borda, que o "sem linha" deixa transparente mas que ainda ocupa espaço: 4 − 1 = 3. */
2553
+ .toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2); padding:calc(var(--space-1) - var(--border-width)); border:var(--border-width) solid transparent; border-radius:var(--radius-control); background:var(--secondary); }
1978
2554
  /* Vertical sai da pílula: --radius-control (999px) clampa em 50% da menor
1979
2555
  dimensão e vira um oval num container alto. */
1980
2556
  .toolbar[data-orientation="vertical"] { flex-direction:column; align-items:stretch; border-radius:var(--radius-lg); }
@@ -2505,8 +3081,8 @@ img,svg { display:block; }
2505
3081
  grita mais que o próprio rótulo. No tema CLARO o amarelo puro como texto dá 1.6:1, longe
2506
3082
  dos 4.5:1 do AA, então o rótulo aprofunda com --foreground e segue âmbar. */
2507
3083
  /* O BOTÃO LIGADO saiu desta linguagem na Aurea (ADR-0083, 26/10/2026): amarelo cheio, a letra do botão primário e
2508
- sem fio — a regra fica na seção "A paleta da 1.0", no fim da folha. Aqui ele continua só na `lory`. */
2509
- .is-selected,.btn-nav[aria-current]:not([aria-current="false"]),.btn[aria-pressed="true"]:where([data-brand="lory"],[data-brand="lory"] *),
3084
+ sem fio — a regra fica na seção "A paleta da 1.0", no fim da folha. Aqui ele continua só na `ember`. */
3085
+ .is-selected,.btn-nav[aria-current]:not([aria-current="false"]),.btn[aria-pressed="true"]:where([data-brand="ember"],[data-brand="ember"] *),
2510
3086
  .segmented :is(button,a).active { --btn-bg:var(--secondary); --btn-fg:var(--primary); position:relative; background:var(--secondary); color:var(--primary); }
2511
3087
  /* A CÁPSULA ELEVADA que a regra acima promete, e que no trilho não se via (ADR-0059, 08/10/2026):
2512
3088
  o segmento aceso e a aba escolhida vivem sobre --muted, e --secondary dava 1:1 contra ele no
@@ -2519,10 +3095,10 @@ img,svg { display:block; }
2519
3095
  da marca; o da Aurea é o "clarinho" (o amarelo a 10%, a receita do `.badge-primary` que o Victor
2520
3096
  escolheu para a página atual da paginação), aqui sobre o cinza, para o grupo colado continuar uma
2521
3097
  cápsula só. A letra da marca e o fio continuam os do "selecionado". */
2522
- .btn.toggle[data-pressed]:where([data-brand="lory"],[data-brand="lory"] *) { --btn-bg:color-mix(in oklab, var(--primary) 10%, var(--secondary)); background:var(--btn-bg); }
2523
- .btn.toggle[data-pressed]:hover:not(:disabled):not([aria-disabled="true"]):where([data-brand="lory"],[data-brand="lory"] *) { --btn-bg:color-mix(in oklab, var(--primary) 10%, var(--secondary-hover)); }
3098
+ .btn.toggle[data-pressed]:where([data-brand="ember"],[data-brand="ember"] *) { --btn-bg:color-mix(in oklab, var(--primary) 10%, var(--secondary)); background:var(--btn-bg); }
3099
+ .btn.toggle[data-pressed]:hover:not(:disabled):not([aria-disabled="true"]):where([data-brand="ember"],[data-brand="ember"] *) { --btn-bg:color-mix(in oklab, var(--primary) 10%, var(--secondary-hover)); }
2524
3100
  /* O ATIVO DA NAV DA LATERAL sai da escala DELA, e não da página (20/08/2026, o Victor viu sob a
2525
- marca `lory`). Ele dividia esta regra com o `.segmented`, que vive no conteúdo — e `--secondary`
3101
+ marca `ember`). Ele dividia esta regra com o `.segmented`, que vive no conteúdo — e `--secondary`
2526
3102
  é quase branco no tema claro. Numa lateral escura isso desenhava uma pílula branca com texto
2527
3103
  escuro: as cores invertidas que ele apontou.
2528
3104
  `--sidebar-accent` e `--sidebar-primary` já eram publicados e não tinham uso no core. O segundo
@@ -2533,7 +3109,7 @@ img,svg { display:block; }
2533
3109
  Os links da lateral do catálogo não têm atributo `class`, então `[data-theme="light"]
2534
3110
  a:not([class])` — a regra que existe para LINK DE PROSA — casa com eles. Ela pesa (0,2,1) e a
2535
3111
  `.doc-nav a` pesa (0,1,1): a regra de prosa ganhava e pintava o item com
2536
- `color-mix(--primary, --foreground)`. Sob a marca `lory` isso deu MARROM ESCURO
3112
+ `color-mix(--primary, --foreground)`. Sob a marca `ember` isso deu MARROM ESCURO
2537
3113
  (`oklab(0.44 0.059 0.051)`) sobre um painel escuro — ilegível, e foi o que ele viu.
2538
3114
  Mesmo peso, e depois na folha: quem manda no que está DENTRO da lateral é a lateral.
2539
3115
  `:not(.active)` NÃO é enfeite — a primeira versão desta linha não tinha, pesava igual à regra do
@@ -2541,7 +3117,7 @@ img,svg { display:block; }
2541
3117
  saíram com a mesma cor. Com o `:not` ela pesa (0,3,1) e só alcança quem está em repouso. */
2542
3118
  [data-theme="light"] .doc-nav a:not(.active):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) { color:color-mix(in oklab, var(--sidebar-foreground) 72%, transparent); }
2543
3119
  .is-selected::after,.btn-nav[aria-current]:not([aria-current="false"])::after,
2544
- .btn[aria-pressed="true"]:not(.btn-icon):where([data-brand="lory"],[data-brand="lory"] *)::after,.segmented :is(button,a).active::after,.tabs-secondary .tab[data-active]::after,
3120
+ .btn[aria-pressed="true"]:not(.btn-icon):where([data-brand="ember"],[data-brand="ember"] *)::after,.segmented :is(button,a).active::after,.tabs-secondary .tab[data-active]::after,
2545
3121
  .doc-nav a.active::after,.sidebar-item[aria-current]::after { content:""; position:absolute; inset-inline:15px; bottom:0; height:2px; border-radius:var(--radius-full); background:color-mix(in oklab, var(--primary) 75%, transparent); }
2546
3122
  /* e o fio do ativo da lateral segue a marca DELA, pelo mesmo motivo da regra de cor acima. */
2547
3123
  .doc-nav a.active::after,.sidebar-item[aria-current]::after { background:var(--sidebar-current-line, color-mix(in oklab, var(--sidebar-primary) 75%, transparent)); }
@@ -2549,18 +3125,18 @@ img,svg { display:block; }
2549
3125
  /* ADR-0076 (20/10/2026), o Victor olhando a bancada: "não quero ele azul, não pode ser na cor do botão?". No claro da Aurea
2550
3126
  padrão, o item atual da lateral é o botão primário: o fundo amarelo e a letra cinza-escura dele (8,13:1). O fundo já
2551
3127
  marca o estado, e o fio de baixo some (`--sidebar-current-line` transparente: regra no `::after` não aceitaria a guarda
2552
- de tema no fim). Só sem `data-brand` (a `lory` tem a lateral dela) e só no claro (no escuro, a letra amarela continua).
3128
+ de tema no fim). Só sem `data-brand` (a `ember` tem a lateral dela) e só no claro (no escuro, a letra amarela continua).
2553
3129
  Sobre o amarelo, a letra de destaque de DENTRO do item (o selo primário de contagem, um ícone de destaque) é a tinta do
2554
3130
  botão: o azul sobre o amarelo mede 3,49:1 — o axe da varredura achou, no "12" do exemplo da `Sidebar`. */
2555
3131
  [data-theme="light"] :is(.sidebar-item[aria-current],.doc-nav a.active):not(:where([data-brand],[data-brand] *,.sidebar[class*="sidebar-indicator-"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) { --sidebar-current-line:transparent; --primary-emphasis:var(--primary-foreground); --sidebar-primary:var(--primary-foreground); background:var(--primary); color:var(--primary-foreground); }
2556
- /* A mistura de 45% (o "marrom") ficou SÓ na `lory` (ADR-0083, 26/10/2026). Na Aurea, o escolhido do claro tem a letra
3132
+ /* A mistura de 45% (o "marrom") ficou SÓ na `ember` (ADR-0083, 26/10/2026). Na Aurea, o escolhido do claro tem a letra
2557
3133
  grafite, e o botão ligado é amarelo — as duas regras ficam na seção "A paleta da 1.0", no fim da folha. */
2558
- [data-theme="light"] .is-selected:where([data-brand="lory"],[data-brand="lory"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),[data-theme="light"] .btn-nav[aria-current]:not([aria-current="false"]):where([data-brand="lory"],[data-brand="lory"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
2559
- [data-theme="light"] .btn[aria-pressed="true"]:where([data-brand="lory"],[data-brand="lory"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),[data-theme="light"] .segmented :is(button,a).active:where([data-brand="lory"],[data-brand="lory"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *)
3134
+ [data-theme="light"] .is-selected:where([data-brand="ember"],[data-brand="ember"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),[data-theme="light"] .btn-nav[aria-current]:not([aria-current="false"]):where([data-brand="ember"],[data-brand="ember"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
3135
+ [data-theme="light"] .btn[aria-pressed="true"]:where([data-brand="ember"],[data-brand="ember"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),[data-theme="light"] .segmented :is(button,a).active:where([data-brand="ember"],[data-brand="ember"] *):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *)
2560
3136
  { --btn-fg:color-mix(in oklab, var(--primary) 45%, var(--foreground)); color:color-mix(in oklab, var(--primary) 45%, var(--foreground)); }
2561
3137
  /* A NAV DA LATERAL SAIU DESTA LISTA em 20/08/2026. O ajuste existe porque o amarelo puro não se lê
2562
3138
  sobre o claro — mas ele mistura o `--foreground` da PÁGINA, e o item da lateral não está sobre a
2563
- página: está sobre `--sidebar-accent`. Sob a marca `lory`, onde esse fundo é escuro no tema
3139
+ página: está sobre `--sidebar-accent`. Sob a marca `ember`, onde esse fundo é escuro no tema
2564
3140
  claro, a mistura escurecia o texto contra um fundo escuro. Quem manda ali é `--sidebar-primary`,
2565
3141
  que cada marca já publica com a claridade certa para o painel dela. */
2566
3142
 
@@ -2588,8 +3164,11 @@ img,svg { display:block; }
2588
3164
  .badge-primary { --badge-accent:var(--primary-emphasis); --badge-on:var(--primary-foreground); color:var(--primary-emphasis); border-color:transparent; background:color-mix(in srgb,var(--primary) 10%,transparent); }
2589
3165
  /* ADR-0076 (20/10/2026): na Aurea padrão a letra de destaque do claro é o AZUL, e o cheio continua o AMARELO — o fundo do
2590
3166
  selo cheio é o primário, e não o acento (com o acento, sairia a letra cinza no azul, 1,99:1). Só sem `data-brand`, como o
2591
- contorno lá embaixo: na `lory` do claro o primário com a letra dela mede 3,08:1, e o acento dela já é o fundo certo. */
2592
- .badge-primary:not(:where([data-brand],[data-brand] *)) { --badge-fill:var(--primary); }
3167
+ contorno lá embaixo: na `ember` do claro o primário com a letra dela mede 3,08:1, e o acento dela já é o fundo certo. */
3168
+ /* Passo C (28/10/2026): "sem `data-brand`" queria dizer "fora da `ember`" — ela era a única marca. Com as 11 marcas novas, o
3169
+ selo cheio delas saía no acento (a letra escura no grafite, 1,12:1 na Aurea Sun do claro; a branca no azul claro, 2,25:1
3170
+ na Cobalt do escuro). O selo cheio é o botão cheio em toda marca; só a Ember fica como era. */
3171
+ .badge-primary:not(:where([data-brand="ember"],[data-brand="ember"] *)) { --badge-fill:var(--primary); }
2593
3172
  /* TAMANHOS. O md é a base (24px), que não muda — é o que as 103 fichas já usam. */
2594
3173
  .badge-xs { min-height:var(--space-4); padding:0 var(--space-1); border-width:0; }
2595
3174
  .badge-sm { min-height:var(--space-5); padding:0 calc(var(--space-1) + var(--space-05) - var(--border-width)); }
@@ -3214,11 +3793,11 @@ button.tag-main { cursor:pointer; }
3214
3793
  alinham por construção em vez de por número copiado. Saem junto os 24px de recuo e os 7px
3215
3794
  do trilho — dois px crus a menos na catraca do check 12. */
3216
3795
  .timeline { position:relative; display:flex; flex-direction:column; gap:var(--space-5); margin:0; padding:0; list-style:none; }
3217
- /* O TRILHO POR BAIXO DOS PONTOS (ADR-0083, 27/10/2026, em todas as marcas — o Victor: o defeito "não tinha só na lory, no
3796
+ /* O TRILHO POR BAIXO DOS PONTOS (ADR-0083, 27/10/2026, em todas as marcas — o Victor: o defeito "não tinha só na ember, no
3218
3797
  tema padrão da Aurea também"). Era um `::before` da lista inteira, posicionado, e o ponto não: o navegador pinta o
3219
3798
  posicionado por cima, e a linha passava por CIMA da bolinha; e ia até o fim da lista, sobrando depois do último ponto.
3220
3799
  Agora cada item desenha o trecho até o ponto seguinte, centrado no ponto, e o ponto fica por cima. A cor é a da linha
3221
- (`--border`); a paleta da 1.0 a troca por `--input`, mais adiante, fora da lory. */
3800
+ (`--border`); a paleta da 1.0 a troca por `--input`, mais adiante, fora da ember. */
3222
3801
  .timeline > li { position:relative; display:flex; align-items:flex-start; gap:var(--space-3); }
3223
3802
  .timeline > li:not(:last-child)::before { content:""; position:absolute; inset-inline-start:calc(var(--space-3) / 2 - var(--border-width) / 2);
3224
3803
  inset-block-start:calc(var(--space-1) + var(--space-3)); inset-block-end:calc(-1 * (var(--space-5) + var(--space-1)));
@@ -4936,9 +5515,9 @@ button.graph-node-body { cursor:pointer; }
4936
5515
  /* Menos o primário da Aurea (ADR-0073, decisão do Victor de 18/10/2026, "A"): a letra é o próprio acento (o amarelo no
4937
5516
  escuro; o azul no claro, desde a ADR-0076), a mesma do selo suave e do botão de contorno da marca — misturado ao texto,
4938
5517
  o amarelo virava mostarda (2,36:1) só nesta peça. A
4939
- referência principal usa a mesma letra no suave e no contorno. Só sem `data-brand`: na `lory` do claro, sem a
5518
+ referência principal usa a mesma letra no suave e no contorno. Só sem `data-brand`: na `ember` do claro, sem a
4940
5519
  mistura, a letra cairia de 5,56 para 4,42:1. */
4941
- .badge-primary.badge-outline:not(:where([data-brand],[data-brand] *)) { color:var(--badge-accent); }
5520
+ .badge-primary.badge-outline:not(:where([data-brand="ember"],[data-brand="ember"] *)) { color:var(--badge-accent); }
4942
5521
  /* O registro ganhou o fundo dos campos; o nível `info` (o azul) caía a 4,08:1 sobre ele no claro. A mesma letra 20% para o texto. */
4943
5522
  .log-stream .log-level.info { color:color-mix(in oklab,var(--info-400) 80%,var(--foreground)); }
4944
5523
  .step:not(.step-done,.step-active,.step-error,.done,.active) .step-dot { background-color:var(--fill-3-solid); }
@@ -4955,25 +5534,34 @@ button.graph-node-body { cursor:pointer; }
4955
5534
  GRAFITE no claro (o amarelo vira fundo, traço ou indicador, nunca letra), o link com marca-texto, os campos brancos,
4956
5535
  as marcas brancas dentro dos controles, o botão ligado amarelo e a linha do tempo consertada. Os TOKENS mudaram na
4957
5536
  fonte (`aurea.tokens.json`); aqui ficam as REGRAS que mudam junto.
4958
- A `lory` fica 100% como é hoje (decisão do Victor, 26/10/2026): os tokens dela foram congelados na fonte, e toda
4959
- regra desta seção leva `:where(:not([data-brand="lory"],[data-brand="lory"] *))`, de força zero. Quem prova que
4960
- ela sai igual: `tests/visual/lory-congelada.spec.ts`. */
5537
+ A `ember` fica 100% como é hoje (decisão do Victor, 26/10/2026): os tokens dela foram congelados na fonte, e toda
5538
+ regra desta seção leva `:where(:not([data-brand="ember"],[data-brand="ember"] *))`, de força zero. Quem prova que
5539
+ ela sai igual: `tests/visual/ember-congelada.spec.ts`. */
4961
5540
 
4962
5541
  /* O ESCOLHIDO do claro tem a letra grafite (era a mistura de 45%, que dava marrom): a aba, o segmento aceso, o item de
4963
5542
  navegação atual e o rótulo `.eyebrow`. O fio amarelo de baixo continua. No escuro, a letra continua o amarelo. */
4964
- [data-theme="light"] .is-selected:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
4965
- [data-theme="light"] .eyebrow:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
4966
- [data-theme="light"] .btn-nav[aria-current]:not([aria-current="false"]):where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
4967
- [data-theme="light"] .segmented :is(button,a).active:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *)
5543
+ [data-theme="light"] .is-selected:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
5544
+ [data-theme="light"] .eyebrow:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
5545
+ [data-theme="light"] .btn-nav[aria-current]:not([aria-current="false"]):where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
5546
+ [data-theme="light"] .segmented :is(button,a).active:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *)
4968
5547
  { --btn-fg:var(--foreground); color:var(--foreground); }
5548
+ /* NO ESCURO, a letra do escolhido é o `--primary-emphasis`, a versão do primário feita para ser letra (a regra 2.1b da
5549
+ proposta; passo C, 28/10/2026). Na Aurea Gold ele é o próprio amarelo, e nada muda. Nas marcas escuras, o primário puro
5550
+ como letra media 1,56:1 (cobalt) a 4,3:1 (cyan) — o axe achou no banco das marcas, e também no `.eyebrow`, que a proposta
5551
+ não listava (2,98 a 4,29:1). Quem cobra: `tests/visual/marcas-passo-c.spec.ts`. */
5552
+ [data-theme="dark"] .is-selected:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="light"] *),[data-theme="light"] [data-theme="dark"] *),
5553
+ [data-theme="dark"] .eyebrow:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="light"] *),[data-theme="light"] [data-theme="dark"] *),
5554
+ [data-theme="dark"] .btn-nav[aria-current]:not([aria-current="false"]):where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="light"] *),[data-theme="light"] [data-theme="dark"] *),
5555
+ [data-theme="dark"] .segmented :is(button,a).active:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="light"] *),[data-theme="light"] [data-theme="dark"] *)
5556
+ { --btn-fg:var(--primary-emphasis); color:var(--primary-emphasis); }
4969
5557
 
4970
5558
  /* O BOTÃO LIGADO (Toggle, ToggleGroup, ToolbarButton): amarelo cheio com a letra do botão primário, nos dois temas, sem
4971
5559
  o fio de baixo e sem o fundo "clarinho". As cores passam por `--pressed-*` no próprio botão, para uma faixa com outro
4972
5560
  `data-theme` acertar e para os outros estilos aprovados (o cinza e o grafite) só trocarem as três variáveis. */
4973
- :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5561
+ :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):where(:not([data-brand="ember"],[data-brand="ember"] *)) {
4974
5562
  --pressed-bg:var(--primary); --pressed-bg-hover:var(--primary-hover); --pressed-fg:var(--primary-foreground);
4975
5563
  --btn-bg:var(--pressed-bg); --btn-fg:var(--pressed-fg); background:var(--pressed-bg); color:var(--pressed-fg); }
4976
- :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):hover:not(:disabled):not([aria-disabled="true"]):where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5564
+ :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):hover:not(:disabled):not([aria-disabled="true"]):where(:not([data-brand="ember"],[data-brand="ember"] *)) {
4977
5565
  --btn-bg:var(--pressed-bg-hover); background:var(--pressed-bg-hover); }
4978
5566
 
4979
5567
  /* O LINK separa-se do texto por mais que a cor (WCAG 1.4.1): no claro a letra é o grafite e no escuro o amarelo — a
@@ -4982,7 +5570,7 @@ button.graph-node-body { cursor:pointer; }
4982
5570
  o marca-texto é para o link no meio do texto (medido no site em 27/10/2026: dos 596 links sem classe, 588 eram a
4983
5571
  chave Web | Native e 6 a trilha; só 2 estavam na prosa).
4984
5572
  A base, nos dois temas (e a VARIAÇÃO do claro): o sublinhado amarelo de 2 com 3 de afastamento. */
4985
- :is(a:not([class]),.link,.typography-tone-link):not(.breadcrumb a,nav a,.segmented a):where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5573
+ :is(a:not([class]),.link,.typography-tone-link):not(.breadcrumb a,nav a,.segmented a):where(:not([data-brand="ember"],[data-brand="ember"] *)) {
4986
5574
  color:var(--link); text-decoration-line:underline; text-decoration-color:var(--link-underline);
4987
5575
  text-decoration-thickness:calc(2 * var(--border-width)); text-underline-offset:calc(3 * var(--border-width)); }
4988
5576
  /* O PADRÃO do claro: o MARCA-TEXTO — a faixa amarela a 45% atrás da metade de baixo das letras (o texto sobre ela mede
@@ -4991,32 +5579,32 @@ button.graph-node-body { cursor:pointer; }
4991
5579
  As medidas são PROPORÇÕES DA LETRA (em), medidas na bancada de 26/10/2026, e crescem com ela; provadas nos três
4992
5580
  navegadores em 27/10/2026. A variação (o sublinhado) se pede com `data-link="underline"` no próprio link, num
4993
5581
  contêiner ou no `<html>` — um atributo, e não uma classe: o core só tem classe que um componente produz. */
4994
- [data-theme="light"] :is(a:not([class]),.link,.typography-tone-link):not(.breadcrumb a,nav a,.segmented a):not([data-link="underline"],[data-link="underline"] *):where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5582
+ [data-theme="light"] :is(a:not([class]),.link,.typography-tone-link):not(.breadcrumb a,nav a,.segmented a):not([data-link="underline"],[data-link="underline"] *):where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
4995
5583
  text-decoration-color:var(--link-mark); text-decoration-thickness:.5em; text-underline-offset:-.32em; text-decoration-skip-ink:none;
4996
5584
  transition:text-decoration-thickness var(--duration-fast) var(--ease-standard),text-underline-offset var(--duration-fast) var(--ease-standard); }
4997
- [data-theme="light"] :is(a:not([class]),.link,.typography-tone-link):not(.breadcrumb a,nav a,.segmented a):not([data-link="underline"],[data-link="underline"] *):hover:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5585
+ [data-theme="light"] :is(a:not([class]),.link,.typography-tone-link):not(.breadcrumb a,nav a,.segmented a):not([data-link="underline"],[data-link="underline"] *):hover:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
4998
5586
  text-decoration-thickness:1.25em; text-underline-offset:-1.02em; }
4999
5587
  @media (prefers-reduced-motion:reduce) {
5000
- [data-theme="light"] :is(a:not([class]),.link,.typography-tone-link):where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) { transition:none; }
5588
+ [data-theme="light"] :is(a:not([class]),.link,.typography-tone-link):where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) { transition:none; }
5001
5589
  }
5002
5590
 
5003
5591
  /* As TINTAS que saíam do destaque ficariam cinza com o destaque grafite: no claro, elas saem do próprio amarelo — o selo
5004
5592
  primário de contorno (16%) e a marca do item atual da barra de baixo de aro (15%). */
5005
- [data-theme="light"] .badge-primary.badge-outline:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5593
+ [data-theme="light"] .badge-primary.badge-outline:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5006
5594
  background-color:color-mix(in oklab, var(--primary) 16%, transparent); }
5007
- [data-theme="light"] .bottom-nav-ind-circle-outline .bottom-nav-item[aria-current] .bottom-nav-mark:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5595
+ [data-theme="light"] .bottom-nav-ind-circle-outline .bottom-nav-item[aria-current] .bottom-nav-mark:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5008
5596
  background:color-mix(in srgb, var(--primary) 15%, transparent); }
5009
5597
 
5010
5598
  /* O CAMPO no claro é BRANCO com a sombra fina em todo lugar, também DENTRO das superfícies brancas (era o cinza
5011
5599
  `--fill-2` ali — ADR-0078, item 2, revertido pela ADR-0083): dentro de um cartão branco, quem separa o campo é a
5012
5600
  sombra. A lista é a das superfícies da regra de campo, acima. No escuro, nada muda. */
5013
- [data-theme="light"] :is(.card:not(.card-outline):not(.card-inset),.content:not(.content-plain),.section-card,.demo,.dialog,.drawer,.popover,.menu,.command-palette,.alert,.banner-consent,.toast,.accordion-surface,.datagrid-detail,:is(.table,.table-wrap) tbody :is(td,th),.topbar-floating,.topbar-pill,.sortable-item,.app-shell-docs > .sidebar[popover]:popover-open):where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5601
+ [data-theme="light"] :is(.card:not(.card-outline):not(.card-inset),.content:not(.content-plain),.section-card,.demo,.dialog,.drawer,.popover,.menu,.command-palette,.alert,.banner-consent,.toast,.accordion-surface,.datagrid-detail,:is(.table,.table-wrap) tbody :is(td,th),.topbar-floating,.topbar-pill,.sortable-item,.app-shell-docs > .sidebar[popover]:popover-open):where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5014
5602
  --field-fill:var(--card); --field-lift:var(--field-lift-page); }
5015
5603
 
5016
5604
  /* O FOCO DOS CAMPOS no claro é o amarelo, uma linha só, como no escuro (decisão do Victor, 26/10/2026; a medida — 1,75:1
5017
5605
  na página, 1,91:1 no cartão, abaixo dos 3:1 — vai à bancada do passo A). Os botões e o resto continuam com o grafite. */
5018
- [data-theme="light"] :is(.input,.textarea,.select):focus-visible:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
5019
- [data-theme="light"] :is(.input-group,.combobox-multi):focus-within:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5606
+ [data-theme="light"] :is(.input,.textarea,.select):focus-visible:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
5607
+ [data-theme="light"] :is(.input-group,.combobox-multi):focus-within:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5020
5608
  outline-color:var(--primary); }
5021
5609
 
5022
5610
  /* "AUMENTAR CONTRASTE" do sistema (`prefers-contrast: more`: o "Aumentar contraste" do macOS, do iOS e do Android, o
@@ -5025,18 +5613,18 @@ button.graph-node-body { cursor:pointer; }
5025
5613
  linha que esta preferência acende, exceção nomeada à ADR-0072 pela ADR-0083), as quatro marcas dos controles na
5026
5614
  tinta, e o foco dos campos de volta ao grafite. Fora dela, nada disto existe. */
5027
5615
  @media (prefers-contrast:more) {
5028
- :is(.input,.textarea,.select,.input-group,.combobox-multi,.input-secondary,.textarea-secondary):where(:not([data-brand="lory"],[data-brand="lory"] *)) { border-color:var(--input-strong); }
5029
- .input-group > :is(.input,.select,.textarea):where(:not([data-brand="lory"],[data-brand="lory"] *)) { border:0; }
5030
- :root:where(:not([data-brand="lory"])),[data-theme]:where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5616
+ :is(.input,.textarea,.select,.input-group,.combobox-multi,.input-secondary,.textarea-secondary):where(:not([data-brand="ember"],[data-brand="ember"] *)) { border-color:var(--input-strong); }
5617
+ .input-group > :is(.input,.select,.textarea):where(:not([data-brand="ember"],[data-brand="ember"] *)) { border:0; }
5618
+ :root:where(:not([data-brand="ember"])),[data-theme]:where(:not([data-brand="ember"],[data-brand="ember"] *)) {
5031
5619
  --control-thumb:var(--brand-yellow-ink); --control-selected-foreground:var(--brand-yellow-ink); --control-selected-dot:var(--brand-yellow-ink); }
5032
- [data-theme="light"] :is(.input,.textarea,.select):focus-visible:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
5033
- [data-theme="light"] :is(.input-group,.combobox-multi):focus-within:where(:not([data-brand="lory"],[data-brand="lory"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5620
+ [data-theme="light"] :is(.input,.textarea,.select):focus-visible:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *),
5621
+ [data-theme="light"] :is(.input-group,.combobox-multi):focus-within:where(:not([data-brand="ember"],[data-brand="ember"] *)):where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) {
5034
5622
  outline-color:var(--focus-strong); }
5035
5623
  }
5036
5624
 
5037
5625
  /* A LINHA DO TEMPO: o trilho por baixo dos pontos é conserto de todas as marcas (na regra da linha do tempo, acima). Aqui
5038
5626
  só a cor: de `--border` para `--input` — na página do Zinco profundo, o `--border` quase não aparecia. */
5039
- .timeline > li:not(:last-child):where(:not([data-brand="lory"],[data-brand="lory"] *))::before { background:var(--input); }
5627
+ .timeline > li:not(:last-child):where(:not([data-brand="ember"],[data-brand="ember"] *))::before { background:var(--input); }
5040
5628
 
5041
5629
  /* ═══ AS CORES, passo B — os estilos novos (ADR-0084, 27/10/2026) ═════════════════════════════════════════════════
5042
5630
  Os estilos que o Victor aprovou em 26/10/2026, todos para construir, cada um uma VARIAÇÃO (o padrão de cada peça não
@@ -5046,62 +5634,73 @@ button.graph-node-body { cursor:pointer; }
5046
5634
  peça com o seu atributo ganha do contêiner (`:not([data-…])` no caminho do contêiner); contêiner dentro de contêiner
5047
5635
  vale o que vem depois aqui.
5048
5636
  As cores ficam NA PEÇA, e não num token herdado da raiz: assim uma faixa com outro `data-theme` acerta.
5049
- A `lory` fica de fora, como no passo A (a marca congelada): toda regra leva o `:where(:not(…lory…))` de força zero.
5637
+ ~~A `ember` fica de fora, como no passo A (a marca congelada): toda regra leva o `:where(:not(…ember…))` de força zero.~~
5638
+ → A Aurea Ember RECEBE os estilos, como as outras marcas (o Victor, 28/10/2026, vendo que na Ember as
5639
+ variações saíam todas iguais: "Sim, como as outras"). O padrão dela, sem estilo escolhido, continua congelado — as
5640
+ regras do passo A continuam sem alcançá-la. Por isso o botão ligado dela, com um estilo escolhido, ganha aqui a
5641
+ pintura que o passo A dá às outras marcas (logo abaixo do 2.8).
5050
5642
  As duas exceções desta seção, registradas na ADR-0084: o DEGRADÊ do `brand-gradient` (a segunda exceção à ADR-0007,
5051
5643
  depois da escolha de cor da ADR-0069) e os AROS dos estilos de aro (o desenho que dá nome ao estilo — exceção nomeada à
5052
5644
  ADR-0072, só quando o app escolhe o estilo). */
5053
5645
 
5054
5646
  /* 2.8 · O BOTÃO LIGADO (Toggle, ToggleGroup, ToolbarButton): o C, amarelo, é o padrão desde a 0.45.0 (a regra do passo A
5055
5647
  já escreve as três variáveis). Aqui o A (`neutral`, o cinza) e o B (`contrast`, o grafite, invertido) trocam só as três. */
5056
- :is([data-pressed-style="neutral"] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style="neutral"]):where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5648
+ :is([data-pressed-style="neutral"] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style="neutral"]) {
5057
5649
  --pressed-bg:var(--input); --pressed-bg-hover:color-mix(in oklab, var(--foreground) 9%, var(--input)); --pressed-fg:var(--foreground); }
5058
- :is([data-pressed-style="contrast"] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style="contrast"]):where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5650
+ :is([data-pressed-style="contrast"] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style="contrast"]) {
5059
5651
  --pressed-bg:var(--foreground); --pressed-bg-hover:color-mix(in oklab, var(--foreground) 84%, var(--background)); --pressed-fg:var(--background); }
5060
- :is([data-pressed-style="brand"] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style="brand"]):where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5652
+ :is([data-pressed-style="brand"] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style="brand"]) {
5061
5653
  --pressed-bg:var(--primary); --pressed-bg-hover:var(--primary-hover); --pressed-fg:var(--primary-foreground); }
5654
+ /* A Ember com um estilo escolhido: a pintura do botão ligado (a do passo A, que não a alcança) e sem o fio de baixo do
5655
+ ligado dela de sempre. Sem estilo escolhido, o ligado da Ember continua o de antes. */
5656
+ :is([data-pressed-style] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style]):where([data-brand="ember"],[data-brand="ember"] *) {
5657
+ --btn-bg:var(--pressed-bg); --btn-fg:var(--pressed-fg); background:var(--pressed-bg); color:var(--pressed-fg); }
5658
+ :is([data-pressed-style] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style]):hover:not(:disabled):not([aria-disabled="true"]):where([data-brand="ember"],[data-brand="ember"] *) {
5659
+ --btn-bg:var(--pressed-bg-hover); background:var(--pressed-bg-hover); }
5660
+ :is([data-pressed-style] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style]):where([data-brand="ember"],[data-brand="ember"] *)::after { content:none; }
5062
5661
  /* O cinza é o mais discreto — o ligado fica perto do desligado. Quem pede mais contraste ganha o contorno de 3:1 (a mesma
5063
5662
  exceção dos campos, ADR-0083: a linha que só o "aumentar contraste" acende). */
5064
5663
  @media (prefers-contrast:more) {
5065
- :is([data-pressed-style="neutral"] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style="neutral"]):where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5664
+ :is([data-pressed-style="neutral"] :is(.btn[aria-pressed="true"],.btn.toggle[data-pressed]):not([data-pressed-style]),:is(.btn[aria-pressed="true"],.btn.toggle[data-pressed])[data-pressed-style="neutral"]) {
5066
5665
  box-shadow:inset 0 0 0 var(--border-width) var(--input-strong); }
5067
5666
  }
5068
5667
 
5069
5668
  /* 2.9 · O SEGMENTO ACESO em seis: `current` (a cápsula elevada com o fio amarelo — o de sempre, o padrão), `neutral` (a
5070
5669
  mesma cápsula, sem fio), `contrast` (o grafite), `brand` (o amarelo), `ring` (a cápsula neutra com o aro amarelo) e
5071
5670
  `dot` (a cápsula neutra com um ponto amarelo antes do texto). Do `neutral` ao `dot`, o fio de baixo sai. */
5072
- :is([data-segment-style="neutral"] .segmented:not([data-segment-style]),.segmented[data-segment-style="neutral"]) :is(button,a).active:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --seg-bg:var(--segment); --seg-fg:var(--foreground); --seg-shadow:var(--shadow-sm); }
5073
- :is([data-segment-style="contrast"] .segmented:not([data-segment-style]),.segmented[data-segment-style="contrast"]) :is(button,a).active:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --seg-bg:var(--foreground); --seg-fg:var(--background); --seg-shadow:none; }
5074
- :is([data-segment-style="brand"] .segmented:not([data-segment-style]),.segmented[data-segment-style="brand"]) :is(button,a).active:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --seg-bg:var(--primary); --seg-fg:var(--primary-foreground); --seg-shadow:none; }
5075
- :is([data-segment-style="ring"] .segmented:not([data-segment-style]),.segmented[data-segment-style="ring"]) :is(button,a).active:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --seg-bg:var(--segment); --seg-fg:var(--foreground); --seg-shadow:inset 0 0 0 calc(1.5 * var(--border-width)) var(--primary), var(--shadow-sm); }
5076
- :is([data-segment-style="dot"] .segmented:not([data-segment-style]),.segmented[data-segment-style="dot"]) :is(button,a).active:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --seg-bg:var(--segment); --seg-fg:var(--foreground); --seg-shadow:var(--shadow-sm); }
5077
- :is([data-segment-style]:not([data-segment-style="current"]) .segmented:not([data-segment-style]),.segmented[data-segment-style]:not([data-segment-style="current"])) :is(button,a).active:where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5671
+ :is([data-segment-style="neutral"] .segmented:not([data-segment-style]),.segmented[data-segment-style="neutral"]) :is(button,a).active { --seg-bg:var(--segment); --seg-fg:var(--foreground); --seg-shadow:var(--shadow-sm); }
5672
+ :is([data-segment-style="contrast"] .segmented:not([data-segment-style]),.segmented[data-segment-style="contrast"]) :is(button,a).active { --seg-bg:var(--foreground); --seg-fg:var(--background); --seg-shadow:none; }
5673
+ :is([data-segment-style="brand"] .segmented:not([data-segment-style]),.segmented[data-segment-style="brand"]) :is(button,a).active { --seg-bg:var(--primary); --seg-fg:var(--primary-foreground); --seg-shadow:none; }
5674
+ :is([data-segment-style="ring"] .segmented:not([data-segment-style]),.segmented[data-segment-style="ring"]) :is(button,a).active { --seg-bg:var(--segment); --seg-fg:var(--foreground); --seg-shadow:inset 0 0 0 calc(1.5 * var(--border-width)) var(--primary), var(--shadow-sm); }
5675
+ :is([data-segment-style="dot"] .segmented:not([data-segment-style]),.segmented[data-segment-style="dot"]) :is(button,a).active { --seg-bg:var(--segment); --seg-fg:var(--foreground); --seg-shadow:var(--shadow-sm); }
5676
+ :is([data-segment-style]:not([data-segment-style="current"]) .segmented:not([data-segment-style]),.segmented[data-segment-style]:not([data-segment-style="current"])) :is(button,a).active {
5078
5677
  --btn-bg:var(--seg-bg); --btn-fg:var(--seg-fg); background:var(--seg-bg); color:var(--seg-fg); box-shadow:var(--seg-shadow); }
5079
- :is([data-segment-style]:not([data-segment-style="current"]) .segmented:not([data-segment-style]),.segmented[data-segment-style]:not([data-segment-style="current"])) :is(button,a).active:where(:not([data-brand="lory"],[data-brand="lory"] *))::after { content:none; }
5678
+ :is([data-segment-style]:not([data-segment-style="current"]) .segmented:not([data-segment-style]),.segmented[data-segment-style]:not([data-segment-style="current"])) :is(button,a).active::after { content:none; }
5080
5679
  /* O ponto do `dot` tem o lugar reservado em TODOS os segmentos, para a largura não pular quando a escolha muda. 6 de
5081
5680
  diâmetro (a proposta) e 8 até o texto (a proposta dizia 7; o 8 é o `--space-2`, o vão de ícone e texto da escala). */
5082
- :is([data-segment-style="dot"] .segmented:not([data-segment-style]),.segmented[data-segment-style="dot"]) :is(button,a):where(:not([data-brand="lory"],[data-brand="lory"] *))::before {
5681
+ :is([data-segment-style="dot"] .segmented:not([data-segment-style]),.segmented[data-segment-style="dot"]) :is(button,a)::before {
5083
5682
  content:""; display:inline-block; inline-size:calc(var(--space-1) + var(--space-05)); block-size:calc(var(--space-1) + var(--space-05));
5084
5683
  margin-inline-end:var(--space-2); border-radius:var(--radius-full); vertical-align:.1em; background:transparent; }
5085
- :is([data-segment-style="dot"] .segmented:not([data-segment-style]),.segmented[data-segment-style="dot"]) :is(button,a).active:where(:not([data-brand="lory"],[data-brand="lory"] *))::before { background:var(--primary); }
5684
+ :is([data-segment-style="dot"] .segmented:not([data-segment-style]),.segmented[data-segment-style="dot"]) :is(button,a).active::before { background:var(--primary); }
5086
5685
 
5087
5686
  /* 2.12 · A LINHA DO TEMPO em cinco, todos sobre o conserto da ADR-0083: `default` (o ponto amarelo cheio — o padrão),
5088
5687
  `ring` (o ponto vazado com o aro amarelo de 2), `latest` (os pontos na cor fraca e só o último no amarelo, com halo de
5089
5688
  4), `time` (a hora numa coluna à esquerda, alinhada à direita) e `contrast` (os pontos na cor do texto). O `time` muda
5090
5689
  o arranjo pela grade e `display:contents` no `<div>` de dentro — a marcação do componente não muda. */
5091
- :is([data-timeline-style="ring"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="ring"]) .timeline-dot:where(:not([data-brand="lory"],[data-brand="lory"] *)) { background:transparent; box-shadow:inset 0 0 0 calc(2 * var(--border-width)) var(--primary); }
5092
- :is([data-timeline-style="latest"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="latest"]) .timeline-dot:where(:not([data-brand="lory"],[data-brand="lory"] *)) { background:var(--muted-foreground); }
5093
- :is([data-timeline-style="latest"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="latest"]) > li:last-child .timeline-dot:where(:not([data-brand="lory"],[data-brand="lory"] *)) { background:var(--primary); box-shadow:0 0 0 var(--space-1) color-mix(in oklab, var(--primary) 28%, transparent); }
5094
- :is([data-timeline-style="contrast"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="contrast"]) .timeline-dot:where(:not([data-brand="lory"],[data-brand="lory"] *)) { background:var(--foreground); }
5690
+ :is([data-timeline-style="ring"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="ring"]) .timeline-dot { background:transparent; box-shadow:inset 0 0 0 calc(2 * var(--border-width)) var(--primary); }
5691
+ :is([data-timeline-style="latest"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="latest"]) .timeline-dot { background:var(--muted-foreground); }
5692
+ :is([data-timeline-style="latest"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="latest"]) > li:last-child .timeline-dot { background:var(--primary); box-shadow:0 0 0 var(--space-1) color-mix(in oklab, var(--primary) 28%, transparent); }
5693
+ :is([data-timeline-style="contrast"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="contrast"]) .timeline-dot { background:var(--foreground); }
5095
5694
  /* A coluna da hora tem 52 (a proposta, medida com "10:02" e "Ontem"): `--space-12` + `--space-1`. */
5096
- :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li:where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5695
+ :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li {
5097
5696
  display:grid; grid-template-columns:calc(var(--space-12) + var(--space-1)) var(--space-3) minmax(0,1fr); column-gap:var(--space-3); row-gap:var(--space-05); align-items:start; }
5098
- :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li > div:where(:not([data-brand="lory"],[data-brand="lory"] *)) { display:contents; }
5099
- :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li > div > small:where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5697
+ :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li > div { display:contents; }
5698
+ :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li > div > small {
5100
5699
  grid-column:1; grid-row:1; text-align:end; font-variant-numeric:tabular-nums; line-height:calc(var(--text-sm) * var(--leading-normal)); }
5101
- :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) .timeline-dot:where(:not([data-brand="lory"],[data-brand="lory"] *)) { grid-column:2; grid-row:1; }
5102
- :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li > div > strong:where(:not([data-brand="lory"],[data-brand="lory"] *)) { grid-column:3; grid-row:1; }
5103
- :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li > div > p:where(:not([data-brand="lory"],[data-brand="lory"] *)) { grid-column:3; grid-row:2; }
5104
- :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li:not(:last-child):where(:not([data-brand="lory"],[data-brand="lory"] *))::before {
5700
+ :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) .timeline-dot { grid-column:2; grid-row:1; }
5701
+ :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li > div > strong { grid-column:3; grid-row:1; }
5702
+ :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li > div > p { grid-column:3; grid-row:2; }
5703
+ :is([data-timeline-style="time"] .timeline:not([data-timeline-style]),.timeline[data-timeline-style="time"]) > li:not(:last-child)::before {
5105
5704
  inset-inline-start:calc(var(--space-12) + var(--space-1) + var(--space-3) + var(--space-3) / 2 - var(--border-width) / 2); }
5106
5705
 
5107
5706
  /* 2.11 · O ITEM ATUAL DA BARRA DE BAIXO: o `indicator` escolhe a forma, o `currentStyle` a cor. O "fundo" é o do formato
@@ -5116,38 +5715,57 @@ button.graph-node-body { cursor:pointer; }
5116
5715
  2.13 · a barra inteira AMARELA, com todos os ícones e nomes na tinta (sem transparência: a tinta clareada sobre o
5117
5716
  amarelo vira marrom): bar-ink (I) a cápsula de tinta com o ícone amarelo · bar-ring (J) o aro de tinta · bar-plain (K)
5118
5717
  só o ícone cheio e o nome em semibold · bar-light (L) a cápsula amarelo-clara com a tinta. */
5119
- :is([data-current-style="neutral"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="neutral"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:var(--secondary); --bn-fg:var(--foreground); --bn-ring:none; }
5120
- :is([data-current-style="contrast"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="contrast"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:var(--foreground); --bn-fg:var(--background); --bn-ring:none; }
5121
- :is([data-current-style="brand"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="brand"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:var(--primary); --bn-fg:var(--primary-foreground); --bn-ring:none; }
5122
- :is([data-current-style="ring"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="ring"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:transparent; --bn-fg:var(--foreground); --bn-ring:inset 0 0 0 calc(1.5 * var(--border-width)) var(--primary); }
5123
- :is([data-current-style="plain"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="plain"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:transparent; --bn-fg:var(--foreground); --bn-ring:none; }
5124
- :is([data-current-style="brand-white"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="brand-white"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:var(--primary); --bn-fg:var(--white); --bn-ring:none; }
5125
- :is([data-current-style="white-ring"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="white-ring"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:var(--white); --bn-fg:var(--brand-yellow-ink); --bn-ring:inset 0 0 0 calc(1.5 * var(--border-width)) var(--primary); }
5126
- :is([data-current-style="brand-gradient"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="brand-gradient"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:linear-gradient(135deg, var(--primary) 20%, var(--primary-gradient-end, color-mix(in oklab, var(--primary) 30%, var(--white)))); --bn-fg:var(--primary-foreground); --bn-ring:none; }
5127
- :is([data-current-style="bar-ink"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-ink"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:var(--primary-foreground); --bn-fg:var(--primary); --bn-ring:none; }
5128
- :is([data-current-style="bar-ring"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-ring"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:transparent; --bn-fg:var(--primary-foreground); --bn-ring:inset 0 0 0 calc(1.5 * var(--border-width)) var(--primary-foreground); }
5129
- :is([data-current-style="bar-plain"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-plain"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:transparent; --bn-fg:var(--primary-foreground); --bn-ring:none; }
5130
- :is([data-current-style="bar-light"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-light"]) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { --bn-bg:color-mix(in oklab, var(--primary) 45%, var(--white)); --bn-fg:var(--brand-yellow-ink); --bn-ring:none; }
5718
+ :is([data-current-style="neutral"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="neutral"]) .bottom-nav-item[aria-current] { --bn-bg:var(--secondary); --bn-fg:var(--foreground); --bn-ring:none; }
5719
+ :is([data-current-style="contrast"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="contrast"]) .bottom-nav-item[aria-current] { --bn-bg:var(--foreground); --bn-fg:var(--background); --bn-ring:none; }
5720
+ :is([data-current-style="brand"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="brand"]) .bottom-nav-item[aria-current] { --bn-bg:var(--primary); --bn-fg:var(--primary-foreground); --bn-ring:none; }
5721
+ :is([data-current-style="ring"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="ring"]) .bottom-nav-item[aria-current] { --bn-bg:transparent; --bn-fg:var(--foreground); --bn-ring:inset 0 0 0 calc(1.5 * var(--border-width)) var(--primary); }
5722
+ :is([data-current-style="plain"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="plain"]) .bottom-nav-item[aria-current] { --bn-bg:transparent; --bn-fg:var(--foreground); --bn-ring:none; }
5723
+ :is([data-current-style="brand-white"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="brand-white"]) .bottom-nav-item[aria-current] { --bn-bg:var(--primary); --bn-fg:var(--white); --bn-ring:none; }
5724
+ :is([data-current-style="white-ring"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="white-ring"]) .bottom-nav-item[aria-current] { --bn-bg:var(--white); --bn-fg:var(--brand-yellow-ink); --bn-ring:inset 0 0 0 calc(1.5 * var(--border-width)) var(--primary); }
5725
+ :is([data-current-style="brand-gradient"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="brand-gradient"]) .bottom-nav-item[aria-current] { --bn-bg:linear-gradient(135deg, var(--primary) 20%, var(--primary-gradient-end, color-mix(in oklab, var(--primary) 30%, var(--white)))); --bn-fg:var(--primary-foreground); --bn-ring:none; }
5726
+ :is([data-current-style="bar-ink"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-ink"]) .bottom-nav-item[aria-current] { --bn-bg:var(--primary-foreground); --bn-fg:var(--primary); --bn-ring:none; }
5727
+ :is([data-current-style="bar-ring"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-ring"]) .bottom-nav-item[aria-current] { --bn-bg:transparent; --bn-fg:var(--primary-foreground); --bn-ring:inset 0 0 0 calc(1.5 * var(--border-width)) var(--primary-foreground); }
5728
+ :is([data-current-style="bar-plain"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-plain"]) .bottom-nav-item[aria-current] { --bn-bg:transparent; --bn-fg:var(--primary-foreground); --bn-ring:none; }
5729
+ :is([data-current-style="bar-light"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-light"]) .bottom-nav-item[aria-current] { --bn-bg:color-mix(in oklab, var(--primary) 45%, var(--white)); --bn-fg:var(--brand-yellow-ink); --bn-ring:none; }
5131
5730
  /* Onde vai a cor, por formato. O `:is()` com os dois caminhos (o atributo num contêiner, ou na barra) é o mesmo de cima. */
5132
- :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])):is(.bottom-nav-ind-pill,.bottom-nav-ind-subtle,.bottom-nav-ind-expand) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5731
+ :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])):is(.bottom-nav-ind-pill,.bottom-nav-ind-subtle,.bottom-nav-ind-expand) .bottom-nav-item[aria-current] {
5133
5732
  background:var(--bn-bg); color:var(--bn-fg); box-shadow:var(--bn-ring); }
5134
- :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])):is(.bottom-nav-ind-circle,.bottom-nav-ind-circle-outline,.bottom-nav-ind-circle-raised,.bottom-nav-ind-capsule) .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5733
+ :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])):is(.bottom-nav-ind-circle,.bottom-nav-ind-circle-outline,.bottom-nav-ind-circle-raised,.bottom-nav-ind-capsule) .bottom-nav-item[aria-current] {
5135
5734
  color:var(--foreground); }
5136
- :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])):is(.bottom-nav-ind-circle,.bottom-nav-ind-circle-outline,.bottom-nav-ind-circle-raised,.bottom-nav-ind-capsule) .bottom-nav-item[aria-current] .bottom-nav-mark:where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5735
+ :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])):is(.bottom-nav-ind-circle,.bottom-nav-ind-circle-outline,.bottom-nav-ind-circle-raised,.bottom-nav-ind-capsule) .bottom-nav-item[aria-current] .bottom-nav-mark {
5137
5736
  background:var(--bn-bg); color:var(--bn-fg); box-shadow:var(--bn-ring); border-color:transparent; }
5138
- :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])).bottom-nav-ind-circle-bold .bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { color:var(--bn-fg); }
5139
- :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])).bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .bottom-nav-disc:where(:not([data-brand="lory"],[data-brand="lory"] *)) { background:var(--bn-bg); box-shadow:var(--bn-ring); }
5140
- :is([data-current-style="plain"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="plain"],[data-current-style="bar-plain"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-plain"]) .bottom-nav-item[aria-current] .bottom-nav-label:where(:not([data-brand="lory"],[data-brand="lory"] *)) { font-weight:var(--weight-semibold); }
5737
+ :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])).bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] { color:var(--bn-fg); }
5738
+ :is([data-current-style]:not([data-current-style="current"]) .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style]:not([data-current-style="current"])).bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .bottom-nav-disc { background:var(--bn-bg); box-shadow:var(--bn-ring); }
5739
+ :is([data-current-style="plain"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="plain"],[data-current-style="bar-plain"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style="bar-plain"]) .bottom-nav-item[aria-current] .bottom-nav-label { font-weight:var(--weight-semibold); }
5141
5740
  /* A barra amarela (2.13): a barra inteira na marca, todos os itens na tinta e o ícone sem transparência. Na fixa (`edge`)
5142
5741
  o core pinta `--background`; esta passa por cima. O ponto de selo vazio, que é amarelo, vai para a tinta. */
5143
- :is([data-current-style^="bar-"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style^="bar-"]):where(:not([data-brand="lory"],[data-brand="lory"] *)) {
5742
+ :is([data-current-style^="bar-"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style^="bar-"]) {
5144
5743
  --bottomnav-surface:var(--primary); background:var(--primary); color:var(--primary-foreground); border-color:transparent; }
5145
- :is([data-current-style^="bar-"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style^="bar-"]) .bottom-nav-item:where(:not([data-brand="lory"],[data-brand="lory"] *)) { color:var(--primary-foreground); }
5146
- :is([data-current-style^="bar-"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style^="bar-"]) .bottom-nav-item .icon:where(:not([data-brand="lory"],[data-brand="lory"] *)) { opacity:1; }
5147
- :is([data-current-style^="bar-"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style^="bar-"]) .bottom-nav-badge:empty:where(:not([data-brand="lory"],[data-brand="lory"] *)) { background:var(--primary-foreground); }
5744
+ :is([data-current-style^="bar-"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style^="bar-"]) .bottom-nav-item { color:var(--primary-foreground); }
5745
+ :is([data-current-style^="bar-"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style^="bar-"]) .bottom-nav-item .icon { opacity:1; }
5746
+ :is([data-current-style^="bar-"] .bottom-nav:not([data-current-style]),.bottom-nav[data-current-style^="bar-"]) .bottom-nav-badge:empty { background:var(--primary-foreground); }
5148
5747
  /* A classe DOBRADA é força, de propósito: a regra do nome na cor do texto (o 2.11, acima) também casa com a barra amarela,
5149
5748
  e no escuro pintaria o nome de branco sobre o amarelo. */
5150
- :is([data-current-style^="bar-"] .bottom-nav.bottom-nav:not([data-current-style]),.bottom-nav.bottom-nav[data-current-style^="bar-"]):is(.bottom-nav-ind-circle,.bottom-nav-ind-circle-outline,.bottom-nav-ind-circle-raised,.bottom-nav-ind-capsule) .bottom-nav-item.bottom-nav-item[aria-current]:where(:not([data-brand="lory"],[data-brand="lory"] *)) { color:var(--primary-foreground); }
5749
+ :is([data-current-style^="bar-"] .bottom-nav.bottom-nav:not([data-current-style]),.bottom-nav.bottom-nav[data-current-style^="bar-"]):is(.bottom-nav-ind-circle,.bottom-nav-ind-circle-outline,.bottom-nav-ind-circle-raised,.bottom-nav-ind-capsule) .bottom-nav-item.bottom-nav-item[aria-current] { color:var(--primary-foreground); }
5750
+
5751
+ /* ═══ OS ACABAMENTOS (ADR-0086, 28/10/2026) ═══════════════════════════════════════════════════════════════════════
5752
+ Dois acabamentos que o APP escolhe — nenhuma peça muda sem pedir. Cada um é uma prop que escreve um atributo na peça
5753
+ (`glow` → `data-glow`, `ring` → `data-ring`); o mesmo atributo num contêiner, ou no `<html>`, vale para todos os de
5754
+ dentro, e a peça com o seu atributo ganha do contêiner — o molde dos estilos do passo B (ADR-0084, item 6).
5755
+ 1. O BRILHO (`data-glow="true"`): no botão principal, uma sombra difusa embaixo, na cor dele a 40%. O foco continua o
5756
+ anel (`outline`), e o brilho fica: esta regra tem mais força que o `:focus-visible` geral, que zera a sombra.
5757
+ 2. O FIO (`data-ring="true"`): em volta do fundo suave — o selo que não é cheio e o botão `soft` ou de contorno —, o
5758
+ tom a 30%, POR DENTRO. É linha: exceção nomeada à ADR-0072, como os estilos de aro, e só existe quando o app escolhe.
5759
+ Fica abaixo de 3:1 de propósito: é acabamento, e quem separa a peça do fundo continua sendo o fundo dela. */
5760
+ :is([data-glow="true"] .btn-primary:not([data-glow]),.btn-primary[data-glow="true"]):not(:disabled):not([aria-disabled="true"]) {
5761
+ box-shadow:0 var(--space-1) calc(var(--space-3) + var(--space-05)) 0 color-mix(in oklab, var(--primary) 40%, transparent); }
5762
+ :is(.badge-primary,.btn-tone-brand,.btn-primary-outline) { --ring-tone:var(--primary); }
5763
+ :is(.badge-success,.btn-tone-success) { --ring-tone:var(--success); }
5764
+ :is(.badge-danger,.btn-tone-danger,.btn-danger-outline,.btn-danger-soft) { --ring-tone:var(--destructive); }
5765
+ :is(.badge-info,.btn-tone-info) { --ring-tone:var(--info); }
5766
+ :is(.badge-warning,.btn-tone-warning) { --ring-tone:var(--warning); }
5767
+ :is([data-ring="true"] :is(.badge:not(.badge-solid),.btn-soft,.btn-outline,.btn-primary-outline,.btn-danger-outline):not([data-ring]),:is(.badge:not(.badge-solid),.btn-soft,.btn-outline,.btn-primary-outline,.btn-danger-outline)[data-ring="true"]) {
5768
+ box-shadow:inset 0 0 0 var(--border-width) color-mix(in oklab, var(--ring-tone, currentColor) 30%, transparent); }
5151
5769
 
5152
5770
  /* >>> camada responsiva — GERADA por scripts/build-responsive-layer.mjs <<< */
5153
5771
  /* As variáveis de passo NÃO HERDAM. Ver o comentário de VARIAVEIS no gerador: um ícone dentro
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurea-uds/core",
3
- "version": "0.46.0",
3
+ "version": "0.48.0",
4
4
  "description": "O CSS da Aurea UDS e o comportamento em JavaScript puro. Importe @aurea-uds/fonts/css antes deste.",
5
5
  "keywords": [
6
6
  "aurea",