@aurea-uds/core 0.31.0 → 0.33.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 +1067 -205
  2. package/package.json +1 -1
package/dist/aurea.css CHANGED
@@ -4,6 +4,8 @@
4
4
  --brand-yellow:oklch(0.795 0.184 86.047);
5
5
  --brand-yellow-foreground:oklch(0.421 0.095 57.708);
6
6
  --brand-yellow-text:oklch(0.516 0.105 86.047);
7
+ --white:oklch(1 0 0);
8
+ --black:oklch(0 0 0);
7
9
  --font-ui:"Atkinson Hyperlegible Next","Segoe UI",sans-serif;
8
10
  --font-heading:"Atkinson Hyperlegible Next","Segoe UI",sans-serif;
9
11
  --font-editorial:"Atkinson Hyperlegible Next","Segoe UI",sans-serif;
@@ -21,6 +23,11 @@
21
23
  --leading-tight:1.2;
22
24
  --leading-normal:1.5;
23
25
  --leading-relaxed:1.7;
26
+ --text-4xl-leading:1.111111;
27
+ --text-3xl-leading:1.2;
28
+ --text-2xl-leading:1.333333;
29
+ --text-xl-leading:1.4;
30
+ --text-lg-leading:1.555556;
24
31
  --space-0:0;
25
32
  --space-05:0.125rem;
26
33
  --space-1:0.25rem;
@@ -75,12 +82,12 @@
75
82
  --breakpoint-xl:1280px;
76
83
  --breakpoint-2xl:1536px;
77
84
  --control-h-xs:1.625rem;
78
- --control-h-sm:1.875rem;
85
+ --control-h-sm:2rem;
79
86
  --control-h-md:2.25rem;
80
- --control-h-lg:2.625rem;
87
+ --control-h-lg:2.5rem;
81
88
  --control-h-xl:3.125rem;
82
89
  --row-h:3rem;
83
- --card-pad:1.25rem;
90
+ --card-pad:1rem;
84
91
  --section-gap:1.5rem;
85
92
  --media-canvas:oklch(0.085 0 0);
86
93
  --media-foreground:oklch(0.985 0 0);
@@ -443,30 +450,39 @@
443
450
  --control-h-xs:1.5rem;
444
451
  --control-h-sm:1.75rem;
445
452
  --control-h-md:2rem;
446
- --control-h-lg:2.375rem;
453
+ --control-h-lg:2.25rem;
447
454
  --control-h-xl:2.75rem;
455
+ --touch-control-h-sm:2.25rem;
456
+ --touch-control-h-md:2.75rem;
457
+ --touch-control-h-lg:3.25rem;
448
458
  --row-h:2.625rem;
449
- --card-pad:1rem;
459
+ --card-pad:0.75rem;
450
460
  --section-gap:1.125rem;
451
461
  }
452
462
  [data-density="comfortable"]{
453
463
  --control-h-xs:1.625rem;
454
- --control-h-sm:1.875rem;
464
+ --control-h-sm:2rem;
455
465
  --control-h-md:2.25rem;
456
- --control-h-lg:2.625rem;
466
+ --control-h-lg:2.5rem;
457
467
  --control-h-xl:3.125rem;
468
+ --touch-control-h-sm:2.5rem;
469
+ --touch-control-h-md:3rem;
470
+ --touch-control-h-lg:3.5rem;
458
471
  --row-h:3rem;
459
- --card-pad:1.25rem;
472
+ --card-pad:1rem;
460
473
  --section-gap:1.5rem;
461
474
  }
462
475
  [data-density="spacious"]{
463
476
  --control-h-xs:1.75rem;
464
- --control-h-sm:2.125rem;
477
+ --control-h-sm:2.25rem;
465
478
  --control-h-md:2.5rem;
466
- --control-h-lg:3rem;
479
+ --control-h-lg:2.75rem;
467
480
  --control-h-xl:3.5rem;
481
+ --touch-control-h-sm:2.75rem;
482
+ --touch-control-h-md:3.25rem;
483
+ --touch-control-h-lg:3.75rem;
468
484
  --row-h:3.375rem;
469
- --card-pad:1.5rem;
485
+ --card-pad:1.25rem;
470
486
  --section-gap:2rem;
471
487
  }
472
488
  /* Aurea core — component styles. Built with @aurea-uds/tokens into dist/aurea.css. Load @aurea-uds/fonts/css for Atkinson Hyperlegible (ADR-0053). */
@@ -489,7 +505,11 @@ button,a,[role="button"],input,textarea,select { outline:none; }
489
505
  o vão: colado, o anel amarelo sumiria no botão amarelo.
490
506
  Quem cobra que nenhuma peça ficou de fora é o catálogo inteiro, no navegador:
491
507
  `tests/visual/foco-uma-linha.spec.ts`. */
492
- :is(.input,.textarea,.select,.btn-outline,.btn-primary-outline,.btn-danger-outline,.media-control,.card,.code-block,.graph-node-body):focus-visible { outline-offset:0; border-color:var(--focus-strong); }
508
+ :is(.input,.textarea,.select,.btn-outline,.btn-primary-outline,.btn-danger-outline,.media-control,.card,.code-block,.graph-node-body,.pagination-link):focus-visible { outline-offset:0; border-color:var(--focus-strong); }
509
+ /* A amostra ESCOLHIDA do `ColorSwatch options` (0.32.0) tem borda — a da cor dela — e o foco mora no botão de
510
+ opção invisível de dentro, por isso o `:has`. A referência mostra a borda da cor + vão + anel; a ADR-0059 é a
511
+ escolha A do Victor, nenhuma peça com duas linhas (a varredura do catálogo pegou, 14/10/2026). */
512
+ .color-swatch-option:has(:checked:focus-visible) { outline-offset:0; border-color:var(--focus-strong); }
493
513
  button { color:inherit; }
494
514
  /* O link NÃO é `--primary`. Medido em 22/08/2026 com o axe e depois à mão: o amarelo da
495
515
  marca sobre o fundo do tema CLARO dá 1,73:1, e o AA de texto (WCAG 1.4.3) pede 4,5:1 —
@@ -599,6 +619,14 @@ img,svg { display:block; }
599
619
  .section-footer-link { color:var(--muted-foreground); font-size:var(--text-sm); text-decoration:none; }
600
620
  .section-footer-link:hover { color:var(--foreground); }
601
621
  .section-footer-legal { display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--space-2) var(--space-6); margin-block-start:var(--space-8); padding-block-start:var(--space-6); border-block-start:var(--border-width) solid var(--border); color:var(--muted-foreground); font-size:var(--text-sm); }
622
+ /* layout="inline" (15/10/2026): o rodapé da página inicial da referência — UMA linha centrada, 12 de respiro em cima e
623
+ embaixo, 8 entre as partes, letra 14 apagada; os links acendem com o ponteiro. Quebra linha se não couber. */
624
+ .section.section-footer-inline { padding-block:var(--space-3); }
625
+ .section-footer-line { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:var(--space-2); color:var(--muted-foreground); font-size:var(--text-sm); line-height:var(--space-5); }
626
+ .section-footer-inline-legal { margin:0; }
627
+ .section-footer-inline-links { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); margin:0; padding:0; list-style:none; }
628
+ .section-footer-line .section-footer-link { display:inline-flex; align-items:center; }
629
+ .section-footer-line .section-footer-link:hover { color:var(--foreground); }
602
630
  @media (min-width:768px) {
603
631
  .section-footer-top { flex-direction:row; justify-content:space-between; }
604
632
  .section-footer-brand { flex:1 1 0; min-inline-size:0; }
@@ -672,6 +700,23 @@ img,svg { display:block; }
672
700
  .topbar-link[aria-current] { color:var(--primary-emphasis); font-weight:var(--weight-medium); }
673
701
  .topbar-actions { display:flex; align-items:center; gap:var(--space-2); margin-inline-start:auto; }
674
702
  .topbar-site .topbar-actions { margin-inline-start:0; }
703
+ /* itemsJustify="start" (14/10/2026): os links perto da marca, como na página inicial da referência, e as ações na
704
+ outra ponta. Da marca ao primeiro link, 32 (medido nela, 15/10/2026): o vão da barra (--space-4) e mais --space-4.
705
+ No celular os links saem e nada muda. */
706
+ .topbar-items-start .topbar-nav { margin-inline-start:var(--space-4); }
707
+ .topbar-items-start .topbar-actions { margin-inline-start:auto; }
708
+ /* size="sm" (15/10/2026): a barra de 56 do topo da página inicial da referência (medida nela; o guia de barra dela tem
709
+ 64, o nosso padrão), com 6 entre as ações (o gap-1.5 dela). O painel do celular segue a altura, pela mesma variável. */
710
+ .topbar-sm { --topbar-height:calc(var(--space-12) + var(--space-2)); }
711
+ .topbar-sm .topbar-actions { gap:calc(var(--space-1) + var(--space-05)); }
712
+ /* blurred (15/10/2026), só na `flush`: o fundo transparente que embaça o que passa por baixo — o desfoque de 16 da
713
+ referência. Quem pede menos transparência ao sistema, e o navegador sem desfoque, ficam com o fundo cheio. */
714
+ .topbar-flush.topbar-blurred { background:transparent; -webkit-backdrop-filter:blur(var(--space-4)); backdrop-filter:blur(var(--space-4)); }
715
+ @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .topbar-flush.topbar-blurred { background:var(--background); } }
716
+ @media (prefers-reduced-transparency:reduce) { .topbar-flush.topbar-blurred { background:var(--background); -webkit-backdrop-filter:none; backdrop-filter:none; } }
717
+ /* menuActions (15/10/2026): o que só o menu do celular leva (o GitHub, na referência), embaixo dos links, depois de uma
718
+ linha. */
719
+ .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 var(--border); }
675
720
  /* O botão e o painel só existem no celular, e só onde há popover. O @supports lá embaixo é a rede,
676
721
  como na gaveta do `AppShell`: navegador sem popover não esconde o `<nav popover>` sozinho, e o
677
722
  painel apareceria solto na barra. Ali os links ficam na barra, que já quebra linha por conteúdo, e
@@ -734,6 +779,32 @@ img,svg { display:block; }
734
779
  variante que desenha igual é enfeite. `--shell-top` volta a ser só a altura do topo, porque sem
735
780
  margem não há as duas folgas a descontar. */
736
781
  .sidebar-flush { --shell-top:var(--topbar-height); height:calc(100vh - var(--shell-top)); max-height:100%; margin:0; border:0; border-inline-end:1px solid var(--sidebar-border); border-radius:0; }
782
+ /* `placement="right"` (0.32.0, DOC-01): a lateral do outro lado. A flutuante já tem margem nos quatro
783
+ lados; a encostada leva o fio para o lado de dentro, que agora é o começo da linha. */
784
+ .sidebar-flush.sidebar-right { border-inline-end:0; border-inline-start:1px solid var(--sidebar-border); }
785
+ /* SEM CAIXA é outra variante (0.32.0): `plain`, o nome que a Aurea já dá ao "sem caixa" (`contentVariant`,
786
+ o painel do `Tabs`, o `KPI`). É a coluna "On this page" de uma documentação, como a da referência: os
787
+ itens soltos na página. Tira só a PINTURA — fundo, cor da borda, sombra — e guarda a geometria da
788
+ flutuante (margens, altura, a mesma borda de 1, agora invisível), então trocar de variante não mexe em
789
+ nada de lugar. O texto continua na escala da lateral: medido nos quatro (Aurea e `lory`, claro e
790
+ escuro), o `--sidebar-foreground` é o mesmo `--foreground` da página. */
791
+ .sidebar-plain { border-color:transparent; background:transparent; box-shadow:none; }
792
+ /* A COLUNA DA DIREITA do `AppShell` (`aside`): a terceira trilha, da largura da lateral, de 1280 para
793
+ cima. Abaixo, ela desce para depois do conteúdo, na última coluna que houver (a do conteúdo entre
794
+ 1024 e 1279; a única abaixo de 1024), sem grudar. Com ela, o conteúdo perde a margem da direita: a
795
+ folga entre os dois é a margem da coluna, como entre a lateral e o conteúdo. */
796
+ .app-shell-with-aside { --aside-track:calc(var(--sidebar-width) + var(--space-4)*2); }
797
+ .app-shell-with-aside:has(> .app-shell-aside.sidebar-flush) { --aside-track:var(--sidebar-width); }
798
+ /* `.sidebar.app-shell-aside` (três classes) e não só a classe da coluna: a regra do shell recolhível
799
+ (`.app-shell-collapsible > .sidebar`, mais abaixo na folha) prende TODA lateral na coluna 1, e com
800
+ a mesma força ganharia por vir depois. */
801
+ .app-shell-with-aside > .sidebar.app-shell-aside { grid-column:-2 / -1; grid-row:auto; }
802
+ @media (max-width:1279px) { .app-shell-with-aside > .sidebar.app-shell-aside { position:static; height:auto; max-height:none; } }
803
+ @media (min-width:1280px) {
804
+ .app-shell-with-aside { grid-template-columns:var(--sidebar-track) minmax(0,1fr) var(--aside-track); }
805
+ .app-shell-with-aside > .content.content { grid-column:2; grid-row:2; margin-inline-end:0; }
806
+ .app-shell-with-aside > .sidebar.app-shell-aside { grid-column:3; grid-row:2; }
807
+ }
737
808
  /* a lateral ROLA mas nunca mostra a barra (pedido do Victor): a barra nativa risca a
738
809
  superfície flutuante e não segue o raio de 22px. `scrollbar-width` cobre Firefox e
739
810
  Chrome 121+; o pseudo cobre Safari e Chrome antigo. */
@@ -838,7 +909,14 @@ img,svg { display:block; }
838
909
  `--sidebar-accent` e `--sidebar-accent-foreground` já eram PUBLICADOS e não tinham um único
839
910
  uso no core — token publicado que ninguém usa é promessa sem entrega, e era o par certo o
840
911
  tempo todo. O defeito não é da marca: a marca só o tornou visível. */
841
- @media (hover:hover) and (pointer:fine) { .sidebar-item:hover { background:var(--sidebar-accent); } }
912
+ /* O ITEM ESMAECIDO, como o da referência (ADR-0067, decisão do Victor de 13/10/2026, vendo os dois rodando:
913
+ "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;
914
+ passando o mouse, o item acende. O cinza sai da ESCALA DA LATERAL (o texto dela, esmaecido), e não do
915
+ `--muted-foreground` da página — sob a marca `lory` a lateral é escura e a página não (a lição de
916
+ 20/08/2026, logo abaixo). Medido contra o fundo da lateral (13/10/2026): 7,6:1 no escuro e 5,4:1 no
917
+ claro; na marca `lory`, 7,8:1 e 5,6:1 — o branco de antes era 14,5:1. */
918
+ .sidebar-item:not([aria-current]) { color:color-mix(in oklab, var(--sidebar-foreground) 68%, transparent); }
919
+ @media (hover:hover) and (pointer:fine) { .sidebar-item:hover { background:var(--sidebar-accent); } .sidebar-item:not([aria-current]):hover { color:var(--sidebar-foreground); } }
842
920
  /* A-05 (24/09/2026), decisão do Victor: o item atual da lateral passa a usar a MARCA DA CASA para
843
921
  "selecionado" — fundo, texto na cor da marca e o fio de 2px embaixo —, que o `Toggle`, o
844
922
  `SegmentedControl`, o `Button variant="nav"` e a navegação do catálogo (`.doc-nav`) já usavam.
@@ -857,7 +935,10 @@ img,svg { display:block; }
857
935
  `--sidebar-foreground` em vez de token novo — a lateral não publica um "muted" dela. */
858
936
  /* 72% e não 62% desde a 0.27.0 (ADR-0061): com a letra da paleta nova (#242424, menos preta) os 62%
859
937
  davam 4,4:1 sobre o branco — o axe pegou na varredura. 72% é o cinza de texto apagado da paleta. */
860
- .sidebar-group-label { margin:var(--space-3) var(--space-3) var(--space-1); color:color-mix(in oklab, var(--sidebar-foreground) 72%, transparent); font-size:var(--text-xs); font-weight:var(--weight-medium); letter-spacing:var(--tracking-widest); text-transform:uppercase; }
938
+ /* O título de grupo da lateral é o da referência (ADR-0067, decisão do Victor de 13/10/2026: "igual ao dela"):
939
+ letra 14, peso médio, SEM maiúsculas, na cor do texto da lateral — mais forte que o item, que é
940
+ esmaecido; 16 antes do grupo. Era 12, em maiúsculas espaçadas, esmaecido. */
941
+ .sidebar-group-label { margin:var(--space-4) var(--space-3) var(--space-1); color:var(--sidebar-foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
861
942
  .sidebar-sub { padding-inline-start:var(--space-5); }
862
943
  /* RECOLHIDA — a lateral vira trilho de ícones. O rótulo NÃO some do DOM: o React troca a
863
944
  classe dele por `.sr-only`, então quem usa leitor de tela continua ouvindo o nome. Ícone
@@ -1166,7 +1247,10 @@ img,svg { display:block; }
1166
1247
  `min-width:0` o conteúdo mínimo do flex é o texto inteiro, e o rótulo longo empurra o valor e a
1167
1248
  seta para fora da linha em vez de reticenciar. É a mesma família do defeito que a `pill` da
1168
1249
  barra inferior pagou em 18/08/2026 — lá o rótulo virava zero, aqui ele expulsaria os vizinhos. */
1169
- .nav-list-text { flex:1; min-width:0; display:flex; flex-direction:column; }
1250
+ .nav-list-text { flex:1; min-width:0; display:grid; grid-template-columns:minmax(0,1fr); }
1251
+ /* MNT-23, "quem mais" (12/10/2026): a NavList empurrava a página como a árvore (360 → 729), pelo mesmo
1252
+ motivo — o `min-width:0` faz o texto encolher DENTRO da linha, mas a largura mínima da lista ainda era
1253
+ o rótulo inteiro. A grade de uma coluna `minmax(0,1fr)` pede zero e, quando cabe, mostra tudo. */
1170
1254
  .nav-list-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1171
1255
  .nav-list-description { overflow:hidden; color:var(--muted-foreground); font-size:var(--text-xs); text-overflow:ellipsis; white-space:nowrap; }
1172
1256
  /* O VALOR E A SETA NÃO ENCOLHEM: valor cortado MENTE (um "R$ 1.2" no lugar de "R$ 1.234"), e seta
@@ -1240,7 +1324,15 @@ img,svg { display:block; }
1240
1324
  /* GAR-14 (0.28.0): o recheio do botão vale também para o aviso preso a ele (`.toast-anchored`),
1241
1325
  que tem a MEDIDA do botão — pedido do Victor na bancada. Uma regra só, para os dois nunca
1242
1326
  divergirem e para o número não se repetir. */
1243
- .btn,.toast-anchored { padding-inline:var(--step-px,15px); }
1327
+ .btn,.toast-anchored { padding-inline:var(--step-px,var(--space-4)); }
1328
+ /* 0.32.0 — o ícone do botão é o da referência: 16 em tela de 640 para cima, 20 abaixo (no celular),
1329
+ e 16 sempre no `sm` e no `xs`. Era 20 sempre. O tamanho vai no próprio `.icon` (o `--step-icon`
1330
+ não herda), e o ícone de quem pediu outro tamanho (`size` no `Icon`) não é tocado. O `:where()`
1331
+ deixa a regra com a força de UMA classe: a peça que tem medida própria de ícone (o X do
1332
+ `CloseButton`, o link do `MediaEmbed`) continua mandando. */
1333
+ .btn :where(.icon:not(.icon-sm,.icon-lg,.icon-xl)) { --step-icon:var(--icon-md); }
1334
+ @media (min-width:640px) { .btn :where(.icon:not(.icon-sm,.icon-lg,.icon-xl)) { --step-icon:var(--icon-sm); } }
1335
+ .btn-sm :where(.icon:not(.icon-lg,.icon-xl)),.btn-xs :where(.icon:not(.icon-lg,.icon-xl)) { --step-icon:var(--icon-sm); }
1244
1336
  .btn:hover:not(:disabled):not([aria-disabled="true"]) { transform:none; } .btn:active:not(:disabled) { transform:scale(.97); opacity:.9; }
1245
1337
  /* Duas formas de "não dá para fazer isto", e a diferença é QUEM alcança a explicação.
1246
1338
  `:disabled` tira o controle da ordem de foco — medido em 13/08/2026: quem usa teclado nunca
@@ -1262,9 +1354,13 @@ img,svg { display:block; }
1262
1354
  sobrescrita por variável que o autor já não leu. Fazer o valor passar pela variável é o que
1263
1355
  permite a camada responsiva existir UMA vez, genérica, em vez de uma vez por componente. */
1264
1356
  .btn-xs { --step-h:var(--control-h-xs); --step-px:10px; --step-gap:6px; --step-fs:var(--text-xs); border-radius:var(--radius-control); }
1265
- .btn-sm { --step-h:var(--control-h-sm); --step-px:12px; --step-fs:var(--text-sm); border-radius:var(--radius-control); }
1266
- .btn-lg { --step-h:var(--control-h-lg); --step-px:20px; --step-fs:var(--text-base); border-radius:var(--radius-control); }
1357
+ .btn-sm { --step-h:var(--control-h-sm); --step-px:var(--space-3); --step-fs:var(--text-sm); border-radius:var(--radius-control); }
1358
+ .btn-lg { --step-h:var(--control-h-lg); --step-px:var(--space-4); --step-fs:var(--text-base); border-radius:var(--radius-control); }
1267
1359
  .btn-xl { --step-h:var(--control-h-xl); --step-px:26px; --step-gap:10px; --step-fs:var(--text-base); border-radius:var(--radius-control); }
1360
+ /* quiet (15/10/2026): menos peso — a letra apagada e um degrau menor (12 no `sm`), como o botão "Theme" do topo da
1361
+ referência. A caixa e o fundo ficam os da aparência; o contraste da letra apagada sobre o fundo neutro é o da Aurea. */
1362
+ .btn.btn-quiet { --btn-fg:var(--muted-foreground); --step-fs:var(--text-xs); }
1363
+ .btn.btn-quiet:is(.btn-lg,.btn-xl) { --step-fs:var(--text-sm); }
1268
1364
  /* Largura total: para rodapé de formulário e tela estreita. Só a largura muda. */
1269
1365
  .btn-block { width:100%; }
1270
1366
  /* grow (C-03): parte igual de uma fila. `min-width:0` deixa o rótulo encolher em vez de estourar. */
@@ -1282,8 +1378,14 @@ img,svg { display:block; }
1282
1378
  .skip-link:focus-visible { transform:translateY(0); outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
1283
1379
  .btn-primary { --btn-bg:var(--primary); --btn-fg:var(--primary-foreground); --btn-border:transparent; }
1284
1380
  .btn-primary:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:var(--primary-hover); --btn-border:transparent; }
1285
- .btn-secondary { --btn-bg:var(--secondary); --btn-fg:var(--secondary-foreground); --btn-border:transparent; }
1381
+ /* 0.32.0 — os dois botões de fundo neutro da referência (decisão do Victor, 11/10/2026, "A"):
1382
+ o `secondary` com a LETRA DA MARCA (o `--primary-emphasis`, que segue a marca) e o `tertiary` com a
1383
+ letra normal — o `secondary` de até a 0.31.0, e o padrão do `Button` sem `variant`. A regra dela
1384
+ para escolher: salvar é o primário, editar o secundário, cancelar o terciário. */
1385
+ .btn-secondary { --btn-bg:var(--secondary); --btn-fg:var(--primary-emphasis); --btn-border:transparent; }
1286
1386
  .btn-secondary:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:var(--secondary-hover); --btn-border:transparent; }
1387
+ .btn-tertiary { --btn-bg:var(--secondary); --btn-fg:var(--secondary-foreground); --btn-border:transparent; }
1388
+ .btn-tertiary:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:var(--secondary-hover); --btn-border:transparent; }
1287
1389
  .btn-outline { --btn-bg:transparent; --btn-fg:var(--foreground); --btn-border:var(--border-strong); }
1288
1390
  .btn-outline:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:var(--accent); }
1289
1391
  .btn-ghost { --btn-bg:transparent; --btn-fg:var(--foreground); --btn-border:transparent; }
@@ -1329,14 +1431,26 @@ img,svg { display:block; }
1329
1431
  [data-theme="light"] .btn-link-primary:where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) { --btn-fg:color-mix(in oklab, var(--primary) 45%, var(--foreground)); }
1330
1432
  .btn-link-danger { --btn-fg:var(--danger-400); }
1331
1433
  /* pressed entra na linguagem única de "selecionado" acima; só-ícone não leva o fio. */
1332
- /* Kbd — a tecla que dispara a ação, dentro ou fora do botão. Peça própria, não decoração. */
1333
- .kbd { display:inline-flex; align-items:center; justify-content:center; gap:2px; min-width:20px; height:20px; padding:0 6px; border:1px solid var(--border-strong); border-radius:var(--radius-sm); background:var(--secondary); color:var(--muted-foreground); font:500 11px/1 var(--font-code); }
1434
+ /* Kbd — a tecla que dispara a ação, dentro ou fora do botão. Peça própria, não decoração.
1435
+ 0.32.0: as medidas da referência (24 de altura, 8 dos lados, letra 14 peso médio na fonte do
1436
+ texto, cinza neutro, sem borda); o canto é o nosso: cápsula, e CÍRCULO quando a tecla é um
1437
+ caractere só (`kbd-single`, que o componente põe sozinho). Era 20, letra 11 de código, borda. */
1438
+ .kbd { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-05); min-width:var(--space-6); height:var(--space-6); padding:0 var(--space-2); border:0; border-radius:var(--radius-full); background:var(--secondary); color:var(--muted-foreground); font:var(--weight-medium) var(--text-sm)/1 var(--font-ui); white-space:nowrap; }
1439
+ .kbd-single { width:var(--space-6); padding:0; }
1334
1440
  /* dentro do botão a tecla herda a cor do rótulo, SEM opacidade: a 85% o contraste caía
1335
1441
  para 3.67:1 (axe) e o atalho é informação, não enfeite. O fundo já o separa. */
1336
1442
  /* Dentro do botão a tecla NÃO ganha fundo próprio: qualquer tinta escurece a cápsula e o
1337
1443
  rótulo perde contraste (no primary claro caiu a 3.55:1). Sem fundo, o contraste da
1338
- tecla é o MESMO do rótulo — se o botão passa, ela passa. A borda de currentColor separa. */
1339
- .btn .kbd { background:transparent; border-color:color-mix(in oklab, currentColor 35%, transparent); color:inherit; }
1444
+ tecla é o MESMO do rótulo — se o botão passa, ela passa. O fio de currentColor separa (sem
1445
+ borda desde a 0.32.0, o fio é sombra por dentro, e não muda a medida).
1446
+ A MEDIDA de dentro do botão (20, para caber no botão pequeno) é declarada pela CLASSE que o `Button` põe no
1447
+ atalho (`btn-kbd`), e não pelo contexto: com o botão de busca do site em toda página, o `.kbd` de 24 e o de 20
1448
+ dividiam a página, e a trava de geometria (uma altura por classe) reprovou (14/10/2026). */
1449
+ .btn .kbd { background:transparent; box-shadow:inset 0 0 0 var(--border-width) color-mix(in oklab, currentColor 35%, transparent); color:inherit; }
1450
+ .btn-kbd { min-width:var(--space-5); height:var(--space-5); padding:0 var(--space-1); font-size:var(--text-xs); }
1451
+ .btn-kbd.kbd-single { width:var(--space-5); padding:0; }
1452
+ /* Uma caixinha por tecla (15/10/2026), como a busca da referência: 2 entre elas. */
1453
+ .btn-kbds { display:inline-flex; gap:var(--space-05); }
1340
1454
 
1341
1455
  /* nav: item de navegação. Normal = ghost silencioso; o ATIVO (aria-current) ganha texto
1342
1456
  amarelo + traço embaixo — SEM borda (pedido do Victor). aria-current, não uma variante
@@ -1384,13 +1498,35 @@ img,svg { display:block; }
1384
1498
  .btn-tone-danger:not(.btn-link):hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--destructive) 14%, transparent); }
1385
1499
  .btn-tone-success,.btn-tone-success:hover:not(:disabled) { --btn-fg:var(--success-400); }
1386
1500
  .btn-outline.btn-tone-success { --btn-border:var(--success-400); }
1387
- .btn-tone-success:not(.btn-link):not(.btn-solid):hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--success) 14%, transparent); }
1501
+ .btn-tone-success:not(.btn-link):not(.btn-solid):not(.btn-soft):hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--success) 14%, transparent); }
1388
1502
  .btn-tone-info,.btn-tone-info:hover:not(:disabled) { --btn-fg:var(--info-400); }
1389
1503
  .btn-outline.btn-tone-info { --btn-border:var(--info-400); }
1390
- .btn-tone-info:not(.btn-link):not(.btn-solid):hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--info) 14%, transparent); }
1504
+ .btn-tone-info:not(.btn-link):not(.btn-solid):not(.btn-soft):hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--info) 14%, transparent); }
1391
1505
  .btn-tone-warning,.btn-tone-warning:hover:not(:disabled) { --btn-fg:var(--warning-400); }
1392
1506
  .btn-outline.btn-tone-warning { --btn-border:var(--warning-400); }
1393
- .btn-tone-warning:not(.btn-link):not(.btn-solid):hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--warning) 14%, transparent); }
1507
+ .btn-tone-warning:not(.btn-link):not(.btn-solid):not(.btn-soft):hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--warning) 14%, transparent); }
1508
+ /* appearance="soft" (15/10/2026, o "danger-soft" da referência): o fundo clarinho do tom e a letra do tom (a letra é a
1509
+ do tom, das regras acima). Em repouso, a tinta que os botões sem caixa usam no hover (14%); no hover, 22%. O neutro
1510
+ é o fundo --muted com a letra normal. */
1511
+ .btn-soft { --btn-border:transparent; }
1512
+ .btn-soft.btn-tone-neutral { --btn-bg:var(--muted); --btn-fg:var(--foreground); }
1513
+ .btn-soft.btn-tone-neutral:hover:not(:disabled) { --btn-bg:var(--secondary-hover); }
1514
+ .btn-soft.btn-tone-brand { --btn-bg:color-mix(in oklab, var(--primary) 14%, transparent); }
1515
+ .btn-soft.btn-tone-brand:hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--primary) 22%, transparent); }
1516
+ /* Os quatro tons de estado no fundo clarinho do próprio tom (`--{tom}-bg`, o dos avisos), e 8% do tom com o mouse em
1517
+ cima (15/10/2026): com o tom a 14% e 22% por cima da página, o rótulo `info` caía a 4,10:1 parado e 3,69:1 com o
1518
+ mouse no claro, e o vermelho e o verde a 4,42 e 4,23 com o mouse. Medido: assim o pior é o `info` do claro, 5,08
1519
+ parado e 4,61 com o mouse (com 10% seria 4,49). A marca continua no tom a 14% e 22%: passa nos dois temas. */
1520
+ /* E o suave fica FORA das regras gerais de mouse dos tons (`:not(.btn-soft)` nelas): sendo mais fortes, elas pintavam o
1521
+ suave com o tom a 14% por cima da página, e a regra de mouse dele nunca valia — o teste do mouse em cima pegou. */
1522
+ .btn-soft.btn-tone-danger { --btn-bg:var(--danger-bg); }
1523
+ .btn-soft.btn-tone-danger:hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--destructive) 8%, var(--danger-bg)); }
1524
+ .btn-soft.btn-tone-success { --btn-bg:var(--success-bg); }
1525
+ .btn-soft.btn-tone-success:hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--success) 8%, var(--success-bg)); }
1526
+ .btn-soft.btn-tone-warning { --btn-bg:var(--warning-bg); }
1527
+ .btn-soft.btn-tone-warning:hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--warning) 8%, var(--warning-bg)); }
1528
+ .btn-soft.btn-tone-info { --btn-bg:var(--info-bg); }
1529
+ .btn-soft.btn-tone-info:hover:not(:disabled) { --btn-bg:color-mix(in oklab, var(--info) 8%, var(--info-bg)); }
1394
1530
  .btn-nav:hover:not(:disabled):not([aria-disabled="true"]) { --btn-fg:var(--foreground); }
1395
1531
  /* O botão só de ícone é REDONDO, em todos os tamanhos — decisão do Victor, 25/09/2026
1396
1532
  (ADR-0052). Era um quadrado de canto 10px (6px nos dois menores). A referência faz o
@@ -1401,22 +1537,71 @@ img,svg { display:block; }
1401
1537
  /* xs e xl também precisam de largura: sem isto a altura mudava e a largura ficava na do
1402
1538
  md, e o alvo só-ícone deixava de ser quadrado (achado na onda Actions, 24/07). */
