@aurea-uds/core 0.30.0 → 0.32.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 +955 -198
  2. package/package.json +1 -1
package/dist/aurea.css CHANGED
@@ -21,6 +21,11 @@
21
21
  --leading-tight:1.2;
22
22
  --leading-normal:1.5;
23
23
  --leading-relaxed:1.7;
24
+ --text-4xl-leading:1.111111;
25
+ --text-3xl-leading:1.2;
26
+ --text-2xl-leading:1.333333;
27
+ --text-xl-leading:1.4;
28
+ --text-lg-leading:1.555556;
24
29
  --space-0:0;
25
30
  --space-05:0.125rem;
26
31
  --space-1:0.25rem;
@@ -75,12 +80,12 @@
75
80
  --breakpoint-xl:1280px;
76
81
  --breakpoint-2xl:1536px;
77
82
  --control-h-xs:1.625rem;
78
- --control-h-sm:1.875rem;
83
+ --control-h-sm:2rem;
79
84
  --control-h-md:2.25rem;
80
- --control-h-lg:2.625rem;
85
+ --control-h-lg:2.5rem;
81
86
  --control-h-xl:3.125rem;
82
87
  --row-h:3rem;
83
- --card-pad:1.25rem;
88
+ --card-pad:1rem;
84
89
  --section-gap:1.5rem;
85
90
  --media-canvas:oklch(0.085 0 0);
86
91
  --media-foreground:oklch(0.985 0 0);
@@ -443,30 +448,39 @@
443
448
  --control-h-xs:1.5rem;
444
449
  --control-h-sm:1.75rem;
445
450
  --control-h-md:2rem;
446
- --control-h-lg:2.375rem;
451
+ --control-h-lg:2.25rem;
447
452
  --control-h-xl:2.75rem;
453
+ --touch-control-h-sm:2.25rem;
454
+ --touch-control-h-md:2.75rem;
455
+ --touch-control-h-lg:3.25rem;
448
456
  --row-h:2.625rem;
449
- --card-pad:1rem;
457
+ --card-pad:0.75rem;
450
458
  --section-gap:1.125rem;
451
459
  }
452
460
  [data-density="comfortable"]{
453
461
  --control-h-xs:1.625rem;
454
- --control-h-sm:1.875rem;
462
+ --control-h-sm:2rem;
455
463
  --control-h-md:2.25rem;
456
- --control-h-lg:2.625rem;
464
+ --control-h-lg:2.5rem;
457
465
  --control-h-xl:3.125rem;
466
+ --touch-control-h-sm:2.5rem;
467
+ --touch-control-h-md:3rem;
468
+ --touch-control-h-lg:3.5rem;
458
469
  --row-h:3rem;
459
- --card-pad:1.25rem;
470
+ --card-pad:1rem;
460
471
  --section-gap:1.5rem;
461
472
  }
462
473
  [data-density="spacious"]{
463
474
  --control-h-xs:1.75rem;
464
- --control-h-sm:2.125rem;
475
+ --control-h-sm:2.25rem;
465
476
  --control-h-md:2.5rem;
466
- --control-h-lg:3rem;
477
+ --control-h-lg:2.75rem;
467
478
  --control-h-xl:3.5rem;
479
+ --touch-control-h-sm:2.75rem;
480
+ --touch-control-h-md:3.25rem;
481
+ --touch-control-h-lg:3.75rem;
468
482
  --row-h:3.375rem;
469
- --card-pad:1.5rem;
483
+ --card-pad:1.25rem;
470
484
  --section-gap:2rem;
471
485
  }
472
486
  /* 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 +503,11 @@ button,a,[role="button"],input,textarea,select { outline:none; }
489
503
  o vão: colado, o anel amarelo sumiria no botão amarelo.
490
504
  Quem cobra que nenhuma peça ficou de fora é o catálogo inteiro, no navegador:
491
505
  `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); }
506
+ :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); }
507
+ /* A amostra ESCOLHIDA do `ColorSwatch options` (0.32.0) tem borda — a da cor dela — e o foco mora no botão de
508
+ 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
509
+ escolha A do Victor, nenhuma peça com duas linhas (a varredura do catálogo pegou, 14/10/2026). */
510
+ .color-swatch-option:has(:checked:focus-visible) { outline-offset:0; border-color:var(--focus-strong); }
493
511
  button { color:inherit; }
494
512
  /* O link NÃO é `--primary`. Medido em 22/08/2026 com o axe e depois à mão: o amarelo da
495
513
  marca sobre o fundo do tema CLARO dá 1,73:1, e o AA de texto (WCAG 1.4.3) pede 4,5:1 —
@@ -734,6 +752,32 @@ img,svg { display:block; }
734
752
  variante que desenha igual é enfeite. `--shell-top` volta a ser só a altura do topo, porque sem
735
753
  margem não há as duas folgas a descontar. */
736
754
  .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; }
755
+ /* `placement="right"` (0.32.0, DOC-01): a lateral do outro lado. A flutuante já tem margem nos quatro
756
+ lados; a encostada leva o fio para o lado de dentro, que agora é o começo da linha. */
757
+ .sidebar-flush.sidebar-right { border-inline-end:0; border-inline-start:1px solid var(--sidebar-border); }
758
+ /* SEM CAIXA é outra variante (0.32.0): `plain`, o nome que a Aurea já dá ao "sem caixa" (`contentVariant`,
759
+ o painel do `Tabs`, o `KPI`). É a coluna "On this page" de uma documentação, como a da referência: os
760
+ itens soltos na página. Tira só a PINTURA — fundo, cor da borda, sombra — e guarda a geometria da
761
+ flutuante (margens, altura, a mesma borda de 1, agora invisível), então trocar de variante não mexe em
762
+ nada de lugar. O texto continua na escala da lateral: medido nos quatro (Aurea e `lory`, claro e
763
+ escuro), o `--sidebar-foreground` é o mesmo `--foreground` da página. */
764
+ .sidebar-plain { border-color:transparent; background:transparent; box-shadow:none; }
765
+ /* A COLUNA DA DIREITA do `AppShell` (`aside`): a terceira trilha, da largura da lateral, de 1280 para
766
+ cima. Abaixo, ela desce para depois do conteúdo, na última coluna que houver (a do conteúdo entre
767
+ 1024 e 1279; a única abaixo de 1024), sem grudar. Com ela, o conteúdo perde a margem da direita: a
768
+ folga entre os dois é a margem da coluna, como entre a lateral e o conteúdo. */
769
+ .app-shell-with-aside { --aside-track:calc(var(--sidebar-width) + var(--space-4)*2); }
770
+ .app-shell-with-aside:has(> .app-shell-aside.sidebar-flush) { --aside-track:var(--sidebar-width); }
771
+ /* `.sidebar.app-shell-aside` (três classes) e não só a classe da coluna: a regra do shell recolhível
772
+ (`.app-shell-collapsible > .sidebar`, mais abaixo na folha) prende TODA lateral na coluna 1, e com
773
+ a mesma força ganharia por vir depois. */
774
+ .app-shell-with-aside > .sidebar.app-shell-aside { grid-column:-2 / -1; grid-row:auto; }
775
+ @media (max-width:1279px) { .app-shell-with-aside > .sidebar.app-shell-aside { position:static; height:auto; max-height:none; } }
776
+ @media (min-width:1280px) {
777
+ .app-shell-with-aside { grid-template-columns:var(--sidebar-track) minmax(0,1fr) var(--aside-track); }
778
+ .app-shell-with-aside > .content.content { grid-column:2; grid-row:2; margin-inline-end:0; }
779
+ .app-shell-with-aside > .sidebar.app-shell-aside { grid-column:3; grid-row:2; }
780
+ }
737
781
  /* a lateral ROLA mas nunca mostra a barra (pedido do Victor): a barra nativa risca a
738
782
  superfície flutuante e não segue o raio de 22px. `scrollbar-width` cobre Firefox e
739
783
  Chrome 121+; o pseudo cobre Safari e Chrome antigo. */
@@ -838,7 +882,14 @@ img,svg { display:block; }
838
882
  `--sidebar-accent` e `--sidebar-accent-foreground` já eram PUBLICADOS e não tinham um único
839
883
  uso no core — token publicado que ninguém usa é promessa sem entrega, e era o par certo o
840
884
  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); } }
885
+ /* O ITEM ESMAECIDO, como o da referência (ADR-0067, decisão do Victor de 13/10/2026, vendo os dois rodando:
886
+ "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;
887
+ passando o mouse, o item acende. O cinza sai da ESCALA DA LATERAL (o texto dela, esmaecido), e não do
888
+ `--muted-foreground` da página — sob a marca `lory` a lateral é escura e a página não (a lição de
889
+ 20/08/2026, logo abaixo). Medido contra o fundo da lateral (13/10/2026): 7,6:1 no escuro e 5,4:1 no
890
+ claro; na marca `lory`, 7,8:1 e 5,6:1 — o branco de antes era 14,5:1. */
891
+ .sidebar-item:not([aria-current]) { color:color-mix(in oklab, var(--sidebar-foreground) 68%, transparent); }
892
+ @media (hover:hover) and (pointer:fine) { .sidebar-item:hover { background:var(--sidebar-accent); } .sidebar-item:not([aria-current]):hover { color:var(--sidebar-foreground); } }
842
893
  /* A-05 (24/09/2026), decisão do Victor: o item atual da lateral passa a usar a MARCA DA CASA para
843
894
  "selecionado" — fundo, texto na cor da marca e o fio de 2px embaixo —, que o `Toggle`, o
844
895
  `SegmentedControl`, o `Button variant="nav"` e a navegação do catálogo (`.doc-nav`) já usavam.
@@ -857,7 +908,10 @@ img,svg { display:block; }
857
908
  `--sidebar-foreground` em vez de token novo — a lateral não publica um "muted" dela. */
858
909
  /* 72% e não 62% desde a 0.27.0 (ADR-0061): com a letra da paleta nova (#242424, menos preta) os 62%
859
910
  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; }
911
+ /* O título de grupo da lateral é o da referência (ADR-0067, decisão do Victor de 13/10/2026: "igual ao dela"):
912
+ letra 14, peso médio, SEM maiúsculas, na cor do texto da lateral — mais forte que o item, que é
913
+ esmaecido; 16 antes do grupo. Era 12, em maiúsculas espaçadas, esmaecido. */
914
+ .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
915
  .sidebar-sub { padding-inline-start:var(--space-5); }
862
916
  /* RECOLHIDA — a lateral vira trilho de ícones. O rótulo NÃO some do DOM: o React troca a
863
917
  classe dele por `.sr-only`, então quem usa leitor de tela continua ouvindo o nome. Ícone
@@ -1166,7 +1220,10 @@ img,svg { display:block; }
1166
1220
  `min-width:0` o conteúdo mínimo do flex é o texto inteiro, e o rótulo longo empurra o valor e a
1167
1221
  seta para fora da linha em vez de reticenciar. É a mesma família do defeito que a `pill` da
1168
1222
  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; }
1223
+ .nav-list-text { flex:1; min-width:0; display:grid; grid-template-columns:minmax(0,1fr); }
1224
+ /* MNT-23, "quem mais" (12/10/2026): a NavList empurrava a página como a árvore (360 → 729), pelo mesmo
1225
+ motivo — o `min-width:0` faz o texto encolher DENTRO da linha, mas a largura mínima da lista ainda era
1226
+ o rótulo inteiro. A grade de uma coluna `minmax(0,1fr)` pede zero e, quando cabe, mostra tudo. */
1170
1227
  .nav-list-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1171
1228
  .nav-list-description { overflow:hidden; color:var(--muted-foreground); font-size:var(--text-xs); text-overflow:ellipsis; white-space:nowrap; }
1172
1229
  /* 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 +1297,15 @@ img,svg { display:block; }
1240
1297
  /* GAR-14 (0.28.0): o recheio do botão vale também para o aviso preso a ele (`.toast-anchored`),
1241
1298
  que tem a MEDIDA do botão — pedido do Victor na bancada. Uma regra só, para os dois nunca
1242
1299
  divergirem e para o número não se repetir. */
1243
- .btn,.toast-anchored { padding-inline:var(--step-px,15px); }
1300
+ .btn,.toast-anchored { padding-inline:var(--step-px,var(--space-4)); }
1301
+ /* 0.32.0 — o ícone do botão é o da referência: 16 em tela de 640 para cima, 20 abaixo (no celular),
1302
+ e 16 sempre no `sm` e no `xs`. Era 20 sempre. O tamanho vai no próprio `.icon` (o `--step-icon`
1303
+ não herda), e o ícone de quem pediu outro tamanho (`size` no `Icon`) não é tocado. O `:where()`
1304
+ deixa a regra com a força de UMA classe: a peça que tem medida própria de ícone (o X do
1305
+ `CloseButton`, o link do `MediaEmbed`) continua mandando. */
1306
+ .btn :where(.icon:not(.icon-sm,.icon-lg,.icon-xl)) { --step-icon:var(--icon-md); }
1307
+ @media (min-width:640px) { .btn :where(.icon:not(.icon-sm,.icon-lg,.icon-xl)) { --step-icon:var(--icon-sm); } }
1308
+ .btn-sm :where(.icon:not(.icon-lg,.icon-xl)),.btn-xs :where(.icon:not(.icon-lg,.icon-xl)) { --step-icon:var(--icon-sm); }
1244
1309
  .btn:hover:not(:disabled):not([aria-disabled="true"]) { transform:none; } .btn:active:not(:disabled) { transform:scale(.97); opacity:.9; }
1245
1310
  /* Duas formas de "não dá para fazer isto", e a diferença é QUEM alcança a explicação.
1246
1311
  `:disabled` tira o controle da ordem de foco — medido em 13/08/2026: quem usa teclado nunca
@@ -1262,8 +1327,8 @@ img,svg { display:block; }
1262
1327
  sobrescrita por variável que o autor já não leu. Fazer o valor passar pela variável é o que
1263
1328
  permite a camada responsiva existir UMA vez, genérica, em vez de uma vez por componente. */
1264
1329
  .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); }
1330
+ .btn-sm { --step-h:var(--control-h-sm); --step-px:var(--space-3); --step-fs:var(--text-sm); border-radius:var(--radius-control); }
1331
+ .btn-lg { --step-h:var(--control-h-lg); --step-px:var(--space-4); --step-fs:var(--text-base); border-radius:var(--radius-control); }
1267
1332
  .btn-xl { --step-h:var(--control-h-xl); --step-px:26px; --step-gap:10px; --step-fs:var(--text-base); border-radius:var(--radius-control); }
1268
1333
  /* Largura total: para rodapé de formulário e tela estreita. Só a largura muda. */
1269
1334
  .btn-block { width:100%; }
@@ -1282,8 +1347,14 @@ img,svg { display:block; }
1282
1347
  .skip-link:focus-visible { transform:translateY(0); outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
1283
1348
  .btn-primary { --btn-bg:var(--primary); --btn-fg:var(--primary-foreground); --btn-border:transparent; }
1284
1349
  .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; }
1350
+ /* 0.32.0 — os dois botões de fundo neutro da referência (decisão do Victor, 11/10/2026, "A"):
1351
+ o `secondary` com a LETRA DA MARCA (o `--primary-emphasis`, que segue a marca) e o `tertiary` com a
1352
+ letra normal — o `secondary` de até a 0.31.0, e o padrão do `Button` sem `variant`. A regra dela
1353
+ para escolher: salvar é o primário, editar o secundário, cancelar o terciário. */
1354
+ .btn-secondary { --btn-bg:var(--secondary); --btn-fg:var(--primary-emphasis); --btn-border:transparent; }
1286
1355
  .btn-secondary:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:var(--secondary-hover); --btn-border:transparent; }
1356
+ .btn-tertiary { --btn-bg:var(--secondary); --btn-fg:var(--secondary-foreground); --btn-border:transparent; }
1357
+ .btn-tertiary:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:var(--secondary-hover); --btn-border:transparent; }
1287
1358
  .btn-outline { --btn-bg:transparent; --btn-fg:var(--foreground); --btn-border:var(--border-strong); }
1288
1359
  .btn-outline:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:var(--accent); }
1289
1360
  .btn-ghost { --btn-bg:transparent; --btn-fg:var(--foreground); --btn-border:transparent; }
@@ -1329,14 +1400,24 @@ img,svg { display:block; }
1329
1400
  [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
1401
  .btn-link-danger { --btn-fg:var(--danger-400); }
1331
1402
  /* 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); }
1403
+ /* Kbd — a tecla que dispara a ação, dentro ou fora do botão. Peça própria, não decoração.
1404
+ 0.32.0: as medidas da referência (24 de altura, 8 dos lados, letra 14 peso médio na fonte do
1405
+ texto, cinza neutro, sem borda); o canto é o nosso: cápsula, e CÍRCULO quando a tecla é um
1406
+ caractere só (`kbd-single`, que o componente põe sozinho). Era 20, letra 11 de código, borda. */
1407
+ .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; }
1408
+ .kbd-single { width:var(--space-6); padding:0; }
1334
1409
  /* dentro do botão a tecla herda a cor do rótulo, SEM opacidade: a 85% o contraste caía
1335
1410
  para 3.67:1 (axe) e o atalho é informação, não enfeite. O fundo já o separa. */
1336
1411
  /* Dentro do botão a tecla NÃO ganha fundo próprio: qualquer tinta escurece a cápsula e o
1337
1412
  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; }
1413
+ tecla é o MESMO do rótulo — se o botão passa, ela passa. O fio de currentColor separa (sem
1414
+ borda desde a 0.32.0, o fio é sombra por dentro, e não muda a medida).
1415
+ A MEDIDA de dentro do botão (20, para caber no botão pequeno) é declarada pela CLASSE que o `Button` põe no
1416
+ 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
1417
+ dividiam a página, e a trava de geometria (uma altura por classe) reprovou (14/10/2026). */
1418
+ .btn .kbd { background:transparent; box-shadow:inset 0 0 0 var(--border-width) color-mix(in oklab, currentColor 35%, transparent); color:inherit; }
1419
+ .btn-kbd { min-width:var(--space-5); height:var(--space-5); padding:0 var(--space-1); font-size:var(--text-xs); }
1420
+ .btn-kbd.kbd-single { width:var(--space-5); padding:0; }
1340
1421
 
1341
1422
  /* nav: item de navegação. Normal = ghost silencioso; o ATIVO (aria-current) ganha texto
1342
1423
  amarelo + traço embaixo — SEM borda (pedido do Victor). aria-current, não uma variante
@@ -1401,22 +1482,50 @@ img,svg { display:block; }
1401
1482
  /* xs e xl também precisam de largura: sem isto a altura mudava e a largura ficava na do
1402
1483
  md, e o alvo só-ícone deixava de ser quadrado (achado na onda Actions, 24/07). */
1403
1484
  .btn-icon.btn-xl { width:var(--control-h-xl); }
1485
+ /* CloseButton (HER-12, 0.32.0) — o botão de fechar da referência, quase idêntico: 24 × 24, o X de
1486
+ 16 no cinza neutro, esmaecido; escurece com o mouse (o `--secondary-hover` do `.btn-tertiary`) e
1487
+ encolhe para 93% ao apertar, como o dela. O canto é o nosso: círculo cheio. O tamanho do X vai no
1488
+ próprio `.icon`, porque o `--step-icon` não herda. No TOQUE o círculo não cresce: a área de 44
1489
+ (`--target-min`) é um `::before` invisível em volta dele, e o `.btn` de toque o deixa de fora da
1490
+ altura mínima (regra do `pointer:coarse`, mais abaixo). */
1491
+ .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); }
1492
+ .close-button .icon { --step-icon:var(--icon-sm); }
1493
+ .close-button:active:not(:disabled) { transform:scale(.93); }
1494
+ @media (pointer:coarse) { .close-button::before { content:""; position:absolute; inset:calc((var(--space-6) - var(--target-min)) / 2); border-radius:var(--radius-full); } }
1404
1495
  /* ThemeToggle (25/09/2026): a cor no ícone mostra o tema para onde se vai. No claro a LUA, na tinta
1405
1496
  do texto; no escuro o SOL, no amarelo da marca — as duas combinações se enxergam, e é por isso
1406
1497
  que o botão nunca mostra a lua no escuro nem o sol no claro. Mais específico que o `.btn:hover`,
1407
1498
  então a cor fica também com o mouse em cima. */
1408
1499
  .theme-toggle-moon .icon { color:var(--foreground); }
1409
1500
  .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; }
1501
+ /* GRUPOS COLADOS (0.32.0) — o `ButtonGroup` e o `ToggleGroup` da referência: os botões COLADOS numa
1502
+ cápsula só (vão 0), canto só nas pontas, um fio entre eles (a cor do texto a 15%, metade da
1503
+ altura), sem o encolher ao apertar (o grupo é uma peça só), e o contorno que não dobra entre
1504
+ vizinhos. Os cantos de dentro são retos, como os dela: quem desenha a forma é a cápsula inteira.
1505
+ Até a 0.31.0 eram cápsulas soltas com vão de 4 — continua existindo, como `detached` (o
1506
+ `isDetached` dela), e só ele quebra linha.
1507
+ A DIREÇÃO vem por variável, e não por regra de filho de cada direção: a direção do `ButtonGroup`
1508
+ pode mudar com a largura (camada responsiva, que copia o corpo de `.btn-group-vertical` — o
1509
+ gerador confere que os dois dizem o mesmo) e a do `ToggleGroup` vem do motor (`data-orientation`).
1510
+ Deitado: canto na ponta de dentro da linha (`--btn-group-h`), fio em pé; em pé, o contrário. */
1511
+ .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
1512
  /* Grupo VERTICAL (`G-AXIS-01`). `align-items:stretch` é o que faz os botões medirem igual: sem
1415
1513
  ele cada um teria a largura do próprio rótulo e a coluna ficaria serrilhada — que é o defeito
1416
1514
  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); }
1515
+ .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; }
1516
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn { position:relative; border-radius:0; }
1517
+ :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); }
1518
+ :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); }
1519
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn:only-child { border-radius:var(--radius-full); }
1520
+ :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; }
1521
+ :is(.btn-group:not(.btn-group-detached),.toggle-group:not(.toggle-group-detached)) > .btn:active:not(:disabled) { transform:none; }
1522
+ :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); }
1523
+ :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); }
1524
+ /* o anel de foco de um botão do meio fica por cima dos vizinhos, e não por baixo */
1525
+ :is(.btn-group,.toggle-group) > .btn:focus-visible { z-index:1; }
1526
+ .btn-group-detached,.toggle-group-detached { flex-wrap:wrap; gap:var(--space-1); }
1527
+ .btn-group-full,.toggle-group-full { display:flex; inline-size:100%; }
1528
+ :is(.btn-group-full,.toggle-group-full) > .btn { flex:1 1 0%; min-inline-size:0; }
1420
1529
  /* Toolbar: contêiner de controles; o roving tabindex vem do Base UI. */
1421
1530
  .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
1531
  /* Vertical sai da pílula: --radius-control (999px) clampa em 50% da menor
@@ -1445,8 +1554,11 @@ img,svg { display:block; }
1445
1554
  /* O spinner lê a MESMA escala de glifo, mas o degrau base dele é `sm` e não `md` — presumir
1446
1555
  `md` como base de toda família é o erro que esta atividade já cometeu duas vezes. */
1447
1556
  .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); } }
1557
+ /* 0.32.0: a escala da referência — 16 · 24 · 32 · 40. O componente nasce no `md` (24); o glifo cru
1558
+ continua no `sm` (16), dentro do botão e do aviso. */
1559
+ .spinner-md { --step-icon:var(--space-6); }
1560
+ .spinner-lg { --step-icon:var(--space-8); }
1561
+ .spinner-xl { --step-icon:var(--space-10); } @keyframes spin { to { transform:rotate(360deg); } }
1450
1562
 
1451
1563
  .field { display:flex; flex-direction:column; gap:7px; }
1452
1564
  /* CAMPO NA HORIZONTAL — rótulo à esquerda, controle à direita. É a linha do formulário de
@@ -1459,18 +1571,28 @@ img,svg { display:block; }
1459
1571
  .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
1572
  .field-horizontal>.label { grid-column:1; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-05); }
1461
1573
  .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); }
1574
+ /* 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
1575
+ descrição 12 com entrelinha 16, esmaecidas e SEM negrito (a dica mora na linha do rótulo e herdava
1576
+ o 600 dele). O obrigatório ganha o asterisco vermelho depois do rótulo, escondido do leitor de
1577
+ tela — quem anuncia "obrigatório" é o `required` do controle, e não o desenho. */
1578
+ .label { display:flex; justify-content:space-between; gap:12px; color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
1579
+ .hint { color:var(--muted-foreground); font-size:var(--text-xs); font-weight:var(--weight-regular); line-height:var(--space-4); }
1580
+ .label-required { margin-inline-start:var(--space-05); color:var(--danger-400); }
1581
+ .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
1582
  .input:hover,.textarea:hover,.select:hover { border-color:var(--border); }
1583
+ /* `variant="secondary"` (0.32.0), o da referência: o campo de fundo NEUTRO e sem borda à vista, para
1584
+ dentro de um cartão, onde o fundo de campo some contra o do cartão. A borda fica (transparente),
1585
+ para o foco continuar sendo a borda que muda de cor (ADR-0059). */
1586
+ .input-secondary,.textarea-secondary { background:var(--secondary); border-color:transparent; }
1587
+ .input-secondary:hover,.textarea-secondary:hover { background:var(--secondary-hover); border-color:transparent; }
1466
1588
  .input::placeholder,.textarea::placeholder { color:var(--subtle-foreground); }
1467
1589
  .input:disabled,.textarea:disabled,.select:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
1468
1590
  /* O `padding-inline` daqui tem de LER a variável também, e com o próprio padrão: a base do
1469
1591
  textarea vem DEPOIS da regra compartilhada e a sobrescrevia, congelando o padding em 14px nos
1470
1592
  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); }
1593
+ 0.32.0: a família de campo passa a ser uniforme no md, como na referência — 12 dos lados no campo
1594
+ e na área de texto (eram 13 e 14), e a área com 8 em cima e embaixo (eram 12). */
1595
+ .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
1596
  /* chevron: cor = --muted-foreground de cada tema (dark #a1a1a1, light #505050); tokenizar na Fase 1 */
1475
1597
  .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
1598
  [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 +1606,28 @@ img,svg { display:block; }
1484
1606
  /* NumberField (Lote 1): menos · campo · mais numa peça só, que é onde as referências convergem.
1485
1607
  O campo é `.input` — a mesma altura, o mesmo raio, o mesmo foco de qualquer campo do sistema.
1486
1608
  Largura em token para caber de 3 a 4 dígitos sem virar caixa de texto. */
1609
+ /* 0.32.0 — o da referência: UM GRUPO SÓ, com a borda e o fundo de campo, e os botões DENTRO dele
1610
+ (40 de largura, ícone 16), cada um separado do número por um fio (a cor esmaecida a 15%). Até a
1611
+ 0.31.0 eram dois botões fantasma soltos ao lado de um campo. O foco é o do `InputGroup`: o anel no
1612
+ grupo inteiro, que é a peça que a pessoa vê. No toque o grupo sobe para o alvo de 44, como os
1613
+ botões soltos subiam. */
1487
1614
  .number-field { display:inline-flex; }
1488
- .number-field-group { display:inline-flex; align-items:center; gap:var(--space-1); }
1615
+ .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); }
1616
+ .number-field-group:hover { border-color:var(--border); }
1617
+ .number-field-group:focus-within { outline:var(--focus-width) solid var(--focus-strong); outline-offset:0; border-color:var(--focus-strong); }
1489
1618
  .number-field-input { width:var(--space-16); text-align:center; font-variant-numeric:tabular-nums; }
1619
+ .number-field-group > .number-field-input { block-size:auto; border:0; border-radius:0; background:transparent; }
1620
+ .number-field-group > .number-field-input:focus-visible { outline:none; }
1621
+ .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); }
1622
+ .number-field-button .icon { --step-icon:var(--icon-sm); }
1623
+ .number-field-button:hover:not(:disabled) { background:var(--surface-hover); }
1624
+ .number-field-button:active:not(:disabled) { background:color-mix(in oklab, var(--foreground) 10%, transparent); }
1625
+ .number-field-button:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
1626
+ /* o anel do botão fica DENTRO dele: o grupo corta o que passa da borda */
1627
+ .number-field-button:focus-visible { outline-offset:calc(-1 * var(--focus-width)); }
1628
+ .number-field-decrement { border-inline-end:var(--border-width) solid color-mix(in oklab, var(--muted-foreground) 15%, transparent); }
1629
+ .number-field-increment { border-inline-start:var(--border-width) solid color-mix(in oklab, var(--muted-foreground) 15%, transparent); }
1630
+ @media (pointer:coarse) { .number-field-group { block-size:var(--target-min); } }
1490
1631
  /* A ALÇA DE ARRASTO (G-API-02), e só quando `scrubbable` está ligada.
1491
1632
  O motor já põe por ESTILO EM LINHA tudo o que é mecânica — `touch-action:none` e
1492
1633
  `user-select:none` na alça, e `position:fixed` mais o `transform` no cursor virtual, que ele
@@ -1511,7 +1652,8 @@ img,svg { display:block; }
1511
1652
  /* OTPField (Lote 1): um quadrado por dígito. O lado é a altura de controle, então a fila mede o
1512
1653
  mesmo que qualquer campo ao lado dela; o padding zera porque o dígito é centralizado. */
1513
1654
  .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); }
1655
+ /* 0.32.0: a casa da referência — 38 × 40, o número 18 em seminegrito (era 36 × 36, letra 14). */
1656
+ .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); }
1515
1657
  /* HoverCard (Lote 1) reusa `.popover`; só limita a largura, porque prévia é conteúdo, não rótulo. */
1516
1658
  .hover-card { max-width:min(20rem,calc(100vw - var(--space-8))); }
1517
1659
 
@@ -1523,6 +1665,11 @@ img,svg { display:block; }
1523
1665
  contorno do input de dentro ficaria escondido atrás da borda do grupo. */
1524
1666
  .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
1667
  .input-group:hover { border-color:var(--border); }
1668
+ /* A pele `secondary` do campo vale para o GRUPO, como o tamanho (abaixo): quem desenha a caixa é o grupo, e o
1669
+ `ColorField variant="secondary"` (e todo `InputGroup` com um `Input variant="secondary"` dentro) saía igual ao
1670
+ `primary` (medido na bancada em 14/10/2026). Antes do foco, para a borda do foco valer. */
1671
+ .input-group:has(>.input-secondary) { background:var(--secondary); border-color:transparent; }
1672
+ .input-group:has(>.input-secondary):hover { background:var(--secondary-hover); }
1526
1673
  .input-group:focus-within { outline:var(--focus-width) solid var(--focus-strong); outline-offset:0; border-color:var(--focus-strong); }
1527
1674
  .input-group:has(.input-sm) { min-block-size:var(--control-h-sm); }
1528
1675
  .input-group:has(.input-lg) { min-block-size:var(--control-h-lg); }
@@ -1628,24 +1775,53 @@ img,svg { display:block; }
1628
1775
  .collapsible-chevron { flex:none; transition:transform var(--duration-fast) var(--ease-standard); }
1629
1776
  .collapsible-trigger[data-panel-open] .collapsible-chevron { transform:rotate(180deg); }
1630
1777
  .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); }
1778
+ /* TOGGLE GROUP. A pele é a do grupo de botões, porque é o que ele é (colado, 0.32.0 — a regra
1779
+ está no `.btn-group`). O que muda é o eixo, que aqui o MOTOR publica. */
1633
1780
  /* G-AXIS-06 — a pele destes cinco reage ao `data-orientation` que o MOTOR publica, e não a uma
1634
1781
  classe que o React escolhe por conta própria. É o que garante uma fonte de verdade só: o
1635
1782
  valor responsivo resolvido vai para o motor, o motor publica o atributo e ajusta o teclado,
1636
1783
  e o desenho segue o atributo. Enquanto a orientação vinha de classe, era possível o CSS
1637
1784
  dizer coluna e o `aria-orientation` dizer horizontal — foi o que impediu estes cinco de
1638
1785
  entrarem no eixo responsivo até 22/08/2026. Ver a ADR-0019. */
1639
- .toggle-group[data-orientation="vertical"] { flex-direction:column; align-items:stretch; }
1786
+ .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
1787
 
1641
1788
  /* Form (M1): empilhar campos com respiro. Nada além disso — sem borda, sem fundo, sem largura.
1642
1789
  Formulário é ARRANJO, e arranjo é do Stack/Grid; se esta classe crescer, ela vira uma terceira
1643
1790
  maneira de fazer layout e passa a brigar com as duas que já existem. */
1644
1791
  .form { display:grid; gap:var(--space-5); }
1645
1792
  /* 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; }
1793
+ .field-description { color:var(--muted-foreground); font-size:var(--text-xs); line-height:var(--space-4); }
1794
+ /* o erro com 4 de recuo, como o da referência (0.32.0) */
1795
+ .field-error { padding-inline:var(--space-1); color:var(--danger-400); font-size:var(--text-xs); line-height:var(--space-4); }
1796
+ /* 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
1797
+ negrito, o `<strong>`), descrição 12/16 esmaecida e sem negrito embaixo dele. */
1798
+ .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; }
1799
+ .checkbox > span > strong { font-weight:inherit; }
1800
+ /* LISTBOX (0.32.0): a da referência — recheio de 4, 4 entre itens; item de 36 no mínimo, 8 dos lados
1801
+ e 6 em cima e embaixo, vão 12; fundo neutro sob o mouse e no foco do teclado (com o anel); o visto
1802
+ de 16 no fim do escolhido; perigo na cor de perigo. O canto é o nosso: cápsula. A seção é um título
1803
+ pequeno e esmaecido em cima dos itens dela. */
1804
+ .list-box { position:relative; display:flex; flex-direction:column; gap:var(--space-1); inline-size:100%; padding:var(--space-1); }
1805
+ .list-box-section { display:flex; flex-direction:column; gap:var(--space-1); }
1806
+ .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); }
1807
+ .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); }
1808
+ .list-box-item:has(.list-box-item-indicator) { padding-inline-end:var(--space-7); }
1809
+ .list-box-item:hover:not([aria-disabled="true"]),.list-box-item:focus-visible { background:var(--secondary); }
1810
+ .list-box-item:focus-visible { outline-offset:calc(-1 * var(--focus-width)); }
1811
+ .list-box-item:active:not([aria-disabled="true"]) { transform:scale(.98); }
1812
+ .list-box-item[aria-disabled="true"] { opacity:var(--opacity-disabled); cursor:not-allowed; }
1813
+ .list-box-item > .icon { --step-icon:var(--icon-sm); color:var(--muted-foreground); }
1814
+ .list-box-item-text { display:flex; flex-direction:column; min-inline-size:0; }
1815
+ .list-box-item-label { font-weight:var(--weight-medium); }
1816
+ .list-box-item-description { color:var(--muted-foreground); font-size:var(--text-xs); line-height:var(--space-4); }
1817
+ .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); }
1818
+ .list-box-item-danger,.list-box-item-danger > .icon,.list-box-item-danger .list-box-item-indicator { color:var(--danger-400); }
1819
+ /* CHECKBOXGROUP (0.32.0): o da referência — rótulo, descrição, as caixas com 16 antes de cada uma, o
1820
+ erro no fim. A descrição de cada caixa fica alinhada com o texto dela, como no `Checkbox` solto. */
1821
+ .checkbox-group { display:flex; flex-direction:column; align-items:flex-start; }
1822
+ .checkbox-group > .checkbox { margin-block-start:var(--space-4); }
1823
+ .checkbox-group > .field-error { margin-block-start:var(--space-2); }
1824
+ .checkbox > span > .muted { font-size:var(--text-xs); font-weight:var(--weight-regular); line-height:var(--space-4); }
1649
1825
  .checkbox input,.radio input { position:absolute; opacity:0; pointer-events:none; }