1403
1539
  .btn-icon.btn-xl { width:var(--control-h-xl); }
1540
+ /* CloseButton (HER-12, 0.32.0) — o botão de fechar da referência, quase idêntico: 24 × 24, o X de
1541
+ 16 no cinza neutro, esmaecido; escurece com o mouse (o `--secondary-hover` do `.btn-tertiary`) e
1542
+ encolhe para 93% ao apertar, como o dela. O canto é o nosso: círculo cheio. O tamanho do X vai no
1543
+ próprio `.icon`, porque o `--step-icon` não herda. No TOQUE o círculo não cresce: a área de 44
1544
+ (`--target-min`) é um `::before` invisível em volta dele, e o `.btn` de toque o deixa de fora da
1545
+ altura mínima (regra do `pointer:coarse`, mais abaixo). */
1546
+ .close-button { --btn-fg:var(--muted-foreground); position:relative; flex:none; inline-size:var(--space-6); block-size:var(--space-6); min-inline-size:0; min-block-size:0; padding:0; border-radius:var(--radius-full); }
1547
+ .close-button .icon { --step-icon:var(--icon-sm); }
1548
+ .close-button:active:not(:disabled) { transform:scale(.93); }
1549
+ @media (pointer:coarse) { .close-button::before { content:""; position:absolute; inset:calc((var(--space-6) - var(--target-min)) / 2); border-radius:var(--radius-full); } }
1404
1550
  /* ThemeToggle (25/09/2026): a cor no ícone mostra o tema para onde se vai. No claro a LUA, na tinta
1405
1551
  do texto; no escuro o SOL, no amarelo da marca — as duas combinações se enxergam, e é por isso
1406
1552
  que o botão nunca mostra a lua no escuro nem o sol no claro. Mais específico que o `.btn:hover`,
1407
1553
  então a cor fica também com o mouse em cima. */
1408
1554
  .theme-toggle-moon .icon { color:var(--foreground); }
1409
1555
  .theme-toggle-sun .icon { color:var(--primary); }
1410
- /* wrap, não estoura: os botões do grupo são pills com gap (não segmentos colados), então
1411
- quebrar linha em tela estreita preserva o visual. Único gap de eixo horizontal que a
1412
- auditoria da Etapa 3 achou sem proteção — o resto já rola (tabela) ou já quebra (toolbar). */
1413
- .btn-group { display:inline-flex; flex-wrap:wrap; align-items:center; gap:4px; } .btn-group .btn { border-radius:var(--radius-control); margin-inline-start:0; }
1556
+ /* ThemeToggle mode="light-dark-system" (15/10/2026): a chave de três posições do topo da referência, medida nela — a
1557
+ cápsula de 34 (4 de recheio) com as três opções de 26 e o glifo de 16. A cápsula e a escolhida têm a pele da escolha de
1558
+ abas da Aurea (`.segmented`, ADR-0059): o fundo --muted, e a escolhida no --segment com a sombra, a letra cheia. São
1559
+ botões de opção nativos por cima de cada glifo, como as amostras do `ColorSwatch`. No toque, cada opção tem 44. */
1560
+ .theme-switch { display:inline-flex; align-items:center; padding:calc(var(--space-1) - var(--border-width)); border:var(--border-width) solid transparent; border-radius:var(--radius-control); background:var(--muted); }
1561
+ .theme-switch-option { position:relative; display:inline-grid; place-items:center; inline-size:var(--control-h-xs); block-size:var(--control-h-xs); border-radius:var(--radius-control); color:var(--muted-foreground); cursor:pointer; }
1562
+ .theme-switch-option:has(:checked) { color:var(--foreground); background:var(--segment); box-shadow:var(--shadow-sm); }
1563
+ /* PINTADA, como a chave de duas posições era (o Victor, 15/10/2026: "o sol deve ficar amarelo quando clicado e a lua
1564
+ quero um preto absoluto"). A escolhida é BRANCA nos dois temas, como a da referência — no escuro ela era o cinza do
1565
+ `--segment`, e a lua preta sumia nele (2,4:1). A lua e o monitor, o preto absoluto (21:1). O sol é o AMARELO DA
1566
+ MARCA, puro: o amarelo de ícone do tema claro (ADR-0054, 5,65:1) foi reprovado — *"não existe sol marrom"* — e, das
1567
+ três formas de sol amarelo mostradas rodando, o Victor escolheu esta (*"B"*, 15/10/2026), sabendo do contraste
1568
+ medido: 1,91:1 no branco. A escolha continua dita pelo fundo branco da escolhida e pelo nome da opção. */
1569
+ .theme-switch-option:has(:checked) { background:var(--white); color:var(--black); }
1570
+ .theme-switch-option:has(:checked[value="light"]) { color:var(--brand-yellow); }
1571
+ .theme-switch-option:hover:not(:has(:checked,:disabled)) { color:var(--foreground); }
1572
+ .theme-switch-option:has(:focus-visible) { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
1573
+ .theme-switch-option:has(:disabled) { opacity:var(--opacity-disabled); cursor:not-allowed; }
1574
+ .theme-switch-input { position:absolute; inset:0; z-index:1; margin:0; opacity:0; cursor:inherit; }
1575
+ @media (pointer:coarse) { .theme-switch-option { inline-size:var(--target-min); block-size:var(--target-min); } }
1576
+ @media (forced-colors:active) { .theme-switch-option:has(:checked) { outline:var(--focus-width) solid Highlight; outline-offset:calc(var(--border-width) * -2); } }
1577
+ /* GRUPOS COLADOS (0.32.0) — o `ButtonGroup` e o `ToggleGroup` da referência: os botões COLADOS numa
1578
+ cápsula só (vão 0), canto só nas pontas, um fio entre eles (a cor do texto a 15%, metade da
1579
+ altura), sem o encolher ao apertar (o grupo é uma peça só), e o contorno que não dobra entre
1580
+ vizinhos. Os cantos de dentro são retos, como os dela: quem desenha a forma é a cápsula inteira.
1581
+ Até a 0.31.0 eram cápsulas soltas com vão de 4 — continua existindo, como `detached` (o
1582
+ `isDetached` dela), e só ele quebra linha.
1583
+ A DIREÇÃO vem por variável, e não por regra de filho de cada direção: a direção do `ButtonGroup`
1584
+ pode mudar com a largura (camada responsiva, que copia o corpo de `.btn-group-vertical` — o
1585
+ gerador confere que os dois dizem o mesmo) e a do `ToggleGroup` vem do motor (`data-orientation`).
1586
+ Deitado: canto na ponta de dentro da linha (`--btn-group-h`), fio em pé; em pé, o contrário. */
1587
+ .btn-group,.toggle-group { display:inline-flex; align-items:center; gap:0; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); }
1414
1588
  /* Grupo VERTICAL (`G-AXIS-01`). `align-items:stretch` é o que faz os botões medirem igual: sem
1415
1589
  ele cada um teria a largura do próprio rótulo e a coluna ficaria serrilhada — que é o defeito
1416
1590
  que um grupo vertical tem de não ter. */
1417
- .btn-group-vertical { flex-direction:column; align-items:stretch; }
1418
- .btn-group .btn:first-child { margin-inline-start:0; border-radius:var(--radius-control); }
1419
- .btn-group .btn:last-child { border-radius:var(--radius-control); }
1591
+ .btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; }
1592
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn { position:relative; border-radius:0; }
1593
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn:first-child { border-start-start-radius:var(--radius-full); border-end-start-radius:var(--btn-group-h); border-start-end-radius:var(--btn-group-v); }
1594
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn:last-child { border-end-end-radius:var(--radius-full); border-start-end-radius:var(--btn-group-h); border-end-start-radius:var(--btn-group-v); }
1595
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn:only-child { border-radius:var(--radius-full); }
1596
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn + .btn::before { content:""; position:absolute; inset-inline-start:var(--btn-group-sep-i); inset-block-start:var(--btn-group-sep-b); inline-size:var(--btn-group-sep-w); block-size:var(--btn-group-sep-h); border-radius:var(--radius-full); background:currentColor; opacity:.15; pointer-events:none; }
1597
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn:active:not(:disabled) { transform:none; }
1598
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn-outline:not(:last-child) { border-inline-end-width:var(--btn-group-bi); border-block-end-width:var(--btn-group-bb); }
1599
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn-outline:not(:first-child) { border-inline-start-width:var(--btn-group-bi); border-block-start-width:var(--btn-group-bb); }
1600
+ /* o anel de foco de um botão do meio fica por cima dos vizinhos, e não por baixo */
1601
+ :is(.btn-group,.toggle-group) > .btn:focus-visible { z-index:1; }
1602
+ .btn-group-detached,.toggle-group-detached { flex-wrap:wrap; gap:var(--space-1); }
1603
+ .btn-group-full,.toggle-group-full { display:flex; inline-size:100%; }
1604
+ :is(.btn-group-full,.toggle-group-full) > .btn { flex:1 1 0%; min-inline-size:0; }
1420
1605
  /* Toolbar: contêiner de controles; o roving tabindex vem do Base UI. */
1421
1606
  .toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:6px; border:1px solid var(--border); border-radius:var(--radius-control); background:var(--secondary); }
1422
1607
  /* Vertical sai da pílula: --radius-control (999px) clampa em 50% da menor
@@ -1445,8 +1630,11 @@ img,svg { display:block; }
1445
1630
  /* O spinner lê a MESMA escala de glifo, mas o degrau base dele é `sm` e não `md` — presumir
1446
1631
  `md` como base de toda família é o erro que esta atividade já cometeu duas vezes. */
1447
1632
  .spinner { width:var(--step-icon,var(--icon-sm)); height:var(--step-icon,var(--icon-sm)); border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:spin .7s linear infinite; }
1448
- .spinner-md { --step-icon:var(--icon-md); }
1449
- .spinner-lg { --step-icon:var(--icon-lg); } @keyframes spin { to { transform:rotate(360deg); } }
1633
+ /* 0.32.0: a escala da referência — 16 · 24 · 32 · 40. O componente nasce no `md` (24); o glifo cru
1634
+ continua no `sm` (16), dentro do botão e do aviso. */
1635
+ .spinner-md { --step-icon:var(--space-6); }
1636
+ .spinner-lg { --step-icon:var(--space-8); }
1637
+ .spinner-xl { --step-icon:var(--space-10); } @keyframes spin { to { transform:rotate(360deg); } }
1450
1638
 
1451
1639
  .field { display:flex; flex-direction:column; gap:7px; }
1452
1640
  /* CAMPO NA HORIZONTAL — rótulo à esquerda, controle à direita. É a linha do formulário de
@@ -1459,18 +1647,28 @@ img,svg { display:block; }
1459
1647
  .field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); }
1460
1648
  .field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); }
1461
1649
  .field-horizontal>*:not(.label) { grid-column:2; }
1462
- .label { display:flex; justify-content:space-between; gap:12px; color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-semibold); }
1463
- .hint { color:var(--muted-foreground); font-size:var(--text-xs); }
1464
- .input,.textarea,.select { width:100%; min-width:0; block-size:var(--step-h,var(--control-h-md)); padding-block:0; padding-inline:var(--step-field-px,13px); color:var(--foreground); background:var(--field-bg); border:1px solid var(--border-strong); border-radius:var(--radius-control); transition:border-color var(--duration-fast),background-color var(--duration-fast),box-shadow var(--duration-fast); }
1650
+ /* 0.32.0 — o rótulo, a dica e a descrição da referência: rótulo 14 PESO MÉDIO (era 600); dica e
1651
+ descrição 12 com entrelinha 16, esmaecidas e SEM negrito (a dica mora na linha do rótulo e herdava
1652
+ o 600 dele). O obrigatório ganha o asterisco vermelho depois do rótulo, escondido do leitor de
1653
+ tela — quem anuncia "obrigatório" é o `required` do controle, e não o desenho. */
1654
+ .label { display:flex; justify-content:space-between; gap:12px; color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
1655
+ .hint { color:var(--muted-foreground); font-size:var(--text-xs); font-weight:var(--weight-regular); line-height:var(--space-4); }
1656
+ .label-required { margin-inline-start:var(--space-05); color:var(--danger-400); }
1657
+ .input,.textarea,.select { width:100%; min-width:0; block-size:var(--step-h,var(--control-h-md)); padding-block:0; padding-inline:var(--step-field-px,var(--space-3)); color:var(--foreground); background:var(--field-bg); border:1px solid var(--border-strong); border-radius:var(--radius-control); transition:border-color var(--duration-fast),background-color var(--duration-fast),box-shadow var(--duration-fast); }
1465
1658
  .input:hover,.textarea:hover,.select:hover { border-color:var(--border); }
1659
+ /* `variant="secondary"` (0.32.0), o da referência: o campo de fundo NEUTRO e sem borda à vista, para
1660
+ dentro de um cartão, onde o fundo de campo some contra o do cartão. A borda fica (transparente),
1661
+ para o foco continuar sendo a borda que muda de cor (ADR-0059). */
1662
+ .input-secondary,.textarea-secondary { background:var(--secondary); border-color:transparent; }
1663
+ .input-secondary:hover,.textarea-secondary:hover { background:var(--secondary-hover); border-color:transparent; }
1466
1664
  .input::placeholder,.textarea::placeholder { color:var(--subtle-foreground); }
1467
1665
  .input:disabled,.textarea:disabled,.select:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
1468
1666
  /* O `padding-inline` daqui tem de LER a variável também, e com o próprio padrão: a base do
1469
1667
  textarea vem DEPOIS da regra compartilhada e a sobrescrevia, congelando o padding em 14px nos
1470
1668
  três degraus. Medido em 22/08/2026 contra o estado anterior — era 12/14/16 e virou 14/14/14.
1471
- E o padrão é 14px, não 13px: a família de campo NÃO é uniforme no md, e presumir que era foi o
1472
- que produziu a regressão. */
1473
- .textarea { min-block-size:104px; padding-block:var(--space-3); padding-inline:var(--step-field-px,14px); resize:vertical; border-radius:var(--radius-lg); }
1669
+ 0.32.0: a família de campo passa a ser uniforme no md, como na referência — 12 dos lados no campo
1670
+ e na área de texto (eram 13 e 14), e a área com 8 em cima e embaixo (eram 12). */
1671
+ .textarea { min-block-size:104px; padding-block:var(--space-2); padding-inline:var(--step-field-px,var(--space-3)); resize:vertical; border-radius:var(--radius-lg); }
1474
1672
  /* chevron: cor = --muted-foreground de cada tema (dark #a1a1a1, light #505050); tokenizar na Fase 1 */
1475
1673
  .select { appearance:none; padding-inline-end:var(--step-select-pe,38px); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23a1a1a1' stroke-width='1.6'/%3E%3C/svg%3E"); background-position:calc(100% - 12px) 50%; background-size:12px 8px; background-repeat:no-repeat; }
1476
1674
  [data-theme="light"] .select:where(:not([data-theme="dark"] *),[data-theme="dark"] [data-theme="light"] *) { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23505050' stroke-width='1.6'/%3E%3C/svg%3E"); }
@@ -1484,9 +1682,28 @@ img,svg { display:block; }
1484
1682
  /* NumberField (Lote 1): menos · campo · mais numa peça só, que é onde as referências convergem.
1485
1683
  O campo é `.input` — a mesma altura, o mesmo raio, o mesmo foco de qualquer campo do sistema.
1486
1684
  Largura em token para caber de 3 a 4 dígitos sem virar caixa de texto. */
1685
+ /* 0.32.0 — o da referência: UM GRUPO SÓ, com a borda e o fundo de campo, e os botões DENTRO dele
1686
+ (40 de largura, ícone 16), cada um separado do número por um fio (a cor esmaecida a 15%). Até a
1687
+ 0.31.0 eram dois botões fantasma soltos ao lado de um campo. O foco é o do `InputGroup`: o anel no
1688
+ grupo inteiro, que é a peça que a pessoa vê. No toque o grupo sobe para o alvo de 44, como os
1689
+ botões soltos subiam. */
1487
1690
  .number-field { display:inline-flex; }
1488
- .number-field-group { display:inline-flex; align-items:center; gap:var(--space-1); }
1691
+ .number-field-group { display:inline-flex; align-items:stretch; block-size:var(--control-h-md); border:var(--border-width) solid var(--border-strong); border-radius:var(--radius-full); background:var(--field-bg); overflow:hidden; transition:border-color var(--duration-fast),box-shadow var(--duration-fast); }
1692
+ .number-field-group:hover { border-color:var(--border); }
1693
+ .number-field-group:focus-within { outline:var(--focus-width) solid var(--focus-strong); outline-offset:0; border-color:var(--focus-strong); }
1489
1694
  .number-field-input { width:var(--space-16); text-align:center; font-variant-numeric:tabular-nums; }
1695
+ .number-field-group > .number-field-input { block-size:auto; border:0; border-radius:0; background:transparent; }
1696
+ .number-field-group > .number-field-input:focus-visible { outline:none; }
1697
+ .number-field-button { flex:none; display:inline-flex; align-items:center; justify-content:center; inline-size:var(--space-10); padding:0; border:0; background:transparent; color:var(--foreground); cursor:pointer; transition:background var(--duration-fast); }
1698
+ .number-field-button .icon { --step-icon:var(--icon-sm); }
1699
+ .number-field-button:hover:not(:disabled) { background:var(--surface-hover); }
1700
+ .number-field-button:active:not(:disabled) { background:color-mix(in oklab, var(--foreground) 10%, transparent); }
1701
+ .number-field-button:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
1702
+ /* o anel do botão fica DENTRO dele: o grupo corta o que passa da borda */
1703
+ .number-field-button:focus-visible { outline-offset:calc(-1 * var(--focus-width)); }
1704
+ .number-field-decrement { border-inline-end:var(--border-width) solid color-mix(in oklab, var(--muted-foreground) 15%, transparent); }
1705
+ .number-field-increment { border-inline-start:var(--border-width) solid color-mix(in oklab, var(--muted-foreground) 15%, transparent); }
1706
+ @media (pointer:coarse) { .number-field-group { block-size:var(--target-min); } }
1490
1707
  /* A ALÇA DE ARRASTO (G-API-02), e só quando `scrubbable` está ligada.
1491
1708
  O motor já põe por ESTILO EM LINHA tudo o que é mecânica — `touch-action:none` e
1492
1709
  `user-select:none` na alça, e `position:fixed` mais o `transform` no cursor virtual, que ele
@@ -1511,7 +1728,11 @@ img,svg { display:block; }
1511
1728
  /* OTPField (Lote 1): um quadrado por dígito. O lado é a altura de controle, então a fila mede o
1512
1729
  mesmo que qualquer campo ao lado dela; o padding zera porque o dígito é centralizado. */
1513
1730
  .otp-field { display:inline-flex; align-items:center; gap:var(--space-2); }
1514
- .otp-slot { width:var(--control-h-md); padding:0; text-align:center; font-family:var(--font-code); }
1731
+ /* 0.32.0: a casa da referência — 38 × 40, o número 18 em seminegrito (era 36 × 36, letra 14). */
1732
+ .otp-slot { width:calc(var(--space-10) - var(--space-05)); block-size:var(--space-10); padding:0; text-align:center; font-family:var(--font-code); font-size:var(--text-lg); font-weight:var(--weight-semibold); }
1733
+ /* O tracinho entre os grupos (15/10/2026): o da referência, 6 × 2 com a ponta arredondada. Só desenho — o leitor de
1734
+ tela segue de caixa em caixa. */
1735
+ .otp-separator { flex:none; inline-size:calc(var(--space-1) + var(--space-05)); block-size:var(--space-05); border-radius:var(--radius-sm); background:var(--border-strong); }
1515
1736
  /* HoverCard (Lote 1) reusa `.popover`; só limita a largura, porque prévia é conteúdo, não rótulo. */
1516
1737
  .hover-card { max-width:min(20rem,calc(100vw - var(--space-8))); }
1517
1738
 
@@ -1523,6 +1744,11 @@ img,svg { display:block; }
1523
1744
  contorno do input de dentro ficaria escondido atrás da borda do grupo. */
1524
1745
  .input-group { display:flex; flex-wrap:wrap; align-items:center; inline-size:100%; min-inline-size:0; min-block-size:var(--control-h-md); background:var(--field-bg); border:1px solid var(--border-strong); border-radius:var(--radius-control); transition:border-color var(--duration-fast),box-shadow var(--duration-fast); }
1525
1746
  .input-group:hover { border-color:var(--border); }
1747
+ /* A pele `secondary` do campo vale para o GRUPO, como o tamanho (abaixo): quem desenha a caixa é o grupo, e o
1748
+ `ColorField variant="secondary"` (e todo `InputGroup` com um `Input variant="secondary"` dentro) saía igual ao
1749
+ `primary` (medido na bancada em 14/10/2026). Antes do foco, para a borda do foco valer. */
1750
+ .input-group:has(>.input-secondary) { background:var(--secondary); border-color:transparent; }
1751
+ .input-group:has(>.input-secondary):hover { background:var(--secondary-hover); }
1526
1752
  .input-group:focus-within { outline:var(--focus-width) solid var(--focus-strong); outline-offset:0; border-color:var(--focus-strong); }
1527
1753
  .input-group:has(.input-sm) { min-block-size:var(--control-h-sm); }
1528
1754
  .input-group:has(.input-lg) { min-block-size:var(--control-h-lg); }
@@ -1536,9 +1762,12 @@ img,svg { display:block; }
1536
1762
  /* O adorno não estica nem encolhe, e nunca rouba o clique do campo — a menos que ele PRÓPRIO
1537
1763
  seja clicável, e aí quem devolve o ponteiro é o botão de dentro. */
1538
1764
  .input-group-addon { display:inline-flex; flex:none; align-items:center; gap:var(--space-1); color:var(--subtle-foreground); }
1539
- /* A distância que o texto guarda do glifo é a mesma de antes, e por construção: 12px de um lado,
1540
- o glifo, 12px do outro — os mesmos 40px que o `.input-wrap` fixava à mão, agora somados pelo
1541
- layout em vez de escritos. Sem adorno não há soma, e é isso que conserta o composer sem ícone. */
1765
+ /* ~~A distância que o texto guarda do glifo é a mesma de antes, e por construção: 12px de um lado,
1766
+ o glifo, 12px do outro~~ — não era: o campo somava os 12 DELE depois dos 12 do adorno, e o texto
1767
+ ficava a 24 do glifo (28 no `lg`), com 13 do outro lado. Medido em 15/10/2026, depois que o Victor
1768
+ viu a busca ao lado do campo da referência (*"de um lado é curto, do outro é largo"*). A
1769
+ referência tira o recuo do campo quando há adorno na frente (`ps-0`): 12, o glifo, 12. Aqui é a
1770
+ regra logo abaixo das do adorno — e ela entra também na camada responsiva, pelo gerador. */
1542
1771
  /* G-A11Y-06 — DOIS EIXOS, e nenhum `order`.
1543
1772
  O `align` antigo achatava duas dimensões independentes num enum só: ORDEM LÓGICA (start/end) e
1544
1773
  GEOMETRIA (inline/block). E como a ordem lógica virava desenho por `order`, um adorno focável
@@ -1554,7 +1783,17 @@ img,svg { display:block; }
1554
1783
  só funciona enquanto for o primeiro. */
1555
1784
  .input-group-addon-inline { inline-size:auto; justify-content:normal; }
1556
1785
  .input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); }
1557
- .input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); }
1786
+ /* O FIM (15/10/2026): texto ou ícone a 12 da borda, como o sufixo da referência (`px-3`) — eram 4, o recuo pensado
1787
+ para o BOTÃO redondo, que continua (o glifo dele cai a 12 da borda); a tecla, a 8 (`pe-2` no exemplo de atalho
1788
+ dela). `:where` para não ganhar força: a camada responsiva, que vem depois, continua mandando. */
1789
+ .input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); }
1790
+ .input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); }
1791
+ .input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); }
1792
+ /* O campo depois de um adorno EM LINHA não põe recuo próprio: quem separa o texto do glifo são os 12
1793
+ do adorno, como na referência. Em FAIXA o adorno fica em cima, e o campo guarda o recuo dele. */
1794
+ .input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; }
1795
+ /* A busca é 12, a lupa, 8 — a da referência (`ms-3` na lupa, `ps-2` no campo). */
1796
+ .search-field > .input-group-addon-inline.input-group-addon-start { padding-inline-end:var(--space-2); }
1558
1797
  /* ADORNO EM BLOCO — a barra de ações ACIMA ou ABAIXO do campo, dentro da mesma moldura. É a
1559
1798
  forma da caixa de composição moderna: o texto em cima, os controles embaixo, tudo numa caixa
1560
1799
  só. Vem do `G-AXIS-01`; duas das referências têm as quatro posições e a Aurea tinha duas.
@@ -1572,6 +1811,7 @@ img,svg { display:block; }
1572
1811
  .input-group-addon-block { inline-size:100%; justify-content:flex-start; }
1573
1812
  .input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; }
1574
1813
  .input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); }
1814
+ .input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); }
1575
1815
  /* Com adorno em bloco o grupo deixa de ser uma linha e o controle não pode mais ser centralizado
1576
1816
  verticalmente contra ele: o campo tem de ocupar a largura toda da própria linha. */
1577
1817
  /* O RAIO MUDA, e isso não é escolha nova — é a regra da Aurea aplicada ao caso certo. A
@@ -1628,24 +1868,68 @@ img,svg { display:block; }
1628
1868
  .collapsible-chevron { flex:none; transition:transform var(--duration-fast) var(--ease-standard); }
1629
1869
  .collapsible-trigger[data-panel-open] .collapsible-chevron { transform:rotate(180deg); }
1630
1870
  .collapsible-panel { overflow:hidden; }
1631
- /* TOGGLE GROUP. A pele é a do grupo de botões, porque é o que ele é. O que muda é o eixo. */
1632
- .toggle-group { display:inline-flex; flex-wrap:wrap; align-items:center; gap:var(--space-1); }
1871
+ /* TOGGLE GROUP. A pele é a do grupo de botões, porque é o que ele é (colado, 0.32.0 — a regra
1872
+ está no `.btn-group`). O que muda é o eixo, que aqui o MOTOR publica. */
1633
1873
  /* G-AXIS-06 — a pele destes cinco reage ao `data-orientation` que o MOTOR publica, e não a uma
1634
1874
  classe que o React escolhe por conta própria. É o que garante uma fonte de verdade só: o
1635
1875
  valor responsivo resolvido vai para o motor, o motor publica o atributo e ajusta o teclado,
1636
1876
  e o desenho segue o atributo. Enquanto a orientação vinha de classe, era possível o CSS
1637
1877
  dizer coluna e o `aria-orientation` dizer horizontal — foi o que impediu estes cinco de
1638
1878
  entrarem no eixo responsivo até 22/08/2026. Ver a ADR-0019. */
1639
- .toggle-group[data-orientation="vertical"] { flex-direction:column; align-items:stretch; }
1879
+ .toggle-group[data-orientation="vertical"] { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; }
1640
1880
 
1641
1881
  /* Form (M1): empilhar campos com respiro. Nada além disso — sem borda, sem fundo, sem largura.
1642
1882
  Formulário é ARRANJO, e arranjo é do Stack/Grid; se esta classe crescer, ela vira uma terceira
1643
1883
  maneira de fazer layout e passa a brigar com as duas que já existem. */
1644
1884
  .form { display:grid; gap:var(--space-5); }
1645
1885
  /* description (B-12): a frase de ajuda embaixo do controle, com a letra e a cor do `.hint`. */
1646
- .field-description { color:var(--muted-foreground); font-size:var(--text-xs); }
1647
- .field-error { color:var(--danger-400); font-size:var(--text-xs); }
1648
- .checkbox,.radio { display:inline-flex; align-items:flex-start; gap:9px; color:var(--foreground); cursor:pointer; }
1886
+ .field-description { color:var(--muted-foreground); font-size:var(--text-xs); line-height:var(--space-4); }
1887
+ /* o erro com 4 de recuo, como o da referência (0.32.0) */
1888
+ .field-error { padding-inline:var(--space-1); color:var(--danger-400); font-size:var(--text-xs); line-height:var(--space-4); }
1889
+ /* 0.32.0 — os marcáveis da referência: vão de 12 até o texto, texto 14 PESO MÉDIO (o da caixa era
1890
+ negrito, o `<strong>`), descrição 12/16 esmaecida e sem negrito embaixo dele. */
1891
+ .checkbox,.radio { display:inline-flex; align-items:flex-start; gap:var(--space-3); color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); cursor:pointer; }
1892
+ .checkbox > span > strong { font-weight:inherit; }
1893
+ /* LISTBOX (0.32.0): a da referência — recheio de 4, 4 entre itens; item de 36 no mínimo, 8 dos lados
1894
+ e 6 em cima e embaixo, vão 12; fundo neutro sob o mouse e no foco do teclado (com o anel); o visto
1895
+ de 16 no fim do escolhido; perigo na cor de perigo. O canto é o nosso: cápsula. A seção é um título
1896
+ pequeno e esmaecido em cima dos itens dela. */
1897
+ .list-box { position:relative; display:flex; flex-direction:column; gap:var(--space-1); inline-size:100%; padding:var(--space-1); }
1898
+ .list-box-section { display:flex; flex-direction:column; gap:var(--space-1); }
1899
+ .list-box-section-title { padding:var(--space-2) var(--space-2) var(--space-1); color:var(--muted-foreground); font-size:var(--text-xs); font-weight:var(--weight-medium); }
1900
+ /* A linha entre as seções (15/10/2026), como em todos os exemplos de seções da referência: lá quem a põe é quem usa a
1901
+ lista; aqui a lista vem por dados, então ela é automática. 1 de altura, 8 para dentro de cada lado, e o vão da lista
1902
+ (4) em cima e o da seção (4) embaixo. Desenho, não item: o leitor de tela já conta os grupos. É BORDA, e não fundo,
1903
+ para continuar no alto contraste do Windows (ele apaga fundo de enfeite). */
1904
+ .list-box-section + .list-box-section::before { content:""; border-block-start:var(--border-width) solid var(--border); margin-inline:var(--space-2); }
1905
+ .list-box-item { position:relative; display:flex; align-items:center; gap:var(--space-3); inline-size:100%; min-block-size:var(--control-h-md); padding:calc(var(--space-1) + var(--space-05)) var(--space-2); border-radius:var(--radius-full); color:var(--foreground); font-size:var(--text-sm); cursor:pointer; transition:background var(--duration-fast),transform var(--duration-fast) var(--ease-standard); }
1906
+ /* O atalho do item (15/10/2026), como o da referência: o `Kbd` na ponta da linha. */
1907
+ .list-box-item-kbd { flex:none; margin-inline-start:auto; }
1908
+ .list-box-item:has(.list-box-item-indicator) { padding-inline-end:var(--space-7); }
1909
+ .list-box-item:hover:not([aria-disabled="true"]),.list-box-item:focus-visible { background:var(--secondary); }
1910
+ .list-box-item:focus-visible { outline-offset:calc(-1 * var(--focus-width)); }
1911
+ .list-box-item:active:not([aria-disabled="true"]) { transform:scale(.98); }
1912
+ .list-box-item[aria-disabled="true"] { opacity:var(--opacity-disabled); cursor:not-allowed; }
1913
+ .list-box-item > .icon { --step-icon:var(--icon-sm); color:var(--muted-foreground); }
1914
+ .list-box-item-text { display:flex; flex-direction:column; min-inline-size:0; }
1915
+ .list-box-item-label { font-weight:var(--weight-medium); }
1916
+ .list-box-item-description { color:var(--muted-foreground); font-size:var(--text-xs); line-height:var(--space-4); }
1917
+ .list-box-item > .list-box-item-indicator { --step-icon:var(--icon-sm); position:absolute; inset-inline-end:var(--space-2); top:50%; translate:0 -50%; color:var(--foreground); }
1918
+ .list-box-item-danger,.list-box-item-danger > .icon,.list-box-item-danger .list-box-item-indicator { color:var(--danger-400); }
1919
+ /* CHECKBOXGROUP (0.32.0): o da referência — rótulo, descrição, as caixas com 16 antes de cada uma, o
1920
+ erro no fim. A descrição de cada caixa fica alinhada com o texto dela, como no `Checkbox` solto. */
1921
+ .checkbox-group { display:flex; flex-direction:column; align-items:flex-start; }
1922
+ .checkbox-group > .checkbox { margin-block-start:var(--space-4); }
1923
+ .checkbox-group > .field-error { margin-block-start:var(--space-2); }
1924
+ /* RadioGroup (15/10/2026): o molde do CheckboxGroup — 16 antes de cada opção; na horizontal, as opções numa linha com 16
1925
+ entre elas, como na referência. */
1926
+ .radio-group { display:flex; flex-direction:column; align-items:flex-start; }
1927
+ .radio-group > .radio { margin-block-start:var(--space-4); }
1928
+ .radio-group-items { display:flex; flex-wrap:wrap; gap:var(--space-4); margin-block-start:var(--space-4); }
1929
+ .radio-group > .field-error { margin-block-start:var(--space-2); }
1930
+ /* `labelHidden` (15/10/2026): sem o nome na tela, as opções começam no alto — nada do vão de 16 que o separava delas. */
1931
+ .radio-group-bare > .label + :is(.radio,.radio-group-items) { margin-block-start:0; }
1932
+ .checkbox > span > .muted { font-size:var(--text-xs); font-weight:var(--weight-regular); line-height:var(--space-4); }
1649
1933
  .checkbox input,.radio input { position:absolute; opacity:0; pointer-events:none; }