1650
1826
  /* A MARCA DE SELEÇÃO acompanha a densidade, e antes não acompanhava. Era `18px` cru: em
1651
1827
  `comfortable` casava com metade da altura de controle por coincidência, e em `compact` e
@@ -1653,10 +1829,13 @@ img,svg { display:block; }
1653
1829
  defeito que o achado A1 pegou no SegmentedControl em 26/07/2026.
1654
1830
  Metade da altura de controle dá exatamente os 18px de antes em `comfortable`, então a captura
1655
1831
  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); }
1832
+ /* 0.32.0: a marca da referência tem 16. A conta passa a "metade menos 2" — 14 · 16 · 18 no sm · md ·
1833
+ lg, e continua andando com a densidade, sem número quebrado. Centrada na primeira linha do texto
1834
+ (`1lh`), qualquer que seja a entrelinha. O canto da caixa é o 6 dela (`--radius-xs`; era 5 cru). */
1835
+ .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
1836
  .control-mark-sm { --step-h:var(--control-h-sm); }
1658
1837
  .control-mark-lg { --step-h:var(--control-h-lg); }
1659
- .checkbox .control-mark { border-radius:5px; } .radio .control-mark { border-radius:50%; }
1838
+ .checkbox .control-mark { border-radius:var(--radius-xs); } .radio .control-mark { border-radius:50%; }
1660
1839
  .checkbox input:checked + .control-mark { background:var(--control-selected); border-color:var(--control-selected); color:var(--control-selected-foreground); }
1661
1840
  .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
1841
  /* Cheia com a cor do foco (marcada, ligada), a peça volta ao VÃO (ADR-0059): colado, o anel sumiria
@@ -1665,11 +1844,16 @@ img,svg { display:block; }
1665
1844
  anel volta a colar (vermelho, pela regra do inválido). */
1666
1845
  .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
1846
  .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); }
1847
+ /* A opção marcada fica CHEIA, com o ponto no meio, como a da referência (o ponto dela tem 8 numa
1848
+ marca de 16: a metade). Era vazia, com o ponto amarelo. */
1849
+ .radio input:checked + .control-mark { background:var(--control-selected); border-color:var(--control-selected); }
1850
+ .radio input:checked + .control-mark:after { content:""; width:50%; height:50%; border-radius:50%; background:var(--control-selected-foreground); }
1851
+ .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; }
1852
+ /* O TRILHO DO SWITCH (0.32.0): o da referência, 40 × 20 (sm 32 × 16, lg 48 × 24) — a largura é o
1853
+ dobro da altura. Era 42 × 24. A altura é a de controle MENOS 16: dá exatamente os três dela
1854
+ (32 · 36 · 40 → 16 · 20 · 24), continua andando com a densidade e passa pela `--step-h`, que é o
1855
+ caminho do tamanho responsivo (`size-*`). */
1856
+ .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
1857
  .switch-track-sm { --step-h:var(--control-h-sm); }
1674
1858
  .switch-track-lg { --step-h:var(--control-h-lg); }
1675
1859
  /* O botão TEM de encolher com o trilho: preso em 16px, num trilho `compact` de 20px de altura
@@ -1681,8 +1865,13 @@ img,svg { display:block; }
1681
1865
  eixo inline resolve contra a LARGURA do contêiner (40px) e não contra a altura. Escrever a
1682
1866
  mesma conta nos dois eixos dava um botão de 34×16 — medido no navegador, não deduzido, depois
1683
1867
  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); }
1868
+ /* 0.32.0 — a bolinha da referência é uma CÁPSULA (a altura do trilho menos 4; a largura, 11/8 dela:
1869
+ 22 × 16 no md), a 2 da borda de fora. O trilho tem borda de 1 (é ela que fica vermelha no
1870
+ inválido), então a folga por dentro é 1. Ligada, ela anda até a outra ponta: `--switch-x`, a
1871
+ mesma distância nos dois sentidos de escrita. */
1872
+ .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); }
1873
+ .switch-track { --switch-x:calc(var(--switch-h) * 2 - (var(--switch-h) - 2 * var(--space-05)) * 11 / 8 - 2 * var(--space-05)); }
1874
+ .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
1875
  .range { width:100%; accent-color:var(--primary); }
1687
1876
  /* Slider VERTICAL, no `<input type=range>` NATIVO — sem trocar de motor.
1688
1877
 
@@ -1703,14 +1892,96 @@ img,svg { display:block; }
1703
1892
  `.range{width:100%}` anulava o `width:auto` daqui — a caixa saía 129x16 nos três motores.
1704
1893
  Mesma armadilha de ordem de cascata que os tons do botão. */
1705
1894
  .range-vertical { writing-mode:vertical-rl; direction:rtl; inline-size:var(--range-vertical-size,10rem); width:auto; }
1895
+ /* SLIDER (HER-05, 0.32.0) — o desenhado da referência. Rótulo e valor na linha de cima (14, peso
1896
+ médio, o número tabular); o trilho de 20 no cinza neutro, o preenchimento na cor da marca; a alça
1897
+ é uma cápsula de 28 × 20 na cor da marca com o miolo de 24 × 16, que encolhe a 90% enquanto se
1898
+ arrasta. O miolo dela é branco sobre o azul; aqui é a cor de LETRA sobre o amarelo
1899
+ (`--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
1900
+ motor, por estilo em linha (posição e tamanho); aqui fica só a pele. Nas pontas a alça fica dentro
1901
+ do trilho pelo jeito da referência: 12 de borda TRANSPARENTE em cada ponta do trilho (o fundo pinta
1902
+ por baixo dela, então o trilho continua inteiro), e a alça, centrada, anda só no miolo. O
1903
+ preenchimento volta 12 para começar na ponta visível. O alinhamento "na borda" do motor faria o
1904
+ mesmo, mas só depois de a página rodar no navegador — a alça sairia invisível no HTML do servidor.
1905
+ Vertical: o valor em cima, o trilho no meio, o rótulo embaixo, e a altura é a do `Range` vertical
1906
+ (`--range-vertical-size`). */
1907
+ .slider { display:grid; grid-template-areas:"label output" "track track"; grid-template-columns:minmax(0,1fr) auto; gap:var(--space-1); inline-size:100%; }
1908
+ .slider-label { grid-area:label; inline-size:fit-content; color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
1909
+ .slider-output { grid-area:output; color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); font-variant-numeric:tabular-nums; }
1910
+ .slider-control { grid-area:track; display:flex; align-items:center; touch-action:none; }
1911
+ .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); }
1912
+ .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); }
1913
+ .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; }
1914
+ .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); }
1915
+ .slider-thumb[data-dragging] { cursor:grabbing; }
1916
+ .slider-thumb[data-dragging]::after { scale:.9; }
1917
+ .slider-thumb:has(input:focus-visible) { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
1918
+ .slider[data-disabled] { opacity:var(--opacity-disabled); }
1919
+ .slider[data-disabled] .slider-thumb { cursor:not-allowed; }
1920
+ .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; }
1921
+ .slider[data-orientation="vertical"] .slider-control { block-size:var(--range-vertical-size,10rem); }
1922
+ .slider[data-orientation="vertical"] .slider-track { inline-size:var(--space-5); block-size:100%; border-inline:0; border-block:var(--space-3) solid transparent; }
1923
+ .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); }
1924
+ .slider[data-orientation="vertical"] .slider-thumb { inline-size:100%; block-size:calc(var(--space-6) + var(--space-1)); }
1925
+ .slider[data-orientation="vertical"] .slider-thumb::after { inline-size:var(--space-4); block-size:var(--space-6); }
1926
+ @media (prefers-reduced-motion:reduce) { .slider-thumb::after { transition:none; } }
1927
+ /* A TRILHA DE COR (0.32.0, ADR-0069) — a variação `channel` do Slider, em qualquer canal. A pintura (a exceção da
1928
+ ADR-0069) chega pela variável que o componente põe; esta folha não escreve gradiente (check 4). O gradiente vai
1929
+ de ponta a ponta do trilho (`background-origin: border-box`) e as paradas começam na folga (`--slider-cap`, a
1930
+ 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
1931
+ 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
1932
+ branco de 3 — branco nos dois temas, porque fica sobre a cor. A cor do pino vai por uma sombra por dentro, para o
1933
+ xadrez aparecer por baixo quando ela é transparente.
1934
+ O XADREZ (14/10/2026, o Victor: "xadrez sim", só onde há transparência) é desenho de SVG, e não gradiente: no
1935
+ alfa, embaixo da trilha e do pino. E `forced-color-adjust:none`, como na biblioteca da referência: com o alto
1936
+ contraste do sistema, a trilha continua mostrando as cores. */
1937
+ /* O xadrez da transparência, um desenho só para as peças que o mostram (a trilha do alfa, a amostra transparente). */
1938
+ .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"); }
1939
+ .slider-color { --slider-cap:var(--space-3); }
1940
+ .slider-color .slider-track { background:var(--slider-track-fill,var(--secondary)); background-origin:border-box; forced-color-adjust:none; }
1941
+ .slider-alpha .slider-track { background-image:var(--slider-track-fill,none),var(--color-checker); background-size:auto,var(--space-2) var(--space-2); }
1942
+ .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; }
1943
+ .slider-color .slider-thumb::after { content:none; }
1944
+ .slider-color[data-orientation="vertical"] .slider-thumb { inline-size:var(--space-4); block-size:var(--space-4); }
1945
+ /* COLORAREA (0.32.0, ADR-0069) — a área de cor. A pintura (o gradiente, a ÚNICA exceção à ADR-0007) chega pela
1946
+ variável que o componente põe (`--color-area-fill`): esta folha não escreve gradiente nenhum (check 4).
1947
+ Medidas da referência, lidas no CSS publicado dela (3.2.6): quadrada, até 224 de largura, canto 16; o pino de
1948
+ 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`.
1949
+ 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.
1950
+ Os dois `range` escondidos (o motor da área) cobrem o pino com opacidade quase zero, como na referência: o
1951
+ leitor de tela por toque os acha no lugar do pino. */
1952
+ .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; }
1953
+ /* Os pontinhos (`showDots`, o da referência: um ponto branco a 20% a cada 8) são desenho de SVG por cima da área,
1954
+ e não gradiente. O pino fica acima deles. */
1955
+ .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); }
1956
+ .color-area-dots .color-area-thumb { z-index:1; }
1957
+ .color-area[data-disabled] { opacity:var(--opacity-disabled); cursor:not-allowed; }
1958
+ .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); }
1959
+ .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); }
1960
+ .color-area-thumb[data-focus-visible] { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
1961
+ .color-area-input { position:absolute; inset:0; inline-size:100%; block-size:100%; margin:0; opacity:.0001; pointer-events:none; }
1962
+ @media (prefers-reduced-motion:reduce) { .color-area-thumb { transition:none; } }
1963
+ /* 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,
1964
+ lido no CSS publicado dela, 3.2.6). A janela é o `.popover` com o recheio dela — 8 em cima e dos lados, 12
1965
+ 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
1966
+ largura toda. */
1967
+ .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; }
1968
+ .color-picker-trigger:focus-visible { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
1969
+ .color-picker-trigger:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
1970
+ .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); }
1971
+ .color-picker-popover > .color-area { max-inline-size:none; }
1706
1972
 
1707
1973
  /* A CÁPSULA é que tem de medir igual a um botão/campo ao lado — não o botão de dentro.
1708
1974
  Antes: `height:30px` no filho, cru. Em comfortable dava 30+3+3=36 = --control-h-md por
1709
1975
  coincidência; em compact a cápsula ficava 4px alta demais e em spacious 4px baixa demais,
1710
1976
  porque a densidade não alcançava a regra (achado A1, 26/07/2026). Com a altura na cápsula
1711
1977
  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; }
1978
+ /* 0.32.0 — as medidas das abas da referência (o segmentado é a mesma peça): trilho com 4 de recheio
1979
+ e sem vão; cada segmento com a altura `sm` (32 no padrão, e anda com a densidade), 16 dos lados,
1980
+ letra peso médio. O trilho dá 40 (era 36: 3 + 30 + 3). */
1981
+ /* A borda transparente de 1 (as abas não têm) entra no recheio: 1 + 3 = os 4 da referência, e o
1982
+ trilho mede 40 como o das abas — sem o desconto, 42 (a geometria pegou). */
1983
+ .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; }
1984
+ .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
1985
  .segmented button.active { color:var(--foreground); background:var(--segment); box-shadow:var(--shadow-sm); border:0; }
1715
1986
  /* `fullWidth` (A5, 06/10/2026): ocupa a linha, e cada segmento cresce a partir do rótulo sem
1716
1987
  encolher abaixo dele — o mesmo desenho do nativo. `1 0 auto` e não `1` (= `1 1 0%`): base zero
@@ -1736,6 +2007,14 @@ img,svg { display:block; }
1736
2007
  claro e 1,02:1 no escuro. Sobre o trilho a cápsula é --segment, com a sombra pequena — como a
1737
2008
  aba da referência principal. O rótulo na cor da marca e o fio continuam. */
1738
2009
  .segmented button.active { --btn-bg:var(--segment); background:var(--segment); box-shadow:var(--shadow-sm); }
2010
+ /* O TOGGLE LIGADO tem fundo próprio (0.32.0). Com o solto no fundo neutro (o `default` da referência),
2011
+ o cinza do "selecionado" acima deixava ligado e desligado com o MESMO fundo — só a letra e o fio
2012
+ mudavam, e o `skin.spec` cobra que o ligado pareça ligado pelo fundo. O ligado dela é o tom suave
2013
+ da marca; o da Aurea é o "clarinho" (o amarelo a 10%, a receita do `.badge-primary` que o Victor
2014
+ escolheu para a página atual da paginação), aqui sobre o cinza, para o grupo colado continuar uma
2015
+ cápsula só. A letra da marca e o fio continuam os do "selecionado". */
2016
+ .btn.toggle[data-pressed] { --btn-bg:color-mix(in oklab, var(--primary) 10%, var(--secondary)); background:var(--btn-bg); }
2017
+ .btn.toggle[data-pressed]:hover:not(:disabled):not([aria-disabled="true"]) { --btn-bg:color-mix(in oklab, var(--primary) 10%, var(--secondary-hover)); }
1739
2018
  /* 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
2019
  marca `lory`). Ele dividia esta regra com o `.segmented`, que vive no conteúdo — e `--secondary`
1741
2020
  é quase branco no tema claro. Numa lateral escura isso desenhava uma pílula branca com texto
@@ -1756,7 +2035,7 @@ img,svg { display:block; }
1756
2035
  saíram com a mesma cor. Com o `:not` ela pesa (0,3,1) e só alcança quem está em repouso. */
1757
2036
  [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
2037
  .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,
2038
+ .btn[aria-pressed="true"]:not(.btn-icon)::after,.segmented button.active::after,.tabs-secondary .tab[data-active]::after,
1760
2039
  .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
2040
  /* e o fio do ativo da lateral segue a marca DELA, pelo mesmo motivo da regra de cor acima. */
1762
2041
  .doc-nav a.active::after,.sidebar-item[aria-current]::after { background:color-mix(in oklab, var(--sidebar-primary) 75%, transparent); }
@@ -1773,7 +2052,11 @@ img,svg { display:block; }
1773
2052
  classe media 26px dentro do .brand (lh 18px) e 22px dentro de um .btn-nav (lh 12px) — na
1774
2053
  mesma barra (achado A2, 26/07/2026). Geometria de componente não se decide pelo contexto.
1775
2054
  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; }
2055
+ /* 0.32.0: as medidas do Chip da referência (o `Badge` da Aurea é o Chip dela), lidas no CSS publicado:
2056
+ 24 de altura, 10 até o texto (8 da caixa + 2 do rótulo — aqui, com a borda de 1 que é nossa, 9), 4
2057
+ 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
2058
+ borda continuam da Aurea, como no nativo (0.11.0). */
2059
+ .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
2060
  /* O glifo do badge tem tamanho PRÓPRIO, senão o `.icon` padrão (20px) estoura os 24px e o
1778
2061
  badge com ícone fica mais alto que o badge de texto na mesma fila. 16px + 3+3 de padding
1779
2062
  + 1+1 de borda = 24px exatos: com ícone ou sem, mede o mesmo. */
@@ -1785,8 +2068,8 @@ img,svg { display:block; }
1785
2068
  .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
2069
  /* TAMANHOS. O md é a base (24px), que não muda — é o que as 103 fichas já usam. */
1787
2070
  .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); }
2071
+ .badge-sm { min-height:var(--space-5); padding:0 calc(var(--space-1) + var(--space-05) - var(--border-width)); }
2072
+ .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
2073
  /* ACESSÓRIOS de dentro do chip. O ponto herda a cor do texto por `currentColor`, então ele
1791
2074
  acompanha variante e ênfase sem uma regra por combinação. */