1650
1934
  /* A MARCA DE SELEÇÃO acompanha a densidade, e antes não acompanhava. Era `18px` cru: em
1651
1935
  `comfortable` casava com metade da altura de controle por coincidência, e em `compact` e
@@ -1653,10 +1937,13 @@ img,svg { display:block; }
1653
1937
  defeito que o achado A1 pegou no SegmentedControl em 26/07/2026.
1654
1938
  Metade da altura de controle dá exatamente os 18px de antes em `comfortable`, então a captura
1655
1939
  não mexe; o que muda é que agora as outras duas densidades também ficam certas. */
1656
- .control-mark { inline-size:calc(var(--step-h,var(--control-h-md)) / 2); block-size:calc(var(--step-h,var(--control-h-md)) / 2); margin-top:1px; display:grid; place-items:center; border:1px solid var(--border-strong); background:var(--field-bg); }
1940
+ /* 0.32.0: a marca da referência tem 16. A conta passa a "metade menos 2" — 14 · 16 · 18 no sm · md ·
1941
+ lg, e continua andando com a densidade, sem número quebrado. Centrada na primeira linha do texto
1942
+ (`1lh`), qualquer que seja a entrelinha. O canto da caixa é o 6 dela (`--radius-xs`; era 5 cru). */
1943
+ .control-mark { --mark:calc(var(--step-h,var(--control-h-md)) / 2 - var(--space-05)); flex:none; inline-size:var(--mark); block-size:var(--mark); margin-top:calc((1lh - var(--mark)) / 2); display:grid; place-items:center; border:1px solid var(--border-strong); background:var(--field-bg); }
1657
1944
  .control-mark-sm { --step-h:var(--control-h-sm); }
1658
1945
  .control-mark-lg { --step-h:var(--control-h-lg); }
1659
- .checkbox .control-mark { border-radius:5px; } .radio .control-mark { border-radius:50%; }
1946
+ .checkbox .control-mark { border-radius:var(--radius-xs); } .radio .control-mark { border-radius:50%; }
1660
1947
  .checkbox input:checked + .control-mark { background:var(--control-selected); border-color:var(--control-selected); color:var(--control-selected-foreground); }
1661
1948
  .checkbox input:focus-visible + .control-mark,.radio input:focus-visible + .control-mark,.switch input:focus-visible + .switch-track { outline:var(--focus-width) solid var(--focus-strong); outline-offset:0; border-color:var(--focus-strong); }
1662
1949
  /* Cheia com a cor do foco (marcada, ligada), a peça volta ao VÃO (ADR-0059): colado, o anel sumiria
@@ -1665,11 +1952,16 @@ img,svg { display:block; }
1665
1952
  anel volta a colar (vermelho, pela regra do inválido). */
1666
1953
  .checkbox input:focus-visible:checked:not([aria-invalid="true"],:user-invalid) + .control-mark,.switch input:focus-visible:checked:not([aria-invalid="true"],:user-invalid) + .switch-track { outline-offset:var(--focus-offset); }
1667
1954
  .checkbox input:checked + .control-mark:after { content:""; width:8px; height:4px; border-left:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg) translateY(-1px); }
1668
- .radio input:checked + .control-mark:after { content:""; width:8px; height:8px; border-radius:50%; background:var(--control-selected); }
1669
- .switch { display:inline-flex; align-items:center; gap:10px; cursor:pointer; } .switch input { position:absolute; opacity:0; }
1670
- /* O TRILHO DO SWITCH, pela mesma razão. As proporções saem do mesmo token e dão os 42×24 de
1671
- antes em `comfortable`: 7/6 e 2/3 da altura de controle. */
1672
- .switch-track { position:relative; inline-size:calc(var(--step-h,var(--control-h-md)) * 7 / 6); block-size:calc(var(--step-h,var(--control-h-md)) * 2 / 3); border-radius:999px; background:var(--muted); border:1px solid var(--border); transition:background var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard); }
1955
+ /* A opção marcada fica CHEIA, com o ponto no meio, como a da referência (o ponto dela tem 8 numa
1956
+ marca de 16: a metade). Era vazia, com o ponto amarelo. */
1957
+ .radio input:checked + .control-mark { background:var(--control-selected); border-color:var(--control-selected); }
1958
+ .radio input:checked + .control-mark:after { content:""; width:50%; height:50%; border-radius:50%; background:var(--control-selected-foreground); }
1959
+ .switch { display:inline-flex; align-items:center; gap:var(--space-3); font-size:var(--text-sm); font-weight:var(--weight-medium); cursor:pointer; } .switch input { position:absolute; opacity:0; }
1960
+ /* O TRILHO DO SWITCH (0.32.0): o da referência, 40 × 20 (sm 32 × 16, lg 48 × 24) — a largura é o
1961
+ dobro da altura. Era 42 × 24. A altura é a de controle MENOS 16: dá exatamente os três dela
1962
+ (32 · 36 · 40 → 16 · 20 · 24), continua andando com a densidade e passa pela `--step-h`, que é o
1963
+ caminho do tamanho responsivo (`size-*`). */
1964
+ .switch-track { --switch-h:calc(var(--step-h,var(--control-h-md)) - var(--space-4)); position:relative; flex:none; inline-size:calc(var(--switch-h) * 2); block-size:var(--switch-h); border-radius:999px; background:var(--muted); border:1px solid var(--border); transition:background var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard); }
1673
1965
  .switch-track-sm { --step-h:var(--control-h-sm); }
1674
1966
  .switch-track-lg { --step-h:var(--control-h-lg); }
1675
1967
  /* O botão TEM de encolher com o trilho: preso em 16px, num trilho `compact` de 20px de altura
@@ -1681,8 +1973,13 @@ img,svg { display:block; }
1681
1973
  eixo inline resolve contra a LARGURA do contêiner (40px) e não contra a altura. Escrever a
1682
1974
  mesma conta nos dois eixos dava um botão de 34×16 — medido no navegador, não deduzido, depois
1683
1975
  que a suíte de captura reprovou duas seções da página de docs. */
1684
- .switch-track:after { content:""; position:absolute; inset-inline-start:3px; top:3px; block-size:calc(100% - var(--space-1) - var(--space-05)); aspect-ratio:1; border-radius:50%; background:var(--muted-foreground); transition:transform var(--duration-base) var(--ease-standard),background var(--duration-base) var(--ease-standard); }
1685
- .switch input:checked + .switch-track { background:var(--control-selected); border-color:var(--control-selected); } .switch input:checked + .switch-track:after { transform:translateX(calc(100% + var(--space-05))); background:var(--control-selected-foreground); }
1976
+ /* 0.32.0 — a bolinha da referência é uma CÁPSULA (a altura do trilho menos 4; a largura, 11/8 dela:
1977
+ 22 × 16 no md), a 2 da borda de fora. O trilho tem borda de 1 (é ela que fica vermelha no
1978
+ inválido), então a folga por dentro é 1. Ligada, ela anda até a outra ponta: `--switch-x`, a
1979
+ mesma distância nos dois sentidos de escrita. */
1980
+ .switch-track:after { --thumb-h:calc(var(--switch-h) - 2 * var(--space-05)); --thumb-w:calc(var(--thumb-h) * 11 / 8); content:""; position:absolute; inset-inline-start:calc(var(--space-05) - var(--border-width)); top:calc(var(--space-05) - var(--border-width)); block-size:var(--thumb-h); inline-size:var(--thumb-w); border-radius:var(--radius-full); background:var(--muted-foreground); transition:transform var(--duration-base) var(--ease-standard),background var(--duration-base) var(--ease-standard); }
1981
+ .switch-track { --switch-x:calc(var(--switch-h) * 2 - (var(--switch-h) - 2 * var(--space-05)) * 11 / 8 - 2 * var(--space-05)); }
1982
+ .switch input:checked + .switch-track { background:var(--control-selected); border-color:var(--control-selected); } .switch input:checked + .switch-track:after { transform:translateX(var(--switch-x)); background:var(--control-selected-foreground); }
1686
1983
  .range { width:100%; accent-color:var(--primary); }
1687
1984
  /* Slider VERTICAL, no `<input type=range>` NATIVO — sem trocar de motor.
1688
1985
 
@@ -1703,14 +2000,96 @@ img,svg { display:block; }
1703
2000
  `.range{width:100%}` anulava o `width:auto` daqui — a caixa saía 129x16 nos três motores.
1704
2001
  Mesma armadilha de ordem de cascata que os tons do botão. */
1705
2002
  .range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; }
2003
+ /* SLIDER (HER-05, 0.32.0) — o desenhado da referência. Rótulo e valor na linha de cima (14, peso
2004
+ médio, o número tabular); o trilho de 20 no cinza neutro, o preenchimento na cor da marca; a alça
2005
+ é uma cápsula de 28 × 20 na cor da marca com o miolo de 24 × 16, que encolhe a 90% enquanto se
2006
+ arrasta. O miolo dela é branco sobre o azul; aqui é a cor de LETRA sobre o amarelo
2007
+ (`--primary-foreground`, escura) — branco sobre amarelo quase não se vê. O canto é o nosso: cápsula em tudo. Quem põe a alça e o preenchimento no lugar é o
2008
+ motor, por estilo em linha (posição e tamanho); aqui fica só a pele. Nas pontas a alça fica dentro
2009
+ do trilho pelo jeito da referência: 12 de borda TRANSPARENTE em cada ponta do trilho (o fundo pinta
2010
+ por baixo dela, então o trilho continua inteiro), e a alça, centrada, anda só no miolo. O
2011
+ preenchimento volta 12 para começar na ponta visível. O alinhamento "na borda" do motor faria o
2012
+ mesmo, mas só depois de a página rodar no navegador — a alça sairia invisível no HTML do servidor.
2013
+ Vertical: o valor em cima, o trilho no meio, o rótulo embaixo, e a altura é a do `Range` vertical
2014
+ (`--range-vertical-size`). */
2015
+ .slider { display:grid; grid-template-areas:"label output" "track track"; grid-template-columns:minmax(0,1fr) auto; gap:var(--space-1); inline-size:100%; }
2016
+ .slider-label { grid-area:label; inline-size:fit-content; color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
2017
+ .slider-output { grid-area:output; color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); font-variant-numeric:tabular-nums; }
2018
+ .slider-control { grid-area:track; display:flex; align-items:center; touch-action:none; }
2019
+ .slider-track { position:relative; inline-size:100%; block-size:var(--space-5); border-inline:var(--space-3) solid transparent; border-radius:var(--radius-full); background:var(--secondary); }
2020
+ .slider-fill { box-sizing:content-box; block-size:100%; margin-inline-start:calc(-1 * var(--space-3)); padding-inline-start:var(--space-3); border-radius:var(--radius-full); background:var(--primary); }
2021
+ .slider-thumb { display:grid; place-items:center; inline-size:calc(var(--space-6) + var(--space-1)); block-size:100%; border-radius:var(--radius-full); background:var(--primary); cursor:grab; }
2022
+ .slider-thumb::after { content:""; inline-size:var(--space-6); block-size:var(--space-4); border-radius:var(--radius-full); background:var(--primary-foreground); box-shadow:var(--shadow-sm); transition:scale var(--duration-fast) var(--ease-standard); }
2023
+ .slider-thumb[data-dragging] { cursor:grabbing; }
2024
+ .slider-thumb[data-dragging]::after { scale:.9; }
2025
+ .slider-thumb:has(input:focus-visible) { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
2026
+ .slider[data-disabled] { opacity:var(--opacity-disabled); }
2027
+ .slider[data-disabled] .slider-thumb { cursor:not-allowed; }
2028
+ .slider[data-orientation="vertical"] { grid-template-areas:"output" "track" "label"; grid-template-columns:minmax(0,1fr); justify-items:center; gap:var(--space-2); inline-size:auto; }
2029
+ .slider[data-orientation="vertical"] .slider-control { block-size:var(--range-vertical-size,10rem); }
2030
+ .slider[data-orientation="vertical"] .slider-track { inline-size:var(--space-5); block-size:100%; border-inline:0; border-block:var(--space-3) solid transparent; }
2031
+ .slider[data-orientation="vertical"] .slider-fill { inline-size:100%; margin-inline-start:0; padding-inline-start:0; margin-block-end:calc(-1 * var(--space-3)); padding-block-end:var(--space-3); }
2032
+ .slider[data-orientation="vertical"] .slider-thumb { inline-size:100%; block-size:calc(var(--space-6) + var(--space-1)); }
2033
+ .slider[data-orientation="vertical"] .slider-thumb::after { inline-size:var(--space-4); block-size:var(--space-6); }
2034
+ @media (prefers-reduced-motion:reduce) { .slider-thumb::after { transition:none; } }
2035
+ /* A TRILHA DE COR (0.32.0, ADR-0069) — a variação `channel` do Slider, em qualquer canal. A pintura (a exceção da
2036
+ ADR-0069) chega pela variável que o componente põe; esta folha não escreve gradiente (check 4). O gradiente vai
2037
+ de ponta a ponta do trilho (`background-origin: border-box`) e as paradas começam na folga (`--slider-cap`, a
2038
+ mesma de onde o pino para): a ponta tem a cor chapada do mínimo e do máximo. Sem o preenchimento: a cor É a
2039
+ trilha. O pino é o da referência (lido no CSS publicado dela, 3.2.6): redondo de 16, na cor do valor, com o anel
2040
+ branco de 3 — branco nos dois temas, porque fica sobre a cor. A cor do pino vai por uma sombra por dentro, para o
2041
+ xadrez aparecer por baixo quando ela é transparente.
2042
+ O XADREZ (14/10/2026, o Victor: "xadrez sim", só onde há transparência) é desenho de SVG, e não gradiente: no
2043
+ alfa, embaixo da trilha e do pino. E `forced-color-adjust:none`, como na biblioteca da referência: com o alto
2044
+ contraste do sistema, a trilha continua mostrando as cores. */
2045
+ /* O xadrez da transparência, um desenho só para as peças que o mostram (a trilha do alfa, a amostra transparente). */
2046
+ .slider-color,.color-swatch-alpha { --color-checker:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M0 0h8v8H0z'/%3E%3Cpath fill='%23c8c8c8' d='M0 0h4v4H0zM4 4h4v4H4z'/%3E%3C/svg%3E"); }
2047
+ .slider-color { --slider-cap:var(--space-3); }
2048
+ .slider-color .slider-track { background:var(--slider-track-fill,var(--secondary)); background-origin:border-box; forced-color-adjust:none; }
2049
+ .slider-alpha .slider-track { background-image:var(--slider-track-fill,none),var(--color-checker); background-size:auto,var(--space-2) var(--space-2); }
2050
+ .slider-color .slider-thumb { box-sizing:border-box; inline-size:var(--space-4); block-size:var(--space-4); align-self:center; border:calc(3 * var(--border-width)) solid #fff; background:var(--color-checker) center/var(--space-2) var(--space-2); box-shadow:inset 0 0 0 var(--space-4) var(--slider-thumb-color,var(--primary)), 0 0 0 var(--border-width) rgba(0,0,0,.1), var(--shadow-sm); forced-color-adjust:none; }
2051
+ .slider-color .slider-thumb::after { content:none; }
2052
+ .slider-color[data-orientation="vertical"] .slider-thumb { inline-size:var(--space-4); block-size:var(--space-4); }
2053
+ /* COLORAREA (0.32.0, ADR-0069) — a área de cor. A pintura (o gradiente, a ÚNICA exceção à ADR-0007) chega pela
2054
+ variável que o componente põe (`--color-area-fill`): esta folha não escreve gradiente nenhum (check 4).
2055
+ Medidas da referência, lidas no CSS publicado dela (3.2.6): quadrada, até 224 de largura, canto 16; o pino de
2056
+ 16 que cresce para 20 ao arrastar, com o anel de 3. 224 não tem token: sai de dois `--space-24` e um `--space-8`.
2057
+ O anel é BRANCO nos dois temas, e não um token de tema: ele fica sobre a cor escolhida, e não sobre a página.
2058
+ Os dois `range` escondidos (o motor da área) cobrem o pino com opacidade quase zero, como na referência: o
2059
+ leitor de tela por toque os acha no lugar do pino. */
2060
+ .color-area { position:relative; inline-size:100%; max-inline-size:calc(2 * var(--space-24) + var(--space-8)); aspect-ratio:1; border-radius:var(--radius-lg); background:var(--color-area-fill,var(--secondary)); background-blend-mode:var(--color-area-blend,normal); box-shadow:inset 0 0 0 var(--border-width) rgba(0,0,0,.1); touch-action:none; cursor:crosshair; user-select:none; forced-color-adjust:none; }
2061
+ /* Os pontinhos (`showDots`, o da referência: um ponto branco a 20% a cada 8) são desenho de SVG por cima da área,
2062
+ e não gradiente. O pino fica acima deles. */
2063
+ .color-area-dots::after { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Ccircle cx='4' cy='4' r='1' fill='%23fff' fill-opacity='.2'/%3E%3C/svg%3E"); background-size:var(--space-2) var(--space-2); }
2064
+ .color-area-dots .color-area-thumb { z-index:1; }
2065
+ .color-area[data-disabled] { opacity:var(--opacity-disabled); cursor:not-allowed; }
2066
+ .color-area-thumb { position:absolute; box-sizing:border-box; inline-size:var(--space-4); block-size:var(--space-4); margin-inline-start:calc(var(--space-4) / -2); margin-block-start:calc(var(--space-4) / -2); border:calc(3 * var(--border-width)) solid #fff; border-radius:var(--radius-full); background:var(--color-area-thumb,transparent); box-shadow:0 0 0 var(--border-width) rgba(0,0,0,.1), inset 0 0 0 var(--border-width) rgba(0,0,0,.1); pointer-events:none; forced-color-adjust:none; transition:inline-size var(--duration-base) var(--ease-standard), block-size var(--duration-base) var(--ease-standard), margin var(--duration-base) var(--ease-standard); }
2067
+ .color-area[data-dragging] .color-area-thumb { inline-size:var(--space-5); block-size:var(--space-5); margin-inline-start:calc(var(--space-5) / -2); margin-block-start:calc(var(--space-5) / -2); }
2068
+ .color-area-thumb[data-focus-visible] { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
2069
+ .color-area-input { position:absolute; inset:0; inline-size:100%; block-size:100%; margin:0; opacity:.0001; pointer-events:none; }
2070
+ @media (prefers-reduced-motion:reduce) { .color-area-thumb { transition:none; } }
2071
+ /* COLORPICKER (0.32.0, ADR-0069) — o gatilho é a amostra com o nome, em linha, com o vão de 12 (o da referência,
2072
+ lido no CSS publicado dela, 3.2.6). A janela é o `.popover` com o recheio dela — 8 em cima e dos lados, 12
2073
+ embaixo — e o vão de 12; a largura é a da área (224) mais o recheio, sem número novo. Dentro, a área ocupa a
2074
+ largura toda. */
2075
+ .color-picker-trigger { display:inline-flex; align-items:center; gap:var(--space-3); padding:0; border:0; border-radius:var(--radius-full); background:none; color:var(--foreground); font:inherit; font-size:var(--text-sm); font-weight:var(--weight-medium); cursor:pointer; }
2076
+ .color-picker-trigger:focus-visible { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
2077
+ .color-picker-trigger:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
2078
+ .color-picker-popover { min-width:0; inline-size:calc(2 * var(--space-24) + var(--space-8) + 2 * var(--space-2)); padding:var(--space-2) var(--space-2) var(--space-3); gap:var(--space-3); }
2079
+ .color-picker-popover > .color-area { max-inline-size:none; }
1706
2080
 
1707
2081
  /* A CÁPSULA é que tem de medir igual a um botão/campo ao lado — não o botão de dentro.
1708
2082
  Antes: `height:30px` no filho, cru. Em comfortable dava 30+3+3=36 = --control-h-md por
1709
2083
  coincidência; em compact a cápsula ficava 4px alta demais e em spacious 4px baixa demais,
1710
2084
  porque a densidade não alcançava a regra (achado A1, 26/07/2026). Com a altura na cápsula
1711
2085
  os filhos esticam sozinhos (align-items é stretch por padrão) e a conta fecha nas TRÊS. */
1712
- .segmented { display:inline-flex; gap:3px; padding:3px; min-height:var(--control-h-md); border-radius:var(--radius-control); background:var(--muted); border:1px solid transparent; box-shadow:none; }
1713
- .segmented button { padding:0 14px; border:0; border-radius:var(--radius-control); color:var(--muted-foreground); background:transparent; cursor:pointer; }
2086
+ /* 0.32.0 — as medidas das abas da referência (o segmentado é a mesma peça): trilho com 4 de recheio
2087
+ e sem vão; cada segmento com a altura `sm` (32 no padrão, e anda com a densidade), 16 dos lados,
2088
+ letra peso médio. O trilho dá 40 (era 36: 3 + 30 + 3). */
2089
+ /* A borda transparente de 1 (as abas não têm) entra no recheio: 1 + 3 = os 4 da referência, e o
2090
+ trilho mede 40 como o das abas — sem o desconto, 42 (a geometria pegou). */
2091
+ .segmented { display:inline-flex; gap:0; padding:calc(var(--space-1) - var(--border-width)); border-radius:var(--radius-control); background:var(--muted); border:var(--border-width) solid transparent; box-shadow:none; }
2092
+ .segmented button { min-block-size:var(--control-h-sm); padding:0 var(--space-4); border:0; border-radius:var(--radius-control); color:var(--muted-foreground); background:transparent; font-weight:var(--weight-medium); cursor:pointer; }
1714
2093
  .segmented button.active { color:var(--foreground); background:var(--segment); box-shadow:var(--shadow-sm); border:0; }
1715
2094
  /* `fullWidth` (A5, 06/10/2026): ocupa a linha, e cada segmento cresce a partir do rótulo sem
1716
2095
  encolher abaixo dele — o mesmo desenho do nativo. `1 0 auto` e não `1` (= `1 1 0%`): base zero
@@ -1736,6 +2115,14 @@ img,svg { display:block; }
1736
2115
  claro e 1,02:1 no escuro. Sobre o trilho a cápsula é --segment, com a sombra pequena — como a
1737
2116
  aba da referência principal. O rótulo na cor da marca e o fio continuam. */
1738
2117
  .segmented button.active { --btn-bg:var(--segment); background:var(--segment); box-shadow:var(--shadow-sm); }
2118
+ /* O TOGGLE LIGADO tem fundo próprio (0.32.0). Com o solto no fundo neutro (o `default` da referência),
2119
+ o cinza do "selecionado" acima deixava ligado e desligado com o MESMO fundo — só a letra e o fio
2120
+ mudavam, e o `skin.spec` cobra que o ligado pareça ligado pelo fundo. O ligado dela é o tom suave
2121
+ da marca; o da Aurea é o "clarinho" (o amarelo a 10%, a receita do `.badge-primary` que o Victor
2122
+ escolheu para a página atual da paginação), aqui sobre o cinza, para o grupo colado continuar uma
2123
+ cápsula só. A letra da marca e o fio continuam os do "selecionado". */
2124
+ .btn.toggle[data-pressed] { --btn-bg:color-mix(in oklab, var(--primary) 10%, var(--secondary)); background:var(--btn-bg); }
2125
+ .btn.toggle[data-pressed]:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:color-mix(in oklab, var(--primary) 10%, var(--secondary-hover)); }
1739
2126
  /* O ATIVO DA NAV DA LATERAL sai da escala DELA, e não da página (20/08/2026, o Victor viu sob a
1740
2127
  marca `lory`). Ele dividia esta regra com o `.segmented`, que vive no conteúdo — e `--secondary`
1741
2128
  é quase branco no tema claro. Numa lateral escura isso desenhava uma pílula branca com texto
@@ -1756,7 +2143,7 @@ img,svg { display:block; }
1756
2143
  saíram com a mesma cor. Com o `:not` ela pesa (0,3,1) e só alcança quem está em repouso. */
1757
2144
  [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); }
1758
2145
  .is-selected::after,.btn-nav[aria-current]:not([aria-current="false"])::after,
1759
- .btn[aria-pressed="true"]:not(.btn-icon)::after,.segmented button.active::after,
2146
+ .btn[aria-pressed="true"]:not(.btn-icon)::after,.segmented button.active::after,.tabs-secondary .tab[data-active]::after,
1760
2147
  .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); }
1761
2148
  /* e o fio do ativo da lateral segue a marca DELA, pelo mesmo motivo da regra de cor acima. */
1762
2149
  .doc-nav a.active::after,.sidebar-item[aria-current]::after { background:color-mix(in oklab, var(--sidebar-primary) 75%, transparent); }
@@ -1773,7 +2160,11 @@ img,svg { display:block; }
1773
2160
  classe media 26px dentro do .brand (lh 18px) e 22px dentro de um .btn-nav (lh 12px) — na
1774
2161
  mesma barra (achado A2, 26/07/2026). Geometria de componente não se decide pelo contexto.
1775
2162
  O .chip do catálogo já tinha aprendido isso; o .badge não. */
1776
- .badge { --badge-accent:var(--secondary-foreground); display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:var(--space-6); padding:3px 9px; border:1px solid var(--border); border-radius:var(--radius-control); background:var(--secondary); color:var(--secondary-foreground); font-size:var(--text-xs); font-weight:var(--weight-medium); line-height:var(--leading-none); white-space:nowrap; }
2163
+ /* 0.32.0: as medidas do Chip da referência (o `Badge` da Aurea é o Chip dela), lidas no CSS publicado:
2164
+ 24 de altura, 10 até o texto (8 da caixa + 2 do rótulo — aqui, com a borda de 1 que é nossa, 9), 4
2165
+ entre o glifo e o texto (era 6); `sm` 20 com 6 até o texto, `lg` 28 com 14 e letra de 14. A cápsula e a
2166
+ borda continuam da Aurea, como no nativo (0.11.0). */
2167
+ .badge { --badge-accent:var(--secondary-foreground); display:inline-flex; align-items:center; justify-content:center; gap:var(--space-1); min-height:var(--space-6); padding:0 calc(var(--space-2) + var(--space-05) - var(--border-width)); border:1px solid var(--border); border-radius:var(--radius-control); background:var(--secondary); color:var(--secondary-foreground); font-size:var(--text-xs); font-weight:var(--weight-medium); line-height:var(--space-4); white-space:nowrap; }
1777
2168
  /* O glifo do badge tem tamanho PRÓPRIO, senão o `.icon` padrão (20px) estoura os 24px e o
1778
2169
  badge com ícone fica mais alto que o badge de texto na mesma fila. 16px + 3+3 de padding
1779
2170
  + 1+1 de borda = 24px exatos: com ícone ou sem, mede o mesmo. */
@@ -1785,8 +2176,8 @@ img,svg { display:block; }
1785
2176
  .badge-primary { --badge-accent:var(--primary-emphasis); color:var(--primary-emphasis); border-color:var(--primary-outline); background:color-mix(in srgb,var(--primary) 10%,transparent); }
1786
2177
  /* TAMANHOS. O md é a base (24px), que não muda — é o que as 103 fichas já usam. */
1787
2178
  .badge-xs { min-height:var(--space-4); padding:0 var(--space-1); border-width:0; }
1788
- .badge-sm { min-height:var(--space-5); padding:0 var(--space-2); }
1789
- .badge-lg { min-height:var(--space-7); padding:0 var(--space-3); font-size:var(--text-sm); }
2179
+ .badge-sm { min-height:var(--space-5); padding:0 calc(var(--space-1) + var(--space-05) - var(--border-width)); }
2180
+ .badge-lg { min-height:var(--space-7); padding:0 calc(var(--space-3) + var(--space-05) - var(--border-width)); font-size:var(--text-sm); }
1790
2181
  /* ACESSÓRIOS de dentro do chip. O ponto herda a cor do texto por `currentColor`, então ele
1791
2182
  acompanha variante e ênfase sem uma regra por combinação. */
1792
2183
  .badge-dot { flex:none; width:var(--space-2); height:var(--space-2); border-radius:var(--radius-full); background:currentColor; }
@@ -1871,6 +2262,9 @@ img,svg { display:block; }
1871
2262
  enchendo com o acento, como antes. */
1872
2263
  .badge-solid { background:var(--badge-fill, var(--badge-accent)); color:var(--badge-on, var(--background)); border-color:transparent; }
1873
2264
  .badge-outline { background:transparent; color:var(--badge-accent); border-color:var(--badge-accent); }
2265
+ /* flat (15/10/2026): o tom de sempre sem a linha em volta — o selo da referência não tem borda em forma nenhuma. A
2266
+ borda fica, transparente: a medida do selo não muda. */
2267
+ .badge.badge-flat { border-color:transparent; }
1874
2268
  .status-dot { width:8px; height:8px; border-radius:50%; background:currentColor; box-shadow:0 0 0 3px color-mix(in srgb,currentColor 14%,transparent); }
1875
2269
  /* Status: condição operacional (DIRECTION §3.6) — NÃO é o pill do Badge; é ponto + rótulo
1876
2270
  solto na linha. A variante pinta o .status (o ponto herda por currentColor) e o rótulo
@@ -1896,6 +2290,14 @@ img,svg { display:block; }
1896
2290
  lados. Horizontal (o modo lista): a mídia à esquerda, 96 de largura (a do exemplo da
1897
2291
  referência, nosso --space-24), 16 até o texto, e o raio concêntrico da casa. */
1898
2292
  .card-media { display:block; overflow:hidden; }
2293
+ /* As partes do cartão (15/10/2026), as da referência: o título 14/24 médio e a descrição 14/20 apagada, colados no
2294
+ cabeçalho; o conteúdo em coluna com 4; o rodapé em linha, com 8 entre os botões; 12 entre as partes. */
2295
+ .card-header { display:flex; flex-direction:column; }
2296
+ .card-title { margin:0; color:var(--card-foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); line-height:var(--space-6); }
2297
+ .card-description { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); line-height:var(--space-5); }
2298
+ .card-content { display:flex; flex-direction:column; gap:var(--space-1); }
2299
+ .card-footer { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); }
2300
+ :is(.card-header,.card-content,.card-footer) + :is(.card-header,.card-content,.card-footer) { margin-block-start:var(--space-3); }
1899
2301
  .card-media > :is(img,video,.image) { display:block; width:100%; }
1900
2302
  .card:not(.card-horizontal) > .card-media:first-child { margin:calc(var(--card-pad) * -1) calc(var(--card-pad) * -1) var(--card-pad); border-radius:calc(var(--radius-card) - var(--border-width)) calc(var(--radius-card) - var(--border-width)) 0 0; }
1901
2303
  .card-flush:not(.card-horizontal) > .card-media:first-child { margin:0; }
@@ -1903,6 +2305,11 @@ img,svg { display:block; }
1903
2305
  .card-horizontal > .card-media { grid-row:1 / span 99; border-radius:calc(var(--radius-card) - var(--card-pad)); }
1904
2306
  .card-horizontal > :not(.card-media) { grid-column:2; min-width:0; }
1905
2307
  .card-raised { box-shadow:none; } .card-inset { background:var(--secondary); }
2308
+ /* `outline` (0.32.0): o cartão da cor de onde ele está, só com a linha em volta — a caixa grande do
2309
+ Início da documentação da referência (o Victor, 13/10/2026: "na mesma cor do site, só tem uma linha
2310
+ ao redor"). O nome é o da referência para "sem fundo, com contorno" (o botão dela); o `transparent`
2311
+ do cartão dela tira também a linha, e esta guarda. A borda, o raio e o recheio são os do `.card`. */
2312
+ .card-outline { background:transparent; }
1906
2313
  /* A variante interativa é o ALVO, e desde o G-A11Y-11 ela exige `render` — o elemento vem de
1907
2314
  quem consome, e é `<button>` ou `<a href>` conforme a promessa seja ação ou navegação.
1908
2315
  As quatro normalizações abaixo existem por causa disso: um <button> traz fonte própria,
@@ -1938,27 +2345,39 @@ img,svg { display:block; }
1938
2345
  .card-accent-brand { --card-accent:var(--primary); } .card-accent-success { --card-accent:var(--success); }
1939
2346
  .card-accent-info { --card-accent:var(--info); } .card-accent-warning { --card-accent:var(--warning); }
1940
2347
  .card-accent-danger { --card-accent:var(--destructive); }
1941
- .card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
1942
- .card-title { margin:0; font-size:var(--text-sm); font-weight:var(--weight-medium); } .card-subtitle { margin:3px 0 0; color:var(--muted-foreground); font-size:var(--text-sm); }
2348
+ /* 0.32.0: a descrição 14/20 colada no título. O `.card-header` e o `.card-title` desta linha (o cabeçalho em LINHA, com
2349
+ 16 de vão e 16 embaixo, da primeira versão pública) saíram em 15/10/2026: nenhuma peça os usava, e vindo DEPOIS das
2350
+ partes do cartão eles separavam o título da descrição do `Card.Header` em 16 — na referência, colados. */
2351
+ .card-subtitle { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); line-height:var(--space-5); }
1943
2352
 