1792
2075
  .badge-dot { flex:none; width:var(--space-2); height:var(--space-2); border-radius:var(--radius-full); background:currentColor; }
@@ -1903,6 +2186,11 @@ img,svg { display:block; }
1903
2186
  .card-horizontal > .card-media { grid-row:1 / span 99; border-radius:calc(var(--radius-card) - var(--card-pad)); }
1904
2187
  .card-horizontal > :not(.card-media) { grid-column:2; min-width:0; }
1905
2188
  .card-raised { box-shadow:none; } .card-inset { background:var(--secondary); }
2189
+ /* `outline` (0.32.0): o cartão da cor de onde ele está, só com a linha em volta — a caixa grande do
2190
+ Início da documentação da referência (o Victor, 13/10/2026: "na mesma cor do site, só tem uma linha
2191
+ ao redor"). O nome é o da referência para "sem fundo, com contorno" (o botão dela); o `transparent`
2192
+ do cartão dela tira também a linha, e esta guarda. A borda, o raio e o recheio são os do `.card`. */
2193
+ .card-outline { background:transparent; }
1906
2194
  /* A variante interativa é o ALVO, e desde o G-A11Y-11 ela exige `render` — o elemento vem de
1907
2195
  quem consome, e é `<button>` ou `<a href>` conforme a promessa seja ação ou navegação.
1908
2196
  As quatro normalizações abaixo existem por causa disso: um <button> traz fonte própria,
@@ -1939,26 +2227,32 @@ img,svg { display:block; }
1939
2227
  .card-accent-info { --card-accent:var(--info); } .card-accent-warning { --card-accent:var(--warning); }
1940
2228
  .card-accent-danger { --card-accent:var(--destructive); }
1941
2229
  .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); }
2230
+ /* 0.32.0: o título do cartão da referência, 14/24 peso médio, e a descrição 14/20 colada nele. */
2231
+ .card-title { margin:0; font-size:var(--text-sm); font-weight:var(--weight-medium); line-height:var(--space-6); } .card-subtitle { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); line-height:var(--space-5); }
1943
2232
 
1944
2233
  /* HER-02 (06/10/2026): o `.alert` e o `.toast` eram `--radius-lg` (16). Painel e superfície
1945
2234
  flutuante são `--radius-card` (22) na identidade da Aurea, como o `.popover`, o `.dialog` e o
1946
2235
  `.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; }
2236
+ /* 0.32.0, o Alert da referência (lido no CSS publicado dela, ordem do Victor: "igual ao dela"): o fundo
2237
+ de CARTÃO, sem borda, com a sombra de superfície; 12 em cima e embaixo e 16 dos lados; 16 entre as
2238
+ 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
2239
+ esmaecido. Até a 0.31.0 a cor do estado tingia o fundo e a borda. `--alert-tone` é a cor do estado. */
2240
+ .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); }
2241
+ .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); }
1948
2242
  /* Banner: aviso de largura de página. Base ANTES das variantes — mesma
1949
2243
  especificidade, então a última regra vence e a base apagaria as cores. */
1950
2244
  .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); }
2245
+ .banner-info { border-color:color-mix(in srgb,var(--info) 38%,var(--border)); background:var(--info-bg); }
2246
+ .banner-success { border-color:color-mix(in srgb,var(--success) 38%,var(--border)); background:var(--success-bg); }
2247
+ .banner-warning { border-color:color-mix(in srgb,var(--warning) 38%,var(--border)); background:var(--warning-bg); }
2248
+ .banner-danger { border-color:color-mix(in srgb,var(--danger-400) 38%,var(--border)); background:var(--danger-bg); }
1955
2249
  /* O título do alerta é <strong> e não <h4>: alerta cai em qualquer profundidade da página e
1956
2250
  um h4 fixo quebraria a ordem de cabeçalhos. `display:block` porque o corpo vem embaixo
1957
2251
  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); }
2252
+ .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
2253
  /* A cor do glifo é a da variante, senão o ícone vira enfeite cinza e não repete o sinal.
1960
2254
  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); }
2255
+ .alert>.icon { --step-icon:var(--icon-sm); margin:var(--space-1); color:var(--alert-tone); }
1962
2256
  .banner strong { font-size:var(--text-sm); } .banner p { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); }
1963
2257
  @media (max-width:640px) { .banner { grid-template-columns:auto minmax(0,1fr); } .banner>:last-child { grid-column:2; justify-self:start; } }
1964
2258
  .progress { height:8px; overflow:hidden; border-radius:999px; background:var(--surface-3); }
@@ -1969,6 +2263,13 @@ img,svg { display:block; }
1969
2263
  pausado é `neutral`, falha é `danger`. */
1970
2264
  .progress-field { display:grid; gap:var(--space-1); }
1971
2265
  .progress-detail { justify-self:end; color:var(--muted-foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); font-variant-numeric:tabular-nums; }
2266
+ /* 0.32.0, a barra da referência: o rótulo à mostra no alto à esquerda (14 peso médio), a saída à direita,
2267
+ e o trilho embaixo, ocupando as duas colunas. sm 4, md 8, lg 12 de espessura. */
2268
+ .progress-field:has(> .progress-label) { grid-template-columns:minmax(0,1fr) auto; }
2269
+ .progress-field:has(> .progress-label) > .progress { grid-column:1 / -1; }
2270
+ .progress-label { color:var(--foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); }
2271
+ .progress-sm { height:var(--space-1); }
2272
+ .progress-lg { height:var(--space-3); }
1972
2273
  .progress-tone-neutral>span { background:var(--muted-foreground); }
1973
2274
  .progress-tone-success>span { background:var(--success-400); }
1974
2275
  .progress-tone-warning>span { background:var(--warning-400); }
@@ -1989,11 +2290,15 @@ img,svg { display:block; }
1989
2290
  já existe (esqueleto, alerta, estado vazio, conteúdo) com respiro entre eles. Se ganhar borda
1990
2291
  ou fundo, viram duas superfícies para a mesma coisa — o defeito que a `.table-region` cobrou. */
1991
2292
  .data-state { display:grid; gap:var(--space-3); }
1992
- .skeleton { position:relative; overflow:hidden; border-radius:7px; background:var(--surface-3); }
2293
+ .skeleton { position:relative; overflow:hidden; border-radius:var(--radius-sm); background:var(--surface-3); }
1993
2294
  .skeleton { animation:skeleton-pulse 1.35s ease-in-out infinite; } @keyframes skeleton-pulse { 50% { opacity:.55; } }
2295
+ /* 0.32.0: `animation="none"` para o pulso; e quem pediu menos movimento ao sistema também não o vê. */
2296
+ .skeleton-static { animation:none; }
2297
+ @media (prefers-reduced-motion:reduce) { .skeleton { animation:none; } }
1994
2298
 
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); }
2299
+ /* Mesma regra da .segmented (0.32.0, as medidas da referência): 4 de recheio, sem vão, a aba de 32
2300
+ (`--control-h-sm`, que anda com a densidade), 16 dos lados, peso médio. */
2301
+ .tabs { display:inline-flex; gap:0; padding:var(--space-1); border:0; border-radius:var(--radius-control); background:var(--muted); }
1997
2302
  /* Abas VERTICAIS (a família da orientação, achada pela matriz do §13). A raiz vira GRADE e
1998
2303
  não linha: com `flex-direction:row` o painel herdaria a altura da lista, e uma aba com
1999
2304
  muito conteúdo esticaria a coluna de rótulos junto — medido no navegador em 22/08/2026.
@@ -2001,25 +2306,48 @@ img,svg { display:block; }
2001
2306
  painel porque `minmax(0,1fr)` sozinho deixa conteúdo largo (uma tabela) empurrar a coluna
2002
2307
  de rótulos para fora. */
2003
2308
  .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; }
2309
+ .tabs[data-orientation="vertical"] { flex-direction:column; align-items:stretch; gap:var(--space-1); min-height:0; }
2005
2310
  /* o rótulo alinha ao INÍCIO da linha: centrado, uma coluna de abas de larguras diferentes
2006
2311
  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; }
2312
+ .tabs[data-orientation="vertical"] .tab { text-align:start; }
2313
+ .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
2314
  .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; }
2315
+ /* `variant="secondary"` (0.32.0): a aba secundária da referência — sem trilho e sem cápsula, um fio
2316
+ embaixo da lista, a escolhida com a letra normal e o fio da casa (a regra do "selecionado", mais
2317
+ abaixo). */
2318
+ .tabs-secondary { gap:var(--space-1); padding:0; border-block-end:var(--border-width) solid var(--border); border-radius:0; background:transparent; }
2319
+ .tabs-secondary[data-orientation="vertical"] { border-block-end:0; border-inline-start:var(--border-width) solid var(--border); }
2320
+ .tabs-secondary .tab { border-radius:0; }
2321
+ .tabs-secondary .tab.active,.tabs-secondary .tab[data-active] { background:transparent; box-shadow:none; color:var(--foreground); }
2322
+ .tabs-secondary .tab[data-active]::after { display:block; }
2010
2323
  /* `panel="plain"` (MNT-05 e C9, 06/10/2026): o painel sem caixa, como o painel de abas da
2011
2324
  referência. Sem recheio dos lados — o conteúdo começa na linha do que está fora do `Tabs` —, e o
2012
2325
  espaço de cima é o mesmo `space-3` do painel do nativo. Na vertical, quem separa é o `gap` da
2013
2326
  grade da raiz, então o espaço de cima não entra. */
2014
2327
  .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); }
2328
+ /* 0.32.0 — a trilha da referência: vão 6, link 14 PESO MÉDIO esmaecido (sublinhado com o mouse, como o
2329
+ dela), a página atual na cor do texto e em peso médio (era negrito), e o separador de 12 (era 16). */
2330
+ .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); }
2331
+ .breadcrumb a { color:inherit; text-decoration:none; } .breadcrumb a:hover { color:var(--foreground); text-decoration:underline; text-underline-offset:var(--space-05); }
2332
+ .breadcrumb > .icon { --step-icon:var(--space-3); }
2333
+ .breadcrumb [aria-current="page"] { color:var(--foreground); font-weight:inherit; }
2334
+ /* PAGINATION (0.32.0) — a da referência: o resumo à esquerda (14 esmaecido) e os itens à direita,
2335
+ com 4 entre eles; cada número é uma cápsula de 32 (`--control-h-sm`, 44 no toque), 14 PESO MÉDIO,
2336
+ que escurece com o mouse; "anterior" e "próxima" com a seta de 16 e o texto, 10 dos lados e 6 entre
2337
+ a seta e o texto; as reticências esmaecidas. A página ATUAL é o "clarinho" da Aurea — a receita do
2338
+ `.badge-primary` suave (o amarelo a 10%, o contorno da marca e a letra da marca), decisão do Victor.
2339
+ O `compact` (o desenho de até a 0.31.0) usa o `Button` e o `Badge`, e não passa por aqui. */
2340
+ .pagination { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-4); }
2341
+ .pagination-summary { margin-inline-end:auto; color:var(--muted-foreground); font-size:var(--text-sm); }
2342
+ .pagination-content { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-1); margin:0; padding:0; list-style:none; }
2343
+ .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); }
2344
+ .pagination-link:hover:not(:disabled):not([aria-disabled="true"]) { background:var(--secondary); }
2345
+ .pagination-link:active:not(:disabled):not([aria-disabled="true"]) { transform:scale(.97); }
2346
+ .pagination-link:disabled,.pagination-link[aria-disabled="true"] { opacity:var(--opacity-disabled); cursor:not-allowed; }
2347
+ .pagination-link.active { border-color:var(--primary-outline); background:color-mix(in srgb, var(--primary) 10%, transparent); color:var(--primary-emphasis); }
2348
+ .pagination-link-nav { padding-inline:calc(var(--space-2) + var(--space-05)); }
2349
+ .pagination-nav-icon { --step-icon:var(--icon-sm); }
2350
+ .pagination-ellipsis { display:inline-grid; place-items:center; inline-size:var(--control-h-sm); color:var(--muted-foreground); font-size:var(--text-sm); }
2023
2351
  /* Stepper (Lote 2): o container NUNCA existiu no core — só no docs.css, e lá era
2024
2352
  `repeat(4,1fr)`, com o número de etapas cravado. `grid-auto-flow:column` distribui N etapas
2025
2353
  iguais sem saber quanto é N, e colunas iguais são o que faz a linha conectora (`.step:before`,
@@ -2065,14 +2393,31 @@ img,svg { display:block; }
2065
2393
  Somar o seletor em vez de copiar os valores: copiar deixaria duas listas para manter em sincronia,
2066
2394
  que é como as duas peles divergiram. O que continua só do `.table-region` é o foco — ele é
2067
2395
  `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; }
2396
+ /* HER-13 (0.32.0, *"tabela quero como essa"*): a pele da referência, lida no CSS publicado dela — a
2397
+ MOLDURA cinza (sem borda, 4 dos lados e embaixo), o cabeçalho sobre ela (12 peso médio esmaecido, sem
2398
+ caixa-alta, 10 em cima e embaixo e 16 dos lados, com um fio de 16 entre as colunas) e o CORPO como um
2399
+ 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
2400
+ entre as linhas e o canto da casa (o da moldura menos a folga, como a ADR-0033) nas quatro pontas.
2401
+ A moldura é a região que rola: no celular a tabela rola de lado dentro dela (a "A" do Victor).
2402
+ A densidade continua da Aurea: o recheio de cima e de baixo sai do `--row-h` (no confortável, 12, o
2403
+ dela). */
2404
+ .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); }
2405
+ .table,.table-wrap table { width:100%; border-collapse:separate; border-spacing:0; min-width:720px; font-size:var(--text-sm); }
2070
2406
  /* GAR-16 (0.28.0): a tabela inteira com algarismos da mesma largura — a coluna de preço e de ano
2071
2407
  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; }
2408
+ .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; }
2409
+ /* O título da tabela (`caption`) mora na moldura, em cima do cabeçalho, alinhado ao texto das colunas
2410
+ (sem regra, o navegador o centralizava). */
2411
+ .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; }
2412
+ .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); }
2413
+ .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; }
2414
+ .table tbody :is(td,th),.table-wrap tbody :is(td,th) { background:var(--card); }
2415
+ .table tbody tr:first-child > :first-child,.table-wrap tbody tr:first-child > :first-child { border-start-start-radius:var(--table-cell-r); }
2416
+ .table tbody tr:first-child > :last-child,.table-wrap tbody tr:first-child > :last-child { border-start-end-radius:var(--table-cell-r); }
2417
+ .table tbody tr:last-child > :first-child,.table-wrap tbody tr:last-child > :first-child { border-end-start-radius:var(--table-cell-r); }
2418
+ .table tbody tr:last-child > :last-child,.table-wrap tbody tr:last-child > :last-child { border-end-end-radius:var(--table-cell-r); }
2074
2419
  .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); }
2420
+ @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
2421
  /* GAR-12 e GAR-13 (08/10/2026): a tabela de COMPARAÇÃO — as chaves da `Table` e a pele do HTML de
2077
2422
  comparação. A referência principal só tem o cabeçalho preso, à mão, numa caixa de altura fixa; o
2078
2423
  resto veio do mercado, por escolha do Victor (o detalhe está no comentário da `Table`).
@@ -2080,7 +2425,10 @@ img,svg { display:block; }
2080
2425
  cor do texto, peso médio. Antes herdava a pele do cabeçalho — e ninguém no repositório usava
2081
2426
  `th` no corpo (medido), então nenhum exemplo muda. A FAIXA DE GRUPO (`<th scope="rowgroup">`)
2082
2427
  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; }
2428
+ .table tbody th[scope="row"],.table-wrap tbody th[scope="row"] { color:var(--foreground); font-size:inherit; font-weight:var(--weight-medium); }
2429
+ /* 0.32.0: a faixa de grupo continua rótulo — o cinza da moldura e a letra do cabeçalho —, agora que o
2430
+ cabeçalho da referência mora só no `thead`. */
2431
+ .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
2432
  .table tbody tr:last-child th,.table-wrap tbody tr:last-child th { border-bottom:0; }
2085
2433
  /* O melhor valor: negrito. O selo "Melhor", em TEXTO, é um `Badge` que o site põe na célula — a
2086
2434
  cor sozinha não diz nada a quem não a enxerga (WCAG 1.4.1). */
@@ -2105,8 +2453,13 @@ img,svg { display:block; }
2105
2453
  .table-sticky-first :is(thead,tbody,tfoot) > tr > :first-child { position:sticky; inset-inline-start:0; z-index:1; background:var(--card); }
2106
2454
  .table-sticky-first thead > tr > :first-child { z-index:2; background:var(--surface-2); }
2107
2455
  .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); }
2456
+ @media (hover:hover) { .table-sticky-first tbody > tr:hover > :first-child { background:color-mix(in oklab,var(--card) 40%,var(--surface-2)); } }
2109
2457
  .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); }