1944
2353
  /* HER-02 (06/10/2026): o `.alert` e o `.toast` eram `--radius-lg` (16). Painel e superfície
1945
2354
  flutuante são `--radius-card` (22) na identidade da Aurea, como o `.popover`, o `.dialog` e o
1946
2355
  `.banner`; a referência usa 24 nos dois. */
1947
- .alert { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:start; gap:12px; padding:14px 16px; border:1px solid var(--border); border-radius:var(--radius-card); background:var(--secondary); box-shadow:none; }
2356
+ /* 0.32.0, o Alert da referência (lido no CSS publicado dela, ordem do Victor: "igual ao dela"): o fundo
2357
+ de CARTÃO, sem borda, com a sombra de superfície; 12 em cima e embaixo e 16 dos lados; 16 entre as
2358
+ partes; o ícone de 16 numa caixa de 24; o título 14/24 peso médio NA COR DO ESTADO, e o corpo 14/20
2359
+ esmaecido. Até a 0.31.0 a cor do estado tingia o fundo e a borda. `--alert-tone` é a cor do estado. */
2360
+ .alert { --alert-tone:var(--info-400); display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:start; gap:var(--space-4); padding:var(--space-3) var(--space-4); border:0; border-radius:var(--radius-card); background:var(--card); color:var(--muted-foreground); font-size:var(--text-sm); line-height:var(--space-5); box-shadow:var(--shadow-sm); }
2361
+ .alert-success { --alert-tone:var(--success-400); } .alert-warning { --alert-tone:var(--warning-400); } .alert-danger { --alert-tone:var(--danger-400); } .alert-accent { --alert-tone:var(--link); }
2362
+ /* action (15/10/2026): a coluna do botão, depois do texto e antes do X, no meio da altura. Abaixo de 640 o botão desce
2363
+ para baixo do texto, na mesma coluna — a referência repete o botão no celular; aqui ele só muda de lugar. */
2364
+ .alert-has-action { grid-template-columns:auto minmax(0,1fr) auto auto; }
2365
+ .alert-action { display:flex; align-items:center; align-self:center; gap:var(--space-2); }
2366
+ @media (max-width:639px) { .alert-has-action { grid-template-columns:auto minmax(0,1fr) auto; } .alert-has-action > .alert-action { grid-column:2; grid-row:2; justify-self:start; align-self:start; } }
1948
2367
  /* Banner: aviso de largura de página. Base ANTES das variantes — mesma
1949
2368
  especificidade, então a última regra vence e a base apagaria as cores. */
1950
2369
  .banner { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; padding:14px 18px; border:1px solid var(--border); border-radius:var(--radius-card); background:var(--secondary); }
1951
- .alert-info,.banner-info { border-color:color-mix(in srgb,var(--info) 38%,var(--border)); background:var(--info-bg); }
1952
- .alert-success,.banner-success { border-color:color-mix(in srgb,var(--success) 38%,var(--border)); background:var(--success-bg); }
1953
- .alert-warning,.banner-warning { border-color:color-mix(in srgb,var(--warning) 38%,var(--border)); background:var(--warning-bg); }
1954
- .alert-danger,.banner-danger { border-color:color-mix(in srgb,var(--danger-400) 38%,var(--border)); background:var(--danger-bg); }
2370
+ .banner-info { border-color:color-mix(in srgb,var(--info) 38%,var(--border)); background:var(--info-bg); }
2371
+ .banner-success { border-color:color-mix(in srgb,var(--success) 38%,var(--border)); background:var(--success-bg); }
2372
+ .banner-warning { border-color:color-mix(in srgb,var(--warning) 38%,var(--border)); background:var(--warning-bg); }
2373
+ .banner-danger { border-color:color-mix(in srgb,var(--danger-400) 38%,var(--border)); background:var(--danger-bg); }
1955
2374
  /* O título do alerta é <strong> e não <h4>: alerta cai em qualquer profundidade da página e
1956
2375
  um h4 fixo quebraria a ordem de cabeçalhos. `display:block` porque o corpo vem embaixo
1957
2376
  dele, não ao lado — as duas linhas são o desenho da referência congelada. */
1958
- .alert h4,.alert strong { display:block; margin:0 0 2px; font-size:var(--text-sm); } .alert p { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); }
2377
+ .alert h4,.alert strong { display:block; margin:0; color:var(--alert-tone); font-size:var(--text-sm); font-weight:var(--weight-medium); line-height:var(--space-6); } .alert p { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); }
1959
2378
  /* A cor do glifo é a da variante, senão o ícone vira enfeite cinza e não repete o sinal.
1960
2379
  Só o ícone DIRETO do alerta: um ícone dentro do corpo (num botão, num link) é do corpo. */
1961
- .alert>.icon { color:var(--info-400); } .alert-success>.icon { color:var(--success-400); } .alert-warning>.icon { color:var(--warning-400); } .alert-danger>.icon { color:var(--danger-400); }
2380
+ .alert>.icon { --step-icon:var(--icon-sm); margin:var(--space-1); color:var(--alert-tone); }
1962
2381
  .banner strong { font-size:var(--text-sm); } .banner p { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); }
1963
2382
  @media (max-width:640px) { .banner { grid-template-columns:auto minmax(0,1fr); } .banner>:last-child { grid-column:2; justify-self:start; } }
1964
2383
  .progress { height:8px; overflow:hidden; border-radius:999px; background:var(--surface-3); }
@@ -1969,6 +2388,13 @@ img,svg { display:block; }
1969
2388
  pausado é `neutral`, falha é `danger`. */
1970
2389
  .progress-field { display:grid; gap:var(--space-1); }
1971
2390
  .progress-detail { justify-self:end; color:var(--muted-foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); font-variant-numeric:tabular-nums; }
2391
+ /* 0.32.0, a barra da referência: o rótulo à mostra no alto à esquerda (14 peso médio), a saída à direita,
2392
+ e o trilho embaixo, ocupando as duas colunas. sm 4, md 8, lg 12 de espessura. */
2393
+ .progress-field:has(> .progress-label) { grid-template-columns:minmax(0,1fr) auto; }
2394
+ .progress-field:has(> .progress-label) > .progress { grid-column:1 / -1; }
2395
+ .progress-label { color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
2396
+ .progress-sm { height:var(--space-1); }
2397
+ .progress-lg { height:var(--space-3); }
1972
2398
  .progress-tone-neutral>span { background:var(--muted-foreground); }
1973
2399
  .progress-tone-success>span { background:var(--success-400); }
1974
2400
  .progress-tone-warning>span { background:var(--warning-400); }
@@ -1989,11 +2415,15 @@ img,svg { display:block; }
1989
2415
  já existe (esqueleto, alerta, estado vazio, conteúdo) com respiro entre eles. Se ganhar borda
1990
2416
  ou fundo, viram duas superfícies para a mesma coisa — o defeito que a `.table-region` cobrou. */
1991
2417
  .data-state { display:grid; gap:var(--space-3); }
1992
- .skeleton { position:relative; overflow:hidden; border-radius:7px; background:var(--surface-3); }
2418
+ .skeleton { position:relative; overflow:hidden; border-radius:var(--radius-sm); background:var(--surface-3); }
1993
2419
  .skeleton { animation:skeleton-pulse 1.35s ease-in-out infinite; } @keyframes skeleton-pulse { 50% { opacity:.55; } }
2420
+ /* 0.32.0: `animation="none"` para o pulso; e quem pediu menos movimento ao sistema também não o vê. */
2421
+ .skeleton-static { animation:none; }
2422
+ @media (prefers-reduced-motion:reduce) { .skeleton { animation:none; } }
1994
2423
 
1995
- /* Mesma regra da .segmented: a cápsula carrega a altura da densidade, o filho estica. */
1996
- .tabs { display:inline-flex; gap:3px; padding:3px; min-height:var(--control-h-md); border:0; border-radius:var(--radius-control); background:var(--muted); }
2424
+ /* Mesma regra da .segmented (0.32.0, as medidas da referência): 4 de recheio, sem vão, a aba de 32
2425
+ (`--control-h-sm`, que anda com a densidade), 16 dos lados, peso médio. */
2426
+ .tabs { display:inline-flex; gap:0; padding:var(--space-1); border:0; border-radius:var(--radius-control); background:var(--muted); }
1997
2427
  /* Abas VERTICAIS (a família da orientação, achada pela matriz do §13). A raiz vira GRADE e
1998
2428
  não linha: com `flex-direction:row` o painel herdaria a altura da lista, e uma aba com
1999
2429
  muito conteúdo esticaria a coluna de rótulos junto — medido no navegador em 22/08/2026.
@@ -2001,25 +2431,48 @@ img,svg { display:block; }
2001
2431
  painel porque `minmax(0,1fr)` sozinho deixa conteúdo largo (uma tabela) empurrar a coluna
2002
2432
  de rótulos para fora. */
2003
2433
  .tabs-root[data-orientation="vertical"] { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:var(--space-4); }
2004
- .tabs[data-orientation="vertical"] { flex-direction:column; align-items:stretch; min-height:0; }
2434
+ .tabs[data-orientation="vertical"] { flex-direction:column; align-items:stretch; gap:var(--space-1); min-height:0; }
2005
2435
  /* o rótulo alinha ao INÍCIO da linha: centrado, uma coluna de abas de larguras diferentes
2006
2436
  sai serrilhada, que é o mesmo defeito que o `.btn-group-vertical` resolve com `stretch`. */
2007
- .tabs[data-orientation="vertical"] .tab { min-block-size:var(--control-h-md); text-align:start; }
2008
- .tab { position:relative; padding:0 14px; border:0; border-radius:var(--radius-control); background:transparent; color:var(--muted-foreground); cursor:pointer; }
2437
+ .tabs[data-orientation="vertical"] .tab { text-align:start; }
2438
+ .tab { position:relative; min-block-size:var(--control-h-sm); padding:0 var(--space-4); border:0; border-radius:var(--radius-control); background:transparent; color:var(--muted-foreground); font-weight:var(--weight-medium); cursor:pointer; }
2009
2439
  .tab.active,.tab[data-active] { color:var(--foreground); background:var(--segment); box-shadow:var(--shadow-sm); } .tab.active:after,.tab[data-active]:after { display:none; }
2440
+ /* `variant="secondary"` (0.32.0): a aba secundária da referência — sem trilho e sem cápsula, um fio
2441
+ embaixo da lista, a escolhida com a letra normal e o fio da casa (a regra do "selecionado", mais
2442
+ abaixo). */
2443
+ .tabs-secondary { gap:var(--space-1); padding:0; border-block-end:var(--border-width) solid var(--border); border-radius:0; background:transparent; }
2444
+ .tabs-secondary[data-orientation="vertical"] { border-block-end:0; border-inline-start:var(--border-width) solid var(--border); }
2445
+ .tabs-secondary .tab { border-radius:0; }
2446
+ .tabs-secondary .tab.active,.tabs-secondary .tab[data-active] { background:transparent; box-shadow:none; color:var(--foreground); }
2447
+ .tabs-secondary .tab[data-active]::after { display:block; }
2010
2448
  /* `panel="plain"` (MNT-05 e C9, 06/10/2026): o painel sem caixa, como o painel de abas da
2011
2449
  referência. Sem recheio dos lados — o conteúdo começa na linha do que está fora do `Tabs` —, e o
2012
2450
  espaço de cima é o mesmo `space-3` do painel do nativo. Na vertical, quem separa é o `gap` da
2013
2451
  grade da raiz, então o espaço de cima não entra. */
2014
2452
  .tabs-panel { min-width:0; } .tabs-root:not([data-orientation="vertical"])>.tabs-panel { padding-block-start:var(--space-3); }
2015
- .breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:7px; color:var(--muted-foreground); font-size:var(--text-sm); }
2016
- .breadcrumb a { color:inherit; text-decoration:none; } .breadcrumb a:hover { color:var(--foreground); }
2017
- .pagination { display:flex; gap:6px; align-items:center; }
2018
- /* `:not(.btn)` porque isto é o quadrado de NÚMERO de página. Sem o :not, o seletor de
2019
- elemento vencia o `.btn-sm` do Anterior/Próxima por especificidade (0,1,1 contra 0,1,0)
2020
- e forçava 34px neles — era a terceira altura de .btn-sm que a auditoria mediu (B3). */
2021
- .pagination button:not(.btn) { width:var(--control-h-md); height:var(--control-h-md); border:1px solid var(--border); border-radius:var(--radius-control); background:transparent; color:var(--muted-foreground); cursor:pointer; }
2022
- .pagination button.active { color:var(--primary-foreground); background:var(--primary); border-color:var(--primary); }
2453
+ /* 0.32.0 — a trilha da referência: vão 6, link 14 PESO MÉDIO esmaecido (sublinhado com o mouse, como o
2454
+ dela), a página atual na cor do texto e em peso médio (era negrito), e o separador de 12 (era 16). */
2455
+ .breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:calc(var(--space-1) + var(--space-05)); color:var(--muted-foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
2456
+ .breadcrumb a { color:inherit; text-decoration:none; } .breadcrumb a:hover { color:var(--foreground); text-decoration:underline; text-underline-offset:var(--space-05); }
2457
+ .breadcrumb > .icon { --step-icon:var(--space-3); }
2458
+ .breadcrumb [aria-current="page"] { color:var(--foreground); font-weight:inherit; }
2459
+ /* PAGINATION (0.32.0) — a da referência: o resumo à esquerda (14 esmaecido) e os itens à direita,
2460
+ com 4 entre eles; cada número é uma cápsula de 32 (`--control-h-sm`, 44 no toque), 14 PESO MÉDIO,
2461
+ que escurece com o mouse; "anterior" e "próxima" com a seta de 16 e o texto, 10 dos lados e 6 entre
2462
+ a seta e o texto; as reticências esmaecidas. A página ATUAL é o "clarinho" da Aurea — a receita do
2463
+ `.badge-primary` suave (o amarelo a 10%, o contorno da marca e a letra da marca), decisão do Victor.
2464
+ O `compact` (o desenho de até a 0.31.0) usa o `Button` e o `Badge`, e não passa por aqui. */
2465
+ .pagination { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-4); }
2466
+ .pagination-summary { margin-inline-end:auto; color:var(--muted-foreground); font-size:var(--text-sm); }
2467
+ .pagination-content { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-1); margin:0; padding:0; list-style:none; }
2468
+ .pagination-link { display:inline-flex; align-items:center; justify-content:center; gap:calc(var(--space-1) + var(--space-05)); min-inline-size:var(--control-h-sm); block-size:var(--control-h-sm); padding-inline:var(--space-1); border:var(--border-width) solid transparent; border-radius:var(--radius-full); background:transparent; color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); font-variant-numeric:tabular-nums; text-decoration:none; cursor:pointer; transition:background var(--duration-fast),transform var(--duration-fast) var(--ease-standard); }
2469
+ .pagination-link:hover:not(:disabled):not([aria-disabled="true"]) { background:var(--secondary); }
2470
+ .pagination-link:active:not(:disabled):not([aria-disabled="true"]) { transform:scale(.97); }
2471
+ .pagination-link:disabled,.pagination-link[aria-disabled="true"] { opacity:var(--opacity-disabled); cursor:not-allowed; }
2472
+ .pagination-link.active { border-color:var(--primary-outline); background:color-mix(in srgb, var(--primary) 10%, transparent); color:var(--primary-emphasis); }
2473
+ .pagination-link-nav { padding-inline:calc(var(--space-2) + var(--space-05)); }
2474
+ .pagination-nav-icon { --step-icon:var(--icon-sm); }
2475
+ .pagination-ellipsis { display:inline-grid; place-items:center; inline-size:var(--control-h-sm); color:var(--muted-foreground); font-size:var(--text-sm); }
2023
2476
  /* Stepper (Lote 2): o container NUNCA existiu no core — só no docs.css, e lá era
2024
2477
  `repeat(4,1fr)`, com o número de etapas cravado. `grid-auto-flow:column` distribui N etapas
2025
2478
  iguais sem saber quanto é N, e colunas iguais são o que faz a linha conectora (`.step:before`,
@@ -2065,14 +2518,31 @@ img,svg { display:block; }
2065
2518
  Somar o seletor em vez de copiar os valores: copiar deixaria duas listas para manter em sincronia,
2066
2519
  que é como as duas peles divergiram. O que continua só do `.table-region` é o foco — ele é
2067
2520
  `tabIndex=0` (região rolável precisa ser alcançável pelo teclado) e o `.table-wrap` não é. */
2068
- .table-wrap,.table-region { overflow:auto; border:1px solid var(--border); border-radius:var(--radius-card); background:var(--card); }
2069
- .table,.table-wrap table { width:100%; border-collapse:collapse; min-width:720px; }
2521
+ /* HER-13 (0.32.0, *"tabela quero como essa"*): a pele da referência, lida no CSS publicado dela — a
2522
+ MOLDURA cinza (sem borda, 4 dos lados e embaixo), o cabeçalho sobre ela (12 peso médio esmaecido, sem
2523
+ caixa-alta, 10 em cima e embaixo e 16 dos lados, com um fio de 16 entre as colunas) e o CORPO como um
2524
+ cartão por dentro: as células no fundo de cartão, 12/16 de recheio, letra de 14/20, um fio a meio-tom
2525
+ entre as linhas e o canto da casa (o da moldura menos a folga, como a ADR-0033) nas quatro pontas.
2526
+ A moldura é a região que rola: no celular a tabela rola de lado dentro dela (a "A" do Victor).
2527
+ A densidade continua da Aurea: o recheio de cima e de baixo sai do `--row-h` (no confortável, 12, o
2528
+ dela). */
2529
+ .table-wrap,.table-region { --table-head-h:calc(var(--space-4) + 2 * (var(--space-2) + var(--space-05))); --table-cell-r:calc(var(--radius-card) - var(--space-1)); overflow:auto; padding:0 var(--space-1) var(--space-1); border-radius:var(--radius-card); background:var(--surface-2); }
2530
+ .table,.table-wrap table { width:100%; border-collapse:separate; border-spacing:0; min-width:720px; font-size:var(--text-sm); }
2070
2531
  /* GAR-16 (0.28.0): a tabela inteira com algarismos da mesma largura — a coluna de preço e de ano
2071
2532
  alinha. Só os algarismos mudam; o texto das outras colunas fica igual. */
2072
- .table th,.table td,.table-wrap th,.table-wrap td { height:var(--row-h); padding:0 14px; text-align:start; border-bottom:1px solid var(--border); font-variant-numeric:tabular-nums; }
2073
- .table th,.table-wrap th { color:var(--subtle-foreground); background:var(--surface-2); font-size:var(--text-xs); letter-spacing:var(--tracking-wider); text-transform:uppercase; }
2533
+ .table th,.table td,.table-wrap th,.table-wrap td { padding:calc((var(--row-h) - var(--space-5)) / 2 - var(--space-05)) var(--space-4); text-align:start; line-height:var(--space-5); border-bottom:var(--border-width) solid color-mix(in oklab,var(--border) 50%,transparent); font-variant-numeric:tabular-nums; }
2534
+ /* O título da tabela (`caption`) mora na moldura, em cima do cabeçalho, alinhado ao texto das colunas
2535
+ (sem regra, o navegador o centralizava). */
2536
+ .table > caption,.table-wrap table > caption { padding:var(--space-3) var(--space-4) var(--space-1); color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); line-height:var(--space-5); text-align:start; }
2537
+ .table thead th,.table-wrap thead th { position:relative; block-size:var(--table-head-h); padding-block:0; border-bottom:0; color:var(--muted-foreground); background:var(--surface-2); font-size:var(--text-xs); font-weight:var(--weight-medium); line-height:var(--space-4); }
2538
+ .table thead th:not(:last-child)::after,.table-wrap thead th:not(:last-child)::after { content:""; position:absolute; inset-inline-end:0; inset-block-start:50%; translate:0 -50%; inline-size:var(--border-width); block-size:var(--space-4); border-radius:var(--radius-full); background:var(--border); pointer-events:none; }
2539
+ .table tbody :is(td,th),.table-wrap tbody :is(td,th) { background:var(--card); }
2540
+ .table tbody tr:first-child > :first-child,.table-wrap tbody tr:first-child > :first-child { border-start-start-radius:var(--table-cell-r); }
2541
+ .table tbody tr:first-child > :last-child,.table-wrap tbody tr:first-child > :last-child { border-start-end-radius:var(--table-cell-r); }
2542
+ .table tbody tr:last-child > :first-child,.table-wrap tbody tr:last-child > :first-child { border-end-start-radius:var(--table-cell-r); }
2543
+ .table tbody tr:last-child > :last-child,.table-wrap tbody tr:last-child > :last-child { border-end-end-radius:var(--table-cell-r); }
2074
2544
  .table tr:last-child td,.table-wrap tr:last-child td { border-bottom:0; }
2075
- .table tbody tr:hover,.table-wrap tbody tr:hover { background:var(--surface-2); }
2545
+ @media (hover:hover) { .table tbody tr:hover > :is(td,th),.table-wrap tbody tr:hover > :is(td,th) { background:color-mix(in oklab,var(--card) 40%,var(--surface-2)); } }
2076
2546
  /* GAR-12 e GAR-13 (08/10/2026): a tabela de COMPARAÇÃO — as chaves da `Table` e a pele do HTML de
2077
2547
  comparação. A referência principal só tem o cabeçalho preso, à mão, numa caixa de altura fixa; o
2078
2548
  resto veio do mercado, por escolha do Victor (o detalhe está no comentário da `Table`).
@@ -2080,7 +2550,10 @@ img,svg { display:block; }
2080
2550
  cor do texto, peso médio. Antes herdava a pele do cabeçalho — e ninguém no repositório usava
2081
2551
  `th` no corpo (medido), então nenhum exemplo muda. A FAIXA DE GRUPO (`<th scope="rowgroup">`)
2082
2552
  continua com a pele do cabeçalho de propósito: é rótulo, no idioma que a tabela já usa. */
2083
- .table tbody th[scope="row"],.table-wrap tbody th[scope="row"] { color:var(--foreground); background:transparent; font-size:inherit; font-weight:var(--weight-medium); letter-spacing:normal; text-transform:none; }
2553
+ .table tbody th[scope="row"],.table-wrap tbody th[scope="row"] { color:var(--foreground); font-size:inherit; font-weight:var(--weight-medium); }
2554
+ /* 0.32.0: a faixa de grupo continua rótulo — o cinza da moldura e a letra do cabeçalho —, agora que o
2555
+ cabeçalho da referência mora só no `thead`. */
2556
+ .table tbody th[scope="rowgroup"],.table-wrap tbody th[scope="rowgroup"] { color:var(--muted-foreground); background:var(--surface-2); font-size:var(--text-xs); font-weight:var(--weight-medium); }
2084
2557
  .table tbody tr:last-child th,.table-wrap tbody tr:last-child th { border-bottom:0; }
2085
2558
  /* O melhor valor: negrito. O selo "Melhor", em TEXTO, é um `Badge` que o site põe na célula — a
2086
2559
  cor sozinha não diz nada a quem não a enxerga (WCAG 1.4.1). */
@@ -2105,8 +2578,13 @@ img,svg { display:block; }
2105
2578
  .table-sticky-first :is(thead,tbody,tfoot) > tr > :first-child { position:sticky; inset-inline-start:0; z-index:1; background:var(--card); }
2106
2579
  .table-sticky-first thead > tr > :first-child { z-index:2; background:var(--surface-2); }
2107
2580
  .table-sticky-first tbody > tr > th[scope="rowgroup"]:first-child { background:var(--surface-2); }
2108
- .table-sticky-first tbody > tr:hover > :first-child { background:var(--surface-2); }
2581
+ @media (hover:hover) { .table-sticky-first tbody > tr:hover > :first-child { background:color-mix(in oklab,var(--card) 40%,var(--surface-2)); } }
2109
2582
  .table-sticky-first :is(thead,tbody,tfoot) > tr > :first-child:not([colspan])::after { content:""; position:absolute; inset-block:0; inset-inline-end:0; inline-size:var(--border-width); background:var(--border); }
2583
+ /* Achado em 12/10/2026 (o teste GAR-12, vencido desde o passo 6): a moldura da tabela tem recheio de 4 dos
2584
+ lados, e a coluna parada gruda na borda de DENTRO dela — a 4. Ao rolar de lado, as células passavam
2585
+ nessa faixa de 4 à esquerda da coluna parada. Cada célula parada tapa a faixa com a cor da moldura, por
2586
+ fora; com propriedade lógica, vale também na escrita da direita para a esquerda. */
2587
+ .table-sticky-first :is(thead,tbody,tfoot) > tr > :first-child::before { content:""; position:absolute; inset-block:0; inset-inline-start:calc(-1 * var(--space-1)); inline-size:var(--space-1); background:var(--surface-2); }
2110
2588
  /* Avatar (Lote 2): `overflow:hidden` e o `object-fit` da imagem são a correção do defeito que
2111
2589
  a medição achou — foto que não é quadrada vazava inteira da caixa redonda, porque
2112
2590
  `border-radius` não recorta filho sozinho. Foto de perfil raramente vem quadrada, então isto
@@ -2115,10 +2593,123 @@ img,svg { display:block; }
2115
2593
  `comfortable`. Nada muda de aparência aqui; o que muda é que agora a DENSIDADE alcança o
2116
2594
  avatar, e a escala é a mesma dos controles — avatar e botão na mesma linha ficam da mesma
2117
2595
  altura por construção, em vez de por coincidência. */
2118
- .avatar { width:var(--step-h,var(--control-h-md)); height:var(--step-h,var(--control-h-md)); font-size:var(--step-avatar-fs,inherit); display:grid; place-items:center; overflow:hidden; border-radius:50%; background:var(--surface-3); color:var(--foreground); border:1px solid var(--border-strong); font-weight:var(--weight-bold); }
2119
- .avatar-sm { --step-h:var(--control-h-sm); --step-avatar-fs:var(--text-xs); }
2120
- .avatar-lg { --step-h:var(--control-h-lg); }
2596
+ /* 0.32.0: a escala da referência, 32 · 40 · 48, com a letra de 12 · 14 · 16 em peso médio (era a
2597
+ altura do botão, 32 · 36 · 40, e negrito). `--step-avatar` é a variável de passo própria do avatar
2598
+ (a camada responsiva a emite junto das outras). */
2599
+ .avatar { width:var(--step-avatar,var(--space-10)); height:var(--step-avatar,var(--space-10)); font-size:var(--step-avatar-fs,var(--text-sm)); display:grid; place-items:center; overflow:hidden; border-radius:50%; background:var(--surface-3); color:var(--foreground); border:1px solid var(--border-strong); font-weight:var(--weight-medium); }
2600
+ .avatar-sm { --step-avatar:var(--space-8); --step-avatar-fs:var(--text-xs); }
2601
+ .avatar-lg { --step-avatar:var(--space-12); --step-avatar-fs:var(--text-base); }
2602
+ /* tone e emphasis="soft" (15/10/2026), o `color` e o `soft` do avatar da referência: o tom pinta a letra ou o ícone (o par
2603
+ de letra de cada estado, ADR-0061); o `soft` tira a moldura e põe o fundo clarinho do tom (14%, a tinta dos botões
2604
+ suaves). O neutro suave é o --muted. */
2605
+ .avatar-tone-brand { --avatar-ink:var(--primary-emphasis); --avatar-tint:var(--primary); }
2606
+ .avatar-tone-danger { --avatar-ink:var(--danger-400); --avatar-tint:var(--destructive); }
2607
+ .avatar-tone-success { --avatar-ink:var(--success-400); --avatar-tint:var(--success); }
2608
+ .avatar-tone-warning { --avatar-ink:var(--warning-400); --avatar-tint:var(--warning); }
2609
+ .avatar-tone-info { --avatar-ink:var(--info-400); --avatar-tint:var(--info); }
2610
+ .avatar:is(.avatar-tone-brand,.avatar-tone-danger,.avatar-tone-success,.avatar-tone-warning,.avatar-tone-info) { color:var(--avatar-ink); }
2611
+ .avatar.avatar-soft { border-color:transparent; background:var(--muted); }
2612
+ .avatar.avatar-soft:is(.avatar-tone-brand,.avatar-tone-danger,.avatar-tone-success,.avatar-tone-warning,.avatar-tone-info) { background:color-mix(in oklab, var(--avatar-tint) 14%, transparent); }
2121
2613
  .avatar img { width:100%; height:100%; object-fit:cover; }