2458
+ /* Achado em 12/10/2026 (o teste GAR-12, vencido desde o passo 6): a moldura da tabela tem recheio de 4 dos
2459
+ lados, e a coluna parada gruda na borda de DENTRO dela — a 4. Ao rolar de lado, as células passavam
2460
+ nessa faixa de 4 à esquerda da coluna parada. Cada célula parada tapa a faixa com a cor da moldura, por
2461
+ fora; com propriedade lógica, vale também na escrita da direita para a esquerda. */
2462
+ .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
2463
  /* Avatar (Lote 2): `overflow:hidden` e o `object-fit` da imagem são a correção do defeito que
2111
2464
  a medição achou — foto que não é quadrada vazava inteira da caixa redonda, porque
2112
2465
  `border-radius` não recorta filho sozinho. Foto de perfil raramente vem quadrada, então isto
@@ -2115,10 +2468,104 @@ img,svg { display:block; }
2115
2468
  `comfortable`. Nada muda de aparência aqui; o que muda é que agora a DENSIDADE alcança o
2116
2469
  avatar, e a escala é a mesma dos controles — avatar e botão na mesma linha ficam da mesma
2117
2470
  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); }
2471
+ /* 0.32.0: a escala da referência, 32 · 40 · 48, com a letra de 12 · 14 · 16 em peso médio (era a
2472
+ altura do botão, 32 · 36 · 40, e negrito). `--step-avatar` é a variável de passo própria do avatar
2473
+ (a camada responsiva a emite junto das outras). */
2474
+ .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); }
2475
+ .avatar-sm { --step-avatar:var(--space-8); --step-avatar-fs:var(--text-xs); }
2476
+ .avatar-lg { --step-avatar:var(--space-12); --step-avatar-fs:var(--text-base); }
2121
2477
  .avatar img { width:100%; height:100%; object-fit:cover; }
2478
+ /* LINK (0.32.0): o link de texto da referência — peso médio, a cor de link, sem sublinhado; com o mouse
2479
+ ou apertado, o sublinhado de 1,5 a 4 da letra, na cor esmaecida (a meia força com o mouse). A seta do
2480
+ `external` é o `arrow-up-right` do Phosphor por máscara, a 60% (inteira com o mouse). O desenho é
2481
+ em LINHA (`inline`), e não o bloco em linha dela: o link longo quebra dentro do parágrafo, que é o
2482
+ que a página ampliada a 200% precisa (baixa visão). */
2483
+ .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; }
2484
+ @media (hover:hover) { .link:hover { color:var(--link-hover); text-decoration-line:underline; } .link:hover > .link-external { opacity:1; } }
2485
+ .link:active { text-decoration-line:underline; text-decoration-color:var(--muted-foreground); }
2486
+ .link[aria-disabled="true"] { opacity:var(--opacity-disabled); text-decoration-line:none; cursor:not-allowed; }
2487
+ .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; }
2488
+ /* COLORSWATCH (0.32.0): a amostra de cor da referência — xs 16, sm 24, md 32, lg 36, xl 40 —, só redonda
2489
+ e sem o xadrez (decisão do Victor). O anel de 1 por dentro, a 10% da cor do texto, segura a amostra da
2490
+ cor do fundo no fundo. */
2491
+ .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); }
2492
+ .color-swatch-xs { --color-swatch-size:var(--space-4); }
2493
+ .color-swatch-sm { --color-swatch-size:var(--space-6); }
2494
+ .color-swatch-lg { --color-swatch-size:calc(var(--space-8) + var(--space-1)); }
2495
+ .color-swatch-xl { --color-swatch-size:var(--space-10); }
2496
+ /* A amostra TRANSPARENTE (14/10/2026): o xadrez embaixo, e a cor por uma sombra por dentro (a sombra pinta POR CIMA
2497
+ do fundo; a cor de fundo pintaria por baixo do xadrez). O anel de 1 continua por cima de tudo. */
2498
+ .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); }
2499
+ /* AS AMOSTRAS PARA ESCOLHER (0.32.0, ADR-0069): a variação `options` do ColorSwatch. Cada cor é um rótulo com um
2500
+ botão de opção nativo por cima, invisível (o navegador cuida da escolha e das setas). O desenho é o da
2501
+ referência (3.2.6): opção de 32 (os mesmos tamanhos da amostra), borda de 2 transparente, vão de 8; a escolhida
2502
+ ganha a borda na cor dela, a amostra encolhe a 77% por dentro e aparece o "visto" (1/3 da opção) — preto ou
2503
+ branco pela conta de contraste (a classe `color-swatch-option-dark`, posta pelo componente). Ao passar o ponteiro, a amostra cresce 10%. */
2504
+ .color-swatch-picker { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); }
2505
+ .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); }
2506
+ .color-swatch-option > .color-swatch { inline-size:100%; block-size:100%; transition:scale var(--duration-fast) var(--ease-standard); }
2507
+ .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); }
2508
+ .color-swatch-option-dark::after { background:#000; }
2509
+ .color-swatch-option:has(:checked) { border-color:var(--color-swatch-current,transparent); }
2510
+ .color-swatch-option:has(:checked) > .color-swatch { scale:.77; }
2511
+ .color-swatch-option:has(:checked)::after { scale:1; }
2512
+ @media (hover:hover) { .color-swatch-option:not(:has(:checked,:disabled)):hover > .color-swatch { scale:1.1; } }
2513
+ .color-swatch-option:has(:focus-visible) { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
2514
+ .color-swatch-option:has(:disabled) { opacity:var(--opacity-disabled); cursor:not-allowed; }
2515
+ .color-swatch-input { position:absolute; inset:0; z-index:1; margin:0; opacity:0; cursor:inherit; }
2516
+ /* Em coluna (`layout="stack"`) e a marca própria (`indicator`, no lugar do "visto"), como na referência. A marca
2517
+ aparece só na escolhida, na tinta que contrasta, com 1/3 da opção. */
2518
+ .color-swatch-picker-stack { flex-direction:column; align-items:flex-start; }
2519
+ .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); }
2520
+ .color-swatch-indicator > * { inline-size:calc(var(--color-swatch-size) / 3); block-size:calc(var(--color-swatch-size) / 3); }
2521
+ .color-swatch-option-dark .color-swatch-indicator { color:#000; }
2522
+ .color-swatch-option:has(:checked) .color-swatch-indicator { scale:1; }
2523
+ .color-swatch-option:has(.color-swatch-indicator)::after { content:none; }
2524
+ .color-swatch-picker-xs .color-swatch-option { --color-swatch-size:var(--space-4); border-width:var(--border-width); }
2525
+ .color-swatch-picker-sm .color-swatch-option { --color-swatch-size:var(--space-6); }
2526
+ .color-swatch-picker-lg .color-swatch-option { --color-swatch-size:calc(var(--space-8) + var(--space-1)); }
2527
+ .color-swatch-picker-xl .color-swatch-option { --color-swatch-size:var(--space-10); }
2528
+ @media (prefers-reduced-motion:reduce) { .color-swatch-option,.color-swatch-option > .color-swatch,.color-swatch-option::after,.color-swatch-indicator { transition:none; } }
2529
+ /* PROGRESSCIRCLE (0.32.0): o anel da referência — traço de 4 num quadro de 36, ponta redonda, começando no
2530
+ topo —, em 20 · 28 · 36. O trilho e as cores são as do `Progress`. Sem valor, gira. */
2531
+ .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); }
2532
+ .progress-circle > svg { inline-size:100%; block-size:100%; }
2533
+ .progress-circle-track,.progress-circle-fill { fill:none; stroke-width:4; }
2534
+ .progress-circle-track { stroke:var(--surface-3); }
2535
+ .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); }
2536
+ .progress-circle-sm { --progress-circle-size:var(--space-5); }
2537
+ .progress-circle-lg { --progress-circle-size:calc(var(--space-8) + var(--space-1)); }
2538
+ .progress-circle-neutral { --progress-circle-fill:var(--muted-foreground); }
2539
+ .progress-circle-success { --progress-circle-fill:var(--success-400); }
2540
+ .progress-circle-warning { --progress-circle-fill:var(--warning-400); }
2541
+ .progress-circle-danger { --progress-circle-fill:var(--danger-400); }
2542
+ .progress-circle-info { --progress-circle-fill:var(--info-400); }
2543
+ .progress-circle-indeterminate > svg { animation:spin 1s linear infinite; }
2544
+ @media (prefers-reduced-motion:reduce) { .progress-circle-indeterminate > svg { animation-duration:3s; } .progress-circle-fill { transition:none; } }
2545
+ /* TAGGROUP (0.32.0): as etiquetas da referência — 24 de altura (sm 20, lg 32), 8 dos lados (lg 10), letra
2546
+ de 12 peso médio (lg 14), ícone de 12, 4 entre as partes, 6 entre as etiquetas; o fundo neutro (ou o de
2547
+ cartão, `surface`), a escolhida no clarinho. O canto é a cápsula da Aurea. O anel de foco vai na
2548
+ etiqueta inteira, e não só no botão de dentro. */
2549
+ .tag-group { display:flex; flex-direction:column; gap:var(--space-1); }
2550
+ .tag-group-list { display:flex; flex-wrap:wrap; gap:calc(var(--space-1) + var(--space-05)); }
2551
+ .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; }
2552
+ .tag-main { display:inline-flex; align-items:center; gap:var(--space-1); padding:0; border:0; background:none; color:inherit; font:inherit; }
2553
+ button.tag-main { cursor:pointer; }
2554
+ .tag-main > .icon { --step-icon:var(--space-3); }
2555
+ .tag-label { white-space:nowrap; }
2556
+ .tag-sm { min-block-size:var(--space-5); }
2557
+ .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); }
2558
+ .tag-surface { background:var(--card); color:var(--card-foreground); }
2559
+ @media (hover:hover) { .tag:has(> button.tag-main):not([data-selected]):not([data-disabled]):hover { background:var(--secondary-hover); } }
2560
+ .tag[data-selected] { background:color-mix(in oklab,var(--primary) 10%,var(--secondary)); color:var(--primary-emphasis); }
2561
+ .tag[data-disabled] { opacity:var(--opacity-disabled); }
2562
+ .tag-main:focus-visible { outline:none; }
2563
+ .tag:has(> .tag-main:focus-visible) { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
2564
+ .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; }
2565
+ .tag-remove > .icon { --step-icon:var(--space-3); }
2566
+ .tag-remove:hover:not(:disabled) { opacity:1; }
2567
+ .tag-remove:disabled { cursor:not-allowed; }
2568
+ @media (pointer:coarse) { .tag-remove::before { content:""; position:absolute; inset:calc((var(--space-3) - var(--target-min)) / 2); border-radius:var(--radius-full); } }
2122
2569
  /* O container do grupo NUNCA teve regra: a sobreposição abaixo existia e os avatares empilhavam
2123
2570
  na vertical porque o pai saía `display:block`. Mesma falha do `.stepper` e do `.command`. */
2124
2571
  .avatar-group { display:inline-flex; align-items:center; }
@@ -2185,18 +2632,33 @@ img,svg { display:block; }
2185
2632
  .timeline > li > div { display:flex; flex-direction:column; gap:var(--space-05); min-width:0; }
2186
2633
  .timeline > li > div > p { margin:0; }
2187
2634
  .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); }
2635
+ /* ACCORDION (0.32.0) — o da referência, com o realce em CÁPSULA (decisão do Victor, 11/10/2026). Sem
2636
+ caixa em volta: um fio de 1 entre os itens, nenhum depois do último. A pergunta: 16 de todos os
2637
+ lados, 14 peso médio, a seta de 16 no FIM (esmaecida), que vira −180° ao abrir — o marcador do
2638
+ navegador sai (era ele que girava, no começo da linha). O realce do mouse só no item fechado: a cor
2639
+ do texto a 3%, em cápsula. A resposta: 14 esmaecida, 16 dos lados e embaixo. Recuo INLINE, não
2640
+ `padding-left`: em RTL a seta troca de lado e o corpo acompanha (o gate de RTL mede o eixo inline).
2641
+ `surface`: tudo num cartão, o fio a 94% (3% de cada lado) e o realce no cinza neutro. */
2642
+ .accordion { display:flex; flex-direction:column; }
2643
+ .accordion-item { position:relative; }
2644
+ .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); }
2645
+ .accordion-item:last-child::after { content:none; }
2646
+ .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); }
2647
+ .accordion-item > summary::-webkit-details-marker { display:none; }
2648
+ .accordion-title { min-inline-size:0; }
2649
+ .accordion-item:not([open]) > summary:hover:not([aria-disabled="true"]) { background:color-mix(in oklab, var(--foreground) 3%, transparent); }
2650
+ .accordion-item > summary[aria-disabled="true"] { opacity:var(--opacity-disabled); cursor:not-allowed; }
2651
+ /* A seta é desenho do CSS por máscara, como a do `KPI` e a do aviso preso ao botão (12/10/2026). No
2652
+ passo 4 ela entrou como `<Icon>`, que busca o arquivo de ícones: quem usava só o `Accordion` — que
2653
+ abre sem JavaScript e não pedia arquivo nenhum — passou a ver um erro de rede e uma seta vazia (a
2654
+ prova A4 pegou). O desenho é o `caret-down` do Phosphor, o mesmo do arquivo, no mesmo tamanho. */
2655
+ .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); }
2656
+ .accordion-item[open] > summary .accordion-chevron { transform:rotate(-180deg); }
2657
+ .accordion-content { padding-block:0 var(--space-4); padding-inline:var(--space-4); color:var(--muted-foreground); font-size:var(--text-sm); }
2658
+ .accordion-surface { border-radius:var(--radius-card); background:var(--card); }
2659
+ .accordion-surface > .accordion-item::after { inset-inline-start:3%; inline-size:94%; }
2660
+ .accordion-surface > .accordion-item:not([open]) > summary:hover:not([aria-disabled="true"]) { background:var(--secondary); }
2661
+ @media (prefers-reduced-motion:reduce) { .accordion-chevron { transition:none; } }
2200
2662
  /* Mockup do kit de origem (apps/docs) — não é o Accordion do sistema, que é <details> nativo. */
2201
2663
 
2202
2664
  /* QRCode: superfície flutuante Aurea, mas o miolo é de alto contraste FIXO — um QR
@@ -2225,6 +2687,21 @@ img,svg { display:block; }
2225
2687
  .checkbox-bare { gap:0; }
2226
2688
  .code-block-wrap { position:relative; display:flex; min-width:0; }
2227
2689
  .code-block-wrap > .code-block { flex:1; min-width:0; margin:0; }
2690
+ /* DOC-02 (0.32.0): a caixa de exemplo do site (`CodeBlock preview`), trazida para o core do jeito que
2691
+ ela é no site — o cartão sem recheio, a barra de abas com o segmentado ocupando a largura, a prévia
2692
+ no fundo afundado, centrada, e o código sem moldura (o cartão já é a moldura). A altura é do conteúdo;
2693
+ o site fixa a dele (`--demo-height`). */
2694
+ .code-preview { display:flex; flex-direction:column; block-size:var(--demo-height,auto); padding:0; overflow:hidden; }
2695
+ .demo-tabs { display:flex; padding:var(--space-2); border-bottom:var(--border-width) solid var(--border); }
2696
+ .demo-tabs .segmented { flex:1; display:flex; }
2697
+ .demo-tabs .segmented button { flex:1; }
2698
+ .demo-panel { flex:1; min-height:0; overflow:auto; padding:var(--space-6); }
2699
+ .demo-panel[hidden] { display:none; }
2700
+ .demo-panel[data-panel="preview"] { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:var(--space-4); background:var(--surface-inset); }
2701
+ .demo-panel[data-panel="preview"][hidden] { display:none; }
2702
+ .demo-code { display:flex; padding:0; overflow:hidden; }
2703
+ .demo-code .code-block-wrap { flex:1; }
2704
+ .demo-code .code-block { padding:var(--space-6); border:0; border-radius:0; }
2228
2705
  .copy-code { position:absolute; top:var(--space-3); inset-inline-end:var(--space-3); z-index:1; }
2229
2706
  .copy-code .c-done { display:none; }
2230
2707
  .copy-code.is-done .c-copy { display:none; } .copy-code.is-done .c-done { display:block; color:var(--primary); }
@@ -2232,7 +2709,11 @@ img,svg { display:block; }
2232
2709
  por isso é <nav> com rótulo, e o item atual se marca com aria-current. */
2233
2710
  .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
2711
 
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; }
2712
+ /* O "On this page" é o da referência (ADR-0067): letra 14, peso normal, esmaecido, SEM maiúsculas, e o
2713
+ ícone de linhas ao lado — desenho do CSS por máscara (o `text-align-left` do Phosphor), para o sumário
2714
+ não passar a depender do arquivo de ícones. Era 11, em maiúsculas espaçadas. */
2715
+ .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); }
2716
+ .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
2717
  .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
2718
  .toc a:hover { color:var(--foreground); }
2238
2719
  .toc a[aria-current] { border-inline-start-color:var(--primary); color:var(--foreground); }
@@ -2296,26 +2777,33 @@ img,svg { display:block; }
2296
2777
  APARECE (o motor conta com o CSS dele para escondê-lo, e nós não importamos o CSS dele). */
2297
2778
  .calendar { display:inline-block; padding:var(--space-3); border:1px solid var(--border); border-radius:var(--radius-card); background:var(--surface-1); }
2298
2779
  .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; }
2780
+ /* 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
2781
+ 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
2782
+ peso médio esmaecido, com 8 embaixo; o dia de 36 redondo, em 14 peso médio; HOJE no clarinho (o "soft"
2783
+ dela), o escolhido no amarelo cheio, o de fora do mês esmaecido a meia força, o desligado riscado. */
2784
+ .calendar nav { position:absolute; inset-block-start:0; inset-inline-end:0; display:flex; }
2785
+ .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; }
2786
+ .calendar nav button:hover:not(:disabled):not([aria-disabled="true"]) { background:var(--secondary); }
2787
+ .calendar nav button:active:not(:disabled):not([aria-disabled="true"]) { transform:scale(.95); }
2788
+ .calendar nav button:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
2303
2789
  .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); }
2790
+ .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
2791
  /* Estas três já foram um DESFAZIMENTO: `width:auto`, `min-width:0`, `height:auto` e
2306
2792
  `border-bottom:0` existiam só para anular a regra de elemento da seção de dados. A regra foi
2307
2793
  escopada em 02/08/2026 e o antídoto saiu junto — corrigir onde nasce, não onde dói.
2308
2794
  O `padding:0` FICA, e não é antídoto: é o 1px que o NAVEGADOR dá a `<td>`/`<th>`. Tirá-lo
2309
2795
  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); }
2796
+ .calendar table { border-collapse:collapse; margin-block-start:var(--space-4); }
2797
+ .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
2798
  .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; }
2799
+ .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
2800
  .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; }
2801
+ .calendar td button:active:not(:disabled):not([aria-disabled="true"]) { transform:scale(.95); }
2802
+ .calendar td[data-today] button { background:color-mix(in oklab,var(--primary) 10%,var(--secondary)); color:var(--primary-emphasis); }
2803
+ .calendar td[data-selected] button { background:var(--primary); color:var(--primary-foreground); }
2804
+ .calendar td[data-outside] button { color:var(--muted-foreground); opacity:.5; }
2805
+ .calendar td[data-selected][data-outside] button { background:var(--secondary); color:var(--muted-foreground); }
2806
+ .calendar td button:disabled { opacity:var(--opacity-disabled); text-decoration:line-through; cursor:not-allowed; }
2319
2807
  .calendar td[data-hidden] { visibility:hidden; }
2320
2808
  .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
2809
  /* Chat React (Fase 5.4): estrutura fixa em classe, não inline (auditoria 18/07, M14). */
@@ -2493,20 +2981,31 @@ img,svg { display:block; }
2493
2981
  token: a escala de letras é a dela desde a ADR-0050, a entrelinha do texto é `--leading-relaxed`
2494
2982
  (27, 24 e 20px, contra os 28, 24 e 20 dela) e o código reusa a pele do `code` do `.prose`.
2495
2983
  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. */
2984
+ quem os empilha (`Stack`), não do texto.
2985
+ 0.32.0: a entrelinha do título passa a ser a de CADA tamanho, como na escala publicada dela
2986
+ (40 · 36 · 32 · 28 · 28 · 24); até aqui era 1,2 em todos (43 · 36 · 29 · 24 · 22 · 19). */
2497
2987
  .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); }
2988
+ .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); }
2989
+ .typography-h1 { font-size:var(--text-4xl); line-height:var(--text-4xl-leading); }
2990
+ .typography-h2 { font-size:var(--text-3xl); line-height:var(--text-3xl-leading); }
2991
+ .typography-h3 { font-size:var(--text-2xl); line-height:var(--text-2xl-leading); }
2992
+ .typography-h4 { font-size:var(--text-xl); line-height:var(--text-xl-leading); }
2993
+ .typography-h5 { font-size:var(--text-lg); line-height:var(--text-lg-leading); }
2994
+ .typography-h6 { font-size:var(--text-base); line-height:var(--leading-normal); }
2505
2995
  .typography-body { font-size:var(--text-base); line-height:var(--leading-relaxed); }
2506
2996
  .typography-body-sm { font-size:var(--text-sm); line-height:var(--leading-relaxed); }
2507
2997
  .typography-body-xs { font-size:var(--text-xs); line-height:var(--leading-relaxed); }
2508
2998
  .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
2999
  .typography-muted { color:var(--muted-foreground); }
3000
+ /* DOC-11 (0.32.0): o `tone` do nativo, na web. `link` é o amarelo de escrever; `primary`, o de
3001
+ preencher (no claro quase some, como no nativo); as cores de estado, o par `-400` (ADR-0061). */
3002
+ .typography-tone-subtle { color:var(--subtle-foreground); }
3003
+ .typography-tone-primary { color:var(--primary); }
3004
+ .typography-tone-link { color:var(--link); }
3005
+ .typography-tone-danger { color:var(--danger-400); }
3006
+ .typography-tone-success { color:var(--success-400); }
3007
+ .typography-tone-warning { color:var(--warning-400); }
3008
+ .typography-tone-info { color:var(--info-400); }
2510
3009
  .typography-weight-normal { font-weight:var(--weight-regular); }
2511
3010
  .typography-weight-medium { font-weight:var(--weight-medium); }
2512
3011
  .typography-weight-semibold { font-weight:var(--weight-semibold); }
@@ -2540,11 +3039,11 @@ img,svg { display:block; }
2540
3039
  .prose { max-width:var(--prose-measure,68ch); font-size:var(--text-base); line-height:var(--leading-relaxed); }
2541
3040
  .prose > * + * { margin-block-start:var(--space-4); }
2542
3041
  .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); }
3042
+ .prose h1,.prose h2,.prose h3,.prose h4 { font-weight:var(--weight-semibold); }
3043
+ .prose h1 { font-size:var(--text-3xl); line-height:var(--text-3xl-leading); }
3044
+ .prose h2 { font-size:var(--text-2xl); line-height:var(--text-2xl-leading); }
3045
+ .prose h3 { font-size:var(--text-xl); line-height:var(--text-xl-leading); }
3046
+ .prose h4 { font-size:var(--text-lg); line-height:var(--text-lg-leading); }
2548
3047
  .prose blockquote { margin-inline:0; padding-inline-start:var(--space-4); border-inline-start:2px solid var(--border-strong); color:var(--muted-foreground); }
2549
3048
  .prose ul,.prose ol { padding-inline-start:var(--space-6); }
2550
3049
  .prose li + li { margin-block-start:var(--space-2); }
@@ -2634,40 +3133,131 @@ img,svg { display:block; }
2634
3133
  .icon-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; }
2635
3134
  .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
3135
  @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); }
3136
+ /* JANELAS (0.32.0): o Dialog, o ConfirmDialog e o Drawer com a anatomia da referência, lida no CSS
3137
+ PUBLICADO dela — recheio de 24; o X a 16 do topo e do fim; o cabeçalho em coluna (o ícone num círculo
3138
+ 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
3139
+ 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
3140
+ janela guarda 16 no celular e 40 de 640 para cima. Entra crescendo de 0,95 a 1 e sai encolhendo, como
3141
+ a dela. A borda continua (a dela é só sombra no claro): baixa visão, como nas outras janelas.
3142
+ O que já rolava (a janela inteira) passou para o corpo — a ficha prometia isso desde sempre. */
3143
+ .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); }
3144
+ .dialog-backdrop[data-starting-style],.dialog-backdrop[data-ending-style] { opacity:0; }
3145
+ .dialog-backdrop[data-ending-style] { transition-duration:var(--duration-fast); }
3146
+ .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); }
3147
+ .dialog[data-starting-style] { opacity:0; scale:1.05; }
3148
+ .dialog[data-ending-style] { opacity:0; scale:.95; transition-duration:var(--duration-fast); }
3149
+ @media (min-width:640px) { .dialog { --dialog-margin:var(--space-10); } }
3150
+ /* `placement` (o dela): `auto` senta a janela EMBAIXO no celular, onde o polegar alcança, e no meio de
3151
+ 640 para cima. Sem o atributo (a marcação pura), a janela fica no meio, como sempre ficou. */
3152
+ .dialog[data-placement="top"] { top:var(--dialog-margin); translate:none; }
3153
+ .dialog[data-placement="bottom"] { top:auto; bottom:var(--dialog-margin); translate:none; }
3154
+ @media (max-width:639.98px) { .dialog[data-placement="auto"] { top:auto; bottom:var(--dialog-margin); translate:none; } }
2639
3155
  /* size (B-03), decisão do Victor em 24/09/2026: as quatro larguras da referência — as do
2640
3156
  pacote de estilos dela, 20/24/28/32rem = 320/384/448/512 — mais 1024
2641
3157
  (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
3158
  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; }
3159
+ .dialog-xs { --dialog-w:20rem; }
3160
+ .dialog-sm { --dialog-w:24rem; }
3161
+ .dialog-lg { --dialog-w:32rem; }
3162
+ .dialog-xl { --dialog-w:var(--breakpoint-lg); }
3163
+ .dialog-full { --dialog-w:100vw; block-size:calc(100dvh - 2 * var(--dialog-margin)); }
3164
+ /* As partes, as mesmas no Dialog, no ConfirmDialog e no Drawer. O corpo guarda, dos lados e em cima e
3165
+ embaixo, o espaço do anel de foco (a largura e o afastamento dele): é ele que rola, e o que rola corta
3166
+ o anel de quem encosta na borda — a referência faz a mesma conta, com 3. */
3167
+ /* 16 da borda de FORA, como a dela (que não tem borda): o absoluto conta de dentro da borda de 1. */
3168
+ .dialog-close { position:absolute; inset-block-start:calc(var(--space-4) - var(--border-width)); inset-inline-end:calc(var(--space-4) - var(--border-width)); }
3169
+ .dialog-header { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-3); }
3170
+ .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; }
3171
+ .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); }
3172
+ .dialog-icon > .icon { --step-icon:var(--icon-md); }
3173
+ .dialog-icon-brand { background:color-mix(in oklab,var(--primary) 10%,var(--secondary)); color:var(--primary-emphasis); }
3174
+ .dialog-icon-info { background:var(--info-bg); color:var(--info-400); }
3175
+ .dialog-icon-success { background:var(--success-bg); color:var(--success-400); }
3176
+ .dialog-icon-warning { background:var(--warning-bg); color:var(--warning-400); }
3177
+ .dialog-icon-danger { background:var(--danger-bg); color:var(--danger-400); }
3178
+ .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); }
3179
+ .dialog-header + .dialog-body { margin-block-start:calc(var(--space-2) - var(--dialog-ring)); }
3180
+ .dialog-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:var(--space-2); }
3181
+ .dialog-body + .dialog-footer { margin-block-start:calc(var(--space-5) - var(--dialog-ring)); }
3182
+ .dialog-header + .dialog-footer { margin-block-start:var(--space-5); }
2649
3183
  /* O ConfirmDialog é o MESMO `.dialog` — não nasce uma segunda superfície flutuante, que seria a
2650
3184
  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); }
3185
+ estreita (uma frase e dois botões não precisam da largura do Dialog), com o destrutivo por último no
3186
+ rodapé: a ordem visual é cancelar → agir, e é onde as quatro referências batem. */
3187
+ .dialog-confirm { --dialog-w:26.25rem; }
2655
3188
  .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); }
3189
+ /* DRAWER (0.32.0): a gaveta da referência nos quatro lados, no motor de gaveta do Base UI, que arrasta
3190
+ para fechar. Laterais de 320 (384 de 640 para cima, nunca mais que 85% da tela); a de cima e a de
3191
+ 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
3192
+ dentro nas laterais (a dela é quadrada) e o 32 da folha na de cima e na de baixo (ADR-0058). Enquanto
3193
+ o dedo arrasta, a gaveta segue o dedo (as variáveis do motor) e o fundo clareia junto. */
3194
+ .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); }
3195
+ .drawer-backdrop[data-starting-style],.drawer-backdrop[data-ending-style] { opacity:0; }
3196
+ .drawer-backdrop[data-swiping] { transition-duration:0ms; }
3197
+ .drawer-viewport { position:fixed; inset:0; z-index:var(--z-drawer); }
3198
+ .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); }
3199
+ .drawer[data-swiping] { transition-duration:0ms; }
3200
+ .drawer[data-ending-style] { transition-duration:calc(var(--drawer-swipe-strength,1) * var(--duration-slow)); }
3201
+ .drawer-left,.drawer-right { top:0; bottom:0; inline-size:min(20rem,85vw); transform:translateX(var(--drawer-swipe-movement-x,0px)); }
3202
+ @media (min-width:640px) { .drawer-left,.drawer-right { inline-size:min(24rem,85vw); } }
3203
+ .drawer-right { right:0; border-left-width:var(--border-width); border-radius:var(--radius-card) 0 0 var(--radius-card); }
3204
+ .drawer-left { left:0; border-right-width:var(--border-width); border-radius:0 var(--radius-card) var(--radius-card) 0; }
3205
+ .drawer-top,.drawer-bottom { left:0; right:0; max-block-size:85dvh; transform:translateY(var(--drawer-swipe-movement-y,0px)); }
3206
+ .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)); }
3207
+ .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); }
3208
+ .drawer-right[data-starting-style],.drawer-right[data-ending-style] { transform:translateX(100%); }
3209
+ .drawer-left[data-starting-style],.drawer-left[data-ending-style] { transform:translateX(-100%); }
3210
+ .drawer-bottom[data-starting-style],.drawer-bottom[data-ending-style] { transform:translateY(100%); }
3211
+ .drawer-top[data-starting-style],.drawer-top[data-ending-style] { transform:translateY(-100%); }
3212
+ .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); }
3213
+ .drawer-bottom > .drawer-handle { margin-block-end:var(--space-2); }
3214
+ .drawer-top > .drawer-handle { margin-block-start:var(--space-2); }
3215
+ /* TOAST (0.32.0): o aviso da referência, lido no CSS e no código publicados dela, sobre a pilha do
3216
+ motor (as variáveis `--toast-*` do Base UI). Os avisos moram todos no mesmo lugar: o da frente
3217
+ inteiro, os de trás 12 acima e 5% menores a cada um, com o conteúdo apagado; passar o mouse ou o
3218
+ foco abre a pilha, com 12 entre eles. Embaixo no meio por padrão (o dela), 460 de largura de 640
3219
+ para cima e a tela menos 16 de cada lado no celular. `--toast-dir` é o sentido da pilha: para cima
3220
+ quando ela mora embaixo, para baixo quando mora em cima. */
3221
+ .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; }
3222
+ .toast-stack:is(.toast-stack-top,.toast-stack-top-start,.toast-stack-top-end) { --toast-dir:1; inset-block:var(--space-4) auto; }
3223
+ .toast-stack:is(.toast-stack-bottom-start,.toast-stack-top-start) { inset-inline:var(--space-4) auto; margin-inline:0; }
3224
+ .toast-stack:is(.toast-stack-bottom-end,.toast-stack-top-end) { inset-inline:auto var(--space-4); margin-inline:0; }
3225
+ .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); }
3226
+ .toast-stack:is(.toast-stack-top,.toast-stack-top-start,.toast-stack-top-end) .toast { top:0; bottom:auto; transform-origin:50% 0; }
3227
+ .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)))); }
3228
+ .toast[data-starting-style],.toast[data-ending-style] { transform:translateY(calc(-1 * var(--toast-dir) * 150%)); }
3229
+ .toast[data-limited],.toast[data-ending-style] { opacity:0; }
3230
+ .toast[data-ending-style][data-swipe-direction="right"] { transform:translateX(calc(var(--toast-swipe-movement-x,0px) + 150%)); }
3231
+ .toast[data-ending-style][data-swipe-direction="up"] { transform:translateY(calc(var(--toast-swipe-movement-y,0px) - 150%)); }
3232
+ .toast[data-ending-style][data-swipe-direction="down"] { transform:translateY(calc(var(--toast-swipe-movement-y,0px) + 150%)); }
3233
+ /* A ponte entre dois avisos abertos: sem ela, o mouse que passa pelo vão de 12 sai da pilha e ela fecha. */
3234
+ .toast::after { content:""; position:absolute; inset-inline:0; top:100%; block-size:calc(var(--toast-gap) + var(--border-width)); }
3235
+ .toast-stack:is(.toast-stack-top,.toast-stack-top-start,.toast-stack-top-end) .toast::after { top:auto; bottom:100%; }
3236
+ .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); }
3237
+ .toast-content[data-behind] { opacity:0; }
3238
+ .toast-content[data-expanded] { opacity:1; }
3239
+ .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); }
3240
+ .toast-indicator > .icon { --step-icon:var(--icon-sm); }
3241
+ .toast-text { display:flex; flex:1 1 0; flex-direction:column; align-self:center; min-inline-size:0; }
3242
+ .toast-title { color:var(--popover-foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); line-height:var(--space-5); }
3243
+ .toast-description { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); line-height:var(--space-5); }
3244
+ .toast-action { flex:none; align-self:center; }
3245
+ /* No celular a ação desce para baixo do texto, alinhada com ele — como a dela. */
3246
+ @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)); } }
3247
+ /* As faces do tipo (desde 16/08/2026 elas pintam; o check 18 não enxerga classe por template). Em
3248
+ 0.32.0 o tipo deixou de tingir o fundo e a borda: pinta o ícone e o título, no par `-400` da
3249
+ ADR-0061, como o aviso da referência. */
3250
+ .toast-info :is(.toast-indicator,.toast-title) { color:var(--info-400); }
3251
+ .toast-success :is(.toast-indicator,.toast-title) { color:var(--success-400); }
3252
+ .toast-warning :is(.toast-indicator,.toast-title) { color:var(--warning-400); }
3253
+ .toast-danger :is(.toast-indicator,.toast-title) { color:var(--danger-400); }
3254
+ /* O X do aviso: o `CloseButton` de 20 com o X de 12, na quina, com borda. Aparece com o mouse ou o
3255
+ foco no aviso da frente (ou na pilha aberta); no toque, fica sempre à vista. */
3256
+ .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); }
3257
+ .toast-close.close-button .icon { --step-icon:var(--space-3); }
3258
+ :is(.toast[data-expanded],.toast:has(> .toast-content:not([data-behind]))):is(:hover,:focus-within) > .toast-close { opacity:1; pointer-events:auto; }
3259
+ @media (hover:none) { :is(.toast[data-expanded],.toast:has(> .toast-content:not([data-behind]))) > .toast-close { opacity:1; pointer-events:auto; } }
3260
+ @media (pointer:coarse) { .toast-close.close-button::before { inset:calc((var(--space-5) - var(--target-min)) / 2); } }
2671
3261
  /* GAR-14 (0.28.0): o aviso do `Button share`, preso ao botão — "Link copiado", ou o erro com o link à
2672
3262
  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
3263
  do aviso de sempre. O ícone é desenho de máscara, como a seta do `KPI`: a mesma marcação serve ao
@@ -2692,8 +3282,27 @@ img,svg { display:block; }
2692
3282
  .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
3283
  .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
3284
  /* 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; }
3285
+ /* 0.32.0, a dica da referência: recheio de 8, letra de 12/16, até 320 de largura, o fundo das janelas
3286
+ (era o fundo afundado), e a palavra longa quebra onde precisar. O canto continua o 10 da Aurea (o
3287
+ dela é 12, que a nossa escala não tem). Entra crescendo de 0,9 e sai encolhendo; pelo teclado, e
3288
+ quando passa de uma dica para a vizinha, entra sem animação (`data-instant` do motor). */
3289
+ .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); }
3290
+ .tooltip[data-starting-style],.tooltip[data-ending-style],.popover[data-starting-style],.popover[data-ending-style] { opacity:0; scale:.9; }
3291
+ .tooltip[data-ending-style],.popover[data-ending-style] { transition-duration:var(--duration-fast); }
3292
+ .tooltip[data-instant] { transition:none; }
3293
+ .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); }
3294
+ .popover-title { font-weight:var(--weight-medium); }
3295
+ /* A SETA (0.32.0): o desenho é nosso — uma curva de 12 × 6 —, com o fundo da janela e a linha da borda,
3296
+ e ela entra 1 por cima da borda da janela para a linha dar a volta sem emenda. O motor põe a seta
3297
+ no ponto certo do lado; aqui só se diz em que lado ela encosta e para onde aponta. */
3298
+ .overlay-arrow { display:flex; inline-size:var(--space-3); block-size:var(--space-3); }
3299
+ .overlay-arrow > svg { inline-size:100%; block-size:100%; overflow:visible; }
3300
+ .overlay-arrow-fill { fill:var(--popover); }
3301
+ .overlay-arrow-line { stroke:var(--border); stroke-width:var(--border-width); }
3302
+ .overlay-arrow[data-side="top"] { top:calc(100% - var(--border-width)); }
3303
+ .overlay-arrow[data-side="bottom"] { bottom:calc(100% - var(--border-width)); rotate:180deg; }
3304
+ .overlay-arrow[data-side="left"] { left:calc(100% - var(--border-width)); rotate:-90deg; }
3305
+ .overlay-arrow[data-side="right"] { right:calc(100% - var(--border-width)); rotate:90deg; }
2697
3306
  /* `--menu-px` existe porque o RÓTULO DE GRUPO tem de alinhar com o texto dos itens, e o número
2698
3307
  estava escrito duas vezes. Uma relação entre duas regras não se mantém repetindo a constante:
2699
3308
  quem mudar o recuo do item mudaria o alinhamento do rótulo sem perceber. */