2614
+ /* LINK (0.32.0): o link de texto da referência — peso médio, a cor de link, sem sublinhado; com o mouse
2615
+ ou apertado, o sublinhado de 1,5 a 4 da letra, na cor esmaecida (a meia força com o mouse). A seta do
2616
+ `external` é o `arrow-up-right` do Phosphor por máscara, a 60% (inteira com o mouse). O desenho é
2617
+ em LINHA (`inline`), e não o bloco em linha dela: o link longo quebra dentro do parágrafo, que é o
2618
+ que a página ampliada a 200% precisa (baixa visão). */
2619
+ .link { border-radius:var(--radius-sm); color:var(--link); font-weight:var(--weight-medium); text-decoration-line:none; text-decoration-thickness:calc(var(--border-width) * 1.5); text-underline-offset:var(--space-1); text-decoration-color:color-mix(in oklab,var(--muted-foreground) 50%,transparent); cursor:pointer; }
2620
+ @media (hover:hover) { .link:hover { color:var(--link-hover); text-decoration-line:underline; } .link:hover > .link-external { opacity:1; } }
2621
+ .link:active { text-decoration-line:underline; text-decoration-color:var(--muted-foreground); }
2622
+ .link[aria-disabled="true"] { opacity:var(--opacity-disabled); text-decoration-line:none; cursor:not-allowed; }
2623
+ .link-external { --link-glifo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M200,64V168a8,8,0,0,1-16,0V83.31L69.66,197.66a8,8,0,0,1-11.32-11.32L172.69,72H88a8,8,0,0,1,0-16H192A8,8,0,0,1,200,64Z'/%3E%3C/svg%3E"); display:inline-block; inline-size:.75em; block-size:.75em; margin-inline-start:var(--space-1); vertical-align:baseline; background:currentColor; opacity:.6; -webkit-mask:var(--link-glifo) center/contain no-repeat; mask:var(--link-glifo) center/contain no-repeat; }
2624
+ /* COLORSWATCH (0.32.0): a amostra de cor da referência — xs 16, sm 24, md 32, lg 36, xl 40 —, só redonda
2625
+ e sem o xadrez (decisão do Victor). O anel de 1 por dentro, a 10% da cor do texto, segura a amostra da
2626
+ cor do fundo no fundo. */
2627
+ .color-swatch { --color-swatch-size:var(--space-8); display:inline-block; flex:none; inline-size:var(--color-swatch-size); block-size:var(--color-swatch-size); border-radius:var(--radius-full); background:var(--color-swatch-current,transparent); box-shadow:inset 0 0 0 var(--border-width) color-mix(in oklab,var(--foreground) 10%,transparent); }
2628
+ .color-swatch-xs { --color-swatch-size:var(--space-4); }
2629
+ .color-swatch-sm { --color-swatch-size:var(--space-6); }
2630
+ .color-swatch-lg { --color-swatch-size:calc(var(--space-8) + var(--space-1)); }
2631
+ .color-swatch-xl { --color-swatch-size:var(--space-10); }
2632
+ /* A amostra TRANSPARENTE (14/10/2026): o xadrez embaixo, e a cor por uma sombra por dentro (a sombra pinta POR CIMA
2633
+ do fundo; a cor de fundo pintaria por baixo do xadrez). O anel de 1 continua por cima de tudo. */
2634
+ .color-swatch-alpha { background:var(--color-checker) center/var(--space-2) var(--space-2); box-shadow:inset 0 0 0 var(--border-width) color-mix(in oklab,var(--foreground) 10%,transparent), inset 0 0 0 var(--color-swatch-size) var(--color-swatch-current,transparent); }
2635
+ /* AS AMOSTRAS PARA ESCOLHER (0.32.0, ADR-0069): a variação `options` do ColorSwatch. Cada cor é um rótulo com um
2636
+ botão de opção nativo por cima, invisível (o navegador cuida da escolha e das setas). O desenho é o da
2637
+ referência (3.2.6): opção de 32 (os mesmos tamanhos da amostra), borda de 2 transparente, vão de 8; a escolhida
2638
+ ganha a borda na cor dela, a amostra encolhe a 77% por dentro e aparece o "visto" (1/3 da opção) — preto ou
2639
+ branco pela conta de contraste (a classe `color-swatch-option-dark`, posta pelo componente). Ao passar o ponteiro, a amostra cresce 10%. */
2640
+ .color-swatch-picker { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); }
2641
+ .color-swatch-option { --color-swatch-size:var(--space-8); --swatch-glifo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E"); position:relative; display:inline-grid; place-items:center; box-sizing:border-box; inline-size:var(--color-swatch-size); block-size:var(--color-swatch-size); border:calc(2 * var(--border-width)) solid transparent; border-radius:var(--radius-full); cursor:pointer; transition:border-color var(--duration-fast) var(--ease-standard); }
2642
+ .color-swatch-option > .color-swatch { inline-size:100%; block-size:100%; transition:scale var(--duration-fast) var(--ease-standard); }
2643
+ .color-swatch-option::after { content:""; position:absolute; inset:0; margin:auto; inline-size:calc(var(--color-swatch-size) / 3); block-size:calc(var(--color-swatch-size) / 3); background:#fff; -webkit-mask:var(--swatch-glifo) center/contain no-repeat; mask:var(--swatch-glifo) center/contain no-repeat; scale:0; pointer-events:none; transition:scale var(--duration-fast) var(--ease-standard); }
2644
+ .color-swatch-option-dark::after { background:#000; }
2645
+ .color-swatch-option:has(:checked) { border-color:var(--color-swatch-current,transparent); }
2646
+ .color-swatch-option:has(:checked) > .color-swatch { scale:.77; }
2647
+ .color-swatch-option:has(:checked)::after { scale:1; }
2648
+ @media (hover:hover) { .color-swatch-option:not(:has(:checked,:disabled)):hover > .color-swatch { scale:1.1; } }
2649
+ .color-swatch-option:has(:focus-visible) { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
2650
+ .color-swatch-option:has(:disabled) { opacity:var(--opacity-disabled); cursor:not-allowed; }
2651
+ .color-swatch-input { position:absolute; inset:0; z-index:1; margin:0; opacity:0; cursor:inherit; }
2652
+ /* Em coluna (`layout="stack"`) e a marca própria (`indicator`, no lugar do "visto"), como na referência. A marca
2653
+ aparece só na escolhida, na tinta que contrasta, com 1/3 da opção. */
2654
+ .color-swatch-picker-stack { flex-direction:column; align-items:flex-start; }
2655
+ .color-swatch-indicator { position:absolute; inset:0; display:grid; place-items:center; color:#fff; pointer-events:none; scale:0; transition:scale var(--duration-fast) var(--ease-standard); }
2656
+ .color-swatch-indicator > * { inline-size:calc(var(--color-swatch-size) / 3); block-size:calc(var(--color-swatch-size) / 3); }
2657
+ .color-swatch-option-dark .color-swatch-indicator { color:#000; }
2658
+ .color-swatch-option:has(:checked) .color-swatch-indicator { scale:1; }
2659
+ .color-swatch-option:has(.color-swatch-indicator)::after { content:none; }
2660
+ .color-swatch-picker-xs .color-swatch-option { --color-swatch-size:var(--space-4); border-width:var(--border-width); }
2661
+ .color-swatch-picker-sm .color-swatch-option { --color-swatch-size:var(--space-6); }
2662
+ .color-swatch-picker-lg .color-swatch-option { --color-swatch-size:calc(var(--space-8) + var(--space-1)); }
2663
+ .color-swatch-picker-xl .color-swatch-option { --color-swatch-size:var(--space-10); }
2664
+ /* showLabels (14/10/2026): o nome embaixo de cada cor, como a escolha de tema da referência — a amostra, 4 abaixo o nome
2665
+ pequeno e apagado, que acende na escolhida; 12 entre os itens (a grade dela). O rótulo inteiro escolhe. O nome usa a
2666
+ menor letra da Aurea (12), e não os 10 da referência: a Aurea é de baixa visão. */
2667
+ .color-swatch-picker-labels { gap:var(--space-3); }
2668
+ .color-swatch-item { display:inline-grid; justify-items:center; gap:var(--space-1); cursor:pointer; }
2669
+ .color-swatch-name { color:var(--muted-foreground); font-size:var(--text-xs); font-weight:var(--weight-medium); line-height:var(--space-4); }
2670
+ .color-swatch-item:has(:checked) .color-swatch-name { color:var(--foreground); }
2671
+ .color-swatch-item:has(:disabled) { cursor:not-allowed; }
2672
+ @media (prefers-reduced-motion:reduce) { .color-swatch-option,.color-swatch-option > .color-swatch,.color-swatch-option::after,.color-swatch-indicator { transition:none; } }
2673
+ /* PROGRESSCIRCLE (0.32.0): o anel da referência — traço de 4 num quadro de 36, ponta redonda, começando no
2674
+ topo —, em 20 · 28 · 36. O trilho e as cores são as do `Progress`. Sem valor, gira. */
2675
+ .progress-circle { --progress-circle-size:calc(var(--space-6) + var(--space-1)); --progress-circle-fill:var(--primary); display:inline-flex; flex:none; inline-size:var(--progress-circle-size); block-size:var(--progress-circle-size); }
2676
+ .progress-circle > svg { inline-size:100%; block-size:100%; }
2677
+ .progress-circle-track,.progress-circle-fill { fill:none; stroke-width:4; }
2678
+ .progress-circle-track { stroke:var(--surface-3); }
2679
+ .progress-circle-fill { stroke:var(--progress-circle-fill); stroke-linecap:round; transform:rotate(-90deg); transform-box:fill-box; transform-origin:center; transition:stroke-dashoffset var(--duration-base) var(--ease-standard); }
2680
+ .progress-circle-sm { --progress-circle-size:var(--space-5); }
2681
+ .progress-circle-lg { --progress-circle-size:calc(var(--space-8) + var(--space-1)); }
2682
+ .progress-circle-neutral { --progress-circle-fill:var(--muted-foreground); }
2683
+ .progress-circle-success { --progress-circle-fill:var(--success-400); }
2684
+ .progress-circle-warning { --progress-circle-fill:var(--warning-400); }
2685
+ .progress-circle-danger { --progress-circle-fill:var(--danger-400); }
2686
+ .progress-circle-info { --progress-circle-fill:var(--info-400); }
2687
+ .progress-circle-indeterminate > svg { animation:spin 1s linear infinite; }
2688
+ @media (prefers-reduced-motion:reduce) { .progress-circle-indeterminate > svg { animation-duration:3s; } .progress-circle-fill { transition:none; } }
2689
+ /* TAGGROUP (0.32.0): as etiquetas da referência — 24 de altura (sm 20, lg 32), 8 dos lados (lg 10), letra
2690
+ de 12 peso médio (lg 14), ícone de 12, 4 entre as partes, 6 entre as etiquetas; o fundo neutro (ou o de
2691
+ cartão, `surface`), a escolhida no clarinho. O canto é a cápsula da Aurea. O anel de foco vai na
2692
+ etiqueta inteira, e não só no botão de dentro. */
2693
+ .tag-group { display:flex; flex-direction:column; gap:var(--space-1); }
2694
+ .tag-group-list { display:flex; flex-wrap:wrap; gap:calc(var(--space-1) + var(--space-05)); }
2695
+ .tag { display:inline-flex; align-items:center; gap:var(--space-1); min-block-size:var(--space-6); padding:0 var(--space-2); border-radius:var(--radius-full); background:var(--secondary); color:var(--secondary-foreground); font-size:var(--text-xs); font-weight:var(--weight-medium); line-height:var(--space-4); user-select:none; }
2696
+ .tag-main { display:inline-flex; align-items:center; gap:var(--space-1); padding:0; border:0; background:none; color:inherit; font:inherit; }
2697
+ button.tag-main { cursor:pointer; }
2698
+ .tag-main > .icon { --step-icon:var(--space-3); }
2699
+ .tag-label { white-space:nowrap; }
2700
+ .tag-sm { min-block-size:var(--space-5); }
2701
+ .tag-lg { min-block-size:var(--space-8); padding-inline:calc(var(--space-2) + var(--space-05)); font-size:var(--text-sm); line-height:var(--space-5); }
2702
+ .tag-surface { background:var(--card); color:var(--card-foreground); }
2703
+ @media (hover:hover) { .tag:has(> button.tag-main):not([data-selected]):not([data-disabled]):hover { background:var(--secondary-hover); } }
2704
+ .tag[data-selected] { background:color-mix(in oklab,var(--primary) 10%,var(--secondary)); color:var(--primary-emphasis); }
2705
+ .tag[data-disabled] { opacity:var(--opacity-disabled); }
2706
+ .tag-main:focus-visible { outline:none; }
2707
+ .tag:has(> .tag-main:focus-visible) { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
2708
+ .tag-remove { position:relative; display:inline-flex; align-items:center; justify-content:center; flex:none; inline-size:var(--space-3); block-size:var(--space-3); padding:0; border:0; border-radius:var(--radius-full); background:none; color:inherit; opacity:.7; cursor:pointer; }
2709
+ .tag-remove > .icon { --step-icon:var(--space-3); }
2710
+ .tag-remove:hover:not(:disabled) { opacity:1; }
2711
+ .tag-remove:disabled { cursor:not-allowed; }
2712
+ @media (pointer:coarse) { .tag-remove::before { content:""; position:absolute; inset:calc((var(--space-3) - var(--target-min)) / 2); border-radius:var(--radius-full); } }
2122
2713
  /* O container do grupo NUNCA teve regra: a sobreposição abaixo existia e os avatares empilhavam
2123
2714
  na vertical porque o pai saía `display:block`. Mesma falha do `.stepper` e do `.command`. */
2124
2715
  .avatar-group { display:inline-flex; align-items:center; }
@@ -2185,18 +2776,33 @@ img,svg { display:block; }
2185
2776
  .timeline > li > div { display:flex; flex-direction:column; gap:var(--space-05); min-width:0; }
2186
2777
  .timeline > li > div > p { margin:0; }
2187
2778
  .timeline-dot { flex:none; width:var(--space-3); height:var(--space-3); border-radius:var(--radius-full); margin-block-start:var(--space-1); background:var(--primary); box-shadow:0 0 0 var(--space-05) var(--surface-1); }
2188
- /* Accordion: anatomia medida numa das referências de desenho em 30/07/2026 (REFERENCES.md) — cabeçalho na altura de
2189
- controle, divisória de 1px por item, corpo com respiro pequeno em cima e grande embaixo.
2190
- O marcador é o NATIVO do <summary>: gira sozinho e custa zero código, e é por isso que o
2191
- summary continua `display:list-item` — pôr flex nele apagaria o marcador. */
2192
- .accordion { display:flex; flex-direction:column; border-block:1px solid var(--border); }
2193
- .accordion > details + details { border-top:1px solid var(--border); }
2194
- .accordion > details > summary { min-height:var(--control-h-md); padding-block:var(--space-2); padding-inline:var(--space-5) var(--space-2); color:var(--foreground); font-weight:var(--weight-medium); line-height:var(--leading-normal); cursor:pointer; }
2195
- .accordion > details > summary:hover { background:var(--surface-hover); }
2196
- .accordion > details > summary::marker { color:var(--muted-foreground); }
2197
- /* Recuo INLINE, não `padding-left`: o marcador do <summary> troca de lado em RTL e o corpo
2198
- tem de acompanhar. Foi o gate de RTL que cobrou — ele mede o eixo inline do core. */
2199
- .accordion-content { padding-block:0 var(--space-6); padding-inline:var(--space-5) var(--space-2); color:var(--muted-foreground); }
2779
+ /* ACCORDION (0.32.0) — o da referência, com o realce em CÁPSULA (decisão do Victor, 11/10/2026). Sem
2780
+ caixa em volta: um fio de 1 entre os itens, nenhum depois do último. A pergunta: 16 de todos os
2781
+ lados, 14 peso médio, a seta de 16 no FIM (esmaecida), que vira −180° ao abrir — o marcador do
2782
+ navegador sai (era ele que girava, no começo da linha). O realce do mouse só no item fechado: a cor
2783
+ do texto a 3%, em cápsula. A resposta: 14 esmaecida, 16 dos lados e embaixo. Recuo INLINE, não
2784
+ `padding-left`: em RTL a seta troca de lado e o corpo acompanha (o gate de RTL mede o eixo inline).
2785
+ `surface`: tudo num cartão, o fio a 94% (3% de cada lado) e o realce no cinza neutro. */
2786
+ .accordion { display:flex; flex-direction:column; }
2787
+ .accordion-item { position:relative; }
2788
+ .accordion-item::after { content:""; position:absolute; inset-inline-start:0; inset-block-end:0; inline-size:100%; block-size:var(--border-width); background:var(--border); }
2789
+ .accordion-item:last-child::after { content:none; }
2790
+ .accordion-item > summary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); padding:var(--space-4); border-radius:var(--radius-full); color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); line-height:var(--leading-normal); list-style:none; cursor:pointer; transition:background var(--duration-fast); }
2791
+ .accordion-item > summary::-webkit-details-marker { display:none; }
2792
+ .accordion-title { min-inline-size:0; }
2793
+ .accordion-item:not([open]) > summary:hover:not([aria-disabled="true"]) { background:color-mix(in oklab, var(--foreground) 3%, transparent); }
2794
+ .accordion-item > summary[aria-disabled="true"] { opacity:var(--opacity-disabled); cursor:not-allowed; }
2795
+ /* A seta é desenho do CSS por máscara, como a do `KPI` e a do aviso preso ao botão (12/10/2026). No
2796
+ passo 4 ela entrou como `<Icon>`, que busca o arquivo de ícones: quem usava só o `Accordion` — que
2797
+ abre sem JavaScript e não pedia arquivo nenhum — passou a ver um erro de rede e uma seta vazia (a
2798
+ prova A4 pegou). O desenho é o `caret-down` do Phosphor, o mesmo do arquivo, no mesmo tamanho. */
2799
+ .accordion-chevron { --accordion-glifo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E"); flex:none; inline-size:var(--icon-sm); block-size:var(--icon-sm); background:currentColor; color:var(--muted-foreground); -webkit-mask:var(--accordion-glifo) center/contain no-repeat; mask:var(--accordion-glifo) center/contain no-repeat; transition:transform var(--duration-fast) var(--ease-standard); }
2800
+ .accordion-item[open] > summary .accordion-chevron { transform:rotate(-180deg); }
2801
+ .accordion-content { padding-block:0 var(--space-4); padding-inline:var(--space-4); color:var(--muted-foreground); font-size:var(--text-sm); }
2802
+ .accordion-surface { border-radius:var(--radius-card); background:var(--card); }
2803
+ .accordion-surface > .accordion-item::after { inset-inline-start:3%; inline-size:94%; }
2804
+ .accordion-surface > .accordion-item:not([open]) > summary:hover:not([aria-disabled="true"]) { background:var(--secondary); }
2805
+ @media (prefers-reduced-motion:reduce) { .accordion-chevron { transition:none; } }
2200
2806
  /* Mockup do kit de origem (apps/docs) — não é o Accordion do sistema, que é <details> nativo. */
2201
2807
 
2202
2808
  /* QRCode: superfície flutuante Aurea, mas o miolo é de alto contraste FIXO — um QR
@@ -2222,9 +2828,26 @@ img,svg { display:block; }
2222
2828
  parado no canto. O comportamento é do core (aurea.js, [data-aurea-copy]); aqui só a pele.
2223
2829
  O check em amarelo é confirmação instantânea — dura 1,5s e volta ao ícone de copiar. */
2224
2830
  /* checkbox com rótulo fora da tela: sem o texto, o alvo é só a marca — nada de gap sobrando. */
2225
- .checkbox-bare { gap:0; }
2831
+ .checkbox-bare,.radio-bare,.switch-bare { gap:0; }
2832
+ /* A chave no fim (`indicatorPlacement="end"`): só a ordem do desenho; o campo continua antes da chave. */
2833
+ .switch-end > .switch-track { order:1; }
2226
2834
  .code-block-wrap { position:relative; display:flex; min-width:0; }
2227
2835
  .code-block-wrap > .code-block { flex:1; min-width:0; margin:0; }
2836
+ /* DOC-02 (0.32.0): a caixa de exemplo do site (`CodeBlock preview`), trazida para o core do jeito que
2837
+ ela é no site — o cartão sem recheio, a barra de abas com o segmentado ocupando a largura, a prévia
2838
+ no fundo afundado, centrada, e o código sem moldura (o cartão já é a moldura). A altura é do conteúdo;
2839
+ o site fixa a dele (`--demo-height`). */
2840
+ .code-preview { display:flex; flex-direction:column; block-size:var(--demo-height,auto); padding:0; overflow:hidden; }
2841
+ .demo-tabs { display:flex; padding:var(--space-2); border-bottom:var(--border-width) solid var(--border); }
2842
+ .demo-tabs .segmented { flex:1; display:flex; }
2843
+ .demo-tabs .segmented button { flex:1; }
2844
+ .demo-panel { flex:1; min-height:0; overflow:auto; padding:var(--space-6); }
2845
+ .demo-panel[hidden] { display:none; }
2846
+ .demo-panel[data-panel="preview"] { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:var(--space-4); background:var(--surface-inset); }
2847
+ .demo-panel[data-panel="preview"][hidden] { display:none; }
2848
+ .demo-code { display:flex; padding:0; overflow:hidden; }
2849
+ .demo-code .code-block-wrap { flex:1; }
2850
+ .demo-code .code-block { padding:var(--space-6); border:0; border-radius:0; }
2228
2851
  .copy-code { position:absolute; top:var(--space-3); inset-inline-end:var(--space-3); z-index:1; }
2229
2852
  .copy-code .c-done { display:none; }
2230
2853
  .copy-code.is-done .c-copy { display:none; } .copy-code.is-done .c-done { display:block; color:var(--primary); }
@@ -2232,7 +2855,11 @@ img,svg { display:block; }
2232
2855
  por isso é <nav> com rótulo, e o item atual se marca com aria-current. */
2233
2856
  .toc { position:sticky; top:var(--space-4); align-self:start; display:grid; gap:var(--space-1); max-height:calc(100vh - var(--space-8)); overflow:auto; padding:var(--space-2) 0; }
2234
2857
 
2235
- .toc-label { margin:0 0 var(--space-1); padding-inline:var(--space-3); color:var(--subtle-foreground); font-size:11px; letter-spacing:var(--tracking-widest); text-transform:uppercase; }
2858
+ /* O "On this page" é o da referência (ADR-0067): letra 14, peso normal, esmaecido, SEM maiúsculas, e o
2859
+ ícone de linhas ao lado — desenho do CSS por máscara (o `text-align-left` do Phosphor), para o sumário
2860
+ não passar a depender do arquivo de ícones. Era 11, em maiúsculas espaçadas. */
2861
+ .toc-label { display:flex; align-items:center; gap:var(--space-2); margin:0 0 var(--space-1); padding-inline:var(--space-3); color:var(--muted-foreground); font-size:var(--text-sm); }
2862
+ .toc-label-icon { --toc-glifo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M32,64a8,8,0,0,1,8-8H216a8,8,0,0,1,0,16H40A8,8,0,0,1,32,64Zm8,48H168a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Zm176,24H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Zm-48,40H40a8,8,0,0,0,0,16H168a8,8,0,0,0,0-16Z'/%3E%3C/svg%3E"); flex:none; inline-size:var(--icon-sm); block-size:var(--icon-sm); background:currentColor; -webkit-mask:var(--toc-glifo) center/contain no-repeat; mask:var(--toc-glifo) center/contain no-repeat; }
2236
2863
  .toc a { padding:var(--space-1) var(--space-3); border-inline-start:2px solid var(--border); color:var(--muted-foreground); font-size:var(--text-sm); text-decoration:none; }
2237
2864
  .toc a:hover { color:var(--foreground); }
2238
2865
  .toc a[aria-current] { border-inline-start-color:var(--primary); color:var(--foreground); }
@@ -2296,26 +2923,33 @@ img,svg { display:block; }
2296
2923
  APARECE (o motor conta com o CSS dele para escondê-lo, e nós não importamos o CSS dele). */
2297
2924
  .calendar { display:inline-block; padding:var(--space-3); border:1px solid var(--border); border-radius:var(--radius-card); background:var(--surface-1); }
2298
2925
  .calendar-months { position:relative; }
2299
- .calendar nav { position:absolute; inset-block-start:0; inset-inline:0; display:flex; justify-content:space-between; }
2300
- .calendar nav button { display:inline-flex; align-items:center; justify-content:center; width:var(--control-h-sm); height:var(--control-h-sm); padding:0; border:0; border-radius:var(--radius-control); background:transparent; color:var(--muted-foreground); cursor:pointer; }
2301
- .calendar nav button:hover:not(:disabled):not([aria-disabled="true"]) { background:var(--secondary); color:var(--foreground); }
2302
- .calendar nav button:disabled { opacity:.4; cursor:not-allowed; }
2926
+ /* 0.32.0, o calendário da referência, lido no CSS publicado dela: o mês no COMEÇO, em 14 peso médio, e as
2927
+ duas setas juntas no FIM, botões de 24 na cor de letra da marca; 16 até a grade; o nome do dia em 12
2928
+ peso médio esmaecido, com 8 embaixo; o dia de 36 redondo, em 14 peso médio; HOJE no clarinho (o "soft"
2929
+ dela), o escolhido no amarelo cheio, o de fora do mês esmaecido a meia força, o desligado riscado. */
2930
+ .calendar nav { position:absolute; inset-block-start:0; inset-inline-end:0; display:flex; }
2931
+ .calendar nav button { display:inline-flex; align-items:center; justify-content:center; width:var(--space-6); height:var(--space-6); padding:0; border:0; border-radius:var(--radius-full); background:transparent; color:var(--primary-emphasis); cursor:pointer; }
2932
+ .calendar nav button:hover:not(:disabled):not([aria-disabled="true"]) { background:var(--secondary); }
2933
+ .calendar nav button:active:not(:disabled):not([aria-disabled="true"]) { transform:scale(.95); }
2934
+ .calendar nav button:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
2303
2935
  .calendar nav svg { width:var(--icon-sm); height:var(--icon-sm); fill:currentColor; }
2304
- .calendar-caption { display:flex; align-items:center; justify-content:center; height:var(--control-h-sm); color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
2936
+ .calendar-caption { display:flex; align-items:center; justify-content:flex-start; height:var(--space-6); padding-inline-start:var(--space-05); color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
2305
2937
  /* Estas três já foram um DESFAZIMENTO: `width:auto`, `min-width:0`, `height:auto` e
2306
2938
  `border-bottom:0` existiam só para anular a regra de elemento da seção de dados. A regra foi
2307
2939
  escopada em 02/08/2026 e o antídoto saiu junto — corrigir onde nasce, não onde dói.
2308
2940
  O `padding:0` FICA, e não é antídoto: é o 1px que o NAVEGADOR dá a `<td>`/`<th>`. Tirá-lo
2309
2941
  junto com o resto engordou a célula para 38px e a grade para 266px — medido, e voltado. */
2310
- .calendar table { border-collapse:collapse; margin-block-start:var(--space-2); }
2311
- .calendar th { padding:0 0 var(--space-1); text-align:center; color:var(--muted-foreground); font-size:var(--text-xs); font-weight:var(--weight-regular); }
2942
+ .calendar table { border-collapse:collapse; margin-block-start:var(--space-4); }
2943
+ .calendar th { padding:0 0 var(--space-2); text-align:center; color:var(--muted-foreground); font-size:var(--text-xs); font-weight:var(--weight-medium); }
2312
2944
  .calendar td { padding:0; text-align:center; }
2313
- .calendar td button { display:flex; align-items:center; justify-content:center; width:var(--control-h-md); height:var(--control-h-md); border:0; border-radius:var(--radius-control); background:transparent; color:var(--foreground); font-size:var(--text-sm); font-variant-numeric:tabular-nums; cursor:pointer; }
2945
+ .calendar td button { display:flex; align-items:center; justify-content:center; width:var(--control-h-md); height:var(--control-h-md); border:0; border-radius:var(--radius-full); background:transparent; color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); font-variant-numeric:tabular-nums; cursor:pointer; }
2314
2946
  .calendar td button:hover:not(:disabled):not([aria-disabled="true"]) { background:var(--secondary); }
2315
- .calendar td[data-today] button { font-weight:var(--weight-medium); box-shadow:inset 0 0 0 1px var(--border-strong); }
2316
- .calendar td[data-selected] button { background:var(--primary); color:var(--primary-foreground); font-weight:var(--weight-medium); box-shadow:none; }
2317
- .calendar td[data-outside] button { color:var(--subtle-foreground); }
2318
- .calendar td button:disabled { opacity:.35; cursor:not-allowed; }
2947
+ .calendar td button:active:not(:disabled):not([aria-disabled="true"]) { transform:scale(.95); }
2948
+ .calendar td[data-today] button { background:color-mix(in oklab,var(--primary) 10%,var(--secondary)); color:var(--primary-emphasis); }
2949
+ .calendar td[data-selected] button { background:var(--primary); color:var(--primary-foreground); }
2950
+ .calendar td[data-outside] button { color:var(--muted-foreground); opacity:.5; }
2951
+ .calendar td[data-selected][data-outside] button { background:var(--secondary); color:var(--muted-foreground); }
2952
+ .calendar td button:disabled { opacity:var(--opacity-disabled); text-decoration:line-through; cursor:not-allowed; }
2319
2953
  .calendar td[data-hidden] { visibility:hidden; }
2320
2954
  .message { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; } .message-bubble { padding:12px 14px; border-radius:6px var(--radius-lg) var(--radius-lg) var(--radius-lg); background:var(--secondary); } .message-bubble p { margin:0; }
2321
2955
  /* Chat React (Fase 5.4): estrutura fixa em classe, não inline (auditoria 18/07, M14). */
@@ -2493,20 +3127,31 @@ img,svg { display:block; }
2493
3127
  token: a escala de letras é a dela desde a ADR-0050, a entrelinha do texto é `--leading-relaxed`
2494
3128
  (27, 24 e 20px, contra os 28, 24 e 20 dela) e o código reusa a pele do `code` do `.prose`.
2495
3129
  A margem vai a zero porque `h1`…`h6` e `p` trazem a do navegador; o espaço entre blocos é de
2496
- quem os empilha (`Stack`), não do texto. */
3130
+ quem os empilha (`Stack`), não do texto.
3131
+ 0.32.0: a entrelinha do título passa a ser a de CADA tamanho, como na escala publicada dela
3132
+ (40 · 36 · 32 · 28 · 28 · 24); até aqui era 1,2 em todos (43 · 36 · 29 · 24 · 22 · 19). */
2497
3133
  .typography { margin:0; color:var(--foreground); }
2498
- .typography-h1,.typography-h2,.typography-h3,.typography-h4,.typography-h5,.typography-h6 { font-family:var(--font-heading); font-weight:var(--weight-semibold); line-height:var(--leading-tight); letter-spacing:var(--tracking-tight); }
2499
- .typography-h1 { font-size:var(--text-4xl); }
2500
- .typography-h2 { font-size:var(--text-3xl); }
2501
- .typography-h3 { font-size:var(--text-2xl); }
2502
- .typography-h4 { font-size:var(--text-xl); }
2503
- .typography-h5 { font-size:var(--text-lg); }
2504
- .typography-h6 { font-size:var(--text-base); }
3134
+ .typography-h1,.typography-h2,.typography-h3,.typography-h4,.typography-h5,.typography-h6 { font-family:var(--font-heading); font-weight:var(--weight-semibold); letter-spacing:var(--tracking-tight); }
3135
+ .typography-h1 { font-size:var(--text-4xl); line-height:var(--text-4xl-leading); }
3136
+ .typography-h2 { font-size:var(--text-3xl); line-height:var(--text-3xl-leading); }
3137
+ .typography-h3 { font-size:var(--text-2xl); line-height:var(--text-2xl-leading); }
3138
+ .typography-h4 { font-size:var(--text-xl); line-height:var(--text-xl-leading); }
3139
+ .typography-h5 { font-size:var(--text-lg); line-height:var(--text-lg-leading); }
3140
+ .typography-h6 { font-size:var(--text-base); line-height:var(--leading-normal); }
2505
3141
  .typography-body { font-size:var(--text-base); line-height:var(--leading-relaxed); }
2506
3142
  .typography-body-sm { font-size:var(--text-sm); line-height:var(--leading-relaxed); }
2507
3143
  .typography-body-xs { font-size:var(--text-xs); line-height:var(--leading-relaxed); }
2508
3144
  .typography-code { padding:var(--space-05) var(--space-1); border-radius:var(--radius-xs); background:var(--surface-2); font-family:var(--font-code); font-size:var(--text-sm); }
2509
3145
  .typography-muted { color:var(--muted-foreground); }
3146
+ /* DOC-11 (0.32.0): o `tone` do nativo, na web. `link` é o amarelo de escrever; `primary`, o de
3147
+ preencher (no claro quase some, como no nativo); as cores de estado, o par `-400` (ADR-0061). */
3148
+ .typography-tone-subtle { color:var(--subtle-foreground); }
3149
+ .typography-tone-primary { color:var(--primary); }
3150
+ .typography-tone-link { color:var(--link); }
3151
+ .typography-tone-danger { color:var(--danger-400); }
3152
+ .typography-tone-success { color:var(--success-400); }
3153
+ .typography-tone-warning { color:var(--warning-400); }
3154
+ .typography-tone-info { color:var(--info-400); }
2510
3155
  .typography-weight-normal { font-weight:var(--weight-regular); }
2511
3156
  .typography-weight-medium { font-weight:var(--weight-medium); }
2512
3157
  .typography-weight-semibold { font-weight:var(--weight-semibold); }
@@ -2540,11 +3185,11 @@ img,svg { display:block; }
2540
3185
  .prose { max-width:var(--prose-measure,68ch); font-size:var(--text-base); line-height:var(--leading-relaxed); }
2541
3186
  .prose > * + * { margin-block-start:var(--space-4); }
2542
3187
  .prose > h2,.prose > h3,.prose > h4 { margin-block-start:var(--space-8); }
2543
- .prose h1,.prose h2,.prose h3,.prose h4 { line-height:var(--leading-tight); font-weight:var(--weight-semibold); }
2544
- .prose h1 { font-size:var(--text-3xl); }
2545
- .prose h2 { font-size:var(--text-2xl); }
2546
- .prose h3 { font-size:var(--text-xl); }
2547
- .prose h4 { font-size:var(--text-lg); }
3188
+ .prose h1,.prose h2,.prose h3,.prose h4 { font-weight:var(--weight-semibold); }
3189
+ .prose h1 { font-size:var(--text-3xl); line-height:var(--text-3xl-leading); }
3190
+ .prose h2 { font-size:var(--text-2xl); line-height:var(--text-2xl-leading); }
3191
+ .prose h3 { font-size:var(--text-xl); line-height:var(--text-xl-leading); }
3192
+ .prose h4 { font-size:var(--text-lg); line-height:var(--text-lg-leading); }
2548
3193
  .prose blockquote { margin-inline:0; padding-inline-start:var(--space-4); border-inline-start:2px solid var(--border-strong); color:var(--muted-foreground); }
2549
3194
  .prose ul,.prose ol { padding-inline-start:var(--space-6); }
2550
3195
  .prose li + li { margin-block-start:var(--space-2); }
@@ -2634,40 +3279,131 @@ img,svg { display:block; }
2634
3279
  .icon-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; }
2635
3280
  .icon-tile { min-height:86px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:12px; padding:13px; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--secondary); color:var(--muted-foreground); cursor:pointer; text-align:start; transition:transform var(--duration-fast) var(--ease-standard),border-color var(--duration-fast),color var(--duration-fast); }
2636
3281
  @media (hover:hover) and (pointer:fine) { .icon-tile:hover { color:var(--foreground); border-color:var(--primary); transform:translateY(-1px); } } .icon-tile:focus-visible { color:var(--foreground); border-color:var(--primary); } .icon-tile span { overflow:hidden; max-width:100%; text-overflow:ellipsis; white-space:nowrap; font:11px var(--font-code); }
2637
- .dialog-backdrop { position:fixed; inset:0; z-index:var(--z-modal); background:var(--overlay); backdrop-filter:blur(5px); }
2638
- .dialog { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); z-index:var(--z-modal); width:min(28rem,calc(100vw - 40px)); max-height:calc(100vh - 40px); overflow:auto; padding:24px; border:1px solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); }
3282
+ /* JANELAS (0.32.0): o Dialog, o ConfirmDialog e o Drawer com a anatomia da referência, lida no CSS
3283
+ PUBLICADO dela — recheio de 24; o X a 16 do topo e do fim; o cabeçalho em coluna (o ícone num círculo
3284
+ de 40 em cima, 12 até o título de 16, peso médio); o corpo de 14/20 esmaecido, que é o que rola; 8
3285
+ entre o cabeçalho e o corpo e 20 antes do rodapé; o rodapé ao fim, com 8 entre os botões. Da tela, a
3286
+ janela guarda 16 no celular e 40 de 640 para cima. Entra crescendo de 0,95 a 1 e sai encolhendo, como
3287
+ a dela. A borda continua (a dela é só sombra no claro): baixa visão, como nas outras janelas.
3288
+ O que já rolava (a janela inteira) passou para o corpo — a ficha prometia isso desde sempre. */
3289
+ .dialog-backdrop { position:fixed; inset:0; z-index:var(--z-modal); background:var(--overlay); backdrop-filter:blur(5px); transition:opacity var(--duration-slow) var(--ease-standard); }
3290
+ .dialog-backdrop[data-starting-style],.dialog-backdrop[data-ending-style] { opacity:0; }
3291
+ .dialog-backdrop[data-ending-style] { transition-duration:var(--duration-fast); }
3292
+ .dialog { --dialog-margin:var(--space-4); --dialog-w:28rem; position:fixed; inset-inline:0; top:50%; translate:0 -50%; z-index:var(--z-modal); display:flex; flex-direction:column; inline-size:min(var(--dialog-w),calc(100vw - 2 * var(--dialog-margin))); max-block-size:calc(100dvh - 2 * var(--dialog-margin)); margin-inline:auto; padding:var(--space-6); border:var(--border-width) solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); outline:none; transition:opacity var(--duration-slow) var(--ease-standard),scale var(--duration-slow) var(--ease-standard); }
3293
+ .dialog[data-starting-style] { opacity:0; scale:1.05; }
3294
+ .dialog[data-ending-style] { opacity:0; scale:.95; transition-duration:var(--duration-fast); }
3295
+ @media (min-width:640px) { .dialog { --dialog-margin:var(--space-10); } }
3296
+ /* `placement` (o dela): `auto` senta a janela EMBAIXO no celular, onde o polegar alcança, e no meio de
3297
+ 640 para cima. Sem o atributo (a marcação pura), a janela fica no meio, como sempre ficou. */
3298
+ .dialog[data-placement="top"] { top:var(--dialog-margin); translate:none; }
3299
+ .dialog[data-placement="bottom"] { top:auto; bottom:var(--dialog-margin); translate:none; }
3300
+ @media (max-width:639.98px) { .dialog[data-placement="auto"] { top:auto; bottom:var(--dialog-margin); translate:none; } }
2639
3301
  /* size (B-03), decisão do Victor em 24/09/2026: as quatro larguras da referência — as do
2640
3302
  pacote de estilos dela, 20/24/28/32rem = 320/384/448/512 — mais 1024
2641
3303
  (o token --breakpoint-lg) e a tela cheia. O padrão passou a ser o `md` da referência, 448; até a 0.8.14
2642
3304
  era 560. */
2643
- .dialog-xs { width:min(20rem,calc(100vw - 40px)); }
2644
- .dialog-sm { width:min(24rem,calc(100vw - 40px)); }
2645
- .dialog-lg { width:min(32rem,calc(100vw - 40px)); }
2646
- .dialog-xl { width:min(var(--breakpoint-lg),calc(100vw - 40px)); }
2647
- .dialog-full { width:calc(100vw - 40px); height:calc(100vh - 40px); }
2648
- .dialog>header,.drawer>header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; } .dialog-body { display:grid; gap:14px; }
3305
+ .dialog-xs { --dialog-w:20rem; }
3306
+ .dialog-sm { --dialog-w:24rem; }
3307
+ .dialog-lg { --dialog-w:32rem; }
3308
+ .dialog-xl { --dialog-w:var(--breakpoint-lg); }
3309
+ .dialog-full { --dialog-w:100vw; block-size:calc(100dvh - 2 * var(--dialog-margin)); }
3310
+ /* As partes, as mesmas no Dialog, no ConfirmDialog e no Drawer. O corpo guarda, dos lados e em cima e
3311
+ embaixo, o espaço do anel de foco (a largura e o afastamento dele): é ele que rola, e o que rola corta
3312
+ o anel de quem encosta na borda — a referência faz a mesma conta, com 3. */
3313
+ /* 16 da borda de FORA, como a dela (que não tem borda): o absoluto conta de dentro da borda de 1. */
3314
+ .dialog-close { position:absolute; inset-block-start:calc(var(--space-4) - var(--border-width)); inset-inline-end:calc(var(--space-4) - var(--border-width)); }
3315
+ .dialog-header { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-3); }
3316
+ .dialog-heading { margin:0; padding-inline-end:var(--space-6); color:var(--popover-foreground); font-size:var(--text-base); font-weight:var(--weight-medium); line-height:var(--leading-normal); text-wrap:balance; }
3317
+ .dialog-icon { display:inline-flex; flex:none; align-items:center; justify-content:center; inline-size:var(--space-10); block-size:var(--space-10); border-radius:var(--radius-full); background:var(--secondary); color:var(--foreground); }
3318
+ .dialog-icon > .icon { --step-icon:var(--icon-md); }
3319
+ .dialog-icon-brand { background:color-mix(in oklab,var(--primary) 10%,var(--secondary)); color:var(--primary-emphasis); }
3320
+ .dialog-icon-info { background:var(--info-bg); color:var(--info-400); }
3321
+ .dialog-icon-success { background:var(--success-bg); color:var(--success-400); }
3322
+ .dialog-icon-warning { background:var(--warning-bg); color:var(--warning-400); }
3323
+ .dialog-icon-danger { background:var(--danger-bg); color:var(--danger-400); }
3324
+ .dialog-body { --dialog-ring:calc(var(--focus-width) + var(--focus-offset)); display:grid; gap:14px; flex:1 1 auto; min-block-size:0; overflow-y:auto; overscroll-behavior:contain; margin-inline:calc(-1 * var(--dialog-ring)); padding:var(--dialog-ring); color:var(--muted-foreground); font-size:var(--text-sm); line-height:var(--space-5); }
3325
+ .dialog-header + .dialog-body { margin-block-start:calc(var(--space-2) - var(--dialog-ring)); }
3326
+ .dialog-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:var(--space-2); }
3327
+ .dialog-body + .dialog-footer { margin-block-start:calc(var(--space-5) - var(--dialog-ring)); }
3328
+ .dialog-header + .dialog-footer { margin-block-start:var(--space-5); }
2649
3329
  /* O ConfirmDialog é o MESMO `.dialog` — não nasce uma segunda superfície flutuante, que seria a
2650
3330
  pele divergindo como divergiu entre `.table-wrap` e `.table-region`. O que muda é a caixa mais
2651
- estreita (uma frase e dois botões não precisam da largura do Dialog) e o rodapé alinhado ao fim, com o
2652
- destrutivo por último: a ordem visual é cancelar → agir, e é onde as quatro referências batem. */
2653
- .dialog-confirm { width:min(420px,calc(100vw - 40px)); }
2654
- .dialog-confirm>footer { display:flex; justify-content:flex-end; gap:var(--space-2); margin-block-start:var(--space-5); }
3331
+ estreita (uma frase e dois botões não precisam da largura do Dialog), com o destrutivo por último no
3332
+ rodapé: a ordem visual é cancelar → agir, e é onde as quatro referências batem. */
3333
+ .dialog-confirm { --dialog-w:26.25rem; }
2655
3334
  .drawer-wrap { position:fixed; inset:0; z-index:var(--z-drawer); display:none; background:var(--overlay); } .drawer-wrap.open { display:block; }