@@ -2723,8 +3332,18 @@ img,svg { display:block; }
2723
3332
  DEPOIS do `.menu-item` de proposito: as duas regras tem a MESMA especificidade, entao quem vem
2724
3333
  por ultimo vence. Escrita antes, a grade de tres colunas era apagada pelo `display:flex` do
2725
3334
  menu — medido em 13/08/2026, e o gate de pele foi quem pegou. */
2726
- .command-positioner { inline-size:var(--anchor-width); }
2727
3335
  .command-list { max-height:min(50vh,360px); overflow-y:auto; overscroll-behavior:contain; }
3336
+ /* 0.32.0 — a lista mora DENTRO da caixa da paleta (o `inline` do motor), e não num popup: o `.menu`
3337
+ aqui não flutua — sem borda, sem sombra, sem largura própria; a caixa é a da paleta. */
3338
+ .command-palette .command-list { position:static; z-index:auto; min-width:0; max-width:none; border:0; box-shadow:none; padding:0; background:transparent; }
3339
+ /* O título do grupo (DOC-06) = o `Header` da seção da lista da referência: 12, peso médio,
3340
+ esmaecido, sem maiúsculas; 6 em cima e 4 embaixo; alinhado ao texto do item (`--menu-px`). */
3341
+ .command-group + .command-group { margin-block-start:var(--space-1); }
3342
+ .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); }
3343
+ /* A linha de atalhos (DOC-07): a tecla da referência (o `Kbd`) com o que ela faz, 12 esmaecido,
3344
+ separada da lista por um fio. */
3345
+ .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); }
3346
+ .command-shortcuts > span { display:inline-flex; align-items:center; gap:var(--space-1); }
2728
3347
  .command-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:var(--space-3); align-items:center; }
2729
3348
  .command-item-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
2730
3349
 
@@ -2777,6 +3396,19 @@ img,svg { display:block; }
2777
3396
  centralizado; e o valor longo termina em "…" em vez de passar por baixo da seta. */
2778
3397
  .select-trigger { display:flex; align-items:center; text-align:start; cursor:pointer; }
2779
3398
  .select-trigger:disabled,.select-trigger[data-disabled] { cursor:not-allowed; }
3399
+ /* O GATILHO DO `DatePicker` (0.32.0, ADR-0068) é o campo do `Select`, com o calendário no lugar da seta:
3400
+ sem a seta desenhada no fundo, o recheio do fim volta ao do lado de dentro, e o ícone vai no fim. */
3401
+ /* 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
3402
+ do `.select` (`[data-theme="light"] .select:where(…)`, mais acima) também tem 0,2,0 e repintava a seta por cima do
3403
+ calendário — visto pelo Victor em 13/10/2026. Empate de força: vale a que vem depois, que é esta. */
3404
+ .date-picker-trigger { gap:var(--space-2); padding-inline-end:var(--step-field-px,var(--space-3)); }
3405
+ .select.date-picker-trigger { background-image:none; }
3406
+ .date-picker-trigger > .icon { flex:none; color:var(--muted-foreground); }
3407
+ /* A janela abraça o calendário (o `.popover` tem um piso de largura para texto, e aqui não há texto). E é UMA
3408
+ 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
3409
+ calendário de dentro perde a moldura própria — antes saía caixa dentro de caixa (visto em 13/10/2026). */
3410
+ .date-picker-popover { min-width:0; padding:var(--space-3); }
3411
+ .date-picker-popover > .calendar { padding:0; border:0; border-radius:0; background:transparent; }
2780
3412
  .select-value { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
2781
3413
  .select-value[data-placeholder] { color:var(--muted-foreground); }
2782
3414
  .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; }
@@ -2900,7 +3532,7 @@ img,svg { display:block; }
2900
3532
  (`.tree-label` não quebra), então a cápsula não deforma. */
2901
3533
  .tree, .tree-group { margin:0; padding:0; list-style:none; }
2902
3534
  .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; }
3535
+ .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
3536
  .tree-node:hover { background:var(--surface-3); }
2905
3537
  .tree-item:focus-visible > .tree-node { outline:var(--focus-width) solid var(--focus-strong); outline-offset:calc(-1 * var(--focus-width)); }
2906
3538
  .tree-node[data-selected] { background:color-mix(in srgb,var(--primary) 14%,transparent); }
@@ -2913,7 +3545,17 @@ img,svg { display:block; }
2913
3545
  .tree-twist-rtl { rotate:180deg; }
2914
3546
  .tree-item[aria-expanded="true"] > .tree-node > .tree-twist { rotate:90deg; }
2915
3547
  .tree-indent { flex:none; width:1rem; }
2916
- .tree-label { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
3548
+ /* MNT-23 (12/10/2026): a árvore ALARGAVA A PÁGINA. O rótulo não quebra linha, e numa linha `flex` a
3549
+ largura mínima da árvore era o rótulo inteiro: numa coluna `1fr` de grade, num filho `flex: 1` ou num
3550
+ div dentro deles, ela empurrava a caixa (medido: 360 → 820). A linha é uma GRADE, e a trilha do
3551
+ rótulo é `minmax(0,1fr)`: ela pede zero de largura mínima e, quando há espaço (um painel que se
3552
+ ajusta ao conteúdo), mostra o rótulo inteiro — largura 0 no rótulo resolveria só a primeira metade.
3553
+ 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
3554
+ ícone e do rótulo: sem ícone, a coluna dele fica vazia e não sobra vão dobrado. Quem cobra:
3555
+ `tests/visual/rede3.spec.ts`. */
3556
+ .tree-node > .tree-twist, .tree-node > .tree-indent { grid-column:1; }
3557
+ .tree-node > .icon:not(.tree-twist) { grid-column:2; margin-inline-start:var(--space-2); }
3558
+ .tree-label { grid-column:3; margin-inline-start:var(--space-2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
2917
3559
 
2918
3560
  /* NotificationCenter (Fase 4) — compõe o .popover; aqui só o gatilho com count,
2919
3561
  o cabeçalho e as linhas do feed. Espaço novo tokenizado; a linha usa radius-sm
@@ -2975,7 +3617,8 @@ th[aria-sort] .datagrid-sort-icon { color:var(--primary); }
2975
3617
  `height:auto` (o conteúdo já passa de --row-h, e altura em célula é mínimo),
2976
3618
  `letter-spacing:normal` (o .input não herda o entreletras do cabeçalho) e
2977
3619
  `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; }
3620
+ .table-wrap thead tr.datagrid-filters th { block-size:auto; padding-block:var(--space-2); vertical-align:top; }
3621
+ .table-wrap thead tr.datagrid-filters th::after { content:none; }
2979
3622
  .datagrid-filters .field { gap:0; }
2980
3623
 
2981
3624
  /* F6: cabeçalho fixo. A `.table-wrap` já é o contêiner de rolagem (overflow:auto),
@@ -2993,12 +3636,14 @@ th[aria-sort] .datagrid-sort-icon { color:var(--primary); }
2993
3636
  seria trocar risco real por pureza de método. As outras três regras daqui foram
2994
3637
  provadas. */
2995
3638
  .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); }
3639
+ .datagrid-sticky .datagrid-filters th { inset-block-start:var(--table-head-h); }
2997
3640
 
2998
3641
  /* F7: a alça de redimensionar. Fina, colada no fim da célula e da altura toda —
2999
3642
  alvo estreito de propósito, porque largo demais rouba o clique do cabeçalho
3000
3643
  ordenável que está ao lado. O `th` precisa de `position:relative` para ancorá-la. */
3001
3644
  .datagrid thead th:has(> .datagrid-resizer) { position:relative; }
3645
+ /* A alça de largura toma o lugar do fio entre as colunas, como na referência. */
3646
+ .table-wrap thead th:has(> .datagrid-resizer)::after { content:none; }
3002
3647
  .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
3648
  .datagrid-resizer:hover, .datagrid-resizer:focus-visible { background:var(--primary); }
3004
3649
  .datagrid-resizer:focus-visible { outline:var(--focus-width) solid var(--focus-strong); outline-offset:calc(-1 * var(--focus-width)); }
@@ -3223,7 +3868,12 @@ th[aria-sort] .datagrid-sort-icon { color:var(--primary); }
3223
3868
  --xy-minimap-node-stroke-color:transparent;
3224
3869
  /* A espessura de base da linha: a do sistema (1). O alto contraste dobra a base, e os pesos e
3225
3870
  traços são múltiplos dela — por isso nada aqui é número solto. */
3226
- --graph-edge-base:var(--border-width); }
3871
+ --graph-edge-base:var(--border-width);
3872
+ /* (Rodada 2) O rótulo de HTML fica ACIMA das linhas e dos contêineres: o motor eleva a linha de quem
3873
+ está dentro de um contêiner ao andar do nó (1, 2…), e a caixa do contêiner é um nó — sem isto, o
3874
+ "10G" saía por baixo da fibra e o nome da porta, por baixo do site (medido na bancada). 1000 é o
3875
+ degrau que o próprio motor usa para elevar o escolhido; o rótulo que encosta num nó some (MNT-12.5). */
3876
+ --graph-label-z:1000; }
3227
3877
  /* A atribuição do motor (que a licença dele manda manter, e mantemos) traz `color:#999`
3228
3878
  CRAVADO no `init.css` — o único ponto em que a folha "estrutural" carrega cor. Reprovou
3229
3879
  contraste no axe, tema claro. A regra é de ELEMENTO e vem ESCOPADA à nossa classe, que é a
@@ -3268,18 +3918,34 @@ button.graph-node-body { cursor:pointer; }
3268
3918
  com camada, qualquer que seja a força do seletor. Medido na bancada da rodada 1: a fibra saía com
3269
3919
  1 de espessura em vez de 6. A variável não tem rival na linha, então a nossa vale. O `stroke-width`
3270
3920
  fica para os desenhos que são nossos (a amostra da legenda e o miolo do traço duplo). */
3271
- .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); }
3272
- .dependency-graph .graph-edge-thick { --graph-edge-w:calc(var(--graph-edge-base) * 2); }
3273
- .dependency-graph .graph-edge-heavy { --graph-edge-w:calc(var(--graph-edge-base) * 3); }
3921
+ .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); }
3922
+ .dependency-graph .graph-edge-thick { --graph-edge-w:calc(var(--graph-edge-base) * 2 * var(--graph-edge-scale,1)); }
3923
+ .dependency-graph .graph-edge-heavy { --graph-edge-w:calc(var(--graph-edge-base) * 3 * var(--graph-edge-scale,1)); }
3924
+ /* MNT-26 (12/10/2026): a COR da linha é o ESTADO dela, o `status.tone` da linha, como o selo do nó (pedido
3925
+ do dono do app: "senti falta de cores"). A cor é a de LETRA e borda sobre a tela (o par `-400`,
3926
+ ADR-0061), e não o fundo cheio. Ela pinta a variável do motor no próprio traço — vence o alto contraste,
3927
+ que pinta a do mapa inteiro: a linha de cor continua de cor, e o traço fica grosso como o resto. A
3928
+ amostra da parte "Estado" da legenda usa a mesma classe, e a palavra ao lado dela é o que garante que a
3929
+ cor não fala sozinha; a amostra do TIPO da ligação não leva cor.
3930
+ A linha com cor tem o DOBRO da espessura (ordem do Victor, 13/10/2026: "pode engrossar a linha com cor").
3931
+ Medido no "caber na tela" (zoom 0,57): com 1 — e com 1,5 —, nenhum ponto do traço chegava à cor de
3932
+ verdade, e a linha verde parecia cinza; com 2, a cor aparece exata. As três espessuras dobram juntas
3933
+ (`--graph-edge-scale`), para a velocidade continuar legível entre as linhas com cor; o miolo do duplo
3934
+ leva a mesma classe e dobra junto. */
3935
+ .dependency-graph :is(.graph-edge-tone-info,.graph-edge-tone-success,.graph-edge-tone-warning,.graph-edge-tone-danger) { --graph-edge-scale:2; }
3936
+ .dependency-graph .graph-edge-tone-info { --xy-edge-stroke:var(--info-400); }
3937
+ .dependency-graph .graph-edge-tone-success { --xy-edge-stroke:var(--success-400); }
3938
+ .dependency-graph .graph-edge-tone-warning { --xy-edge-stroke:var(--warning-400); }
3939
+ .dependency-graph .graph-edge-tone-danger { --xy-edge-stroke:var(--danger-400); }
3274
3940
  .dependency-graph .graph-edge-dashed { stroke-dasharray:var(--space-2) var(--space-1); }
3275
3941
  .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; }
3276
3942
  .dependency-graph .graph-edge-double { --xy-edge-stroke-width:calc(var(--graph-edge-w) * 3); stroke-width:calc(var(--graph-edge-w) * 3); }
3277
- .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; }
3278
- .graph-edge-double-core.graph-edge-thick { --graph-edge-w:calc(var(--graph-edge-base) * 2); }
3279
- .graph-edge-double-core.graph-edge-heavy { --graph-edge-w:calc(var(--graph-edge-base) * 3); }
3943
+ .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; }
3944
+ .graph-edge-double-core.graph-edge-thick { --graph-edge-w:calc(var(--graph-edge-base) * 2 * var(--graph-edge-scale,1)); }
3945
+ .graph-edge-double-core.graph-edge-heavy { --graph-edge-w:calc(var(--graph-edge-base) * 3 * var(--graph-edge-scale,1)); }
3280
3946
  /* A pastilha do meio (marca, número, grupo) e o nome da porta na ponta são HTML sobre o desenho. */
3281
- .graph-edge-chip { position:absolute; 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; }
3282
- .graph-edge-end { position:absolute; 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; }
3947
+ .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; }
3948
+ .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; }
3283
3949
  /* `nodrag`/`nopan`: a pastilha é HTML sobre o mapa, e as duas classes dizem ao motor para não arrastar
3284
3950
  nem rolar a tela por ela (o botão do grupo precisa do clique). Fora do botão, o cursor é o comum. */
3285
3951
  .graph-edge-chip.nodrag.nopan { cursor:default; }
@@ -3292,7 +3958,12 @@ button.graph-node-body { cursor:pointer; }
3292
3958
  /* Os botões de zoom, o minimapa e a legenda flutuam sobre o mapa, com a pele de cartão. */
3293
3959
  .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); }
3294
3960
  .graph-minimap { border:var(--border-width) solid var(--border); border-radius:var(--radius-md); overflow:hidden; }
3295
- .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)); }
3961
+ .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)); }
3962
+ /* Duas partes (12/10/2026): o tipo da ligação e o estado, cada uma com o título à vista; com uma parte só,
3963
+ a lista sozinha, como era. */
3964
+ .graph-legend ul { display:grid; gap:var(--space-1); margin:0; padding:0; list-style:none; }
3965
+ .graph-legend-title { margin:0; color:var(--muted-foreground); font-weight:var(--weight-medium); }
3966
+ .graph-legend ul + .graph-legend-title { margin-block-start:var(--space-2); }
3296
3967
  .graph-legend li { display:flex; align-items:center; gap:var(--space-2); }
3297
3968
  .graph-legend-sample { inline-size:var(--space-8); block-size:var(--space-2); overflow:visible; }
3298
3969
  .graph-legend-sample .graph-edge,.graph-legend-sample .graph-edge-double-core { fill:none; }
@@ -3307,7 +3978,53 @@ button.graph-node-body { cursor:pointer; }
3307
3978
  .dependency-graph[data-contrast="high"] { --xy-edge-stroke:var(--foreground); --xy-edge-label-color:var(--foreground); --graph-edge-base:calc(var(--border-width) * 2); }
3308
3979
  .dependency-graph[data-contrast="high"] .graph-node-body { border-color:var(--foreground); border-width:calc(var(--border-width) * 2); }
3309
3980
  .dependency-graph[data-contrast="high"] .graph-node-kind,.dependency-graph[data-contrast="high"] .graph-node-icon { color:var(--foreground); }
3310
- .datagrid tbody tr[data-selected] { background:color-mix(in srgb,var(--primary) 14%,transparent); }
3981
+ /* ── RODADA 2 DA REDE (ADR-0065, 10/10/2026) ───────────────────────────────────────────────
3982
+ O LAÇO do modo de arrumar e a caixa em volta dos escolhidos se vestem pelas variáveis do motor. */
3983
+ .dependency-graph { --xy-selection-background-color:color-mix(in oklab,var(--primary) 10%,transparent); --xy-selection-border:var(--border-width) dashed var(--primary); }
3984
+ /* No modo de arrumar, quem recebe o foco é a caixa do MOTOR (que não tem classe nossa): o anel vai
3985
+ no corpo do nó, com o raio dele, e é UMA linha — a borda vira a cor do foco e o anel encosta nela
3986
+ (ADR-0059). A caixa do motor, quadrada, não desenha anel nenhum. */
3987
+ .dependency-graph :focus-visible:has(> .graph-node) { outline:none; }
3988
+ .dependency-graph :focus-visible:has(> .graph-group) { outline:none; }
3989
+ .dependency-graph :focus-visible > .graph-node > .graph-node-body,.dependency-graph :focus-visible > .graph-group { outline:var(--focus-width) solid var(--focus-strong); outline-offset:0; border-color:var(--focus-strong); }
3990
+ /* O CONTÊINER aberto (site, andar, rack): a região em volta dos filhos, com a cabeça. A cabeça tem
3991
+ `--space-10` e o recheio `--space-4` — os mesmos números com que o graph.tsx monta a caixa. */
3992
+ /* O fundo é um VÉU leve, e não uma cor cheia: a linha entre dois nós de fora que passa por cima da
3993
+ região continua aparecendo (o contêiner é um nó, e o motor o desenha acima das linhas comuns). E o
3994
+ véu soma: o andar dentro do site fica um tom acima, e o aninhamento se lê sem cor nova. */
3995
+ .graph-group { position:relative; inline-size:100%; block-size:100%; border:var(--border-width) solid var(--border); border-radius:var(--radius-card); background:color-mix(in oklab,var(--foreground) 3%,transparent); }
3996
+ .graph-group[data-selected] { border-color:var(--primary); }
3997
+ .graph-group[data-dimmed] { opacity:.3; }
3998
+ .graph-group-head { display:flex; align-items:center; gap:var(--space-2); block-size:var(--space-10); padding-inline:var(--space-2) var(--space-3); color:var(--foreground); font-size:var(--text-sm); }
3999
+ .graph-group-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:var(--weight-medium); }
4000
+ /* Os dois botões de fechar e abrir têm 24 de lado (`--space-6`): o alvo mínimo de toque (WCAG 2.5.8). */
4001
+ .graph-group-toggle { display:inline-grid; place-items:center; flex:none; inline-size:var(--space-6); block-size:var(--space-6); padding:0; border:0; border-radius:var(--radius-full); background:none; color:var(--muted-foreground); cursor:pointer; }
4002
+ .graph-group-toggle:hover { background:var(--secondary); color:var(--foreground); }
4003
+ /* O de NÓ senta no CANTO de baixo, à direita, como a quantidade no de cima: fechado, mostra QUANTOS
4004
+ guarda ("+12"). No canto, e não na borda: na borda ele cobria a alça da última porta (medido na
4005
+ bancada, a "porta 3" do núcleo saía por baixo dele). O selo de estado, embaixo à esquerda, encolhe. */
4006
+ .graph-node-toggle { position:absolute; inset-block-end:0; inset-inline-end:0; display:inline-flex; align-items:center; justify-content:center; min-inline-size:var(--space-6); block-size:var(--space-6); padding:0 var(--space-2); border:var(--border-width) solid var(--border-strong); border-radius:var(--radius-control); background:var(--secondary); color:var(--foreground); font:inherit; font-size:var(--text-xs); font-variant-numeric:tabular-nums; font-weight:var(--weight-medium); transform:translate(25%,50%); cursor:pointer; }
4007
+ .graph-node-toggle[aria-expanded="false"] { border-color:var(--primary-outline); }
4008
+ .graph-node:has(.graph-node-toggle) .graph-node-status { max-inline-size:calc(100% - var(--space-16)); }
4009
+ /* O ALFINETE (nó fixo), no canto de cima à esquerda — a quantidade fica no da direita. */
4010
+ .graph-node-pin { position:absolute; inset-block-start:0; inset-inline-start:0; display:inline-grid; place-items:center; inline-size:var(--space-5); block-size:var(--space-5); border:var(--border-width) solid var(--border); border-radius:var(--radius-full); background:var(--card); color:var(--foreground); transform:translate(-25%,-50%); }
4011
+ /* A NUVEM é desenho de FUNDO: a caixa do nó fica sem borda e sem fundo, e o texto vai ao centro. */
4012
+ .graph-node-cloud { position:absolute; inset:0; inline-size:100%; block-size:100%; overflow:visible; pointer-events:none; }
4013
+ .graph-node-cloud path { fill:var(--card); stroke:var(--border); stroke-width:var(--border-width); }
4014
+ /* E o ícone vai JUNTO do texto, no meio da nuvem: na borda da caixa, onde fica nos outros nós, ele
4015
+ saía para fora do contorno. */
4016
+ .graph-node[data-shape="cloud"] .graph-node-body { position:relative; border-color:transparent; background:none; justify-items:center; text-align:center; }
4017
+ .graph-node[data-shape="cloud"] .graph-node-has-icon { grid-template-columns:auto auto; justify-content:center; }
4018
+ .graph-node[data-shape="cloud"][data-selected] .graph-node-cloud path,.graph-node[data-shape="cloud"][data-focused] .graph-node-cloud path { stroke:var(--primary); }
4019
+ .dependency-graph[data-contrast="high"] .graph-node-cloud path { stroke:var(--foreground); stroke-width:calc(var(--border-width) * 2); }
4020
+ /* A BARRA do modo de arrumar quebra em mais linhas quando a tela é estreita. */
4021
+ .graph-toolbar { max-inline-size:calc(100% - var(--space-8)); }
4022
+ /* OS RÓTULOS QUE SOMEM (MNT-12.5): o que encosta noutro, pela prioridade (o graph.tsx mede e marca),
4023
+ e o texto das linhas inteiro quando a câmera está longe — a 60%, a letra viraria um risco. */
4024
+ .dependency-graph [data-crowded],.dependency-graph[data-far] :is(.graph-edge-text,.graph-edge-end,.graph-edge-chip-text) { visibility:hidden; }
4025
+ /* 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
4026
+ a CÉLULA — na linha, ele ficava por baixo delas. É o clarinho da Aurea. */
4027
+ .datagrid tbody tr[data-selected] > :is(td,th) { background:color-mix(in oklab,var(--primary) 10%,var(--card)); }
3311
4028
  .datagrid-empty { padding:var(--space-6); color:var(--muted-foreground); text-align:center; }
3312
4029
 
3313
4030
  /* ========================================================================== */
@@ -3328,11 +4045,29 @@ button.graph-node-body { cursor:pointer; }
3328
4045
  .pattern-toolbar .input-group { flex:1 1 180px; }
3329
4046
  .media-library-row.active { border-color:var(--primary); }
3330
4047
  /* Alvo de toque. `.tabs`/`.segmented` no lugar de `.tab`/`.segmented button`: agora a altura
3331
- mora na cápsula, então é ela que precisa crescer — o filho estica atrás. */
3332
- @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); } }
4048
+ mora na cápsula, então é ela que precisa crescer — o filho estica atrás. O `CloseButton` fica de
4049
+ fora (0.32.0): o alvo dele é o `::before` de 44, e o círculo continua de 24, como o da referência. */
4050
+ @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); } }
3333
4051
  @media (forced-colors:active) {
3334
4052
  :focus-visible { outline:var(--focus-width) solid CanvasText; outline-offset:var(--focus-offset); box-shadow:none; }
3335
4053
  .badge,.pattern-gallery button[aria-pressed="true"],.device-grid button[aria-pressed="true"] { border:1px solid CanvasText; }
4054
+ /* O glifo por máscara é FUNDO recortado, e aqui o navegador troca todo fundo pela cor da tela: o
4055
+ glifo sumia (medido em 12/10/2026: zero ponto de tinta nos cinco). Ele sai da troca e pinta com a
4056
+ cor do SISTEMA que o texto ao lado recebe — pelo nome, porque `inherit` aqui devolve a cor de
4057
+ antes da troca (medido: o amarelo do link e o branco do tema escuro, sobre a tela branca). O
4058
+ título do `Accordion` fica na cor de texto: sem isto, o Chromium o pintava na cor de link e o
4059
+ Firefox na de texto, e a seta não tinha como acompanhar os dois. Glifo novo por máscara entra
4060
+ nesta lista; quem cobra é `tests/visual/mascara-alto-contraste.spec.ts`. */
4061
+ :is(.topbar-menu-icon,.link-external,.kpi-trend-icon,.accordion-chevron,.toast-anchored-icon,.toc-label-icon) { forced-color-adjust:none; background:CanvasText; }
4062
+ .topbar-menu-icon { background:ButtonText; }
4063
+ .link-external { background:LinkText; opacity:1; }
4064
+ .accordion-item > summary { color:CanvasText; }
4065
+ /* A AMOSTRA DE COR (0.32.0, ADR-0069): a cor É o conteúdo dela — no `ColorSwatch`, nas amostras para escolher, no
4066
+ gatilho do `ColorPicker` e na frente do `ColorField`. Com a troca, viravam círculos brancos de contorno preto e o
4067
+ "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
4068
+ sistema. Quem cobra: `tests/visual/mascara-alto-contraste.spec.ts`. */
4069
+ :is(.color-swatch,.color-swatch-option) { forced-color-adjust:none; }
4070
+ .color-swatch-option:has(:focus-visible) { outline-color:CanvasText; }
3336
4071
  }
3337
4072
 
3338
4073
 
@@ -3372,7 +4107,7 @@ button.graph-node-body { cursor:pointer; }
3372
4107
  nós sem as arestas quebraria o desenho;
3373
4108
  - .drawer-left/.drawer-right prometem lado físico no nome (prop side). */
3374
4109
  :dir(rtl) .select { background-position:12px 50%; }
3375
- :dir(rtl) .switch input:checked + .switch-track:after { transform:translateX(-18px); }
4110
+ :dir(rtl) .switch input:checked + .switch-track:after { transform:translateX(calc(-1 * var(--switch-x))); }
3376
4111
 
3377
4112
  /* BARRA DE ROLAGEM. A Aurea ESCONDIA a dela: `.sidebar` e `.toc` tinham `scrollbar-width:none`
3378
4113
  mais `::-webkit-scrollbar{width:0}`. Região que rola sem barra visível não avisa que rola e
@@ -3388,12 +4123,33 @@ button.graph-node-body { cursor:pointer; }
3388
4123
  Ou seja: o par padrão cobre Firefox e Chrome e ainda não cobre o Safari da maioria; o caminho
3389
4124
  webkit cobre Safari e Chrome. Juntos cobrem os três, e onde os dois valem o padrão ganha por
3390
4125
  vir depois. Só cor e espessura — nada de desenhar seta ou canto. */
3391
- .carousel-track,.code-block,.combobox-popup,.command-palette,.dialog,.drawer,.log-stream,.notification-list,.sidebar,.table-region,.table-wrap,.toc {
4126
+ .carousel-track,.code-block,.combobox-popup,.command-palette,.dialog,.dialog-body,.drawer,.log-stream,.notification-list,.sidebar,.table-region,.table-wrap,.toc {
3392
4127
  scrollbar-width:thin; scrollbar-color:var(--border-strong) transparent;
3393
4128
  }
3394
- .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); }
3395
- .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; }
3396
- .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); }
4129
+ .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); }
4130
+ .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; }
4131
+ .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); }
4132
+ /* A LATERAL é a exceção (0.32.0; o Victor, 13/10/2026, olhando a da documentação da referência: a barra
4133
+ "só aparece se o mouse fica em cima do sidebar e ela é clarinha" — e, sobre o padrão, "pode alterar o
4134
+ atual para ser claro e sumir a rolagem"). A barra continua NATIVA e continua lá — a largura fina não
4135
+ muda, então nada pula quando ela aparece; parada, o polegar é transparente. Ela aparece:
4136
+ - com o ponteiro em cima da lateral (é quando quem usa mouse vai arrastá-la);
4137
+ - com o foco do teclado dentro dela (quem navega com Tab vê que a lista rola);
4138
+ - sempre, em tela sem ponteiro que paire (`hover: none`), onde o "em cima" não existe.
4139
+ A cor sai da escala da LATERAL, não da página: é o texto dela, esmaecido.
4140
+ O desenho de antes — a barra sempre à vista, na cor de borda forte — não saiu: é a variante
4141
+ `scrollbar="visible"` (`.sidebar-scrollbar-visible`), para quem precisa da barra o tempo todo. */
4142
+ .sidebar { scrollbar-color:transparent transparent; }
4143
+ .sidebar::-webkit-scrollbar-thumb { background:transparent; }
4144
+ .sidebar:is(:hover,:focus-within) { scrollbar-color:color-mix(in oklab, var(--sidebar-foreground) 45%, transparent) transparent; }
4145
+ .sidebar:is(:hover,:focus-within)::-webkit-scrollbar-thumb { background:color-mix(in oklab, var(--sidebar-foreground) 45%, transparent); }
4146
+ @media (hover: none) {
4147
+ .sidebar { scrollbar-color:color-mix(in oklab, var(--sidebar-foreground) 45%, transparent) transparent; }
4148
+ .sidebar::-webkit-scrollbar-thumb { background:color-mix(in oklab, var(--sidebar-foreground) 45%, transparent); }
4149
+ }
4150
+ /* Duas classes, depois das de cima: ganha do "em cima" e do "sem ponteiro" com a mesma força, pela ordem. */
4151
+ .sidebar.sidebar-scrollbar-visible { scrollbar-color:var(--border-strong) transparent; }
4152
+ .sidebar.sidebar-scrollbar-visible::-webkit-scrollbar-thumb { background:var(--border-strong); }
3397
4153
 
3398
4154
  /* ========================================================================== */
3399
4155
  /* 99. EIXO RESPONSIVO — a infraestrutura do G-AXIS-04 */
@@ -3439,13 +4195,14 @@ button.graph-node-body { cursor:pointer; }
3439
4195
  @property --step-icon { syntax:"*"; inherits:false; }
3440
4196
  @property --step-qr { syntax:"*"; inherits:false; }
3441
4197
  @property --step-avatar-fs { syntax:"*"; inherits:false; }
4198
+ @property --step-avatar { syntax:"*"; inherits:false; }
3442
4199
 
3443
4200
  /* o passo de escala, genérico: qualquer peça que leia `--step-*` obedece. `md` também tem
3444
4201
  classe, porque um responsivo precisa poder dizer `md` como valor base. */
3445
4202
  .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); }
3446
- .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); }
3447
- .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; }
3448
- .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; }
4203
+ .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); }
4204
+ .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); }
4205
+ .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); }
3449
4206
  .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); }
3450
4207
 
3451
4208
  /* CONTÊINER NOMEADO. Sem nome, `@container` casa com o ancestral mais próximo que for contêiner
@@ -3454,19 +4211,19 @@ button.graph-node-body { cursor:pointer; }
3454
4211
  .container-scope { container:aurea / inline-size; }
3455
4212
 
3456
4213
  /* por VIEWPORT — a decisão depende do tamanho da APLICAÇÃO */
3457
- @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; } }
3458
- @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; } }
3459
- @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; } }
3460
- @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; } }
3461
- @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; } }
3462
- @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; } }
3463
- @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; } }
4214
+ @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-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; } }
4215
+ @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-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; } }
4216
+ @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-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; } }
4217
+ @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-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; } }
4218
+ @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-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; } }
4219
+ @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-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; } }
4220
+ @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-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; } }
3464
4221
 
3465
4222
  /* por CONTAINER — o componente responde ao ESPAÇO EM QUE FOI COLOCADO */
3466
- @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; } }
3467
- @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; } }
3468
- @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; } }
3469
- @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; } }
3470
- @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; } }
4223
+ @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-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; } }
4224
+ @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-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; } }
4225
+ @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-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; } }
4226
+ @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-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; } }
4227
+ @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-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; } }
3471
4228
  /* <<< fim da camada responsiva >>> */
3472
4229
  }