2656
- .drawer-backdrop { position:fixed; inset:0; z-index:var(--z-drawer); background:var(--overlay); }
2657
- .drawer { position:fixed; top:0; bottom:0; z-index:var(--z-drawer); width:min(480px,92vw); padding:24px; background:var(--surface-1); box-shadow:var(--shadow-lg); overflow:auto; } .drawer-right { right:0; border-left:1px solid var(--border); } .drawer-left { left:0; border-right:1px solid var(--border); }
2658
- .toast-stack { position:fixed; inset-inline-end:22px; bottom:22px; z-index:var(--z-toast); width:min(360px,calc(100vw - 44px)); display:flex; flex-direction:column; gap:10px; } .toast { display:flex; align-items:center; gap:11px; padding:14px; border:1px solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-md); transition:opacity .28s var(--ease-standard), transform .28s var(--ease-emphasized); } .toast>:first-child { flex:1; min-width:0; } .toast-text { display:flex; flex-direction:column; gap:2px; min-width:0; } .toast[data-starting-style],.toast[data-ending-style] { opacity:0; transform:translateY(12px); }
2659
- /* As quatro faces do `AureaToastType`, escritas em 16/08/2026 — elas NÃO existiam, e o tipo
2660
- publicado não pintava nada. O `system.tsx` emite `toast-${t.type}` desde sempre; classe por
2661
- template é o ponto CEGO do check 18, que só enxerga classe literal — o mesmo defeito que o
2662
- `log-${level}` já tinha tido. Varridos os 18 padrões dinâmicos do pacote React: este era o
2663
- ÚNICO órfão (o `ev-${e.id}` do agents.tsx é `id`, não classe).
2664
- Mecanismo REUSADO do .alert/.banner, não inventado: borda tingida + fundo semântico. Vêm
2665
- DEPOIS da base `.toast` de propósito — mesma especificidade, a última regra vence, e é a
2666
- armadilha que o comentário do .banner já registrava lá em cima. */
2667
- .toast-info { border-color:color-mix(in srgb,var(--info-400) 38%,var(--border)); background:var(--info-bg); }
2668
- .toast-success { border-color:color-mix(in srgb,var(--success-400) 38%,var(--border)); background:var(--success-bg); }
2669
- .toast-warning { border-color:color-mix(in srgb,var(--warning-400) 38%,var(--border)); background:var(--warning-bg); }
2670
- .toast-danger { border-color:color-mix(in srgb,var(--danger-400) 38%,var(--border)); background:var(--danger-bg); }
3335
+ /* DRAWER (0.32.0): a gaveta da referência nos quatro lados, no motor de gaveta do Base UI, que arrasta
3336
+ para fechar. Laterais de 320 (384 de 640 para cima, nunca mais que 85% da tela); a de cima e a de
3337
+ baixo, a largura toda e até 85% da altura, com a alça de 36 × 4. Os cantos são da Aurea: 22 do lado de
3338
+ dentro nas laterais (a dela é quadrada) e o 32 da folha na de cima e na de baixo (ADR-0058). Enquanto
3339
+ o dedo arrasta, a gaveta segue o dedo (as variáveis do motor) e o fundo clareia junto. */
3340
+ .drawer-backdrop { position:fixed; inset:0; z-index:var(--z-drawer); background:var(--overlay); opacity:calc(1 - var(--drawer-swipe-progress,0)); transition:opacity var(--duration-slow) var(--ease-emphasized); }
3341
+ .drawer-backdrop[data-starting-style],.drawer-backdrop[data-ending-style] { opacity:0; }
3342
+ .drawer-backdrop[data-swiping] { transition-duration:0ms; }
3343
+ .drawer-viewport { position:fixed; inset:0; z-index:var(--z-drawer); }
3344
+ .drawer { position:fixed; z-index:var(--z-drawer); display:flex; flex-direction:column; padding:var(--space-6); border:0 solid var(--border); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); outline:none; overscroll-behavior:contain; transition:transform var(--duration-slow) var(--ease-emphasized); }
3345
+ .drawer[data-swiping] { transition-duration:0ms; }
3346
+ .drawer[data-ending-style] { transition-duration:calc(var(--drawer-swipe-strength,1) * var(--duration-slow)); }
3347
+ .drawer-left,.drawer-right { top:0; bottom:0; inline-size:min(20rem,85vw); transform:translateX(var(--drawer-swipe-movement-x,0px)); }
3348
+ @media (min-width:640px) { .drawer-left,.drawer-right { inline-size:min(24rem,85vw); } }
3349
+ .drawer-right { right:0; border-left-width:var(--border-width); border-radius:var(--radius-card) 0 0 var(--radius-card); }
3350
+ .drawer-left { left:0; border-right-width:var(--border-width); border-radius:0 var(--radius-card) var(--radius-card) 0; }
3351
+ .drawer-top,.drawer-bottom { left:0; right:0; max-block-size:85dvh; transform:translateY(var(--drawer-swipe-movement-y,0px)); }
3352
+ .drawer-bottom { bottom:0; border-top-width:var(--border-width); border-radius:var(--radius-sheet) var(--radius-sheet) 0 0; padding-block-end:calc(var(--space-6) + env(safe-area-inset-bottom,0px)); }
3353
+ .drawer-top { top:0; border-bottom-width:var(--border-width); border-radius:0 0 var(--radius-sheet) var(--radius-sheet); padding-block:calc(var(--space-6) + env(safe-area-inset-top,0px)) var(--space-2); }
3354
+ .drawer-right[data-starting-style],.drawer-right[data-ending-style] { transform:translateX(100%); }
3355
+ .drawer-left[data-starting-style],.drawer-left[data-ending-style] { transform:translateX(-100%); }
3356
+ .drawer-bottom[data-starting-style],.drawer-bottom[data-ending-style] { transform:translateY(100%); }
3357
+ .drawer-top[data-starting-style],.drawer-top[data-ending-style] { transform:translateY(-100%); }
3358
+ .drawer-handle { flex:none; align-self:center; inline-size:calc(var(--space-8) + var(--space-1)); block-size:var(--space-1); border-radius:var(--radius-full); background:var(--border-strong); }
3359
+ .drawer-bottom > .drawer-handle { margin-block-end:var(--space-2); }
3360
+ .drawer-top > .drawer-handle { margin-block-start:var(--space-2); }
3361
+ /* TOAST (0.32.0): o aviso da referência, lido no CSS e no código publicados dela, sobre a pilha do
3362
+ motor (as variáveis `--toast-*` do Base UI). Os avisos moram todos no mesmo lugar: o da frente
3363
+ inteiro, os de trás 12 acima e 5% menores a cada um, com o conteúdo apagado; passar o mouse ou o
3364
+ foco abre a pilha, com 12 entre eles. Embaixo no meio por padrão (o dela), 460 de largura de 640
3365
+ para cima e a tela menos 16 de cada lado no celular. `--toast-dir` é o sentido da pilha: para cima
3366
+ quando ela mora embaixo, para baixo quando mora em cima. */
3367
+ .toast-stack { --toast-gap:var(--space-3); --toast-dir:-1; position:fixed; z-index:var(--z-toast); inset-block-end:var(--space-4); inset-inline:0; inline-size:min(28.75rem,calc(100vw - 2 * var(--space-4))); margin-inline:auto; outline:none; }
3368
+ .toast-stack:is(.toast-stack-top,.toast-stack-top-start,.toast-stack-top-end) { --toast-dir:1; inset-block:var(--space-4) auto; }
3369
+ .toast-stack:is(.toast-stack-bottom-start,.toast-stack-top-start) { inset-inline:var(--space-4) auto; margin-inline:0; }
3370
+ .toast-stack:is(.toast-stack-bottom-end,.toast-stack-top-end) { inset-inline:auto var(--space-4); margin-inline:0; }
3371
+ .toast { position:absolute; inset-inline:0; bottom:0; z-index:calc(1000 - var(--toast-index,0)); box-sizing:border-box; block-size:var(--toast-frontmost-height,var(--toast-height,auto)); padding:var(--space-3) var(--space-4); border:var(--border-width) solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-md); user-select:none; transform-origin:50% 100%; transform:translateX(var(--toast-swipe-movement-x,0px)) translateY(calc(var(--toast-swipe-movement-y,0px) + var(--toast-dir) * var(--toast-index,0) * var(--toast-gap))) scale(calc(1 - var(--toast-index,0) * .05)); transition:transform var(--duration-slow) var(--ease-emphasized),opacity var(--duration-slow) var(--ease-standard),block-size var(--duration-fast) var(--ease-standard); }
3372
+ .toast-stack:is(.toast-stack-top,.toast-stack-top-start,.toast-stack-top-end) .toast { top:0; bottom:auto; transform-origin:50% 0; }
3373
+ .toast[data-expanded] { block-size:var(--toast-height,auto); transform:translateX(var(--toast-swipe-movement-x,0px)) translateY(calc(var(--toast-swipe-movement-y,0px) + var(--toast-dir) * (var(--toast-offset-y,0px) + var(--toast-index,0) * var(--toast-gap)))); }
3374
+ .toast[data-starting-style],.toast[data-ending-style] { transform:translateY(calc(-1 * var(--toast-dir) * 150%)); }
3375
+ .toast[data-limited],.toast[data-ending-style] { opacity:0; }
3376
+ .toast[data-ending-style][data-swipe-direction="right"] { transform:translateX(calc(var(--toast-swipe-movement-x,0px) + 150%)); }
3377
+ .toast[data-ending-style][data-swipe-direction="up"] { transform:translateY(calc(var(--toast-swipe-movement-y,0px) - 150%)); }
3378
+ .toast[data-ending-style][data-swipe-direction="down"] { transform:translateY(calc(var(--toast-swipe-movement-y,0px) + 150%)); }
3379
+ /* A ponte entre dois avisos abertos: sem ela, o mouse que passa pelo vão de 12 sai da pilha e ela fecha. */
3380
+ .toast::after { content:""; position:absolute; inset-inline:0; top:100%; block-size:calc(var(--toast-gap) + var(--border-width)); }
3381
+ .toast-stack:is(.toast-stack-top,.toast-stack-top-start,.toast-stack-top-end) .toast::after { top:auto; bottom:100%; }
3382
+ .toast-content { display:flex; align-items:flex-start; gap:calc(var(--space-1) + var(--space-05)); block-size:100%; overflow:hidden; transition:opacity var(--duration-base) var(--ease-standard); }
3383
+ .toast-content[data-behind] { opacity:0; }
3384
+ .toast-content[data-expanded] { opacity:1; }
3385
+ .toast-indicator { display:inline-flex; flex:none; align-items:center; justify-content:center; inline-size:var(--space-6); block-size:var(--space-6); color:var(--popover-foreground); }
3386
+ .toast-indicator > .icon { --step-icon:var(--icon-sm); }
3387
+ .toast-text { display:flex; flex:1 1 0; flex-direction:column; align-self:center; min-inline-size:0; }
3388
+ .toast-title { color:var(--popover-foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); line-height:var(--space-5); }
3389
+ .toast-description { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); line-height:var(--space-5); }
3390
+ .toast-action { flex:none; align-self:center; }
3391
+ /* No celular a ação desce para baixo do texto, alinhada com ele — como a dela. */
3392
+ @media (max-width:639.98px) { .toast-content { flex-wrap:wrap; } .toast-text { flex-basis:calc(100% - var(--space-6) - var(--space-1) - var(--space-05)); } .toast-action { margin-inline-start:calc(var(--space-6) + var(--space-1) + var(--space-05)); } }
3393
+ /* As faces do tipo (desde 16/08/2026 elas pintam; o check 18 não enxerga classe por template). Em
3394
+ 0.32.0 o tipo deixou de tingir o fundo e a borda: pinta o ícone e o título, no par `-400` da
3395
+ ADR-0061, como o aviso da referência. */
3396
+ .toast-info :is(.toast-indicator,.toast-title) { color:var(--info-400); }
3397
+ .toast-success :is(.toast-indicator,.toast-title) { color:var(--success-400); }
3398
+ .toast-warning :is(.toast-indicator,.toast-title) { color:var(--warning-400); }
3399
+ .toast-danger :is(.toast-indicator,.toast-title) { color:var(--danger-400); }
3400
+ /* O X do aviso: o `CloseButton` de 20 com o X de 12, na quina, com borda. Aparece com o mouse ou o
3401
+ foco no aviso da frente (ou na pilha aberta); no toque, fica sempre à vista. */
3402
+ .toast-close.close-button { position:absolute; inset-block-start:calc(-1 * var(--space-1)); inset-inline-end:calc(-1 * var(--space-1)); inline-size:var(--space-5); block-size:var(--space-5); border:var(--border-width) solid var(--border); background:var(--popover); opacity:0; pointer-events:none; transition:opacity var(--duration-fast) var(--ease-standard); }
3403
+ .toast-close.close-button .icon { --step-icon:var(--space-3); }
3404
+ :is(.toast[data-expanded],.toast:has(> .toast-content:not([data-behind]))):is(:hover,:focus-within) > .toast-close { opacity:1; pointer-events:auto; }
3405
+ @media (hover:none) { :is(.toast[data-expanded],.toast:has(> .toast-content:not([data-behind]))) > .toast-close { opacity:1; pointer-events:auto; } }
3406
+ @media (pointer:coarse) { .toast-close.close-button::before { inset:calc((var(--space-5) - var(--target-min)) / 2); } }
2671
3407
  /* GAR-14 (0.28.0): o aviso do `Button share`, preso ao botão — "Link copiado", ou o erro com o link à
2672
3408
  mostra. Tem a medida do botão (a altura, o recheio da regra de cima, a letra e a cápsula) e a pele
2673
3409
  do aviso de sempre. O ícone é desenho de máscara, como a seta do `KPI`: a mesma marcação serve ao
@@ -2681,6 +3417,12 @@ img,svg { display:block; }
2681
3417
  .toast-anchored-stack { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-2); inline-size:max-content; max-inline-size:calc(100vw - 2 * var(--space-4)); }
2682
3418
  .toast-anchored-link { inline-size:100%; }
2683
3419
  .toast-anchored-fixed { position:fixed; z-index:var(--z-toast); }
3420
+ /* A CAMADA DAS JANELINHAS mora no POSICIONADOR (15/10/2026). Ela estava na caixa de dentro (`.popover`, `.menu`,
3421
+ `.tooltip`…), que é estática — e `z-index` em caixa estática não vale. Quem flutua é o posicionador do motor (o
3422
+ `absolute`), e sem camada ele ficava por baixo de qualquer peça posicionada com camada: o topo fixo do site (20)
3423
+ cortava a borda de cima da escolha de tema (o Victor viu: "a caixa dos temas continua cortando"). Agora todo
3424
+ posicionador leva a classe `positioner`, na camada que as caixas já pediam. */
3425
+ .positioner { z-index:var(--z-modal); }
2684
3426
  .toast-anchored-positioner { z-index:var(--z-toast); }
2685
3427
  /* CommandPaletteShell (Fase 11, achado A13). A superfície já existia aqui sob o nome
2686
3428
  `.command` — e `.command` é chrome da página de docs manual: nenhum componente React a
@@ -2692,8 +3434,27 @@ img,svg { display:block; }
2692
3434
  .command-overlay { position:fixed; inset:0; z-index:var(--z-modal); display:grid; place-items:start center; padding:var(--space-16) var(--space-5) var(--space-5); background:var(--overlay); backdrop-filter:blur(5px); }
2693
3435
  .command-palette { display:grid; gap:var(--space-2); width:min(680px,100%); max-height:100%; overflow:auto; padding:var(--space-4); border:1px solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); }
2694
3436
  /* Camadas flutuantes (Base UI): tooltip, popover, menu. z-modal para funcionarem sobre diálogos; empilhamento mútuo pela ordem do portal no DOM. */
2695
- .tooltip { z-index:var(--z-modal); max-width:260px; padding:6px 10px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface-inset); color:var(--foreground); font-size:var(--text-xs); line-height:var(--leading-normal); box-shadow:var(--shadow-md); }
2696
- .popover { z-index:var(--z-modal); min-width:220px; max-width:min(360px,calc(100vw - 32px)); padding:16px; border:1px solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); display:grid; gap:10px; }
3437
+ /* 0.32.0, a dica da referência: recheio de 8, letra de 12/16, até 320 de largura, o fundo das janelas
3438
+ (era o fundo afundado), e a palavra longa quebra onde precisar. O canto continua o 10 da Aurea (o
3439
+ dela é 12, que a nossa escala não tem). Entra crescendo de 0,9 e sai encolhendo; pelo teclado, e
3440
+ quando passa de uma dica para a vizinha, entra sem animação (`data-instant` do motor). */
3441
+ .tooltip { z-index:var(--z-modal); max-inline-size:min(20rem,calc(100vw - 2 * var(--space-4))); padding:var(--space-2); border:var(--border-width) solid var(--border); border-radius:var(--radius-md); background:var(--popover); color:var(--popover-foreground); font-size:var(--text-xs); line-height:var(--space-4); overflow-wrap:anywhere; box-shadow:var(--shadow-md); transform-origin:var(--transform-origin,center); transition:opacity var(--duration-base) var(--ease-standard),scale var(--duration-base) var(--ease-standard); }
3442
+ .tooltip[data-starting-style],.tooltip[data-ending-style],.popover[data-starting-style],.popover[data-ending-style] { opacity:0; scale:.9; }
3443
+ .tooltip[data-ending-style],.popover[data-ending-style] { transition-duration:var(--duration-fast); }
3444
+ .tooltip[data-instant] { transition:none; }
3445
+ .popover { z-index:var(--z-modal); min-width:220px; max-width:min(360px,calc(100vw - 32px)); padding:16px; border:1px solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); font-size:var(--text-sm); box-shadow:var(--shadow-lg); display:grid; gap:10px; transform-origin:var(--transform-origin,center); transition:opacity var(--duration-base) var(--ease-standard),scale var(--duration-base) var(--ease-standard); }
3446
+ .popover-title { font-weight:var(--weight-medium); }
3447
+ /* A SETA (0.32.0): o desenho é nosso — uma curva de 12 × 6 —, com o fundo da janela e a linha da borda,
3448
+ e ela entra 1 por cima da borda da janela para a linha dar a volta sem emenda. O motor põe a seta
3449
+ no ponto certo do lado; aqui só se diz em que lado ela encosta e para onde aponta. */
3450
+ .overlay-arrow { display:flex; inline-size:var(--space-3); block-size:var(--space-3); }
3451
+ .overlay-arrow > svg { inline-size:100%; block-size:100%; overflow:visible; }
3452
+ .overlay-arrow-fill { fill:var(--popover); }
3453
+ .overlay-arrow-line { stroke:var(--border); stroke-width:var(--border-width); }
3454
+ .overlay-arrow[data-side="top"] { top:calc(100% - var(--border-width)); }
3455
+ .overlay-arrow[data-side="bottom"] { bottom:calc(100% - var(--border-width)); rotate:180deg; }
3456
+ .overlay-arrow[data-side="left"] { left:calc(100% - var(--border-width)); rotate:-90deg; }
3457
+ .overlay-arrow[data-side="right"] { right:calc(100% - var(--border-width)); rotate:90deg; }
2697
3458
  /* `--menu-px` existe porque o RÓTULO DE GRUPO tem de alinhar com o texto dos itens, e o número
2698
3459
  estava escrito duas vezes. Uma relação entre duas regras não se mantém repetindo a constante:
2699
3460
  quem mudar o recuo do item mudaria o alinhamento do rótulo sem perceber. */
@@ -2723,8 +3484,18 @@ img,svg { display:block; }
2723
3484
  DEPOIS do `.menu-item` de proposito: as duas regras tem a MESMA especificidade, entao quem vem
2724
3485
  por ultimo vence. Escrita antes, a grade de tres colunas era apagada pelo `display:flex` do
2725
3486
  menu — medido em 13/08/2026, e o gate de pele foi quem pegou. */
2726
- .command-positioner { inline-size:var(--anchor-width); }
2727
3487
  .command-list { max-height:min(50vh,360px); overflow-y:auto; overscroll-behavior:contain; }
3488
+ /* 0.32.0 — a lista mora DENTRO da caixa da paleta (o `inline` do motor), e não num popup: o `.menu`
3489
+ aqui não flutua — sem borda, sem sombra, sem largura própria; a caixa é a da paleta. */
3490
+ .command-palette .command-list { position:static; z-index:auto; min-width:0; max-width:none; border:0; box-shadow:none; padding:0; background:transparent; }
3491
+ /* O título do grupo (DOC-06) = o `Header` da seção da lista da referência: 12, peso médio,
3492
+ esmaecido, sem maiúsculas; 6 em cima e 4 embaixo; alinhado ao texto do item (`--menu-px`). */
3493
+ .command-group + .command-group { margin-block-start:var(--space-1); }
3494
+ .command-group-label { padding:calc(var(--space-1) + var(--space-05)) var(--menu-px, var(--space-3)) var(--space-1); color:var(--muted-foreground); font-size:var(--text-xs); font-weight:var(--weight-medium); }
3495
+ /* A linha de atalhos (DOC-07): a tecla da referência (o `Kbd`) com o que ela faz, 12 esmaecido,
3496
+ separada da lista por um fio. */
3497
+ .command-shortcuts { display:flex; flex-wrap:wrap; gap:var(--space-4); margin:0; padding:var(--space-2) var(--space-1) 0; border-top:var(--border-width) solid var(--border); color:var(--muted-foreground); font-size:var(--text-xs); }
3498
+ .command-shortcuts > span { display:inline-flex; align-items:center; gap:var(--space-1); }
2728
3499
  .command-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:var(--space-3); align-items:center; }
2729
3500
  .command-item-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
2730
3501
 
@@ -2777,6 +3548,19 @@ img,svg { display:block; }
2777
3548
  centralizado; e o valor longo termina em "…" em vez de passar por baixo da seta. */
2778
3549
  .select-trigger { display:flex; align-items:center; text-align:start; cursor:pointer; }
2779
3550
  .select-trigger:disabled,.select-trigger[data-disabled] { cursor:not-allowed; }
3551
+ /* O GATILHO DO `DatePicker` (0.32.0, ADR-0068) é o campo do `Select`, com o calendário no lugar da seta:
3552
+ sem a seta desenhada no fundo, o recheio do fim volta ao do lado de dentro, e o ícone vai no fim. */
3553
+ /* A seta sai com `.select.date-picker-trigger` (força 0,2,0), e não só `.date-picker-trigger`: a regra do tema claro
3554
+ do `.select` (`[data-theme="light"] .select:where(…)`, mais acima) também tem 0,2,0 e repintava a seta por cima do
3555
+ calendário — visto pelo Victor em 13/10/2026. Empate de força: vale a que vem depois, que é esta. */
3556
+ .date-picker-trigger { gap:var(--space-2); padding-inline-end:var(--step-field-px,var(--space-3)); }
3557
+ .select.date-picker-trigger { background-image:none; }
3558
+ .date-picker-trigger > .icon { flex:none; color:var(--muted-foreground); }
3559
+ /* A janela abraça o calendário (o `.popover` tem um piso de largura para texto, e aqui não há texto). E é UMA
3560
+ superfície só, como na referência: a janela tem o fundo, a sombra e o canto, com recheio 12 (o `p-3` dela); o
3561
+ calendário de dentro perde a moldura própria — antes saía caixa dentro de caixa (visto em 13/10/2026). */
3562
+ .date-picker-popover { min-width:0; padding:var(--space-3); }
3563
+ .date-picker-popover > .calendar { padding:0; border:0; border-radius:0; background:transparent; }
2780
3564
  .select-value { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
2781
3565
  .select-value[data-placeholder] { color:var(--muted-foreground); }
2782
3566
  .combobox-popup { inline-size:var(--anchor-width); min-inline-size:0; max-inline-size:none; max-block-size:min(320px,var(--available-height)); overflow-y:auto; overscroll-behavior:contain; }
@@ -2810,7 +3594,9 @@ img,svg { display:block; }
2810
3594
  tamanho em vez de ser paga. Paga aqui, com o mesmo respiro entre seções que o `.menu-group`
2811
3595
  usa, pelo mesmo `+`: a primeira seção encosta no topo do popup como qualquer item, e a folga
2812
3596
  só existe ENTRE seções — margem no bloco deixaria sobra solta no fim da lista. */
2813
- .combobox-section + .combobox-section { margin-block-start:var(--space-2); }
3597
+ /* E a linha entre elas (15/10/2026), a mesma da `ListBox`: 4, a linha, 4 — o `Select` com grupos e os dois `Combobox`. */
3598
+ .combobox-section + .combobox-section { margin-block-start:var(--space-1); }
3599
+ .combobox-section + .combobox-section::before { content:""; display:block; border-block-start:var(--border-width) solid var(--border); margin:0 var(--space-2) var(--space-1); }
2814
3600
  /* FileInput / DropZone (Fase 4) — só a UI de entrada; upload real é a Fase 5.
2815
3601
  A zona é um <label> em volta do <input> nativo: clique/foco/teclado de graça,
2816
3602
  o arrastar-soltar é reforço. Espaçamento novo tokenizado; superfície = card. */
@@ -2900,7 +3686,7 @@ img,svg { display:block; }
2900
3686
  (`.tree-label` não quebra), então a cápsula não deforma. */
2901
3687
  .tree, .tree-group { margin:0; padding:0; list-style:none; }
2902
3688
  .tree-item { outline:none; }
2903
- .tree-node { display:flex; align-items:center; gap:var(--space-2); min-height:var(--control-h-md); padding-block:var(--space-1); padding-inline-end:var(--space-3); border-radius:var(--radius-control); color:var(--foreground); cursor:pointer; user-select:none; }
3689
+ .tree-node { display:grid; grid-template-columns:auto auto minmax(0,1fr); align-items:center; column-gap:0; min-height:var(--control-h-md); padding-block:var(--space-1); padding-inline-end:var(--space-3); border-radius:var(--radius-control); color:var(--foreground); cursor:pointer; user-select:none; }
2904
3690
  .tree-node:hover { background:var(--surface-3); }
2905
3691
  .tree-item:focus-visible > .tree-node { outline:var(--focus-width) solid var(--focus-strong); outline-offset:calc(-1 * var(--focus-width)); }
2906
3692
  .tree-node[data-selected] { background:color-mix(in srgb,var(--primary) 14%,transparent); }
@@ -2913,7 +3699,17 @@ img,svg { display:block; }
2913
3699
  .tree-twist-rtl { rotate:180deg; }
2914
3700
  .tree-item[aria-expanded="true"] > .tree-node > .tree-twist { rotate:90deg; }
2915
3701
  .tree-indent { flex:none; width:1rem; }
2916
- .tree-label { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
3702
+ /* MNT-23 (12/10/2026): a árvore ALARGAVA A PÁGINA. O rótulo não quebra linha, e numa linha `flex` a
3703
+ largura mínima da árvore era o rótulo inteiro: numa coluna `1fr` de grade, num filho `flex: 1` ou num
3704
+ div dentro deles, ela empurrava a caixa (medido: 360 → 820). A linha é uma GRADE, e a trilha do
3705
+ rótulo é `minmax(0,1fr)`: ela pede zero de largura mínima e, quando há espaço (um painel que se
3706
+ ajusta ao conteúdo), mostra o rótulo inteiro — largura 0 no rótulo resolveria só a primeira metade.
3707
+ As três colunas: a seta (ou o recuo, ou a rodinha), o ícone do nó e o rótulo. O vão vira margem do
3708
+ ícone e do rótulo: sem ícone, a coluna dele fica vazia e não sobra vão dobrado. Quem cobra:
3709
+ `tests/visual/rede3.spec.ts`. */
3710
+ .tree-node > .tree-twist, .tree-node > .tree-indent { grid-column:1; }
3711
+ .tree-node > .icon:not(.tree-twist) { grid-column:2; margin-inline-start:var(--space-2); }
3712
+ .tree-label { grid-column:3; margin-inline-start:var(--space-2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
2917
3713
 
2918
3714
  /* NotificationCenter (Fase 4) — compõe o .popover; aqui só o gatilho com count,
2919
3715
  o cabeçalho e as linhas do feed. Espaço novo tokenizado; a linha usa radius-sm
@@ -2975,7 +3771,8 @@ th[aria-sort] .datagrid-sort-icon { color:var(--primary); }
2975
3771
  `height:auto` (o conteúdo já passa de --row-h, e altura em célula é mínimo),
2976
3772
  `letter-spacing:normal` (o .input não herda o entreletras do cabeçalho) e
2977
3773
  `line-height:0` no rótulo (o <label> vazio já não ocupa altura). */
2978
- .datagrid-filters th { padding-block:var(--space-2); text-transform:none; vertical-align:top; }
3774
+ .table-wrap thead tr.datagrid-filters th { block-size:auto; padding-block:var(--space-2); vertical-align:top; }
3775
+ .table-wrap thead tr.datagrid-filters th::after { content:none; }
2979
3776
  .datagrid-filters .field { gap:0; }
2980
3777
 
2981
3778
  /* F6: cabeçalho fixo. A `.table-wrap` já é o contêiner de rolagem (overflow:auto),
@@ -2993,12 +3790,14 @@ th[aria-sort] .datagrid-sort-icon { color:var(--primary); }
2993
3790
  seria trocar risco real por pureza de método. As outras três regras daqui foram
2994
3791
  provadas. */
2995
3792
  .datagrid-sticky thead th { position:sticky; inset-block-start:0; z-index:1; }
2996
- .datagrid-sticky .datagrid-filters th { inset-block-start:var(--row-h); }
3793
+ .datagrid-sticky .datagrid-filters th { inset-block-start:var(--table-head-h); }
2997
3794
 
2998
3795
  /* F7: a alça de redimensionar. Fina, colada no fim da célula e da altura toda —
2999
3796
  alvo estreito de propósito, porque largo demais rouba o clique do cabeçalho
3000
3797
  ordenável que está ao lado. O `th` precisa de `position:relative` para ancorá-la. */
3001
3798
  .datagrid thead th:has(> .datagrid-resizer) { position:relative; }
3799
+ /* A alça de largura toma o lugar do fio entre as colunas, como na referência. */
3800
+ .table-wrap thead th:has(> .datagrid-resizer)::after { content:none; }
3002
3801
  .datagrid-resizer { position:absolute; inset-block:0; inset-inline-end:0; inline-size:var(--space-1); padding:0; border:0; background:none; cursor:col-resize; touch-action:none; }
3003
3802
  .datagrid-resizer:hover, .datagrid-resizer:focus-visible { background:var(--primary); }
3004
3803
  .datagrid-resizer:focus-visible { outline:var(--focus-width) solid var(--focus-strong); outline-offset:calc(-1 * var(--focus-width)); }
@@ -3273,15 +4072,31 @@ button.graph-node-body { cursor:pointer; }
3273
4072
  com camada, qualquer que seja a força do seletor. Medido na bancada da rodada 1: a fibra saía com
3274
4073
  1 de espessura em vez de 6. A variável não tem rival na linha, então a nossa vale. O `stroke-width`
3275
4074
  fica para os desenhos que são nossos (a amostra da legenda e o miolo do traço duplo). */
3276
- .dependency-graph .graph-edge { --graph-edge-w:var(--graph-edge-base); --xy-edge-stroke-width:var(--graph-edge-w); stroke-width:var(--graph-edge-w); }
3277
- .dependency-graph .graph-edge-thick { --graph-edge-w:calc(var(--graph-edge-base) * 2); }
3278
- .dependency-graph .graph-edge-heavy { --graph-edge-w:calc(var(--graph-edge-base) * 3); }
4075
+ .dependency-graph .graph-edge { --graph-edge-w:calc(var(--graph-edge-base) * var(--graph-edge-scale,1)); --xy-edge-stroke-width:var(--graph-edge-w); stroke-width:var(--graph-edge-w); }
4076
+ .dependency-graph .graph-edge-thick { --graph-edge-w:calc(var(--graph-edge-base) * 2 * var(--graph-edge-scale,1)); }
4077
+ .dependency-graph .graph-edge-heavy { --graph-edge-w:calc(var(--graph-edge-base) * 3 * var(--graph-edge-scale,1)); }
4078
+ /* MNT-26 (12/10/2026): a COR da linha é o ESTADO dela, o `status.tone` da linha, como o selo do nó (pedido
4079
+ do dono do app: "senti falta de cores"). A cor é a de LETRA e borda sobre a tela (o par `-400`,
4080
+ ADR-0061), e não o fundo cheio. Ela pinta a variável do motor no próprio traço — vence o alto contraste,
4081
+ que pinta a do mapa inteiro: a linha de cor continua de cor, e o traço fica grosso como o resto. A
4082
+ amostra da parte "Estado" da legenda usa a mesma classe, e a palavra ao lado dela é o que garante que a
4083
+ cor não fala sozinha; a amostra do TIPO da ligação não leva cor.
4084
+ A linha com cor tem o DOBRO da espessura (ordem do Victor, 13/10/2026: "pode engrossar a linha com cor").
4085
+ Medido no "caber na tela" (zoom 0,57): com 1 — e com 1,5 —, nenhum ponto do traço chegava à cor de
4086
+ verdade, e a linha verde parecia cinza; com 2, a cor aparece exata. As três espessuras dobram juntas
4087
+ (`--graph-edge-scale`), para a velocidade continuar legível entre as linhas com cor; o miolo do duplo
4088
+ leva a mesma classe e dobra junto. */
4089
+ .dependency-graph :is(.graph-edge-tone-info,.graph-edge-tone-success,.graph-edge-tone-warning,.graph-edge-tone-danger) { --graph-edge-scale:2; }
4090
+ .dependency-graph .graph-edge-tone-info { --xy-edge-stroke:var(--info-400); }
4091
+ .dependency-graph .graph-edge-tone-success { --xy-edge-stroke:var(--success-400); }
4092
+ .dependency-graph .graph-edge-tone-warning { --xy-edge-stroke:var(--warning-400); }
4093
+ .dependency-graph .graph-edge-tone-danger { --xy-edge-stroke:var(--danger-400); }
3279
4094
  .dependency-graph .graph-edge-dashed { stroke-dasharray:var(--space-2) var(--space-1); }
3280
4095
  .dependency-graph .graph-edge-dotted { --xy-edge-stroke-width:calc(var(--graph-edge-w) * 2); stroke-width:calc(var(--graph-edge-w) * 2); stroke-dasharray:0 calc(var(--graph-edge-w) * 5); stroke-linecap:round; }
3281
4096
  .dependency-graph .graph-edge-double { --xy-edge-stroke-width:calc(var(--graph-edge-w) * 3); stroke-width:calc(var(--graph-edge-w) * 3); }
3282
- .graph-edge-double-core { --graph-edge-w:var(--graph-edge-base); fill:none; stroke:var(--xy-edge-label-background-color); stroke-width:var(--graph-edge-w); pointer-events:none; }
3283
- .graph-edge-double-core.graph-edge-thick { --graph-edge-w:calc(var(--graph-edge-base) * 2); }
3284
- .graph-edge-double-core.graph-edge-heavy { --graph-edge-w:calc(var(--graph-edge-base) * 3); }
4097
+ .graph-edge-double-core { --graph-edge-w:calc(var(--graph-edge-base) * var(--graph-edge-scale,1)); fill:none; stroke:var(--xy-edge-label-background-color); stroke-width:var(--graph-edge-w); pointer-events:none; }
4098
+ .graph-edge-double-core.graph-edge-thick { --graph-edge-w:calc(var(--graph-edge-base) * 2 * var(--graph-edge-scale,1)); }
4099
+ .graph-edge-double-core.graph-edge-heavy { --graph-edge-w:calc(var(--graph-edge-base) * 3 * var(--graph-edge-scale,1)); }
3285
4100
  /* A pastilha do meio (marca, número, grupo) e o nome da porta na ponta são HTML sobre o desenho. */
3286
4101
  .graph-edge-chip { position:absolute; z-index:var(--graph-label-z); display:inline-flex; align-items:center; gap:var(--space-1); padding:var(--space-05) var(--space-2); border-radius:var(--radius-control); background:var(--xy-edge-label-background-color); color:var(--xy-edge-label-color); font-size:var(--graph-edge-label-size,var(--text-xs)); line-height:var(--leading-tight); white-space:nowrap; pointer-events:all; }
3287
4102
  .graph-edge-end { position:absolute; z-index:var(--graph-label-z); padding:0 var(--space-1); border-radius:var(--radius-xs); background:var(--xy-edge-label-background-color); color:var(--xy-edge-label-color); font-size:var(--graph-edge-label-size,var(--text-xs)); line-height:var(--leading-tight); white-space:nowrap; pointer-events:none; }
@@ -3297,7 +4112,12 @@ button.graph-node-body { cursor:pointer; }
3297
4112
  /* Os botões de zoom, o minimapa e a legenda flutuam sobre o mapa, com a pele de cartão. */
3298
4113
  .graph-controls { display:flex; gap:var(--space-1); padding:var(--space-1); border:var(--border-width) solid var(--border); border-radius:var(--radius-control); background:var(--card); }
3299
4114
  .graph-minimap { border:var(--border-width) solid var(--border); border-radius:var(--radius-md); overflow:hidden; }
3300
- .graph-legend { display:grid; gap:var(--space-1); margin:0; padding:var(--space-2) var(--space-3); list-style:none; border:var(--border-width) solid var(--border); border-radius:var(--radius-md); background:var(--card); color:var(--foreground); font-size:var(--graph-edge-label-size,var(--text-xs)); }
4115
+ .graph-legend { display:grid; gap:var(--space-1); margin:0; padding:var(--space-2) var(--space-3); border:var(--border-width) solid var(--border); border-radius:var(--radius-md); background:var(--card); color:var(--foreground); font-size:var(--graph-edge-label-size,var(--text-xs)); }
4116
+ /* Duas partes (12/10/2026): o tipo da ligação e o estado, cada uma com o título à vista; com uma parte só,
4117
+ a lista sozinha, como era. */
4118
+ .graph-legend ul { display:grid; gap:var(--space-1); margin:0; padding:0; list-style:none; }
4119
+ .graph-legend-title { margin:0; color:var(--muted-foreground); font-weight:var(--weight-medium); }
4120
+ .graph-legend ul + .graph-legend-title { margin-block-start:var(--space-2); }
3301
4121
  .graph-legend li { display:flex; align-items:center; gap:var(--space-2); }
3302
4122
  .graph-legend-sample { inline-size:var(--space-8); block-size:var(--space-2); overflow:visible; }
3303
4123
  .graph-legend-sample .graph-edge,.graph-legend-sample .graph-edge-double-core { fill:none; }
@@ -3356,7 +4176,9 @@ button.graph-node-body { cursor:pointer; }
3356
4176
  /* OS RÓTULOS QUE SOMEM (MNT-12.5): o que encosta noutro, pela prioridade (o graph.tsx mede e marca),
3357
4177
  e o texto das linhas inteiro quando a câmera está longe — a 60%, a letra viraria um risco. */
3358
4178
  .dependency-graph [data-crowded],.dependency-graph[data-far] :is(.graph-edge-text,.graph-edge-end,.graph-edge-chip-text) { visibility:hidden; }
3359
- .datagrid tbody tr[data-selected] { background:color-mix(in srgb,var(--primary) 14%,transparent); }
4179
+ /* 0.32.0: as células têm o fundo de cartão (o corpo da tabela da referência), então o escolhido pinta
4180
+ a CÉLULA — na linha, ele ficava por baixo delas. É o clarinho da Aurea. */
4181
+ .datagrid tbody tr[data-selected] > :is(td,th) { background:color-mix(in oklab,var(--primary) 10%,var(--card)); }
3360
4182
  .datagrid-empty { padding:var(--space-6); color:var(--muted-foreground); text-align:center; }
3361
4183
 
3362
4184
  /* ========================================================================== */
@@ -3377,11 +4199,29 @@ button.graph-node-body { cursor:pointer; }
3377
4199
  .pattern-toolbar .input-group { flex:1 1 180px; }
3378
4200
  .media-library-row.active { border-color:var(--primary); }
3379
4201
  /* Alvo de toque. `.tabs`/`.segmented` no lugar de `.tab`/`.segmented button`: agora a altura
3380
- mora na cápsula, então é ela que precisa crescer — o filho estica atrás. */
3381
- @media (pointer:coarse) { .btn:not(.btn-link),.tabs,.segmented,.pagination button,.schedule-grid button,.media-control,.nav-list-row { min-height:var(--target-min); } .btn-icon,.media-control { min-width:var(--target-min); } }
4202
+ mora na cápsula, então é ela que precisa crescer — o filho estica atrás. O `CloseButton` fica de
4203
+ fora (0.32.0): o alvo dele é o `::before` de 44, e o círculo continua de 24, como o da referência. */
4204
+ @media (pointer:coarse) { .btn:not(.btn-link):not(.close-button),.tabs,.segmented,.pagination button,.pagination-link,.schedule-grid button,.media-control,.nav-list-row { min-height:var(--target-min); } .btn-icon,.media-control,.pagination-link { min-width:var(--target-min); } }
3382
4205
  @media (forced-colors:active) {
3383
4206
  :focus-visible { outline:var(--focus-width) solid CanvasText; outline-offset:var(--focus-offset); box-shadow:none; }
3384
4207
  .badge,.pattern-gallery button[aria-pressed="true"],.device-grid button[aria-pressed="true"] { border:1px solid CanvasText; }
4208
+ /* O glifo por máscara é FUNDO recortado, e aqui o navegador troca todo fundo pela cor da tela: o
4209
+ glifo sumia (medido em 12/10/2026: zero ponto de tinta nos cinco). Ele sai da troca e pinta com a
4210
+ cor do SISTEMA que o texto ao lado recebe — pelo nome, porque `inherit` aqui devolve a cor de
4211
+ antes da troca (medido: o amarelo do link e o branco do tema escuro, sobre a tela branca). O
4212
+ título do `Accordion` fica na cor de texto: sem isto, o Chromium o pintava na cor de link e o
4213
+ Firefox na de texto, e a seta não tinha como acompanhar os dois. Glifo novo por máscara entra
4214
+ nesta lista; quem cobra é `tests/visual/mascara-alto-contraste.spec.ts`. */
4215
+ :is(.topbar-menu-icon,.link-external,.kpi-trend-icon,.accordion-chevron,.toast-anchored-icon,.toc-label-icon) { forced-color-adjust:none; background:CanvasText; }
4216
+ .topbar-menu-icon { background:ButtonText; }
4217
+ .link-external { background:LinkText; opacity:1; }
4218
+ .accordion-item > summary { color:CanvasText; }
4219
+ /* A AMOSTRA DE COR (0.32.0, ADR-0069): a cor É o conteúdo dela — no `ColorSwatch`, nas amostras para escolher, no
4220
+ gatilho do `ColorPicker` e na frente do `ColorField`. Com a troca, viravam círculos brancos de contorno preto e o
4221
+ "visto" sumia (medido em 14/10/2026). Ela sai da troca, como a área e a trilha; o anel de foco fica na cor do
4222
+ sistema. Quem cobra: `tests/visual/mascara-alto-contraste.spec.ts`. */
4223
+ :is(.color-swatch,.color-swatch-option) { forced-color-adjust:none; }
4224
+ .color-swatch-option:has(:focus-visible) { outline-color:CanvasText; }
3385
4225
  }
3386
4226
 
3387
4227
 
@@ -3421,7 +4261,7 @@ button.graph-node-body { cursor:pointer; }
3421
4261
  nós sem as arestas quebraria o desenho;
3422
4262
  - .drawer-left/.drawer-right prometem lado físico no nome (prop side). */
3423
4263
  :dir(rtl) .select { background-position:12px 50%; }
3424
- :dir(rtl) .switch input:checked + .switch-track:after { transform:translateX(-18px); }
4264
+ :dir(rtl) .switch input:checked + .switch-track:after { transform:translateX(calc(-1 * var(--switch-x))); }
3425
4265
 
3426
4266
  /* BARRA DE ROLAGEM. A Aurea ESCONDIA a dela: `.sidebar` e `.toc` tinham `scrollbar-width:none`
3427
4267
  mais `::-webkit-scrollbar{width:0}`. Região que rola sem barra visível não avisa que rola e
@@ -3437,12 +4277,33 @@ button.graph-node-body { cursor:pointer; }
3437
4277
  Ou seja: o par padrão cobre Firefox e Chrome e ainda não cobre o Safari da maioria; o caminho
3438
4278
  webkit cobre Safari e Chrome. Juntos cobrem os três, e onde os dois valem o padrão ganha por
3439
4279
  vir depois. Só cor e espessura — nada de desenhar seta ou canto. */
3440
- .carousel-track,.code-block,.combobox-popup,.command-palette,.dialog,.drawer,.log-stream,.notification-list,.sidebar,.table-region,.table-wrap,.toc {
4280
+ .carousel-track,.code-block,.combobox-popup,.command-palette,.dialog,.dialog-body,.drawer,.log-stream,.notification-list,.sidebar,.table-region,.table-wrap,.toc {
3441
4281
  scrollbar-width:thin; scrollbar-color:var(--border-strong) transparent;
3442
4282
  }
3443
- .carousel-track::-webkit-scrollbar,.code-block::-webkit-scrollbar,.combobox-popup::-webkit-scrollbar,.command-palette::-webkit-scrollbar,.dialog::-webkit-scrollbar,.drawer::-webkit-scrollbar,.log-stream::-webkit-scrollbar,.notification-list::-webkit-scrollbar,.sidebar::-webkit-scrollbar,.table-region::-webkit-scrollbar,.table-wrap::-webkit-scrollbar,.toc::-webkit-scrollbar { inline-size:var(--space-2); block-size:var(--space-2); }
3444
- .carousel-track::-webkit-scrollbar-track,.code-block::-webkit-scrollbar-track,.combobox-popup::-webkit-scrollbar-track,.command-palette::-webkit-scrollbar-track,.dialog::-webkit-scrollbar-track,.drawer::-webkit-scrollbar-track,.log-stream::-webkit-scrollbar-track,.notification-list::-webkit-scrollbar-track,.sidebar::-webkit-scrollbar-track,.table-region::-webkit-scrollbar-track,.table-wrap::-webkit-scrollbar-track,.toc::-webkit-scrollbar-track { background:transparent; }
3445
- .carousel-track::-webkit-scrollbar-thumb,.code-block::-webkit-scrollbar-thumb,.combobox-popup::-webkit-scrollbar-thumb,.command-palette::-webkit-scrollbar-thumb,.dialog::-webkit-scrollbar-thumb,.drawer::-webkit-scrollbar-thumb,.log-stream::-webkit-scrollbar-thumb,.notification-list::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb,.table-region::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb,.toc::-webkit-scrollbar-thumb { background:var(--border-strong); border-radius:var(--radius-control); }
4283
+ .carousel-track::-webkit-scrollbar,.code-block::-webkit-scrollbar,.combobox-popup::-webkit-scrollbar,.command-palette::-webkit-scrollbar,.dialog::-webkit-scrollbar,.dialog-body::-webkit-scrollbar,.drawer::-webkit-scrollbar,.log-stream::-webkit-scrollbar,.notification-list::-webkit-scrollbar,.sidebar::-webkit-scrollbar,.table-region::-webkit-scrollbar,.table-wrap::-webkit-scrollbar,.toc::-webkit-scrollbar { inline-size:var(--space-2); block-size:var(--space-2); }
4284
+ .carousel-track::-webkit-scrollbar-track,.code-block::-webkit-scrollbar-track,.combobox-popup::-webkit-scrollbar-track,.command-palette::-webkit-scrollbar-track,.dialog::-webkit-scrollbar-track,.dialog-body::-webkit-scrollbar-track,.drawer::-webkit-scrollbar-track,.log-stream::-webkit-scrollbar-track,.notification-list::-webkit-scrollbar-track,.sidebar::-webkit-scrollbar-track,.table-region::-webkit-scrollbar-track,.table-wrap::-webkit-scrollbar-track,.toc::-webkit-scrollbar-track { background:transparent; }
4285
+ .carousel-track::-webkit-scrollbar-thumb,.code-block::-webkit-scrollbar-thumb,.combobox-popup::-webkit-scrollbar-thumb,.command-palette::-webkit-scrollbar-thumb,.dialog::-webkit-scrollbar-thumb,.dialog-body::-webkit-scrollbar-thumb,.drawer::-webkit-scrollbar-thumb,.log-stream::-webkit-scrollbar-thumb,.notification-list::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb,.table-region::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb,.toc::-webkit-scrollbar-thumb { background:var(--border-strong); border-radius:var(--radius-control); }
4286
+ /* A LATERAL é a exceção (0.32.0; o Victor, 13/10/2026, olhando a da documentação da referência: a barra
4287
+ "só aparece se o mouse fica em cima do sidebar e ela é clarinha" — e, sobre o padrão, "pode alterar o
4288
+ atual para ser claro e sumir a rolagem"). A barra continua NATIVA e continua lá — a largura fina não
4289
+ muda, então nada pula quando ela aparece; parada, o polegar é transparente. Ela aparece:
4290
+ - com o ponteiro em cima da lateral (é quando quem usa mouse vai arrastá-la);
4291
+ - com o foco do teclado dentro dela (quem navega com Tab vê que a lista rola);
4292
+ - sempre, em tela sem ponteiro que paire (`hover: none`), onde o "em cima" não existe.
4293
+ A cor sai da escala da LATERAL, não da página: é o texto dela, esmaecido.
4294
+ O desenho de antes — a barra sempre à vista, na cor de borda forte — não saiu: é a variante
4295
+ `scrollbar="visible"` (`.sidebar-scrollbar-visible`), para quem precisa da barra o tempo todo. */
4296
+ .sidebar { scrollbar-color:transparent transparent; }
4297
+ .sidebar::-webkit-scrollbar-thumb { background:transparent; }
4298
+ .sidebar:is(:hover,:focus-within) { scrollbar-color:color-mix(in oklab, var(--sidebar-foreground) 45%, transparent) transparent; }
4299
+ .sidebar:is(:hover,:focus-within)::-webkit-scrollbar-thumb { background:color-mix(in oklab, var(--sidebar-foreground) 45%, transparent); }
4300
+ @media (hover: none) {
4301
+ .sidebar { scrollbar-color:color-mix(in oklab, var(--sidebar-foreground) 45%, transparent) transparent; }
4302
+ .sidebar::-webkit-scrollbar-thumb { background:color-mix(in oklab, var(--sidebar-foreground) 45%, transparent); }
4303
+ }
4304
+ /* Duas classes, depois das de cima: ganha do "em cima" e do "sem ponteiro" com a mesma força, pela ordem. */
4305
+ .sidebar.sidebar-scrollbar-visible { scrollbar-color:var(--border-strong) transparent; }
4306
+ .sidebar.sidebar-scrollbar-visible::-webkit-scrollbar-thumb { background:var(--border-strong); }
3446
4307
 
3447
4308
  /* ========================================================================== */
3448
4309
  /* 99. EIXO RESPONSIVO — a infraestrutura do G-AXIS-04 */
@@ -3488,13 +4349,14 @@ button.graph-node-body { cursor:pointer; }
3488
4349
  @property --step-icon { syntax:"*"; inherits:false; }
3489
4350
  @property --step-qr { syntax:"*"; inherits:false; }
3490
4351
  @property --step-avatar-fs { syntax:"*"; inherits:false; }
4352
+ @property --step-avatar { syntax:"*"; inherits:false; }
3491
4353
 
3492
4354
  /* o passo de escala, genérico: qualquer peça que leia `--step-*` obedece. `md` também tem
3493
4355
  classe, porque um responsivo precisa poder dizer `md` como valor base. */
3494
4356
  .size-xs { --step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8); }
3495
- .size-sm { --step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs); }
3496
- .size-md { --step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem; }
3497
- .size-lg { --step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem; }
4357
+ .size-sm { --step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8); }
4358
+ .size-md { --step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10); }
4359
+ .size-lg { --step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12); }
3498
4360
  .size-xl { --step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl); }
3499
4361
 
3500
4362
  /* CONTÊINER NOMEADO. Sem nome, `@container` casa com o ancestral mais próximo que for contêiner
@@ -3503,19 +4365,19 @@ button.graph-node-body { cursor:pointer; }
3503
4365
  .container-scope { container:aurea / inline-size; }
3504
4366
 
3505
4367
  /* por VIEWPORT — a decisão depende do tamanho da APLICAÇÃO */
3506
- @media (min-width:360px) { .vp-2xs\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-2xs\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .vp-2xs\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .vp-2xs\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .vp-2xs\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-2xs\:btn-group-vertical { flex-direction:column; align-items:stretch; } .vp-2xs\:btn-group-horizontal { flex-direction:row; align-items:center; } .vp-2xs\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-2xs\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-2xs\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-2xs\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-2xs\:field-horizontal>*:not(.label) { grid-column:2; } .vp-2xs\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-2xs\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-2xs\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-2xs\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-2xs\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .vp-2xs\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-2xs\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-2xs\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-2xs\:grid-span-1 { grid-column:span 1 / span 1; } .vp-2xs\:grid-span-2 { grid-column:span 2 / span 2; } .vp-2xs\:grid-span-3 { grid-column:span 3 / span 3; } .vp-2xs\:grid-span-4 { grid-column:span 4 / span 4; } .vp-2xs\:grid-span-5 { grid-column:span 5 / span 5; } .vp-2xs\:grid-span-6 { grid-column:span 6 / span 6; } .vp-2xs\:grid-span-7 { grid-column:span 7 / span 7; } .vp-2xs\:grid-span-8 { grid-column:span 8 / span 8; } .vp-2xs\:grid-span-9 { grid-column:span 9 / span 9; } .vp-2xs\:grid-span-10 { grid-column:span 10 / span 10; } .vp-2xs\:grid-span-11 { grid-column:span 11 / span 11; } .vp-2xs\:grid-span-12 { grid-column:span 12 / span 12; } }
3507
- @media (min-width:480px) { .vp-xs\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-xs\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .vp-xs\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .vp-xs\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .vp-xs\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-xs\:btn-group-vertical { flex-direction:column; align-items:stretch; } .vp-xs\:btn-group-horizontal { flex-direction:row; align-items:center; } .vp-xs\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-xs\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-xs\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-xs\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-xs\:field-horizontal>*:not(.label) { grid-column:2; } .vp-xs\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-xs\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-xs\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-xs\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-xs\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .vp-xs\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-xs\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-xs\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-xs\:grid-span-1 { grid-column:span 1 / span 1; } .vp-xs\:grid-span-2 { grid-column:span 2 / span 2; } .vp-xs\:grid-span-3 { grid-column:span 3 / span 3; } .vp-xs\:grid-span-4 { grid-column:span 4 / span 4; } .vp-xs\:grid-span-5 { grid-column:span 5 / span 5; } .vp-xs\:grid-span-6 { grid-column:span 6 / span 6; } .vp-xs\:grid-span-7 { grid-column:span 7 / span 7; } .vp-xs\:grid-span-8 { grid-column:span 8 / span 8; } .vp-xs\:grid-span-9 { grid-column:span 9 / span 9; } .vp-xs\:grid-span-10 { grid-column:span 10 / span 10; } .vp-xs\:grid-span-11 { grid-column:span 11 / span 11; } .vp-xs\:grid-span-12 { grid-column:span 12 / span 12; } }
3508
- @media (min-width:640px) { .vp-sm\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-sm\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .vp-sm\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .vp-sm\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .vp-sm\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-sm\:btn-group-vertical { flex-direction:column; align-items:stretch; } .vp-sm\:btn-group-horizontal { flex-direction:row; align-items:center; } .vp-sm\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-sm\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-sm\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-sm\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-sm\:field-horizontal>*:not(.label) { grid-column:2; } .vp-sm\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-sm\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-sm\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-sm\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-sm\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .vp-sm\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-sm\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-sm\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-sm\:grid-span-1 { grid-column:span 1 / span 1; } .vp-sm\:grid-span-2 { grid-column:span 2 / span 2; } .vp-sm\:grid-span-3 { grid-column:span 3 / span 3; } .vp-sm\:grid-span-4 { grid-column:span 4 / span 4; } .vp-sm\:grid-span-5 { grid-column:span 5 / span 5; } .vp-sm\:grid-span-6 { grid-column:span 6 / span 6; } .vp-sm\:grid-span-7 { grid-column:span 7 / span 7; } .vp-sm\:grid-span-8 { grid-column:span 8 / span 8; } .vp-sm\:grid-span-9 { grid-column:span 9 / span 9; } .vp-sm\:grid-span-10 { grid-column:span 10 / span 10; } .vp-sm\:grid-span-11 { grid-column:span 11 / span 11; } .vp-sm\:grid-span-12 { grid-column:span 12 / span 12; } }
3509
- @media (min-width:768px) { .vp-md\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-md\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .vp-md\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .vp-md\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .vp-md\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-md\:btn-group-vertical { flex-direction:column; align-items:stretch; } .vp-md\:btn-group-horizontal { flex-direction:row; align-items:center; } .vp-md\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-md\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-md\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-md\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-md\:field-horizontal>*:not(.label) { grid-column:2; } .vp-md\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-md\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-md\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-md\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-md\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .vp-md\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-md\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-md\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-md\:grid-span-1 { grid-column:span 1 / span 1; } .vp-md\:grid-span-2 { grid-column:span 2 / span 2; } .vp-md\:grid-span-3 { grid-column:span 3 / span 3; } .vp-md\:grid-span-4 { grid-column:span 4 / span 4; } .vp-md\:grid-span-5 { grid-column:span 5 / span 5; } .vp-md\:grid-span-6 { grid-column:span 6 / span 6; } .vp-md\:grid-span-7 { grid-column:span 7 / span 7; } .vp-md\:grid-span-8 { grid-column:span 8 / span 8; } .vp-md\:grid-span-9 { grid-column:span 9 / span 9; } .vp-md\:grid-span-10 { grid-column:span 10 / span 10; } .vp-md\:grid-span-11 { grid-column:span 11 / span 11; } .vp-md\:grid-span-12 { grid-column:span 12 / span 12; } }
3510
- @media (min-width:1024px) { .vp-lg\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-lg\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .vp-lg\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .vp-lg\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .vp-lg\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-lg\:btn-group-vertical { flex-direction:column; align-items:stretch; } .vp-lg\:btn-group-horizontal { flex-direction:row; align-items:center; } .vp-lg\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-lg\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-lg\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-lg\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-lg\:field-horizontal>*:not(.label) { grid-column:2; } .vp-lg\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-lg\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-lg\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-lg\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-lg\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .vp-lg\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-lg\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-lg\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-lg\:grid-span-1 { grid-column:span 1 / span 1; } .vp-lg\:grid-span-2 { grid-column:span 2 / span 2; } .vp-lg\:grid-span-3 { grid-column:span 3 / span 3; } .vp-lg\:grid-span-4 { grid-column:span 4 / span 4; } .vp-lg\:grid-span-5 { grid-column:span 5 / span 5; } .vp-lg\:grid-span-6 { grid-column:span 6 / span 6; } .vp-lg\:grid-span-7 { grid-column:span 7 / span 7; } .vp-lg\:grid-span-8 { grid-column:span 8 / span 8; } .vp-lg\:grid-span-9 { grid-column:span 9 / span 9; } .vp-lg\:grid-span-10 { grid-column:span 10 / span 10; } .vp-lg\:grid-span-11 { grid-column:span 11 / span 11; } .vp-lg\:grid-span-12 { grid-column:span 12 / span 12; } }
3511
- @media (min-width:1280px) { .vp-xl\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-xl\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .vp-xl\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .vp-xl\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .vp-xl\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-xl\:btn-group-vertical { flex-direction:column; align-items:stretch; } .vp-xl\:btn-group-horizontal { flex-direction:row; align-items:center; } .vp-xl\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-xl\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-xl\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-xl\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-xl\:field-horizontal>*:not(.label) { grid-column:2; } .vp-xl\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-xl\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-xl\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-xl\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-xl\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .vp-xl\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-xl\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-xl\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-xl\:grid-span-1 { grid-column:span 1 / span 1; } .vp-xl\:grid-span-2 { grid-column:span 2 / span 2; } .vp-xl\:grid-span-3 { grid-column:span 3 / span 3; } .vp-xl\:grid-span-4 { grid-column:span 4 / span 4; } .vp-xl\:grid-span-5 { grid-column:span 5 / span 5; } .vp-xl\:grid-span-6 { grid-column:span 6 / span 6; } .vp-xl\:grid-span-7 { grid-column:span 7 / span 7; } .vp-xl\:grid-span-8 { grid-column:span 8 / span 8; } .vp-xl\:grid-span-9 { grid-column:span 9 / span 9; } .vp-xl\:grid-span-10 { grid-column:span 10 / span 10; } .vp-xl\:grid-span-11 { grid-column:span 11 / span 11; } .vp-xl\:grid-span-12 { grid-column:span 12 / span 12; } }
3512
- @media (min-width:1536px) { .vp-2xl\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-2xl\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .vp-2xl\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .vp-2xl\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .vp-2xl\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-2xl\:btn-group-vertical { flex-direction:column; align-items:stretch; } .vp-2xl\:btn-group-horizontal { flex-direction:row; align-items:center; } .vp-2xl\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-2xl\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-2xl\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-2xl\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-2xl\:field-horizontal>*:not(.label) { grid-column:2; } .vp-2xl\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-2xl\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-2xl\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-2xl\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-2xl\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .vp-2xl\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-2xl\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-2xl\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-2xl\:grid-span-1 { grid-column:span 1 / span 1; } .vp-2xl\:grid-span-2 { grid-column:span 2 / span 2; } .vp-2xl\:grid-span-3 { grid-column:span 3 / span 3; } .vp-2xl\:grid-span-4 { grid-column:span 4 / span 4; } .vp-2xl\:grid-span-5 { grid-column:span 5 / span 5; } .vp-2xl\:grid-span-6 { grid-column:span 6 / span 6; } .vp-2xl\:grid-span-7 { grid-column:span 7 / span 7; } .vp-2xl\:grid-span-8 { grid-column:span 8 / span 8; } .vp-2xl\:grid-span-9 { grid-column:span 9 / span 9; } .vp-2xl\:grid-span-10 { grid-column:span 10 / span 10; } .vp-2xl\:grid-span-11 { grid-column:span 11 / span 11; } .vp-2xl\:grid-span-12 { grid-column:span 12 / span 12; } }
4368
+ @media (min-width:360px) { .vp-2xs\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-2xs\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .vp-2xs\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .vp-2xs\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .vp-2xs\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-2xs\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .vp-2xs\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .vp-2xs\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-2xs\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-2xs\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-2xs\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-2xs\:field-horizontal>*:not(.label) { grid-column:2; } .vp-2xs\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-2xs\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-2xs\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-2xs\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-2xs\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .vp-2xs\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .vp-2xs\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .vp-2xs\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .vp-2xs\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-2xs\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-2xs\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-2xs\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .vp-2xs\:grid-span-1 { grid-column:span 1 / span 1; } .vp-2xs\:grid-span-2 { grid-column:span 2 / span 2; } .vp-2xs\:grid-span-3 { grid-column:span 3 / span 3; } .vp-2xs\:grid-span-4 { grid-column:span 4 / span 4; } .vp-2xs\:grid-span-5 { grid-column:span 5 / span 5; } .vp-2xs\:grid-span-6 { grid-column:span 6 / span 6; } .vp-2xs\:grid-span-7 { grid-column:span 7 / span 7; } .vp-2xs\:grid-span-8 { grid-column:span 8 / span 8; } .vp-2xs\:grid-span-9 { grid-column:span 9 / span 9; } .vp-2xs\:grid-span-10 { grid-column:span 10 / span 10; } .vp-2xs\:grid-span-11 { grid-column:span 11 / span 11; } .vp-2xs\:grid-span-12 { grid-column:span 12 / span 12; } }
4369
+ @media (min-width:480px) { .vp-xs\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-xs\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .vp-xs\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .vp-xs\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .vp-xs\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-xs\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .vp-xs\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .vp-xs\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-xs\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-xs\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-xs\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-xs\:field-horizontal>*:not(.label) { grid-column:2; } .vp-xs\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-xs\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-xs\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-xs\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-xs\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .vp-xs\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .vp-xs\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .vp-xs\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .vp-xs\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-xs\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-xs\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-xs\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .vp-xs\:grid-span-1 { grid-column:span 1 / span 1; } .vp-xs\:grid-span-2 { grid-column:span 2 / span 2; } .vp-xs\:grid-span-3 { grid-column:span 3 / span 3; } .vp-xs\:grid-span-4 { grid-column:span 4 / span 4; } .vp-xs\:grid-span-5 { grid-column:span 5 / span 5; } .vp-xs\:grid-span-6 { grid-column:span 6 / span 6; } .vp-xs\:grid-span-7 { grid-column:span 7 / span 7; } .vp-xs\:grid-span-8 { grid-column:span 8 / span 8; } .vp-xs\:grid-span-9 { grid-column:span 9 / span 9; } .vp-xs\:grid-span-10 { grid-column:span 10 / span 10; } .vp-xs\:grid-span-11 { grid-column:span 11 / span 11; } .vp-xs\:grid-span-12 { grid-column:span 12 / span 12; } }
4370
+ @media (min-width:640px) { .vp-sm\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-sm\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .vp-sm\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .vp-sm\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .vp-sm\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-sm\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .vp-sm\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .vp-sm\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-sm\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-sm\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-sm\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-sm\:field-horizontal>*:not(.label) { grid-column:2; } .vp-sm\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-sm\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-sm\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-sm\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-sm\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .vp-sm\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .vp-sm\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .vp-sm\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .vp-sm\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-sm\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-sm\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-sm\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .vp-sm\:grid-span-1 { grid-column:span 1 / span 1; } .vp-sm\:grid-span-2 { grid-column:span 2 / span 2; } .vp-sm\:grid-span-3 { grid-column:span 3 / span 3; } .vp-sm\:grid-span-4 { grid-column:span 4 / span 4; } .vp-sm\:grid-span-5 { grid-column:span 5 / span 5; } .vp-sm\:grid-span-6 { grid-column:span 6 / span 6; } .vp-sm\:grid-span-7 { grid-column:span 7 / span 7; } .vp-sm\:grid-span-8 { grid-column:span 8 / span 8; } .vp-sm\:grid-span-9 { grid-column:span 9 / span 9; } .vp-sm\:grid-span-10 { grid-column:span 10 / span 10; } .vp-sm\:grid-span-11 { grid-column:span 11 / span 11; } .vp-sm\:grid-span-12 { grid-column:span 12 / span 12; } }
4371
+ @media (min-width:768px) { .vp-md\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-md\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .vp-md\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .vp-md\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .vp-md\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-md\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .vp-md\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .vp-md\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-md\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-md\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-md\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-md\:field-horizontal>*:not(.label) { grid-column:2; } .vp-md\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-md\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-md\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-md\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-md\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .vp-md\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .vp-md\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .vp-md\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .vp-md\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-md\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-md\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-md\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .vp-md\:grid-span-1 { grid-column:span 1 / span 1; } .vp-md\:grid-span-2 { grid-column:span 2 / span 2; } .vp-md\:grid-span-3 { grid-column:span 3 / span 3; } .vp-md\:grid-span-4 { grid-column:span 4 / span 4; } .vp-md\:grid-span-5 { grid-column:span 5 / span 5; } .vp-md\:grid-span-6 { grid-column:span 6 / span 6; } .vp-md\:grid-span-7 { grid-column:span 7 / span 7; } .vp-md\:grid-span-8 { grid-column:span 8 / span 8; } .vp-md\:grid-span-9 { grid-column:span 9 / span 9; } .vp-md\:grid-span-10 { grid-column:span 10 / span 10; } .vp-md\:grid-span-11 { grid-column:span 11 / span 11; } .vp-md\:grid-span-12 { grid-column:span 12 / span 12; } }
4372
+ @media (min-width:1024px) { .vp-lg\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-lg\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .vp-lg\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .vp-lg\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .vp-lg\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-lg\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .vp-lg\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .vp-lg\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-lg\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-lg\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-lg\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-lg\:field-horizontal>*:not(.label) { grid-column:2; } .vp-lg\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-lg\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-lg\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-lg\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-lg\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .vp-lg\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .vp-lg\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .vp-lg\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .vp-lg\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-lg\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-lg\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-lg\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .vp-lg\:grid-span-1 { grid-column:span 1 / span 1; } .vp-lg\:grid-span-2 { grid-column:span 2 / span 2; } .vp-lg\:grid-span-3 { grid-column:span 3 / span 3; } .vp-lg\:grid-span-4 { grid-column:span 4 / span 4; } .vp-lg\:grid-span-5 { grid-column:span 5 / span 5; } .vp-lg\:grid-span-6 { grid-column:span 6 / span 6; } .vp-lg\:grid-span-7 { grid-column:span 7 / span 7; } .vp-lg\:grid-span-8 { grid-column:span 8 / span 8; } .vp-lg\:grid-span-9 { grid-column:span 9 / span 9; } .vp-lg\:grid-span-10 { grid-column:span 10 / span 10; } .vp-lg\:grid-span-11 { grid-column:span 11 / span 11; } .vp-lg\:grid-span-12 { grid-column:span 12 / span 12; } }
4373
+ @media (min-width:1280px) { .vp-xl\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-xl\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .vp-xl\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .vp-xl\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .vp-xl\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-xl\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .vp-xl\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .vp-xl\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-xl\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-xl\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-xl\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-xl\:field-horizontal>*:not(.label) { grid-column:2; } .vp-xl\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-xl\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-xl\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-xl\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-xl\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .vp-xl\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .vp-xl\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .vp-xl\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .vp-xl\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-xl\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-xl\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-xl\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .vp-xl\:grid-span-1 { grid-column:span 1 / span 1; } .vp-xl\:grid-span-2 { grid-column:span 2 / span 2; } .vp-xl\:grid-span-3 { grid-column:span 3 / span 3; } .vp-xl\:grid-span-4 { grid-column:span 4 / span 4; } .vp-xl\:grid-span-5 { grid-column:span 5 / span 5; } .vp-xl\:grid-span-6 { grid-column:span 6 / span 6; } .vp-xl\:grid-span-7 { grid-column:span 7 / span 7; } .vp-xl\:grid-span-8 { grid-column:span 8 / span 8; } .vp-xl\:grid-span-9 { grid-column:span 9 / span 9; } .vp-xl\:grid-span-10 { grid-column:span 10 / span 10; } .vp-xl\:grid-span-11 { grid-column:span 11 / span 11; } .vp-xl\:grid-span-12 { grid-column:span 12 / span 12; } }
4374
+ @media (min-width:1536px) { .vp-2xl\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .vp-2xl\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .vp-2xl\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .vp-2xl\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .vp-2xl\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .vp-2xl\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .vp-2xl\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .vp-2xl\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .vp-2xl\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .vp-2xl\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .vp-2xl\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .vp-2xl\:field-horizontal>*:not(.label) { grid-column:2; } .vp-2xl\:field-vertical { display:flex; flex-direction:column; gap:7px; } .vp-2xl\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .vp-2xl\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .vp-2xl\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .vp-2xl\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .vp-2xl\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .vp-2xl\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .vp-2xl\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .vp-2xl\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .vp-2xl\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .vp-2xl\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .vp-2xl\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .vp-2xl\:grid-span-1 { grid-column:span 1 / span 1; } .vp-2xl\:grid-span-2 { grid-column:span 2 / span 2; } .vp-2xl\:grid-span-3 { grid-column:span 3 / span 3; } .vp-2xl\:grid-span-4 { grid-column:span 4 / span 4; } .vp-2xl\:grid-span-5 { grid-column:span 5 / span 5; } .vp-2xl\:grid-span-6 { grid-column:span 6 / span 6; } .vp-2xl\:grid-span-7 { grid-column:span 7 / span 7; } .vp-2xl\:grid-span-8 { grid-column:span 8 / span 8; } .vp-2xl\:grid-span-9 { grid-column:span 9 / span 9; } .vp-2xl\:grid-span-10 { grid-column:span 10 / span 10; } .vp-2xl\:grid-span-11 { grid-column:span 11 / span 11; } .vp-2xl\:grid-span-12 { grid-column:span 12 / span 12; } }
3513
4375
 
3514
4376
  /* por CONTAINER — o componente responde ao ESPAÇO EM QUE FOI COLOCADO */
3515
- @container aurea (min-width:360px) { .ct-2xs\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-2xs\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .ct-2xs\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .ct-2xs\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .ct-2xs\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-2xs\:btn-group-vertical { flex-direction:column; align-items:stretch; } .ct-2xs\:btn-group-horizontal { flex-direction:row; align-items:center; } .ct-2xs\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-2xs\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-2xs\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-2xs\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-2xs\:field-horizontal>*:not(.label) { grid-column:2; } .ct-2xs\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-2xs\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-2xs\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-2xs\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-2xs\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .ct-2xs\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-2xs\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-2xs\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-2xs\:grid-span-1 { grid-column:span 1 / span 1; } .ct-2xs\:grid-span-2 { grid-column:span 2 / span 2; } .ct-2xs\:grid-span-3 { grid-column:span 3 / span 3; } .ct-2xs\:grid-span-4 { grid-column:span 4 / span 4; } .ct-2xs\:grid-span-5 { grid-column:span 5 / span 5; } .ct-2xs\:grid-span-6 { grid-column:span 6 / span 6; } .ct-2xs\:grid-span-7 { grid-column:span 7 / span 7; } .ct-2xs\:grid-span-8 { grid-column:span 8 / span 8; } .ct-2xs\:grid-span-9 { grid-column:span 9 / span 9; } .ct-2xs\:grid-span-10 { grid-column:span 10 / span 10; } .ct-2xs\:grid-span-11 { grid-column:span 11 / span 11; } .ct-2xs\:grid-span-12 { grid-column:span 12 / span 12; } }
3516
- @container aurea (min-width:480px) { .ct-xs\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-xs\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .ct-xs\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .ct-xs\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .ct-xs\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-xs\:btn-group-vertical { flex-direction:column; align-items:stretch; } .ct-xs\:btn-group-horizontal { flex-direction:row; align-items:center; } .ct-xs\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-xs\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-xs\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-xs\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-xs\:field-horizontal>*:not(.label) { grid-column:2; } .ct-xs\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-xs\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-xs\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-xs\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-xs\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .ct-xs\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-xs\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-xs\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-xs\:grid-span-1 { grid-column:span 1 / span 1; } .ct-xs\:grid-span-2 { grid-column:span 2 / span 2; } .ct-xs\:grid-span-3 { grid-column:span 3 / span 3; } .ct-xs\:grid-span-4 { grid-column:span 4 / span 4; } .ct-xs\:grid-span-5 { grid-column:span 5 / span 5; } .ct-xs\:grid-span-6 { grid-column:span 6 / span 6; } .ct-xs\:grid-span-7 { grid-column:span 7 / span 7; } .ct-xs\:grid-span-8 { grid-column:span 8 / span 8; } .ct-xs\:grid-span-9 { grid-column:span 9 / span 9; } .ct-xs\:grid-span-10 { grid-column:span 10 / span 10; } .ct-xs\:grid-span-11 { grid-column:span 11 / span 11; } .ct-xs\:grid-span-12 { grid-column:span 12 / span 12; } }
3517
- @container aurea (min-width:640px) { .ct-sm\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-sm\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .ct-sm\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .ct-sm\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .ct-sm\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-sm\:btn-group-vertical { flex-direction:column; align-items:stretch; } .ct-sm\:btn-group-horizontal { flex-direction:row; align-items:center; } .ct-sm\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-sm\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-sm\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-sm\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-sm\:field-horizontal>*:not(.label) { grid-column:2; } .ct-sm\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-sm\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-sm\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-sm\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-sm\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .ct-sm\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-sm\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-sm\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-sm\:grid-span-1 { grid-column:span 1 / span 1; } .ct-sm\:grid-span-2 { grid-column:span 2 / span 2; } .ct-sm\:grid-span-3 { grid-column:span 3 / span 3; } .ct-sm\:grid-span-4 { grid-column:span 4 / span 4; } .ct-sm\:grid-span-5 { grid-column:span 5 / span 5; } .ct-sm\:grid-span-6 { grid-column:span 6 / span 6; } .ct-sm\:grid-span-7 { grid-column:span 7 / span 7; } .ct-sm\:grid-span-8 { grid-column:span 8 / span 8; } .ct-sm\:grid-span-9 { grid-column:span 9 / span 9; } .ct-sm\:grid-span-10 { grid-column:span 10 / span 10; } .ct-sm\:grid-span-11 { grid-column:span 11 / span 11; } .ct-sm\:grid-span-12 { grid-column:span 12 / span 12; } }
3518
- @container aurea (min-width:768px) { .ct-md\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-md\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .ct-md\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .ct-md\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .ct-md\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-md\:btn-group-vertical { flex-direction:column; align-items:stretch; } .ct-md\:btn-group-horizontal { flex-direction:row; align-items:center; } .ct-md\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-md\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-md\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-md\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-md\:field-horizontal>*:not(.label) { grid-column:2; } .ct-md\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-md\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-md\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-md\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-md\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .ct-md\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-md\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-md\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-md\:grid-span-1 { grid-column:span 1 / span 1; } .ct-md\:grid-span-2 { grid-column:span 2 / span 2; } .ct-md\:grid-span-3 { grid-column:span 3 / span 3; } .ct-md\:grid-span-4 { grid-column:span 4 / span 4; } .ct-md\:grid-span-5 { grid-column:span 5 / span 5; } .ct-md\:grid-span-6 { grid-column:span 6 / span 6; } .ct-md\:grid-span-7 { grid-column:span 7 / span 7; } .ct-md\:grid-span-8 { grid-column:span 8 / span 8; } .ct-md\:grid-span-9 { grid-column:span 9 / span 9; } .ct-md\:grid-span-10 { grid-column:span 10 / span 10; } .ct-md\:grid-span-11 { grid-column:span 11 / span 11; } .ct-md\:grid-span-12 { grid-column:span 12 / span 12; } }
3519
- @container aurea (min-width:1024px) { .ct-lg\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-lg\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:12px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs)} .ct-lg\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:15px;--step-field-px:13px;--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem} .ct-lg\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:20px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem} .ct-lg\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-lg\:btn-group-vertical { flex-direction:column; align-items:stretch; } .ct-lg\:btn-group-horizontal { flex-direction:row; align-items:center; } .ct-lg\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-lg\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-lg\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-lg\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-lg\:field-horizontal>*:not(.label) { grid-column:2; } .ct-lg\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-lg\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-lg\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-lg\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-lg\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-1); } .ct-lg\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-lg\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-lg\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-lg\:grid-span-1 { grid-column:span 1 / span 1; } .ct-lg\:grid-span-2 { grid-column:span 2 / span 2; } .ct-lg\:grid-span-3 { grid-column:span 3 / span 3; } .ct-lg\:grid-span-4 { grid-column:span 4 / span 4; } .ct-lg\:grid-span-5 { grid-column:span 5 / span 5; } .ct-lg\:grid-span-6 { grid-column:span 6 / span 6; } .ct-lg\:grid-span-7 { grid-column:span 7 / span 7; } .ct-lg\:grid-span-8 { grid-column:span 8 / span 8; } .ct-lg\:grid-span-9 { grid-column:span 9 / span 9; } .ct-lg\:grid-span-10 { grid-column:span 10 / span 10; } .ct-lg\:grid-span-11 { grid-column:span 11 / span 11; } .ct-lg\:grid-span-12 { grid-column:span 12 / span 12; } }
4377
+ @container aurea (min-width:360px) { .ct-2xs\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-2xs\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .ct-2xs\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .ct-2xs\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .ct-2xs\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-2xs\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .ct-2xs\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .ct-2xs\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-2xs\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-2xs\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-2xs\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-2xs\:field-horizontal>*:not(.label) { grid-column:2; } .ct-2xs\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-2xs\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-2xs\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-2xs\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-2xs\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .ct-2xs\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .ct-2xs\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .ct-2xs\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .ct-2xs\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-2xs\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-2xs\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-2xs\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .ct-2xs\:grid-span-1 { grid-column:span 1 / span 1; } .ct-2xs\:grid-span-2 { grid-column:span 2 / span 2; } .ct-2xs\:grid-span-3 { grid-column:span 3 / span 3; } .ct-2xs\:grid-span-4 { grid-column:span 4 / span 4; } .ct-2xs\:grid-span-5 { grid-column:span 5 / span 5; } .ct-2xs\:grid-span-6 { grid-column:span 6 / span 6; } .ct-2xs\:grid-span-7 { grid-column:span 7 / span 7; } .ct-2xs\:grid-span-8 { grid-column:span 8 / span 8; } .ct-2xs\:grid-span-9 { grid-column:span 9 / span 9; } .ct-2xs\:grid-span-10 { grid-column:span 10 / span 10; } .ct-2xs\:grid-span-11 { grid-column:span 11 / span 11; } .ct-2xs\:grid-span-12 { grid-column:span 12 / span 12; } }
4378
+ @container aurea (min-width:480px) { .ct-xs\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-xs\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .ct-xs\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .ct-xs\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .ct-xs\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-xs\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .ct-xs\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .ct-xs\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-xs\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-xs\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-xs\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-xs\:field-horizontal>*:not(.label) { grid-column:2; } .ct-xs\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-xs\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-xs\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-xs\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-xs\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .ct-xs\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .ct-xs\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .ct-xs\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .ct-xs\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-xs\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-xs\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-xs\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .ct-xs\:grid-span-1 { grid-column:span 1 / span 1; } .ct-xs\:grid-span-2 { grid-column:span 2 / span 2; } .ct-xs\:grid-span-3 { grid-column:span 3 / span 3; } .ct-xs\:grid-span-4 { grid-column:span 4 / span 4; } .ct-xs\:grid-span-5 { grid-column:span 5 / span 5; } .ct-xs\:grid-span-6 { grid-column:span 6 / span 6; } .ct-xs\:grid-span-7 { grid-column:span 7 / span 7; } .ct-xs\:grid-span-8 { grid-column:span 8 / span 8; } .ct-xs\:grid-span-9 { grid-column:span 9 / span 9; } .ct-xs\:grid-span-10 { grid-column:span 10 / span 10; } .ct-xs\:grid-span-11 { grid-column:span 11 / span 11; } .ct-xs\:grid-span-12 { grid-column:span 12 / span 12; } }
4379
+ @container aurea (min-width:640px) { .ct-sm\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-sm\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .ct-sm\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .ct-sm\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .ct-sm\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-sm\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .ct-sm\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .ct-sm\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-sm\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-sm\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-sm\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-sm\:field-horizontal>*:not(.label) { grid-column:2; } .ct-sm\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-sm\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-sm\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-sm\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-sm\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .ct-sm\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .ct-sm\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .ct-sm\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .ct-sm\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-sm\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-sm\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-sm\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .ct-sm\:grid-span-1 { grid-column:span 1 / span 1; } .ct-sm\:grid-span-2 { grid-column:span 2 / span 2; } .ct-sm\:grid-span-3 { grid-column:span 3 / span 3; } .ct-sm\:grid-span-4 { grid-column:span 4 / span 4; } .ct-sm\:grid-span-5 { grid-column:span 5 / span 5; } .ct-sm\:grid-span-6 { grid-column:span 6 / span 6; } .ct-sm\:grid-span-7 { grid-column:span 7 / span 7; } .ct-sm\:grid-span-8 { grid-column:span 8 / span 8; } .ct-sm\:grid-span-9 { grid-column:span 9 / span 9; } .ct-sm\:grid-span-10 { grid-column:span 10 / span 10; } .ct-sm\:grid-span-11 { grid-column:span 11 / span 11; } .ct-sm\:grid-span-12 { grid-column:span 12 / span 12; } }
4380
+ @container aurea (min-width:768px) { .ct-md\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-md\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .ct-md\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .ct-md\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .ct-md\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-md\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .ct-md\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .ct-md\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-md\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-md\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-md\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-md\:field-horizontal>*:not(.label) { grid-column:2; } .ct-md\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-md\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-md\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-md\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-md\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .ct-md\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .ct-md\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .ct-md\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .ct-md\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-md\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-md\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-md\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .ct-md\:grid-span-1 { grid-column:span 1 / span 1; } .ct-md\:grid-span-2 { grid-column:span 2 / span 2; } .ct-md\:grid-span-3 { grid-column:span 3 / span 3; } .ct-md\:grid-span-4 { grid-column:span 4 / span 4; } .ct-md\:grid-span-5 { grid-column:span 5 / span 5; } .ct-md\:grid-span-6 { grid-column:span 6 / span 6; } .ct-md\:grid-span-7 { grid-column:span 7 / span 7; } .ct-md\:grid-span-8 { grid-column:span 8 / span 8; } .ct-md\:grid-span-9 { grid-column:span 9 / span 9; } .ct-md\:grid-span-10 { grid-column:span 10 / span 10; } .ct-md\:grid-span-11 { grid-column:span 11 / span 11; } .ct-md\:grid-span-12 { grid-column:span 12 / span 12; } }
4381
+ @container aurea (min-width:1024px) { .ct-lg\:size-xs{--step-h:var(--control-h-xs);--step-fs:var(--text-xs);--step-gap:6px;--step-px:10px;--step-field-px:var(--space-3);--step-select-pe:var(--space-8)} .ct-lg\:size-sm{--step-h:var(--control-h-sm);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-3);--step-field-px:var(--space-3);--step-select-pe:var(--space-8);--step-icon:var(--icon-sm);--step-qr:7.5rem;--step-avatar-fs:var(--text-xs);--step-avatar:var(--space-8)} .ct-lg\:size-md{--step-h:var(--control-h-md);--step-fs:var(--text-sm);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-3);--step-select-pe:38px;--step-icon:var(--icon-md);--step-qr:10rem;--step-avatar-fs:var(--text-sm);--step-avatar:var(--space-10)} .ct-lg\:size-lg{--step-h:var(--control-h-lg);--step-fs:var(--text-base);--step-gap:8px;--step-px:var(--space-4);--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-lg);--step-qr:15rem;--step-avatar-fs:var(--text-base);--step-avatar:var(--space-12)} .ct-lg\:size-xl{--step-h:var(--control-h-xl);--step-fs:var(--text-base);--step-gap:10px;--step-px:26px;--step-field-px:var(--space-4);--step-select-pe:calc(var(--space-10) + var(--space-1));--step-icon:var(--icon-xl)} .ct-lg\:btn-group-vertical { flex-direction:column; align-items:stretch; --btn-group-h:0; --btn-group-v:var(--radius-full); --btn-group-sep-i:25%; --btn-group-sep-b:0; --btn-group-sep-w:50%; --btn-group-sep-h:var(--border-width); --btn-group-bi:var(--border-width); --btn-group-bb:0; } .ct-lg\:btn-group-horizontal { flex-direction:row; align-items:center; --btn-group-h:var(--radius-full); --btn-group-v:0; --btn-group-sep-i:0; --btn-group-sep-b:25%; --btn-group-sep-w:var(--border-width); --btn-group-sep-h:50%; --btn-group-bi:0; --btn-group-bb:var(--border-width); } .ct-lg\:range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; } .ct-lg\:range-horizontal { writing-mode:horizontal-tb; direction:inherit; inline-size:auto; width:100%; } .ct-lg\:field-horizontal { display:grid; grid-template-columns:minmax(0,var(--field-label-width,12rem)) minmax(0,1fr); align-items:center; column-gap:var(--space-4); row-gap:var(--space-1); } .ct-lg\:field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); } .ct-lg\:field-horizontal>*:not(.label) { grid-column:2; } .ct-lg\:field-vertical { display:flex; flex-direction:column; gap:7px; } .ct-lg\:field-vertical>.label { flex-direction:row; align-items:stretch; justify-content:space-between; gap:12px; } .ct-lg\:input-group-addon-inline { inline-size:auto; justify-content:normal; } .ct-lg\:input-group-addon-inline.input-group-addon-start { padding-inline:var(--space-3); } .ct-lg\:input-group-addon-inline.input-group-addon-end { padding-inline-end:var(--space-3); } .ct-lg\:input-group-addon-inline.input-group-addon-end:where(:has(> .btn:last-child)) { padding-inline-end:var(--space-1); } .ct-lg\:input-group-addon-inline.input-group-addon-end:where(:has(> .kbd:last-child)) { padding-inline-end:var(--space-2); } .ct-lg\:input-group-addon-inline.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:0; } .ct-lg\:input-group-addon-block { inline-size:100%; justify-content:flex-start; } .ct-lg\:input-group-addon-block.input-group-addon-start { padding:var(--space-2) var(--space-3) 0; } .ct-lg\:input-group-addon-block.input-group-addon-end { padding:0 var(--space-3) var(--space-2); } .ct-lg\:input-group-addon-block.input-group-addon-start + :is(.input,.select,.textarea) { padding-inline-start:var(--step-field-px,var(--space-3)); } .ct-lg\:grid-span-1 { grid-column:span 1 / span 1; } .ct-lg\:grid-span-2 { grid-column:span 2 / span 2; } .ct-lg\:grid-span-3 { grid-column:span 3 / span 3; } .ct-lg\:grid-span-4 { grid-column:span 4 / span 4; } .ct-lg\:grid-span-5 { grid-column:span 5 / span 5; } .ct-lg\:grid-span-6 { grid-column:span 6 / span 6; } .ct-lg\:grid-span-7 { grid-column:span 7 / span 7; } .ct-lg\:grid-span-8 { grid-column:span 8 / span 8; } .ct-lg\:grid-span-9 { grid-column:span 9 / span 9; } .ct-lg\:grid-span-10 { grid-column:span 10 / span 10; } .ct-lg\:grid-span-11 { grid-column:span 11 / span 11; } .ct-lg\:grid-span-12 { grid-column:span 12 / span 12; } }
3520
4382
  /* <<< fim da camada responsiva >>> */
3521
4383
  }